PolyFEM is a polyvalent C++ FEM library.
All the C++ dependencies required to build the code are included. It should work on Windows, macOS, and Linux, and it should build out-of-the-box with CMake:
mkdir build
cd build
cmake ..
make -j4
On Linux, zenity is required for the file dialog window to work. On macOS and Windows, the native windows are used directly.
On Mac, the current CMake setup does not work with SuiteSparse installed via macports. Please either use Homebrew or disable SPQR with -DPOLYSOLVE_WITH_SPQR=OFF
The formula for higher-order bases is optionally computed at CMake time using an external python script. Consequently, PolyFEM might require a working installation of Python and some additional packages to build correctly:
numpyandsympy(optional)quadpy(optional)
The main executable, ./PolyFEM_bin, can be called with a GUI or through a command-line interface. Simply run:
./PolyFEM_bin
A more detailed documentation can be found on the website.
The full documentation can be found at https://polyfem.github.io/
The code of PolyFEM itself is licensed under MIT License. However, please be mindful of third-party libraries which are used by PolyFEM and may be available under a different license.
If you use PolyFEM in your project, please consider citing our work:
@misc{polyfem,
author = {Teseo Schneider and Jérémie Dumas and Xifeng Gao and Denis Zorin and Daniele Panozzo},
title = {{Polyfem}},
howpublished = "\url{https://polyfem.github.io/}",
year = {2019},
}@article{Schneider:2019:PFM,
author = {Schneider, Teseo and Dumas, J{\'e}r{\'e}mie and Gao, Xifeng and Botsch, Mario and Panozzo, Daniele and Zorin, Denis},
title = {Poly-Spline Finite-Element Method},
journal = {ACM Trans. Graph.},
volume = {38},
number = {3},
month = mar,
year = {2019},
url = {http://doi.acm.org/10.1145/3313797},
publisher = {ACM}
}@article{Schneider:2018:DSA,
author = {Teseo Schneider and Yixin Hu and Jérémie Dumas and Xifeng Gao and Daniele Panozzo and Denis Zorin},
journal = {ACM Transactions on Graphics},
link = {},
month = {10},
number = {6},
publisher = {Association for Computing Machinery (ACM)},
title = {Decoupling Simulation Accuracy from Mesh Quality},
volume = {37},
year = {2018}
}The software is being developed in the Geometric Computing Lab at NYU Courant Institute of Mathematical Sciences and the University of Victoria, Canada.
This work was partially supported by:
- the NSF CAREER award 1652515
- the NSF grant IIS-1320635
- the NSF grant DMS-1436591
- the NSF grant 1835712
- the SNSF grant P2TIP2_175859
- the NSERC grant RGPIN-2021-03707
- the NSERC grant DGECR-2021-00461
- Adobe Research
- nTopology
