Skip to content

Releases: MmgTools/ParMmg

v1.5.0

01 Nov 08:45
Compare
Choose a tag to compare

Important notes

ParMmg is a research software. We don't provide support or user help on this project and lot of features are still experimental and needs to be robustify.

The main objective of this software is to go beyond the memory limit of serial mesh adaptation by exploiting the memory of several nodes. Time scalability it is not our primary goal and the software has not been profiled for the current release.

⚠️ Careful points ⚠️

  • Users have now to build the software in CMake Release mode to avoid slowness and issues due to the new developper checks. The Debug mode is to be used only for developpers
  • In case of errors, the ParMmg library may call MPI_Abort and kill all the process

What's Changed In a Nutshell

  • Add parallel hdf5 I/Os
  • Add level-set discretization mode with multi-material capability from centralized and distributed inputs. For distributed inputs, the level-set snapping (avoiding bad quality elements) is not yet implemented
  • Add strong and numerous checks on private Mmg data consistency in CMake Debug mode to improve software robustness and make debugging easier
  • Add call to MPI_Abort() in some parts of the code where we lack time to implement a clean error handling
  • Modification of the compilation proccess and way to link with Mmg

What's Changed In Detail

  • Feature/parallel hdf5 io by @gabriel-suau in #40
  • Change Fortran interface for real variable inputs. by @iwheel in #43
  • CMake: fix missing SOVERSION by @prj- in #44
  • Fix some memory leaks by @prj- in #46
  • qualhisto: jumps depend on uninitialised values by @prj- in #47
  • parmesh_SetMemGloMax: missing MPI_Comm_free by @prj- in #48
  • Documentation. by @lcirrottola in #49
  • Feature/clean valgrind leaks by @Algiane in #50
  • Changes to Fortran interface by @iwheel in #53
  • Feature/tet from tria api by @Algiane in #55
  • Fix a conditional jump by @prj- in #54
  • Feature/update mmg by @Algiane in #56
  • Feature/find mmg private headers by @Algiane in #80
  • Proper include for libmmgtypes.h by @prj- in #83
  • Feature/GitHub actions by @Algiane in #84
  • Feature/compilation simplification by @Algiane in #69
  • Add the ls option as argument + test by @laetitia-m in #85
  • Fix the input of MMG3D_loadVtuMesh() in PMMG_loadVtuMesh_centralized() by @laetitia-m in #86
  • Feature/ls skeleton centralized by @laetitia-m in #87
  • Feature/input field distributed by @laetitia-m in #88
  • If ls_val is not given in argument, need to go through mmg option parser by @laetitia-m in #89
  • Reading of distributed input LS files by @laetitia-m in #90
  • Feature/parallel hdf5 io by @lcirrottola in #45
  • Feature/new hdf5 tree by @Algiane in #91
  • Feature/fix citest multidom distrib by @laetitia-m in #92
  • Fix memory errors due to the call of functions on null pointers (mems… by @Algiane in #93
  • Fix some bugs in *.pvtu output by @laetitia-m in #94
  • First try to fix actions by @laetitia-m in #96
  • Creation of distributed LS skeleton by @laetitia-m in #95
  • Refactoring of the PMMG_update_singul function to remove duplications… by @Algiane in #98
  • Remove useless code from updateTag function by @Algiane in #100
  • Feature/fix invalid pointer in mmg by @Algiane in #101
  • Feature/fix edge length by @Algiane in #102
  • Update point tag with MG_REF if the edge in xtetra is MG_REF + ci tests associated by @laetitia-m in #103
  • Copy mesh information of local parameters or LS reference (multimat) by @laetitia-m in #104
  • Modify type of rtorecv and rtosend variables by @laetitia-m in #105
  • Level-set discretization function PMMG_ls-cuttet. Note that multi-material is not supported yet by this function. by @laetitia-m in #106
  • Add -f option in the help of ParMmg by @laetitia-m in #107
  • Abort if nosplit option used in multimat mode by @laetitia-m in #108
  • Feature/code coverage by @Algiane in #109
  • Dedicated job for coverage submission. by @Algiane in #111
  • Modified rule for assigning parallel edge owners by @coprigent in #116
  • Diagnose gatherv overflow by @mpotse in #113
  • Fix gatherv overflow when the combined packed mesh size exceeds 2^31. by @Algiane in #117
  • Fix setting of maximal authorized memory by @Algiane in #119
  • Update gfortran version after modification of Macos-12 runner. by @Algiane in #121
  • Feature/fix duplication removal by @Algiane in #122
  • API_DISTRIB_FACES prioritized over API_DISTRIB_NODES by @coprigent in #112
  • Fix problems with extra triangles in input mesh by @coprigent in #110
  • Remove dead code by @Algiane in #127
  • Fix the way internal and external communicators communicate in PMMG_cuttet_ls by @laetitia-m in #126
  • (1) Change tag type (int -> uint) and (2) creation of the overlap by @laetitia-m in #123
  • Snap val for level-set discretization PMMG_snpval_ls by @laetitia-m in #124
  • Edge tag consistency by @Algiane in #129
  • Error handling in analysis and level-set discretization by @Algiane in #132
  • Add multimat mode to ls split by @Algiane in #131
  • Disable value snapping (implementation in progress) by @Algiane in #133
  • Feature/ls partitioning by @Algiane in #134
  • Robustification isotropic mesh adaptation + // ls discretization by @Algiane in #135

New Contributors

Full Changelog: v1.4.0...v1.5.0

v1.4.0 (Parallel surface adaptation)

05 Nov 13:03
Compare
Choose a tag to compare

This release introduces parallel surface analysis and adaptation.

  • Surface adaptation will be activated by default. In order to switch it off, the parameter -nosurf (or PMMG_IPARAM_nosurf in the API) needs to be set.
  • The Hausdorff parameter -hausd(or PMMG_DPARAM_hausd in the API) needs to be always set to a meaningful value (even for flat surfaces) in order to get correct metrics on surfaces.
  • User-provided normal vectors on boundary points are currently not supported.
  • Open boundaries are currently not supported with distributed input.

Parallel surface adaptation

01 Oct 15:59
Compare
Choose a tag to compare
Pre-release

This release introduces parallel surface analysis and adaptation.

  • Surface adaptation will be activated by default. In order to switch it off, the parameter -nosurf (or PMMG_IPARAM_nosurf in the API) needs to be set.
  • The Hausdorff parameter -hausd(or PMMG_DPARAM_hausd in the API) needs to be always set to a meaningful value (even for flat surfaces) in order to get correct metrics on surfaces.
  • User-provided normal vectors on boundary points are currently not supported.
  • Open boundaries are currently not supported with distributed input.

v1.3.0

20 Nov 15:30
014196c
Compare
Choose a tag to compare

This release introduces:

  • improved scalability on more the 100 processes;
  • a fix for an erroneous count of memory usage;
  • the interpolation on the adapted mesh of user-defined solution fields (on mesh vertices);
  • the possibility to speed-up interpolation through the configuration variable USE_POINTMAP;
  • the ripristination of output mesh load balancing;
  • additional API functions to ease the reconstruction of parallel communicators in node-based solvers.

v1.2.0

29 Nov 18:42
5f4a31b
Compare
Choose a tag to compare

This release adds:

  • Mesh repartitioning through parallel interface displacement.
  • Support for Scotch renumeration.

The current version of ParMmg allows mesh adaptation inside the volume of 3D volume meshes (surface remeshing, isovalue discretization and lagrangian movement are not yet available). You can use it from:

  • centralized I/O using the command line;
  • centralized or distributed I/O using the API and the library version.