11#include "libmesh/node.h"
12#include "libmesh/node_elem.h"
13#include "libmesh/edge_edge2.h"
14#include "libmesh/edge_edge3.h"
15#include "libmesh/face_quad4.h"
16#include "libmesh/face_quad9.h"
28 params.
addParam<
MooseEnum>(
"dim", dims,
"The dimension of the mesh to be generated");
30 params.
set<
bool>(
"allow_renumbering") =
false;
39 _next_subdomain_id(0),
46 _dim(other_mesh._dim),
47 _next_node_id(other_mesh._next_node_id),
48 _next_element_id(other_mesh._next_element_id),
49 _next_subdomain_id(other_mesh._next_subdomain_id),
50 _next_boundary_id(other_mesh._next_boundary_id)
66std::unique_ptr<MooseMesh>
105 Elem *
elem = libMesh::Elem::build(elem_type).release();
106 elem->set_id(elem_id);
108 for (std::size_t i = 0; i < node_ids.size(); i++)
109 elem->set_node(i,
_mesh->node_ptr(node_ids[i]));
130 Elem *
elem =
new Edge2;
131 elem->set_id(elem_id);
133 elem->set_node(0,
_mesh->node_ptr(node0));
134 elem->set_node(1,
_mesh->node_ptr(node1));
143 Elem *
elem =
new Edge3;
144 elem->set_id(elem_id);
146 elem->set_node(0,
_mesh->node_ptr(node0));
147 elem->set_node(1,
_mesh->node_ptr(node1));
148 elem->set_node(2,
_mesh->node_ptr(node2));
157 Elem *
elem =
new Quad4;
158 elem->set_id(elem_id);
160 elem->set_node(0,
_mesh->node_ptr(node0));
161 elem->set_node(1,
_mesh->node_ptr(node1));
162 elem->set_node(2,
_mesh->node_ptr(node2));
163 elem->set_node(3,
_mesh->node_ptr(node3));
180 Elem *
elem =
new Quad9;
181 elem->set_id(elem_id);
184 elem->set_node(0,
_mesh->node_ptr(node0));
185 elem->set_node(1,
_mesh->node_ptr(node1));
186 elem->set_node(2,
_mesh->node_ptr(node2));
187 elem->set_node(3,
_mesh->node_ptr(node3));
189 elem->set_node(4,
_mesh->node_ptr(node4));
190 elem->set_node(5,
_mesh->node_ptr(node5));
191 elem->set_node(6,
_mesh->node_ptr(node6));
192 elem->set_node(7,
_mesh->node_ptr(node7));
194 elem->set_node(8,
_mesh->node_ptr(node8));
boundary_id_type BoundaryID
subdomain_id_type SubdomainID
registerMooseObject("ThermalHydraulicsApp", THMMesh)
std::unique_ptr< T > copyConstruct(const T &object)
virtual Elem * elem(const dof_id_type i)
virtual const Node & node(const dof_id_type i) const
std::unique_ptr< libMesh::MeshBase > _mesh
static InputParameters validParams()
virtual std::unique_ptr< MooseMesh > safeClone() const override
Elem * addElementQuad4(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3)
Elem * addElement(libMesh::ElemType elem_type, const std::vector< dof_id_type > &node_ids)
Add a new element into the mesh.
virtual SubdomainID getNextSubdomainId()
Gets the next subdomain ID.
SubdomainID _next_subdomain_id
The next subdomain ID in the mesh (used for mesh generation)
Elem * addElementEdge2(dof_id_type node0, dof_id_type node1)
virtual unsigned int dimension() const override
static const BoundaryName INVALID_BOUNDARY_ID
virtual void buildMesh() override
dof_id_type _next_element_id
The next element ID in the mesh (used for mesh generation)
BoundaryID _next_boundary_id
The next boundary ID in the mesh (used for mesh generation)
Elem * addNodeElement(dof_id_type node)
Elem * addElementEdge3(dof_id_type node0, dof_id_type node1, dof_id_type node2)
virtual BoundaryID getNextBoundaryId()
Gets the next nodeset or sideset ID.
THMMesh(const InputParameters ¶meters)
unsigned int _dim
The dimension of the mesh.
virtual dof_id_type getNextElementId()
Gets the next element ID.
Elem * addElementQuad9(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3, dof_id_type node4, dof_id_type node5, dof_id_type node6, dof_id_type node7, dof_id_type node8)
dof_id_type _next_node_id
The next node ID in the mesh (used for mesh generation)
virtual dof_id_type getNextNodeId()
Gets the next node ID.
virtual unsigned int effectiveSpatialDimension() const override
static InputParameters validParams()
Node * addNode(const Point &pt)
Add a new node into the mesh.