31 params.
addRequiredParam<RealVectorValue>(
"gravity",
"Direction of the gravity vector");
34 "0,1,2 depending on if we are solving the x,y,z component of the momentum equation");
37 params.
addParam<MaterialPropertyName>(
"mu_name",
"mu",
"The name of the dynamic viscosity");
38 params.
addParam<MaterialPropertyName>(
"rho_name",
"rho",
"The name of the density");
47 _u_vel(coupledValue(
"u")),
48 _v_vel(_mesh.dimension() >= 2 ? coupledValue(
"v") : _zero),
49 _w_vel(_mesh.dimension() == 3 ? coupledValue(
"w") : _zero),
51 _a1(coupledValue(
"a1")),
52 _a2(_mesh.dimension() >= 2 ? coupledValue(
"a2") : _zero),
53 _a3(_mesh.dimension() == 3 ? coupledValue(
"a3") : _zero),
56 _grad_u_vel(coupledGradient(
"u")),
57 _grad_v_vel(_mesh.dimension() >= 2 ? coupledGradient(
"v") : _grad_zero),
58 _grad_w_vel(_mesh.dimension() == 3 ? coupledGradient(
"w") : _grad_zero),
61 _u_vel_var_number(coupled(
"u")),
62 _v_vel_var_number(_mesh.dimension() >= 2 ? coupled(
"v") :
libMesh::invalid_uint),
63 _w_vel_var_number(_mesh.dimension() == 3 ? coupled(
"w") :
libMesh::invalid_uint),
65 _a1_var_number(coupled(
"a1")),
66 _a2_var_number(_mesh.dimension() >= 2 ? coupled(
"a2") :
libMesh::invalid_uint),
67 _a3_var_number(_mesh.dimension() == 3 ? coupled(
"a3") :
libMesh::invalid_uint),
70 _gravity(getParam<RealVectorValue>(
"gravity")),
71 _component(getParam<unsigned>(
"component")),
74 _mu(getMaterialProperty<Real>(
"mu_name")),
75 _rho(getMaterialProperty<Real>(
"rho_name"))
111 RealTensorValue grad_test;
112 for (
unsigned k = 0; k < 3; ++k)
124 Real convective_part = (grad_U * U) * test;
127 Real viscous_part = (
_mu[
_qp] /
_rho[
_qp]) * tau.contract(grad_test);
129 return symmetric_part + convective_part + viscous_part;
146 RealTensorValue dtau;
149 unsigned vel_index = 99;
183 RealVectorValue test;
190 RealTensorValue grad_test;
191 for (
unsigned k = 0; k < 3; ++k)
201 Real convective_part = convective_jac * test;
204 Real viscous_part = (
_mu[
_qp] /
_rho[
_qp]) * dtau.contract(grad_test);
207 return convective_part + viscous_part;
registerMooseObject("NavierStokesApp", INSSplitMomentum)
This class computes the "split" momentum equation residual.
INSSplitMomentum(const InputParameters ¶meters)
const MaterialProperty< Real > & _rho
const VariableValue & _v_vel
virtual Real computeQpResidual()
unsigned _w_vel_var_number
const MaterialProperty< Real > & _mu
const VariableValue & _a3
const VariableValue & _u_vel
const VariableValue & _a1
const VariableGradient & _grad_v_vel
const VariableValue & _a2
virtual Real computeQpOffDiagJacobian(unsigned jvar)
static InputParameters validParams()
unsigned _u_vel_var_number
const VariableGradient & _grad_u_vel
virtual Real computeQpJacobian()
const VariableValue & _w_vel
const VariableGradient & _grad_w_vel
unsigned _v_vel_var_number
const VariablePhiValue & _phi
const VariableTestValue & _test
static InputParameters validParams()
const VariablePhiGradient & _grad_phi
const VariableTestGradient & _grad_test
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...