GRINS-0.7.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-2016 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( const GetPot& input,
64  const std::string& material,
65  SharedPtr<CatalycityBase>& gamma_ptr,
66  const std::string& gas_reactant,
67  const std::string& solid_reactant,
68  const std::string& product,
69  const std::vector<VariableIndex>& species_vars,
70  VariableIndex T_var,
71  libMesh::Real p0,
72  SharedPtr<NeumannBCAbstract>& catalytic_wall )
73  {
74  SharedPtr<ChemistryType> chem_ptr( new ChemistryType(input,material) );
75 
76  catalytic_wall.reset( new GasSolidCatalyticWall<ChemistryType>
77  ( chem_ptr,
78  gamma_ptr,
79  species_vars,
80  T_var,
81  p0,
82  chem_ptr->species_index(gas_reactant),
83  chem_ptr->species_index(solid_reactant),
84  chem_ptr->species_index(product) ) );
85  }
86 
87  };
88 
89 } // end namespace GRINS
90 
91 #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(const GetPot &input, const std::string &material, 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 Thu Jun 2 2016 21:52:27 for GRINS-0.7.0 by  doxygen 1.8.10