26 #ifndef GRINS_ANTIOCH_EVALUATOR_H 
   27 #define GRINS_ANTIOCH_EVALUATOR_H 
   29 #include "grins_config.h" 
   31 #ifdef GRINS_HAVE_ANTIOCH 
   40 #include "antioch/temp_cache.h" 
   41 #include "antioch/cea_evaluator.h" 
   42 #include "antioch/stat_mech_thermo.h" 
   54   template<
typename Thermo>
 
   64     libMesh::Real 
M( 
unsigned int species ) 
const;
 
   66     libMesh::Real 
M_mix( 
const std::vector<libMesh::Real>& mass_fractions ) 
const;
 
   68     libMesh::Real 
R( 
unsigned int species ) 
const;
 
   70     libMesh::Real 
R_mix( 
const std::vector<libMesh::Real>& mass_fractions ) 
const;
 
   72     libMesh::Real 
X( 
unsigned int species, libMesh::Real 
M, libMesh::Real mass_fraction ) 
const;
 
   74     void X( libMesh::Real 
M, 
const std::vector<libMesh::Real>& mass_fractions, 
 
   75             std::vector<libMesh::Real>& mole_fractions ) 
const;
 
   82     libMesh::Real 
cp( 
const libMesh::Real& T, 
const libMesh::Real P, 
const std::vector<libMesh::Real>& Y );
 
   84     libMesh::Real 
cv( 
const libMesh::Real& T, 
const libMesh::Real P, 
const std::vector<libMesh::Real>& Y );
 
   86     libMesh::Real 
h_s( 
const libMesh::Real& T, 
unsigned int species );
 
   89     void omega_dot( 
const libMesh::Real& T, libMesh::Real rho,
 
   90                     const std::vector<libMesh::Real> mass_fractions,
 
  102     libMesh::UniquePtr<Antioch::TempCache<libMesh::Real> > 
_temp_cache;
 
  121                                    libMesh::UniquePtr<Antioch::StatMechThermodynamics<libMesh::Real> >& thermo,
 
  122                                    thermo_type<Antioch::StatMechThermodynamics<libMesh::Real> > )
 
  124       thermo.reset( 
new Antioch::StatMechThermodynamics<libMesh::Real>( mixture.
chemical_mixture() ) );
 
  129                                    libMesh::UniquePtr<Antioch::CEAEvaluator<libMesh::Real> >& thermo,
 
  130                                    thermo_type<Antioch::CEAEvaluator<libMesh::Real> > )
 
  132       thermo.reset( 
new Antioch::CEAEvaluator<libMesh::Real>( mixture.
cea_mixture() ) );
 
  139   template<
typename Thermo>
 
  143     return _chem.M(species);
 
  146   template<
typename Thermo>
 
  150     return _chem.M_mix(mass_fractions);
 
  153   template<
typename Thermo>
 
  157     return _chem.R(species);
 
  160   template<
typename Thermo>
 
  164     return _chem.R_mix(mass_fractions);
 
  167   template<
typename Thermo>
 
  171     return _chem.X(species,M,mass_fraction);
 
  174   template<
typename Thermo>
 
  177                                     std::vector<libMesh::Real>& mole_fractions )
 const 
  179     _chem.X(M,mass_fractions,mole_fractions);
 
  183   template<
typename Thermo>
 
  187     return _chem.species_index(species_name);
 
  190   template<
typename Thermo>
 
  194     return _chem.species_name(species_index);
 
  197   template<
typename Thermo>
 
  203     if( _temp_cache->T2 != T*T )
 
  204       _temp_cache.reset( 
new Antioch::TempCache<libMesh::Real>(T) );
 
  209 #endif // GRINS_HAVE_ANTIOCH 
  211 #endif // GRINS_ANTIOCH_EVALUATOR_H 
void check_and_reset_temp_cache(const libMesh::Real &T)
Helper method for managing _temp_cache. 
 
libMesh::Real cv(const libMesh::Real &T, const libMesh::Real P, const std::vector< libMesh::Real > &Y)
 
libMesh::Real cp(const libMesh::Real &T, const libMesh::Real P, const std::vector< libMesh::Real > &Y)
 
virtual ~AntiochEvaluator()
 
Wrapper class for evaluating chemistry and thermo properties using Antioch. 
 
libMesh::UniquePtr< AntiochKinetics > _kinetics
 
const Antioch::ChemicalMixture< libMesh::Real > & chemical_mixture() const 
Accessor to underlying Antioch object. 
 
void specialized_build_thermo(const AntiochMixture &mixture, libMesh::UniquePtr< Antioch::CEAEvaluator< libMesh::Real > > &thermo, thermo_type< Antioch::CEAEvaluator< libMesh::Real > >)
 
void specialized_build_thermo(const AntiochMixture &mixture, libMesh::UniquePtr< Antioch::StatMechThermodynamics< libMesh::Real > > &thermo, thermo_type< Antioch::StatMechThermodynamics< libMesh::Real > >)
 
const Antioch::CEAThermoMixture< libMesh::Real > & cea_mixture() const 
 
libMesh::Real h_s(const libMesh::Real &T, unsigned int species)
 
libMesh::UniquePtr< Antioch::TempCache< libMesh::Real > > _temp_cache
 
libMesh::Real R_mix(const std::vector< libMesh::Real > &mass_fractions) const 
 
void omega_dot(const libMesh::Real &T, libMesh::Real rho, const std::vector< libMesh::Real > mass_fractions, std::vector< libMesh::Real > &omega_dot)
 
libMesh::Real M(unsigned int species) const 
 
std::string species_name(unsigned int species_index) const 
 
unsigned int species_index(const std::string &species_name) const 
 
const AntiochMixture & _chem
 
libMesh::UniquePtr< Thermo > _thermo
 
Wrapper class for storing state for Antioch thermo and kinetics. 
 
libMesh::Real X(unsigned int species, libMesh::Real M, libMesh::Real mass_fraction) const 
 
libMesh::Real M_mix(const std::vector< libMesh::Real > &mass_fractions) const 
 
void build_thermo(const AntiochMixture &mixture)
 
libMesh::Real R(unsigned int species) const