25 #ifndef GRINS_PHYSICS_FACTORY_REACTING_FLOWS_H
26 #define GRINS_PHYSICS_FACTORY_REACTING_FLOWS_H
40 template<
template<
typename,
typename>
class DerivedPhysics>
45 const std::string& core_physics_name )
53 virtual libMesh::UniquePtr<Physics>
build_physics(
const GetPot& input,
54 const std::string& physics_name );
57 const std::string& conductivity_model,
58 const std::string& diffusivity_model )
const;
63 const std::string & material,
64 const std::string & thermo_model,
const std::string & diffusivity_model,
65 const std::string & conductivity_model,
const std::string & viscosity_model,
66 libMesh::UniquePtr<Physics> & new_physics );
69 const std::string & material,
70 const std::string & thermo_model,
const std::string & diffusivity_model,
71 const std::string & conductivity_model,
const std::string & viscosity_model,
72 libMesh::UniquePtr<Physics> & new_physics );
74 #ifdef GRINS_HAVE_ANTIOCH
75 template<
typename KineticsThermo,
typename Thermo>
77 const std::string & material,
78 const std::string & diffusivity_model,
79 const std::string & conductivity_model,
80 const std::string & viscosity_model,
81 libMesh::UniquePtr<Physics> & new_physics )
89 Antioch::SutherlandViscosity<libMesh::Real>,
90 Antioch::EuckenThermalConductivity<Thermo>,
91 Antioch::ConstantLewisDiffusivity<libMesh::Real> >(input,physics_name,material,new_physics);
99 Antioch::BlottnerViscosity<libMesh::Real>,
100 Antioch::EuckenThermalConductivity<Thermo>,
101 Antioch::ConstantLewisDiffusivity<libMesh::Real> >(input,physics_name,material,new_physics);
107 #ifdef ANTIOCH_HAVE_GSL
110 Antioch::KineticsTheoryViscosity<libMesh::Real,Antioch::GSLSpliner>,
111 Antioch::KineticsTheoryThermalConductivity<Thermo,libMesh::Real>,
112 Antioch::MolecularBinaryDiffusion<libMesh::Real,Antioch::GSLSpliner> >(input,physics_name,material,new_physics);
114 libmesh_error_msg(
"ERROR: Antioch requires GSL in order to use kinetics theory based models!");
115 #endif // ANTIOCH_HAVE_GSL
121 template<
typename KineticsThermo,
typename Thermo>
123 const std::string & material,
const std::string & conductivity_model,
124 libMesh::UniquePtr<Physics> & new_physics )
128 this->build_const_physics_ptr<KineticsThermo,Thermo,ConstantConductivity>
129 (input,physics_name,material,new_physics);
133 this->build_const_physics_ptr<KineticsThermo,Thermo,ConstantPrandtlConductivity>
134 (input,physics_name,material,new_physics);
138 std::string error =
"ERROR: Invalid conductivity model for constant transport!\n";
142 libmesh_error_msg(error);
146 template<
typename KineticsThermo,
typename Thermo,
typename Viscosity,
typename Conductivity,
typename Diffusivity>
148 const std::string & material, libMesh::UniquePtr<Physics> & new_physics )
152 libMesh::UniquePtr<AntiochMixtureAveragedTransportMixture<KineticsThermo,Thermo,Viscosity,Conductivity,Diffusivity> >
153 gas_mixture = mix_builder.
build_mixture<KineticsThermo,Thermo,Viscosity,Conductivity,Diffusivity>(input,material);
157 (physics_name,input,gas_mixture) );
160 template<
typename KineticsThermo,
typename Thermo,
typename Conductivity>
162 const std::string & material, libMesh::UniquePtr<Physics> & new_physics )
166 libMesh::UniquePtr<GRINS::AntiochConstantTransportMixture<KineticsThermo,Conductivity> >
167 gas_mixture = mix_builder.
build_mixture<KineticsThermo,Conductivity>(input,material);
171 (physics_name,input,gas_mixture) );
173 #endif // GRINS_HAVE_ANTIOCH
186 #endif // GRINS_PHYSICS_FACTORY_REACTING_FLOWS_H
libMesh::UniquePtr< AntiochConstantTransportMixture< KineticsThermoCurveFit, Conductivity > > build_mixture(const GetPot &input, const std::string &material)
void build_mix_avged_physics_ptr(const GetPot &input, const std::string &physics_name, const std::string &material, libMesh::UniquePtr< Physics > &new_physics)
Wrapper class for evaluating constant transport properties, including Antioch::ConstantLewisDiffusivi...
static std::string kinetic_theory_diffusivity_model()
static std::string eucken_conductivity_model()
~ReactingFlowsPhysicsFactoryInitializer()
Wrapper class for storing state for computing Wilke transport properties using Antioch.
PhysicsFactory base class for Physics that may have a related "core" Physics.
PhysicsFactoryReactingFlows(const std::string &physics_name, const std::string &core_physics_name)
Wrapper class for evaluating Wilke transport properties using Antioch.
~PhysicsFactoryReactingFlows()
void build_const_physics_ptr(const GetPot &input, const std::string &physics_name, const std::string &material, libMesh::UniquePtr< Physics > &new_physics)
static std::string constant_prandtl_conductivity_model()
void build_mix_avged_physics_with_thermo(const GetPot &input, const std::string &physics_name, const std::string &material, const std::string &diffusivity_model, const std::string &conductivity_model, const std::string &viscosity_model, libMesh::UniquePtr< Physics > &new_physics)
static std::string constant_conductivity_model()
static std::string sutherland_viscosity_model()
void build_const_physics_with_thermo(const GetPot &input, const std::string &physics_name, const std::string &material, const std::string &conductivity_model, libMesh::UniquePtr< Physics > &new_physics)
ReactingFlowsPhysicsFactoryInitializer()
virtual libMesh::UniquePtr< Physics > build_physics(const GetPot &input, const std::string &physics_name)
static std::string blottner_viscosity_model()
void build_mix_avged_physics(const GetPot &input, const std::string &physics_name, const std::string &material, const std::string &thermo_model, const std::string &diffusivity_model, const std::string &conductivity_model, const std::string &viscosity_model, libMesh::UniquePtr< Physics > &new_physics)
static std::string constant_lewis_diffusivity_model()
static std::string kinetic_theory_viscosity_model()
static std::string kinetic_theory_conductivity_model()
void build_const_physics(const GetPot &input, const std::string &physics_name, const std::string &material, const std::string &thermo_model, const std::string &diffusivity_model, const std::string &conductivity_model, const std::string &viscosity_model, libMesh::UniquePtr< Physics > &new_physics)
Wrapper class for storing state for constant transport properties, including Antioch::ConstantLewisDi...
libMesh::UniquePtr< AntiochMixtureAveragedTransportMixture< KineticsThermoCurveFit, Thermo, Viscosity, Conductivity, Diffusivity > > build_mixture(const GetPot &input, const std::string &material)
void grins_antioch_model_error_msg(const std::string &viscosity_model, const std::string &conductivity_model, const std::string &diffusivity_model) const