35     std::string thermochem_lib;
 
   40     libMesh::UniquePtr<Physics> new_physics;
 
   42     if( thermochem_lib == 
"cantera" )
 
   44 #ifdef GRINS_HAVE_CANTERA 
   45         new_physics.reset(
new DerivedPhysics<CanteraMixture,CanteraEvaluator>(physics_name,input));
 
   47         libmesh_error_msg(
"Error: Cantera not enabled in this configuration. Reconfigure using --with-cantera option.");
 
   49 #endif // GRINS_HAVE_CANTERA 
   52     else if( thermochem_lib == 
"antioch" )
 
   54 #ifdef GRINS_HAVE_ANTIOCH 
   56         std::string transport_model;
 
   57         std::string thermo_model;
 
   58         std::string viscosity_model;
 
   59         std::string conductivity_model;
 
   60         std::string diffusivity_model;
 
   70         if( transport_model == std::string(
"mixture_averaged") )
 
   72             if( (thermo_model == std::string(
"stat_mech")) &&
 
   73                 (diffusivity_model == std::string(
"constant_lewis")) &&
 
   74                 (conductivity_model == std::string(
"eucken")) &&
 
   75                 (viscosity_model == std::string(
"sutherland")) )
 
   78                                                                                                    Antioch::SutherlandViscosity<libMesh::Real>,
 
   79                                                                                                    Antioch::EuckenThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real> >,
 
   80                                                                                                    Antioch::ConstantLewisDiffusivity<libMesh::Real> >,
 
   82                                                                                                      Antioch::SutherlandViscosity<libMesh::Real>,
 
   83                                                                                                      Antioch::EuckenThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real> >,
 
   84                                                                                                      Antioch::ConstantLewisDiffusivity<libMesh::Real> > >
 
   85                                   (physics_name,input) );
 
   87             else if( (thermo_model == std::string(
"stat_mech")) &&
 
   88                      (diffusivity_model == std::string(
"constant_lewis")) &&
 
   89                      (conductivity_model == std::string(
"eucken")) &&
 
   90                      (viscosity_model == std::string(
"blottner")) )
 
   93                                                                                                    Antioch::BlottnerViscosity<libMesh::Real>,
 
   94                                                                                                    Antioch::EuckenThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real> >,
 
   95                                                                                                    Antioch::ConstantLewisDiffusivity<libMesh::Real> >,
 
   97                                                                                                      Antioch::BlottnerViscosity<libMesh::Real>,
 
   98                                                                                                      Antioch::EuckenThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real> >,
 
   99                                                                                                      Antioch::ConstantLewisDiffusivity<libMesh::Real> > >(physics_name,input) );
 
  101             else if( (thermo_model == std::string(
"stat_mech")) &&
 
  102                      (diffusivity_model == std::string(
"kinetics_theory")) &&
 
  103                      (conductivity_model == std::string(
"kinetics_theory")) &&
 
  104                      (viscosity_model == std::string(
"kinetics_theory")) )
 
  106 #ifdef ANTIOCH_HAVE_GSL 
  108                                                                                                    Antioch::KineticsTheoryViscosity<libMesh::Real,Antioch::GSLSpliner>,
 
  109                                                                                                    Antioch::KineticsTheoryThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real>,libMesh::Real>,
 
  110                                                                                                    Antioch::MolecularBinaryDiffusion<libMesh::Real,Antioch::GSLSpliner> >,
 
  112                                                                                                      Antioch::KineticsTheoryViscosity<libMesh::Real,Antioch::GSLSpliner>,
 
  113                                                                                                      Antioch::KineticsTheoryThermalConductivity<Antioch::StatMechThermodynamics<libMesh::Real>,libMesh::Real>,
 
  114                                                                                                      Antioch::MolecularBinaryDiffusion<libMesh::Real,Antioch::GSLSpliner> > >(physics_name,input) );
 
  116                 libmesh_error_msg(
"ERROR: Antioch requires GSL in order to use kinetics theory based models!");
 
  117 #endif // ANTIOCH_HAVE_GSL 
  123         else if( transport_model == std::string(
"constant") )
 
  125             if( viscosity_model != std::string(
"constant") )
 
  126               libmesh_error_msg(
"Error: For constant transport_model, viscosity model must be constant!");
 
  128             if( diffusivity_model != std::string(
"constant_lewis") )
 
  129               libmesh_error_msg(
"Error: For constant transport_model, diffusivity model must be constant_lewis!");
 
  131             if( (thermo_model == std::string(
"stat_mech")) &&
 
  132                 (conductivity_model == std::string(
"constant")) )
 
  136                                   (physics_name,input) );
 
  138             else if( (thermo_model == std::string(
"cea")) &&
 
  139                      (conductivity_model == std::string(
"constant")) )
 
  143                                   (physics_name,input) );
 
  145             else if( (thermo_model == std::string(
"stat_mech")) &&
 
  146                 (conductivity_model == std::string(
"constant_prandtl")) )
 
  150                                   (physics_name,input) );
 
  152             else if( (thermo_model == std::string(
"cea")) &&
 
  153                      (conductivity_model == std::string(
"constant_prandtl")) )
 
  157                                   (physics_name,input) );
 
  164             std::string error = 
"Error: Unknown Antioch transport_model "+transport_model+
"!\n";
 
  165             error += 
"       Valid values are: constant\n";
 
  166             error += 
"                         mixture_averaged\n";
 
  168             libmesh_error_msg(error);
 
  171         libmesh_error_msg(
"Error: Antioch not enabled in this configuration. Reconfigure using --with-antioch option.");
 
  173 #endif // GRINS_HAVE_ANTIOCH 
  178         std::string error = 
"Error: Invalid thermo-chemistry library"+thermochem_lib+
"!\n";
 
  179         error += 
"       Valid values are: antioch\n";
 
  180         error += 
"                         cantera\n";
 
  182         libmesh_error_msg(error);
 
  185     libmesh_assert(new_physics);
 
Wrapper class for evaluating constant transport properties, including Antioch::ConstantLewisDiffusivi...
 
static void parse_thermochemistry_model(const GetPot &input, const std::string &physics, std::string &model)
Determine thermochemistry model type. 
 
static void parse_antioch_models(const GetPot &input, const std::string &physics, std::string &transport_model, std::string &thermo_model, std::string &viscosity_model, std::string &conductivity_model, std::string &diffusivity_model)
 
Wrapper class for storing state for computing Wilke transport properties using Antioch. 
 
Wrapper class for evaluating Wilke transport properties using Antioch. 
 
std::string find_core_physics_name(const std::string &physics_name)
 
void grins_antioch_model_error_msg(const std::string &viscosity_model, const std::string &conductivity_model, const std::string &diffusivity_model, const std::string &thermo_model) const 
 
Wrapper class for storing state for constant transport properties, including Antioch::ConstantLewisDi...