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 generates pyfe3d/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.

  • Requirementsrequirements.txt lists runtime dependencies while other files specify packages for CI and documentation builds.

Suggested next steps#

  1. Build the library using python setup.py build_ext --inplace to compile the Cython extensions.

  2. Explore the tests in tests/ as practical examples of typical analyses.

  3. Browse the documentation in doc/ for tutorials and API references.

  4. Create your own models by adapting the test scripts. Start with simple elements such as Quad4 or BeamC.

  5. Check the citation file if you use pyfe3d in research.