https://mooseframework.inl.gov
INSFEFluidIntegratedBCBase.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 
11 #include "MooseMesh.h"
12 
15 {
17 
18  // Coupled variables
19  params.addRequiredCoupledVar("u", "velocity in x-coord");
20  params.addCoupledVar("v", "velocity in y-coord"); // required in 2D and 3D
21  params.addCoupledVar("w", "velocity in z-coord"); // required in 3D
22 
23  params.addRequiredCoupledVar("pressure", "pressure");
24  params.addRequiredCoupledVar("temperature", "temperature");
25  params.addCoupledVar("porosity", "porosity");
26 
27  params.addRequiredParam<UserObjectName>("eos", "The name of equation of state object to use.");
28  return params;
29 }
30 
32  : IntegratedBC(parameters),
33  // Coupled variables
34  _u_vel(coupledValue("u")),
35  _v_vel(_mesh.dimension() >= 2 ? coupledValue("v") : _zero),
36  _w_vel(_mesh.dimension() == 3 ? coupledValue("w") : _zero),
37  _pressure(coupledValue("pressure")),
38  _temperature(coupledValue("temperature")),
39  _rho(getMaterialProperty<Real>("rho_fluid")),
40  // Gradients
41  _grad_u_vel(coupledGradient("u")),
42  _grad_v_vel(_mesh.dimension() >= 2 ? coupledGradient("v") : _grad_zero),
43  _grad_w_vel(_mesh.dimension() == 3 ? coupledGradient("w") : _grad_zero),
44  _grad_pressure(coupledGradient("pressure")),
45  _grad_temperature(coupledGradient("temperature")),
46  // Variable numberings
47  _u_vel_var_number(coupled("u")),
48  _v_vel_var_number(_mesh.dimension() >= 2 ? coupled("v") : libMesh::invalid_uint),
49  _w_vel_var_number(_mesh.dimension() == 3 ? coupled("w") : libMesh::invalid_uint),
50  _pressure_var_number(coupled("pressure")),
51  _temperature_var_number(coupled("temperature")),
52 
53  _has_porosity(isParamValid("porosity")),
54  _porosity(_has_porosity ? coupledValue("porosity") : _zero),
55 
56  _eos(getUserObject<SinglePhaseFluidProperties>("eos"))
57 {
58 }
59 
60 unsigned
62 {
63  // Convert the Moose numbering to:
64  // 0 for pressure
65  // 1 for u
66  // 2 for v
67  // 3 for w
68  // 4 for temperature
69  // regardless of the problem dimension, etc.
70  unsigned mapped_var_number = 99;
71 
72  if (var == _pressure_var_number)
73  mapped_var_number = 0;
74  else if (var == _u_vel_var_number)
75  mapped_var_number = 1;
76  else if (var == _v_vel_var_number)
77  mapped_var_number = 2;
78  else if (var == _w_vel_var_number)
79  mapped_var_number = 3;
80  else if (var == _temperature_var_number)
81  mapped_var_number = 4;
82  else
83  mapped_var_number = 99;
84 
85  return mapped_var_number;
86 }
const unsigned int invalid_uint
static InputParameters validParams()
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
INSFEFluidIntegratedBCBase(const InputParameters &parameters)
void addRequiredParam(const std::string &name, const std::string &doc_string)
static InputParameters validParams()
Common class for single phase fluid properties.
void addCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real