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 installFirst, the FFI bindings to libbfm must be generated:
python pybfm/bfm/gen_libbfm.pyThen, you may install the bfm Python module itself:
pip install --user ./pybfmUbuntu 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.pyThat's it ;)
To execute a specific LEPL1110 problem:
python3 lepl1110.py path/to/mesh path/to/problemThis will output U.txt and V.txt in the data directory.

