A new mesh optimizer, MMG (https://mmgtools.org for more information), has been integrated into DynEarthSol's remeshing process. Now, both 2D and 3D meshes can be optimized during remeshing based on plastic strain field: The greater plastic strain, the finer elements get.
The two main motivations for switching from the current remeshing scheme, triangle in 2D and libadaptivity in 3D, are:
to avoid heavy reliance of libadaptivity on external dependencies like VTK
MMG is pretty much self-contained and easy to build.
to have more and better control over the adaptive remeshing in both 2D and 3D.
Currently, remeshing in 2D is managed by triangle purely based on element geometry.
MMG adjusts element sizes based on a 'solution' field, which can be an error or a field of physical variable (e.g., plastic strain).
Through 5 new input parameters, users can control the level of verbosity and the upper and lower limit of element size:
param.mesh.mmg_debug: 1 - MMG print debugging info; 0 - debugging info not printed
param.mesh.mmg_verbose: Integer >=0; the greater (e.g., 5) the more information on the progress of mesh optimization
param.mesh.mmg_hmax: Double number to be multiplied to param.mesh.resolution. The product is the maximum size of elements allowed during remeshing.
param.mesh.mmg_hmin: Double number to be multiplied to param.mesh.resolution. The product is the minimum element size allowed during remeshing.
param.mesh.mmg_hausd: Double number to be multiplied to param.mesh.resolution. The product is the Hausdorff distance between the original and the remeshed surfaces.
A new mesh optimizer, MMG (https://mmgtools.org for more information), has been integrated into DynEarthSol's remeshing process. Now, both 2D and 3D meshes can be optimized during remeshing based on plastic strain field: The greater plastic strain, the finer elements get.
The two main motivations for switching from the current remeshing scheme, triangle in 2D and libadaptivity in 3D, are:
triangle
purely based on element geometry.Through 5 new input parameters, users can control the level of verbosity and the upper and lower limit of element size:
param.mesh.mmg_debug
: 1 - MMG print debugging info; 0 - debugging info not printedparam.mesh.mmg_verbose
: Integer >=0; the greater (e.g., 5) the more information on the progress of mesh optimizationparam.mesh.mmg_hmax
: Double number to be multiplied to param.mesh.resolution. The product is the maximum size of elements allowed during remeshing.param.mesh.mmg_hmin
: Double number to be multiplied to param.mesh.resolution. The product is the minimum element size allowed during remeshing.param.mesh.mmg_hausd
: Double number to be multiplied to param.mesh.resolution. The product is the Hausdorff distance between the original and the remeshed surfaces.