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 : #include "SCMHTCGnielinski.h" 11 : #include "SCMFrictionClosureBase.h" 12 : 13 : registerMooseObject("SubChannelApp", SCMHTCGnielinski); 14 : 15 : InputParameters 16 226 : SCMHTCGnielinski::validParams() 17 : { 18 226 : InputParameters params = SCMHTCClosureBase::validParams(); 19 226 : params.addClassDescription( 20 : "Class that computes the convective heat transfer coefficient using the " 21 : "Gnielinski correlation."); 22 226 : return params; 23 0 : } 24 : 25 122 : SCMHTCGnielinski::SCMHTCGnielinski(const InputParameters & parameters) 26 122 : : SCMHTCClosureBase(parameters) 27 : { 28 122 : } 29 : 30 : Real 31 401355 : SCMHTCGnielinski::computeNusseltNumber(const FrictionStruct & friction_args, 32 : const NusseltStruct & nusselt_args) const 33 : { 34 401355 : const auto pre = computeNusseltNumberPreInfo(nusselt_args); 35 : 36 401355 : if (pre.Pr < 1e-5 || pre.Pr > 2e3) 37 0 : flagSolutionWarning("Prandtl number (Pr) out of range for the Gnielinski correlation."); 38 : 39 401355 : Real f_turb = _scm_problem.getFrictionClosure()->computeFrictionFactor(friction_args) / 8.0; 40 : 41 : /// Pr -> Pr + 0.01. We start flattening out the Nusselt profile in the correlation, 42 : /// which is what we should see in practice, i.e., for very low Pr numbers the heat exchange 43 : /// will be dominated by conduction and Nu profile should be flat. 44 401355 : const auto NuT = f_turb * (pre.Re - 1e3) * (pre.Pr + 0.01) / 45 401355 : (1 + 12.7 * std::sqrt(f_turb) * (std::pow(pre.Pr + 0.01, 2. / 3.) - 1.)); 46 401355 : return blendTurbulentNusseltNumber(pre, NuT); 47 : }