www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
NSMomentumViscousBC Class Reference

This class corresponds to the viscous part of the "natural" boundary condition for the momentum equations, i.e. More...

#include <NSMomentumViscousBC.h>

Inheritance diagram for NSMomentumViscousBC:
[legend]

Public Member Functions

 NSMomentumViscousBC (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeQpResidual ()
 Just like other kernels, we must overload the Residual and Jacobian contributions... More...
 
virtual Real computeQpJacobian ()
 
virtual Real computeQpOffDiagJacobian (unsigned jvar)
 
bool isNSVariable (unsigned var)
 
unsigned mapVarNumber (unsigned var)
 

Protected Attributes

const unsigned _component
 
NSViscStressTensorDerivs< NSMomentumViscousBC_vst_derivs
 
const VariableValue & _u_vel
 
const VariableValue & _v_vel
 
const VariableValue & _w_vel
 
const VariableValue & _rho
 
const VariableValue & _rho_u
 
const VariableValue & _rho_v
 
const VariableValue & _rho_w
 
const VariableValue & _rho_E
 
const VariableGradient & _grad_rho
 
const VariableGradient & _grad_rho_u
 
const VariableGradient & _grad_rho_v
 
const VariableGradient & _grad_rho_w
 
const VariableGradient & _grad_rho_E
 
unsigned _rho_var_number
 
unsigned _rhou_var_number
 
unsigned _rhov_var_number
 
unsigned _rhow_var_number
 
unsigned _rhoE_var_number
 
const MaterialProperty< Real > & _dynamic_viscosity
 
const MaterialProperty< RealTensorValue > & _viscous_stress_tensor
 
const IdealGasFluidProperties_fp
 

Friends

template<class U >
class NSViscStressTensorDerivs
 

Detailed Description

This class corresponds to the viscous part of the "natural" boundary condition for the momentum equations, i.e.

int_{Gamma} n . (-tau) . v

A typical use for this kernel would be a subsonic outflow BC in which one physical value must be specified. In this case, the residual and Jacobian contrbutions of the n.tau.v term is computed and added to the matrix/rhs.

Definition at line 33 of file NSMomentumViscousBC.h.

Constructor & Destructor Documentation

◆ NSMomentumViscousBC()

NSMomentumViscousBC::NSMomentumViscousBC ( const InputParameters &  parameters)

Definition at line 26 of file NSMomentumViscousBC.C.

27  : NSIntegratedBC(parameters),
28  _component(getParam<unsigned>("component")),
29  // Derivative computing object
30  _vst_derivs(*this)
31 {
32 }
const unsigned _component
NSViscStressTensorDerivs< NSMomentumViscousBC > _vst_derivs
NSIntegratedBC(const InputParameters &parameters)

Member Function Documentation

◆ computeQpJacobian()

Real NSMomentumViscousBC::computeQpJacobian ( )
protectedvirtual

Definition at line 51 of file NSMomentumViscousBC.C.

52 {
53  // See Eqns. (41)--(43) from the notes for the viscous boundary term contributions
54  Real visc_term = 0.0;
55 
56  // Set variable names as in the notes
57  const unsigned int k = _component;
58  const unsigned int m = _component + 1; // _component = 0,1,2 -> m = 1,2,3 global variable number
59 
60  // FIXME: attempt calling shared dtau function
61  for (unsigned int ell = 0; ell < LIBMESH_DIM; ++ell)
62  visc_term += _vst_derivs.dtau(k, ell, m) * _normals[_qp](ell);
63 
64  // Multiply visc_term by test function
65  visc_term *= _test[_i][_qp];
66 
67  // Note the sign...
68  return -visc_term;
69 }
const unsigned _component
NSViscStressTensorDerivs< NSMomentumViscousBC > _vst_derivs
Real dtau(unsigned k, unsigned ell, unsigned m)
The primary interface for computing viscous stress tensor derivatives.

◆ computeQpOffDiagJacobian()

Real NSMomentumViscousBC::computeQpOffDiagJacobian ( unsigned  jvar)
protectedvirtual

Definition at line 72 of file NSMomentumViscousBC.C.

73 {
74  if (isNSVariable(jvar))
75  {
76 
77  // See Eqns. (41)--(43) from the notes for the viscous boundary
78  // term contributions.
79 
80  // Map jvar into the variable m for our problem, regardless of
81  // how Moose has numbered things.
82  unsigned m = mapVarNumber(jvar);
83 
84  // Now compute viscous contribution
85  Real visc_term = 0.0;
86 
87  // Set variable names as in the notes
88  const unsigned int k = _component;
89 
90  for (unsigned int ell = 0; ell < LIBMESH_DIM; ++ell)
91  visc_term += _vst_derivs.dtau(k, ell, m) * _normals[_qp](ell);
92 
93  // Multiply visc_term by test function
94  visc_term *= _test[_i][_qp];
95 
96  // Note the sign...
97  return -visc_term;
98  }
99  else
100  return 0.0;
101 }
bool isNSVariable(unsigned var)
const unsigned _component
NSViscStressTensorDerivs< NSMomentumViscousBC > _vst_derivs
Real dtau(unsigned k, unsigned ell, unsigned m)
The primary interface for computing viscous stress tensor derivatives.
unsigned mapVarNumber(unsigned var)

◆ computeQpResidual()

Real NSMomentumViscousBC::computeQpResidual ( )
protectedvirtual

Just like other kernels, we must overload the Residual and Jacobian contributions...

Definition at line 35 of file NSMomentumViscousBC.C.

36 {
37  // n . (-tau) . v
38 
39  // Vector-valued test function
40  RealVectorValue v_test;
41  v_test(_component) = _test[_i][_qp];
42 
43  // The viscous contribution: n . tau . v
44  Real visc_term = _normals[_qp] * (_viscous_stress_tensor[_qp] * v_test);
45 
46  // Note the sign...
47  return -visc_term;
48 }
const unsigned _component
const MaterialProperty< RealTensorValue > & _viscous_stress_tensor

◆ isNSVariable()

bool NSIntegratedBC::isNSVariable ( unsigned  var)
protectedinherited

◆ mapVarNumber()

unsigned NSIntegratedBC::mapVarNumber ( unsigned  var)
protectedinherited

Definition at line 90 of file NSIntegratedBC.C.

Referenced by NSEnergyInviscidSpecifiedBC::computeQpOffDiagJacobian(), NSEnergyInviscidSpecifiedNormalFlowBC::computeQpOffDiagJacobian(), NSEnergyInviscidSpecifiedPressureBC::computeQpOffDiagJacobian(), NSEnergyInviscidUnspecifiedBC::computeQpOffDiagJacobian(), NSMomentumInviscidSpecifiedNormalFlowBC::computeQpOffDiagJacobian(), NSMassUnspecifiedNormalFlowBC::computeQpOffDiagJacobian(), NSMomentumInviscidNoPressureImplicitFlowBC::computeQpOffDiagJacobian(), NSMomentumInviscidSpecifiedPressureBC::computeQpOffDiagJacobian(), NSPressureNeumannBC::computeQpOffDiagJacobian(), computeQpOffDiagJacobian(), and NSEnergyViscousBC::computeQpOffDiagJacobian().

91 {
92  // Convert the Moose numbering to:
93  // 0 for rho
94  // 1 for rho*u
95  // 2 for rho*v
96  // 3 for rho*w
97  // 4 for rho*e
98  // regardless of the problem dimension, etc.
99  unsigned int mapped_var_number;
100 
101  if (var == _rho_var_number)
102  mapped_var_number = 0;
103  else if (var == _rhou_var_number)
104  mapped_var_number = 1;
105  else if (var == _rhov_var_number)
106  mapped_var_number = 2;
107  else if (var == _rhow_var_number)
108  mapped_var_number = 3;
109  else if (var == _rhoE_var_number)
110  mapped_var_number = 4;
111  else
112  mooseError("Invalid var!");
113 
114  return mapped_var_number;
115 }
unsigned _rhov_var_number
unsigned _rhou_var_number
unsigned _rhow_var_number
unsigned _rho_var_number
unsigned _rhoE_var_number

Friends And Related Function Documentation

◆ NSViscStressTensorDerivs

template<class U >
friend class NSViscStressTensorDerivs
friend

Definition at line 56 of file NSMomentumViscousBC.h.

Member Data Documentation

◆ _component

const unsigned NSMomentumViscousBC::_component
protected

◆ _dynamic_viscosity

const MaterialProperty<Real>& NSIntegratedBC::_dynamic_viscosity
protectedinherited

Definition at line 59 of file NSIntegratedBC.h.

◆ _fp

const IdealGasFluidProperties& NSIntegratedBC::_fp
protectedinherited

◆ _grad_rho

const VariableGradient& NSIntegratedBC::_grad_rho
protectedinherited

Definition at line 46 of file NSIntegratedBC.h.

Referenced by NSEnergyViscousBC::NSEnergyViscousBC().

◆ _grad_rho_E

const VariableGradient& NSIntegratedBC::_grad_rho_E
protectedinherited

Definition at line 50 of file NSIntegratedBC.h.

Referenced by NSEnergyViscousBC::NSEnergyViscousBC().

◆ _grad_rho_u

const VariableGradient& NSIntegratedBC::_grad_rho_u
protectedinherited

Definition at line 47 of file NSIntegratedBC.h.

Referenced by NSEnergyViscousBC::NSEnergyViscousBC().

◆ _grad_rho_v

const VariableGradient& NSIntegratedBC::_grad_rho_v
protectedinherited

Definition at line 48 of file NSIntegratedBC.h.

Referenced by NSEnergyViscousBC::NSEnergyViscousBC().

◆ _grad_rho_w

const VariableGradient& NSIntegratedBC::_grad_rho_w
protectedinherited

Definition at line 49 of file NSIntegratedBC.h.

Referenced by NSEnergyViscousBC::NSEnergyViscousBC().

◆ _rho

const VariableValue& NSIntegratedBC::_rho
protectedinherited

◆ _rho_E

const VariableValue& NSIntegratedBC::_rho_E
protectedinherited

◆ _rho_u

const VariableValue& NSIntegratedBC::_rho_u
protectedinherited

◆ _rho_v

const VariableValue& NSIntegratedBC::_rho_v
protectedinherited

◆ _rho_var_number

unsigned NSIntegratedBC::_rho_var_number
protectedinherited

Definition at line 52 of file NSIntegratedBC.h.

Referenced by NSIntegratedBC::isNSVariable(), and NSIntegratedBC::mapVarNumber().

◆ _rho_w

const VariableValue& NSIntegratedBC::_rho_w
protectedinherited

◆ _rhoE_var_number

unsigned NSIntegratedBC::_rhoE_var_number
protectedinherited

Definition at line 56 of file NSIntegratedBC.h.

Referenced by NSIntegratedBC::isNSVariable(), and NSIntegratedBC::mapVarNumber().

◆ _rhou_var_number

unsigned NSIntegratedBC::_rhou_var_number
protectedinherited

Definition at line 53 of file NSIntegratedBC.h.

Referenced by NSIntegratedBC::isNSVariable(), and NSIntegratedBC::mapVarNumber().

◆ _rhov_var_number

unsigned NSIntegratedBC::_rhov_var_number
protectedinherited

Definition at line 54 of file NSIntegratedBC.h.

Referenced by NSIntegratedBC::isNSVariable(), and NSIntegratedBC::mapVarNumber().

◆ _rhow_var_number

unsigned NSIntegratedBC::_rhow_var_number
protectedinherited

Definition at line 55 of file NSIntegratedBC.h.

Referenced by NSIntegratedBC::isNSVariable(), and NSIntegratedBC::mapVarNumber().

◆ _u_vel

const VariableValue& NSIntegratedBC::_u_vel
protectedinherited

◆ _v_vel

const VariableValue& NSIntegratedBC::_v_vel
protectedinherited

◆ _viscous_stress_tensor

const MaterialProperty<RealTensorValue>& NSIntegratedBC::_viscous_stress_tensor
protectedinherited

◆ _vst_derivs

NSViscStressTensorDerivs<NSMomentumViscousBC> NSMomentumViscousBC::_vst_derivs
protected

Definition at line 52 of file NSMomentumViscousBC.h.

Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().

◆ _w_vel

const VariableValue& NSIntegratedBC::_w_vel
protectedinherited

The documentation for this class was generated from the following files: