https://mooseframework.inl.gov
PinMeshGenerator.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:
28  // Delete outermost mesh interval of single-pin / homogenized assembly and replace with
29  // triangulated mesh with fixed number of nodes at outer boundary
31 
32  // Define metadata associated with PinMeshGenerator
33  void generateMetadata();
34 
37 
39  const Real _pitch;
40 
42  const unsigned int _num_sectors;
43 
45  std::vector<Real> _ring_radii;
46 
48  const std::vector<Real> _duct_halfpitch;
49 
51  std::vector<unsigned int> _intervals;
52 
54  std::vector<std::vector<subdomain_id_type>> _region_ids;
55 
58 
60  std::vector<std::vector<std::string>> _block_names;
61 
63  std::string _mesh_geometry;
64 
66  unsigned int _mesh_dimensions;
67 
69  const bool _extrude;
70 
73 
76 
79 
82  std::unique_ptr<MeshBase> * _build_mesh;
83 };
const subdomain_id_type _pin_type
The id number for this pin type.
PinMeshGenerator(const InputParameters &parameters)
unsigned int _mesh_dimensions
The number of dimensions the mesh is ultimately going to have (2 or 3, declared in the ReactorMeshPar...
void generateFlexibleAssemblyBoundaries()
Mesh generator for defining a reactor pin with background and duct regions, with the option to be 2-D...
bool _homogenized
Whether the resulting pin mesh should be homogenized.
std::vector< unsigned int > _intervals
The number of mesh intervals in a radial division starting from the center.
bool _quad_center
Whether the centermost elements in the pin should be quad elements as opposed to tri elements...
bool _has_block_names
Whether block names have been provided by user.
static InputParameters validParams()
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...
const unsigned int _num_sectors
The number of azimuthal divisions.
const bool _extrude
Whether this mesh should be extruded to 3-D, making it the final structure in the reactor mesh...
std::unique_ptr< MeshBase > generate() override
std::vector< Real > _ring_radii
The outer radii of concentric rings in the pin.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Real _pitch
The face-to-face size of this pin.
A base class that contains common members for Reactor Geometry Mesh Builder mesh generators.
const InputParameters & parameters() const
std::string _mesh_geometry
The type of geometry that is being described (Square or Hex, declared in the ReactorMeshParams object...
bool _is_assembly
Whether the resulting pin mesh should also be used as an assembly mesh.
std::unique_ptr< MeshBase > * _build_mesh
The final mesh that is generated by the subgenerators; This mesh is generated by the subgenerators wi...
const std::vector< Real > _duct_halfpitch
The inner apothem of any surrounding ducts in the pin.
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...