https://mooseframework.inl.gov
SCMQuadInterWrapperMeshGenerator.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 #include <vector>
12 #include "MeshGenerator.h"
13 #include "libmesh/point.h"
14 #include "SubChannelEnums.h"
15 
20 {
21 public:
23  std::unique_ptr<MeshBase> generate() override;
24 
25 protected:
38  const Real & _kij;
40  const unsigned int _n_cells;
42  unsigned int _nx;
44  unsigned int _ny;
48  const unsigned int _n_channels;
50  const unsigned int _n_gaps;
52  const unsigned int _n_assemblies;
54  const unsigned int _block_id;
55 
57  std::vector<Real> _z_grid;
59  std::vector<std::vector<Real>> _k_grid;
61  unsigned int _n_blocks;
62 
63  // Note: this ideally needs to be changes
64  // I am not changing them because it would entail changing the full solver
66  std::vector<std::vector<Node *>> _nodes;
68  std::vector<std::vector<Node *>> _gapnodes;
70  // Map from gaps to channels
71  std::vector<std::pair<unsigned int, unsigned int>> _gap_to_chan_map;
72  // Map from channel to gaps
73  std::vector<std::vector<unsigned int>> _chan_to_gap_map;
74  // Map of channels to pins
75  std::vector<std::vector<unsigned int>> _chan_to_pin_map;
76  // Map of pins to channels
77  std::vector<std::vector<unsigned int>> _pin_to_chan_map;
79  std::vector<std::vector<double>> _sign_id_crossflow_map;
81  std::vector<double> _gij_map;
83  std::vector<EChannelType> _subch_type;
84 
85 public:
87 
89 };
const Real & _kij
Lateral form loss coefficient.
std::vector< std::vector< Real > > _k_grid
axial form loss coefficient per computational cell
std::vector< EChannelType > _subch_type
Subchannel type.
std::vector< std::vector< double > > _sign_id_crossflow_map
Matrix used to give local sign to crossflow quantities.
std::vector< double > _gij_map
Vector to store gap size.
std::vector< std::pair< unsigned int, unsigned int > > _gap_to_chan_map
Defining the channel maps.
std::vector< std::vector< unsigned int > > _chan_to_gap_map
unsigned int _nx
Number of assemblies in the x direction.
const Real _unheated_length_exit
unheated length of the inter-wrapper section at the exit of the assembly
std::vector< std::vector< unsigned int > > _pin_to_chan_map
const Real _assembly_side_x
Sides of the assemblies in the x and y direction.
const Real _side_bypass_length
Extra bypass lengths in the sides of the assembly.
unsigned int _ny
Number of assemblies in the y direction.
const unsigned int _n_gaps
Number of gaps per layer.
const Real _heated_length
heated length of the inter-wrapper section
std::vector< Real > _z_grid
axial location of nodes
unsigned int _n_blocks
number of axial blocks
const unsigned int _n_channels
Total number of flow channels.
std::unique_ptr< MeshBase > generate() override
std::vector< std::vector< Node * > > _gapnodes
Nodes of the gaps.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const unsigned int _n_assemblies
Number of assemblies.
const unsigned int _n_cells
number of axial cells
std::vector< std::vector< Node * > > _nodes
Channel nodes.
const InputParameters & parameters() const
const Real _assembly_pitch
Distance between the neighbor fuel assemblies, assembly pitch.
const Real _unheated_length_entry
unheated length of the inter-wrapper section at the entry of the assembly
SCMQuadInterWrapperMeshGenerator(const InputParameters &parameters)
Class to create Pin mesh in the square lattice geometry.
std::vector< std::vector< unsigned int > > _chan_to_pin_map
Class for Subchannel mesh generation in the square lattice geometry.