www.mooseframework.org
NavierStokesMaterial.h
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 
10 #pragma once
11 
12 #include "Material.h"
13 
14 // Forward Declarations
16 
33 {
34 public:
36 
38 
39 protected:
43  virtual void computeProperties();
44 
45  const unsigned int _mesh_dimension;
46 
50 
54 
55  // Also store the "cal A" matrices at each quadrature point as material
56  // poperties. These are defined in the compns notes and are needed for
57  // computing strong and weak residual values and Jacobian entries, so it's
58  // good if we reuse them...
60 
61  // The "velocity column" matrices. _calC[_qp][k] is a tensor with the
62  // velocity vector in the k'th column. See notes for additional details.
64 
65  // The energy equation inviscid flux matrix components. There are n_vars of
66  // these for each dimension, so in 3D, 3*5=15 different matrices.
67  // See notes for additional details.
69 
70  // Convenient storage for all of the velocity gradient components so
71  // we can refer to them in a loop.
72  std::vector<const VariableGradient *> _vel_grads;
73 
74  // Coupled values needed to compute strong form residuals
75  // for SUPG stabilization...
79 
80  // Temperature is needed to compute speed of sound
82 
83  // Specific total enthalpy is needed in computing energy equation strong residuals
85 
86  // Main solution variables are all needed for computing strong residuals
92 
93  // Time derivative values for dependent variables
99 
100  // Gradients
106 
107  // The real-valued material properties representing the element stabilization
108  // parameters for each of the equations.
113 
114  // The (vector-valued) material property which is the strong-form
115  // residual at each quadrature point.
117 
118  // Fluid properties
120 
121 private:
122  // To be called from computeProperties() function to compute _hsupg
123  void computeHSUPG(unsigned int qp);
124 
125  // To be called from computeProperties() function to compute _tauc, _taum, _taue
126  void computeTau(unsigned int qp);
127 
128  // To be called from computeProperties() function to compute the strong residual of each equation.
129  void computeStrongResiduals(unsigned int qp);
130 };
OutputTools< Real >::VariableGradient VariableGradient
MaterialProperty< Real > & _dynamic_viscosity
MaterialProperty< Real > & _hsupg
const unsigned int _mesh_dimension
void computeTau(unsigned int qp)
const VariableValue & _drhow_dt
MaterialProperty< std::vector< RealTensorValue > > & _calC
void computeHSUPG(unsigned int qp)
const VariableGradient & _grad_rho_v
const VariableValue & _u_vel
MaterialProperty< Real > & _tauc
const VariableGradient & _grad_rho_w
MaterialProperty< Real > & _taue
void computeStrongResiduals(unsigned int qp)
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _calE
const VariableValue & _rho_et
std::vector< const VariableGradient * > _vel_grads
MaterialProperty< std::vector< RealTensorValue > > & _calA
const VariableValue & _v_vel
MaterialProperty< std::vector< Real > > & _strong_residuals
const VariableGradient & _grad_rho_u
const VariableGradient & _grad_rho_et
NavierStokesMaterial(const InputParameters &parameters)
const VariableValue & _specific_total_enthalpy
const VariableValue & _drhou_dt
static InputParameters validParams()
const VariableGradient & _grad_rho
OutputTools< Real >::VariableValue VariableValue
const VariableValue & _rho_w
const VariableValue & _w_vel
const VariableGradient & _grad_u
MaterialProperty< RealTensorValue > & _viscous_stress_tensor
const VariableValue & _drhoE_dt
MaterialProperty< Real > & _thermal_conductivity
const InputParameters & parameters() const
This is the base class all materials should use if you are trying to use the Navier-Stokes Kernels...
const VariableGradient & _grad_v
Ideal gas fluid properties Default parameters are for air at atmospheric pressure and temperature...
virtual void computeProperties()
Must be called after the child class computes dynamic_viscocity.
const VariableValue & _drhov_dt
const IdealGasFluidProperties & _fp
const VariableValue & _drho_dt
const VariableValue & _rho_u
const VariableValue & _temperature
const VariableValue & _rho_v
const VariableGradient & _grad_w
const VariableValue & _rho
MaterialProperty< Real > & _taum