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 // 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: material_plate_base.h
11 // - Description:
12 // - Developers: M. Secanell and Madhur Bhaiya
13 // - $Id: material_plate_base.h 2605 2014-08-15 03:36:44Z secanell $
14 //
15 //---------------------------------------------------------------------------
16 
17 #ifndef _FUELCELLSHOP_MATERIAL_PLATE_BASE__H
18 #define _FUELCELLSHOP_MATERIAL_PLATE_BASE__H
19 
20 // Include deal.II classes
21 #include <base/parameter_handler.h>
22 #include <base/point.h>
23 #include <base/function.h>
24 #include <lac/vector.h>
25 
26 // Include FCST classes
27 #include "base_material.h"
28 //#include "fcst_constants.h"
29 
30 //Include STL
31 #include<cmath>
32 #include<iostream>
33 
34 
35 namespace FuelCellShop
36 {
37  namespace Material
38  {
53  :
54  public BaseMaterial
55  {
56  public:
60  MaterialPlateBase(std::string name)
61  : FuelCellShop::Material::BaseMaterial(name)
62  {
63  //implement routine
64  };
72  void declare_parameters (ParameterHandler &param) const
73  {
75  };
76 
81  void initialize (ParameterHandler &param)
82  {
84  }
85 
89  virtual double get_electron_conductivity() const
90  {
91  const std::type_info& info = typeid(*this);
92  FcstUtilities::log << "Pure function " << __FUNCTION__
93  << " called in Class "
94  << info.name() << std::endl;
95 
96  return -1;
97  };
98 
102  virtual void get_electron_conductivity_derivative(double &, std::vector<double>&) const
103  {
104  const std::type_info& info = typeid(*this);
105  FcstUtilities::log << "Pure function " << __FUNCTION__
106  << " called in Class "
107  << info.name() << std::endl;
108  };
112  virtual double get_thermal_conductivity() const
113  {
114  const std::type_info& info = typeid(*this);
115  FcstUtilities::log << "Pure function " << __FUNCTION__
116  << " called in Class "
117  << info.name() << std::endl;
118 
119  return -1;
120  };
121 
125  virtual void get_thermal_conductivity_derivative(double &, std::vector<double>&) const
126  {
127  const std::type_info& info = typeid(*this);
128  FcstUtilities::log << "Pure function " << __FUNCTION__
129  << " called in Class "
130  << info.name() << std::endl;
131  };
135  virtual double get_youngs_modulus() const
136  {
137  const std::type_info& info = typeid(*this);
138  FcstUtilities::log << "Pure function " << __FUNCTION__
139  << " called in Class "
140  << info.name() << std::endl;
141 
142  return -1;
143  };
144 
148  virtual void get_youngs_modulus_derivative(double &, std::vector<double>&) const
149  {
150  const std::type_info& info = typeid(*this);
151  FcstUtilities::log << "Pure function " << __FUNCTION__
152  << " called in Class "
153  << info.name() << std::endl;
154  };
158  virtual double get_poissons_ratio() const
159  {
160  const std::type_info& info = typeid(*this);
161  FcstUtilities::log << "Pure function " << __FUNCTION__
162  << " called in Class "
163  << info.name() << std::endl;
164 
165  return -1;
166  };
167 
171  virtual void get_poissons_modulus_derivative(double &, std::vector<double>&) const
172  {
173  const std::type_info& info = typeid(*this);
174  FcstUtilities::log << "Pure function " << __FUNCTION__
175  << " called in Class "
176  << info.name() << std::endl;
177  };
181  virtual double get_expansion_coefficient() const
182  {
183  const std::type_info& info = typeid(*this);
184  FcstUtilities::log << "Pure function " << __FUNCTION__
185  << " called in Class "
186  << info.name() << std::endl;
187 
188  return -1;
189  };
190 
194  virtual void get_expansion_coefficient_derivative(double &E, std::vector<double>& dE) const
195  {
196  const std::type_info& info = typeid(*this);
197  FcstUtilities::log << "Pure function " << __FUNCTION__
198  << " called in Class "
199  << info.name() << std::endl;
200  };
204  protected:
206  double electron_conductivity;
208  std::vector<double> electron_conductivity_derivative;
212  std::vector<double> thermal_conductivity_derivative;
216  std::vector<double> youngs_modulus_derivative;
220  std::vector<double> poissons_ratio_derivative;
224  std::vector<double> expansion_coefficient_derivative;
225  };
226 
227  }
228 }
229 
230 
231 #endif
double youngs_modulus
Variable storing Youngs modulus.
Definition: material_plate_base.h:214
std::vector< double > thermal_conductivity_derivative
Variable storing thermal conductivity derivatives.
Definition: material_plate_base.h:212
virtual void declare_parameters(ParameterHandler &) const
Declare parameters for a parameter file.
Definition: base_material.h:127
const std::string name
Name of the layer.
Definition: base_material.h:155
virtual double get_thermal_conductivity() const
Member function to compute the thermal conductivity (Isotropic properties).
Definition: material_plate_base.h:112
std::vector< double > electron_conductivity_derivative
Variable storing electron conductivity derivatives.
Definition: material_plate_base.h:208
double expansion_coefficient
Variable storing expansion coefficient ratio.
Definition: material_plate_base.h:222
std::vector< double > poissons_ratio_derivative
Variable storing Poisson modulus.
Definition: material_plate_base.h:220
virtual void initialize(ParameterHandler &)
Member function used to read in data and initialize the necessary data to compute the coefficients...
Definition: base_material.h:142
double thermal_conductivity
Variable storing thermal conductivity.
Definition: material_plate_base.h:210
std::vector< double > expansion_coefficient_derivative
Variable storing expansion coefficient modulus.
Definition: material_plate_base.h:224
virtual double get_poissons_ratio() const
Member function to compute the Poisson&#39;s ratio (Isotropic properties).
Definition: material_plate_base.h:158
FCSTLogStream log
Object used to output data to file and, if file attached recorded to a file as well.
virtual double get_youngs_modulus() const
Member function to compute the Young&#39;s modulus (Isotropic properties).
Definition: material_plate_base.h:135
virtual void get_electron_conductivity_derivative(double &, std::vector< double > &) const
Member function to compute the derivatives of the electron conductivity (Isotropic properties) with r...
Definition: material_plate_base.h:102
void declare_parameters(ParameterHandler &param) const
Declare parameters.
Definition: material_plate_base.h:72
Base class for developing bipolar plate materials.
Definition: material_plate_base.h:52
void initialize(ParameterHandler &param)
Member function used to read in data and initialize the necessary data to compute the coefficients...
Definition: material_plate_base.h:81
virtual void get_poissons_modulus_derivative(double &, std::vector< double > &) const
Member function to compute the derivatives of the Poisson&#39;s ratio (Isotropic properties) with respect...
Definition: material_plate_base.h:171
virtual void get_thermal_conductivity_derivative(double &, std::vector< double > &) const
Member function to compute the derivatives of the thermal conductivity (Isotropic properties) with re...
Definition: material_plate_base.h:125
MaterialPlateBase(std::string name)
Constructor.
Definition: material_plate_base.h:60
double electron_conductivity
Variable storing electron conductivity.
Definition: material_plate_base.h:200
virtual void get_expansion_coefficient_derivative(double &E, std::vector< double > &dE) const
Member function to compute the derivatives of the expansion coefficient (Isotropic properties) with r...
Definition: material_plate_base.h:194
virtual double get_electron_conductivity() const
Member function to compute the electron conductivity (Isotropic properties).
Definition: material_plate_base.h:89
virtual double get_expansion_coefficient() const
Member function to compute the expansion coefficient (Isotropic properties).
Definition: material_plate_base.h:181
~MaterialPlateBase()
Destructor.
Definition: material_plate_base.h:68
std::vector< double > youngs_modulus_derivative
Variable storing Youngs modulus.
Definition: material_plate_base.h:216
Virtual class used to provide the interface for all material classes.
Definition: base_material.h:54
double poissons_ratio
Variable storing Poisson ratio.
Definition: material_plate_base.h:218
virtual void get_youngs_modulus_derivative(double &, std::vector< double > &) const
Member function to compute the derivatives of the Young&#39;s modulus (Isotropic properties) with respect...
Definition: material_plate_base.h:148