OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
material_plate_base.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 //
3 // Copyright (C) 2011 by Marc Secanell, University of Alberta
4 //
5 // This file is subject to QPL and may not be distributed
6 // without copyright and license information. Please refer
7 // to the file deal.II/doc/license.html for the text and
8 // further information on this license.
9 //
10 //---------------------------------------------------------------------------
11 
12 #ifndef _FUELCELLSHOP_MATERIAL_PLATE_BASE__H
13 #define _FUELCELLSHOP_MATERIAL_PLATE_BASE__H
14 
15 // Include deal.II classes
16 #include <base/parameter_handler.h>
17 #include <base/point.h>
18 #include <base/function.h>
19 #include <lac/vector.h>
20 
21 // Include FCST classes
22 #include "base_material.h"
23 //#include "fcst_constants.h"
24 
25 //Include STL
26 #include<cmath>
27 #include<iostream>
28 
29 
30 namespace FuelCellShop
31 {
32  namespace Material
33  {
48  :
49  public BaseMaterial
50  {
51  public:
55  MaterialPlateBase(std::string name)
56  : FuelCellShop::Material::BaseMaterial(name)
57  {
58  //implement routine
59  };
67  void declare_parameters (ParameterHandler &param) const
68  {
70  };
75  void set_parameters (const std::vector<std::string>& name_dvar,
76  const std::vector<double>& value_dvar,
77  ParameterHandler& param)
78  {
79  FuelCellShop::Material::BaseMaterial::set_parameters(name_dvar, value_dvar, param);
80  };
85  void initialize (ParameterHandler &param)
86  {
88  }
89 
93  virtual double get_electron_conductivity() const
94  {
95  const std::type_info& info = typeid(*this);
96  deallog << "Pure function " << __FUNCTION__
97  << " called in Class "
98  << info.name() << std::endl;
99 
100  return -1;
101  };
102 
106  virtual void get_electron_conductivity_derivative(double &, std::vector<double>&) const
107  {
108  const std::type_info& info = typeid(*this);
109  deallog << "Pure function " << __FUNCTION__
110  << " called in Class "
111  << info.name() << std::endl;
112  };
116  virtual double get_thermal_conductivity() const
117  {
118  const std::type_info& info = typeid(*this);
119  deallog << "Pure function " << __FUNCTION__
120  << " called in Class "
121  << info.name() << std::endl;
122 
123  return -1;
124  };
125 
129  virtual void get_thermal_conductivity_derivative(double &, std::vector<double>&) const
130  {
131  const std::type_info& info = typeid(*this);
132  deallog << "Pure function " << __FUNCTION__
133  << " called in Class "
134  << info.name() << std::endl;
135  };
139  virtual double get_youngs_modulus() const
140  {
141  const std::type_info& info = typeid(*this);
142  deallog << "Pure function " << __FUNCTION__
143  << " called in Class "
144  << info.name() << std::endl;
145 
146  return -1;
147  };
148 
152  virtual void get_youngs_modulus_derivative(double &, std::vector<double>&) const
153  {
154  const std::type_info& info = typeid(*this);
155  deallog << "Pure function " << __FUNCTION__
156  << " called in Class "
157  << info.name() << std::endl;
158  };
162  virtual double get_poissons_ratio() const
163  {
164  const std::type_info& info = typeid(*this);
165  deallog << "Pure function " << __FUNCTION__
166  << " called in Class "
167  << info.name() << std::endl;
168 
169  return -1;
170  };
171 
175  virtual void get_poissons_modulus_derivative(double &, std::vector<double>&) const
176  {
177  const std::type_info& info = typeid(*this);
178  deallog << "Pure function " << __FUNCTION__
179  << " called in Class "
180  << info.name() << std::endl;
181  };
185  virtual double get_expansion_coefficient() const
186  {
187  const std::type_info& info = typeid(*this);
188  deallog << "Pure function " << __FUNCTION__
189  << " called in Class "
190  << info.name() << std::endl;
191 
192  return -1;
193  };
194 
198  virtual void get_expansion_coefficient_derivative(double &E, std::vector<double>& dE) const
199  {
200  const std::type_info& info = typeid(*this);
201  deallog << "Pure function " << __FUNCTION__
202  << " called in Class "
203  << info.name() << std::endl;
204  };
208  protected:
210  double electron_conductivity;
212  std::vector<double> electron_conductivity_derivative;
216  std::vector<double> thermal_conductivity_derivative;
220  std::vector<double> youngs_modulus_derivative;
224  std::vector<double> poissons_ratio_derivative;
228  std::vector<double> expansion_coefficient_derivative;
229  };
230 
231  }
232 }
233 
234 
235 #endif