26 #ifndef GRINS_WILKE_ANTIOCH_TRANSPORT_MIXTURE_H
27 #define GRINS_WILKE_ANTIOCH_TRANSPORT_MIXTURE_H
29 #include "grins_config.h"
31 #ifdef GRINS_HAVE_ANTIOCH
38 #include "libmesh/libmesh_common.h"
39 #include "libmesh/getpot.h"
42 #include "antioch/vector_utils_decl.h"
43 #include "antioch/vector_utils.h"
44 #include "antioch/cea_evaluator.h"
45 #include "antioch/stat_mech_thermo.h"
46 #include "antioch/wilke_mixture.h"
47 #include "antioch/mixture_viscosity.h"
48 #include "antioch/sutherland_viscosity.h"
49 #include "antioch/blottner_viscosity.h"
50 #include "antioch/sutherland_parsing.h"
51 #include "antioch/blottner_parsing.h"
52 #include "antioch/eucken_thermal_conductivity.h"
53 #include "antioch/constant_lewis_diffusivity.h"
71 template<
typename Thermo,
typename Viscosity,
typename Conductivity,
typename Diffusivity>
80 const Antioch::WilkeMixture<libMesh::Real>&
wilke_mixture()
const;
123 boost::scoped_ptr<Antioch::StatMechThermodynamics<libMesh::Real> >& thermo,
124 thermo_type<Antioch::StatMechThermodynamics<libMesh::Real> > )
126 thermo.reset(
new Antioch::StatMechThermodynamics<libMesh::Real>( *(this->
_antioch_gas.get()) ) );
131 boost::scoped_ptr<Antioch::CEAEvaluator<libMesh::Real> >& thermo,
132 thermo_type<Antioch::CEAEvaluator<libMesh::Real> > )
134 thermo.reset(
new Antioch::CEAEvaluator<libMesh::Real>( this->
cea_mixture() ) );
139 boost::scoped_ptr<Antioch::MixtureViscosity<Antioch::SutherlandViscosity<libMesh::Real> > >& viscosity,
140 viscosity_type<Antioch::MixtureViscosity<Antioch::SutherlandViscosity<libMesh::Real> > > )
142 viscosity.reset(
new Antioch::MixtureViscosity<Antioch::SutherlandViscosity<libMesh::Real> >( *(this->
_antioch_gas.get()) ) );
144 Antioch::read_sutherland_data_ascii_default( *(viscosity.get()) );
149 boost::scoped_ptr<Antioch::MixtureViscosity<Antioch::BlottnerViscosity<libMesh::Real> > >& viscosity,
150 viscosity_type<Antioch::MixtureViscosity<Antioch::BlottnerViscosity<libMesh::Real> > > )
152 viscosity.reset(
new Antioch::MixtureViscosity<Antioch::BlottnerViscosity<libMesh::Real> >( *(this->
_antioch_gas.get()) ) );
154 Antioch::read_blottner_data_ascii_default( *(viscosity.get()) );
159 boost::scoped_ptr<Antioch::EuckenThermalConductivity<Thermo> >& conductivity,
162 conductivity.reset(
new Antioch::EuckenThermalConductivity<Thermo>( *_thermo.get() ) );
167 boost::scoped_ptr<Antioch::ConstantLewisDiffusivity<libMesh::Real> >& diffusivity,
170 if( !input.have_variable(
"Physics/Antioch/Le" ) )
172 std::cerr <<
"Error: Must provide Lewis number for constant_lewis diffusivity model."
178 const libMesh::Real Le = input(
"Physics/Antioch/Le", 0.0 );
180 diffusivity.reset(
new Antioch::ConstantLewisDiffusivity<libMesh::Real>( Le ) );
188 template<
typename T,
typename V,
typename C,
typename D>
192 return _wilke_mixture;
195 template<
typename T,
typename Viscosity,
typename C,
typename D>
199 return *_viscosity.get();
202 template<
typename T,
typename V,
typename Conductivity,
typename D>
206 return *_conductivity.get();
209 template<
typename T,
typename V,
typename C,
typename Diffusivity>
213 return *_diffusivity.get();
218 #endif // GRINS_HAVE_ANTIOCH
220 #endif // GRINS_WILKE_ANTIOCH_TRANSPORT_MIXTURE_H
void specialized_build_thermo(const GetPot &, boost::scoped_ptr< Antioch::CEAEvaluator< libMesh::Real > > &thermo, thermo_type< Antioch::CEAEvaluator< libMesh::Real > >)
AntiochWilkeTransportMixture()
void build_thermo(const GetPot &input)
Wrapper class for Antioch::ChemicalMixture.
const Viscosity & viscosity() const
const Conductivity & conductivity() const
void specialized_build_viscosity(const GetPot &, boost::scoped_ptr< Antioch::MixtureViscosity< Antioch::SutherlandViscosity< libMesh::Real > > > &viscosity, viscosity_type< Antioch::MixtureViscosity< Antioch::SutherlandViscosity< libMesh::Real > > >)
boost::scoped_ptr< Thermo > _thermo
const Diffusivity & diffusivity() const
const Antioch::CEAThermoMixture< libMesh::Real > & cea_mixture() const
AntiochChemistry ChemistryParent
void build_conductivity(const GetPot &input)
void specialized_build_viscosity(const GetPot &, boost::scoped_ptr< Antioch::MixtureViscosity< Antioch::BlottnerViscosity< libMesh::Real > > > &viscosity, viscosity_type< Antioch::MixtureViscosity< Antioch::BlottnerViscosity< libMesh::Real > > >)
void build_viscosity(const GetPot &input)
void specialized_build_diffusivity(const GetPot &input, boost::scoped_ptr< Antioch::ConstantLewisDiffusivity< libMesh::Real > > &diffusivity, diffusivity_type< Antioch::ConstantLewisDiffusivity< libMesh::Real > >)
boost::scoped_ptr< Diffusivity > _diffusivity
virtual ~AntiochWilkeTransportMixture()
Wrapper class for storing state for Antioch thermo and kinetics.
void specialized_build_thermo(const GetPot &, boost::scoped_ptr< Antioch::StatMechThermodynamics< libMesh::Real > > &thermo, thermo_type< Antioch::StatMechThermodynamics< libMesh::Real > >)
boost::scoped_ptr< Antioch::ChemicalMixture< libMesh::Real > > _antioch_gas
boost::scoped_ptr< Conductivity > _conductivity
void build_diffusivity(const GetPot &input)
Antioch::WilkeMixture< libMesh::Real > _wilke_mixture
void specialized_build_conductivity(const GetPot &, boost::scoped_ptr< Antioch::EuckenThermalConductivity< Thermo > > &conductivity, conductivity_type< Antioch::EuckenThermalConductivity< Thermo > >)
Wrapper class for storing state for computing Wilke transport properties using Antioch.
boost::scoped_ptr< Viscosity > _viscosity
const Antioch::WilkeMixture< libMesh::Real > & wilke_mixture() const