23 "Computes axial power rate (W/m) that goes into the subchannel cells " 24 "or is assigned to the fuel pins, in a quadrilateral lattice arrangement");
26 "power",
"The postprocessor or Real to use for the total power of the subassembly [W]");
28 "filename",
"name of radial power profile .txt file (should be a single column) [UnitLess].");
29 params.
addParam<FunctionName>(
"axial_heat_rate",
31 "user provided normalized function of axial heat rate [Unitless]. " 32 "The integral over pin length should equal the heated length");
39 _power(getPostprocessorValue(
"power")),
41 _filename(getParam<
std::string>(
"filename")),
42 _axial_heat_rate(getFunction(
"axial_heat_rate"))
62 if (inFile.fail() && !inFile.eof())
66 mooseError(
name(),
" Radial profile file doesn't have correct size : ", (ny - 1) * (nx - 1));
85 auto n_pins = (nx - 1) * (ny - 1);
93 auto fpin_power =
_power / sum;
101 for (
unsigned int iz = 1; iz < nz + 1; iz++)
104 auto z2 = z_grid[iz];
105 auto z1 = z_grid[iz - 1];
106 Point p1(0, 0, z1 - unheated_length_entry);
107 Point p2(0, 0, z2 - unheated_length_entry);
114 for (
unsigned int i_pin = 0; i_pin < n_pins; i_pin++)
141 auto total_power = 0.0;
142 for (
unsigned int i_pin = 0; i_pin < n_pins; i_pin++)
152 _console <<
"###########################################" << std::endl;
153 _console <<
"Total power estimation by Aux kernel before correction: " << total_power <<
" [W] " 164 Point p1(0, 0, unheated_length_entry);
183 auto heat_rate = 0.0;
Eigen::MatrixXd _pin_power_correction
The correction that will be applied to the estimated calculation [unitless].
const QuadSubChannelMesh & _quadMesh
virtual const std::vector< Real > & getZGrid() const
Get axial location of layers.
Eigen::MatrixXd _estimate_power
Matrix which will hold the total estimated power of each pin [W].
const Node *const & _current_node
static InputParameters validParams()
Creates the mesh of subchannels in a quadrilateral lattice.
Eigen::MatrixXd _ref_power
Actual pin power [W].
Eigen::MatrixXd _ref_qprime
Average linear heat rate over the whole pin [W/m].
virtual const std::string & name() const
unsigned int _numberoflines
The number of lines associated with the radial power profile .txt file.
Sets the axial heat rate for each pin according to a radial power distribution and a user defined axi...
unsigned int getSubchannelIndexFromPoint(const Point &p) const override
Return a subchannel index for a given physical point p
virtual const Real & getHeatedLength() const
Return heated length.
virtual bool pinMeshExist() const override
Return if Pin Mesh exists or not.
const T & getConstMesh(const MooseMesh &mesh)
function to cast const mesh
Eigen::MatrixXd _power_dis
matrix that holds the values of the relative pin power
bool absoluteFuzzyLessThan(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
const PostprocessorValue & _power
The total power of the assembly.
virtual void initialSetup() override
virtual Real computeValue() override
virtual const unsigned int & getNumOfAxialCells() const
Return the number of axial cells.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual const unsigned int & getNy() const
Number of subchannels in the -y direction.
registerMooseObjectRenamed("SubChannelApp", QuadPowerAux, "06/30/2025 24:00", SCMQuadPowerAux)
bool absoluteFuzzyLessEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
std::string _filename
The name of the radial power profile file.
bool absoluteFuzzyGreaterEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
void mooseError(Args &&... args) const
unsigned int getPinIndexFromPoint(const Point &p) const override
Return a pin index for a given physical point p
static InputParameters validParams()
virtual const unsigned int & getNx() const
Number of subchannels in the -x direction.
const ConsoleStream _console
virtual Real value(Real t, const Point &p) const
virtual const std::vector< unsigned int > & getChannelPins(unsigned int i_chan) const override
Return a vector of pin indices for a given channel index.
const Function & _axial_heat_rate
bool absoluteFuzzyGreaterThan(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
virtual const Real & getHeatedLengthEntry() const
Return unheated length at entry.
registerMooseObject("SubChannelApp", SCMQuadPowerAux)
SCMQuadPowerAux(const InputParameters ¶ms)