GRINS-0.8.0
gas_solid_catalytic_wall_neumann_bc_factory_impl.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // GRINS - General Reacting Incompressible Navier-Stokes
5 //
6 // Copyright (C) 2014-2017 Paul T. Bauman, Roy H. Stogner
7 // Copyright (C) 2010-2013 The PECOS Development Team
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the Version 2.1 GNU Lesser General
11 // Public License as published by the Free Software Foundation.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
21 // Boston, MA 02110-1301 USA
22 //
23 //-----------------------------------------------------------------------el-
24 
25 #ifndef GRINS_GAS_SOLID_CATALYTIC_WALL_NEUMANN_BC_IMPL_H
26 #define GRINS_GAS_SOLID_CATALYTIC_WALL_NEUMANN_BC_IMPL_H
27 
28 // GRINS
31 
32 // libMesh
33 #include "libmesh/getpot.h"
34 
35 namespace GRINS
36 {
38  {
39  public:
40 
42 
44 
45  SharedPtr<NeumannBCAbstract>
46  build_catalytic_wall( const GetPot& input,
47  const std::string& reaction,
48  SharedPtr<CatalycityBase>& gamma_ptr,
49  const std::vector<VariableIndex>& species_vars,
50  const std::string& material,
51  VariableIndex T_var,
52  libMesh::Real p0,
53  const std::string& thermochem_lib );
54 
55  void parse_reactants_and_product( const std::string& reaction,
56  std::string& gas_reactant,
57  std::string& solid_reactant,
58  std::string& product ) const;
59 
60  protected:
61 
62  template<typename ChemistryType>
63  void build_wall_ptr( SharedPtr<ChemistryType> & chem_ptr,
64  SharedPtr<CatalycityBase> & gamma_ptr,
65  const std::string & gas_reactant,
66  const std::string & solid_reactant,
67  const std::string & product,
68  const std::vector<VariableIndex> & species_vars,
69  VariableIndex T_var,
70  libMesh::Real p0,
71  SharedPtr<NeumannBCAbstract> & catalytic_wall )
72  {
73  catalytic_wall.reset( new GasSolidCatalyticWall<ChemistryType>
74  ( chem_ptr,
75  gamma_ptr,
76  species_vars,
77  T_var,
78  p0,
79  chem_ptr->species_index(gas_reactant),
80  chem_ptr->species_index(solid_reactant),
81  chem_ptr->species_index(product) ) );
82  }
83 
84  };
85 
86 } // end namespace GRINS
87 
88 #endif // GRINS_GAS_SOLID_CATALYTIC_WALL_NEUMANN_BC_IMPL_H
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
Definition: var_typedefs.h:42
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
GRINS namespace.
void build_wall_ptr(SharedPtr< ChemistryType > &chem_ptr, SharedPtr< CatalycityBase > &gamma_ptr, const std::string &gas_reactant, const std::string &solid_reactant, const std::string &product, const std::vector< VariableIndex > &species_vars, VariableIndex T_var, libMesh::Real p0, SharedPtr< NeumannBCAbstract > &catalytic_wall)

Generated on Tue Dec 19 2017 12:47:27 for GRINS-0.8.0 by  doxygen 1.8.9.1