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  std::unique_ptr<CSG::CSGBase> generateCSG() override;
28 
29 protected:
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 
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 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()
std::unique_ptr< CSG::CSGBase > generateCSG() override
const InputParameters & parameters() const
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.
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...