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
ReactorMeshParams Class Reference

A class to store mesh information that is globally applicable to a reactor. More...

#include <ReactorMeshParams.h>

Inheritance diagram for ReactorMeshParams:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 ReactorMeshParams (const InputParameters &parameters)
 
std::unique_ptr< MeshBase > generate () override
 
std::unique_ptr< CSG::CSGBasegenerateCSG () override
 
void generateData () 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

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

const MooseEnum _dim
 The number of dimension in the mesh.
 
const MooseEnum _geom
 The geometry type for the reactor.
 
const Real _assembly_pitch
 The the flat-to-flat size of assemblies in the reactor.
 
std::vector< Real > _axial_regions
 The heights of the axial regions.
 
std::vector< unsigned int_axial_mesh_intervals
 The number of mesh divisions in each axial region.
 
boundary_id_type _top_boundary
 Boundary id assigned to top boundary of extruded mesh.
 
boundary_id_type _bottom_boundary
 Boundary id assigned to bottom boundary of extruded mesh.
 
boundary_id_type _radial_boundary
 Boundary id assigned to outer radial boundary of core mesh.
 
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

A class to store mesh information that is globally applicable to a reactor.

Definition at line 18 of file ReactorMeshParams.h.

Constructor & Destructor Documentation

◆ ReactorMeshParams()

ReactorMeshParams::ReactorMeshParams ( const InputParameters parameters)

Definition at line 66 of file ReactorMeshParams.C.

68 _dim(getParam<MooseEnum>("dim")),
69 _geom(getParam<MooseEnum>("geom")),
70 _assembly_pitch(getParam<Real>("assembly_pitch"))
71{
72 if ((unsigned int)(_dim) == 2)
73 {
74 std::vector<std::string> invalid_params = {
75 "axial_regions", "axial_mesh_intervals", "top_boundary_id", "bottom_boundary_id"};
76 for (const auto & param : invalid_params)
77 if (isParamValid(param))
78 paramError(param, param + " should not be defined for 2-D meshes");
79 }
80 else
81 {
82 _axial_regions = getParam<std::vector<Real>>("axial_regions");
83 _axial_mesh_intervals = getParam<std::vector<unsigned int>>("axial_mesh_intervals");
84
85 if (_axial_regions.size() != _axial_mesh_intervals.size())
87 "The number of axial regions is not consistent with the number of axial intervals.");
89 this->declareMeshProperty(RGMB::axial_mesh_intervals, _axial_mesh_intervals);
90 }
91
92 this->declareMeshProperty(RGMB::mesh_dimensions, (unsigned int)std::stoul(_dim));
96 getParam<bool>(RGMB::region_id_as_block_name));
97
98 const bool flexible_assembly_stitching = getParam<bool>(RGMB::flexible_assembly_stitching);
99 this->declareMeshProperty(RGMB::flexible_assembly_stitching, flexible_assembly_stitching);
100 if (flexible_assembly_stitching)
102 getParam<unsigned int>("num_sectors_at_flexible_boundary"));
103 if (parameters.isParamSetByUser("num_sectors_at_flexible_boundary") &&
104 !flexible_assembly_stitching)
106 "num_sectors_at_flexible_boundary",
107 "This parameter is only relevant when ReactorMeshParams/flexible_assembly_stitching is set "
108 "to true. This value will be ignored");
109
110 // Option to bypass mesh generation depends on whether the current generator is in data only mode
111 bool bypass_meshgen = isDataOnly();
112 this->declareMeshProperty(RGMB::bypass_meshgen, bypass_meshgen);
113
114 if (isParamValid("top_boundary_id"))
115 {
116 _top_boundary = getParam<boundary_id_type>("top_boundary_id");
118 }
119 if (isParamValid("bottom_boundary_id"))
120 {
121 _bottom_boundary = getParam<boundary_id_type>("bottom_boundary_id");
123 }
124 if (isParamValid("radial_boundary_id"))
125 {
126 _radial_boundary = getParam<boundary_id_type>("radial_boundary_id");
128 if (isParamValid("top_boundary_id") && _radial_boundary == _top_boundary)
129 mooseError("top_boundary_id and radial_boundary_id must be unique values");
130 if (isParamValid("bottom_boundary_id") && _radial_boundary == _bottom_boundary)
131 mooseError("bottom_boundary_id and radial_boundary_id must be unique values");
132 }
133 if (isParamValid("top_boundary_id") && isParamValid("bottom_boundary_id") &&
135 mooseError("top_boundary_id and bottom_boundary_id must be unique values");
136}
bool isParamSetByUser(const std::string &name) const
bool isDataOnly() const
T & declareMeshProperty(const std::string &data_name, Args &&... args)
const InputParameters & parameters() const
void paramWarning(const std::string &param, Args... args) const
void paramError(const std::string &param, Args... args) const
void mooseError(Args &&... args) const
bool isParamValid(const std::string &name) const
boundary_id_type _top_boundary
Boundary id assigned to top boundary of extruded mesh.
std::vector< Real > _axial_regions
The heights of the axial regions.
std::vector< unsigned int > _axial_mesh_intervals
The number of mesh divisions in each axial region.
const Real _assembly_pitch
The the flat-to-flat size of assemblies in the reactor.
boundary_id_type _bottom_boundary
Boundary id assigned to bottom boundary of extruded mesh.
boundary_id_type _radial_boundary
Boundary id assigned to outer radial boundary of core mesh.
const MooseEnum _geom
The geometry type for the reactor.
const MooseEnum _dim
The number of dimension in the mesh.
static const std::string bottom_boundary_id
static const std::string radial_boundary_id
static const std::string bypass_meshgen
static const std::string top_boundary_id
static const std::string assembly_pitch
static const std::string mesh_dimensions
static const std::string num_sectors_flexible_stitching
static const std::string flexible_assembly_stitching
static const std::string axial_mesh_sizes
static const std::string region_id_as_block_name
static const std::string axial_mesh_intervals
static const std::string mesh_geometry
if(subdm)

Member Function Documentation

◆ generate()

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

Implements MeshGenerator.

Definition at line 139 of file ReactorMeshParams.C.

140{
141 // If mesh generation is requested and bypass_mesh is true, return a null mesh. generate()
142 // mesh should not be called with this option specified
143 if (getMeshProperty<bool>(RGMB::bypass_meshgen))
144 {
145 auto null_mesh = nullptr;
146 return null_mesh;
147 }
148 auto mesh = buildMeshBaseObject();
149 return dynamic_pointer_cast<MeshBase>(mesh);
150}
std::unique_ptr< MeshBase > buildMeshBaseObject(unsigned int dim=libMesh::invalid_uint)
MeshBase & mesh

◆ generateCSG()

std::unique_ptr< CSG::CSGBase > ReactorMeshParams::generateCSG ( )
overridevirtual

Reimplemented from MeshGenerator.

Definition at line 153 of file ReactorMeshParams.C.

154{
155 // This MeshGenerator does not produce a mesh, therefore return an empty CSGBase object
156 return std::make_unique<CSG::CSGBase>();
157}

◆ generateData()

void ReactorMeshParams::generateData ( )
inlineoverridevirtual

Reimplemented from MeshGenerator.

Definition at line 29 of file ReactorMeshParams.h.

29{};

◆ validParams()

InputParameters ReactorMeshParams::validParams ( )
static

Definition at line 25 of file ReactorMeshParams.C.

26{
28 MooseEnum dims("2=2 3", "2");
29 params.addRequiredParam<MooseEnum>("dim", dims, "The dimension of the mesh to be generated");
30
31 MooseEnum geoms("Square Hex", "Square");
32 params.addRequiredParam<MooseEnum>("geom", geoms, "The geometry type of the reactor mesh");
33
34 params.addRequiredParam<Real>("assembly_pitch", "Center to center distance of assemblies");
35 params.addParam<boundary_id_type>("top_boundary_id",
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");
40 "radial_boundary_id",
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", "Number of elements in the Z direction for each axial region");
45 params.addParam<bool>("region_id_as_block_name", false, "Set block names based on region id");
46 params.addParam<bool>(
47 "flexible_assembly_stitching",
48 false,
49 "Use FlexiblePatternGenerator for stitching dissimilar assemblies together");
50 params.addRangeCheckedParam<unsigned int>(
51 "num_sectors_at_flexible_boundary",
52 6,
53 "num_sectors_at_flexible_boundary>2",
54 "Number of sectors to use at assembly boundary interface when flexible patterning is used "
55 "(Defaults to 6)");
56 params.addClassDescription("This ReactorMeshParams object acts as storage for persistent "
57 "information about the reactor geometry.");
58
59 // Declare that this generator has a generateData method
61 // Declare that this generator has a generateCSG method
63 return params;
64}
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 void setHasGenerateCSG(InputParameters &params)
static InputParameters validParams()
static void setHasGenerateData(InputParameters &params)
int8_t boundary_id_type
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Data Documentation

◆ _assembly_pitch

const Real ReactorMeshParams::_assembly_pitch
protected

The the flat-to-flat size of assemblies in the reactor.

Definition at line 39 of file ReactorMeshParams.h.

Referenced by ReactorMeshParams().

◆ _axial_mesh_intervals

std::vector<unsigned int> ReactorMeshParams::_axial_mesh_intervals
protected

The number of mesh divisions in each axial region.

Definition at line 45 of file ReactorMeshParams.h.

Referenced by ReactorMeshParams().

◆ _axial_regions

std::vector<Real> ReactorMeshParams::_axial_regions
protected

The heights of the axial regions.

Definition at line 42 of file ReactorMeshParams.h.

Referenced by ReactorMeshParams().

◆ _bottom_boundary

boundary_id_type ReactorMeshParams::_bottom_boundary
protected

Boundary id assigned to bottom boundary of extruded mesh.

Definition at line 51 of file ReactorMeshParams.h.

Referenced by ReactorMeshParams().

◆ _dim

const MooseEnum ReactorMeshParams::_dim
protected

The number of dimension in the mesh.

Definition at line 33 of file ReactorMeshParams.h.

Referenced by ReactorMeshParams().

◆ _geom

const MooseEnum ReactorMeshParams::_geom
protected

The geometry type for the reactor.

Definition at line 36 of file ReactorMeshParams.h.

Referenced by ReactorMeshParams().

◆ _radial_boundary

boundary_id_type ReactorMeshParams::_radial_boundary
protected

Boundary id assigned to outer radial boundary of core mesh.

Definition at line 54 of file ReactorMeshParams.h.

Referenced by ReactorMeshParams().

◆ _top_boundary

boundary_id_type ReactorMeshParams::_top_boundary
protected

Boundary id assigned to top boundary of extruded mesh.

Definition at line 48 of file ReactorMeshParams.h.

Referenced by ReactorMeshParams().


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