OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
dummy_GDL.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 //
3 // FCST: Fuel Cell Simulation Toolbox
4 //
5 // Copyright (C) 2011-13 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: dummy_GDL.h
11 // - Description: Implementation of a GDL class that setup us all properties from file
12 // - Developers: M. Secanell
13 // - $Id: dummy_GDL.h 2605 2014-08-15 03:36:44Z secanell $
14 //
15 //---------------------------------------------------------------------------
16 
17 #ifndef _FUELCELLSHOP__DUMMY_GDL_H
18 #define _FUELCELLSHOP__DUMMY_GDL_H
19 
20 // FCST classes
21 #include "fcst_units.h"
22 #include "base_material.h"
23 #include "base_layer.h"
24 #include "gas_diffusion_layer.h"
25 
26 // Include deal.II classes
27 #include <base/parameter_handler.h>
28 #include <base/point.h>
29 #include <base/function.h>
30 #include <lac/vector.h>
31 #include <fe/fe_values.h>
32 
33 //Include STL
34 #include<cmath>
35 #include<iostream>
36 
37 using namespace dealii;
38 
39 namespace FuelCellShop
40 {
41  namespace Layer
42  {
49  template <int dim>
50  class DummyGDL :
51  public GasDiffusionLayer<dim>
52  {
53  public:
54 
70  static const std::string concrete_name;
71 
72 
74 
75 
86  DummyGDL();
87 
90  {}
91 
98  void declare_parameters (ParameterHandler &param) const
99  {
100  this->declare_parameters(this->name, param);
101  }
102 
107  virtual void initialize (ParameterHandler &param);
108 
110 
112 
113 
119  virtual void effective_gas_diffusivity(Table< 2, double> &) const;
120 
127  virtual void effective_gas_diffusivity(Table< 2, Tensor< 2, dim > > &) const;
128 
132  virtual void effective_electron_conductivity(double& ) const;
136  virtual void effective_electron_conductivity(Tensor<2,dim>& ) const;
140  virtual void effective_thermal_conductivity(double& ) const;
142  private:
144 
145 
150  DummyGDL(std::string name);
151 
156  virtual void declare_parameters (const std::string& name,
157  ParameterHandler &param) const;
158 
159 
161 
163 
168  virtual boost::shared_ptr<FuelCellShop::Layer::GasDiffusionLayer<dim> > create_replica (const std::string &name)
169  {
170  return boost::shared_ptr<FuelCellShop::Layer::GasDiffusionLayer<dim> > (new FuelCellShop::Layer::DummyGDL<dim> (name));
171  }
173 
175 
178  static DummyGDL<dim> const* PROTOTYPE;
180 
182 
185  double porosity;
187  std::vector<double> D_O2;
189  std::vector<double> D_wv;
191  std::vector<double> sigma_e;
193  std::vector<double> k_T;
195  };
196 
197  }
198 
199 }
200 
201 #endif
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: dummy_GDL.h:70
~DummyGDL()
Destructor.
Definition: dummy_GDL.h:89
Virtual class used to provide the interface for all GasDiffusionLayer children.
Definition: gas_diffusion_layer.h:117
std::vector< double > k_T
Solid network thermal conductivity.
Definition: dummy_GDL.h:193
This class is used when we want to input the effective properties to the GDL directly, without taking into account the structure of the GDL \ UNDER DEVELOPMENT.
Definition: dummy_GDL.h:50
std::vector< double > sigma_e
Solid network conductivity.
Definition: dummy_GDL.h:191
double porosity
Porosity of the GDL.
Definition: dummy_GDL.h:185
std::vector< double > D_wv
Water vapour diffusion coefficient.
Definition: dummy_GDL.h:189
bool anisotropy
Anisotropy ?
Definition: dummy_GDL.h:183
void declare_parameters(ParameterHandler &param) const
Declare parameters for a parameter file.
Definition: dummy_GDL.h:98
std::vector< double > D_O2
Oxygen diffusion coefficient.
Definition: dummy_GDL.h:187
virtual boost::shared_ptr< FuelCellShop::Layer::GasDiffusionLayer< dim > > create_replica(const std::string &name)
This member function is used to create an object of type gas diffusion layer.
Definition: dummy_GDL.h:168
static DummyGDL< dim > const * PROTOTYPE
Definition: dummy_GDL.h:178