22 "Computes flow area of subchannels in a triangular lattice arrangement");
34 Real standard_area, rod_area, wire_area, additional_area;
43 auto theta = std::acos(wire_lead_length /
44 std::sqrt(
std::pow(wire_lead_length, 2) +
55 additional_area = 0.0;
60 standard_area =
pitch * (pin_diameter / 2.0 + gap);
62 additional_area = 0.0;
67 standard_area = 1.0 / std::sqrt(3.0) *
std::pow((pin_diameter / 2.0 + gap), 2.0);
69 additional_area = 0.0;
74 auto subchannel_area = standard_area + additional_area - rod_area - wire_area;
78 for (
const auto & i_blockage : index_blockage)
80 if (i == i_blockage && (p(2) >= z_blockage.front() && p(2) <= z_blockage.back()))
82 return reduction_blockage[index] * subchannel_area;
87 return subchannel_area;
virtual EChannelType getSubchannelType(unsigned int index) const override
Return the type of the subchannel for given subchannel index.
virtual const Real & getPinDiameter() const
Return Pin diameter.
virtual const Real & getDuctToPinGap() const
Return the the gap thickness between the duct and peripheral fuel pins.
Real value(const Point &p) override
virtual const Real & getPitch() const
Return the pitch between 2 subchannels.
virtual unsigned int getSubchannelIndexFromPoint(const Point &p) const override
Return a subchannel index for a given physical point p
This class calculates the area of the triangular, edge, and corner subchannels for hexagonal fuel ass...
SCMTriFlowAreaIC(const InputParameters ¶ms)
static InputParameters validParams()
An abstract class for ICs for hexagonal fuel assemblies.
registerMooseObjectRenamed("SubChannelApp", TriFlowAreaIC, "06/30/2025 24:00", SCMTriFlowAreaIC)
static const std::string pitch
const T & getConstMesh(const MooseMesh &mesh)
function to cast const mesh
virtual const std::vector< Real > & getReductionBlockage() const
Get area reduction of blocked subchannels.
registerMooseObject("SubChannelApp", SCMTriFlowAreaIC)
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].
const TriSubChannelMesh & _mesh
static InputParameters validParams()
virtual const Real & getWireLeadLength() const
Return the wire lead length.
virtual const std::vector< unsigned int > & getIndexBlockage() const
Get index of blocked subchannels.
Base class for subchannel meshes.
MooseUnits pow(const MooseUnits &, int)
virtual const Real & getWireDiameter() const
Return wire diameter.