https://mooseframework.inl.gov
THMMesh.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "MooseMesh.h"
13 #include "libmesh/enum_elem_type.h"
14 
18 class THMMesh : public MooseMesh
19 {
20 public:
22  THMMesh(const THMMesh & other_mesh);
23 
24  virtual unsigned int dimension() const override;
25  virtual unsigned int effectiveSpatialDimension() const override;
26  virtual std::unique_ptr<MooseMesh> safeClone() const override;
27  virtual void buildMesh() override;
28 
30  Node * addNode(const Point & pt);
31 
33  Elem * addElement(libMesh::ElemType elem_type, const std::vector<dof_id_type> & node_ids);
35  Elem * addElementEdge2(dof_id_type node0, dof_id_type node1);
36  Elem * addElementEdge3(dof_id_type node0, dof_id_type node1, dof_id_type node2);
37  Elem *
39  Elem * addElementQuad9(dof_id_type node0,
40  dof_id_type node1,
41  dof_id_type node2,
42  dof_id_type node3,
43  dof_id_type node4,
44  dof_id_type node5,
45  dof_id_type node6,
46  dof_id_type node7,
47  dof_id_type node8);
51  virtual BoundaryID getNextBoundaryId();
52 
53 protected:
55  virtual dof_id_type getNextNodeId();
57  virtual dof_id_type getNextElementId();
58 
60  unsigned int _dim;
61 
70 
71 public:
72  static const BoundaryName INVALID_BOUNDARY_ID;
73 
75 };
static InputParameters validParams()
Definition: THMMesh.C:25
virtual dof_id_type getNextNodeId()
Gets the next node ID.
Definition: THMMesh.C:81
Elem * addElementEdge2(dof_id_type node0, dof_id_type node1)
Definition: THMMesh.C:128
THMMesh(const InputParameters &parameters)
Definition: THMMesh.C:36
virtual unsigned int effectiveSpatialDimension() const override
Definition: THMMesh.C:63
dof_id_type _next_element_id
The next element ID in the mesh (used for mesh generation)
Definition: THMMesh.h:65
static const BoundaryName INVALID_BOUNDARY_ID
Definition: THMMesh.h:72
Elem * addElementEdge3(dof_id_type node0, dof_id_type node1, dof_id_type node2)
Definition: THMMesh.C:141
Mesh for THM.
Definition: THMMesh.h:18
Elem * addNodeElement(dof_id_type node)
Definition: THMMesh.C:116
BoundaryID _next_boundary_id
The next boundary ID in the mesh (used for mesh generation)
Definition: THMMesh.h:69
unsigned int _dim
The dimension of the mesh.
Definition: THMMesh.h:60
Elem * addElementQuad4(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3)
Definition: THMMesh.C:155
Elem * addElement(libMesh::ElemType elem_type, const std::vector< dof_id_type > &node_ids)
Add a new element into the mesh.
Definition: THMMesh.C:103
boundary_id_type BoundaryID
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)
Definition: THMMesh.C:170
virtual SubdomainID getNextSubdomainId()
Gets the next subdomain ID.
Definition: THMMesh.C:202
virtual std::unique_ptr< MooseMesh > safeClone() const override
Definition: THMMesh.C:69
virtual dof_id_type getNextElementId()
Gets the next element ID.
Definition: THMMesh.C:88
virtual BoundaryID getNextBoundaryId()
Gets the next nodeset or sideset ID.
Definition: THMMesh.C:209
virtual void buildMesh() override
Definition: THMMesh.C:75
virtual const Node & node(const dof_id_type i) const
dof_id_type _next_node_id
The next node ID in the mesh (used for mesh generation)
Definition: THMMesh.h:63
const InputParameters & parameters() const
virtual unsigned int dimension() const override
Definition: THMMesh.C:57
SubdomainID _next_subdomain_id
The next subdomain ID in the mesh (used for mesh generation)
Definition: THMMesh.h:67
uint8_t dof_id_type
Node * addNode(const Point &pt)
Add a new node into the mesh.
Definition: THMMesh.C:95