Muscat was primarily designed as a basic set of tools to work on meshes in the context of finite element computations.
The main functionalities of the library include:
- IO support: A set of classes that enable reading and writing meshes (as well as solution fields) from/to a wide variety of file formats. Muscat does not have its own file format because existing formats already provide most, if not all, of the required functionalities.
- Mesh manipulation: Algorithms to filter, define, extract, and manipulate meshes in various ways.
- Fields manipulation: Finite element fields can be defined using different types of interpolation (P0/P1/P2), either across the entire mesh or only in specific zones, as well as at integration points. These classes have overloaded operators to facilitate the computation of relevant quantities.
- Integration: Algorithms for the integration of weak formulations (tangent matrices, right-hand terms, and integrals over specific sections of a mesh).
- Field transfer: Various Algorithms to transfer fields from one mesh to another.
- Finite element solver: Leveraging the aforementioned tools, Muscat provides a basic finite element solver for solving generic partial differential equations on unstructured meshes.
Link to Muscat sources on Gitlab.com
Link to Muscat documentation on readthedocs.io
conda install -c conda-forge muscat
Leave a Reply