https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
20public:
22
24
25 std::unique_ptr<MeshBase> generate() override;
26
27 std::unique_ptr<CSG::CSGBase> generateCSG() override;
28
29protected:
30 // Delete outermost mesh interval of single-pin / homogenized assembly and replace with
31 // triangulated mesh with fixed number of nodes at outer boundary
33
34 // Define metadata associated with PinMeshGenerator
35 void generateMetadata();
36
38 const subdomain_id_type _pin_type;
39
41 const Real _pitch;
42
44 const unsigned int _num_sectors;
45
47 std::vector<Real> _ring_radii;
48
50 const std::vector<Real> _duct_halfpitch;
51
53 std::vector<unsigned int> _intervals;
54
56 std::vector<std::vector<subdomain_id_type>> _region_ids;
57
60
62 std::vector<std::vector<std::string>> _block_names;
63
65 std::string _mesh_geometry;
66
68 unsigned int _mesh_dimensions;
69
71 const bool _extrude;
72
75
78
81
84 std::unique_ptr<MeshBase> * _build_mesh;
85};
const InputParameters & parameters() const
Mesh generator for defining a reactor pin with background and duct regions, with the option to be 2-D...
std::vector< unsigned int > _intervals
The number of mesh intervals in a radial division starting from the center.
const std::vector< Real > _duct_halfpitch
The inner apothem of any surrounding ducts in the pin.
std::unique_ptr< MeshBase > generate() override
bool _homogenized
Whether the resulting pin mesh should be homogenized.
unsigned int _mesh_dimensions
The number of dimensions the mesh is ultimately going to have (2 or 3, declared in the ReactorMeshPar...
static InputParameters validParams()
std::unique_ptr< CSG::CSGBase > generateCSG() override
void generateFlexibleAssemblyBoundaries()
const unsigned int _num_sectors
The number of azimuthal divisions.
std::vector< Real > _ring_radii
The outer radii of concentric rings in the pin.
bool _quad_center
Whether the centermost elements in the pin should be quad elements as opposed to tri elements.
std::unique_ptr< MeshBase > * _build_mesh
The final mesh that is generated by the subgenerators; This mesh is generated by the subgenerators wi...
const bool _extrude
Whether this mesh should be extruded to 3-D, making it the final structure in the reactor mesh.
bool _has_block_names
Whether block names have been provided by user.
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...
const Real _pitch
The face-to-face size of this pin.
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
std::string _mesh_geometry
The type of geometry that is being described (Square or Hex, declared in the ReactorMeshParams object...
const subdomain_id_type _pin_type
The id number for this pin type.
bool _is_assembly
Whether the resulting pin mesh should also be used as an assembly mesh.
A base class that contains common members for Reactor Geometry Mesh Builder mesh generators.