https://mooseframework.inl.gov
SCMFrictionMATRA.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 "SCMFrictionMATRA.h"
11 
12 registerMooseObject("SubChannelApp", SCMFrictionMATRA);
13 
16 {
18  params.addClassDescription(
19  "Class that computes the axial friction factor using the MATRA correlation.");
20  return params;
21 }
22 
24  : SCMFrictionClosureBase(parameters),
25  _is_quad_lattice(dynamic_cast<const QuadSubChannelMesh *>(&_subchannel_mesh) != nullptr),
26  _quad_sch_mesh(dynamic_cast<const QuadSubChannelMesh *>(&_subchannel_mesh))
27 {
28 }
29 
30 Real
32 {
33  if (_is_quad_lattice)
34  return computeQuadLatticeFrictionFactor(friction_args);
35  else
36  mooseError(name(),
37  ": This closure model applies only for assemblies with bare fuel pins in a square "
38  "lattice. ");
39 }
40 
41 Real
43 {
44  auto Re = friction_args.Re;
45  Real a(0.0), b(0.0);
46  if (Re < 1)
47  {
48  a = 64.0;
49  b = 0.0;
50  }
51  else if (Re >= 1 and Re < 5000)
52  {
53  a = 64.0;
54  b = -1.0;
55  }
57  else if (Re >= 5000 and Re < 30000)
58  {
59  a = 0.316;
60  b = -0.25;
61  }
62  else if (Re >= 30000 and Re < 1000000)
63  {
64  a = 0.184;
65  b = -0.20;
66  }
67  else
68  {
69  flagInvalidSolution("MATRA correlation out of range");
70  }
71  return a * std::pow(Re, b);
72 }
static InputParameters validParams()
Base class for friction closures used in SCM.
Creates the mesh of subchannels in a quadrilateral lattice.
structure with the needed information to compute the friction factor at a specific subchannel cell ...
Class that calculates the friction factor based on the MATRA correlation (Numerical study of void dri...
const std::string & name() const
const double Re
SCMFrictionMATRA(const InputParameters &parameters)
bool _is_quad_lattice
Keep track of the lattice type.
Real computeQuadLatticeFrictionFactor(const FrictionStruct &friction_info) const
virtual Real computeFrictionFactor(const FrictionStruct &friction_info) const override
Computes the friction factor for the local conditions.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
registerMooseObject("SubChannelApp", SCMFrictionMATRA)
static InputParameters validParams()
void mooseError(Args &&... args) const
void addClassDescription(const std::string &doc_string)
MooseUnits pow(const MooseUnits &, int)