15 #include "libmesh/mesh_generation.h" 16 #include "libmesh/unstructured_mesh.h" 17 #include "libmesh/replicated_mesh.h" 18 #include "libmesh/point.h" 19 #include "libmesh/elem.h" 20 #include "libmesh/node.h" 36 "The boundary ID to set on top boundary of the extruded mesh");
38 "bottom_boundary_id",
"The boundary ID to set on bottom boundary of the extruded mesh");
41 "The boundary ID to set on the outer radial boundary of a CoreMeshGenerator object");
42 params.
addParam<std::vector<Real>>(
"axial_regions",
"Length of each axial region");
43 params.
addParam<std::vector<unsigned int>>(
44 "axial_mesh_intervals",
45 "Number of elements in the Z direction for each axial region");
46 params.
addParam<
bool>(
"region_id_as_block_name",
false,
"Set block names based on region id");
48 "flexible_assembly_stitching",
50 "Use FlexiblePatternGenerator for stitching dissimilar assemblies together");
52 "num_sectors_at_flexible_boundary",
54 "num_sectors_at_flexible_boundary>2",
55 "Number of sectors to use at assembly boundary interface when flexible patterning is used " 58 "information about the reactor geometry.");
69 _assembly_pitch(getParam<
Real>(
"assembly_pitch"))
71 if ((
unsigned int)(
_dim) == 2)
73 std::vector<std::string> invalid_params = {
74 "axial_regions",
"axial_mesh_intervals",
"top_boundary_id",
"bottom_boundary_id"};
75 for (
const auto & param : invalid_params)
77 paramError(param, param +
" should not be defined for 2-D meshes");
86 "The number of axial regions is not consistent with the number of axial intervals.");
101 getParam<unsigned int>(
"num_sectors_at_flexible_boundary"));
105 "num_sectors_at_flexible_boundary",
106 "This parameter is only relevant when ReactorMeshParams/flexible_assembly_stitching is set " 107 "to true. This value will be ignored");
112 const auto data_driven_generator =
113 moose_mesh->parameters().get<std::string>(
"data_driven_generator");
119 _top_boundary = getParam<boundary_id_type>(
"top_boundary_id");
132 mooseError(
"top_boundary_id and radial_boundary_id must be unique values");
134 mooseError(
"bottom_boundary_id and radial_boundary_id must be unique values");
138 mooseError(
"top_boundary_id and bottom_boundary_id must be unique values");
141 std::unique_ptr<MeshBase>
148 auto null_mesh =
nullptr;
A class to store mesh information that is globally applicable to a reactor.
static const std::string region_id_as_block_name
const MooseEnum _geom
The geometry type for the reactor.
const std::shared_ptr< MooseMesh > & getMesh() const
ReactorMeshParams(const InputParameters ¶meters)
static const std::string mesh_geometry
std::unique_ptr< MeshBase > generate() override
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
static const std::string axial_mesh_sizes
static const std::string assembly_pitch
static const std::string radial_boundary_id
bool isParamValid(const std::string &name) const
static InputParameters validParams()
boundary_id_type _bottom_boundary
Boundary id assigned to bottom boundary of extruded mesh.
static const std::string mesh_dimensions
boundary_id_type _radial_boundary
Boundary id assigned to outer radial boundary of core mesh.
const Real _assembly_pitch
The the flat-to-flat size of assemblies in the reactor.
ActionWarehouse & actionWarehouse()
static const std::string top_boundary_id
void paramError(const std::string ¶m, Args... args) const
static InputParameters validParams()
std::vector< unsigned int > _axial_mesh_intervals
The number of mesh divisions in each axial region.
registerMooseObject("ReactorApp", ReactorMeshParams)
const MooseEnum _dim
The number of dimension in the mesh.
static const std::string flexible_assembly_stitching
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string axial_mesh_intervals
boundary_id_type _top_boundary
Boundary id assigned to top boundary of extruded mesh.
void mooseError(Args &&... args) const
static void setHasGenerateData(InputParameters ¶ms)
const InputParameters & parameters() const
T & declareMeshProperty(const std::string &data_name, Args &&... args)
void paramWarning(const std::string ¶m, Args... args) const
static const std::string bypass_meshgen
std::unique_ptr< MeshBase > buildMeshBaseObject(unsigned int dim=libMesh::invalid_uint)
static const std::string num_sectors_flexible_stitching
static const std::string bottom_boundary_id
std::vector< Real > _axial_regions
The heights of the axial regions.