36 virtual unsigned int getZIndex(
const Point & point)
const;
41 virtual const std::vector<std::vector<Real>> &
getKGrid()
const {
return _k_grid; }
71 virtual Node *
getChannelNode(
unsigned int i_chan,
unsigned int iz)
const = 0;
76 virtual Node *
getPinNode(
unsigned int i_pin,
unsigned int iz)
const = 0;
116 virtual const std::pair<unsigned int, unsigned int> &
122 virtual const std::pair<unsigned int, unsigned int> &
getGapPins(
unsigned int i_gap)
const = 0;
127 virtual const std::vector<unsigned int> &
getChannelGaps(
unsigned int i_chan)
const = 0;
132 virtual const std::vector<unsigned int> &
getPinChannels(
unsigned int i_pin)
const = 0;
137 virtual const std::vector<unsigned int> &
getChannelPins(
unsigned int i_chan)
const = 0;
200 virtual unsigned int channelIndex(
const Point & point)
const = 0;
207 virtual unsigned int pinIndex(
const Point &
p)
const = 0;
217 virtual Real getGapWidth(
unsigned int axial_index,
unsigned int gap_index)
const = 0;
293 Real unheated_length_exit,
294 unsigned int n_cells,
295 std::vector<Real> & z_grid);
virtual unsigned int getSubchannelIndexFromPoint(const Point &p) const =0
Return a subchannel index for a given physical point p
static InputParameters validParams()
virtual unsigned int pinIndex(const Point &p) const =0
virtual unsigned int getNumOfGapsPerLayer() const =0
Return the number of gaps per layer.
virtual const std::pair< unsigned int, unsigned int > & getGapPins(unsigned int i_gap) const =0
Return a pair of pin indices for a given gap index.
virtual const Real & getPinDiameter() const
Return undeformed Pin diameter.
std::vector< Real > _z_grid
axial location of nodes
virtual const std::vector< unsigned int > & getPinChannels(unsigned int i_pin) const =0
Return a vector of channel indices for a given Pin index.
Real getAssemblyWettedPerimeter() const
Return undeformed bundle inlet wetted perimeter.
Node * getDuctNodeFromChannel(Node *channel_node) const
Function that gets the duct node from the channel node.
virtual const std::vector< unsigned int > & getChannelPins(unsigned int i_chan) const =0
Return a vector of pin indices for a given channel index.
virtual const std::vector< Real > & getZGrid() const
Get axial location of layers.
virtual const Real & getPitch() const
Return the undeformed pitch between 2 subchannels.
virtual EChannelType getSubchannelType(unsigned int index) const =0
Return the type of the subchannel for given subchannel index.
const InputParameters & parameters() const
virtual const Real & getKij() const
Return lateral loss coefficient.
std::vector< std::vector< Real > > _k_grid
axial form loss coefficient per computational cell
virtual Node * getPinNode(unsigned int i_pin, unsigned int iz) const =0
Get the pin mesh node for a given pin index and elevation index.
std::map< Node *, Node * > _duct_node_to_chan_map
Real _unheated_length_entry
unheated length of the fuel Pin at the entry of the assembly
virtual unsigned int getNumOfPins() const =0
Return the number of pins.
Real getAssemblyHydraulicDiameter() const
Return undeformed bundle-average hydraulic diameter.
std::vector< std::vector< Real > > _subchannel_position
x,y coordinates of the subchannel centroids
virtual const std::vector< unsigned int > & getChannelGaps(unsigned int i_chan) const =0
Return a vector of gap indices for a given channel index.
std::vector< Node * > _duct_nodes
A list of all mesh nodes that form the (elements of) the duct mesh that surrounds the pins/subchannel...
static void generateZGrid(Real unheated_length_entry, Real heated_length, Real unheated_length_exit, unsigned int n_cells, std::vector< Real > &z_grid)
Generate the spacing in z-direction using heated and unteaded lengths.
const std::vector< Node * > & getDuctNodes() const
Function that returns the vector with the duct nodes.
virtual const Real & getHeatedLength() const
Return heated length.
std::vector< Real > _spacer_k
form loss coefficient of the spacers
virtual unsigned int getNumOfChannels() const =0
Return the number of channels per layer.
Node * getChannelNodeFromDuct(Node *duct_node) const
Function that gets the channel node from the duct node.
Real _assembly_wetted_perimeter
Undeformed bundle inlet wetted perimeter.
Real _unheated_length_exit
unheated length of the fuel Pin at the exit of the assembly
std::vector< Real > _z_blockage
axial location of blockage (inlet, outlet) [m]
Real _pin_diameter
fuel Pin diameter
virtual const std::vector< std::vector< Real > > & getKGrid() const
Get axial cell location and value of loss coefficient.
virtual Node * getChannelNode(unsigned int i_chan, unsigned int iz) const =0
Get the subchannel mesh node for a given channel index and elevation index.
bool pinMeshExist() const
Return if Pin Mesh exists or not.
std::vector< Real > _reduction_blockage
area reduction of subchannels affected by blockage
Real getAssemblyFlowArea() const
Return undeformed bundle inlet flow area.
virtual const std::vector< Real > & getReductionBlockage() const
Get area reduction of blocked subchannels.
EChannelType
Enum for describing the center, edge and corner subchannels or gap types.
bool ductMeshExist() const
Return if Duct Mesh exists or not.
Real _pitch
Distance between the neighbor fuel pins, pitch.
virtual unsigned int getNumOfAxialCells() const
Return the number of axial cells.
std::vector< Real > _spacer_z
axial location of the spacers
Real _assembly_flow_area
Undeformed bundle inlet flow area.
virtual Real getGapWidth(unsigned int axial_index, unsigned int gap_index) const =0
Return gap width for a given gap index.
virtual unsigned int channelIndex(const Point &point) const =0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual const std::vector< Real > & getZBlockage() const
Get axial location of blockage (in,out) [m].
std::map< Node *, Node * > _chan_to_duct_node_map
Maps between channel nodes and duct nodes.
virtual const Real & getCrossflowSign(unsigned int i_chan, unsigned int i_local) const =0
Return a sign for the crossflow given a subchannel index and local neighbor index.
void setChannelToDuctMaps(const std::vector< Node *> &duct_nodes)
Function that sets the channel-to-duct maps.
Mesh generator that builds a mesh of 1D lines representing subchannels and pins in a quadrilateral as...
virtual Real getSubchannelFlowArea(unsigned int i_chan, Real z) const =0
Return undeformed flow area for a subchannel at an axial location, including any blockage reduction...
virtual const std::vector< unsigned int > & getIndexBlockage() const
Get index of blocked subchannels.
Base class for subchannel meshes.
virtual const Real & getHeatedLengthExit() const
Return unheated length at exit.
Real _kij
Lateral form loss coefficient.
unsigned int _n_cells
number of axial cells
processor_id_type processor_id() const
virtual unsigned int getPinIndexFromPoint(const Point &p) const =0
Return a pin index for a given physical point p
virtual Real getSubchannelWettedPerimeter(unsigned int i_chan) const =0
Return undeformed wetted perimeter for a subchannel.
virtual unsigned int getZIndex(const Point &point) const
Get axial index of point.
Real _heated_length
heated length of the fuel Pin
SubChannelMesh(const InputParameters ¶meters)
Real _assembly_hydraulic_diameter
Undeformed bundle-average hydraulic diameter.
virtual const Real & getHeatedLengthEntry() const
Return unheated length at entry.
std::vector< unsigned int > _index_blockage
index of subchannels affected by blockage
virtual const std::pair< unsigned int, unsigned int > & getGapChannels(unsigned int i_gap) const =0
Return a pair of subchannel indices for a given gap index.