**mesh_gems#

Description#

This mesher is an interface with Distene remeshing tools (surfacic remesher YAMS, volumic remesher GHS3D, …).

Syntax#

**mesh_gems \(~\,\) [ *preserve_faset ] \(~\,\) [ *preserve_liset ] \(~\,\) [ *preserve_nset ] \(~\,\) [ *preserve_elset3d] \(~\,\) [ *preserve_elset] \(~\,\) [ *fixed_nset ] \(~\,\) [ *auto_preserve] \(~\,\) [ *skip_auto_preservation set1 set2setN ] \(~\,\) [ *mesh_cleaner ] \(~\,\) [ *absolu ] \(~\,\) [ *max_size max] \(~\,\) [ *min_size min ] \(~\,\) [ *yams_only ] \(~\,\) [ *refinement <FUNCTION> \(~\,\) *refinement_origin nset_ref ] \(~\,\) [ *refinement_gradation nset_ref minsize R0 gradation ] \(~\,\) [ *refinement_method <REFINEMENT_DENSITY> \(~\,\) *refinement_origin nset_ref ] \(~\,\) [ *nb_iter iter ] \(~\,\) [ *nb_iter_surf iter_surf ] \(~\,\) [ *nb_iter_vol iter_vol ] \(~\,\) [ *separate_parts ] \(~\,\) [ *yams_options options_yams ] \(~\,\) [ *ghs3d_options ghs_options ] \(~\,\) [ *meshadapt_options adapt_options ] \(~\,\) [ *set_reduced ] \(~\,\) [ *ascii ]

To preserve different sets of the initial mesh during remesh:

*preserve_faset

keep pre-existing outer surface boundaries.

*preserve_liset

preserve pre-existing outer boundaries of a 2D mesh.

*preserve_nset

keep the nodes of the given node set (pre-existing) at their exact position. During remeshing, other nodes may be added between preserved nodes but will not be included in the node set (contrary to *preserve_faset/*preserve_liset).

*preserve_elset

preserve 2d elset definitions of the surface mesh.

*preserve_elset3d

In 3D cases, remesh each specified elset separately and preserve the interface.

*fixed_nset

preserve geometrical positions, ids and the order of nodes belonging to the given nset.

*auto_preserve

Automatic preservation of all sets (nsets, bsets and elsets). If possible, each nset is converted to a faset or a liset which are preserved. The nsets are retrieved from corresponding “remeshed” liset/faset. Otherwise, if a faset or a liset cannot be created from it, only the nset is preserved.

../../_images/remesh_curved.svg
*skip_auto_preservation

exclude some sets from being preserved especially those that may hamper remeshing.

The refinement method can be specified using one of the following options:

*refinement

Introduces a function of the mesh coordinates that defines the size of each element. The nset that serves as the reference to calculate the distance is given by *refinement_origin.

*refinement_gradation

A pre-defined refinement function given by

(3)#\[minsize + (r^2+R0^2)\left(1-\dfrac{1}{gradation}\right)(r-R0)\]

where \(r=\sqrt{x^2+y^2+z^2}\). The distance is computed w.r.t a given nset_ref.

*refinement_method

an alternative way to specifiy the refinement density using REFINEMENT_DENSITY objects. For now, two classes of type REFINEMENT_DENSITY are implemented:

  • smooth power

  • coarsening factor

*nb_iter

number of iterations allowed for volume/surface mesh adaptation. By default, iter_surf = 3 and iter_vol =2. The number of iterations can be specified separately for surface and volume using *nb_iter_surf and *nb_iter_vol, respectively.

*separate_parts

A flag allowing to remesh each part of the mesh independently (see also another method to handle such cases in **mesh_gems_unconnected).

*yams_options

(or *options) additional options passed in to MG_SURF (default: --max_memory 1024).

*ghs3d_options

additional options passed in to MG_VOL (default: --max_memory 2048 --components all)

*meshadapt_options

additional options passed in to MG_ADAPT (default: --max_memory 2048 --components all --adaptation volume)

*set_reduced

To set reduced integration. By default, the new mesh is made up of full-integration elements (regardless of the integration degree of the initial mesh elements).

*ascii

Ascii output file.

*mesh_cleaner

It uses the mesh fixing tool MeshGems-Cleaner which allows to correct mesh misfeatures such as overlaps, intersections, holes or gaps.

Examples#

**mesh_gems_unconnected#

Description#

This mesher is derived from mesh_gems. It handles the remeshing of mesh parts. It creates a separate mesh for specified parts, remeshs each part using mesh_gems and finally performs a union of different parts.

Syntax#

**mesh_gems_unconnected \(~\,\) *use_part part meshfile_name \(~\,~\,\) mesh_gems options

Examples#