- boundaryThe input MeshGenerator defining the output outer boundary. The input mesh (the output mesh of the input mesh generator) can either include 3D volume elements or 2D surface elements.
C++ Type:MeshGeneratorName
Controllable:No
Description:The input MeshGenerator defining the output outer boundary. The input mesh (the output mesh of the input mesh generator) can either include 3D volume elements or 2D surface elements.
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.
The "boundary" input mesh can either include 2D surface elements or 3D volume elements whose external faces comprise the boundary manifold. If the "boundary" input mesh contains volume elements with non-Tri3 surface sides or non-Tri3 surface elements, the elements (from the entire boundary input mesh) can be converted automatically by this mesh generator to ensure Tri-3 surface elements.
The "holes" input mesh can contain either all 3D volume elements, or all 2D surface elements. If one of the "holes" meshes contains non-Tri3 surface elements, or volume elements with non-Tri3 side elements on its external surface, the elements (from the entire holes) can be converted automatically by this mesh generator to ensure Tri-3 surface elements.
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. If a hole mesh contains volume elements with non-Tri3 surface sides, it cannot be stitched with the output mesh without modifications. "convert_holes_for_stitching" needs to be set as true
to allow the stitching of such hole meshes after modifications.
In distributed mesh mode, the "boundary" input mesh is temporarily serialized when it is set to be stitched with at least one of the "holes" input meshes. Additionally, the "holes" input meshes are always temporarily serialized to ensure compatibility with required processing methods.
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
- algorithmBINARYControl the use of binary search for the nodes of the stitched surfaces.
Default:BINARY
C++ Type:MooseEnum
Controllable:No
Description:Control the use of binary search for the nodes of the stitched surfaces.
- convert_holes_for_stitchingFalseWhether to convert the 3D hole meshes with non-TRI3 surface sides into all-TET4 meshes to allow stitching.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to convert the 3D hole meshes with non-TRI3 surface sides into all-TET4 meshes to allow stitching.
- 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>
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 create meshes defining the holes. A hole mesh must contain either 3D volume elements where the external surface of the mesh works as the closed manifold that defines the hole, or 2D surface elements that form the closed manifold that defines the hole.
C++ Type:std::vector<MeshGeneratorName>
Controllable:No
Description:The MeshGenerators that create meshes defining the holes. A hole mesh must contain either 3D volume elements where the external surface of the mesh works as the closed manifold that defines the hole, or 2D surface elements that form the closed manifold that defines the hole.
- 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
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
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
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>
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
Controllable:No
Description:Whether mesh hole stitching should have verbose output.
Optional Parameters
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
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
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
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
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
Controllable:No
Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)