32 Real
dtau(
unsigned k,
unsigned ell,
unsigned m);
58 mooseError(
"Error, 0 <= k,ell <= 2 violated!");
62 mooseError(
"Error, m <= 4 violated!");
68 const Real rho = _data._rho[_data._qp];
69 const Real rho2 = rho * rho;
70 const Real phij = _data._phi[_data._j][_data._qp];
72 const Real mu = _data._dynamic_viscosity[_data._qp];
73 const Real nu = mu / rho;
75 const RealVectorValue U(
76 _data._rho_u[_data._qp], _data._rho_v[_data._qp], _data._rho_w[_data._qp]);
78 const Real divU = _data._grad_rho_u[_data._qp](0) + _data._grad_rho_v[_data._qp](1) +
79 _data._grad_rho_w[_data._qp](2);
82 std::vector<RealVectorValue> gradU(3);
83 gradU[0] = _data._grad_rho_u[_data._qp];
84 gradU[1] = _data._grad_rho_v[_data._qp];
85 gradU[2] = _data._grad_rho_w[_data._qp];
88 const RealVectorValue & grad_phij = _data._grad_phi[_data._j][_data._qp];
89 const RealVectorValue & grad_rho = _data._grad_rho[_data._qp];
95 const Real term1 = 2.0 / rho2 * (U(k) * grad_rho(ell) + U(ell) * grad_rho(k)) * phij;
96 const Real term2 = -1.0 / rho * ((gradU[k](ell) + gradU[ell](k)) * phij +
97 (U(k) * grad_phij(ell) + U(ell) * grad_phij(k)));
104 term3 = -4.0 / 3.0 / rho2 * (U * grad_rho) * phij;
105 term4 = 2.0 / 3.0 / rho * (U * grad_phij + divU * phij);
109 return nu * (term1 + term2 + term3 + term4);
119 const unsigned m_local = m - 1;
122 const Real delta_km = (k == m_local ? 1.0 : 0.0);
123 const Real delta_ellm = (ell == m_local ? 1.0 : 0.0);
124 const Real delta_kell = (k == ell ? 1.0 : 0.0);
128 delta_km * (grad_phij(ell) - (phij / rho) * grad_rho(ell)) +
129 delta_ellm * (grad_phij(k) - (phij / rho) * grad_rho(k)) -
130 (2. / 3.) * delta_kell * (grad_phij(m_local) - (phij / rho) * grad_rho(m_local)));
138 mooseError(
"Invalid variable requested.");