Rodin::External::MMG::MMG5 class

Class representing MMG5 objects utilized in the MMG framework.

This class is used for wrappping the functionality of the MMG library.

Derived classes

class ImplicitDomainMesher
Class to perform the discretization and optimization of a surface implicitly defined by a level set function.
class Optimizer
Improves the mesh quality, mantaining the mean edge lenghts of the mesh.

Public static functions

static auto rodinToMesh(const Rodin::Geometry::SequentialMesh& src) -> MMG5_pMesh
Converts an MMG::Mesh object to a MMG5_pMesh object.
static auto meshToRodin(const MMG5_pMesh src) -> MMG::Mesh
Converts an MMG5_pMesh object to a MMG::Mesh object.

Constructors, destructors, conversion operators

MMG5()
Default constructor.

Public functions

auto setHMin(Real hmin) -> MMG5&
Sets the minimal edge size.
auto setHMax(Real hmax) -> MMG5&
Sets the maximal edge size parameter.
auto setHausdorff(Real hausd) -> MMG5&
Sets the Hausdorff parameter.
auto setGradation(Real hgrad) -> MMG5&
Sets the gradation parameter.

Function documentation

MMG5& Rodin::External::MMG::MMG5::setHMin(Real hmin)

Sets the minimal edge size.

Parameters
hmin in Minimal edge size.
Returns Reference to self (for method chaining)

The hmin option allows to truncate the edge sizes to be lower than the hmax one.

The default values for this parameters are computed from the mesh bounding box or, if provided, from the given metric.

  • Without metric, the minimal edge size is set to 0.01 of the bounding box size.
  • With metric, the minimal edge size is set to 0.1 of the smallest prescribed size.

MMG5& Rodin::External::MMG::MMG5::setHMax(Real hmax)

Sets the maximal edge size parameter.

Parameters
hmax in Maximal edge size.
Returns Reference to self (for method chaining)

The hmax option allows to truncate the edge sizes to be greater than the hmin parameter.

The default values for this parameters are computed from the mesh bounding box or, if provided, from the given metric.

  • Without metric, the maximal edge size is set to two times the bounding box size.
  • With metric, the maximal one is set to 10 times the maximal prescribed size.

MMG5& Rodin::External::MMG::MMG5::setHausdorff(Real hausd)

Sets the Hausdorff parameter.

Parameters
hausd in Hausdorff parameter.
Returns Reference to self (for method chaining)

The Hausdorff parameter controls the boundary approximation. It imposes the maximal distance between the piecewise linear representation of the boundary and the reconstructed ideal boundary. Thus, a low Hausdorff parameter leads to the refinement of high curvature areas.

By default, the Hausdorff value is set to 0.01, which is a suitable value for an object of size 1 in each direction. For smaller (resp. larger) objects, you may need to decrease (resp. increase) the Hausdorff parameter.

MMG5& Rodin::External::MMG::MMG5::setGradation(Real hgrad)

Sets the gradation parameter.

Parameters
hgrad in Gradation parameter
Returns Reference to self (for method chaining)

The hgrad option allows to set the gradation value. It controls the ratio between two adjacent edges. With a gradation of $ h $ , two adjacent edges $ e_1 $ and $ e_2 $ must respect the following constraint:

\[ \dfrac{1}{h} \leq \dfrac{ |e_1| }{ |e_2| } \leq h \]

By default, the gradation value is 1.3.