XYZDelaunayGenerator

Creates tetrahedral 3D meshes within boundaries defined by input meshes.

An input mesh will be used to define the outer boundary of a generated tetrahedral output mesh. Additional interior vertices can be automatically generated by specifying a desired tetrahedral volume. Additional interior boundary "holes" can be specified by the mesh generators specified in the "holes" vector parameter.

Each input mesh, as specified in the "boundary" parameter and optionally in the "holes" parameter, can define a closed manifold of boundary triangles either by including Tri3 elements for each triangle or by including volume elements whose external faces comprise the boundary manifold.

If multiple disconnected manifolds exist in a boundary mesh, only the manifold enclosing the rest of the mesh is considered to be "the" boundary. Input meshes which are not connected, which therefore have multiple outer boundary manifolds, are not yet supported.

Nodes internal to the boundary mesh are currently ignored. Future expansions of this class may allow such nodes to be retained as nodes in the output tetrahedralization.

Using stitching options, meshes used as "holes" can subsequently be stitched into those portions of the output mesh.

Interior vertices can be adjusted after mesh generation using the "smooth_triangulation" parameter, to produce a more "smooth" mesh, but currently the only mesh smoother option is a simple Laplacian smoother; this can have unwanted side-effects on meshes with concave boundaries or poor nodal valences, and so it is disabled by default for robustness.

The elements generated by XYZDelaunayGenerator can be refined according to a given uniform element volume specified as "desired_volume". This refinement is currently controlled by the third-party Netgen code.

Input Parameters

  • boundaryThe input MeshGenerator defining the output outer boundary

    C++ Type:MeshGeneratorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The input MeshGenerator defining the output outer boundary

Required Parameters

  • algorithmBINARYControl the use of binary search for the nodes of the stitched surfaces.

    Default:BINARY

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:BINARY, EXHAUSTIVE

    Controllable:No

    Description:Control the use of binary search for the nodes of the stitched surfaces.

  • desired_volume0Desired (maximum) tetrahedral volume, or 0 to skip uniform refinement

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Desired (maximum) tetrahedral volume, or 0 to skip uniform refinement

  • hole_boundariesBoundary names to set on holes. Default IDs are numbered up from 1 if no hole meshes are stitched; or from maximum boundary ID of all the stitched hole meshes + 2.

    C++ Type:std::vector<BoundaryName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Boundary names to set on holes. Default IDs are numbered up from 1 if no hole meshes are stitched; or from maximum boundary ID of all the stitched hole meshes + 2.

  • holesThe MeshGenerators that define mesh holes.

    C++ Type:std::vector<MeshGeneratorName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The MeshGenerators that define mesh holes.

  • output_boundaryBoundary name to set on new outer boundary. Default ID: 0 if no hole meshes are stitched; or maximum boundary ID of all the stitched hole meshes + 1.

    C++ Type:BoundaryName

    Unit:(no unit assumed)

    Controllable:No

    Description:Boundary name to set on new outer boundary. Default ID: 0 if no hole meshes are stitched; or maximum boundary ID of all the stitched hole meshes + 1.

  • output_subdomain_nameSubdomain name to set on new triangles.

    C++ Type:SubdomainName

    Unit:(no unit assumed)

    Controllable:No

    Description:Subdomain name to set on new triangles.

  • smooth_triangulationFalseWhether to do Laplacian mesh smoothing on the generated triangles.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether to do Laplacian mesh smoothing on the generated triangles.

  • stitch_holesWhether to stitch to the mesh defining each hole.

    C++ Type:std::vector<bool>

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether to stitch to the mesh defining each hole.

  • verbose_stitchingFalseWhether mesh hole stitching should have verbose output.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether mesh hole stitching should have verbose output.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • save_with_nameKeep the mesh from this mesh generator in memory with the name specified

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:Keep the mesh from this mesh generator in memory with the name specified

Advanced Parameters

  • nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)

  • outputFalseWhether or not to output the mesh file after generating the mesh

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to output the mesh file after generating the mesh

  • show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

Debugging Parameters