OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SGL_24_BA.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 //
3 // FCST: Fuel Cell Simulation Toolbox
4 //
5 // Copyright (C) 2012, 2013 by Energy Systems Design Laboratory, University of Alberta
6 //
7 // This software is distributed under the MIT License.
8 // For more information, see the README file in /doc/LICENSE
9 //
10 // - Class: SGL_24_BA.h
11 // - Description: Header file for a specific type of gas diffusion layer, i.e. SIGRACET 24 BA
12 // - Developers: M. Secanell
13 // - Id: $Id: SGL_24_BA.h 1354 2013-08-17 00:01:22Z secanell $
14 //
15 //---------------------------------------------------------------------------
16 
17 #ifndef _FUELCELLSHOP__SGL_24_BA_H
18 #define _FUELCELLSHOP__SGL_24_BA_H
19 
20 // FCST classes
21 #include <base_material.h>
22 #include <gas_diffusion_layer.h>
23 
24 // Include deal.II classes
25 #include <base/parameter_handler.h>
26 #include <base/point.h>
27 #include <base/function.h>
28 #include <lac/vector.h>
29 #include <fe/fe_values.h>
30 
31 //Include STL
32 #include<cmath>
33 #include<iostream>
34 
35 using namespace dealii;
36 
37 namespace FuelCellShop
38 {
39  namespace Layer
40  {
50  template <int dim>
51  class SGL24BA :
52  public GasDiffusionLayer<dim>
53  {
54  public:
55 
71  static const std::string concrete_name;
72 
74 
75 
85  SGL24BA();
86 
94  SGL24BA(const std::string& name);
95 
98  {}
99 
106  void declare_parameters (ParameterHandler &param) const
107  {
108  declare_parameters(this->name, param);
109  }
111 
113 
114 
117  void effective_gas_diffusivity(Table<2, Tensor<2,dim> >&) const;
121  void effective_electron_conductivity(Tensor<2,dim>&) const;
125  void effective_thermal_conductivity(Tensor<2,dim>&) const;
127 
128  private:
130 
131 
139  void declare_parameters (const std::string& name,
140  ParameterHandler &param) const;
142 
143 
144 
149  virtual boost::shared_ptr<FuelCellShop::Layer::GasDiffusionLayer<dim> > create_replica (const std::string &name)
150  {
151  return boost::shared_ptr<FuelCellShop::Layer::GasDiffusionLayer<dim> > (new FuelCellShop::Layer::SGL24BA<dim> (name));
152  }
156  static SGL24BA<dim> const* PROTOTYPE;
158 
160 
161 
186  };
187  }
188 }
189 
190 #endif
191