28 std::unique_ptr<MooseMesh>
safeClone()
const override;
41 Node *
getPinNode(
unsigned int i_pin,
unsigned int iz)
const override 59 const unsigned int &
getPinIndex(
const unsigned int channel_idx,
const unsigned int neighbor_idx)
88 const std::pair<unsigned int, unsigned int> &
getGapChannels(
unsigned int i_gap)
const override 93 const std::pair<unsigned int, unsigned int> &
getGapPins(
unsigned int i_gap)
const override 98 const std::vector<unsigned int> &
getChannelGaps(
unsigned int i_chan)
const override 109 unsigned int channelIndex(
const Point & point)
const override;
115 return _gij_map[axial_index][gap_index];
121 void setGapWidth(
unsigned int axial_index,
unsigned int gap_index, Real gap_width)
123 _gij_map[axial_index][gap_index] = gap_width;
136 const std::vector<unsigned int> &
getPinChannels(
unsigned int i_pin)
const override 141 const std::vector<unsigned int> &
getChannelPins(
unsigned int i_chan)
const override 147 unsigned int pinIndex(
const Point &
p)
const override;
std::vector< EChannelType > _subch_type
subchannel type
const Real & getWireDiameter() const
Return wire diameter.
Real getSubchannelWettedPerimeter(unsigned int i_chan) const override
Return undeformed wetted perimeter for a subchannel.
std::unique_ptr< MooseMesh > safeClone() const override
void setGapWidth(unsigned int axial_index, unsigned int gap_index, Real gap_width)
Set the gap width for a given axial cell and gap index.
const std::vector< unsigned int > & getPinChannels(unsigned int i_pin) const override
Return a vector of channel indices for a given Pin index.
std::vector< std::vector< Real > > _sign_id_crossflow_map
Defines the global cross-flow direction -1 or 1 for each subchannel and for all gaps that are belongi...
std::vector< std::vector< unsigned int > > _pin_to_chan_map
channel indices corresponding to a given pin index
const InputParameters & parameters() const
static void pinPositions(std::vector< Point > &positions, unsigned int nrings, Real pitch, Point center)
Calculates and stores the pin positions/centers for a hexagonal assembly containing the given number ...
const std::pair< unsigned int, unsigned int > & getGapChannels(unsigned int i_gap) const override
Return a pair of subchannel indices for a given gap index.
unsigned int getSubchannelIndexFromPoint(const Point &p) const override
Return a subchannel index for a given physical point p
std::vector< std::pair< unsigned int, unsigned int > > _gap_to_chan_map
stores the channel pairs for each gap
TriSubChannelMesh(const InputParameters ¶meters)
const std::vector< unsigned int > & getChannelGaps(unsigned int i_chan) const override
Return a vector of gap indices for a given channel index.
std::vector< std::vector< unsigned int > > _chan_to_pin_map
stores the fuel pins belonging to each subchannel
void computeAssemblyHydraulicParameters()
Compute undeformed bundle-average inlet hydraulic quantities from generated mesh geometry.
Real _hwire
wire lead length
static const unsigned int N_CORNERS
number of corners in the duct x-sec
Node * getChannelNode(unsigned int i_chan, unsigned int iz) const override
Get the subchannel mesh node for a given channel index and elevation index.
const std::pair< unsigned int, unsigned int > & getSweepFlowGaps(unsigned int i_chan) const
Real _duct_to_pin_gap
the gap thickness between the duct and peripheral fuel pins
const std::pair< unsigned int, unsigned int > & getGapPins(unsigned int i_gap) const override
Return a pair of pin indices for a given gap index.
const unsigned int & getNumOfRings() const
Return the number of fuel-pin rings, counting the center pin as the first ring.
const Real & getDuctToPinGap() const
Return the the gap thickness between the duct and peripheral fuel pins.
void buildMesh() override
std::vector< std::pair< unsigned int, unsigned int > > _gap_to_pin_map
stores the fuel pins belonging to each gap
unsigned int _n_rings
number of fuel-pin rings, counting the center pin as the first ring
unsigned int getNumOfGapsPerLayer() const override
Return the number of gaps per layer.
unsigned int channelIndex(const Point &point) const override
static const std::string pitch
unsigned int getNumOfChannels() const override
Return the number of channels per layer.
Real _flat_to_flat
the distance between flat surfaces of the duct facing each other
const std::vector< unsigned int > & getChannelPins(unsigned int i_chan) const override
Return a vector of pin indices for a given channel index.
std::vector< std::vector< unsigned int > > _chan_to_gap_map
stores the gaps that forms each subchannel
unsigned int _npins
number of fuel pins
std::vector< std::vector< Real > > _gij_map
gap size
unsigned int getPinIndexFromPoint(const Point &p) const override
Return a pin index for a given physical point p
std::vector< std::vector< Real > > _pins_in_rings
fuel pins that are belonging to each ring
EChannelType
Enum for describing the center, edge and corner subchannels or gap types.
Mesh class for triangular, edge and corner subchannels for hexagonal lattice fuel assemblies...
const Real & getFlatToFlat() const
Return flat to flat [m].
const unsigned int & getPinIndex(const unsigned int channel_idx, const unsigned int neighbor_idx)
Return Pin index given subchannel index and local neighbor index.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< std::vector< Node * > > _nodes
nodes
std::vector< EChannelType > _gap_type
gap type
Real getGapWidth(unsigned int axial_index, unsigned int gap_index) const override
Return gap width for a given gap index.
Node * getPinNode(unsigned int i_pin, unsigned int iz) const override
Get the pin mesh node for a given pin index and elevation index.
unsigned int pinIndex(const Point &p) const override
std::vector< std::vector< Node * > > _pin_nodes
pin nodes
Mesh generator that builds a mesh of 1D lines representing subchannels and pins in a triangular assem...
Base class for subchannel meshes.
const std::pair< unsigned int, unsigned int > & getSweepFlowChans(unsigned int i_chan) const
std::vector< Point > _pin_position
x,y coordinates of the fuel pins
Mesh generator that builds a 3D mesh representing triangular subchannels and pins.
const Real & getCrossflowSign(unsigned int i_chan, unsigned int i_local) const override
Return a sign for the crossflow given a subchannel index and local neighbor index.
Real getSubchannelFlowArea(unsigned int i_chan, Real z) const override
Return undeformed flow area for a subchannel at an axial location, including any blockage reduction...
EChannelType getSubchannelType(unsigned int index) const override
Return the type of the subchannel for given subchannel index.
std::vector< std::pair< unsigned int, unsigned int > > _gap_pairs_sf
sweeping flow model gap pairs per channel to specify directional edge flow
processor_id_type processor_id() const
unsigned int getNumOfPins() const override
Return the number of pins.
const Real & getWireLeadLength() const
Return the wire lead length.
unsigned int _n_channels
number of subchannels
static InputParameters validParams()
static const std::string center
std::vector< std::pair< unsigned int, unsigned int > > _chan_pairs_sf
sweeping flow model channel pairs to specify directional edge flow
unsigned int _n_gaps
number of gaps
Mesh generator for hexagonal duct.