20 params.
addClassDescription(
"Computes wetted perimeter of subchannels in a triangular lattice "
21 "arrangement in a MARVEL-type micro-reactor");
38 auto rod_circumference =
libMesh::pi * rod_diameter;
39 auto wire_circumference =
libMesh::pi * wire_diameter;
41 auto r_ref = rod_diameter / 2.0 + gap;
42 auto theta = std::acos(wire_lead_length /
43 std::sqrt(std::pow(wire_lead_length, 2) +
44 std::pow(
libMesh::pi * (rod_diameter + wire_diameter), 2)));
52 return 0.5 * rod_circumference + 0.5 * wire_circumference / std::cos(theta);
56 auto gamma = std::acos(1 - 0.5 * std::pow(pitch / r_ref, 2.0));
59 return 0.5 * rod_circumference + 0.5 * wire_circumference / std::cos(theta) +
60 2.0 * sector_angle * (r_ref);
64 return (rod_circumference + wire_circumference / std::cos(theta)) / 6.0 +
registerMooseObject("SubChannelApp", MarvelTriWettedPerimIC)
Sets the wetted perimeter of the triangular, edge, and corner subchannels for a MARVEL-type microreac...
static InputParameters validParams()
Real value(const Point &p) override
MarvelTriWettedPerimIC(const InputParameters ¶ms)
virtual const Real & getPitch() const
Return the undeformed pitch between 2 subchannels.
virtual const Real & getPinDiameter() const
Return undeformed Pin diameter.
An abstract class for ICs for hexagonal fuel assemblies.
static InputParameters validParams()
const TriSubChannelMesh & _mesh
const Real & getWireDiameter() const
Return wire diameter.
const Real & getDuctToPinGap() const
Return the the gap thickness between the duct and peripheral fuel pins.
unsigned int getSubchannelIndexFromPoint(const Point &p) const override
Return a subchannel index for a given physical point p
const Real & getWireLeadLength() const
Return the wire lead length.
EChannelType getSubchannelType(unsigned int index) const override
Return the type of the subchannel for given subchannel index.