www.mooseframework.org
INSMomentumTractionForm.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
13 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<INSMomentumBase>();
19  params.addClassDescription("This class computes momentum equation residual and Jacobian viscous "
20  "contributions for the 'traction' form of the governing equations.");
21  return params;
22 }
23 
24 INSMomentumTractionForm::INSMomentumTractionForm(const InputParameters & parameters)
25  : INSMomentumBase(parameters)
26 {
27 }
28 
29 Real
31 {
32  // The component'th row (or col, it's symmetric) of the viscous stress tensor
33  RealVectorValue tau_row;
34 
35  switch (_component)
36  {
37  case 0:
38  tau_row(0) = 2. * _grad_u_vel[_qp](0); // 2*du/dx1
39  tau_row(1) = _grad_u_vel[_qp](1) + _grad_v_vel[_qp](0); // du/dx2 + dv/dx1
40  tau_row(2) = _grad_u_vel[_qp](2) + _grad_w_vel[_qp](0); // du/dx3 + dw/dx1
41  break;
42 
43  case 1:
44  tau_row(0) = _grad_v_vel[_qp](0) + _grad_u_vel[_qp](1); // dv/dx1 + du/dx2
45  tau_row(1) = 2. * _grad_v_vel[_qp](1); // 2*dv/dx2
46  tau_row(2) = _grad_v_vel[_qp](2) + _grad_w_vel[_qp](1); // dv/dx3 + dw/dx2
47  break;
48 
49  case 2:
50  tau_row(0) = _grad_w_vel[_qp](0) + _grad_u_vel[_qp](2); // dw/dx1 + du/dx3
51  tau_row(1) = _grad_w_vel[_qp](1) + _grad_v_vel[_qp](2); // dw/dx2 + dv/dx3
52  tau_row(2) = 2. * _grad_w_vel[_qp](2); // 2*dw/dx3
53  break;
54 
55  default:
56  mooseError("Unrecognized _component requested.");
57  }
58 
59  // The viscous part, _mu[_qp] * tau : grad(v)
60  return _mu[_qp] * (tau_row * _grad_test[_i][_qp]);
61 }
62 
63 Real
65 {
66  // Viscous part, full stress tensor. The extra contribution comes from the "2"
67  // on the diagonal of the viscous stress tensor.
68  return _mu[_qp] * (_grad_phi[_j][_qp] * _grad_test[_i][_qp] +
69  _grad_phi[_j][_qp](_component) * _grad_test[_i][_qp](_component));
70 }
71 
72 Real
74 {
75  // In Stokes/Laplacian version, off-diag Jacobian entries wrt u,v,w are zero
76  if (jvar == _u_vel_var_number)
77  return _mu[_qp] * _grad_phi[_j][_qp](_component) * _grad_test[_i][_qp](0);
78 
79  else if (jvar == _v_vel_var_number)
80  return _mu[_qp] * _grad_phi[_j][_qp](_component) * _grad_test[_i][_qp](1);
81 
82  else if (jvar == _w_vel_var_number)
83  return _mu[_qp] * _grad_phi[_j][_qp](_component) * _grad_test[_i][_qp](2);
84 
85  else
86  return 0;
87 }
INSMomentumBase::_component
unsigned _component
Definition: INSMomentumBase.h:43
INSMomentumTractionForm::computeQpResidualViscousPart
virtual Real computeQpResidualViscousPart() override
Definition: INSMomentumTractionForm.C:30
validParams< INSMomentumTractionForm >
InputParameters validParams< INSMomentumTractionForm >()
Definition: INSMomentumTractionForm.C:16
INSMomentumTractionForm::computeQpOffDiagJacobianViscousPart
virtual Real computeQpOffDiagJacobianViscousPart(unsigned jvar) override
Definition: INSMomentumTractionForm.C:73
validParams< INSMomentumBase >
InputParameters validParams< INSMomentumBase >()
Definition: INSMomentumBase.C:15
INSMomentumTractionForm.h
INSBase::_u_vel_var_number
unsigned _u_vel_var_number
Definition: INSBase.h:96
INSBase::_grad_w_vel
const VariableGradient & _grad_w_vel
Definition: INSBase.h:77
INSMomentumTractionForm::INSMomentumTractionForm
INSMomentumTractionForm(const InputParameters &parameters)
Definition: INSMomentumTractionForm.C:24
registerMooseObject
registerMooseObject("NavierStokesApp", INSMomentumTractionForm)
INSMomentumTractionForm
This class computes momentum equation residual and Jacobian viscous contributions for the "traction" ...
Definition: INSMomentumTractionForm.h:24
INSBase::_v_vel_var_number
unsigned _v_vel_var_number
Definition: INSBase.h:97
INSBase::_grad_u_vel
const VariableGradient & _grad_u_vel
Definition: INSBase.h:75
INSBase::_w_vel_var_number
unsigned _w_vel_var_number
Definition: INSBase.h:98
INSMomentumTractionForm::computeQpJacobianViscousPart
virtual Real computeQpJacobianViscousPart() override
Definition: INSMomentumTractionForm.C:64
INSBase::_grad_v_vel
const VariableGradient & _grad_v_vel
Definition: INSBase.h:76
INSMomentumBase
This class computes the momentum equation residual and Jacobian contributions for the incompressible ...
Definition: INSMomentumBase.h:25
INSBase::_mu
const MaterialProperty< Real > & _mu
Definition: INSBase.h:104