26 #ifndef GRINS_REACTING_LOW_MACH_NAVIER_STOKES_BASE_H
27 #define GRINS_REACTING_LOW_MACH_NAVIER_STOKES_BASE_H
30 #include "grins_config.h"
38 template<
typename Mixture,
typename Evaluator>
62 std::vector<libMesh::Real>& mass_fracs )
const;
64 libMesh::Real
rho( libMesh::Real T, libMesh::Real p0, libMesh::Real R_mix)
const;
123 template<
typename Mixture,
typename Evaluator>
126 {
return _n_species; }
129 template<
typename Mixture,
typename Evaluator>
133 {
return c.point_value(_T_var,p); }
135 template<
typename Mixture,
typename Evaluator>
139 std::vector<libMesh::Real>& mass_fracs )
const
141 libmesh_assert_equal_to(mass_fracs.size(), this->_n_species);
143 for(
unsigned int var = 0; var < this->_n_species; var++ )
145 mass_fracs[var] = c.point_value(_species_vars[var],p);
151 template<
typename Mixture,
typename Evaluator>
155 libMesh::Real R_mix)
const
157 libMesh::Real value = 0;
158 if( this->_fixed_density )
159 value = this->_fixed_rho_value;
161 value = p0/(R_mix*T);
166 template<
typename Mixture,
typename Evaluator>
169 unsigned int qp )
const
172 if( this->_enable_thermo_press_calc )
174 p0 = c.interior_value( _p0_var, qp );
183 template<
typename Mixture,
typename Evaluator>
186 unsigned int qp )
const
189 if( this->_enable_thermo_press_calc )
191 p0 = c.side_value( _p0_var, qp );
200 template<
typename Mixture,
typename Evaluator>
203 const libMesh::Point& p )
const
206 if( this->_enable_thermo_press_calc )
208 p0 = c.point_value( _p0_var, p );
217 template<
typename Mixture,
typename Evaluator>
220 unsigned int qp )
const
223 if( this->_enable_thermo_press_calc )
225 p0 = c.fixed_interior_value( _p0_var, qp );
234 template<
typename Mixture,
typename Evaluator>
243 #endif //GRINS_REACTING_LOW_MACH_NAVIER_STOKES_BASE_H
libMesh::Real rho(libMesh::Real T, libMesh::Real p0, libMesh::Real R_mix) const
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
virtual void set_time_evolving_vars(libMesh::FEMSystem *system)
Sets velocity variables to be time-evolving.
ReactingLowMachNavierStokesBase()
GRINSEnums::FEFamily _T_FE_family
virtual void init_context(AssemblyContext &context)
Initialize context for added physics variables.
std::vector< std::string > _species_var_names
Names of each (owned) variable in the system.
unsigned int _dim
Physical dimension of problem.
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem.
virtual void read_input_options(const GetPot &input)
Read options from GetPot input file.
GRINSEnums::Order _V_order
libMesh::Real get_p0_steady_side(const AssemblyContext &c, unsigned int qp) const
void mass_fractions(const libMesh::Point &p, const AssemblyContext &c, std::vector< libMesh::Real > &mass_fracs) const
libMesh::Real get_p0_transient(const AssemblyContext &c, unsigned int qp) const
libMesh::Real get_p0_steady(const AssemblyContext &c, unsigned int qp) const
GRINSEnums::Order _species_order
Element orders, read from input.
const Mixture & gas_mixture() const
GRINSEnums::FEFamily _P_FE_family
GRINSEnums::Order _T_order
~ReactingLowMachNavierStokesBase()
GRINSEnums::FEFamily _species_FE_family
Element type, read from input.
libMesh::Real T(const libMesh::Point &p, const AssemblyContext &c) const
libMesh::Point _g
Gravity vector.
GRINSEnums::FEFamily _V_FE_family
unsigned int n_species() const
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
GRINSEnums::Order _P_order
unsigned int _n_species
Number of species.
virtual void init_variables(libMesh::FEMSystem *system)
Initialize variables for this physics.
std::vector< VariableIndex > _species_vars
Indices for each (owned) variable;.
libMesh::Real _fixed_rho_value