13#include "libmesh/elem.h"
41static const std::string
pitch =
"pitch";
131 std::string extra_int_name,
132 bool should_exist =
false);
148 const std::string mg_name,
149 const bool first_function_call =
true);
184 template <
typename T>
194 template <
typename T>
225 template <
typename T>
234 template <
typename T>
248 std::map<std::string, SubdomainID> & name_id_map,
249 std::string elem_block_name,
293 unsigned int radial_index, Real halfpitch,
CSG::CSGBase & csg_obj);
300 std::vector<std::reference_wrapper<const CSG::CSGSurface>>
312 const std::vector<std::vector<std::reference_wrapper<const CSG::CSGUniverse>>> pattern,
const InputParameters & parameters() const
A base class that contains common members for Reactor Geometry Mesh Builder mesh generators.
void print2dMetadataToConsole(const std::string metadata_name, const std::string mg_name)
Print metadata with data type std::vector<std::vector<T>> and provided name that can be found with gi...
void printGlobalReactorMetadata()
Print global ReactorMeshParams metadata associated with ReactorGeometryMeshBuilder object.
std::unique_ptr< MeshBase > * _reactor_params_mesh
The dummy param mesh that we need to clear once we've generated (in freeReactorMeshParams)
const T & getReactorParam(const std::string ¶m_name)
Returns reference of parameter in ReactorMeshParams object.
void printCoreMetadata(const std::string mg_name, const bool first_function_call)
Print core-level metadata associated with ReactorGeometryMeshBuilder object.
MeshGeneratorName _reactor_params
The ReactorMeshParams object that is storing the reactor global information for this reactor geometry...
void generateData() override
bool hasReactorParam(const std::string param_name)
Checks whether parameter is defined in ReactorMeshParams metadata.
void initializeReactorMeshParams(const std::string reactor_param_name)
Initializes and checks validity of ReactorMeshParams mesh generator object.
std::vector< std::reference_wrapper< const CSG::CSGSurface > > getAxialPlaneSurfaces(CSG::CSGBase &csg_obj)
Get CSGSurfaces corresponding to axial planes of the extruded RGMB mesh.
void printReactorMetadata(const std::string geometry_type, const std::string mg_name, const bool first_function_call=true)
Print metadata associated with ReactorGeometryMeshBuilder object.
static void addDepletionIDParams(InputParameters ¶meters)
MeshGeneratorName callExtrusionMeshSubgenerators(const MeshGeneratorName input_mesh_name)
Calls mesh subgenerators related to extrusion, renaming of top / bottom boundaries,...
void printMetadataToConsole(const std::string metadata_name, const std::string mg_name)
Print metadata with provided name that can be found with given mesh generator name.
void freeReactorParamsMesh()
Releases the mesh obtained in _reactor_params_mesh.
std::vector< std::reference_wrapper< const CSG::CSGSurface > > getOuterRadialSurfacesForUnitCell(unsigned int radial_index, Real halfpitch, CSG::CSGBase &csg_obj)
Get CSGSurfaces corresponding to hexagonal or square region with given halfpitch and centered around ...
static InputParameters validParams()
DepletionIDGenerationLevel
specify the depletion id is generated at which reactor generation level
std::unique_ptr< CSG::CSGBase > * _reactor_params_csg
void printAssemblyMetadata(const std::string mg_name, const bool first_function_call)
Print assembly-level metadata associated with ReactorGeometryMeshBuilder object.
void updateElementBlockNameId(MeshBase &input_mesh, Elem *elem, std::map< std::string, SubdomainID > &name_id_map, std::string elem_block_name, SubdomainID &next_free_id)
Updates the block names and ids of the element in an input mesh according to a map of block name to b...
void addDepletionId(MeshBase &input_mesh, const MooseEnum &option, const DepletionIDGenerationLevel generation_level, const bool extrude)
add depletion IDs
void printPinMetadata(const std::string mg_name)
Print pin-level metadata associated with ReactorGeometryMeshBuilder object.
const CSG::CSGLattice & createRGMBLattice(const Real pitch, const std::vector< std::vector< std::reference_wrapper< const CSG::CSGUniverse > > > pattern, CSG::CSGBase &csg_obj)
Create CSG lattice for assembly and core lattices.
void freeReactorParamsCSG()
Releases the CSG base object obtained in _reactor_params_csg.
unsigned int getElemIntegerFromMesh(MeshBase &input_mesh, std::string extra_int_name, bool should_exist=false)
Initializes extra element integer from id name for a given mesh and throws an error if it should exis...
const subdomain_id_type PERIPHERAL_RING_BLOCK_ID
static const std::string peripheral_ring_radius
const subdomain_id_type MAX_PIN_TYPE_ID
static const std::string bottom_boundary_id
const SubdomainName DRUM_BLOCK_NAME_PREFIX
static const std::string is_single_pin
const SubdomainName ASSEMBLY_BLOCK_NAME_PREFIX
static const std::string pin_region_id_map
const BoundaryName PIN_BOUNDARY_NAME_PREFIX
static const std::string pin_lattice
static const std::string peripheral_ring_region_id
const subdomain_id_type PIN_BLOCK_ID_TRI_FLEXIBLE
static const std::string radial_boundary_id
const SubdomainName CORE_BLOCK_NAME_PREFIX
static const std::string is_control_drum
static const std::string bypass_meshgen
const subdomain_id_type PIN_BLOCK_ID_START
const subdomain_id_type CONTROL_DRUM_BLOCK_ID_PAD
const subdomain_id_type ASSEMBLY_BLOCK_ID_START
static constexpr boundary_id_type ASSEMBLY_BOUNDARY_ID_START
static const std::string ring_radii
static const std::string drum_radii
const subdomain_id_type DUMMY_ASSEMBLY_BLOCK_ID
static const std::string assembly_names
static const std::string top_boundary_id
const subdomain_id_type PIN_BLOCK_ID_TRI
static const std::string drum_region_ids
static const std::string assembly_type
static const std::string pin_block_name_map
const SubdomainName PERIPHERAL_RING_BLOCK_NAME
static const std::string duct_block_names
static const std::string duct_halfpitches
const SubdomainName TRI_BLOCK_NAME_SUFFIX
const BoundaryName ASSEMBLY_BOUNDARY_NAME_PREFIX
static const std::string assembly_pitch
const subdomain_id_type CONTROL_DRUM_BLOCK_ID_INNER_TRI
static const std::string mesh_dimensions
static const std::string duct_region_ids
const BoundaryName CORE_BOUNDARY_NAME
static const std::string pin_region_ids
static const std::string extruded
static constexpr boundary_id_type PIN_BOUNDARY_ID_START
static const std::string num_sectors_flexible_stitching
static const std::string background_region_id
static const std::string assembly_lattice
static const std::string ring_region_ids
static const std::string flexible_assembly_stitching
static const std::string is_homogenized
const subdomain_id_type CONTROL_DRUM_BLOCK_ID_OUTER
static const std::string axial_mesh_sizes
static const std::string drum_block_names
static const std::string CSG_AXIAL_PLANE_PREFIX
const subdomain_id_type ASSEMBLY_BLOCK_ID_TRI_FLEXIBLE
static const std::string region_id_as_block_name
static const std::string background_block_name
static const std::string reactor_params_name
static const std::string axial_mesh_intervals
static const std::string pin_names
static const std::string pitch
static const std::string drum_pad_angles
static const std::string pin_block_names
static const std::string mesh_geometry
static const std::string pin_type
const subdomain_id_type CONTROL_DRUM_BLOCK_ID_INNER
const SubdomainName PIN_BLOCK_NAME_PREFIX