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;
178 virtual const Real &
getCrossflowSign(
unsigned int i_chan,
unsigned int i_local)
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);
EChannelType
Enum for describing the center, edge and corner subchannels or gap types.
const InputParameters & parameters() const
Mesh generator that builds a mesh of 1D lines representing subchannels and pins in a quadrilateral as...
Base class for subchannel meshes.
std::vector< unsigned int > _index_blockage
index of subchannels affected by blockage
std::vector< Real > _z_grid
axial location of nodes
virtual unsigned int getNumOfChannels() const =0
Return the number of channels per layer.
virtual const Real & getHeatedLength() const
Return heated length.
Real _assembly_wetted_perimeter
Undeformed bundle inlet wetted perimeter.
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 Real getSubchannelWettedPerimeter(unsigned int i_chan) const =0
Return undeformed wetted perimeter for a subchannel.
virtual unsigned int getPinIndexFromPoint(const Point &p) const =0
Return a pin index for a given physical point p
virtual const Real & getHeatedLengthExit() const
Return unheated length at exit.
bool ductMeshExist() const
Return if Duct Mesh exists or not.
std::vector< Node * > _duct_nodes
A list of all mesh nodes that form the (elements of) the duct mesh that surrounds the pins/subchannel...
virtual const std::vector< Real > & getZBlockage() const
Get axial location of blockage (in,out) [m].
std::vector< Real > _reduction_blockage
area reduction of subchannels affected by blockage
Real _kij
Lateral form loss coefficient.
Real _unheated_length_exit
unheated length of the fuel Pin at the exit of the assembly
virtual unsigned int channelIndex(const Point &point) const =0
static InputParameters validParams()
Real getAssemblyFlowArea() const
Return undeformed bundle inlet flow area.
std::map< Node *, Node * > _chan_to_duct_node_map
Maps between channel nodes and duct nodes.
virtual const Real & getHeatedLengthEntry() const
Return unheated length at entry.
Real getAssemblyHydraulicDiameter() const
Return undeformed bundle-average hydraulic diameter.
std::vector< Real > _z_blockage
axial location of blockage (inlet, outlet) [m]
Real _assembly_flow_area
Undeformed bundle inlet flow area.
virtual const std::vector< Real > & getZGrid() const
Get axial location of layers.
Node * getChannelNodeFromDuct(Node *duct_node) const
Function that gets the channel node from the duct node.
std::vector< Real > _spacer_z
axial location of the spacers
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.
std::vector< Real > _spacer_k
form loss coefficient of the spacers
std::vector< std::vector< Real > > _subchannel_position
x,y coordinates of the subchannel centroids
virtual Real getGapWidth(unsigned int axial_index, unsigned int gap_index) const =0
Return gap width for a given gap index.
virtual unsigned int getSubchannelIndexFromPoint(const Point &p) const =0
Return a subchannel index for a given physical point p
std::vector< std::vector< Real > > _k_grid
axial form loss coefficient per computational cell
Real _pin_diameter
fuel Pin diameter
virtual const Real & getPitch() const
Return the undeformed pitch between 2 subchannels.
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.
virtual const std::vector< Real > & getReductionBlockage() const
Get area reduction of blocked subchannels.
const std::vector< Node * > & getDuctNodes() const
Function that returns the vector with the duct nodes.
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.
bool pinMeshExist() const
Return if Pin Mesh exists or not.
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 unsigned int getNumOfPins() const =0
Return the number of pins.
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 unsigned int pinIndex(const Point &p) const =0
virtual EChannelType getSubchannelType(unsigned int index) const =0
Return the type of the subchannel for given subchannel index.
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.
virtual const std::vector< std::vector< Real > > & getKGrid() const
Get axial cell location and value of loss coefficient.
Real _assembly_hydraulic_diameter
Undeformed bundle-average hydraulic diameter.
std::map< Node *, Node * > _duct_node_to_chan_map
void setChannelToDuctMaps(const std::vector< Node * > &duct_nodes)
Function that sets the channel-to-duct maps.
Real _unheated_length_entry
unheated length of the fuel Pin at the entry of the assembly
virtual unsigned int getZIndex(const Point &point) const
Get axial index of point.
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.
virtual const std::vector< unsigned int > & getIndexBlockage() const
Get index of blocked subchannels.
Real _pitch
Distance between the neighbor fuel pins, pitch.
virtual unsigned int getNumOfGapsPerLayer() const =0
Return the number of gaps per layer.
virtual const std::vector< unsigned int > & getChannelGaps(unsigned int i_chan) const =0
Return a vector of gap indices for a given channel index.
virtual unsigned int getNumOfAxialCells() const
Return the number of axial cells.
virtual const Real & getPinDiameter() const
Return undeformed Pin diameter.
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.
unsigned int _n_cells
number of axial cells
virtual const Real & getKij() const
Return lateral loss coefficient.
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 _heated_length
heated length of the fuel Pin
processor_id_type processor_id() const