Loading [MathJax]/extensions/tex2jax.js
Cardinal
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
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{
33public:
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
42protected:
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};
Definition HexagonalSubchannelMeshBase.h:29
Definition HexagonalSubchannelMesh.h:32
std::vector< Point > _interior_points
Node positions for a single upward-facing interior subchannel with a centroid at (0,...
Definition HexagonalSubchannelMesh.h:119
void getInteriorPoints()
Definition HexagonalSubchannelMesh.C:244
int _elems_per_interior
Number of elements per interior channel.
Definition HexagonalSubchannelMesh.h:128
const unsigned int & _theta_res
Number of nodes on each pin's quarter circumference.
Definition HexagonalSubchannelMesh.h:92
virtual std::unique_ptr< MooseMesh > safeClone() const override
Definition HexagonalSubchannelMesh.C:66
const unsigned int & _n_axial
Number of axial cells to build.
Definition HexagonalSubchannelMesh.h:98
std::vector< Point > _edge_points
Node positions for a single upward-facing edge subchannel with a centroid at (0, 0,...
Definition HexagonalSubchannelMesh.h:122
int _elems_per_corner
Number of elements per corner channel.
Definition HexagonalSubchannelMesh.h:134
void getEdgePoints()
Definition HexagonalSubchannelMesh.C:301
virtual void buildMesh() override
Definition HexagonalSubchannelMesh.C:72
std::vector< Point > _corner_points
Node positions for a single, top-right, corner subchannel with a centroid at (0, 0,...
Definition HexagonalSubchannelMesh.h:125
const SubdomainID & _edge_id
Subdomain ID to set for the edge channels.
Definition HexagonalSubchannelMesh.h:107
int _elems_per_edge
Number of elements per edge channel.
Definition HexagonalSubchannelMesh.h:131
void addPrismElem(const Point &pt1, const Point &pt2, const Point &pt3, const Real &zmin, const Real &zmax, const SubdomainID &id)
Definition HexagonalSubchannelMesh.C:212
const unsigned int & _gap_res
Number of nodes on each gap.
Definition HexagonalSubchannelMesh.h:95
static InputParameters validParams()
Definition HexagonalSubchannelMesh.C:27
const bool & _volume_mesh
Definition HexagonalSubchannelMesh.h:116
const Real & _height
Height of assembly.
Definition HexagonalSubchannelMesh.h:101
const SubdomainID & _interior_id
Subdomain ID to set for the interior channels.
Definition HexagonalSubchannelMesh.h:104
void getCornerPoints()
Definition HexagonalSubchannelMesh.C:355
void addTriElem(const Point &pt1, const Point &pt2, const Point &pt3, const Real &z, const SubdomainID &id)
Definition HexagonalSubchannelMesh.C:191
const SubdomainID & _corner_id
Subdomain ID to set for the corner channels.
Definition HexagonalSubchannelMesh.h:110