31 #ifdef GRINS_HAVE_CANTERA 
   35 #ifdef GRINS_HAVE_ANTIOCH 
   42 #if defined(GRINS_HAVE_ANTIOCH) || defined(GRINS_HAVE_CANTERA) 
   43   SharedPtr<NeumannBCAbstract>
 
   45   ( 
const GetPot& input, 
const std::string& reaction,SharedPtr<CatalycityBase>& gamma_ptr,
 
   46     const std::vector<VariableIndex>& species_vars,
const std::string& material,
 
   47     VariableIndex T_var,libMesh::Real p0,
const std::string& thermochem_lib )
 
   49   SharedPtr<NeumannBCAbstract>
 
   51   ( 
const GetPot& , 
const std::string& reaction,SharedPtr<CatalycityBase>& ,
 
   52     const std::vector<VariableIndex>& ,
const std::string& ,
 
   53     VariableIndex ,libMesh::Real ,
const std::string& thermochem_lib )
 
   56     std::string gas_reactant;
 
   57     std::string solid_reactant;
 
   59     this->parse_reactants_and_product(reaction,gas_reactant,solid_reactant,product);
 
   62     SharedPtr<NeumannBCAbstract> catalytic_wall;
 
   64     if( thermochem_lib == 
"cantera" )
 
   66 #ifdef GRINS_HAVE_CANTERA 
   67         this->build_wall_ptr<CanteraMixture>(input,material,gamma_ptr,gas_reactant,solid_reactant,
 
   68                                              product,species_vars,T_var,p0,catalytic_wall);
 
   70         libmesh_error_msg(
"Error: Cantera not enabled in this configuration. Reconfigure using --with-cantera option.");
 
   73     else if( thermochem_lib == 
"antioch" )
 
   75 #ifdef GRINS_HAVE_ANTIOCH 
   76         this->build_wall_ptr<AntiochChemistry>(input,material,gamma_ptr,gas_reactant,solid_reactant,
 
   77                                                product,species_vars,T_var,p0,catalytic_wall);
 
   79         libmesh_error_msg(
"Error: Antioch not enabled in this configuration. Reconfigure using --with-antioch option.");
 
   83       libmesh_error_msg(
"ERROR: Invalid thermochemistry library "+thermochem_lib+
"!");
 
   85     return catalytic_wall;
 
   89                                                                                std::string& gas_reactant,
 
   90                                                                                std::string& solid_reactant,
 
   91                                                                                std::string& product )
 const 
   98     std::vector<std::string> partners;
 
  101     const std::string pre_split_reactants = partners[0];
 
  102     product = partners[1];
 
  104     std::vector<std::string> split_reactants;
 
  108     if( split_reactants.size() != 2 )
 
  110         std::string error_msg = 
"ERROR: Currently, GasSolidCatalyticWall boundary condition only supports\n";
 
  111         error_msg += 
"       reactions of the form X+Y(s)->Z or Y(s)+X->X. Found ";
 
  112         error_msg += StringUtilities::T_to_string<unsigned int>(split_reactants.size())+
" reactants.\n";
 
  113         libmesh_error_msg(error_msg);
 
  118     if( split_reactants[0].find(
"(s)") == split_reactants[0].npos )
 
  121         if( split_reactants[1].find(
"(s)") == split_reactants[1].npos )
 
  123             std::string error_msg = 
"ERROR: could not find solid reactant for GasSolidCatalyticWall!\n";
 
  124             error_msg += 
"       Found reactants "+split_reactants[0]+
", "+split_reactants[1]+
"\n";
 
  125             libmesh_error_msg(error_msg);
 
  129             gas_reactant = split_reactants[0];
 
  130             solid_reactant = split_reactants[1].substr(0,split_reactants[1].find(
"(s)"));
 
  137         if( split_reactants[1].find(
"(s)") != split_reactants[1].npos )
 
  139             std::string error_msg = 
"ERROR: can have only one solid reactant for GasSolidCatalyticWall!\n";
 
  140             error_msg += 
"       Found reactants "+split_reactants[0]+
", "+split_reactants[1]+
"\n";
 
  141             libmesh_error_msg(error_msg);
 
  144         gas_reactant = split_reactants[1];
 
  145         solid_reactant = split_reactants[0].substr(0,split_reactants[0].find(
"(s)"));
 
unsigned int VariableIndex
More descriptive name of the type used for variable indices. 
 
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 parse_reactants_and_product(const std::string &reaction, std::string &gas_reactant, std::string &solid_reactant, std::string &product) const 
 
void split_string(const std::string &input, const std::string &delimiter, std::vector< std::string > &results)