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
pyfe3das.pyxfiles that are compiled with Cython.setup.pycollects these extensions and generatespyfe3d/version.pyduring 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.txtlists runtime dependencies while other files specify packages for CI and documentation builds.
Suggested next steps#
Build the library using
python setup.py build_ext --inplaceto 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
Quad4orBeamC.Check the citation file if you use
pyfe3din research.