OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SGL_24_BC.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_BC.h
11 // - Description: Header file for a specific type of microporous layer, i.e. SIGRACET 24 BC
12 // - Developers: Madhur Bhaiya
13 // - Id: $Id: SGL_24_BC.h 1460 2013-08-30 22:28:49Z madhur $
14 //
15 //---------------------------------------------------------------------------
16 
17 #ifndef _FUELCELLSHOP__SGL_24_BC_H
18 #define _FUELCELLSHOP__SGL_24_BC_H
19 
20 // FCST classes
21 #include <base_material.h>
22 #include <micro_porous_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  {
49  template <int dim>
50  class SGL24BC :
51  public MicroPorousLayer<dim>
52  {
53  public:
69  static const std::string concrete_name;
70 
72 
73 
76  SGL24BC();
77 
85  SGL24BC(std::string name);
86 
89  {}
90 
99  void declare_parameters (ParameterHandler &param) const
100  {
101  declare_parameters(this->name, param);
102  };
104 
106 
107 
110  void effective_gas_diffusivity(Table<2, Tensor<2,dim> >&prop_eff) const;
114  void effective_electron_conductivity(Tensor<2,dim>&) const;
116 
117  private:
119 
120 
128  void declare_parameters (std::string name, ParameterHandler &param) const
129  {};
130 
132 
133 
138  virtual boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> > create_replica (const std::string &name)
139  {
140  return boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> > (new FuelCellShop::Layer::SGL24BC<dim> (name));
141  }
143 
145 
148  static SGL24BC<dim> const* PROTOTYPE;
150 
152 
153 
170 
171  };
172 
173  }
174 }
175 
176 #endif