https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
SCMQuadDuctMeshGenerator Class Reference

Mesh generator for a square/rectangular duct around a square-lattice subassembly. More...

#include <SCMQuadDuctMeshGenerator.h>

Inheritance diagram for SCMQuadDuctMeshGenerator:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 SCMQuadDuctMeshGenerator (const InputParameters &parameters)
 
std::unique_ptr< MeshBase > generate () override
 
std::unique_ptr< CSG::CSGBasegenerateInternalCSG ()
 
std::unique_ptr< MeshBase > generateInternal ()
 
const std::set< MeshGeneratorName > & getRequestedMeshGenerators () const
 
const std::set< MeshGeneratorName > & getRequestedMeshGeneratorsForSub () const
 
void addParentMeshGenerator (const MeshGenerator &mg, const AddParentChildKey)
 
void addChildMeshGenerator (const MeshGenerator &mg, const AddParentChildKey)
 
const std::set< const MeshGenerator *, Comparator > & getParentMeshGenerators () const
 
const std::set< const MeshGenerator *, Comparator > & getChildMeshGenerators () const
 
const std::set< const MeshGenerator *, Comparator > & getSubMeshGenerators () const
 
bool isParentMeshGenerator (const MeshGeneratorName &name, const bool direct=true) const
 
bool isChildMeshGenerator (const MeshGeneratorName &name, const bool direct=true) const
 
bool isNullMeshName (const MeshGeneratorName &name) const
 
bool hasSaveMesh () const
 
bool hasOutput () const
 
const std::string & getSavedMeshName () const
 
bool hasGenerateData () const
 
bool hasGenerateCSG () const
 
bool isDataOnly () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static bool hasGenerateData (const InputParameters &params)
 
static bool hasGenerateCSG (const InputParameters &params)
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 
static void setHasGenerateData (InputParameters &params)
 
static void setHasGenerateCSG (InputParameters &params)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string data_only_param
 
static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

size_t ductPointIndex (unsigned int points_per_layer, unsigned int layer, unsigned int point) const
 Maps a duct cross-section point and axial layer to a linear point index.
 
void ductCorners (std::vector< Point > &corners, Real half_x, Real half_y, const Point &center) const
 Computes the x-y corner coordinates of a rectangular duct cross-section.
 
void ductCrossSec (std::vector< Point > &cross_sec, unsigned int nx, unsigned int ny, Real pitch, Real side_gap) const
 Generates the points along the rectangular duct cross-section boundary.
 
void ductPoints (std::vector< Point > &points, const std::vector< Point > &cross_sec, const std::vector< Real > &z_layers) const
 Computes all 3D point locations used to construct the duct mesh.
 
void ductElems (std::vector< std::vector< size_t > > &elem_point_indices, unsigned int n_layers, unsigned int points_per_layer) const
 Determines element connectivity for the duct mesh.
 
void buildDuct (std::unique_ptr< MeshBase > &mesh, std::vector< Node * > &duct_nodes, const std::vector< Point > &points, const std::vector< std::vector< size_t > > &elem_point_indices, SubdomainID block) const
 Builds duct mesh nodes and elements and inserts them into the mesh.
 
virtual void generateData ()
 
virtual std::unique_ptr< CSG::CSGBasegenerateCSG ()
 
TcopyMeshProperty (const std::string &target_data_name, const std::string &source_data_name, const std::string &source_mesh)
 
TcopyMeshProperty (const std::string &source_data_name, const std::string &source_mesh)
 
std::unique_ptr< MeshBase > & getMesh (const std::string &param_name, const bool allow_invalid=false)
 
std::vector< std::unique_ptr< MeshBase > * > getMeshes (const std::string &param_name)
 
std::unique_ptr< MeshBase > & getMeshByName (const MeshGeneratorName &mesh_generator_name)
 
std::vector< std::unique_ptr< MeshBase > * > getMeshesByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 
std::unique_ptr< CSG::CSGBase > & getCSGBase (const std::string &param_name)
 
std::unique_ptr< CSG::CSGBase > & getCSGBaseByName (const MeshGeneratorName &mesh_generator_name)
 
std::vector< std::unique_ptr< CSG::CSGBase > * > getCSGBases (const std::string &param_name)
 
std::vector< std::unique_ptr< CSG::CSGBase > * > getCSGBasesByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 
void declareMeshForSub (const std::string &param_name)
 
void declareMeshesForSub (const std::string &param_name)
 
void declareMeshForSubByName (const MeshGeneratorName &mesh_generator_name)
 
void declareMeshesForSubByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 
std::unique_ptr< MeshBase > buildMeshBaseObject (unsigned int dim=libMesh::invalid_uint)
 
std::unique_ptr< ReplicatedMesh > buildReplicatedMesh (unsigned int dim=libMesh::invalid_uint)
 
std::unique_ptr< DistributedMesh > buildDistributedMesh (unsigned int dim=libMesh::invalid_uint)
 
void addMeshSubgenerator (const std::string &type, const std::string &name, Ts... extra_input_parameters)
 
void addMeshSubgenerator (const std::string &type, const std::string &name, InputParameters params)
 
void declareNullMeshName (const MeshGeneratorName &name)
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
const TgetMeshProperty (const std::string &data_name, const std::string &prefix)
 
const TgetMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
TdeclareMeshProperty (const std::string &data_name, Args &&... args)
 
TdeclareMeshProperty (const std::string &data_name, const T &data_value)
 
TdeclareMeshProperty (const std::string &data_name, Args &&... args)
 
TdeclareMeshProperty (const std::string &data_name, const T &data_value)
 
TsetMeshProperty (const std::string &data_name, Args &&... args)
 
TsetMeshProperty (const std::string &data_name, const T &data_value)
 
TsetMeshProperty (const std::string &data_name, Args &&... args)
 
TsetMeshProperty (const std::string &data_name, const T &data_value)
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

std::unique_ptr< MeshBase > & _input
 Mesh that comes from another generator.
 
const unsigned int _n_cells
 number of axial cells
 
std::vector< Real > _z_grid
 axial location of nodes
 
const Real _unheated_length_entry
 
const Real _heated_length
 
const Real _unheated_length_exit
 
const unsigned int _block_id
 block index
 
const Real _pitch
 lattice geometry
 
const unsigned int _nx
 
const unsigned int _ny
 
const Real _side_gap
 
MooseMesh *const _mesh
 
const bool & _enabled
 
MooseApp_app
 
Factory_factory
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const Parallel::Communicator & _communicator
 

Private Member Functions

virtual std::string meshPropertyPrefix (const std::string &) const override final
 
void checkGetMesh (const MeshGeneratorName &mesh_generator_name, const std::string &param_name) const
 
const MeshGeneratorName * getMeshGeneratorNameFromParam (const std::string &param_name, const bool allow_invalid) const
 
const std::vector< MeshGeneratorName > & getMeshGeneratorNamesFromParam (const std::string &param_name) const
 
RestartableDataValuesetMeshPropertyHelper (const std::string &data_name)
 
const RestartableDataValuegetMeshPropertyInternal (const std::string &data_name, const std::string &prefix) const
 
void mooseErrorInternal (Args &&... args) const
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 

Private Attributes

std::set< MeshGeneratorName > _requested_mesh_generators
 
std::set< MeshGeneratorName > _requested_mesh_generators_for_sub
 
std::vector< std::pair< std::string, std::unique_ptr< MeshBase > * > > _requested_meshes
 
std::vector< std::pair< std::string, std::unique_ptr< CSG::CSGBase > * > > _requested_csg_bases
 
std::unique_ptr< MeshBase > _null_mesh
 
std::unique_ptr< CSG::CSGBase_null_csg_base
 
std::set< const MeshGenerator *, Comparator > _parent_mesh_generators
 
std::set< const MeshGenerator *, Comparator > _child_mesh_generators
 
std::set< const MeshGenerator *, Comparator > _sub_mesh_generators
 
std::set< std::string > _null_mesh_names
 
const std::string & _save_with_name
 
const bool _data_only
 
const ParallelParamObject_parent
 
const MooseBase_si_moose_base
 
const FEProblemBase_si_problem
 
MooseApp_meta_data_app
 
const MooseObject *const _meta_data_object
 

Detailed Description

Mesh generator for a square/rectangular duct around a square-lattice subassembly.

Definition at line 17 of file SCMQuadDuctMeshGenerator.h.

Constructor & Destructor Documentation

◆ SCMQuadDuctMeshGenerator()

SCMQuadDuctMeshGenerator::SCMQuadDuctMeshGenerator ( const InputParameters parameters)

Definition at line 46 of file SCMQuadDuctMeshGenerator.C.

47 : MeshGenerator(params),
48 _input(getMesh("input")),
49 _n_cells(getParam<unsigned int>("n_cells")),
50 _unheated_length_entry(getParam<Real>("unheated_length_entry")),
51 _heated_length(getParam<Real>("heated_length")),
52 _unheated_length_exit(getParam<Real>("unheated_length_exit")),
53 _block_id(getParam<unsigned int>("block_id")),
54 _pitch(getParam<Real>("pitch")),
55 _nx(getParam<unsigned int>("nx")),
56 _ny(getParam<unsigned int>("ny")),
57 _side_gap(getParam<Real>("side_gap"))
58{
61}
std::unique_ptr< MeshBase > & getMesh(const std::string &param_name, const bool allow_invalid=false)
std::unique_ptr< MeshBase > & _input
Mesh that comes from another generator.
const unsigned int _n_cells
number of axial cells
const Real _pitch
lattice geometry
const unsigned int _block_id
block index
std::vector< Real > _z_grid
axial location of nodes
static void generateZGrid(Real unheated_length_entry, Real heated_length, Real unheated_length_exit, unsigned int n_cells, std::vector< Real > &z_grid)
Generate the spacing in z-direction using heated and unteaded lengths.

Member Function Documentation

◆ buildDuct()

void SCMQuadDuctMeshGenerator::buildDuct ( std::unique_ptr< MeshBase > &  mesh,
std::vector< Node * > &  duct_nodes,
const std::vector< Point > &  points,
const std::vector< std::vector< size_t > > &  elem_point_indices,
SubdomainID  block 
) const
protected

Builds duct mesh nodes and elements and inserts them into the mesh.

Parameters
meshMesh object to which duct elements and nodes are added
duct_nodesOutput vector of created duct nodes
pointsPoint coordinates generated by ductPoints
elem_point_indicesElement connectivity generated by ductElems
blockSubdomain ID assigned to the duct elements

Definition at line 208 of file SCMQuadDuctMeshGenerator.C.

213{
214 // Create mesh nodes for all duct points and keep a local index -> Node* map
215 duct_nodes.clear();
216 duct_nodes.reserve(points.size());
217 for (const auto & p : points)
218 duct_nodes.push_back(mesh->add_point(p));
219
220 // Create QUAD4 surface elements using libMesh factory style
221 for (const auto & elem_indices : elem_point_indices)
222 {
223 mooseAssert(elem_indices.size() == 4,
224 "Expected 4 node indices per element when building QUAD4 elements.");
225
226 auto elem = Elem::build(ElemType::QUAD4);
227 elem->subdomain_id() = block;
228
229 // Set the 4 nodes of the QUAD4
230 for (unsigned int i = 0; i < 4; ++i)
231 {
232 const auto idx = elem_indices[i];
233 mooseAssert(idx < duct_nodes.size(), "Element node index out of range.");
234 elem->set_node(i, duct_nodes[idx]);
235 }
236
237 // Hand ownership to the mesh
238 mesh->add_elem(elem.release());
239 }
240}
const Real p
MeshBase & mesh
unsigned int idx(const ElemType type, const unsigned int nx, const unsigned int i, const unsigned int j)

Referenced by generate().

◆ ductCorners()

void SCMQuadDuctMeshGenerator::ductCorners ( std::vector< Point > &  corners,
Real  half_x,
Real  half_y,
const Point &  center 
) const
protected

Computes the x-y corner coordinates of a rectangular duct cross-section.

Parameters
cornersOutput vector containing the duct corner points
half_xHalf-width of the duct in the x-direction
half_yHalf-width of the duct in the y-direction
centerCenter point of the duct cross-section

Definition at line 97 of file SCMQuadDuctMeshGenerator.C.

101{
102 corners.resize(4);
103 corners[0] = center + Point(-half_x, -half_y, 0);
104 corners[1] = center + Point(half_x, -half_y, 0);
105 corners[2] = center + Point(half_x, half_y, 0);
106 corners[3] = center + Point(-half_x, half_y, 0);
107}
Point center

◆ ductCrossSec()

void SCMQuadDuctMeshGenerator::ductCrossSec ( std::vector< Point > &  cross_sec,
unsigned int  nx,
unsigned int  ny,
Real  pitch,
Real  side_gap 
) const
protected

Generates the points along the rectangular duct cross-section boundary.

Parameters
cross_secOutput vector of cross-section boundary points
nxNumber of boundary divisions in the x-direction
nyNumber of boundary divisions in the y-direction
pitchSpacing between adjacent boundary points
side_gapGap between the duct wall and surrounding geometry

Definition at line 110 of file SCMQuadDuctMeshGenerator.C.

115{
116 cross_sec.clear();
117
118 const Real half_x = 0.5 * (nx - 1) * pitch + side_gap;
119 const Real half_y = 0.5 * (ny - 1) * pitch + side_gap;
120
121 // Subchannel-aligned grid extents (no side_gap)
122 const Real x0 = -0.5 * (nx - 1) * pitch;
123 const Real y0 = -0.5 * (ny - 1) * pitch;
124
125 // ---- Bottom edge (y = -half_y): nx points, left -> right ----
126 for (unsigned int i = 0; i < nx; ++i)
127 {
128 Real x;
129 if (i == 0)
130 x = -half_x;
131 else if (i == nx - 1)
132 x = half_x;
133 else
134 x = x0 + i * pitch; // aligned with subchannel x grid
135
136 cross_sec.emplace_back(x, -half_y, 0.0);
137 }
138
139 // ---- Right edge (x = +half_x): (ny-2) points, bottom -> top (exclude corners) ----
140 for (unsigned int j = 1; j + 1 < ny; ++j)
141 {
142 const Real y = y0 + j * pitch; // aligned with subchannel y grid
143 cross_sec.emplace_back(half_x, y, 0.0);
144 }
145
146 // ---- Top edge (y = +half_y): nx points, right -> left ----
147 for (unsigned int i = 0; i < nx; ++i)
148 {
149 const unsigned int ii = nx - 1 - i;
150
151 Real x;
152 if (ii == 0)
153 x = -half_x;
154 else if (ii == nx - 1)
155 x = half_x;
156 else
157 x = x0 + ii * pitch;
158
159 cross_sec.emplace_back(x, half_y, 0.0);
160 }
161
162 // ---- Left edge (x = -half_x): (ny-2) points, top -> bottom (exclude corners) ----
163 for (unsigned int j = 1; j + 1 < ny; ++j)
164 {
165 const unsigned int jj = ny - 1 - j;
166 const Real y = y0 + jj * pitch; // aligned with subchannel y grid
167 cross_sec.emplace_back(-half_x, y, 0.0);
168 }
169
170 // Total points: 2*nx + 2*ny - 4
171}
const std::vector< double > y
const std::vector< double > x
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Referenced by generate().

◆ ductElems()

void SCMQuadDuctMeshGenerator::ductElems ( std::vector< std::vector< size_t > > &  elem_point_indices,
unsigned int  n_layers,
unsigned int  points_per_layer 
) const
protected

Determines element connectivity for the duct mesh.

Parameters
elem_point_indicesOutput element connectivity defined by point indices
n_layersNumber of axial layers in the duct mesh
points_per_layerNumber of points per cross-section layer

Definition at line 186 of file SCMQuadDuctMeshGenerator.C.

189{
190 elem_point_indices.clear();
191 for (unsigned int i = 0; i < n_layers - 1; i++)
192 {
193 const unsigned int bottom = i;
194 const unsigned int top = i + 1;
195 for (unsigned int j = 0; j < points_per_layer; j++)
196 {
197 const unsigned int left = j;
198 const unsigned int right = (j + 1) % points_per_layer;
199 elem_point_indices.push_back({ductPointIndex(points_per_layer, bottom, left),
200 ductPointIndex(points_per_layer, bottom, right),
201 ductPointIndex(points_per_layer, top, right),
202 ductPointIndex(points_per_layer, top, left)});
203 }
204 }
205}
size_t ductPointIndex(unsigned int points_per_layer, unsigned int layer, unsigned int point) const
Maps a duct cross-section point and axial layer to a linear point index.

Referenced by generate().

◆ ductPointIndex()

size_t SCMQuadDuctMeshGenerator::ductPointIndex ( unsigned int  points_per_layer,
unsigned int  layer,
unsigned int  point 
) const
protected

Maps a duct cross-section point and axial layer to a linear point index.

Parameters
points_per_layerNumber of points in each duct cross-section layer
layerAxial (z-direction) layer index
pointIndex of the point within the cross-section
Returns
Index into the flattened points vector used by ductPoints

Definition at line 89 of file SCMQuadDuctMeshGenerator.C.

92{
93 return layer * points_per_layer + point;
94}

Referenced by ductElems(), and ductPoints().

◆ ductPoints()

void SCMQuadDuctMeshGenerator::ductPoints ( std::vector< Point > &  points,
const std::vector< Point > &  cross_sec,
const std::vector< Real > &  z_layers 
) const
protected

Computes all 3D point locations used to construct the duct mesh.

Parameters
pointsOutput vector of 3D point locations
cross_secCross-section boundary points
z_layersAxial (z-direction) layer coordinates

Definition at line 174 of file SCMQuadDuctMeshGenerator.C.

177{
178 points.resize(cross_sec.size() * z_layers.size());
179 for (size_t i = 0; i < z_layers.size(); i++)
180 for (size_t j = 0; j < cross_sec.size(); j++)
181 points[ductPointIndex(cross_sec.size(), i, j)] =
182 Point(cross_sec[j](0), cross_sec[j](1), z_layers[i]);
183}

Referenced by generate().

◆ generate()

std::unique_ptr< MeshBase > SCMQuadDuctMeshGenerator::generate ( )
overridevirtual

Implements MeshGenerator.

Definition at line 64 of file SCMQuadDuctMeshGenerator.C.

65{
66 std::unique_ptr<MeshBase> mesh_base = std::move(_input);
67 mesh_base->set_mesh_dimension(3);
68
69 std::vector<Point> cross_sec;
70 ductCrossSec(cross_sec, _nx, _ny, _pitch, _side_gap);
71 std::vector<Point> points;
72 ductPoints(points, cross_sec, _z_grid);
73 std::vector<std::vector<size_t>> elem_point_indices;
74 ductElems(elem_point_indices, _z_grid.size(), cross_sec.size());
75 std::vector<Node *> duct_nodes;
76 buildDuct(mesh_base, duct_nodes, points, elem_point_indices, _block_id);
77 mesh_base->set_subdomain_name(_block_id, name(), true);
78
79 mesh_base->prepare_for_use();
80
81 // Mirror the Tri variant: provide mapping hooks into the subchannel mesh
82 auto & sch_mesh = static_cast<QuadSubChannelMesh &>(*_mesh);
83 sch_mesh.setChannelToDuctMaps(duct_nodes);
84
85 return mesh_base;
86}
const std::string & name() const
Creates the mesh of subchannels in a quadrilateral lattice.
void ductElems(std::vector< std::vector< size_t > > &elem_point_indices, unsigned int n_layers, unsigned int points_per_layer) const
Determines element connectivity for the duct mesh.
void ductCrossSec(std::vector< Point > &cross_sec, unsigned int nx, unsigned int ny, Real pitch, Real side_gap) const
Generates the points along the rectangular duct cross-section boundary.
void ductPoints(std::vector< Point > &points, const std::vector< Point > &cross_sec, const std::vector< Real > &z_layers) const
Computes all 3D point locations used to construct the duct mesh.
void buildDuct(std::unique_ptr< MeshBase > &mesh, std::vector< Node * > &duct_nodes, const std::vector< Point > &points, const std::vector< std::vector< size_t > > &elem_point_indices, SubdomainID block) const
Builds duct mesh nodes and elements and inserts them into the mesh.
void setChannelToDuctMaps(const std::vector< Node * > &duct_nodes)
Function that sets the channel-to-duct maps.

◆ validParams()

InputParameters SCMQuadDuctMeshGenerator::validParams ( )
static

Definition at line 19 of file SCMQuadDuctMeshGenerator.C.

20{
22 params.addClassDescription("Creates a mesh of 2D duct cells around a square-lattice subassembly");
23 params.addRequiredParam<MeshGeneratorName>("input", "The corresponding subchannel mesh");
24 params.addParam<unsigned int>("block_id", 2, "Subdomain id for the duct mesh cells");
25 params.addRequiredParam<unsigned int>("n_cells", "The number of cells in the axial direction");
26 params.addParam<Real>("unheated_length_entry", 0.0, "Unheated length at entry [m]");
27 params.addRequiredParam<Real>("heated_length", "Heated length [m]");
28 params.addParam<Real>("unheated_length_exit", 0.0, "Unheated length at exit [m]");
29 params.addRangeCheckedParam<Real>("pitch", "pitch > 0", "Lattice pitch (must be positive)");
30 params.addRangeCheckedParam<unsigned int>(
31 "nx",
32 "nx > 1",
33 "Number of channels in the x direction for the subchannel assembly. Must be more than 1 to "
34 "built a duct[-]");
35 params.addRangeCheckedParam<unsigned int>(
36 "ny",
37 "ny > 1",
38 "Number of channels in the y direction for the subchannel assembly. Must be more than 1 to "
39 "built a duct[-]");
40 params.addRequiredParam<Real>("side_gap",
41 "Gap between duct wall and outer pin lattice: distance(edge pin "
42 "center, duct wall) = pitch/2 + side_gap [m]");
43 return params;
44}
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)
static InputParameters validParams()

Member Data Documentation

◆ _block_id

const unsigned int SCMQuadDuctMeshGenerator::_block_id
protected

block index

Definition at line 91 of file SCMQuadDuctMeshGenerator.h.

Referenced by generate().

◆ _heated_length

const Real SCMQuadDuctMeshGenerator::_heated_length
protected

Definition at line 88 of file SCMQuadDuctMeshGenerator.h.

Referenced by SCMQuadDuctMeshGenerator().

◆ _input

std::unique_ptr<MeshBase>& SCMQuadDuctMeshGenerator::_input
protected

Mesh that comes from another generator.

Definition at line 82 of file SCMQuadDuctMeshGenerator.h.

Referenced by generate().

◆ _n_cells

const unsigned int SCMQuadDuctMeshGenerator::_n_cells
protected

number of axial cells

Definition at line 84 of file SCMQuadDuctMeshGenerator.h.

Referenced by SCMQuadDuctMeshGenerator().

◆ _nx

const unsigned int SCMQuadDuctMeshGenerator::_nx
protected

Definition at line 94 of file SCMQuadDuctMeshGenerator.h.

Referenced by generate().

◆ _ny

const unsigned int SCMQuadDuctMeshGenerator::_ny
protected

Definition at line 95 of file SCMQuadDuctMeshGenerator.h.

Referenced by generate().

◆ _pitch

const Real SCMQuadDuctMeshGenerator::_pitch
protected

lattice geometry

Definition at line 93 of file SCMQuadDuctMeshGenerator.h.

Referenced by generate().

◆ _side_gap

const Real SCMQuadDuctMeshGenerator::_side_gap
protected

Definition at line 96 of file SCMQuadDuctMeshGenerator.h.

Referenced by generate().

◆ _unheated_length_entry

const Real SCMQuadDuctMeshGenerator::_unheated_length_entry
protected

Definition at line 87 of file SCMQuadDuctMeshGenerator.h.

Referenced by SCMQuadDuctMeshGenerator().

◆ _unheated_length_exit

const Real SCMQuadDuctMeshGenerator::_unheated_length_exit
protected

Definition at line 89 of file SCMQuadDuctMeshGenerator.h.

Referenced by SCMQuadDuctMeshGenerator().

◆ _z_grid

std::vector<Real> SCMQuadDuctMeshGenerator::_z_grid
protected

axial location of nodes

Definition at line 86 of file SCMQuadDuctMeshGenerator.h.

Referenced by generate(), and SCMQuadDuctMeshGenerator().


The documentation for this class was generated from the following files: