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) +
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 +
MarvelTriWettedPerimIC(const InputParameters ¶ms)
const Real & getWireDiameter() const
Return wire diameter.
virtual const Real & getPinDiameter() const
Return undeformed Pin diameter.
registerMooseObject("SubChannelApp", MarvelTriWettedPerimIC)
Real value(const Point &p) override
virtual const Real & getPitch() const
Return the undeformed pitch between 2 subchannels.
unsigned int getSubchannelIndexFromPoint(const Point &p) const override
Return a subchannel index for a given physical point p
const Real & getDuctToPinGap() const
Return the the gap thickness between the duct and peripheral fuel pins.
An abstract class for ICs for hexagonal fuel assemblies.
static const std::string pitch
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
const TriSubChannelMesh & _mesh
static InputParameters validParams()
EChannelType getSubchannelType(unsigned int index) const override
Return the type of the subchannel for given subchannel index.
Sets the wetted perimeter of the triangular, edge, and corner subchannels for a MARVEL-type microreac...
const Real & getWireLeadLength() const
Return the wire lead length.
MooseUnits pow(const MooseUnits &, int)