https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Attributes | List of all members
TestReactorGeometryMeshBuilderMeshGenerator Class Reference

#include <TestReactorGeometryMeshBuilderMeshGenerator.h>

Inheritance diagram for TestReactorGeometryMeshBuilderMeshGenerator:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 TestReactorGeometryMeshBuilderMeshGenerator (const InputParameters &parameters)
 
std::unique_ptr< MeshBase > generate () override
 
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 isDataOnly () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (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
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) 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 void setHasGenerateData (InputParameters &params)
 

Public Attributes

const ConsoleStream _console
 

Static Public Attributes

static const std::string data_only_param
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

virtual void generateData ()
 
T & copyMeshProperty (const std::string &target_data_name, const std::string &source_data_name, const std::string &source_mesh)
 
T & copyMeshProperty (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)
 
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)
 
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 
const T & getMeshProperty (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
 
T & declareMeshProperty (const std::string &data_name, Args &&... args)
 
T & declareMeshProperty (const std::string &data_name, const T &data_value)
 
T & declareMeshProperty (const std::string &data_name, Args &&... args)
 
T & declareMeshProperty (const std::string &data_name, const T &data_value)
 
T & setMeshProperty (const std::string &data_name, Args &&... args)
 
T & setMeshProperty (const std::string &data_name, const T &data_value)
 
T & setMeshProperty (const std::string &data_name, Args &&... args)
 
T & setMeshProperty (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

MooseMesh *const _mesh
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
const Parallel::Communicator & _communicator
 

Private Attributes

const std::string _input
 the input mesh name More...
 
std::unique_ptr< MeshBase > * _input_mesh
 The final mesh that is generated by the subgenerators; This mesh is pointed to by the input. More...
 
std::unique_ptr< MeshBase > * _build_mesh
 The final mesh that is generated by the subgenerators;. More...
 

Detailed Description

Definition at line 14 of file TestReactorGeometryMeshBuilderMeshGenerator.h.

Constructor & Destructor Documentation

◆ TestReactorGeometryMeshBuilderMeshGenerator()

TestReactorGeometryMeshBuilderMeshGenerator::TestReactorGeometryMeshBuilderMeshGenerator ( const InputParameters parameters)

Definition at line 23 of file TestReactorGeometryMeshBuilderMeshGenerator.C.

24  : MeshGenerator(params),
25  _input(getParam<MeshGeneratorName>("input")),
26  _input_mesh(&getMesh("input"))
27 {
28  // Assumes input has been generated by CoreMeshGenerator and contains valid metadata for generation
29  const auto reactor_params_name = getMeshProperty<std::string>(RGMB::reactor_params_name, _input);
30 
31  // Get assembly pitch from metadata and define a circular mesh that preserves volume of assembly structure
32  const auto assembly_pitch = getMeshProperty<double>(RGMB::assembly_pitch, reactor_params_name);
33  const auto mesh_geometry = getMeshProperty<std::string>(RGMB::mesh_geometry, reactor_params_name);
34  double vol_multiplier = (mesh_geometry == "Square") ? 1.0 : std::sqrt(3) / 2;
35  double equivalent_volume = vol_multiplier * assembly_pitch * assembly_pitch;
36  double equivalent_radius = std::sqrt(equivalent_volume / M_PI);
37 
38  {
39  auto mesh_params = _app.getFactory().getValidParams("AdvancedConcentricCircleGenerator");
40  mesh_params.set<std::vector<double>>("ring_radii") = {equivalent_radius};
41  mesh_params.set<std::vector<unsigned int>>("ring_intervals") = {1};
42  mesh_params.set<unsigned int>("num_sectors") = 8;
43  addMeshSubgenerator("AdvancedConcentricCircleGenerator", "eqv_core_circle", mesh_params);
44 
45  _build_mesh = &getMeshByName("eqv_core_circle");
46  }
47 }
std::unique_ptr< MeshBase > & getMeshByName(const MeshGeneratorName &mesh_generator_name)
T & set(const std::string &name, bool quiet_mode=false)
static const std::string reactor_params_name
static const std::string mesh_geometry
InputParameters getValidParams(const std::string &name) const
MeshGenerator(const InputParameters &parameters)
static const std::string assembly_pitch
Factory & getFactory()
void addMeshSubgenerator(const std::string &type, const std::string &name, Ts... extra_input_parameters)
std::unique_ptr< MeshBase > & getMesh(const std::string &param_name, const bool allow_invalid=false)
std::unique_ptr< MeshBase > * _input_mesh
The final mesh that is generated by the subgenerators; This mesh is pointed to by the input...
MooseApp & _app
std::unique_ptr< MeshBase > * _build_mesh
The final mesh that is generated by the subgenerators;.

Member Function Documentation

◆ generate()

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

Implements MeshGenerator.

Definition at line 50 of file TestReactorGeometryMeshBuilderMeshGenerator.C.

51 {
52  // Input mesh is essentially a data store to build the equivalent core, so we reset it as it is no
53  // longer needed. The mesh we care about is the one created by the subgenerator
54  _input_mesh->reset();
55  return std::move(*_build_mesh);
56 }
std::unique_ptr< MeshBase > * _input_mesh
The final mesh that is generated by the subgenerators; This mesh is pointed to by the input...
std::unique_ptr< MeshBase > * _build_mesh
The final mesh that is generated by the subgenerators;.

◆ validParams()

InputParameters TestReactorGeometryMeshBuilderMeshGenerator::validParams ( )
static

Definition at line 16 of file TestReactorGeometryMeshBuilderMeshGenerator.C.

17 {
19  params.addRequiredParam<MeshGeneratorName>("input", "Input core mesh");
20  return params;
21 }
void addRequiredParam(const std::string &name, const std::string &doc_string)
static InputParameters validParams()

Member Data Documentation

◆ _build_mesh

std::unique_ptr<MeshBase>* TestReactorGeometryMeshBuilderMeshGenerator::_build_mesh
private

The final mesh that is generated by the subgenerators;.

Definition at line 32 of file TestReactorGeometryMeshBuilderMeshGenerator.h.

Referenced by generate(), and TestReactorGeometryMeshBuilderMeshGenerator().

◆ _input

const std::string TestReactorGeometryMeshBuilderMeshGenerator::_input
private

the input mesh name

Definition at line 25 of file TestReactorGeometryMeshBuilderMeshGenerator.h.

Referenced by TestReactorGeometryMeshBuilderMeshGenerator().

◆ _input_mesh

std::unique_ptr<MeshBase>* TestReactorGeometryMeshBuilderMeshGenerator::_input_mesh
private

The final mesh that is generated by the subgenerators; This mesh is pointed to by the input.

We store it so we can later reset it in generate.

Definition at line 29 of file TestReactorGeometryMeshBuilderMeshGenerator.h.

Referenced by generate().


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