https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
18class THMMesh : public MooseMesh
19{
20public:
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);
34 Elem * addNodeElement(dof_id_type node);
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 *
38 addElementQuad4(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3);
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);
52
53protected:
55 virtual dof_id_type getNextNodeId();
57 virtual dof_id_type getNextElementId();
58
60 unsigned int _dim;
61
63 dof_id_type _next_node_id;
65 dof_id_type _next_element_id;
70
71public:
72 static const BoundaryName INVALID_BOUNDARY_ID;
73
75};
boundary_id_type BoundaryID
const InputParameters & parameters() const
virtual const Node & node(const dof_id_type i) const
Mesh for THM.
Definition THMMesh.h:19
virtual std::unique_ptr< MooseMesh > safeClone() const override
Definition THMMesh.C:69
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
virtual SubdomainID getNextSubdomainId()
Gets the next subdomain ID.
Definition THMMesh.C:202
SubdomainID _next_subdomain_id
The next subdomain ID in the mesh (used for mesh generation)
Definition THMMesh.h:67
Elem * addElementEdge2(dof_id_type node0, dof_id_type node1)
Definition THMMesh.C:128
virtual unsigned int dimension() const override
Definition THMMesh.C:57
static const BoundaryName INVALID_BOUNDARY_ID
Definition THMMesh.h:72
virtual void buildMesh() override
Definition THMMesh.C:75
dof_id_type _next_element_id
The next element ID in the mesh (used for mesh generation)
Definition THMMesh.h:65
BoundaryID _next_boundary_id
The next boundary ID in the mesh (used for mesh generation)
Definition THMMesh.h:69
Elem * addNodeElement(dof_id_type node)
Definition THMMesh.C:116
Elem * addElementEdge3(dof_id_type node0, dof_id_type node1, dof_id_type node2)
Definition THMMesh.C:141
virtual BoundaryID getNextBoundaryId()
Gets the next nodeset or sideset ID.
Definition THMMesh.C:209
unsigned int _dim
The dimension of the mesh.
Definition THMMesh.h:60
virtual dof_id_type getNextElementId()
Gets the next element ID.
Definition THMMesh.C:88
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
dof_id_type _next_node_id
The next node ID in the mesh (used for mesh generation)
Definition THMMesh.h:63
virtual dof_id_type getNextNodeId()
Gets the next node ID.
Definition THMMesh.C:81
virtual unsigned int effectiveSpatialDimension() const override
Definition THMMesh.C:63
static InputParameters validParams()
Definition THMMesh.C:25
Node * addNode(const Point &pt)
Add a new node into the mesh.
Definition THMMesh.C:95