GRINS-0.7.0
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
GRINS::AntiochMixture Class Reference

Wrapper class for storing state for Antioch thermo and kinetics. More...

#include <antioch_mixture.h>

Inheritance diagram for GRINS::AntiochMixture:
Inheritance graph
[legend]
Collaboration diagram for GRINS::AntiochMixture:
Collaboration graph
[legend]

Public Member Functions

 AntiochMixture (const GetPot &input, const std::string &material)
 
virtual ~AntiochMixture ()
 
virtual void register_parameter (const std::string &param_name, libMesh::ParameterMultiAccessor< libMesh::Number > &param_pointer) const
 Each subclass will register its copy of an independent. More...
 
const Antioch::ReactionSet< libMesh::Real > & reaction_set () const
 
const Antioch::CEAThermoMixture< libMesh::Real > & cea_mixture () const
 
libMesh::Real h_stat_mech_ref_correction (unsigned int species) const
 
- Public Member Functions inherited from GRINS::AntiochChemistry
 AntiochChemistry (const GetPot &input, const std::string &material)
 
virtual ~AntiochChemistry ()
 
libMesh::Real M (unsigned int species) const
 Species molar mass (molecular weight), [kg/mol]. More...
 
libMesh::Real M_mix (const std::vector< libMesh::Real > &mass_fractions) const
 Mixture molar mass (molecular weight), [kg/mol]. More...
 
libMesh::Real R (unsigned int species) const
 Species gas constant, [J/kg-K]. More...
 
libMesh::Real R_mix (const std::vector< libMesh::Real > &mass_fractions) const
 Mixture gas constant, [J/kg-K]. More...
 
libMesh::Real X (unsigned int species, libMesh::Real M, libMesh::Real mass_fraction) const
 Species mole fraction, unitless. More...
 
void X (libMesh::Real M, const std::vector< libMesh::Real > &mass_fractions, std::vector< libMesh::Real > &mole_fractions) const
 Mole fraction for all species, unitless. More...
 
libMesh::Real molar_density (const unsigned int species, const libMesh::Real rho, const libMesh::Real mass_fraction) const
 Species molar density, [mol/m^3]. More...
 
void molar_densities (const libMesh::Real rho, const std::vector< libMesh::Real > &mass_fractions, std::vector< libMesh::Real > &molar_densities) const
 Molar density for all species, [mol/m^3]. More...
 
unsigned int n_species () const
 
unsigned int species_index (const std::string &species_name) const
 
std::string species_name (unsigned int species_index) const
 
const Antioch::ChemicalMixture< libMesh::Real > & chemical_mixture () const
 Accessor to underlying Antioch object. More...
 
const AntiochChemistrychemistry () const
 Accessor for this class. More...
 
- Public Member Functions inherited from GRINS::ParameterUser
 ParameterUser (const std::string &user_name)
 
virtual ~ParameterUser ()
 
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 set_parameter (libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &func, const GetPot &input, const std::string &func_param_name, const std::string &param_default)
 Each subclass can simultaneously read a parsed function from. More...
 
virtual void set_parameter (libMesh::ParsedFEMFunction< libMesh::Number > &func, const GetPot &input, const std::string &func_param_name, const std::string &param_default)
 Each subclass can simultaneously read a parsed function from. More...
 
virtual void move_parameter (const libMesh::Number &old_parameter, libMesh::Number &new_parameter)
 When cloning an object, we need to update parameter pointers. More...
 
virtual void move_parameter (const libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &old_func, libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &new_func)
 When cloning an object, we need to update parameter pointers. More...
 
virtual void move_parameter (const libMesh::ParsedFEMFunction< libMesh::Number > &old_func, libMesh::ParsedFEMFunction< libMesh::Number > &new_func)
 When cloning an object, we need to update parameter pointers. More...
 

Protected Member Functions

void build_stat_mech_ref_correction ()
 

Protected Attributes

libMesh::UniquePtr< Antioch::ReactionSet< libMesh::Real > > _reaction_set
 
libMesh::UniquePtr< Antioch::CEAThermoMixture< libMesh::Real > > _cea_mixture
 
std::vector< libMesh::Real > _h_stat_mech_ref_correction
 
- Protected Attributes inherited from GRINS::AntiochChemistry
libMesh::UniquePtr< Antioch::ChemicalMixture< libMesh::Real > > _antioch_gas
 

Private Member Functions

 AntiochMixture ()
 

Additional Inherited Members

- Static Public Attributes inherited from GRINS::ParameterUser
static std::string zero_vector_function = std::string("{0}")
 A parseable function string with LIBMESH_DIM components, all 0. More...
 

Detailed Description

Wrapper class for storing state for Antioch thermo and kinetics.

This class is expected to be constructed before threads have been forked and will live during the whole program. By default, Antioch is working in SI units. Note that this documentation will always be built regardless if Antioch is included in the GRINS build or not. Check configure output to confirm that Antioch was included in the build.

Definition at line 60 of file antioch_mixture.h.

Constructor & Destructor Documentation

GRINS::AntiochMixture::AntiochMixture ( const GetPot &  input,
const std::string &  material 
)

Definition at line 48 of file antioch_mixture.C.

References _cea_mixture, _reaction_set, build_stat_mech_ref_correction(), and GRINS::MaterialsParsing::parse_chemical_kinetics_datafile_name().

50  : AntiochChemistry(input,material),
51  _reaction_set( new Antioch::ReactionSet<libMesh::Real>( (*_antioch_gas.get()) ) ),
52  _cea_mixture( new Antioch::CEAThermoMixture<libMesh::Real>( (*_antioch_gas.get()) ) )
53  {
54  std::string kinetics_data_filename = MaterialsParsing::parse_chemical_kinetics_datafile_name( input, material );
55 
56  bool verbose_read = input("screen-options/verbose_kinetics_read", false );
57 
58  Antioch::read_reaction_set_data_xml<libMesh::Real>( kinetics_data_filename, verbose_read, *_reaction_set.get() );
59 
60  std::string cea_data_filename = input( "Materials/"+material+"/GasMixture/Antioch/cea_data", "default" );
61  if( cea_data_filename == std::string("default") )
62  cea_data_filename = Antioch::DefaultInstallFilename::thermo_data();
63 
64  Antioch::read_cea_mixture_data_ascii( *_cea_mixture.get(), cea_data_filename );
65 
67  }
libMesh::UniquePtr< Antioch::ChemicalMixture< libMesh::Real > > _antioch_gas
libMesh::UniquePtr< Antioch::ReactionSet< libMesh::Real > > _reaction_set
void build_stat_mech_ref_correction()
libMesh::UniquePtr< Antioch::CEAThermoMixture< libMesh::Real > > _cea_mixture
static std::string parse_chemical_kinetics_datafile_name(const GetPot &input, const std::string &material)
virtual GRINS::AntiochMixture::~AntiochMixture ( )
inlinevirtual

Definition at line 66 of file antioch_mixture.h.

66 {};
GRINS::AntiochMixture::AntiochMixture ( )
private

Member Function Documentation

void GRINS::AntiochMixture::build_stat_mech_ref_correction ( )
protected

Definition at line 85 of file antioch_mixture.C.

References GRINS::AntiochChemistry::_antioch_gas, _h_stat_mech_ref_correction, and GRINS::AntiochChemistry::n_species().

Referenced by AntiochMixture().

86  {
87  Antioch::StatMechThermodynamics<libMesh::Real> thermo( *(this->_antioch_gas.get()) );
88 
89  _h_stat_mech_ref_correction.resize(this->n_species());
90 
91  for( unsigned int s = 0; s < this->n_species(); s++ )
92  {
93  _h_stat_mech_ref_correction[s] = -thermo.h_tot( s, 298.15 ) + thermo.e_0(s);
94  }
95  }
libMesh::UniquePtr< Antioch::ChemicalMixture< libMesh::Real > > _antioch_gas
unsigned int n_species() const
std::vector< libMesh::Real > _h_stat_mech_ref_correction
const Antioch::CEAThermoMixture< libMesh::Real > & GRINS::AntiochMixture::cea_mixture ( ) const
inline

Definition at line 105 of file antioch_mixture.h.

References _cea_mixture.

Referenced by GRINS::AntiochEvaluator< Thermo >::specialized_build_thermo(), and GRINS::AntiochMixtureAveragedTransportMixture< Thermo, Viscosity, Conductivity, Diffusivity >::specialized_build_thermo().

106  {
107  return *_cea_mixture.get();
108  }
libMesh::UniquePtr< Antioch::CEAThermoMixture< libMesh::Real > > _cea_mixture
libMesh::Real GRINS::AntiochMixture::h_stat_mech_ref_correction ( unsigned int  species) const
inline

Definition at line 111 of file antioch_mixture.h.

References _h_stat_mech_ref_correction.

112  {
113  return _h_stat_mech_ref_correction[species];
114  }
std::vector< libMesh::Real > _h_stat_mech_ref_correction
const Antioch::ReactionSet< libMesh::Real > & GRINS::AntiochMixture::reaction_set ( ) const
inline

Definition at line 99 of file antioch_mixture.h.

References _reaction_set.

100  {
101  return *_reaction_set.get();
102  }
libMesh::UniquePtr< Antioch::ReactionSet< libMesh::Real > > _reaction_set
void GRINS::AntiochMixture::register_parameter ( const std::string &  param_name,
libMesh::ParameterMultiAccessor< libMesh::Number > &  param_pointer 
) const
virtual

Each subclass will register its copy of an independent.

Reimplemented from GRINS::ParameterUser.

Definition at line 70 of file antioch_mixture.C.

References GRINS::ParameterUser::register_parameter().

73  {
74  // Use common code for any GRINS parameters
75  AntiochChemistry::register_parameter(param_name, param_pointer);
76 
77  // Create a special setter/getter for any Antioch-only parameters
78  if (param_name.find("Antioch") == 0) // name starts with Antioch
79  param_pointer.push_back
80  (ParameterAntiochReset
81  (*this->_reaction_set.get(), param_name));
82  }
libMesh::UniquePtr< Antioch::ReactionSet< libMesh::Real > > _reaction_set
virtual void register_parameter(const std::string &param_name, libMesh::ParameterMultiAccessor< libMesh::Number > &param_pointer) const
Each subclass will register its copy of an independent.

Member Data Documentation

libMesh::UniquePtr<Antioch::CEAThermoMixture<libMesh::Real> > GRINS::AntiochMixture::_cea_mixture
protected

Definition at line 85 of file antioch_mixture.h.

Referenced by AntiochMixture(), and cea_mixture().

std::vector<libMesh::Real> GRINS::AntiochMixture::_h_stat_mech_ref_correction
protected

Definition at line 87 of file antioch_mixture.h.

Referenced by build_stat_mech_ref_correction(), and h_stat_mech_ref_correction().

libMesh::UniquePtr<Antioch::ReactionSet<libMesh::Real> > GRINS::AntiochMixture::_reaction_set
protected

Definition at line 83 of file antioch_mixture.h.

Referenced by AntiochMixture(), and reaction_set().


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

Generated on Thu Jun 2 2016 21:52:30 for GRINS-0.7.0 by  doxygen 1.8.10