- elem_typeThe type of element from libMesh to generate
C++ Type:MooseEnum
Controllable:No
Description:The type of element from libMesh to generate
- nodal_positionsThe x,y,z positions of the nodes
C++ Type:std::vector<libMesh::Point>
Controllable:No
Description:The x,y,z positions of the nodes
ElementGenerator
Generates individual elements given a list of nodal positions.
Overview
This MeshGenerator object allows the user to create a single element (it is possible to create a simple mesh by adding elements one by one).
The user has to provide the positions of the nodes for their element, as well as the type of element they want (QUAD4, TRI3,...) and the element node connectivity.
The reader is referred to the libmesh documentation and doxygen for the conventions on node connectivity in a type of element to create a well formed, positive-volume, non self-intersecting, element.
Further ElementGenerator Documentation
Input Parameters
- create_sidesetsFalseCreate separate sidesets for each side. The side index is used as the boundary ID for each sideset.
Default:False
C++ Type:bool
Controllable:No
Description:Create separate sidesets for each side. The side index is used as the boundary ID for each sideset.
- element_connectivityList of nodes to use for each element.
C++ Type:std::vector<unsigned long>
Controllable:No
Description:List of nodes to use for each element.
- inputOptional input mesh to add the elements to
C++ Type:MeshGeneratorName
Controllable:No
Description:Optional input mesh to add the elements to
- polygon_faces_connectivityList of nodes to use for each face of the polygon faces of the polyhedron. Only use this parameter for a polyhedron 'elem_type'
C++ Type:std::vector<std::vector<unsigned long>>
Controllable:No
Description:List of nodes to use for each face of the polygon faces of the polyhedron. Only use this parameter for a polyhedron 'elem_type'
- subdomain_id0Subdomain id
Default:0
C++ Type:unsigned short
Controllable:No
Description:Subdomain id
- subdomain_nameSubdomain name
C++ Type:SubdomainName
Controllable:No
Description:Subdomain name
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)
Debugging Parameters
Input Files
- (test/tests/meshgenerators/mesh_diagnostics_generator/elem_types_test.i)
- (test/tests/meshgenerators/mesh_diagnostics_generator/conformality_test.i)
- (test/tests/meshgenerators/element_generator/chained.i)
- (test/tests/meshgenerators/element_generator/polyhedra_prisms.i)
- (modules/heat_transfer/test/tests/view_factors/view_factor_3d_non_planar_face.i)
- (test/tests/meshgenerators/elements_to_tetrahedrons_convertor/prism_elems.i)
- (test/tests/meshgenerators/move_node_generator/test3.i)
- (test/tests/meshgenerators/xyz_delaunay_generator/err_xyzdelaunay_with_holes_mix.i)
- (test/tests/meshgenerators/mesh_repair_generator/mixed_elements.i)
- (test/tests/meshgenerators/add_meta_data_generator/meshmetadata_assign.i)
- (test/tests/meshgenerators/spiral_annular_mesh_generator/spiral_annular_mesh_generator2.i)
- (test/tests/meshgenerators/elements_to_tetrahedrons_convertor/pyramid_elems.i)
- (test/tests/meshgenerators/element_generator/polyhedra_platonic.i)
- (test/tests/meshgenerators/mesh_repair_generator/overlapping_fix_test.i)
- (test/tests/meshgenerators/mesh_diagnostics_generator/min_test.i)
- (test/tests/meshgenerators/element_generator/polyhedra_archimedean.i)
- (test/tests/meshgenerators/move_node_generator/test.i)
- (test/tests/meshgenerators/element_generator/polygon.i)
- (test/tests/meshgenerators/elements_to_tetrahedrons_convertor/hex_elems.i)
- (test/tests/meshgenerators/mesh_diagnostics_generator/max_test.i)
- (test/tests/meshgenerators/element_generator/element_generator.i)
- (test/tests/meshgenerators/mesh_diagnostics_generator/conformality_test_3d.i)
- (test/tests/meshgenerators/parsed_element_deletion_generator/cut_the_small.i)
- (test/tests/meshgenerators/mesh_repair_generator/flip_element.i)
- (test/tests/meshgenerators/mesh_diagnostics_generator/jacobian_test.i)
- (test/tests/meshgenerators/mesh_diagnostics_generator/non_planar_test.i)
- (test/tests/meshgenerators/mesh_diagnostics_generator/node_based_test.i)
(test/tests/meshgenerators/mesh_diagnostics_generator/elem_types_test.i)
[Mesh]
[copy1]
type = ElementGenerator
nodal_positions = '0 0 0
2 2 0
2 0 0'
element_connectivity = '0 1 2'
elem_type = 'TRI3'
[]
[copy2]
type = ElementGenerator
nodal_positions = '0 1 0
0 3 0
2 3 0
2 1 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[cmbn]
type = CombinerGenerator
inputs = 'copy1 copy2'
[]
[diag]
type = MeshDiagnosticsGenerator
input = cmbn
examine_element_types = INFO
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/mesh_diagnostics_generator/conformality_test.i)
[Mesh]
[copy1]
type = ElementGenerator
nodal_positions = '4 2 0
8 2 0
8 5 0
4 5 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[gen]
input = copy1
type = RenameBlockGenerator
old_block = "0"
new_block = "1"
[]
[copy2]
type = ElementGenerator
nodal_positions = '8.001 2 0
12 2 0
12 5 0
8.001 3.5 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[stitched]
type = StitchedMeshGenerator
inputs = 'gen copy2'
stitch_boundaries_pairs = '0 1'
[]
[diag]
type = MeshDiagnosticsGenerator
input = stitched
examine_non_conformality = INFO
nonconformal_tol = 0.1
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/element_generator/chained.i)
[Mesh]
[./eg]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0
0 1 0'
element_connectivity = '0 1 2 3'
elem_type = "QUAD4"
[]
[./eg2]
type = ElementGenerator
input = eg
nodal_positions = '0 0 0
-1 0 0
-1 -1 0
0 -1 0'
element_connectivity = '0 1 2 3'
elem_type = "QUAD4"
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/element_generator/polyhedra_prisms.i)
dx = 2
[Mesh]
[triangular_prism]
type = ElementGenerator
nodal_positions = "0 0 0
1 0 0
0 1 0
0 0 1
1 0 1
0 1 1"
polygon_faces_connectivity = '0 2 1; 0 1 4 3; 1 2 5 4; 2 0 3 5; 3 4 5'
elem_type = "C0POLYHEDRON"
subdomain_name = 'triangular_prism'
[]
# cube is covered as a platonic solid
[pentagon_prism]
type = ElementGenerator
input = 'triangular_prism'
nodal_positions = "${fparse dx + 0} -1 0
${fparse dx + -1} 0 0
${fparse dx + -1} 1 0
${fparse dx + 1} 1 0
${fparse dx + 1} 0 0
${fparse dx + 0} -1 1
${fparse dx + -1} 0 1
${fparse dx + -1} 1 1
${fparse dx + 1} 1 1
${fparse dx + 1} 0 1"
polygon_faces_connectivity = '0 1 2 3 4; 0 1 6 5; 1 2 7 6; 2 3 8 7; 3 4 9 8; 4 0 5 9; 5 6 7 8 9'
elem_type = "C0POLYHEDRON"
subdomain_name = "pentagon_prism"
subdomain_id = 1
[]
[hexagon_prism]
type = ElementGenerator
input = 'pentagon_prism'
nodal_positions = "${fparse 2*dx + 0} -2 0
${fparse 2*dx + -1} -1 0
${fparse 2*dx + -1} 1 0
${fparse 2*dx + 0} 2 0
${fparse 2*dx + 1} 1 0
${fparse 2*dx + 1} -1 0
${fparse 2*dx + 0} -2 1
${fparse 2*dx + -1} -1 1
${fparse 2*dx + -1} 1 1
${fparse 2*dx + 0} 2 1
${fparse 2*dx + 1} 1 1
${fparse 2*dx + 1} -1 1"
polygon_faces_connectivity = '0 1 2 3 4 5; 0 1 7 6; 1 2 8 7; 2 3 9 8; 3 4 10 9; 4 5 11 10; 5 0 6 11; 6 7 8 9 10 11'
elem_type = "C0POLYHEDRON"
subdomain_name = "hexagon_prism"
subdomain_id = 2
[]
[heptagon_prism]
type = ElementGenerator
input = 'hexagon_prism'
nodal_positions = "${fparse 3*dx + 0} -2 0
${fparse 3*dx + -1} -1 0
${fparse 3*dx + -1} 0 0
${fparse 3*dx + -0.5} 0.5 0
${fparse 3*dx + 0.5} 0.5 0
${fparse 3*dx + 1} 0 0
${fparse 3*dx + 1} -1 0
${fparse 3*dx + 0} -2 1
${fparse 3*dx + -1} -1 1
${fparse 3*dx + -1} 0 1
${fparse 3*dx + -0.5} 0.5 1
${fparse 3*dx + 0.5} 0.5 1
${fparse 3*dx + 1} 0 1
${fparse 3*dx + 1} -1 1"
polygon_faces_connectivity = '0 1 2 3 4 5 6; 0 1 8 7; 1 2 9 8; 2 3 10 9; 3 4 11 10; 4 5 12 11; 5 6 13 12; 6 0 7 13; 7 8 9 10 11 12 13'
elem_type = "C0POLYHEDRON"
subdomain_name = "heptagon_prism"
subdomain_id = 3
[]
[octogon_prism]
type = ElementGenerator
input = 'heptagon_prism'
nodal_positions = "${fparse 4*dx + 0.5} -1.5 0
${fparse 4*dx + -0.5} -1.5 0
${fparse 4*dx + -1} -1 0
${fparse 4*dx + -1} 0 0
${fparse 4*dx + -0.5} 0.5 0
${fparse 4*dx + 0.5} 0.5 0
${fparse 4*dx + 1} 0 0
${fparse 4*dx + 1} -1 0
${fparse 4*dx + 0.5} -1.5 1
${fparse 4*dx + -0.5} -1.5 1
${fparse 4*dx + -1} -1 1
${fparse 4*dx + -1} 0 1
${fparse 4*dx + -0.5} 0.5 1
${fparse 4*dx + 0.5} 0.5 1
${fparse 4*dx + 1} 0 1
${fparse 4*dx + 1} -1 1"
polygon_faces_connectivity = '0 1 2 3 4 5 6 7; 0 1 9 8; 1 2 10 9; 2 3 11 10; 3 4 12 11; 4 5 13 12; 5 6 14 13; 6 7 15 14; 7 0 8 15; 8 9 10 11 12 13 14 15'
elem_type = "C0POLYHEDRON"
subdomain_name = "octogon_prism"
subdomain_id = 4
[]
[convert]
type = ElementsToTetrahedronsConverter
input = 'octogon_prism'
[]
[check]
type = MeshDiagnosticsGenerator
input = 'convert'
examine_element_overlap = WARNING
examine_element_types = WARNING
examine_element_volumes = WARNING
examine_nonplanar_sides = INFO
check_local_jacobian = WARNING
[]
[]
(modules/heat_transfer/test/tests/view_factors/view_factor_3d_non_planar_face.i)
[GlobalParams]
view_factor_object_name = rt_vf
[]
[Mesh]
[with_a_non_planar]
type = ElementGenerator
nodal_positions = '-1 -1 0
1 -1 0
1 1 0
-1 1 0
-1 -1 2
1 -1 2
1 1 2
-1 1 1'
element_connectivity = '0 1 2 3 4 5 6 7'
elem_type = 'HEX8'
[]
[sides]
type = SideSetsFromAllNormalsGenerator
input = with_a_non_planar
[]
[rename]
type = RenameBoundaryGenerator
input = sides
old_boundary = '1 2 3 4 5 6'
new_boundary = 'bottom front left back right top'
[]
[]
[UserObjects]
[vf_study]
type = ViewFactorRayStudy
execute_on = INITIAL
boundary = 'bottom front left back right top'
face_order = CONSTANT
polar_quad_order = 3
azimuthal_quad_order = 200
face_type = GAUSS
warn_non_planar = false
[]
[rt_vf]
type = RayTracingViewFactor
boundary = 'bottom front left back right top'
execute_on = INITIAL
ray_study_name = vf_study
normalize_view_factor = false
[]
[]
[RayBCs]
[vf]
type = ViewFactorRayBC
boundary = 'left right front back bottom top'
[]
[]
## For convenience, the "view_factor_object_name" for these
## PPs are set in global params for switching between methods
[Postprocessors]
[top_bottom]
type = ViewFactorPP
from_boundary = top
to_boundary = bottom
[]
[top_left]
type = ViewFactorPP
from_boundary = top
to_boundary = left
[]
[top_right]
type = ViewFactorPP
from_boundary = top
to_boundary = right
[]
[top_front]
type = ViewFactorPP
from_boundary = top
to_boundary = front
[]
[top_back]
type = ViewFactorPP
from_boundary = top
to_boundary = back
[]
[sum]
type = ParsedPostprocessor
expression = 'top_back + top_bottom + top_front + top_right + top_left'
pp_names = 'top_back top_bottom top_front top_right top_left'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[Quadrature] # higher order quadrature for unobstructed
order = SECOND
[]
[]
[Outputs]
csv = true
[]
(test/tests/meshgenerators/elements_to_tetrahedrons_convertor/prism_elems.i)
p0 = '0 0 0'
p1 = '1 0 0'
p2 = '1 1 0'
p3 = '0 0 1'
p4 = '1 0 1'
p5 = '1 1 1'
[Mesh]
[prism6_0]
type = ElementGenerator
elem_type = PRISM6
create_sidesets = true
element_connectivity = '0 1 2 3 4 5'
nodal_positions = '${p0} ${p1} ${p2} ${p3} ${p4} ${p5}'
[]
[prism6_1]
type = ElementGenerator
elem_type = PRISM6
create_sidesets = true
element_connectivity = '2 0 1 5 3 4'
nodal_positions = '${p1} ${p2} ${p0} ${p4} ${p5} ${p3}'
[]
[prism6_2]
type = ElementGenerator
elem_type = PRISM6
create_sidesets = true
element_connectivity = '1 2 0 4 5 3'
nodal_positions = '${p2} ${p0} ${p1} ${p5} ${p3} ${p4}'
[]
[prism6_3]
type = ElementGenerator
elem_type = PRISM6
create_sidesets = true
element_connectivity = '3 5 4 0 2 1'
nodal_positions = '${p3} ${p5} ${p4} ${p0} ${p2} ${p1}'
[]
[prism6_4]
type = ElementGenerator
elem_type = PRISM6
create_sidesets = true
element_connectivity = '4 3 5 1 0 2'
nodal_positions = '${p4} ${p3} ${p5} ${p1} ${p0} ${p2}'
[]
[prism6_5]
type = ElementGenerator
elem_type = PRISM6
create_sidesets = true
element_connectivity = '5 4 3 2 1 0'
nodal_positions = '${p5} ${p4} ${p3} ${p2} ${p1} ${p0}'
[]
[cmb]
type = CombinerGenerator
inputs = 'prism6_0 prism6_1 prism6_2
prism6_3 prism6_4 prism6_5'
positions = '0 0 0 2 0 0 4 0 0
0 2 0 2 2 0 4 2 0'
[]
[convert]
type = ElementsToTetrahedronsConverter
input = cmb
[]
[]
(test/tests/meshgenerators/move_node_generator/test3.i)
[Mesh]
[eg]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0'
element_connectivity = '0 1 2'
elem_type = "TRI3"
[]
[modifyNode]
type = MoveNodeGenerator
input = eg
node_id = '0 1 2'
shift_position = '-1 0 0
0 1 0
0 2 0'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/xyz_delaunay_generator/err_xyzdelaunay_with_holes_mix.i)
[Mesh]
[fmg]
type = FileMeshGenerator
file = 'gold/2d_cube.e'
[]
[outer_bdy]
type = ParsedNodeTransformGenerator
input = fmg
x_function = "x"
y_function = "y"
z_function = "z+x*y*z"
[]
[hole_1_2d]
type = ParsedNodeTransformGenerator
input = fmg
x_function = ".25+.125*x"
y_function = ".25+.125*y"
z_function = ".25+.125*z"
[]
[hole_1]
type = ElementGenerator
input = 'hole_1_2d'
elem_type = TET4
nodal_positions = '0 0 0
0 1 0
1 0 0
0 0 1'
element_connectivity = '0 1 2 3'
[]
[hole_2]
type = ParsedNodeTransformGenerator
input = fmg
x_function = ".75+.125*x"
y_function = ".75+.125*y"
z_function = ".75+.125*z"
[]
[triang]
type = XYZDelaunayGenerator
boundary = 'outer_bdy'
holes = 'hole_1
hole_2'
# Let NetGen know interior points are okay
desired_volume = 100000
[]
[]
(test/tests/meshgenerators/mesh_repair_generator/mixed_elements.i)
[Mesh]
[dir1]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
0 1 0'
element_connectivity = '0 1 2'
elem_type = 'TRI3'
[]
[dir2]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0
0 1 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[combine]
type = CombinerGenerator
inputs = 'dir1 dir2'
[]
[separate]
type = MeshRepairGenerator
input = 'combine'
separate_blocks_by_element_types = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Reporters]
[mesh]
type = MeshInfo
outputs = json
items = 'subdomains'
[]
[]
[Outputs]
[json]
type = JSON
execute_system_information_on = NONE
[]
[]
(test/tests/meshgenerators/add_meta_data_generator/meshmetadata_assign.i)
[GlobalParams]
point_vector_metadata_values = '2.0 -1.0 3.0 2.0 2.0 -1.0;5.0 -2.0 3.0 1.0 -3.0 -2.0 4.0 -1.0 -2.5'
[]
[Mesh]
[eg]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0
0 1 0'
element_connectivity = '0 1 2 3'
elem_type = "QUAD4"
[]
[amdg]
type = AddMetaDataGenerator
input = eg
real_scalar_metadata_names = 'rs_1 rs_2'
real_scalar_metadata_values = '1.234 12.34'
uint_scalar_metadata_names = 'uis_1'
uint_scalar_metadata_values = '1234'
int_scalar_metadata_names = 'is_1 is_2 is_3'
int_scalar_metadata_values = '-1234 4321 -5678'
dof_id_type_scalar_metadata_names = 'ds_1 ds_2'
dof_id_type_scalar_metadata_values = '12 123'
subdomain_id_type_scalar_metadata_names = 'ss_1 ss_2'
subdomain_id_type_scalar_metadata_values = '21 321'
boolean_scalar_metadata_names = 'bs_1 bs_2 bs_3'
boolean_scalar_metadata_values = 'false true false'
point_scalar_metadata_names = 'ps_1 ps_2'
point_scalar_metadata_values = '1.0 -2.0 3.5
-2.0 3.0 -1.5'
real_vector_metadata_names = 'rv_1 rv_2'
real_vector_metadata_values = '1.234 12.34 123.4;4.321 43.21'
uint_vector_metadata_names = 'uiv_1'
uint_vector_metadata_values = '1234 567 89'
int_vector_metadata_names = 'iv_1 iv_2 iv_3'
int_vector_metadata_values = '-1234 4321;-567 89;98 76 54'
dof_id_type_vector_metadata_names = 'dv_1 dv_2'
dof_id_type_vector_metadata_values = '12 123; 45 678 9'
subdomain_id_type_vector_metadata_names = 'sv_1 sv_2'
subdomain_id_type_vector_metadata_values = '21 321; 9 876 54'
point_vector_metadata_names = 'pv_1 pv_2'
[]
[test_meta]
type = TestMeshMetaData
input = amdg
[]
[]
(test/tests/meshgenerators/spiral_annular_mesh_generator/spiral_annular_mesh_generator2.i)
[Mesh]
[./samg]
type = SpiralAnnularMeshGenerator
input = eg
use_tri6 = false
inner_radius = 2
nodes_per_ring = 12
outer_radius = 7
num_rings = 5
[]
[./eg2]
type = ElementGenerator
input = samg
nodal_positions = '0 0 0
-5 0 0
0 5 0'
element_connectivity = '0 1 2'
elem_type = TRI3
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/elements_to_tetrahedrons_convertor/pyramid_elems.i)
p0 = '0 0 0'
p1 = '1 0 0'
p2 = '1 1 0'
p3 = '0 1 0'
p4 = '0.5 0.5 1'
[Mesh]
[pyramid5_0]
type = ElementGenerator
elem_type = PYRAMID5
create_sidesets = true
element_connectivity = '0 1 2 3 4'
nodal_positions = '${p0} ${p1} ${p2} ${p3} ${p4}'
[]
[pyramid5_1]
type = ElementGenerator
elem_type = PYRAMID5
create_sidesets = true
element_connectivity = '3 0 1 2 4'
nodal_positions = '${p1} ${p2} ${p3} ${p0} ${p4}'
[]
[pyramid5_2]
type = ElementGenerator
elem_type = PYRAMID5
create_sidesets = true
element_connectivity = '2 3 0 1 4'
nodal_positions = '${p2} ${p3} ${p0} ${p1} ${p4}'
[]
[pyramid5_3]
type = ElementGenerator
elem_type = PYRAMID5
create_sidesets = true
element_connectivity = '1 2 3 0 4'
nodal_positions = '${p3} ${p0} ${p1} ${p2} ${p4}'
[]
[cmb]
type = CombinerGenerator
inputs = 'pyramid5_0 pyramid5_1
pyramid5_2 pyramid5_3'
positions = '0 0 0 2 0 0
0 2 0 2 2 0'
[]
[convert]
type = ElementsToTetrahedronsConverter
input = cmb
[]
[]
(test/tests/meshgenerators/element_generator/polyhedra_platonic.i)
dx = 3.5
phi = ${fparse (1 + sqrt(5)) / 2}
phi_inv = ${fparse 1./phi}
a = 1.5
b = 2
c = 1.5
[Mesh]
[tetrahedron]
type = ElementGenerator
nodal_positions = "${a} ${a} ${a}
${a} -${a} -${a}
-${a} ${a} -${a}
-${a} -${a} ${a}"
polygon_faces_connectivity = '0 2 1; 0 1 3; 1 2 3; 2 0 3'
elem_type = "C0POLYHEDRON"
[]
[cube]
type = ElementGenerator
input = 'tetrahedron'
nodal_positions = '${fparse dx + 0 -0.7 } ${fparse -b / 2} ${fparse -b / 2}
${fparse dx + ${b} -0.7 } ${fparse -b / 2} ${fparse -b / 2}
${fparse dx + ${b} -0.7 } ${fparse b / 2} ${fparse -b / 2}
${fparse dx + 0 -0.7 } ${fparse b / 2} ${fparse -b / 2}
${fparse dx + 0 -0.7 } ${fparse -b / 2} ${fparse b / 2}
${fparse dx + ${b} -0.7 } ${fparse -b / 2} ${fparse b / 2}
${fparse dx + ${b} -0.7 } ${fparse b / 2} ${fparse b / 2}
${fparse dx + 0 -0.7 } ${fparse b / 2} ${fparse b / 2}'
polygon_faces_connectivity = '0 3 2 1;
0 1 5 4;
1 2 6 5;
2 3 7 6;
3 0 4 7;
4 5 6 7'
elem_type = "C0POLYHEDRON"
subdomain_id = 1
subdomain_name = 'cube'
[]
[octahedron]
type = ElementGenerator
input = 'cube'
nodal_positions = '${fparse 2 * dx + c} 0 0
${fparse 2 * dx + 0} ${c} 0
${fparse 2 * dx + 0} ${fparse -c} 0
${fparse 2 * dx -c} 0 0
${fparse 2 * dx + 0} 0 ${c}
${fparse 2 * dx + 0} 0 ${fparse -c}'
polygon_faces_connectivity = '4 0 1; 4 0 2; 4 1 3; 4 2 3;
5 0 1; 5 0 2; 5 1 3; 5 2 3'
elem_type = "C0POLYHEDRON"
subdomain_id = 2
subdomain_name = 'octahedron'
[]
[dodecahedron]
type = ElementGenerator
input = 'octahedron'
nodal_positions = '${fparse 3 * dx + 1} 1 1
${fparse 3 * dx + 1} 1 -1
${fparse 3 * dx + 1} -1 1
${fparse 3 * dx + 1} -1 -1
${fparse 3 * dx - 1} 1 1
${fparse 3 * dx - 1} 1 -1
${fparse 3 * dx - 1} -1 1
${fparse 3 * dx - 1} -1 -1
${fparse 3 * dx + 0} ${phi} ${phi_inv}
${fparse 3 * dx + 0} ${fparse -phi} ${phi_inv}
${fparse 3 * dx + 0} ${phi} ${fparse -phi_inv}
${fparse 3 * dx + 0} ${fparse -phi} ${fparse -phi_inv}
${fparse 3 * dx + phi} ${phi_inv} 0
${fparse 3 * dx - phi} ${phi_inv} 0
${fparse 3 * dx + phi} ${fparse -phi_inv} 0
${fparse 3 * dx - phi} ${fparse -phi_inv} 0
${fparse 3 * dx + phi_inv} 0 ${phi}
${fparse 3 * dx + phi_inv} 0 ${fparse -phi}
${fparse 3 * dx - phi_inv} 0 ${fparse phi}
${fparse 3 * dx - phi_inv} 0 ${fparse -phi}'
polygon_faces_connectivity = '2 9 6 18 16;
2 16 0 12 14;
14 12 1 17 3;
7 11 3 17 19;
7 11 9 6 15;
2 14 3 11 9;
15 13 4 18 6;
18 4 8 0 16;
0 8 10 1 12;
1 17 19 5 10;
19 5 13 15 7;
13 4 8 10 5'
elem_type = "C0POLYHEDRON"
subdomain_id = 3
subdomain_name = 'dodecahedron'
[]
[icosahedron]
type = ElementGenerator
input = 'dodecahedron'
nodal_positions = '${fparse 4 * dx + 1} 0 ${phi}
${fparse 4 * dx - 1} 0 ${phi}
${fparse 4 * dx + 1} 0 -${phi}
${fparse 4 * dx - 1} 0 -${phi}
${fparse 4 * dx + phi} -1 0
${fparse 4 * dx + phi} 1 0
${fparse 4 * dx + -phi} 1 0
${fparse 4 * dx + -phi} -1 0
${fparse 4 * dx + 0} -${phi} 1
${fparse 4 * dx + 0} ${phi} 1
${fparse 4 * dx + 0} -${phi} -1
${fparse 4 * dx + 0} ${phi} -1
'
polygon_faces_connectivity = '0 8 4;
0 4 5;
0 5 9;
0 9 1;
0 1 8;
3 2 11;
3 11 6;
3 6 7;
3 7 10;
3 10 2;
5 11 9;
11 9 6;
6 9 1;
6 1 7;
7 1 8;
8 7 10;
8 10 4;
10 4 2;
4 2 5;
2 5 11'
elem_type = "C0POLYHEDRON"
subdomain_id = 4
subdomain_name = 'icosahedron'
[]
[convert]
type = ElementsToTetrahedronsConverter
input = 'icosahedron'
[]
[check]
type = MeshDiagnosticsGenerator
input = 'convert'
examine_element_overlap = WARNING
examine_element_types = WARNING
examine_element_volumes = WARNING
examine_nonplanar_sides = INFO
check_local_jacobian = WARNING
[]
[]
[Postprocessors]
[vol]
type = VolumePostprocessor
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/meshgenerators/mesh_repair_generator/overlapping_fix_test.i)
[Mesh]
[dir1]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
0 1 0'
element_connectivity = '0 1 2'
elem_type = 'TRI3'
[]
[dir2]
type = ElementGenerator
nodal_positions = '1 1 0
1 0 0
0 1 0'
element_connectivity = '0 1 2'
elem_type = 'TRI3'
[]
[combine]
type = CombinerGenerator
inputs = 'dir1 dir2'
[]
[diag]
type = MeshRepairGenerator
input = combine
fix_node_overlap = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Reporters]
[mesh]
type = MeshInfo
outputs = json
items = 'num_nodes'
[]
[]
[Outputs]
[json]
type = JSON
execute_system_information_on = NONE
[]
[]
(test/tests/meshgenerators/mesh_diagnostics_generator/min_test.i)
[Mesh]
[elem_maker]
type = ElementGenerator
nodal_positions = '0 0 0
0 1 0
1 0 0
1 1 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[diag]
type = MeshDiagnosticsGenerator
input = elem_maker
minimum_element_volumes = 1
examine_element_volumes = ERROR
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/element_generator/polyhedra_archimedean.i)
dx = 3.5
silver = ${fparse 1 + sqrt(2)}
one_ds = ${fparse 1 / silver}
[Mesh]
[truncated_tetrahedron]
type = ElementGenerator
nodal_positions = " ${fparse -sqrt(2) / 4} ${fparse -3*sqrt(2) / 4} ${fparse sqrt(2) / 4}
${fparse 3*sqrt(2) / 4} ${fparse -sqrt(2) / 4} ${fparse -sqrt(2) / 4}
${fparse 3*sqrt(2) / 4} ${fparse sqrt(2) / 4} ${fparse sqrt(2) / 4}
${fparse sqrt(2) / 4} ${fparse sqrt(2) / 4} ${fparse 3*sqrt(2) / 4}
${fparse -sqrt(2) / 4} ${fparse -sqrt(2) / 4} ${fparse 3*sqrt(2) / 4}
${fparse sqrt(2) / 4} ${fparse -3*sqrt(2) / 4} ${fparse -sqrt(2) / 4}
${fparse -3*sqrt(2) / 4} ${fparse sqrt(2) / 4} ${fparse -sqrt(2) / 4}
${fparse -3*sqrt(2) / 4} ${fparse -sqrt(2) / 4} ${fparse sqrt(2) / 4}
${fparse -sqrt(2) / 4} ${fparse 3*sqrt(2) / 4} ${fparse -sqrt(2) / 4}
${fparse sqrt(2) / 4} ${fparse 3*sqrt(2) / 4} ${fparse sqrt(2) / 4}
${fparse -sqrt(2) / 4} ${fparse sqrt(2) / 4} ${fparse -3*sqrt(2) / 4}
${fparse sqrt(2) / 4} ${fparse -sqrt(2) / 4} ${fparse -3*sqrt(2) / 4}"
polygon_faces_connectivity = '2 3 9;
1 5 11;
0 4 7;
10 8 6;
0 5 1 2 3 4;
6 7 0 5 11 10;
7 4 3 9 8 6;
2 9 8 10 11 1'
elem_type = "C0POLYHEDRON"
subdomain_id = 0
subdomain_name = 'truncated_tetrahedron'
[]
[cuboctahedron]
type = ElementGenerator
input = 'truncated_tetrahedron'
nodal_positions = '${fparse dx + 1} 1 ${fparse sqrt(2)}
${fparse dx + 1} -1 ${fparse sqrt(2)}
${fparse dx -1} -1 ${fparse sqrt(2)}
${fparse dx -1} 1 ${fparse sqrt(2)}
${fparse dx + 2} 0 0
${fparse dx} ${fparse 2} 0
${fparse dx - 2} 0 0
${fparse dx} -${fparse 2} 0
${fparse dx + 1} 1 -${fparse sqrt(2)}
${fparse dx + 1} -1 -${fparse sqrt(2)}
${fparse dx -1} -1 -${fparse sqrt(2)}
${fparse dx -1} 1 -${fparse sqrt(2)}'
polygon_faces_connectivity = '0 1 2 3;
0 1 4;
0 4 8 5;
0 5 3;
3 5 11 6;
3 6 2;
2 6 10 7;
2 7 1;
1 7 9 4;
8 9 4;
8 11 5;
10 11 6;
9 10 7;
8 9 10 11'
elem_type = "C0POLYHEDRON"
subdomain_id = 1
subdomain_name = 'cuboctahedron'
[]
[truncated_cube]
type = ElementGenerator
input = 'cuboctahedron'
nodal_positions = '${fparse 2 * dx + one_ds} 1 1
${fparse 2 * dx + 1} ${one_ds} 1
${fparse 2 * dx + 1} -${one_ds} 1
${fparse 2 * dx + one_ds} -1 1
${fparse 2 * dx -one_ds} -1 1
${fparse 2 * dx -1} -${one_ds} 1
${fparse 2 * dx -1} ${one_ds} 1
${fparse 2 * dx -one_ds} 1 1
${fparse 2 * dx -1} 1 ${one_ds}
${fparse 2 * dx + 1} 1 ${one_ds}
${fparse 2 * dx + 1} -1 ${one_ds}
${fparse 2 * dx -1} -1 ${one_ds}
${fparse 2 * dx -1} 1 -${one_ds}
${fparse 2 * dx + 1} 1 -${one_ds}
${fparse 2 * dx + 1} -1 -${one_ds}
${fparse 2 * dx -1} -1 -${one_ds}
${fparse 2 * dx + one_ds} -1 -1
${fparse 2 * dx + 1} -${one_ds} -1
${fparse 2 * dx + 1} ${one_ds} -1
${fparse 2 * dx + one_ds} 1 -1
${fparse 2 * dx -one_ds} -1 -1
${fparse 2 * dx -1} -${one_ds} -1
${fparse 2 * dx -1} ${one_ds} -1
${fparse 2 * dx -one_ds} 1 -1'
polygon_faces_connectivity = '0 1 2 3 4 5 6 7;
0 1 9;
6 7 8;
5 4 11;
3 2 10;
2 1 9 13 18 17 14 10;
4 3 10 14 16 20 15 11;
6 5 11 15 21 22 12 8;
0 7 8 12 23 19 13 9;
13 18 19;
14 16 17;
15 21 20;
12 23 22;
16 17 18 19 23 22 21 20'
elem_type = "C0POLYHEDRON"
subdomain_id = 2
subdomain_name = 'truncated_cube'
[]
[truncated_octahedron]
type = ElementGenerator
input = 'truncated_cube'
nodal_positions = '${fparse 3 * dx -sqrt(2)} ${fparse sqrt(2)/2} 0
${fparse 3 * dx -sqrt(2)} 0 ${fparse sqrt(2)/2}
${fparse 3 * dx -sqrt(2)} -${fparse sqrt(2)/2} 0
${fparse 3 * dx -sqrt(2)} 0 -${fparse sqrt(2)/2}
${fparse 3 * dx -sqrt(2)/2} ${fparse sqrt(2)} 0
${fparse 3 * dx -sqrt(2)/2} 0 ${fparse sqrt(2)}
${fparse 3 * dx -sqrt(2)/2} -${fparse sqrt(2)} 0
${fparse 3 * dx -sqrt(2)/2} 0 -${fparse sqrt(2)}
${fparse 3 * dx} ${fparse sqrt(2)} ${fparse sqrt(2)/2}
${fparse 3 * dx} ${fparse sqrt(2)/2} ${fparse sqrt(2)}
${fparse 3 * dx} -${fparse sqrt(2)} ${fparse sqrt(2)/2}
${fparse 3 * dx} ${fparse sqrt(2)/2} -${fparse sqrt(2)}
${fparse 3 * dx} ${fparse sqrt(2)} -${fparse sqrt(2)/2}
${fparse 3 * dx} -${fparse sqrt(2)/2} ${fparse sqrt(2)}
${fparse 3 * dx} -${fparse sqrt(2)} -${fparse sqrt(2)/2}
${fparse 3 * dx} -${fparse sqrt(2)/2} -${fparse sqrt(2)}
${fparse 3 * dx + sqrt(2)/2} ${fparse sqrt(2)} 0
${fparse 3 * dx + sqrt(2)/2} 0 ${fparse sqrt(2)}
${fparse 3 * dx + sqrt(2)/2} -${fparse sqrt(2)} 0
${fparse 3 * dx + sqrt(2)/2} 0 -${fparse sqrt(2)}
${fparse 3 * dx + sqrt(2)} ${fparse sqrt(2)/2} 0
${fparse 3 * dx + sqrt(2)} 0 ${fparse sqrt(2)/2}
${fparse 3 * dx + sqrt(2)} -${fparse sqrt(2)/2} 0
${fparse 3 * dx + sqrt(2)} 0 -${fparse sqrt(2)/2}'
polygon_faces_connectivity = '0 1 2 3;
20 21 22 23;
4 8 16 12;
5 9 17 13;
6 10 18 14;
7 11 19 15;
0 4 8 9 5 1;
1 5 13 10 6 2;
2 6 14 15 7 3;
3 7 11 12 4 0;
20 16 8 9 17 21;
21 17 13 10 18 22;
22 18 14 15 19 23;
23 19 11 12 16 20'
elem_type = "C0POLYHEDRON"
subdomain_id = 3
subdomain_name = 'truncated_octahedron'
[]
[rhombicuboctahedron]
type = ElementGenerator
input = 'truncated_octahedron'
nodal_positions = '${fparse 4 * dx -0.5} 0.5 1
${fparse 4 * dx + 0.5} 0.5 1
${fparse 4 * dx + 0.5} -0.5 1
${fparse 4 * dx -0.5} -0.5 1
${fparse 4 * dx + 0.5} -1 0.5
${fparse 4 * dx -0.5} -1 0.5
${fparse 4 * dx + 0.5} -1 -0.5
${fparse 4 * dx -0.5} -1 -0.5
${fparse 4 * dx + 0.5} -0.5 -1
${fparse 4 * dx -0.5} -0.5 -1
${fparse 4 * dx + 0.5} 0.5 -1
${fparse 4 * dx -0.5} 0.5 -1
${fparse 4 * dx + 0.5} 1 -0.5
${fparse 4 * dx -0.5} 1 -0.5
${fparse 4 * dx + 0.5} 1 0.5
${fparse 4 * dx -0.5} 1 0.5
${fparse 4 * dx -1} 0.5 -0.5
${fparse 4 * dx -1} -0.5 -0.5
${fparse 4 * dx -1} 0.5 0.5
${fparse 4 * dx -1} -0.5 0.5
${fparse 4 * dx + 1} -0.5 0.5
${fparse 4 * dx + 1} 0.5 0.5
${fparse 4 * dx + 1} 0.5 -0.5
${fparse 4 * dx + 1} -0.5 -0.5'
polygon_faces_connectivity = '0 1 2 3;
2 3 5 4;
4 5 7 6;
6 7 9 8;
8 9 11 10;
10 11 13 12;
12 13 15 14;
14 15 0 1;
1 2 20 21;
20 21 22 23;
22 23 8 10;
9 11 16 17;
16 17 19 18;
18 19 3 0;
5 7 17 19;
16 18 15 13;
12 14 21 22;
23 20 4 6;
18 15 0;
14 21 1;
2 4 20;
3 5 19;
9 7 17;
8 6 23;
10 22 12;
11 16 13'
elem_type = "C0POLYHEDRON"
subdomain_id = 4
subdomain_name = 'rhombicuboctahedron'
[]
[convert]
type = ElementsToTetrahedronsConverter
input = 'rhombicuboctahedron'
[]
[check]
type = MeshDiagnosticsGenerator
input = 'convert'
examine_element_overlap = WARNING
examine_element_types = WARNING
examine_element_volumes = WARNING
examine_nonplanar_sides = INFO
check_local_jacobian = WARNING
[]
[]
[Postprocessors]
[vol]
type = VolumePostprocessor
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/meshgenerators/move_node_generator/test.i)
[Mesh]
[./eg]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0'
element_connectivity = '0 1 2'
elem_type = "TRI3"
[]
[modifyNode]
type = MoveNodeGenerator
input = eg
node_id = '0 1 2'
new_position = '-1 0 0
0 1 0
0 2 0'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/element_generator/polygon.i)
[Mesh]
[eg]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0
0 1 0'
element_connectivity = '0 1 2 3'
elem_type = "C0POLYGON"
subdomain_name = 'base'
[]
[]
[Postprocessors]
[vol]
type = VolumePostprocessor
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(test/tests/meshgenerators/elements_to_tetrahedrons_convertor/hex_elems.i)
p0 = '0 0 0'
p1 = '1 0 0'
p2 = '1 1 0'
p3 = '0 1 0'
p4 = '0 0 1'
p5 = '1 0 1'
p6 = '1 1 1'
p7 = '0 1 1'
[Mesh]
[hex8_0]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '0 1 2 3 4 5 6 7'
nodal_positions = '${p0} ${p1} ${p2} ${p3} ${p4} ${p5} ${p6} ${p7}'
[]
[hex8_1]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '0 4 5 1 3 7 6 2'
nodal_positions = '${p0} ${p3} ${p7} ${p4} ${p1} ${p2} ${p6} ${p5}'
[]
[hex8_2]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '0 3 7 4 1 2 6 5'
nodal_positions = '${p0} ${p4} ${p5} ${p1} ${p3} ${p7} ${p6} ${p2}'
[]
[hex8_3]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '1 0 4 5 2 3 7 6'
nodal_positions = '${p1} ${p0} ${p4} ${p5} ${p2} ${p3} ${p7} ${p6}'
[]
[hex8_4]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '3 0 1 2 7 4 5 6'
nodal_positions = '${p1} ${p2} ${p3} ${p0} ${p5} ${p6} ${p7} ${p4}'
[]
[hex8_5]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '4 0 3 7 5 1 2 6'
nodal_positions = '${p1} ${p5} ${p6} ${p2} ${p0} ${p4} ${p7} ${p3}'
[]
[hex8_6]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '2 3 0 1 6 7 4 5'
nodal_positions = '${p2} ${p3} ${p0} ${p1} ${p6} ${p7} ${p4} ${p5}'
[]
[hex8_7]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '5 1 0 4 6 2 3 7'
nodal_positions = '${p2} ${p1} ${p5} ${p6} ${p3} ${p0} ${p4} ${p7}'
[]
[hex8_8]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '7 4 0 3 6 5 1 2'
nodal_positions = '${p2} ${p6} ${p7} ${p3} ${p1} ${p5} ${p4} ${p0}'
[]
[hex8_9]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '4 5 1 0 7 6 2 3'
nodal_positions = '${p3} ${p2} ${p6} ${p7} ${p0} ${p1} ${p5} ${p4}'
[]
[hex8_10]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '1 2 3 0 5 6 7 4'
nodal_positions = '${p3} ${p0} ${p1} ${p2} ${p7} ${p4} ${p5} ${p6}'
[]
[hex8_11]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '3 7 4 0 2 6 5 1'
nodal_positions = '${p3} ${p7} ${p4} ${p0} ${p2} ${p6} ${p5} ${p1}'
[]
[hex8_12]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '3 2 6 7 0 1 5 4'
nodal_positions = '${p4} ${p5} ${p1} ${p0} ${p7} ${p6} ${p2} ${p3}'
[]
[hex8_13]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '4 7 6 5 0 3 2 1'
nodal_positions = '${p4} ${p7} ${p6} ${p5} ${p0} ${p3} ${p2} ${p1}'
[]
[hex8_14]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '1 5 6 2 0 4 7 3'
nodal_positions = '${p4} ${p0} ${p3} ${p7} ${p5} ${p1} ${p2} ${p6}'
[]
[hex8_15]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '5 4 7 6 1 0 3 2'
nodal_positions = '${p5} ${p4} ${p7} ${p6} ${p1} ${p0} ${p3} ${p2}'
[]
[hex8_16]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '7 3 2 6 4 0 1 5'
nodal_positions = '${p5} ${p6} ${p2} ${p1} ${p4} ${p7} ${p3} ${p0}'
[]
[hex8_17]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '2 1 5 6 3 0 4 7'
nodal_positions = '${p5} ${p1} ${p0} ${p4} ${p6} ${p2} ${p3} ${p7}'
[]
[hex8_18]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '6 7 3 2 5 4 0 1'
nodal_positions = '${p6} ${p7} ${p3} ${p2} ${p5} ${p4} ${p0} ${p1}'
[]
[hex8_19]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '6 5 4 7 2 1 0 3'
nodal_positions = '${p6} ${p5} ${p4} ${p7} ${p2} ${p1} ${p0} ${p3}'
[]
[hex8_20]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '6 2 1 5 7 3 0 4'
nodal_positions = '${p6} ${p2} ${p1} ${p5} ${p7} ${p3} ${p0} ${p4}'
[]
[hex8_21]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '7 6 5 4 3 2 1 0'
nodal_positions = '${p7} ${p6} ${p5} ${p4} ${p3} ${p2} ${p1} ${p0}'
[]
[hex8_22]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '2 6 7 3 1 5 4 0'
nodal_positions = '${p7} ${p4} ${p0} ${p3} ${p6} ${p5} ${p1} ${p2}'
[]
[hex8_23]
type = ElementGenerator
elem_type = HEX8
create_sidesets = true
element_connectivity = '5 6 2 1 4 7 3 0'
nodal_positions = '${p7} ${p3} ${p2} ${p6} ${p4} ${p0} ${p1} ${p5}'
[]
[cmb]
type = CombinerGenerator
inputs = 'hex8_0 hex8_1 hex8_2 hex8_3 hex8_4 hex8_5 hex8_6 hex8_7
hex8_8 hex8_9 hex8_10 hex8_11 hex8_12 hex8_13 hex8_14 hex8_15
hex8_16 hex8_17 hex8_18 hex8_19 hex8_20 hex8_21 hex8_22 hex8_23'
positions = '0 0 0 2 0 0 4 0 0 6 0 0 8 0 0 10 0 0 12 0 0 14 0 0
0 2 0 2 2 0 4 2 0 6 2 0 8 2 0 10 2 0 12 2 0 14 2 0
0 4 0 2 4 0 4 4 0 6 4 0 8 4 0 10 4 0 12 4 0 14 4 0'
[]
[convert]
type = ElementsToTetrahedronsConverter
input = cmb
[]
[]
(test/tests/meshgenerators/mesh_diagnostics_generator/max_test.i)
[Mesh]
[elem_maker]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0
0 3 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[diag]
type = MeshDiagnosticsGenerator
input = elem_maker
maximum_element_volumes = 0.1
examine_element_volumes = WARNING
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/element_generator/element_generator.i)
[Mesh]
[./eg]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0'
element_connectivity = '0 1 2'
elem_type = "TRI3"
subdomain_name = 'base'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/mesh_diagnostics_generator/conformality_test_3d.i)
[Mesh]
[copy1]
type = ElementGenerator
nodal_positions = '4 4 0
6 4 0
6 6 0
4 6 0
4 4 5
6 4 5
6 6 5
4 6 5'
element_connectivity = '0 1 2 3 4 5 6 7'
elem_type = 'HEX8'
[]
[gen]
input = copy1
type = RenameBlockGenerator
old_block = "0"
new_block = "1"
[]
[copy2]
type = ElementGenerator
nodal_positions = '6 6.001 0
6 8 0
5 8 0
5 6.001 0
6 6.001 5
6 8 5
5 8 5
5 6.001 5'
element_connectivity = '0 1 2 3 4 5 6 7'
elem_type = 'HEX8'
[]
[stitched]
type = StitchedMeshGenerator
inputs = 'gen copy2'
stitch_boundaries_pairs = '0 1'
[]
[diag]
type = MeshDiagnosticsGenerator
input = stitched
examine_non_conformality = INFO
nonconformal_tol = 0.01
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/parsed_element_deletion_generator/cut_the_small.i)
[Mesh]
[elem1]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
1 1 0'
element_connectivity = '0 1 2'
elem_type = "TRI3"
[]
[elem2]
type = ElementGenerator
nodal_positions = '0 0 0
1e-2 0 0
1e-2 1e-2 0'
element_connectivity = '0 1 2'
elem_type = "TRI3"
[]
[combine]
type = CombinerGenerator
inputs = 'elem1 elem2'
[]
[delete]
type = ParsedElementDeletionGenerator
input = combine
expression = 'volume < 0.1'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Reporters]
[mesh]
type = MeshInfo
outputs = json
items = 'num_nodes'
[]
[]
[Outputs]
[json]
type = JSON
execute_system_information_on = NONE
[]
[]
(test/tests/meshgenerators/mesh_repair_generator/flip_element.i)
[Mesh]
[dir1]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
0 1 0'
element_connectivity = '0 1 2'
elem_type = 'TRI3'
[]
[rename]
type = RenameBlockGenerator
input = dir1
old_block = 0
new_block = 1
[]
[dir2]
type = ElementGenerator
nodal_positions = '0 0 0
1 0 0
0 1 0'
element_connectivity = '0 2 1'
elem_type = 'TRI3'
[]
[combine]
type = CombinerGenerator
inputs = 'dir2 rename'
[]
[extrude]
type = MeshExtruderGenerator
input = combine
extrusion_vector = '0 0 1'
[]
[flip]
type = MeshRepairGenerator
input = extrude
fix_elements_orientation = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[vol0]
type = VolumePostprocessor
block = 0
[]
[vol1]
type = VolumePostprocessor
block = 1
[]
[]
[Outputs]
csv = true
[]
(test/tests/meshgenerators/mesh_diagnostics_generator/jacobian_test.i)
[Mesh]
[crooked]
type = ElementGenerator
nodal_positions = '0 0 0
1 1 0
0 1 0
1 0 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[diag]
type = MeshDiagnosticsGenerator
input = crooked
check_local_jacobian = INFO
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/mesh_diagnostics_generator/non_planar_test.i)
[Mesh]
[cube]
type = ElementGenerator
nodal_positions = '4 4 0
6 4 0
6 6 0
4 6 0
4 4 5
6 4 3
6 6 5
4 6 5'
element_connectivity = '0 1 2 3 4 5 6 7'
elem_type = 'HEX8'
[]
[diag]
type = MeshDiagnosticsGenerator
input = cube
examine_nonplanar_sides = INFO
[]
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/mesh_diagnostics_generator/node_based_test.i)
[Mesh]
[copy1]
type = ElementGenerator
nodal_positions = '0 0 0
0 2 0
2 2 0
2 0 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[gen]
input = copy1
type = RenameBlockGenerator
old_block = "0"
new_block = "1"
[]
[copy2]
type = ElementGenerator
nodal_positions = '0 3 0
0 2 0
1 1 0
2 3 0'
element_connectivity = '0 1 2 3'
elem_type = 'QUAD4'
[]
[cmbn]
type = CombinerGenerator
inputs = 'gen copy2'
[]
[diag]
type = MeshDiagnosticsGenerator
input = cmbn
examine_element_overlap = INFO
[]
[]
[Outputs]
exodus = true
[]