https://mooseframework.inl.gov
ControlDrumMeshGenerator.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 
19 {
20 public:
22 
24 
25  std::unique_ptr<MeshBase> generate() override;
26 
27 protected:
29  void generateMetadata();
30 
32  unsigned int
33  getDrumIdxFromRadialIdx(const unsigned int radial_idx, const Real elem_x, const Real elem_y);
34 
36  std::string _geom_type;
37 
39  unsigned int _mesh_dimensions;
40 
43 
46 
49 
51  const bool _extrude;
52 
54  std::vector<std::vector<subdomain_id_type>> _region_ids;
55 
58 
60  std::vector<std::vector<std::string>> _block_names;
61 
64 
67 
70 
73  std::unique_ptr<MeshBase> * _build_mesh;
74 };
const bool _extrude
Whether this mesh should be extruded to 3-D, making it the final structure in the reactor mesh...
static InputParameters validParams()
std::unique_ptr< MeshBase > * _build_mesh
The final mesh that is generated by the subgenerators; This mesh is generated by the subgenerators wi...
Mesh generator for defining a reactor control drum that can be used in a Cartesian or hexagonal latti...
std::string _geom_type
The type of geometry that is being described (Square or Hex, declared in the ReactorMeshParams object...
std::unique_ptr< MeshBase > generate() override
std::vector< std::vector< std::string > > _block_names
2-D vector (axial outer indexing, radial inner indexing) used to set block names of pin mesh elements...
bool _has_pad_region
Whether pad start and end angles are provided by user.
const Real _drum_outer_radius
The outer radius of drum region.
bool _has_block_names
Whether block names have been provided by user.
unsigned int getDrumIdxFromRadialIdx(const unsigned int radial_idx, const Real elem_x, const Real elem_y)
Get drum index from radial index of mesh element, drum index is used to retrieve region ID and block ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void generateMetadata()
Define metadata associated with ControlDrumMeshGenerator.
A base class that contains common members for Reactor Geometry Mesh Builder mesh generators.
const subdomain_id_type _assembly_type
The id number for the type of the assembly.
Real _pad_start_angle
Starting angle of drum pad region.
const InputParameters & parameters() const
unsigned int _mesh_dimensions
The number of dimensions the mesh is ultimately going to have (2 or 3, declared in the ReactorMeshPar...
ControlDrumMeshGenerator(const InputParameters &parameters)
Real _pad_end_angle
Ending angle of drum pad region.
const Real _drum_inner_radius
The inner radius of drum region.
std::vector< std::vector< subdomain_id_type > > _region_ids
2-D vector (axial outer indexing, radial inner indexing) used to set "region_id" extra-element intege...