32 #ifdef GRINS_HAVE_CANTERA
36 #ifdef GRINS_HAVE_ANTIOCH
43 #if defined(GRINS_HAVE_ANTIOCH) || defined(GRINS_HAVE_CANTERA)
44 SharedPtr<NeumannBCAbstract>
46 (
const GetPot& input,
const std::string& reaction,SharedPtr<CatalycityBase>& gamma_ptr,
47 const std::vector<VariableIndex>& species_vars,
const std::string& material,
48 VariableIndex T_var,libMesh::Real p0,
const std::string& thermochem_lib )
50 SharedPtr<NeumannBCAbstract>
52 (
const GetPot& ,
const std::string& reaction,SharedPtr<CatalycityBase>& ,
53 const std::vector<VariableIndex>& ,
const std::string& ,
54 VariableIndex ,libMesh::Real ,
const std::string& thermochem_lib )
59 this->parse_reactant_and_product(reaction,reactant,product);
62 SharedPtr<NeumannBCAbstract> catalytic_wall;
66 if( thermochem_lib ==
"cantera" )
68 #ifdef GRINS_HAVE_CANTERA
69 libMesh::UniquePtr<CanteraMixture> chem_uptr;
73 SharedPtr<CanteraMixture> chem_ptr(chem_uptr.release());
75 this->build_wall_ptr<CanteraMixture>(chem_ptr,gamma_ptr,reactant,product,
76 species_vars,T_var,p0,catalytic_wall);
78 libmesh_error_msg(
"Error: Cantera not enabled in this configuration. Reconfigure using --with-cantera option.");
81 else if( thermochem_lib ==
"antioch" )
83 #ifdef GRINS_HAVE_ANTIOCH
84 libMesh::UniquePtr<AntiochChemistry> chem_uptr;
88 SharedPtr<AntiochChemistry> chem_ptr(chem_uptr.release());
90 this->build_wall_ptr<AntiochChemistry>(chem_ptr,gamma_ptr,reactant,product,
91 species_vars,T_var,p0,catalytic_wall);
93 libmesh_error_msg(
"Error: Antioch not enabled in this configuration. Reconfigure using --with-antioch option.");
97 libmesh_error_msg(
"ERROR: Invalid thermochemistry library "+thermochem_lib+
"!");
99 return catalytic_wall;
103 std::string& reactant,
104 std::string& product )
const
107 std::vector<std::string> partners;
112 if( partners.size() != 2 )
113 libmesh_error_msg(
"ERROR: Must have only one reactant and one product for GasRecombinationCatalyticWall!");
115 reactant = partners[0];
116 product = partners[1];
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
void build_chemistry(const GetPot &input, const std::string &material, libMesh::UniquePtr< ChemistryType > &chem_ptr)
SharedPtr< NeumannBCAbstract > build_catalytic_wall(const GetPot &input, const std::string &reaction, SharedPtr< CatalycityBase > &gamma_ptr, const std::vector< VariableIndex > &species_vars, const std::string &material, VariableIndex T_var, libMesh::Real p0, const std::string &thermochem_lib)
void split_string(const std::string &input, const std::string &delimiter, std::vector< std::string > &results)
void parse_reactant_and_product(const std::string &reaction, std::string &reactant, std::string &product) const