26 #ifndef GRINS_LOW_MACH_NAVIER_STOKES_BASE_H
27 #define GRINS_LOW_MACH_NAVIER_STOKES_BASE_H
39 #include "libmesh/enum_order.h"
40 #include "libmesh/enum_fe_family.h"
41 #include "libmesh/point.h"
50 template<
class Viscosity,
class SpecificHeat,
class ThermalConductivity>
69 libMesh::Real
rho( libMesh::Real
T, libMesh::Real p0 )
const;
71 libMesh::Real
d_rho_dT( libMesh::Real
T, libMesh::Real p0 )
const;
84 (
const std::string & param_name,
102 libMesh::UniquePtr<ThermoPressureFEVariable>
_p0_var;
111 ThermalConductivity
_k;
130 template<
class V,
class SH,
class TC>
134 return c.point_value(_temp_vars.T(),p);
137 template<
class V,
class SH,
class TC>
141 return p0/(this->_R*T);
144 template<
class V,
class SH,
class TC>
148 return -p0/(this->_R*(T*T));
151 template<
class V,
class SH,
class TC>
154 unsigned int qp )
const
157 if( this->_enable_thermo_press_calc )
159 p0 = c.interior_value( _p0_var->p0(), qp );
168 template<
class V,
class SH,
class TC>
171 unsigned int qp )
const
174 if( this->_enable_thermo_press_calc )
176 p0 = c.side_value( _p0_var->p0(), qp );
185 template<
class V,
class SH,
class TC>
188 const libMesh::Point& p )
const
191 if( this->_enable_thermo_press_calc )
193 p0 = c.point_value( _p0_var->p0(), p );
202 template<
class V,
class SH,
class TC>
207 if( this->_enable_thermo_press_calc )
209 p0 = c.fixed_interior_value( _p0_var->p0(), qp );
220 #endif // GRINS_LOW_MACH_NAVIER_STOKES_BASE_H
LowMachNavierStokesBase()
~LowMachNavierStokesBase()
void read_input_options(const GetPot &input)
Read options from GetPot input file.
libMesh::UniquePtr< ThermoPressureFEVariable > _p0_var
libMesh::Number _p0_over_R
Thermodynamic pressure divided by gas constant.
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem.
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.
unsigned int _dim
Physical dimension of problem.
void register_variables()
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.
VelocityFEVariables _flow_vars
PressureFEVariable _press_var
virtual void set_time_evolving_vars(libMesh::FEMSystem *system)
Sets velocity variables to be time-evolving.
libMesh::Real d_rho_dT(libMesh::Real T, libMesh::Real p0) const
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.
PrimitiveTempFEVariables _temp_vars
virtual void register_parameter(const std::string ¶m_name, libMesh::ParameterMultiAccessor< libMesh::Number > ¶m_pointer) const
Each subclass will register its copy of an independent.
libMesh::Real rho(libMesh::Real T, libMesh::Real p0) const