Code Layout#

Directory Structure#

The C++, Python, and SWIG Python/C++ interface files all sit in different directories. Similarly, the unit tests, MMS tests, full-scale tests, examples and documentation are also in their own directories.

pylith/
├── ci-config # continuous integration testing configuration
├── docker # Dockerfiles for creating Docker images
├── developer # Utilities for developers
├── docs # Documentation source code
├── libsrc # C++ source for library
├── modulesrc # SWIG interfaces files for C++ Python bindings.
├── pylith # Python source code for PyLith modules.
├── applications # Source code for command line programs
├── m4 # Autoconf macros
├── share # Common parameter settings
├── examples # Example suite
└── tests
    ├── libtests # C++ unit tests
    ├── mmstests # C++ Method of Manufactured solution tests
    ├── pytests # Python unit tests
    ├── fullscale # Automated full-scale tests
    └── manual # Manual full-scale tests

The C++ library, SWIG interface files, and Python modules are organized into several subpackages with common names.

  • bc Boundary conditions.

  • faults Faults.

  • feassemble General finite-element formulation.

  • fekernels Finite-element pointwise functions (kernels).

  • friction Fault constitutive models.

  • materials Material behavior, including bulk constitutive models.

  • meshio Input and output.

  • problems General problem formulation.

  • testing Common testing infrastructure.

  • topology Finite-element mesh topology.

  • utils General utilities.