https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
60unsigned
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}
static InputParameters validParams()
INSFEFluidIntegratedBCBase(const InputParameters &parameters)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addCoupledVar(const std::string &name, const std::string &doc_string)
static InputParameters validParams()
Common class for single phase fluid properties.
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...