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 <deal.II/base/parameter_handler.h>
22 #include <deal.II/base/point.h>
23 #include <deal.II/base/function.h>
24 #include <deal.II/lac/vector.h>
25 
26 // Include FCST classes
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  };
71 
76  void initialize (ParameterHandler &param)
77  {
79  }
80 
84  virtual double get_electron_conductivity() const
85  {
86  const std::type_info& info = typeid(*this);
87  FcstUtilities::log << "Pure function " << __FUNCTION__
88  << " called in Class "
89  << info.name() << std::endl;
90 
91  return -1;
92  };
93 
97  virtual void get_electron_conductivity_derivative(double &, std::vector<double>&) const
98  {
99  const std::type_info& info = typeid(*this);
100  FcstUtilities::log << "Pure function " << __FUNCTION__
101  << " called in Class "
102  << info.name() << std::endl;
103  };
107  virtual double get_thermal_conductivity() const
108  {
109  const std::type_info& info = typeid(*this);
110  FcstUtilities::log << "Pure function " << __FUNCTION__
111  << " called in Class "
112  << info.name() << std::endl;
113 
114  return -1;
115  };
116 
120  virtual void get_thermal_conductivity_derivative(double &, std::vector<double>&) const
121  {
122  const std::type_info& info = typeid(*this);
123  FcstUtilities::log << "Pure function " << __FUNCTION__
124  << " called in Class "
125  << info.name() << std::endl;
126  };
130  virtual double get_youngs_modulus() const
131  {
132  const std::type_info& info = typeid(*this);
133  FcstUtilities::log << "Pure function " << __FUNCTION__
134  << " called in Class "
135  << info.name() << std::endl;
136 
137  return -1;
138  };
139 
143  virtual void get_youngs_modulus_derivative(double &, std::vector<double>&) const
144  {
145  const std::type_info& info = typeid(*this);
146  FcstUtilities::log << "Pure function " << __FUNCTION__
147  << " called in Class "
148  << info.name() << std::endl;
149  };
153  virtual double get_poissons_ratio() const
154  {
155  const std::type_info& info = typeid(*this);
156  FcstUtilities::log << "Pure function " << __FUNCTION__
157  << " called in Class "
158  << info.name() << std::endl;
159 
160  return -1;
161  };
162 
166  virtual void get_poissons_modulus_derivative(double &, std::vector<double>&) const
167  {
168  const std::type_info& info = typeid(*this);
169  FcstUtilities::log << "Pure function " << __FUNCTION__
170  << " called in Class "
171  << info.name() << std::endl;
172  };
176  virtual double get_expansion_coefficient() const
177  {
178  const std::type_info& info = typeid(*this);
179  FcstUtilities::log << "Pure function " << __FUNCTION__
180  << " called in Class "
181  << info.name() << std::endl;
182 
183  return -1;
184  };
185 
189  virtual void get_expansion_coefficient_derivative(double &E, std::vector<double>& dE) const
190  {
191  const std::type_info& info = typeid(*this);
192  FcstUtilities::log << "Pure function " << __FUNCTION__
193  << " called in Class "
194  << info.name() << std::endl;
195  };
199  protected:
201  double electron_conductivity;
203  std::vector<double> electron_conductivity_derivative;
207  std::vector<double> thermal_conductivity_derivative;
211  std::vector<double> youngs_modulus_derivative;
215  std::vector<double> poissons_ratio_derivative;
219  std::vector<double> expansion_coefficient_derivative;
220  };
221 
222  }
223 }
224 
225 
226 #endif
double youngs_modulus
Variable storing Youngs modulus.
Definition: material_plate_base.h:209
std::vector< double > thermal_conductivity_derivative
Variable storing thermal conductivity derivatives.
Definition: material_plate_base.h:207
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:107
std::vector< double > electron_conductivity_derivative
Variable storing electron conductivity derivatives.
Definition: material_plate_base.h:203
double expansion_coefficient
Variable storing expansion coefficient ratio.
Definition: material_plate_base.h:217
std::vector< double > poissons_ratio_derivative
Variable storing Poisson modulus.
Definition: material_plate_base.h:215
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:205
std::vector< double > expansion_coefficient_derivative
Variable storing expansion coefficient modulus.
Definition: material_plate_base.h:219
virtual double get_poissons_ratio() const
Member function to compute the Poisson&#39;s ratio (Isotropic properties).
Definition: material_plate_base.h:153
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:130
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:97
void declare_parameters(ParameterHandler &param) const
Declare parameters.
Definition: material_plate_base.h:67
Base class for developing bipolar plate materials.
Definition: material_plate_base.h:47
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:76
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:166
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:120
MaterialPlateBase(std::string name)
Constructor.
Definition: material_plate_base.h:55
double electron_conductivity
Variable storing electron conductivity.
Definition: material_plate_base.h:195
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:189
virtual double get_electron_conductivity() const
Member function to compute the electron conductivity (Isotropic properties).
Definition: material_plate_base.h:84
virtual double get_expansion_coefficient() const
Member function to compute the expansion coefficient (Isotropic properties).
Definition: material_plate_base.h:176
~MaterialPlateBase()
Destructor.
Definition: material_plate_base.h:63
std::vector< double > youngs_modulus_derivative
Variable storing Youngs modulus.
Definition: material_plate_base.h:211
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:213
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:143