25 "Computes wetted perimeter of subchannels in a triangular lattice arrangement");
42 auto rod_circumference =
libMesh::pi * pin_diameter;
43 auto wire_circumference =
libMesh::pi * wire_diameter;
45 auto theta = std::acos(wire_lead_length /
46 std::sqrt(
std::pow(wire_lead_length, 2) +
55 return 0.5 * rod_circumference + 0.5 * wire_circumference / std::cos(theta);
59 return 0.5 * rod_circumference + 0.5 * wire_circumference / std::cos(theta) +
pitch;
63 return (rod_circumference + wire_circumference / std::cos(theta)) / 6.0 +
64 2.0 / std::sqrt(3.0) * (pin_diameter / 2.0 + gap);
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.
SCMTriWettedPerimIC(const InputParameters ¶ms)
virtual unsigned int getSubchannelIndexFromPoint(const Point &p) const override
Return a subchannel index for a given physical point p
registerMooseObject("SubChannelApp", SCMTriWettedPerimIC)
An abstract class for ICs for hexagonal fuel assemblies.
static const std::string pitch
registerMooseObjectRenamed("SubChannelApp", TriWettedPerimIC, "06/30/2025 24:00", SCMTriWettedPerimIC)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Sets the wetted perimeter of the triangular, edge, and corner subchannels for hexagonal fuel assembli...
Real value(const Point &p) override
const TriSubChannelMesh & _mesh
static InputParameters validParams()
virtual const Real & getWireLeadLength() const
Return the wire lead length.
static InputParameters validParams()
MooseUnits pow(const MooseUnits &, int)
virtual const Real & getWireDiameter() const
Return wire diameter.