Cardinal
HexagonalSubchannelMesh.h
Go to the documentation of this file.
1 /********************************************************************/
2 /* SOFTWARE COPYRIGHT NOTIFICATION */
3 /* Cardinal */
4 /* */
5 /* (c) 2021 UChicago Argonne, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by UChicago Argonne, LLC */
9 /* Under Contract No. DE-AC02-06CH11357 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* Prepared by Battelle Energy Alliance, LLC */
13 /* Under Contract No. DE-AC07-05ID14517 */
14 /* With the U. S. Department of Energy */
15 /* */
16 /* See LICENSE for full restrictions */
17 /********************************************************************/
18 
19 #pragma once
20 
22 
32 {
33 public:
34  static InputParameters validParams();
35 
36  HexagonalSubchannelMesh(const InputParameters & parameters);
37 
38  virtual std::unique_ptr<MooseMesh> safeClone() const override;
39 
40  virtual void buildMesh() override;
41 
42 protected:
47  void getInteriorPoints();
48 
53  void getEdgePoints();
54 
59  void getCornerPoints();
60 
70  void addPrismElem(const Point & pt1,
71  const Point & pt2,
72  const Point & pt3,
73  const Real & zmin,
74  const Real & zmax,
75  const SubdomainID & id);
76 
85  void addTriElem(const Point & pt1,
86  const Point & pt2,
87  const Point & pt3,
88  const Real & z,
89  const SubdomainID & id);
90 
92  const unsigned int & _theta_res;
93 
95  const unsigned int & _gap_res;
96 
98  const unsigned int & _n_axial;
99 
101  const Real & _height;
102 
104  const SubdomainID & _interior_id;
105 
107  const SubdomainID & _edge_id;
108 
110  const SubdomainID & _corner_id;
111 
116  const bool & _volume_mesh;
117 
119  std::vector<Point> _interior_points;
120 
122  std::vector<Point> _edge_points;
123 
125  std::vector<Point> _corner_points;
126 
129 
132 
135 };
HexagonalSubchannelMesh::safeClone
virtual std::unique_ptr< MooseMesh > safeClone() const override
Definition: HexagonalSubchannelMesh.C:66
HexagonalSubchannelMesh::_height
const Real & _height
Height of assembly.
Definition: HexagonalSubchannelMesh.h:101
HexagonalSubchannelMesh::_corner_points
std::vector< Point > _corner_points
Node positions for a single, top-right, corner subchannel with a centroid at (0, 0,...
Definition: HexagonalSubchannelMesh.h:125
HexagonalSubchannelMeshBase
Definition: HexagonalSubchannelMeshBase.h:28
HexagonalSubchannelMesh::_elems_per_corner
int _elems_per_corner
Number of elements per corner channel.
Definition: HexagonalSubchannelMesh.h:134
HexagonalSubchannelMesh::getCornerPoints
void getCornerPoints()
Definition: HexagonalSubchannelMesh.C:355
HexagonalSubchannelMesh::getInteriorPoints
void getInteriorPoints()
Definition: HexagonalSubchannelMesh.C:244
HexagonalSubchannelMeshBase.h
HexagonalSubchannelMesh::_elems_per_interior
int _elems_per_interior
Number of elements per interior channel.
Definition: HexagonalSubchannelMesh.h:128
HexagonalSubchannelMesh::_edge_points
std::vector< Point > _edge_points
Node positions for a single upward-facing edge subchannel with a centroid at (0, 0,...
Definition: HexagonalSubchannelMesh.h:122
HexagonalSubchannelMesh::_elems_per_edge
int _elems_per_edge
Number of elements per edge channel.
Definition: HexagonalSubchannelMesh.h:131
HexagonalSubchannelMesh
Definition: HexagonalSubchannelMesh.h:31
HexagonalSubchannelMesh::_edge_id
const SubdomainID & _edge_id
Subdomain ID to set for the edge channels.
Definition: HexagonalSubchannelMesh.h:107
HexagonalSubchannelMesh::_interior_points
std::vector< Point > _interior_points
Node positions for a single upward-facing interior subchannel with a centroid at (0,...
Definition: HexagonalSubchannelMesh.h:119
HexagonalSubchannelMesh::HexagonalSubchannelMesh
HexagonalSubchannelMesh(const InputParameters &parameters)
Definition: HexagonalSubchannelMesh.C:52
HexagonalSubchannelMesh::buildMesh
virtual void buildMesh() override
Definition: HexagonalSubchannelMesh.C:72
HexagonalSubchannelMesh::_theta_res
const unsigned int & _theta_res
Number of nodes on each pin's quarter circumference.
Definition: HexagonalSubchannelMesh.h:92
HexagonalSubchannelMesh::_volume_mesh
const bool & _volume_mesh
Definition: HexagonalSubchannelMesh.h:116
HexagonalSubchannelMesh::_gap_res
const unsigned int & _gap_res
Number of nodes on each gap.
Definition: HexagonalSubchannelMesh.h:95
HexagonalSubchannelMesh::getEdgePoints
void getEdgePoints()
Definition: HexagonalSubchannelMesh.C:301
HexagonalSubchannelMesh::addTriElem
void addTriElem(const Point &pt1, const Point &pt2, const Point &pt3, const Real &z, const SubdomainID &id)
Definition: HexagonalSubchannelMesh.C:191
HexagonalSubchannelMesh::_interior_id
const SubdomainID & _interior_id
Subdomain ID to set for the interior channels.
Definition: HexagonalSubchannelMesh.h:104
HexagonalSubchannelMesh::addPrismElem
void addPrismElem(const Point &pt1, const Point &pt2, const Point &pt3, const Real &zmin, const Real &zmax, const SubdomainID &id)
Definition: HexagonalSubchannelMesh.C:212
HexagonalSubchannelMesh::_n_axial
const unsigned int & _n_axial
Number of axial cells to build.
Definition: HexagonalSubchannelMesh.h:98
HexagonalSubchannelMesh::_corner_id
const SubdomainID & _corner_id
Subdomain ID to set for the corner channels.
Definition: HexagonalSubchannelMesh.h:110
HexagonalSubchannelMesh::validParams
static InputParameters validParams()
Definition: HexagonalSubchannelMesh.C:27