https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SCMDetailedTriAssemblyMeshGenerator.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
12#include "MeshGenerator.h"
13#include "SubChannelEnums.h"
14
19{
20public:
22 virtual std::unique_ptr<MeshBase> generate() override;
23
24protected:
26 EChannelType getSubchannelType(unsigned int index) const { return _subch_type[index]; }
28 Point rotatePoint(Point b, Real theta);
30 void generatePin(std::unique_ptr<MeshBase> & mesh_base, const Point & center);
32 Point getPinPosition(unsigned int i) { return _pin_position[i]; }
34 std::vector<Real> getSubchannelPosition(unsigned int i) { return _subchannel_position[i]; }
36 std::vector<unsigned int> getSubChannelPins(unsigned int i) { return _chan_to_pin_map[i]; }
37
41 const Real _heated_length;
45 std::vector<Real> _z_grid;
47 const Real _pitch;
49 const Real _pin_diameter;
51 const unsigned int _n_rings;
53 const Real _flat_to_flat;
55 const unsigned int _num_sectors;
57 std::vector<EChannelType> _subch_type;
59 std::vector<Point> _pin_position;
61 std::vector<std::vector<Real>> _subchannel_position;
63 const unsigned int _subchannel_block_id;
65 const unsigned int _pin_block_id;
67 const unsigned int _n_cells;
69 unsigned int _nrods;
71 std::vector<std::vector<unsigned int>> _pins_in_rings;
73 std::map<unsigned int, Real> _orientation_map;
75 unsigned int _n_channels;
77 std::vector<std::vector<unsigned int>> _chan_to_pin_map;
79 const bool _verbose;
81 dof_id_type _elem_id;
82
83public:
85};
EChannelType
Enum for describing the center, edge and corner subchannels or gap types.
const InputParameters & parameters() const
Mesh generator that builds a 3D mesh representing triangular subchannels and pins.
const unsigned int _n_rings
Number of rings in the geometry.
std::vector< EChannelType > _subch_type
Subchannel type.
const Real _heated_length
heated length of the fuel Pin
std::vector< std::vector< unsigned int > > _chan_to_pin_map
stores the fuel pins belonging to each subchannel
const Real _flat_to_flat
Half of gap between adjacent assemblies.
std::vector< Point > _pin_position
x,y coordinates of the fuel pins
const Real _pitch
Distance between the neighbor fuel pins, pitch.
const unsigned int _num_sectors
Number of azimuthal sectors used to discretize each circular pin cross section.
virtual std::unique_ptr< MeshBase > generate() override
const unsigned int _n_cells
Number of cells in the axial direction.
Point rotatePoint(Point b, Real theta)
rotate a point by theta radians about the origin
std::vector< std::vector< unsigned int > > _pins_in_rings
fuel pins that are belonging to each ring
Point getPinPosition(unsigned int i)
returns the position of pin given pin index
EChannelType getSubchannelType(unsigned int index) const
returns the type of the subchannel given the index
const Real _unheated_length_exit
unheated length of the fuel Pin at the exit of the assembly
void generatePin(std::unique_ptr< MeshBase > &mesh_base, const Point &center)
Generate one detailed fuel pin volume centered at the supplied point.
std::vector< unsigned int > getSubChannelPins(unsigned int i)
returns the index of neighboring pins given subchannel index
const Real _unheated_length_entry
unheated length of the fuel Pin at the entry of the assembly
const unsigned int _subchannel_block_id
Subchannel subdomain ID.
const unsigned int _pin_block_id
Pin subdomain ID.
std::vector< Real > _z_grid
axial location of nodes
dof_id_type _elem_id
counter for element numbering
const bool _verbose
Flag to print out the detailed mesh assembly and coordinates.
std::map< unsigned int, Real > _orientation_map
map inner and outer rings
std::vector< Real > getSubchannelPosition(unsigned int i)
returns the position of subchannel given pin index
std::vector< std::vector< Real > > _subchannel_position
x,y coordinates of the subchannels