26 #ifndef GRINS_LOW_MACH_NAVIER_STOKES_BASE_H
27 #define GRINS_LOW_MACH_NAVIER_STOKES_BASE_H
35 #include "libmesh/enum_order.h"
36 #include "libmesh/enum_fe_family.h"
37 #include "libmesh/point.h"
46 template<
class Viscosity,
class SpecificHeat,
class ThermalConductivity>
68 libMesh::Real
rho( libMesh::Real T, libMesh::Real p0 )
const;
70 libMesh::Real
d_rho_dT( libMesh::Real T, libMesh::Real p0 )
const;
83 (
const std::string & param_name,
121 ThermalConductivity
_k;
135 template<
class V,
class SH,
class TC>
139 return c.point_value(_T_var,p);
142 template<
class V,
class SH,
class TC>
146 return p0/(this->_R*T);
149 template<
class V,
class SH,
class TC>
153 return -p0/(this->_R*(T*T));
156 template<
class V,
class SH,
class TC>
159 unsigned int qp )
const
162 if( this->_enable_thermo_press_calc )
164 p0 = c.interior_value( _p0_var, qp );
173 template<
class V,
class SH,
class TC>
176 unsigned int qp )
const
179 if( this->_enable_thermo_press_calc )
181 p0 = c.side_value( _p0_var, qp );
190 template<
class V,
class SH,
class TC>
193 const libMesh::Point& p )
const
196 if( this->_enable_thermo_press_calc )
198 p0 = c.point_value( _p0_var, p );
207 template<
class V,
class SH,
class TC>
212 if( this->_enable_thermo_press_calc )
214 p0 = c.fixed_interior_value( _p0_var, qp );
225 #endif // GRINS_LOW_MACH_NAVIER_STOKES_BASE_H
LowMachNavierStokesBase()
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
virtual void read_input_options(const GetPot &input)
Read options from GetPot input file.
GRINSEnums::FEFamily _V_FE_family
Element type, read from input.
GRINSEnums::FEFamily _P_FE_family
libMesh::Number _p0_over_R
Thermodynamic pressure divided by gas constant.
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem.
VariableIndex _u_var
Indices for each (owned) variable;.
libMesh::Real get_p0_steady_side(const AssemblyContext &c, unsigned int qp) const
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
libMesh::Real get_p0_steady(const AssemblyContext &c, unsigned int qp) const
virtual void init_variables(libMesh::FEMSystem *system)
Initialize variables for this physics.
~LowMachNavierStokesBase()
unsigned int _dim
Physical dimension of problem.
GRINSEnums::Order _P_order
SpecificHeat _cp
Specific heat object.
ThermalConductivity _k
Thermal conductivity object.
Viscosity _mu
Viscosity object.
libMesh::Real T(const libMesh::Point &p, const AssemblyContext &c) const
libMesh::Point _g
Gravity vector.
std::string _u_var_name
Names of each (owned) variable in the system.
virtual void set_time_evolving_vars(libMesh::FEMSystem *system)
Sets velocity variables to be time-evolving.
GRINSEnums::Order _V_order
Element orders, read from input.
libMesh::Real d_rho_dT(libMesh::Real T, libMesh::Real p0) const
virtual void register_parameter(const std::string ¶m_name, libMesh::ParameterMultiPointer< libMesh::Number > ¶m_pointer) const
Each subclass will register its copy of an independent.
GRINSEnums::Order _T_order
libMesh::Real get_p0_transient(AssemblyContext &c, unsigned int qp) const
Physics class for Incompressible Navier-Stokes.
virtual void init_context(AssemblyContext &context)
Initialize context for added physics variables.
GRINSEnums::FEFamily _T_FE_family
libMesh::Real rho(libMesh::Real T, libMesh::Real p0) const