Version numbering in GeMA follows a x.y.z pattern and the following set of rules:
- A change on the z number is a minor change. It might include bug corrections, new features and optimizations, but it should be able to run models from version 'z-1' without changes.
- A change on the y number reflects some important additions. Older model files might need to be updated for being run.
- A change on the x number reflects a major change or addition to the GeMA library.
Published versions might skip some version numbers for GeMA versions that where created for testing inside the Tecgraf institute and where never published. Never the less, the following change list always reflects the full set of changes between one published version and the previous published one.
Version 2.1.0 - (10-june-2024)
- Surface mesh plugin replaced by an internal topological structure built into the standard GemaMesh plugin
- New support for topological queries in 3D
- New support for discontinuities in 2D
- New support for mesh validation routines
- Several physics and FEM solver improvements
- Several other improvements and bug corrections
Version 2.0.0 - (19-april-2023)
- Support for saving HDF5 files for Paraview post-processing
- Support for Lua defined user materials
- New interpolation options
- Several physics and FEM solver improvements
- Several other improvements and bug corrections
Version 1.4.1
- Improved support for excavation processes
- Improved support for saving simulation states through the dumpLib script library, including support for saving mesh changes
- Improved memory handling by the topological mesh plugin
- Updates in XFem non planar crack propagation
- Several other improvements and bug corrections
Version 1.4.0
- New support for excavation processes
- Improved (but not final) support for saving simulation states through the dumpLib script library
- New fileLib script library
- Improved support for different coupling schemes
- Several other improvements and bug corrections
Version 1.3.1
- Improvements to vtk file generation
- Basic support for saving simulation states
- Several other improvements and bug corrections
Version 1.3.0
- Several improvements to THMC physics
- New coupling strategies
- Preliminar support for parallelism
- New Discontinuous Galerkin implementations
- Revised FEM solver
- Several other improvements and bug corrections
Version 1.2.2
- CoreLib: Changed Lua version from 5.1 to 5.2. This was done due to a limitation in Lua5.1 for loading tables with too many entries ("constant table overflow" error message).
- LisSolver: Plugin restructuring for better performance and better handling of library options.
- FemProcess: Assembler changed to support the assembly of a single global equivalent matrix instead of assembling multiple global matrices.
- Fem process solvers where changed to combine the print options and solver options into a single table. Print option names where changed with better generic names and format fields transformed into a single string (like the one used when defining mesh attributes). Solver options that where definied using numeric codes where changed to descriptive string values.
- SurfaceMesh: Change on the name of the object types with support for topological meshes:
"SurfaceMesh.elemSurf"
and "SurfaceMesh.cellSurf"
changed to "SurfaceMesh.elem"
and "SurfaceMesh.cell"
(old objects mesh
and cell
where removed since they did not add any extra value over the standard GemaMesh objects).
- MmProcess: Options parameter for the mm.meshMapping() method changed. The 'interpType' parameter was changed from an integer value to a string (options are 'default', 'nn', 'idw', 'mls', 'shape' and 'lshape').
- CoreLib: Corrected Neutral file generation to avoid the following warning when reading files on Pos 3D: "WARNING: [ELEMENT.GAUSS.SCALAR]: Number of gauss points does not match quadrature at element xxx"
- VtkLib: Grouped parameters
allStates
, state
and stateTime
of vtkLib.saveMeshFile()
into a single options table parameter.
- LuaCoreLib: Corrected returned cell type by
mesh:nodeCellsBall()
+ minor bug and memory leak corrections.
- LuaCoreLib: Renamed
mesh:cellGroupId()
to mesh:cellGroupIndex()
.
- LuaCoreLib: Added global functions to retrieve shape function and geometry objects from an element type.
- LuaCoreLib: Added the
cell:linearShape()
and shape:elemType()
methods.
- LuaCoreLib: Added the new method
mesh:printQualityHistogram()
.
- CoreLib: Added support for Lobatto integration rules for bar, quad, hex, int2d and int3d elements.
- LuaCoreLib: Methods
shape:integrationRule()
and shape:borderIntegrationRule()
now receive an aditional parameter to specify the desired integration rule type.
- CoreLib: Added the new
cellGeometry:isInterface()
method. Support for this function is also available in Lua.
- CoreLib: Added support for traversing the set of face edges. Support for this functions is also available in Lua through the
geometry:numFaceEdges()
and geometry:faceEdge()
methods.
- CoreLib: Added parameters to GmCellGeometry::length() and GmCellGeometry::area() to enable calculating values for edge lengths and face areas.
- CoreLib: Added support for new hierarchical elements
hquadp
and hhexp
. Support was also added in Lua to recover the polynomial interpolation orders P and Q for the elements.
- CoreLib: Added a better support for specifying boundary conditions and integration rules for 3D element edges. Support also avialble in Lua through mesh and shape methods.
- LuaCoreLib: Method
boundary:setBoundaryData()
now supports as parameter a table with either cell indices or cell objects.
- CoreLib: Added support for node sets associated with a mesh.
- IoProcess: Added new io.printMeshMemoryInfo() process to print memory usage associated with a mesh.
- GeMA application: Added support for the
-memory
, -nomemory
, -time
and -notime
command line options.
- CoreLib: Added support for simulation and global (config based) options and constants.
- LuaCoreLib: Added support for time measuring (
startTimer()
, resetTimer()
and elapsedTime()
) and memory logging (logMemory()
) functions.
- CoreLib: Added support for parallelizing operations with main focus on node and cell loops. Paralelization is also available in the Lua environment.
- CoreLib: Added support for different data storage types and allocation modes for value sets
- LuaCoreLib: Renamed some ValueInfo description names and object methods: dataType() to dimType(), sparse to allocMode and storage to affectedNodes.
- LuaCoreLib: Added support for plugin version checking. Added command line option -pversion.
- First version of the monitor application
- MeshLib: Added support for 3D meshes (support for hex8, hex20 and hex27 elements - no support for 3D interface elements yet).
Version 1.0.1
- VtkLib: Corrections + added support for splitting vector values into multiple scalar values.
- MechanicalFemPhysics: Material Gauss properties are now created only when the material is used in the model.
- MechanicalFemPhysics: Material updates. Added support for von Mises and Drucker prager models.
- CoupledHMFemPhysics: Material updates. 3D interface elements now support the Mohr-Coulomb model.
- LuaCoreLib: Added missing Lua binding functions to work with ghost nodes.
- Updated examples: Double porosity "dam" example updated (not an extruded 2D example anymore).
- Added examples: Added two new examples for analysing the 2D surface subsidence and compaction of an oil reservoir.
- Added example: Added a new 2D fracture reactivation example.
- Added example: Added a new example for upscaling and working with external simulators.
Version 1.0