Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #pragma once 11 : 12 : #include "AuxKernel.h" 13 : #include "SubChannelMesh.h" 14 : 15 : class TriSubChannelMesh; 16 : 17 : /** 18 : * Sets the axial heat rate for each pin according to a radial power distribution and a user defined 19 : * axial power shape for hexagonal fuel assemblies. 20 : */ 21 : class SCMTriPowerAux : public AuxKernel 22 : { 23 : public: 24 : SCMTriPowerAux(const InputParameters & params); 25 : virtual Real computeValue() override; 26 : virtual void initialSetup() override; 27 40 : virtual void timestepSetup() override { initialSetup(); } 28 : 29 : protected: 30 : const TriSubChannelMesh & _triMesh; 31 : /// The total power of the assembly 32 : const PostprocessorValue & _power; 33 : /// The number of lines associated with the radial power profile .txt file 34 : unsigned int _numberoflines; 35 : /// The name of the radial power profile file 36 : std::string _filename; 37 : /// matrix that holds the values of the relative pin power 38 : Eigen::MatrixXd _power_dis; 39 : const Function & _axial_heat_rate; 40 : /// Average linear heat rate over the whole pin [W/m] 41 : Eigen::MatrixXd _ref_qprime; 42 : /// Actual pin power [W] 43 : Eigen::MatrixXd _ref_power; 44 : /// The correction that will be applied to the estimated calculation [unitless] 45 : Eigen::MatrixXd _pin_power_correction; 46 : /// Matrix which will hold the total estimated power of each pin [W] 47 : Eigen::MatrixXd _estimate_power; 48 : 49 : public: 50 : static InputParameters validParams(); 51 : };