https://mooseframework.inl.gov
SCMHTCGnielinski.C
Go to the documentation of this file.
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 
17 {
19  params.addClassDescription(
20  "Class that computes the convective heat transfer coefficient using the "
21  "Gnielinski correlation.");
22  return params;
23 }
24 
26  : SCMHTCClosureBase(parameters)
27 {
28 }
29 
30 Real
32  const NusseltStruct & nusselt_args) const
33 {
34  const auto pre = computeNusseltNumberPreInfo(nusselt_args);
35 
36  if (pre.Pr < 1e-5 || pre.Pr > 2e3)
37  flagSolutionWarning("Prandtl number (Pr) out of range for the Gnielinski correlation.");
38 
39  Real f_turb = _scm_problem.getFrictionClosure()->computeFrictionFactor(friction_args) / 8.0;
40 
44  const auto NuT = f_turb * (pre.Re - 1e3) * (pre.Pr + 0.01) /
45  (1 + 12.7 * std::sqrt(f_turb) * (std::pow(pre.Pr + 0.01, 2. / 3.) - 1.));
46  return blendTurbulentNusseltNumber(pre, NuT);
47 }
registerMooseObject("SubChannelApp", SCMHTCGnielinski)
NusseltPreInfo computeNusseltNumberPreInfo(const NusseltStruct &nusselt_info) const
Computes all the data needed before computing the nusselt number. It&#39;s used by all closure models...
Class that calculates the HTC based on the Gnielinski correlation It can be used for both pin and duc...
structure with the needed information to compute the friction factor at a specific subchannel cell ...
const SubChannel1PhaseProblem & _scm_problem
Reference to the subchannel problem.
virtual Real computeFrictionFactor(const FrictionStruct &friction_info) const =0
Computes the friction factor for the local conditions.
static InputParameters validParams()
const SCMFrictionClosureBase * getFrictionClosure() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
virtual Real computeNusseltNumber(const FrictionStruct &friction_info, const NusseltStruct &nusselt_info) const override
Computes the nusselt number for the local conditions.
SCMHTCGnielinski(const InputParameters &parameters)
void addClassDescription(const std::string &doc_string)
Base class for the convective heat transfer coefficients (HTC) closures used in SCM.
MooseUnits pow(const MooseUnits &, int)
Real blendTurbulentNusseltNumber(const NusseltPreInfo &nusselt_info, const Real turbulent_nusselt) const
Blends turbulent Nusselt number through the transition range using the base laminar value...
structure with the needed information to compute the Nusselt number at a specific subchannel cell and...