Big F'ing Matrix. Final assignment for LEPL1110 (Finite Element Method).
Naive bridge desgin | "Beehive" bridge design |
---|---|
![]() |
![]() |
This repo is composed of two components; the backend libbfm
, which implements all the routines BFM defines, and the frontend pybfm
, which includes a thin Python wrapper above libbfm
and visualisation facilities.
This uses CMake:
mkdir -p libbfm/build
cd libbfm/build
cmake ..
To install the library and its headers, run this (as a superuser):
make install
First, the FFI bindings to libbfm
must be generated:
python pybfm/bfm/gen_libbfm.py
Then, you may install the bfm
Python module itself:
pip install --user ./pybfm
Ubuntu 22.04, set the DEB_PYTHON_INSTALL_LAYOUT
environment variable to deb_system
when running the above command:
DEB_PYTHON_INSTALL_LAYOUT=deb_system pip install --user ./pybfm
(See this issue.)
Assuming everything is built, you can run a simple example as such:
python3 examples/deformation.py
That's it ;)
To execute a specific LEPL1110 problem:
python3 lepl1110.py path/to/mesh path/to/problem
This will output U.txt
and V.txt
in the data
directory.