21 "arrangement in a MARVEL-type micro-reactor");
33 Real standard_area, rod_area, wire_area, additional_area;
39 auto r_ref = rod_diameter / 2.0 + gap;
43 auto theta = std::acos(wire_lead_length /
44 std::sqrt(
std::pow(wire_lead_length, 2) +
55 additional_area = 0.0;
60 auto gamma = std::acos(1 - 0.5 *
std::pow(
pitch / r_ref, 2.0));
64 auto sector = 0.5 * sector_angle *
std::pow(r_ref, 2.0);
65 auto triangle = 0.5 *
pitch * triangle_height;
66 standard_area = 2.0 * sector + triangle;
68 additional_area = 0.0;
75 additional_area = 0.0;
80 auto subchannel_area = standard_area + additional_area - rod_area - wire_area;
84 for (
const auto & i_blockage : index_blockage)
86 if (i == i_blockage && (p(2) >= z_blockage.front() && p(2) <= z_blockage.back()))
88 return reduction_blockage[index] * subchannel_area;
93 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.
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
registerMooseObject("SubChannelApp", MarvelTriFlowAreaIC)
An abstract class for ICs for hexagonal fuel assemblies.
static const std::string pitch
const T & getConstMesh(const MooseMesh &mesh)
function to cast const mesh
Real value(const Point &p) override
This class calculates the flow area of the triangular, edge, and corner subchannels for a MARVEL-type...
virtual const std::vector< Real > & getReductionBlockage() const
Get area reduction of blocked subchannels.
static InputParameters validParams()
MarvelTriFlowAreaIC(const InputParameters ¶ms)
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].
static const std::string alpha
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.