OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
platinum.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: platinum.h
11 // - Description: Class representing Platinum material class
12 // - Developers: Peter Dobson(2011), Madhur Bhaiya(2012-13) and M. Secanell(2013)
13 // - $Id: platinum.h 1373 2013-08-21 00:34:53Z madhur $
14 //
15 //---------------------------------------------------------------------------
16 
17 #ifndef _FUELCELLSHOP_CATALYST_PLATINUM__H
18 #define _FUELCELLSHOP_CATALYST_PLATINUM__H
19 
20 #include "catalyst_base.h"
21 
22 namespace FuelCellShop
23 {
24  namespace Material
25  {
26  class Platinum
27  :
28  public CatalystBase
29  {
30  public:
34  static const std::string concrete_name;
36 
37 
40  Platinum(std::string name = "Platinum");
45  Platinum(const bool);
46 
50  ~Platinum();
51 
89  virtual void declare_parameters (ParameterHandler &param) const;
90 
115  virtual void set_parameters (const std::vector<std::string>& name_dvar,
116  const std::vector<double>& value_dvar,
117  ParameterHandler& param);
118 
123  virtual void initialize (ParameterHandler &param);
125 
126 
127 
130  virtual void alpha_anodic(double&) const;
131 
135  virtual void alpha_cathodic(double&) const;
136 
141  virtual double exchange_current_density(const double&) const;
142 
147  virtual double derivative_exchange_current_density(const double&) const;
148 
155  virtual void reference_concentration(const std::vector<VariableNames>&,
156  std::map<VariableNames, double>& ) const;
157 
162  virtual double voltage_cell_th(const double&) const;
163 
164 
169  virtual double dvoltage_cell_th_dT(const double&) const;
170 
177  virtual void reaction_order(const std::vector<VariableNames>&,
178  std::map<VariableNames, double>&) const;
179 
186  virtual void set_reaction_kinetics(const std::string name)
187  {
190  else
191  Assert(false, ExcNotImplemented());
192  }
194 
195  protected:
196 
202  virtual bool check_reaction_implementation(const std::string name) const
203  {
204  return ((name == "ORR") || (name == "HOR"));
205  }
206 
207  private:
209 
210 
215  virtual boost::shared_ptr<FuelCellShop::Material::CatalystBase > create_replica ()
216  {
217  return boost::shared_ptr<FuelCellShop::Material::CatalystBase > (new FuelCellShop::Material::Platinum ());
218  }
220 
221 
222 
225  static Platinum const* PROTOTYPE;
227 
229 
230 
231  double alpha_a_ORR;
232 
234  double alpha_c_ORR;
235 
237  std::string method_kinetics_ORR;
238 
241 
244 
246  double i_0_ref_ORR;
247 
249  double c_O2_ref_ORR;
250 
252  double c_H_ref_ORR;
253 
255  double gamma_O2_ORR;
256 
258  double gamma_H_ORR;
259 
261  double alpha_a_HOR;
262 
264  double alpha_c_HOR;
265 
267  double i_0_ref_HOR;
268 
270  double c_H2_ref_HOR;
271 
273  double gamma_H2_HOR;
275  };
276 
277  }//namespace Material
278 
279 }//namespace FuelCellShop
280 
281 #endif