Main GeMA components
- GeMA Core Lib: The main GeMA framework library. Implements all support classes provided by the framework and is used as the main building block for the GeMA library and for creating plugins.
- GeMA Lib: Extends the core library (GeMA Core lib) with classes that are not needed by plugins, such as model loading and simulation execution. It's the main support library for building a GeMA based application.
- GeMA Lua Core Lib: Extends the Gema Core library by providing Lua bindings for the main framework classes.
- Lua Utils: A set of classes to ease the integration between Lua and C++. Documentation in portuguese.
- Unit: A set of classes to ease unit handling (unit validadtion and conversion). Uses the udunits external library. Documentation in portuguese.
GeMA plugins
Mesh plugins
Process plugins
- FemProcess: A process supporting the Finite Elements Method.
- LbmProcess: A process supporting the Lattice Boltzman Method.
- IoProcess: A process providing operations for printing, saving and loading mesh data.
- MmProcess: A process providing operations for transfering data between different spatial domains (meshes).
- GeomProcess: A process providing useful geometry operations.
- MatlabProcess: A process providing operations for executing Matlab scripts from GeMA.
Physics plugins
Numeric solver plugins
- ArmadilloSolver: A direct numeric solver based on the Armadillo library.
- LisSolver: A iterative numeric solver based on the Lis library.
Property set plugins
Other plugins
- Xfem: The XFem plugin.
- Lem: The Lattice element method plugin.
Open source external libraries
Open source external libraries, developed by third parties, that are used by the GeMA project:
- Qt: The Qt library is used as a portable C++ support library by the GeMA framework.
- Lua 5.2: The Lua programming language. The GeMA framework makes use of version 5.2.
- Armadillo: The Armadillo library is a linear algebra library, used by the GeMA framework to handle matrices and vectors. The standard numerical solver plugin also uses Armadillo to solve linear problems. Armadillo supports sparse matrices through the use of the SuperLU library.
- Blas and Lapack: Libraries for low level optimized linear algebra operations. Required by Armadillo.
- SuperLU: A general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations. Required by Armadillo to handle sparse matrices.
- Lis: A library for iterative solvers for linear systems of equations. Required by the Lis numerical solver plugin.
- Nfr: A library developed at Tecgraf for reading and writing binary Neutral Files.
- Open Mesh: A library for storing mesh data with topological information. Required by the OpenMesh plugin.
- Udunits: A library for unit conversion.
- Expat: A library for XML file reading, required by the Udunits library.
- Mimalloc: An efficient, general purpose, memory allocator.