GRINS-0.6.0
Public Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator > Class Template Reference

#include <reacting_low_mach_navier_stokes.h>

Inheritance diagram for GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >:
Inheritance graph
[legend]
Collaboration diagram for GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >:
Collaboration graph
[legend]

Public Member Functions

 ReactingLowMachNavierStokes (const PhysicsName &physics_name, const GetPot &input)
 
 ~ReactingLowMachNavierStokes ()
 
virtual void read_input_options (const GetPot &input)
 Read options from GetPot input file. More...
 
virtual void register_postprocessing_vars (const GetPot &input, PostProcessedQuantities< libMesh::Real > &postprocessing)
 Register postprocessing variables for ReactingLowMachNavierStokes. More...
 
virtual void init_context (AssemblyContext &context)
 Initialize context for added physics variables. More...
 
virtual void element_time_derivative (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Time dependent part(s) of physics for element interiors. More...
 
virtual void side_time_derivative (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Time dependent part(s) of physics for boundaries of elements on the domain boundary. More...
 
virtual void side_constraint (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Constraint part(s) of physics for boundaries of elements on the domain boundary. More...
 
virtual void mass_residual (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Mass matrix part(s) for element interiors. All boundary terms lie within the time_derivative part. More...
 
virtual void compute_element_time_derivative_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_side_time_derivative_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_postprocessed_quantity (unsigned int quantity_index, const AssemblyContext &context, const libMesh::Point &point, libMesh::Real &value)
 
virtual void init_variables (libMesh::FEMSystem *system)
 Initialize variables for this physics. More...
 
virtual void set_time_evolving_vars (libMesh::FEMSystem *system)
 Sets velocity variables to be time-evolving. More...
 
unsigned int n_species () const
 
libMesh::Real T (const libMesh::Point &p, const AssemblyContext &c) const
 
void mass_fractions (const libMesh::Point &p, const AssemblyContext &c, std::vector< libMesh::Real > &mass_fracs) const
 
libMesh::Real rho (libMesh::Real T, libMesh::Real p0, libMesh::Real R_mix) const
 
libMesh::Real get_p0_steady (const AssemblyContext &c, unsigned int qp) const
 
libMesh::Real get_p0_steady (const AssemblyContext &c, const libMesh::Point &p) const
 
libMesh::Real get_p0_steady_side (const AssemblyContext &c, unsigned int qp) const
 
libMesh::Real get_p0_transient (const AssemblyContext &c, unsigned int qp) const
 
const Mixture & gas_mixture () const
 
virtual bool enabled_on_elem (const libMesh::Elem *elem)
 Find if current physics is active on supplied element. More...
 
void set_is_steady (bool is_steady)
 Sets whether this physics is to be solved with a steady solver or not. More...
 
bool is_steady () const
 Returns whether or not this physics is being solved with a steady solver. More...
 
virtual void auxiliary_init (MultiphysicsSystem &system)
 Any auxillary initialization a Physics class may need. More...
 
virtual void nonlocal_time_derivative (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Time dependent part(s) of physics for scalar variables. More...
 
virtual void element_constraint (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Constraint part(s) of physics for element interiors. More...
 
virtual void nonlocal_constraint (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Constraint part(s) of physics for scalar variables. More...
 
virtual void nonlocal_mass_residual (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Mass matrix part(s) for scalar variables. More...
 
void init_bcs (libMesh::FEMSystem *system)
 
void init_ics (libMesh::FEMSystem *system, libMesh::CompositeFunction< libMesh::Number > &all_ics)
 
void attach_neumann_bound_func (GRINS::NBCContainer &neumann_bcs)
 
void attach_dirichlet_bound_func (const GRINS::DBCContainer &dirichlet_bc)
 
virtual void compute_nonlocal_time_derivative_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_element_constraint_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_side_constraint_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_nonlocal_constraint_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_mass_residual_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_nonlocal_mass_residual_cache (const AssemblyContext &context, CachedValues &cache)
 
BCHandlingBaseget_bc_handler ()
 
ICHandlingBaseget_ic_handler ()
 
virtual void set_parameter (libMesh::Number &param_variable, const GetPot &input, const std::string &param_name, libMesh::Number param_default)
 Each subclass can simultaneously read a parameter value from. More...
 
virtual void register_parameter (const std::string &param_name, libMesh::ParameterMultiPointer< libMesh::Number > &param_pointer) const
 Each subclass will register its copy of an independent. More...
 

Protected Attributes

bool _pin_pressure
 Enable pressure pinning. More...
 
PressurePinning _p_pinning
 
unsigned int _rho_index
 Index from registering this quantity. More...
 
std::vector< unsigned int > _species_viscosity
 Index from registering this quantity. Each species will have it's own index. More...
 
unsigned int _mu_index
 Index from registering this quantity. More...
 
unsigned int _k_index
 Index from registering this quantity. More...
 
unsigned int _cp_index
 Index from registering this quantity. More...
 
std::vector< unsigned int > _mole_fractions_index
 Index from registering this quantity. Each species will have it's own index. More...
 
std::vector< unsigned int > _h_s_index
 Index from registering this quantity. Each species will have it's own index. More...
 
std::vector< unsigned int > _omega_dot_index
 Index from registering this quantity. Each species will have it's own index. More...
 
Mixture _gas_mixture
 
libMesh::Number _p0
 
unsigned int _dim
 Physical dimension of problem. More...
 
unsigned int _n_species
 Number of species. More...
 
std::vector< VariableIndex_species_vars
 Indices for each (owned) variable;. More...
 
VariableIndex _u_var
 
VariableIndex _v_var
 
VariableIndex _w_var
 
VariableIndex _p_var
 
VariableIndex _T_var
 
VariableIndex _p0_var
 
std::vector< std::string > _species_var_names
 Names of each (owned) variable in the system. More...
 
std::string _u_var_name
 
std::string _v_var_name
 
std::string _w_var_name
 
std::string _p_var_name
 
std::string _T_var_name
 
std::string _p0_var_name
 
GRINSEnums::FEFamily _species_FE_family
 Element type, read from input. More...
 
GRINSEnums::FEFamily _V_FE_family
 
GRINSEnums::FEFamily _P_FE_family
 
GRINSEnums::FEFamily _T_FE_family
 
GRINSEnums::Order _species_order
 Element orders, read from input. More...
 
GRINSEnums::Order _V_order
 
GRINSEnums::Order _P_order
 
GRINSEnums::Order _T_order
 
libMesh::Point _g
 Gravity vector. More...
 
bool _enable_thermo_press_calc
 Flag to enable thermodynamic pressure calculation. More...
 
bool _fixed_density
 
libMesh::Real _fixed_rho_value
 
const PhysicsName _physics_name
 Name of the physics object. Used for reading physics specific inputs. More...
 
GRINS::BCHandlingBase_bc_handler
 
GRINS::ICHandlingBase_ic_handler
 
std::set< libMesh::subdomain_id_type > _enabled_subdomains
 Subdomains on which the current Physics class is enabled. More...
 
bool _is_axisymmetric
 

Static Protected Attributes

static bool _is_steady = false
 Caches whether or not the solver that's being used is steady or not. More...
 

Private Member Functions

 ReactingLowMachNavierStokes ()
 

Detailed Description

template<typename Mixture, typename Evaluator>
class GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >

Definition at line 35 of file reacting_low_mach_navier_stokes.h.

Constructor & Destructor Documentation

template<typename Mixture , typename Evaluator >
GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::ReactingLowMachNavierStokes ( const PhysicsName physics_name,
const GetPot &  input 
)

Definition at line 43 of file reacting_low_mach_navier_stokes.C.

References GRINS::Physics::_bc_handler, GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_gas_mixture, GRINS::Physics::_ic_handler, GRINS::Physics::_is_axisymmetric, GRINS::BCHandlingBase::is_axisymmetric(), and GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::read_input_options().

44  : ReactingLowMachNavierStokesBase<Mixture,Evaluator>(physics_name,input),
45  _p_pinning(input,physics_name),
46  _rho_index(0),
47  _mu_index(0),
48  _k_index(0),
49  _cp_index(0)
50  {
51  this->read_input_options(input);
52 
53  // This is deleted in the base class
54  this->_bc_handler = new ReactingLowMachNavierStokesBCHandling<typename Mixture::ChemistryParent>( physics_name, input,
55  this->_gas_mixture.chemistry() );
56 
57  if( this->_bc_handler->is_axisymmetric() )
58  {
59  this->_is_axisymmetric = true;
60  }
61 
62  this->_ic_handler = new GenericICHandler( physics_name, input );
63 
64  return;
65  }
GRINS::ICHandlingBase * _ic_handler
Definition: physics.h:258
GRINS::BCHandlingBase * _bc_handler
Definition: physics.h:256
unsigned int _k_index
Index from registering this quantity.
bool is_axisymmetric() const
unsigned int _mu_index
Index from registering this quantity.
unsigned int _rho_index
Index from registering this quantity.
bool _is_axisymmetric
Definition: physics.h:268
unsigned int _cp_index
Index from registering this quantity.
virtual void read_input_options(const GetPot &input)
Read options from GetPot input file.
template<typename Mixture , typename Evaluator >
GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::~ReactingLowMachNavierStokes ( )

Definition at line 68 of file reacting_low_mach_navier_stokes.C.

69  {
70  return;
71  }
template<typename Mixture, typename Evaluator>
GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::ReactingLowMachNavierStokes ( )
private

Member Function Documentation

void GRINS::Physics::attach_dirichlet_bound_func ( const GRINS::DBCContainer dirichlet_bc)
inherited

Definition at line 150 of file physics.C.

References GRINS::Physics::_bc_handler, and GRINS::BCHandlingBase::attach_dirichlet_bound_func().

151  {
152  _bc_handler->attach_dirichlet_bound_func( dirichlet_bc );
153  return;
154  }
GRINS::BCHandlingBase * _bc_handler
Definition: physics.h:256
void attach_dirichlet_bound_func(const GRINS::DBCContainer &dirichlet_bc)
void GRINS::Physics::attach_neumann_bound_func ( GRINS::NBCContainer neumann_bcs)
inherited

Definition at line 144 of file physics.C.

References GRINS::Physics::_bc_handler, and GRINS::BCHandlingBase::attach_neumann_bound_func().

145  {
146  _bc_handler->attach_neumann_bound_func( neumann_bcs );
147  return;
148  }
GRINS::BCHandlingBase * _bc_handler
Definition: physics.h:256
void attach_neumann_bound_func(GRINS::NBCContainer &neumann_bcs)
void GRINS::Physics::auxiliary_init ( MultiphysicsSystem system)
virtualinherited

Any auxillary initialization a Physics class may need.

This is called after all variables are added, so this method can safely query the MultiphysicsSystem about variable information.

Definition at line 113 of file physics.C.

114  {
115  return;
116  }
void GRINS::Physics::compute_element_constraint_cache ( const AssemblyContext context,
CachedValues cache 
)
virtualinherited

Definition at line 185 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::element_constraint().

187  {
188  return;
189  }
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::compute_element_time_derivative_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual
Todo:
Need to figure out something smarter for controling species that go slightly negative.

Reimplemented from GRINS::Physics.

Definition at line 444 of file reacting_low_mach_navier_stokes.C.

References GRINS::Cache::DIFFUSION_COEFFS, GRINS::Cache::MASS_FRACTIONS, GRINS::Cache::MASS_FRACTIONS_GRAD, GRINS::Cache::MIXTURE_DENSITY, GRINS::Cache::MIXTURE_GAS_CONSTANT, GRINS::Cache::MIXTURE_SPECIFIC_HEAT_P, GRINS::Cache::MIXTURE_THERMAL_CONDUCTIVITY, GRINS::Cache::MIXTURE_VISCOSITY, GRINS::Cache::MOLAR_MASS, GRINS::Cache::OMEGA_DOT, GRINS::Cache::PRESSURE, GRINS::CachedValues::set_gradient_values(), GRINS::CachedValues::set_values(), GRINS::CachedValues::set_vector_gradient_values(), GRINS::CachedValues::set_vector_values(), GRINS::Cache::SPECIES_ENTHALPY, GRINS::Cache::TEMPERATURE, GRINS::Cache::TEMPERATURE_GRAD, GRINS::Cache::THERMO_PRESSURE, GRINS::Cache::X_VELOCITY, GRINS::Cache::X_VELOCITY_GRAD, GRINS::Cache::Y_VELOCITY, GRINS::Cache::Y_VELOCITY_GRAD, GRINS::Cache::Z_VELOCITY, and GRINS::Cache::Z_VELOCITY_GRAD.

446  {
447  Evaluator gas_evaluator( this->_gas_mixture );
448 
449  const unsigned int n_qpoints = context.get_element_qrule().n_points();
450 
451  std::vector<libMesh::Real> u, v, w, T, p, p0;
452  u.resize(n_qpoints);
453  v.resize(n_qpoints);
454  if( this->_dim > 2 )
455  w.resize(n_qpoints);
456 
457  T.resize(n_qpoints);
458  p.resize(n_qpoints);
459  p0.resize(n_qpoints);
460 
461  std::vector<libMesh::Gradient> grad_u, grad_v, grad_w, grad_T;
462  grad_u.resize(n_qpoints);
463  grad_v.resize(n_qpoints);
464  if( this->_dim > 2 )
465  grad_w.resize(n_qpoints);
466 
467  grad_T.resize(n_qpoints);
468 
469  std::vector<std::vector<libMesh::Real> > mass_fractions;
470  std::vector<std::vector<libMesh::Gradient> > grad_mass_fractions;
471  mass_fractions.resize(n_qpoints);
472  grad_mass_fractions.resize(n_qpoints);
473 
474  std::vector<libMesh::Real> M;
475  M.resize(n_qpoints);
476 
477  std::vector<libMesh::Real> R;
478  R.resize(n_qpoints);
479 
480  std::vector<libMesh::Real> rho;
481  rho.resize(n_qpoints);
482 
483  for (unsigned int qp = 0; qp != n_qpoints; ++qp)
484  {
485  u[qp] = context.interior_value(this->_u_var, qp);
486  v[qp] = context.interior_value(this->_v_var, qp);
487 
488  grad_u[qp] = context.interior_gradient(this->_u_var, qp);
489  grad_v[qp] = context.interior_gradient(this->_v_var, qp);
490  if( this->_dim > 2 )
491  {
492  w[qp] = context.interior_value(this->_w_var, qp);
493  grad_w[qp] = context.interior_gradient(this->_w_var, qp);
494  }
495  T[qp] = context.interior_value(this->_T_var, qp);
496  grad_T[qp] = context.interior_gradient(this->_T_var, qp);
497 
498  p[qp] = context.interior_value(this->_p_var, qp);
499  p0[qp] = this->get_p0_steady(context, qp);
500 
501  mass_fractions[qp].resize(this->_n_species);
502  grad_mass_fractions[qp].resize(this->_n_species);
503 
504  for( unsigned int s = 0; s < this->_n_species; s++ )
505  {
508  mass_fractions[qp][s] = std::max( context.interior_value(this->_species_vars[s],qp), 0.0 );
509  grad_mass_fractions[qp][s] = context.interior_gradient(this->_species_vars[s],qp);
510  }
511 
512  M[qp] = gas_evaluator.M_mix( mass_fractions[qp] );
513 
514  R[qp] = gas_evaluator.R_mix( mass_fractions[qp] );
515 
516  rho[qp] = this->rho( T[qp], p0[qp], R[qp] );
517  }
518 
519  cache.set_values(Cache::X_VELOCITY, u);
520  cache.set_values(Cache::Y_VELOCITY, v);
521 
522  cache.set_gradient_values(Cache::X_VELOCITY_GRAD, grad_u);
523  cache.set_gradient_values(Cache::Y_VELOCITY_GRAD, grad_v);
524 
525  if(this->_dim > 2)
526  {
527  cache.set_values(Cache::Z_VELOCITY, w);
528  cache.set_gradient_values(Cache::Z_VELOCITY_GRAD, grad_w);
529  }
530 
531  cache.set_values(Cache::TEMPERATURE, T);
532  cache.set_gradient_values(Cache::TEMPERATURE_GRAD, grad_T);
533 
534  cache.set_values(Cache::PRESSURE, p);
535  cache.set_values(Cache::THERMO_PRESSURE, p0);
536 
537  cache.set_vector_values(Cache::MASS_FRACTIONS, mass_fractions);
538  cache.set_vector_gradient_values(Cache::MASS_FRACTIONS_GRAD, grad_mass_fractions);
539 
540  cache.set_values(Cache::MOLAR_MASS, M);
541 
542  cache.set_values(Cache::MIXTURE_GAS_CONSTANT, R);
543 
544  cache.set_values(Cache::MIXTURE_DENSITY, rho);
545 
546  /* These quantities must be computed after T, mass_fractions, p0
547  are set into the cache. */
548  std::vector<libMesh::Real> mu;
549  mu.resize(n_qpoints);
550 
551  std::vector<libMesh::Real> cp;
552  cp.resize(n_qpoints);
553 
554  std::vector<libMesh::Real> k;
555  k.resize(n_qpoints);
556 
557  std::vector<std::vector<libMesh::Real> > h_s;
558  h_s.resize(n_qpoints);
559 
560  std::vector<std::vector<libMesh::Real> > D_s;
561  D_s.resize(n_qpoints);
562 
563  std::vector<std::vector<libMesh::Real> > omega_dot_s;
564  omega_dot_s.resize(n_qpoints);
565 
566  for (unsigned int qp = 0; qp != n_qpoints; ++qp)
567  {
568  gas_evaluator.mu_and_k(cache,qp,mu[qp],k[qp]);
569  cp[qp] = gas_evaluator.cp(cache,qp);
570 
571  h_s[qp].resize(this->_n_species);
572  gas_evaluator.h_s( cache, qp, h_s[qp] );
573 
574  D_s[qp].resize(this->_n_species);
575  gas_evaluator.D( cache, qp, D_s[qp] );
576 
577  omega_dot_s[qp].resize(this->_n_species);
578  gas_evaluator.omega_dot( cache, qp, omega_dot_s[qp] );
579  }
580 
581  cache.set_values(Cache::MIXTURE_VISCOSITY, mu);
582  cache.set_values(Cache::MIXTURE_SPECIFIC_HEAT_P, cp);
583  cache.set_values(Cache::MIXTURE_THERMAL_CONDUCTIVITY, k);
584  cache.set_vector_values(Cache::SPECIES_ENTHALPY, h_s);
585  cache.set_vector_values(Cache::DIFFUSION_COEFFS, D_s);
586  cache.set_vector_values(Cache::OMEGA_DOT, omega_dot_s);
587 
588  return;
589  }
libMesh::Real rho(libMesh::Real T, libMesh::Real p0, libMesh::Real R_mix) const
unsigned int _dim
Physical dimension of problem.
void mass_fractions(const libMesh::Point &p, const AssemblyContext &c, std::vector< libMesh::Real > &mass_fracs) const
libMesh::Real get_p0_steady(const AssemblyContext &c, unsigned int qp) const
libMesh::Real T(const libMesh::Point &p, const AssemblyContext &c) const
std::vector< VariableIndex > _species_vars
Indices for each (owned) variable;.
void GRINS::Physics::compute_mass_residual_cache ( const AssemblyContext context,
CachedValues cache 
)
virtualinherited

Definition at line 203 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::mass_residual().

205  {
206  return;
207  }
void GRINS::Physics::compute_nonlocal_constraint_cache ( const AssemblyContext context,
CachedValues cache 
)
virtualinherited

Definition at line 197 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_constraint().

199  {
200  return;
201  }
void GRINS::Physics::compute_nonlocal_mass_residual_cache ( const AssemblyContext context,
CachedValues cache 
)
virtualinherited

Definition at line 209 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_mass_residual().

211  {
212  return;
213  }
void GRINS::Physics::compute_nonlocal_time_derivative_cache ( const AssemblyContext context,
CachedValues cache 
)
virtualinherited

Definition at line 179 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_time_derivative().

181  {
182  return;
183  }
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::compute_postprocessed_quantity ( unsigned int  quantity_index,
const AssemblyContext context,
const libMesh::Point &  point,
libMesh::Real &  value 
)
virtual

Reimplemented from GRINS::Physics.

Definition at line 633 of file reacting_low_mach_navier_stokes.C.

637  {
638  Evaluator gas_evaluator( this->_gas_mixture );
639 
640  if( quantity_index == this->_rho_index )
641  {
642  std::vector<libMesh::Real> Y( this->_n_species );
643  libMesh::Real T = this->T(point,context);
644  libMesh::Real p0 = this->get_p0_steady(context,point);
645  this->mass_fractions( point, context, Y );
646 
647  value = this->rho( T, p0, gas_evaluator.R_mix(Y) );
648  }
649  else if( quantity_index == this->_mu_index )
650  {
651  std::vector<libMesh::Real> Y( this->_n_species );
652  libMesh::Real T = this->T(point,context);
653  this->mass_fractions( point, context, Y );
654 
655  value = gas_evaluator.mu( T, Y );
656  }
657  else if( quantity_index == this->_k_index )
658  {
659  std::vector<libMesh::Real> Y( this->_n_species );
660  libMesh::Real T = this->T(point,context);
661  this->mass_fractions( point, context, Y );
662 
663  value = gas_evaluator.k( T, Y );
664  }
665  else if( quantity_index == this->_cp_index )
666  {
667  std::vector<libMesh::Real> Y( this->_n_species );
668  libMesh::Real T = this->T(point,context);
669  this->mass_fractions( point, context, Y );
670 
671  value = gas_evaluator.cp( T, Y );
672  }
673  // Now check for species dependent stuff
674  else
675  {
676  if( !this->_h_s_index.empty() )
677  {
678  libmesh_assert_equal_to( _h_s_index.size(), this->n_species() );
679 
680  for( unsigned int s = 0; s < this->n_species(); s++ )
681  {
682  if( quantity_index == this->_h_s_index[s] )
683  {
684  libMesh::Real T = this->T(point,context);
685 
686  value = gas_evaluator.h_s( T, s );
687  return;
688  }
689  }
690  }
691 
692  if( !this->_mole_fractions_index.empty() )
693  {
694  libmesh_assert_equal_to( _mole_fractions_index.size(), this->n_species() );
695 
696  for( unsigned int s = 0; s < this->n_species(); s++ )
697  {
698  if( quantity_index == this->_mole_fractions_index[s] )
699  {
700  std::vector<libMesh::Real> Y( this->_n_species );
701  this->mass_fractions( point, context, Y );
702 
703  libMesh::Real M = gas_evaluator.M_mix(Y);
704 
705  value = gas_evaluator.X( s, M, Y[s] );
706  return;
707  }
708  }
709  }
710 
711  if( !this->_omega_dot_index.empty() )
712  {
713  libmesh_assert_equal_to( _omega_dot_index.size(), this->n_species() );
714 
715  for( unsigned int s = 0; s < this->n_species(); s++ )
716  {
717  if( quantity_index == this->_omega_dot_index[s] )
718  {
719  std::vector<libMesh::Real> Y( this->n_species() );
720  this->mass_fractions( point, context, Y );
721 
722  libMesh::Real T = this->T(point,context);
723 
724  libMesh::Real p0 = this->get_p0_steady(context,point);
725 
726  libMesh::Real rho = this->rho( T, p0, gas_evaluator.R_mix(Y) );
727 
728  std::vector<libMesh::Real> omega_dot( this->n_species() );
729  gas_evaluator.omega_dot( T, rho, Y, omega_dot );
730 
731  value = omega_dot[s];
732  return;
733  }
734  }
735  }
736 
737  } // if/else quantity_index
738 
739  return;
740  }
libMesh::Real rho(libMesh::Real T, libMesh::Real p0, libMesh::Real R_mix) const
std::vector< unsigned int > _mole_fractions_index
Index from registering this quantity. Each species will have it's own index.
unsigned int _k_index
Index from registering this quantity.
void mass_fractions(const libMesh::Point &p, const AssemblyContext &c, std::vector< libMesh::Real > &mass_fracs) const
libMesh::Real get_p0_steady(const AssemblyContext &c, unsigned int qp) const
libMesh::Real T(const libMesh::Point &p, const AssemblyContext &c) const
unsigned int _mu_index
Index from registering this quantity.
std::vector< unsigned int > _omega_dot_index
Index from registering this quantity. Each species will have it's own index.
unsigned int _rho_index
Index from registering this quantity.
std::vector< unsigned int > _h_s_index
Index from registering this quantity. Each species will have it's own index.
unsigned int _cp_index
Index from registering this quantity.
void GRINS::Physics::compute_side_constraint_cache ( const AssemblyContext context,
CachedValues cache 
)
virtualinherited

Definition at line 191 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::side_constraint().

193  {
194  return;
195  }
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::compute_side_time_derivative_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual
Todo:
Add mechanism for checking if this side is a catalytic wall so we don't compute these quantities unnecessarily.
Todo:
Need to figure out something smarter for controling species that go slightly negative.

Reimplemented from GRINS::Physics.

Definition at line 592 of file reacting_low_mach_navier_stokes.C.

References GRINS::Cache::MASS_FRACTIONS, GRINS::Cache::MIXTURE_DENSITY, GRINS::CachedValues::set_values(), GRINS::CachedValues::set_vector_values(), and GRINS::Cache::TEMPERATURE.

594  {
595  Evaluator gas_evaluator( this->_gas_mixture );
596 
597  const unsigned int n_qpoints = context.get_side_qrule().n_points();
598 
599  // Need for Catalytic Wall
602  std::vector<libMesh::Real> T, rho;
603  T.resize(n_qpoints);
604  rho.resize(n_qpoints);
605 
606  std::vector<std::vector<libMesh::Real> > mass_fractions;
607  mass_fractions.resize(n_qpoints);
608 
609  for (unsigned int qp = 0; qp != n_qpoints; ++qp)
610  {
611  T[qp] = context.side_value(this->_T_var, qp);
612 
613  mass_fractions[qp].resize(this->_n_species);
614  for( unsigned int s = 0; s < this->_n_species; s++ )
615  {
618  mass_fractions[qp][s] = std::max( context.side_value(this->_species_vars[s],qp), 0.0 );
619  }
620  const libMesh::Real p0 = this->get_p0_steady_side(context, qp);
621 
622  rho[qp] = this->rho( T[qp], p0, gas_evaluator.R_mix(mass_fractions[qp]) );
623  }
624 
625  cache.set_values(Cache::TEMPERATURE, T);
626  cache.set_vector_values(Cache::MASS_FRACTIONS, mass_fractions);
627  cache.set_values(Cache::MIXTURE_DENSITY, rho);
628 
629  return;
630  }
libMesh::Real rho(libMesh::Real T, libMesh::Real p0, libMesh::Real R_mix) const
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 T(const libMesh::Point &p, const AssemblyContext &c) const
void GRINS::Physics::element_constraint ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtualinherited
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::element_time_derivative ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Time dependent part(s) of physics for element interiors.

Todo:
Need to add SCEBD term.
Todo:
Would it be better to put this in its own DoF loop and do the if check once?

Reimplemented from GRINS::Physics.

Definition at line 182 of file reacting_low_mach_navier_stokes.C.

References GRINS::Cache::DIFFUSION_COEFFS, GRINS::CachedValues::get_cached_gradient_values(), GRINS::CachedValues::get_cached_values(), GRINS::CachedValues::get_cached_vector_gradient_values(), GRINS::CachedValues::get_cached_vector_values(), GRINS::Cache::MASS_FRACTIONS_GRAD, GRINS::Cache::MIXTURE_DENSITY, GRINS::Cache::MIXTURE_SPECIFIC_HEAT_P, GRINS::Cache::MIXTURE_THERMAL_CONDUCTIVITY, GRINS::Cache::MIXTURE_VISCOSITY, GRINS::Cache::MOLAR_MASS, GRINS::Cache::OMEGA_DOT, GRINS::Cache::PRESSURE, GRINS::Cache::SPECIES_ENTHALPY, GRINS::Cache::TEMPERATURE, GRINS::Cache::TEMPERATURE_GRAD, GRINS::Cache::X_VELOCITY, GRINS::Cache::X_VELOCITY_GRAD, GRINS::Cache::Y_VELOCITY, GRINS::Cache::Y_VELOCITY_GRAD, GRINS::Cache::Z_VELOCITY, and GRINS::Cache::Z_VELOCITY_GRAD.

185  {
186  if( compute_jacobian )
187  {
188  libmesh_not_implemented();
189  }
190  // Convenience
191  const VariableIndex s0_var = this->_species_vars[0];
192 
193  // The number of local degrees of freedom in each variable.
194  const unsigned int n_p_dofs = context.get_dof_indices(this->_p_var).size();
195  const unsigned int n_s_dofs = context.get_dof_indices(s0_var).size();
196  const unsigned int n_u_dofs = context.get_dof_indices(this->_u_var).size();
197  const unsigned int n_T_dofs = context.get_dof_indices(this->_T_var).size();
198 
199  // Check number of dofs is same for _u_var, v_var and w_var.
200  libmesh_assert (n_u_dofs == context.get_dof_indices(this->_v_var).size());
201  if (this->_dim == 3)
202  libmesh_assert (n_u_dofs == context.get_dof_indices(this->_w_var).size());
203 
204  // Element Jacobian * quadrature weights for interior integration.
205  const std::vector<libMesh::Real>& JxW =
206  context.get_element_fe(this->_u_var)->get_JxW();
207 
208  // The pressure shape functions at interior quadrature points.
209  const std::vector<std::vector<libMesh::Real> >& p_phi =
210  context.get_element_fe(this->_p_var)->get_phi();
211 
212  // The species shape functions at interior quadrature points.
213  const std::vector<std::vector<libMesh::Real> >& s_phi = context.get_element_fe(s0_var)->get_phi();
214 
215  // The species shape function gradients at interior quadrature points.
216  const std::vector<std::vector<libMesh::Gradient> >& s_grad_phi = context.get_element_fe(s0_var)->get_dphi();
217 
218  // The pressure shape functions at interior quadrature points.
219  const std::vector<std::vector<libMesh::Real> >& u_phi =
220  context.get_element_fe(this->_u_var)->get_phi();
221 
222  // The velocity shape function gradients at interior quadrature points.
223  const std::vector<std::vector<libMesh::RealGradient> >& u_gradphi =
224  context.get_element_fe(this->_u_var)->get_dphi();
225 
226  // The temperature shape functions at interior quadrature points.
227  const std::vector<std::vector<libMesh::Real> >& T_phi =
228  context.get_element_fe(this->_T_var)->get_phi();
229 
230  // The temperature shape functions gradients at interior quadrature points.
231  const std::vector<std::vector<libMesh::RealGradient> >& T_gradphi =
232  context.get_element_fe(this->_T_var)->get_dphi();
233 
234  const std::vector<libMesh::Point>& u_qpoint =
235  context.get_element_fe(this->_u_var)->get_xyz();
236 
237  libMesh::DenseSubVector<libMesh::Number>& Fp = context.get_elem_residual(this->_p_var); // R_{p}
238 
239  libMesh::DenseSubVector<libMesh::Number> &Fu = context.get_elem_residual(this->_u_var); // R_{u}
240  libMesh::DenseSubVector<libMesh::Number> &Fv = context.get_elem_residual(this->_v_var); // R_{v}
241  libMesh::DenseSubVector<libMesh::Number> &Fw = context.get_elem_residual(this->_w_var); // R_{w}
242 
243  libMesh::DenseSubVector<libMesh::Number> &FT = context.get_elem_residual(this->_T_var); // R_{T}
244 
245  unsigned int n_qpoints = context.get_element_qrule().n_points();
246  for (unsigned int qp=0; qp != n_qpoints; qp++)
247  {
248  libMesh::Number rho = cache.get_cached_values(Cache::MIXTURE_DENSITY)[qp];
249 
250  libMesh::Number u, v, T;
251  u = cache.get_cached_values(Cache::X_VELOCITY)[qp];
252  v = cache.get_cached_values(Cache::Y_VELOCITY)[qp];
253 
254  T = cache.get_cached_values(Cache::TEMPERATURE)[qp];
255 
256  const libMesh::Gradient& grad_T =
257  cache.get_cached_gradient_values(Cache::TEMPERATURE_GRAD)[qp];
258 
259  libMesh::NumberVectorValue U(u,v);
260  if (this->_dim == 3)
261  U(2) = cache.get_cached_values(Cache::Z_VELOCITY)[qp]; // w
262 
263  libMesh::Gradient grad_u = cache.get_cached_gradient_values(Cache::X_VELOCITY_GRAD)[qp];
264  libMesh::Gradient grad_v = cache.get_cached_gradient_values(Cache::Y_VELOCITY_GRAD)[qp];
265 
266  libMesh::Gradient grad_w;
267  if (this->_dim == 3)
268  grad_w = cache.get_cached_gradient_values(Cache::Z_VELOCITY_GRAD)[qp];
269 
270  libMesh::Number divU = grad_u(0) + grad_v(1);
271  if (this->_dim == 3)
272  divU += grad_w(2);
273 
274  libMesh::NumberVectorValue grad_uT( grad_u(0), grad_v(0) );
275  libMesh::NumberVectorValue grad_vT( grad_u(1), grad_v(1) );
276  libMesh::NumberVectorValue grad_wT;
277  if( this->_dim == 3 )
278  {
279  grad_uT(2) = grad_w(0);
280  grad_vT(2) = grad_w(1);
281  grad_wT = libMesh::NumberVectorValue( grad_u(2), grad_v(2), grad_w(2) );
282  }
283 
284  libMesh::Number mu = cache.get_cached_values(Cache::MIXTURE_VISCOSITY)[qp];
285  libMesh::Number p = cache.get_cached_values(Cache::PRESSURE)[qp];
286 
287  const std::vector<libMesh::Real>& D =
288  cache.get_cached_vector_values(Cache::DIFFUSION_COEFFS)[qp];
289 
290  libMesh::Number cp =
291  cache.get_cached_values(Cache::MIXTURE_SPECIFIC_HEAT_P)[qp];
292 
293  libMesh::Number k =
294  cache.get_cached_values(Cache::MIXTURE_THERMAL_CONDUCTIVITY)[qp];
295 
296  const std::vector<libMesh::Real>& omega_dot =
297  cache.get_cached_vector_values(Cache::OMEGA_DOT)[qp];
298 
299  const std::vector<libMesh::Real>& h =
300  cache.get_cached_vector_values(Cache::SPECIES_ENTHALPY)[qp];
301 
302  const libMesh::Number r = u_qpoint[qp](0);
303 
304  libMesh::Real jac = JxW[qp];
305 
306  if( this->_is_axisymmetric )
307  {
308  divU += U(0)/r;
309  jac *= r;
310  }
311 
312  libMesh::Real M = cache.get_cached_values(Cache::MOLAR_MASS)[qp];
313 
314  std::vector<libMesh::Gradient> grad_ws = cache.get_cached_vector_gradient_values(Cache::MASS_FRACTIONS_GRAD)[qp];
315  libmesh_assert_equal_to( grad_ws.size(), this->_n_species );
316 
317  // Continuity Residual
318  libMesh::Gradient mass_term(0.0,0.0,0.0);
319  for(unsigned int s=0; s < this->_n_species; s++ )
320  {
321  mass_term += grad_ws[s]/this->_gas_mixture.M(s);
322  }
323  mass_term *= M;
324 
325  for (unsigned int i=0; i != n_p_dofs; i++)
326  {
327  Fp(i) += (-U*(mass_term + grad_T/T) + divU)*jac*p_phi[i][qp];
328  }
329 
330  // Species residuals
331  for(unsigned int s=0; s < this->_n_species; s++ )
332  {
333  libMesh::DenseSubVector<libMesh::Number> &Fs =
334  context.get_elem_residual(this->_species_vars[s]); // R_{s}
335 
336  const libMesh::Real term1 = -rho*(U*grad_ws[s]) + omega_dot[s];
337  const libMesh::Gradient term2 = -rho*D[s]*grad_ws[s];
338 
339  for (unsigned int i=0; i != n_s_dofs; i++)
340  {
342  Fs(i) += ( term1*s_phi[i][qp] + term2*s_grad_phi[i][qp] )*jac;
343  }
344  }
345 
346  // Momentum residuals
347  for (unsigned int i=0; i != n_u_dofs; i++)
348  {
349  Fu(i) += ( -rho*U*grad_u*u_phi[i][qp]
350  + p*u_gradphi[i][qp](0)
351  - mu*(u_gradphi[i][qp]*grad_u + u_gradphi[i][qp]*grad_uT
352  - 2.0/3.0*divU*u_gradphi[i][qp](0) )
353  + rho*this->_g(0)*u_phi[i][qp]
354  )*jac;
355 
358  if( this->_is_axisymmetric )
359  {
360  Fu(i) += u_phi[i][qp]*( p/r - 2*mu*U(0)/(r*r) - 2.0/3.0*mu*divU/r )*jac;
361  }
362 
363  Fv(i) += ( -rho*U*grad_v*u_phi[i][qp]
364  + p*u_gradphi[i][qp](1)
365  - mu*(u_gradphi[i][qp]*grad_v + u_gradphi[i][qp]*grad_vT
366  - 2.0/3.0*divU*u_gradphi[i][qp](1) )
367  + rho*this->_g(1)*u_phi[i][qp]
368  )*jac;
369 
370  if (this->_dim == 3)
371  {
372  Fw(i) += ( -rho*U*grad_w*u_phi[i][qp]
373  + p*u_gradphi[i][qp](2)
374  - mu*(u_gradphi[i][qp]*grad_w + u_gradphi[i][qp]*grad_wT
375  - 2.0/3.0*divU*u_gradphi[i][qp](2) )
376  + rho*this->_g(2)*u_phi[i][qp]
377  )*jac;
378  }
379  }
380 
381  // Energy residual
382  libMesh::Real chem_term = 0.0;
383  for(unsigned int s=0; s < this->_n_species; s++ )
384  {
385  chem_term += h[s]*omega_dot[s];
386  }
387 
388  for (unsigned int i=0; i != n_T_dofs; i++)
389  {
390  FT(i) += ( ( -rho*cp*U*grad_T - chem_term )*T_phi[i][qp]
391  - k*grad_T*T_gradphi[i][qp] )*jac;
392  }
393 
394  } // quadrature loop
395 
396  return;
397  }
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.
Definition: var_typedefs.h:40
unsigned int _dim
Physical dimension of problem.
libMesh::Real T(const libMesh::Point &p, const AssemblyContext &c) const
bool _is_axisymmetric
Definition: physics.h:268
std::vector< VariableIndex > _species_vars
Indices for each (owned) variable;.
bool GRINS::Physics::enabled_on_elem ( const libMesh::Elem *  elem)
virtualinherited

Find if current physics is active on supplied element.

Definition at line 83 of file physics.C.

References GRINS::Physics::_enabled_subdomains.

84  {
85  // Check if enabled_subdomains flag has been set and if we're
86  // looking at a real element (rather than a nonlocal evaluation)
87  if( !elem || _enabled_subdomains.empty() )
88  return true;
89 
90  // Check if current physics is enabled on elem
91  if( _enabled_subdomains.find( elem->subdomain_id() ) == _enabled_subdomains.end() )
92  return false;
93 
94  return true;
95  }
std::set< libMesh::subdomain_id_type > _enabled_subdomains
Subdomains on which the current Physics class is enabled.
Definition: physics.h:261
template<typename Mixture , typename Evaluator >
const Mixture & GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::gas_mixture ( ) const
inlineinherited
BCHandlingBase * GRINS::Physics::get_bc_handler ( )
inlineinherited

Definition at line 282 of file physics.h.

References GRINS::Physics::_bc_handler.

283  {
284  return _bc_handler;
285  }
GRINS::BCHandlingBase * _bc_handler
Definition: physics.h:256
ICHandlingBase * GRINS::Physics::get_ic_handler ( )
inlineinherited

Definition at line 288 of file physics.h.

References GRINS::Physics::_ic_handler.

289  {
290  return _ic_handler;
291  }
GRINS::ICHandlingBase * _ic_handler
Definition: physics.h:258
template<typename Mixture , typename Evaluator >
libMesh::Real GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::get_p0_steady ( const AssemblyContext c,
unsigned int  qp 
) const
inlineinherited

Definition at line 168 of file reacting_low_mach_navier_stokes_base.h.

170  {
171  libMesh::Real p0;
172  if( this->_enable_thermo_press_calc )
173  {
174  p0 = c.interior_value( _p0_var, qp );
175  }
176  else
177  {
178  p0 = _p0;
179  }
180  return p0;
181  }
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
template<typename Mixture , typename Evaluator >
libMesh::Real GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::get_p0_steady ( const AssemblyContext c,
const libMesh::Point &  p 
) const
inlineinherited

Definition at line 202 of file reacting_low_mach_navier_stokes_base.h.

204  {
205  libMesh::Real p0;
206  if( this->_enable_thermo_press_calc )
207  {
208  p0 = c.point_value( _p0_var, p );
209  }
210  else
211  {
212  p0 = _p0;
213  }
214  return p0;
215  }
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
template<typename Mixture , typename Evaluator >
libMesh::Real GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::get_p0_steady_side ( const AssemblyContext c,
unsigned int  qp 
) const
inlineinherited

Definition at line 185 of file reacting_low_mach_navier_stokes_base.h.

187  {
188  libMesh::Real p0;
189  if( this->_enable_thermo_press_calc )
190  {
191  p0 = c.side_value( _p0_var, qp );
192  }
193  else
194  {
195  p0 = _p0;
196  }
197  return p0;
198  }
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
template<typename Mixture , typename Evaluator >
libMesh::Real GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::get_p0_transient ( const AssemblyContext c,
unsigned int  qp 
) const
inlineinherited

Definition at line 219 of file reacting_low_mach_navier_stokes_base.h.

221  {
222  libMesh::Real p0;
223  if( this->_enable_thermo_press_calc )
224  {
225  p0 = c.fixed_interior_value( _p0_var, qp );
226  }
227  else
228  {
229  p0 = _p0;
230  }
231  return p0;
232  }
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
void GRINS::Physics::init_bcs ( libMesh::FEMSystem *  system)
inherited

Definition at line 118 of file physics.C.

References GRINS::Physics::_bc_handler, GRINS::BCHandlingBase::init_bc_data(), GRINS::BCHandlingBase::init_dirichlet_bc_func_objs(), GRINS::BCHandlingBase::init_dirichlet_bcs(), and GRINS::BCHandlingBase::init_periodic_bcs().

119  {
120  // Only need to init BC's if the physics actually created a handler
121  if( _bc_handler )
122  {
123  _bc_handler->init_bc_data( *system );
124  _bc_handler->init_dirichlet_bcs( system );
126  _bc_handler->init_periodic_bcs( system );
127  }
128 
129  return;
130  }
GRINS::BCHandlingBase * _bc_handler
Definition: physics.h:256
virtual void init_dirichlet_bcs(libMesh::FEMSystem *system) const
virtual void init_periodic_bcs(libMesh::FEMSystem *system) const
virtual void init_dirichlet_bc_func_objs(libMesh::FEMSystem *system) const
virtual void init_bc_data(const libMesh::FEMSystem &system)
Override this method to initialize any system-dependent data.
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::init_context ( AssemblyContext context)
virtual

Initialize context for added physics variables.

Reimplemented from GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >.

Definition at line 162 of file reacting_low_mach_navier_stokes.C.

References GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::init_context().

163  {
164  // First call base class
166 
167  // We also need the side shape functions, etc.
168  context.get_side_fe(this->_u_var)->get_JxW();
169  context.get_side_fe(this->_u_var)->get_phi();
170  context.get_side_fe(this->_u_var)->get_dphi();
171  context.get_side_fe(this->_u_var)->get_xyz();
172 
173  context.get_side_fe(this->_T_var)->get_JxW();
174  context.get_side_fe(this->_T_var)->get_phi();
175  context.get_side_fe(this->_T_var)->get_dphi();
176  context.get_side_fe(this->_T_var)->get_xyz();
177 
178  return;
179  }
virtual void init_context(AssemblyContext &context)
Initialize context for added physics variables.
void GRINS::Physics::init_ics ( libMesh::FEMSystem *  system,
libMesh::CompositeFunction< libMesh::Number > &  all_ics 
)
inherited

Definition at line 133 of file physics.C.

References GRINS::Physics::_ic_handler, and GRINS::ICHandlingBase::init_ic_data().

135  {
136  if( _ic_handler )
137  {
138  _ic_handler->init_ic_data( *system, all_ics );
139  }
140 
141  return;
142  }
GRINS::ICHandlingBase * _ic_handler
Definition: physics.h:258
virtual void init_ic_data(const libMesh::FEMSystem &system, libMesh::CompositeFunction< libMesh::Number > &all_ics)
Override this method to initialize any system-dependent data.
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::init_variables ( libMesh::FEMSystem *  system)
virtualinherited

Initialize variables for this physics.

Implements GRINS::Physics.

Definition at line 130 of file reacting_low_mach_navier_stokes_base.C.

131  {
132  // Get libMesh to assign an index for each variable
133  this->_dim = system->get_mesh().mesh_dimension();
134 
135  _species_vars.reserve(this->_n_species);
136  for( unsigned int i = 0; i < this->_n_species; i++ )
137  {
138  _species_vars.push_back( system->add_variable( _species_var_names[i],
139  this->_species_order, _species_FE_family) );
140  }
141 
142  _u_var = system->add_variable( _u_var_name, this->_V_order, _V_FE_family);
143  _v_var = system->add_variable( _v_var_name, this->_V_order, _V_FE_family);
144 
145  if (_dim == 3)
146  _w_var = system->add_variable( _w_var_name, this->_V_order, _V_FE_family);
147  else
148  _w_var = _u_var;
149 
150  _p_var = system->add_variable( _p_var_name, this->_P_order, _P_FE_family);
151  _T_var = system->add_variable( _T_var_name, this->_T_order, _T_FE_family);
152 
153  /* If we need to compute the thermodynamic pressure, we force this to be a first
154  order scalar variable. */
156  _p0_var = system->add_variable( _p0_var_name, libMesh::FIRST, libMesh::SCALAR);
157 
158  return;
159  }
std::vector< std::string > _species_var_names
Names of each (owned) variable in the system.
unsigned int _dim
Physical dimension of problem.
GRINSEnums::FEFamily _species_FE_family
Element type, read from input.
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
std::vector< VariableIndex > _species_vars
Indices for each (owned) variable;.
bool GRINS::Physics::is_steady ( ) const
inherited

Returns whether or not this physics is being solved with a steady solver.

Definition at line 103 of file physics.C.

References GRINS::Physics::_is_steady.

Referenced by GRINS::Physics::set_is_steady().

104  {
105  return _is_steady;
106  }
static bool _is_steady
Caches whether or not the solver that's being used is steady or not.
Definition: physics.h:266
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::mass_fractions ( const libMesh::Point &  p,
const AssemblyContext c,
std::vector< libMesh::Real > &  mass_fracs 
) const
inlineinherited

Definition at line 137 of file reacting_low_mach_navier_stokes_base.h.

140  {
141  libmesh_assert_equal_to(mass_fracs.size(), this->_n_species);
142 
143  for( unsigned int var = 0; var < this->_n_species; var++ )
144  {
145  mass_fracs[var] = c.point_value(_species_vars[var],p);
146  }
147 
148  return;
149  }
std::vector< VariableIndex > _species_vars
Indices for each (owned) variable;.
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::mass_residual ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Mass matrix part(s) for element interiors. All boundary terms lie within the time_derivative part.

Reimplemented from GRINS::Physics.

Definition at line 434 of file reacting_low_mach_navier_stokes.C.

437  {
438  libmesh_not_implemented();
439 
440  return;
441  }
template<typename Mixture , typename Evaluator >
unsigned int GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::n_species ( ) const
inlineinherited

Definition at line 125 of file reacting_low_mach_navier_stokes_base.h.

126  { return _n_species; }
void GRINS::Physics::nonlocal_constraint ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtualinherited

Constraint part(s) of physics for scalar variables.

Reimplemented in GRINS::ScalarODE.

Definition at line 250 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_constraint().

253  {
254  return;
255  }
void GRINS::Physics::nonlocal_mass_residual ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtualinherited

Mass matrix part(s) for scalar variables.

Reimplemented in GRINS::ScalarODE, and GRINS::AveragedTurbine< Viscosity >.

Definition at line 264 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_mass_residual().

267  {
268  return;
269  }
void GRINS::Physics::nonlocal_time_derivative ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtualinherited

Time dependent part(s) of physics for scalar variables.

Reimplemented in GRINS::AveragedTurbine< Viscosity >, and GRINS::ScalarODE.

Definition at line 229 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_time_derivative().

232  {
233  return;
234  }
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::read_input_options ( const GetPot &  input)
virtual

Read options from GetPot input file.

Reimplemented from GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >.

Definition at line 74 of file reacting_low_mach_navier_stokes.C.

References GRINS::reacting_low_mach_navier_stokes.

Referenced by GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::ReactingLowMachNavierStokes().

75  {
76  // Other quantities read in base class
77 
78  // Read pressure pinning information
79  this->_pin_pressure = input("Physics/"+reacting_low_mach_navier_stokes+"/pin_pressure", false );
80 
81  return;
82  }
const PhysicsName reacting_low_mach_navier_stokes
void GRINS::ParameterUser::register_parameter ( const std::string &  param_name,
libMesh::ParameterMultiPointer< libMesh::Number > &  param_pointer 
) const
virtualinherited

Each subclass will register its copy of an independent.

Reimplemented in GRINS::AxisymmetricHeatTransfer< Conductivity >, GRINS::LowMachNavierStokesBase< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::IncompressibleNavierStokesBase< Viscosity >, GRINS::BoussinesqBuoyancySPGSMStabilization< Viscosity >, GRINS::HeatConduction< Conductivity >, GRINS::HeatTransferBase< Conductivity >, and GRINS::BoussinesqBuoyancyAdjointStabilization< Viscosity >.

Definition at line 50 of file parameter_user.C.

Referenced by GRINS::BoussinesqBuoyancyAdjointStabilization< Viscosity >::register_parameter(), GRINS::HeatTransferBase< Conductivity >::register_parameter(), GRINS::HeatConduction< Conductivity >::register_parameter(), GRINS::BoussinesqBuoyancySPGSMStabilization< Viscosity >::register_parameter(), GRINS::IncompressibleNavierStokesBase< Viscosity >::register_parameter(), GRINS::LowMachNavierStokesBase< Viscosity, SpecificHeat, ThermalConductivity >::register_parameter(), and GRINS::AxisymmetricHeatTransfer< Conductivity >::register_parameter().

53  {
54  std::map<std::string, libMesh::Number*>::const_iterator it =
55  _my_parameters.find(param_name);
56 
57  if (it != _my_parameters.end())
58  {
59  std::cout << _my_name << " uses parameter " << param_name
60  << std::endl;
61  param_pointer.push_back(it->second);
62  }
63  }
std::map< std::string, libMesh::Number * > _my_parameters
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::register_postprocessing_vars ( const GetPot &  input,
PostProcessedQuantities< libMesh::Real > &  postprocessing 
)
virtual

Register postprocessing variables for ReactingLowMachNavierStokes.

Reimplemented from GRINS::Physics.

Definition at line 85 of file reacting_low_mach_navier_stokes.C.

References GRINS::reacting_low_mach_navier_stokes, and GRINS::PostProcessedQuantities< NumericType >::register_quantity().

87  {
88  std::string section = "Physics/"+reacting_low_mach_navier_stokes+"/output_vars";
89 
90  if( input.have_variable(section) )
91  {
92  unsigned int n_vars = input.vector_variable_size(section);
93 
94  for( unsigned int v = 0; v < n_vars; v++ )
95  {
96  std::string name = input(section,"DIE!",v);
97 
98  if( name == std::string("rho") )
99  {
100  this->_rho_index = postprocessing.register_quantity( name );
101  }
102  else if( name == std::string("mu") )
103  {
104  this->_mu_index = postprocessing.register_quantity( name );
105  }
106  else if( name == std::string("k") )
107  {
108  this->_k_index = postprocessing.register_quantity( name );
109  }
110  else if( name == std::string("cp") )
111  {
112  this->_cp_index = postprocessing.register_quantity( name );
113  }
114  else if( name == std::string("mole_fractions") )
115  {
116  this->_mole_fractions_index.resize(this->n_species());
117 
118  for( unsigned int s = 0; s < this->n_species(); s++ )
119  {
120  this->_mole_fractions_index[s] = postprocessing.register_quantity( "X_"+this->_gas_mixture.species_name(s) );
121  }
122  }
123  else if( name == std::string("h_s") )
124  {
125  this->_h_s_index.resize(this->n_species());
126 
127  for( unsigned int s = 0; s < this->n_species(); s++ )
128  {
129  this->_h_s_index[s] = postprocessing.register_quantity( "h_"+this->_gas_mixture.species_name(s) );
130  }
131  }
132  else if( name == std::string("omega_dot") )
133  {
134  this->_omega_dot_index.resize(this->n_species());
135 
136  for( unsigned int s = 0; s < this->n_species(); s++ )
137  {
138  this->_omega_dot_index[s] = postprocessing.register_quantity( "omega_dot_"+this->_gas_mixture.species_name(s) );
139  }
140 
141  std::cout << "omega_dot size = " << _omega_dot_index.size() << std::endl;
142  }
143  else
144  {
145  std::cerr << "Error: Invalue output_vars value for "+reacting_low_mach_navier_stokes << std::endl
146  << " Found " << name << std::endl
147  << " Acceptable values are: rho" << std::endl
148  << " mu" << std::endl
149  << " k" << std::endl
150  << " cp" << std::endl
151  << " mole_fractions" << std::endl
152  << " omega_dot" << std::endl;
153  libmesh_error();
154  }
155  }
156  }
157 
158  return;
159  }
std::vector< unsigned int > _mole_fractions_index
Index from registering this quantity. Each species will have it's own index.
unsigned int _k_index
Index from registering this quantity.
const PhysicsName reacting_low_mach_navier_stokes
unsigned int _mu_index
Index from registering this quantity.
std::vector< unsigned int > _omega_dot_index
Index from registering this quantity. Each species will have it's own index.
unsigned int _rho_index
Index from registering this quantity.
std::vector< unsigned int > _h_s_index
Index from registering this quantity. Each species will have it's own index.
unsigned int _cp_index
Index from registering this quantity.
template<typename Mixture , typename Evaluator >
libMesh::Real GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::rho ( libMesh::Real  T,
libMesh::Real  p0,
libMesh::Real  R_mix 
) const
inlineinherited

Definition at line 153 of file reacting_low_mach_navier_stokes_base.h.

156  {
157  libMesh::Real value = 0;
158  if( this->_fixed_density )
159  value = this->_fixed_rho_value;
160  else
161  value = p0/(R_mix*T);
162 
163  return value;
164  }
libMesh::Real T(const libMesh::Point &p, const AssemblyContext &c) const
void GRINS::Physics::set_is_steady ( bool  is_steady)
inherited

Sets whether this physics is to be solved with a steady solver or not.

Since the member variable is static, only needs to be called on a single physics.

Definition at line 97 of file physics.C.

References GRINS::Physics::_is_steady, and GRINS::Physics::is_steady().

98  {
100  return;
101  }
bool is_steady() const
Returns whether or not this physics is being solved with a steady solver.
Definition: physics.C:103
static bool _is_steady
Caches whether or not the solver that's being used is steady or not.
Definition: physics.h:266
void GRINS::ParameterUser::set_parameter ( libMesh::Number &  param_variable,
const GetPot &  input,
const std::string &  param_name,
libMesh::Number  param_default 
)
virtualinherited

Each subclass can simultaneously read a parameter value from.

Definition at line 35 of file parameter_user.C.

References GRINS::ParameterUser::_my_name, and GRINS::ParameterUser::_my_parameters.

Referenced by GRINS::AveragedFanAdjointStabilization< Viscosity >::AveragedFanAdjointStabilization(), GRINS::AveragedTurbineAdjointStabilization< Viscosity >::AveragedTurbineAdjointStabilization(), GRINS::BoussinesqBuoyancyAdjointStabilization< Viscosity >::BoussinesqBuoyancyAdjointStabilization(), GRINS::BoussinesqBuoyancyBase::BoussinesqBuoyancyBase(), GRINS::BoussinesqBuoyancySPGSMStabilization< Viscosity >::BoussinesqBuoyancySPGSMStabilization(), GRINS::ConstantConductivity::ConstantConductivity(), GRINS::ConstantPrandtlConductivity::ConstantPrandtlConductivity(), GRINS::ConstantSourceFunction::ConstantSourceFunction(), GRINS::ConstantSourceTerm::ConstantSourceTerm(), GRINS::ConstantSpecificHeat::ConstantSpecificHeat(), GRINS::ConstantViscosity::ConstantViscosity(), GRINS::ElasticCable< StressStrainLaw >::ElasticCable(), GRINS::ElasticCableConstantGravity::ElasticCableConstantGravity(), GRINS::ElasticMembrane< StressStrainLaw >::ElasticMembrane(), GRINS::ElasticMembraneConstantPressure::ElasticMembraneConstantPressure(), GRINS::HeatConduction< Conductivity >::HeatConduction(), GRINS::HeatTransferBase< Conductivity >::HeatTransferBase(), GRINS::IncompressibleNavierStokesBase< Viscosity >::IncompressibleNavierStokesBase(), GRINS::AverageNusseltNumber::init(), GRINS::MooneyRivlin::MooneyRivlin(), GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::ReactingLowMachNavierStokesBase(), GRINS::HookesLaw1D::read_input_options(), GRINS::HookesLaw::read_input_options(), GRINS::AxisymmetricBoussinesqBuoyancy::read_input_options(), and GRINS::VelocityDragAdjointStabilization< Viscosity >::VelocityDragAdjointStabilization().

39  {
40  param_variable = input(param_name, param_default);
41 
42  libmesh_assert_msg(!_my_parameters.count(param_name),
43  "ERROR: " << _my_name << " double-registered parameter " <<
44  param_name);
45 
46  _my_parameters[param_name] = &param_variable;
47  }
std::map< std::string, libMesh::Number * > _my_parameters
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::set_time_evolving_vars ( libMesh::FEMSystem *  system)
virtualinherited

Sets velocity variables to be time-evolving.

Reimplemented from GRINS::Physics.

Definition at line 162 of file reacting_low_mach_navier_stokes_base.C.

163  {
164  const unsigned int dim = system->get_mesh().mesh_dimension();
165 
166  for( unsigned int i = 0; i < this->_n_species; i++ )
167  {
168  system->time_evolving( _species_vars[i] );
169  }
170 
171  system->time_evolving(_u_var);
172  system->time_evolving(_v_var);
173 
174  if (dim == 3)
175  system->time_evolving(_w_var);
176 
177  system->time_evolving(_T_var);
178  system->time_evolving(_p_var);
179 
181  system->time_evolving(_p0_var);
182 
183  return;
184  }
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
std::vector< VariableIndex > _species_vars
Indices for each (owned) variable;.
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::side_constraint ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Constraint part(s) of physics for boundaries of elements on the domain boundary.

Reimplemented from GRINS::Physics.

Definition at line 420 of file reacting_low_mach_navier_stokes.C.

423  {
424  // Pin p = p_value at p_point
425  if( this->_pin_pressure )
426  {
427  _p_pinning.pin_value( context, compute_jacobian, this->_p_var );
428  }
429 
430  return;
431  }
void pin_value(libMesh::DiffContext &context, const bool request_jacobian, const GRINS::VariableIndex var, const double penalty=1.0)
The idea here is to pin a variable to a particular value if there is a null space - e...
template<typename Mixture , typename Evaluator >
void GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::side_time_derivative ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Time dependent part(s) of physics for boundaries of elements on the domain boundary.

Todo:
Need to implement thermodynamic pressure calcuation for cases where it's needed.

Reimplemented from GRINS::Physics.

Definition at line 400 of file reacting_low_mach_navier_stokes.C.

403  {
406  std::vector<BoundaryID> ids = context.side_boundary_ids();
407 
408  for( std::vector<BoundaryID>::const_iterator it = ids.begin();
409  it != ids.end(); it++ )
410  {
411  libmesh_assert (*it != libMesh::BoundaryInfo::invalid_id);
412 
413  this->_bc_handler->apply_neumann_bcs( context, cache, compute_jacobian, *it );
414  }
415 
416  return;
417  }
GRINS::BCHandlingBase * _bc_handler
Definition: physics.h:256
virtual void apply_neumann_bcs(AssemblyContext &context, const GRINS::CachedValues &cache, const bool request_jacobian, const GRINS::BoundaryID bc_id) const
template<typename Mixture , typename Evaluator >
libMesh::Real GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::T ( const libMesh::Point &  p,
const AssemblyContext c 
) const
inlineinherited

Definition at line 131 of file reacting_low_mach_navier_stokes_base.h.

133  { return c.point_value(_T_var,p); }

Member Data Documentation

GRINS::BCHandlingBase* GRINS::Physics::_bc_handler
protectedinherited
template<typename Mixture, typename Evaluator>
unsigned int GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_cp_index
protected

Index from registering this quantity.

Definition at line 103 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
unsigned int GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_dim
protectedinherited

Physical dimension of problem.

Definition at line 83 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
bool GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_enable_thermo_press_calc
protectedinherited

Flag to enable thermodynamic pressure calculation.

Definition at line 111 of file reacting_low_mach_navier_stokes_base.h.

std::set<libMesh::subdomain_id_type> GRINS::Physics::_enabled_subdomains
protectedinherited

Subdomains on which the current Physics class is enabled.

Definition at line 261 of file physics.h.

Referenced by GRINS::Physics::enabled_on_elem(), and GRINS::Physics::read_input_options().

template<typename Mixture, typename Evaluator>
bool GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_fixed_density
protectedinherited

Definition at line 113 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
libMesh::Real GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_fixed_rho_value
protectedinherited
template<typename Mixture, typename Evaluator>
libMesh::Point GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_g
protectedinherited

Gravity vector.

Definition at line 108 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
Mixture GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_gas_mixture
protectedinherited
template<typename Mixture, typename Evaluator>
std::vector<unsigned int> GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_h_s_index
protected

Index from registering this quantity. Each species will have it's own index.

Definition at line 109 of file reacting_low_mach_navier_stokes.h.

GRINS::ICHandlingBase* GRINS::Physics::_ic_handler
protectedinherited
bool GRINS::Physics::_is_axisymmetric
protectedinherited
bool GRINS::Physics::_is_steady = false
staticprotectedinherited

Caches whether or not the solver that's being used is steady or not.

This is need, for example, in flow stabilization as the tau terms change depending on whether the solver is steady or unsteady.

Definition at line 266 of file physics.h.

Referenced by GRINS::Physics::is_steady(), and GRINS::Physics::set_is_steady().

template<typename Mixture, typename Evaluator>
unsigned int GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_k_index
protected

Index from registering this quantity.

Definition at line 100 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
std::vector<unsigned int> GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_mole_fractions_index
protected

Index from registering this quantity. Each species will have it's own index.

Definition at line 106 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
unsigned int GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_mu_index
protected

Index from registering this quantity.

Definition at line 97 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
unsigned int GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_n_species
protectedinherited

Number of species.

Definition at line 86 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::vector<unsigned int> GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_omega_dot_index
protected

Index from registering this quantity. Each species will have it's own index.

Definition at line 112 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
libMesh::Number GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_p0
protectedinherited

Definition at line 80 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
VariableIndex GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_p0_var
protectedinherited

Definition at line 95 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::string GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_p0_var_name
protectedinherited

Definition at line 99 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
GRINSEnums::FEFamily GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_P_FE_family
protectedinherited

Definition at line 102 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
GRINSEnums::Order GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_P_order
protectedinherited

Definition at line 105 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
PressurePinning GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_p_pinning
protected

Definition at line 88 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
VariableIndex GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_p_var
protectedinherited

Definition at line 93 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::string GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_p_var_name
protectedinherited

Definition at line 99 of file reacting_low_mach_navier_stokes_base.h.

const PhysicsName GRINS::Physics::_physics_name
protectedinherited

Name of the physics object. Used for reading physics specific inputs.

We use a reference because the physics names are const global objects in GRINS namespace

No, we use a copy, because otherwise as soon as the memory in std::set<std::string> requested_physics gets overwritten we get in trouble.

Definition at line 254 of file physics.h.

Referenced by GRINS::SourceTermBase::parse_var_info(), and GRINS::Physics::read_input_options().

template<typename Mixture, typename Evaluator>
bool GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_pin_pressure
protected

Enable pressure pinning.

Definition at line 86 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
unsigned int GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_rho_index
protected

Index from registering this quantity.

Definition at line 91 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
GRINSEnums::FEFamily GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_species_FE_family
protectedinherited

Element type, read from input.

Definition at line 102 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
GRINSEnums::Order GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_species_order
protectedinherited

Element orders, read from input.

Definition at line 105 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::vector<std::string> GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_species_var_names
protectedinherited

Names of each (owned) variable in the system.

Definition at line 98 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::vector<VariableIndex> GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_species_vars
protectedinherited

Indices for each (owned) variable;.

Definition at line 89 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::vector<unsigned int> GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >::_species_viscosity
protected

Index from registering this quantity. Each species will have it's own index.

Definition at line 94 of file reacting_low_mach_navier_stokes.h.

template<typename Mixture, typename Evaluator>
GRINSEnums::FEFamily GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_T_FE_family
protectedinherited

Definition at line 102 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
GRINSEnums::Order GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_T_order
protectedinherited

Definition at line 105 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
VariableIndex GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_T_var
protectedinherited

Definition at line 94 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::string GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_T_var_name
protectedinherited

Definition at line 99 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
VariableIndex GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_u_var
protectedinherited

Definition at line 90 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::string GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_u_var_name
protectedinherited

Definition at line 99 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
GRINSEnums::FEFamily GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_V_FE_family
protectedinherited

Definition at line 102 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
GRINSEnums::Order GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_V_order
protectedinherited

Definition at line 105 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
VariableIndex GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_v_var
protectedinherited

Definition at line 91 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::string GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_v_var_name
protectedinherited

Definition at line 99 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
VariableIndex GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_w_var
protectedinherited

Definition at line 92 of file reacting_low_mach_navier_stokes_base.h.

template<typename Mixture, typename Evaluator>
std::string GRINS::ReactingLowMachNavierStokesBase< Mixture, Evaluator >::_w_var_name
protectedinherited

Definition at line 99 of file reacting_low_mach_navier_stokes_base.h.


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

Generated on Mon Jun 22 2015 21:32:24 for GRINS-0.6.0 by  doxygen 1.8.9.1