11 #include "MooseMesh.h"
19 InputParameters params = validParams<Kernel>();
21 params.addClassDescription(
"This class computes the 'projection' part of the 'split' method for "
22 "solving incompressible Navier-Stokes.");
24 params.addRequiredCoupledVar(
"a1",
"x-acceleration");
25 params.addCoupledVar(
"a2",
"y-acceleration");
26 params.addCoupledVar(
"a3",
"z-acceleration");
27 params.addRequiredCoupledVar(
"p",
"pressure");
30 params.addRequiredParam<
unsigned>(
32 "0,1,2 depending on if we are solving the x,y,z component of the momentum equation");
35 params.addParam<MaterialPropertyName>(
"rho_name",
"rho",
"density name");
44 _a1(coupledValue(
"a1")),
45 _a2(_mesh.dimension() >= 2 ? coupledValue(
"a2") : _zero),
46 _a3(_mesh.dimension() == 3 ? coupledValue(
"a3") : _zero),
49 _grad_p(coupledGradient(
"p")),
52 _a1_var_number(coupled(
"a1")),
53 _a2_var_number(_mesh.dimension() >= 2 ? coupled(
"a2") :
libMesh::invalid_uint),
54 _a3_var_number(_mesh.dimension() == 3 ? coupled(
"a3") :
libMesh::invalid_uint),
55 _p_var_number(coupled(
"p")),
58 _component(getParam<unsigned>(
"component")),
61 _rho(getMaterialProperty<Real>(
"rho_name"))
69 RealVectorValue a(
_a1[_qp],
_a2[_qp],
_a3[_qp]);
76 Real symmetric_part = -a(
_component) * _test[_i][_qp];
79 Real pressure_part = (1. /
_rho[_qp]) * (
_grad_p[_qp] * test);
82 return symmetric_part + pressure_part;
101 return -_phi[_j][_qp] * _test[_i][_qp];
106 return (1. /
_rho[_qp]) * (_grad_phi[_j][_qp](
_component) * _test[_i][_qp]);