Repository structure#
The pyfe3d
repository provides a general-purpose finite element solver implemented
in Python and Cython. The following overview describes the main layout of the
project and points newcomers to helpful resources.
Overall layout#
pyfe3d/
├── README.md
├── CITATION.cff
├── LICENSE
├── pyfe3d/ # library code (Cython)
├── doc/ # Sphinx documentation
├── tests/ # test cases and usage examples
├── setup.py # build script (generates version.py)
├── requirements*.txt
Key components#
README and Citation – provide an introduction to the solver and citation information.
Library modules (Cython) – element and property classes live in
pyfe3d
as.pyx
files that are compiled with Cython.setup.py
collects these extensions and generatespyfe3d/version.py
during the build.Tests as examples – scripts in
tests/
demonstrate how to build models and call the solver. They act as both regression tests and usage examples.Documentation – reStructuredText files under
doc/
are built with Sphinx. A topology optimisation tutorial is provided as a Jupyter notebook.Requirements –
requirements.txt
lists runtime dependencies while other files specify packages for CI and documentation builds.
Suggested next steps#
Build the library using
python setup.py build_ext --inplace
to compile the Cython extensions.Explore the tests in
tests/
as practical examples of typical analyses.Browse the documentation in
doc/
for tutorials and API references.Create your own models by adapting the test scripts. Start with simple elements such as
Quad4
orBeamC
.Check the citation file if you use
pyfe3d
in research.