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 2605 2014-08-15 03:36:44Z secanell $
14 //
15 //---------------------------------------------------------------------------
16 
17 #ifndef _FUELCELLSHOP_CATALYST_PLATINUM__H
18 #define _FUELCELLSHOP_CATALYST_PLATINUM__H
19 
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 
95  virtual void initialize (ParameterHandler &param);
97 
99 
102  virtual void alpha_anodic(double&) const;
103 
107  virtual void alpha_cathodic(double&) const;
108 
113  virtual double exchange_current_density(const double&) const;
114 
119  virtual double derivative_exchange_current_density(const double&) const;
120 
127  virtual void reference_concentration(const std::vector<VariableNames>&,
128  std::map<VariableNames, double>& ) const;
129 
134  virtual double voltage_cell_th(const double&) const;
135 
136 
141  virtual double dvoltage_cell_th_dT(const double&) const;
142 
149  virtual void reaction_order(const std::vector<VariableNames>&,
150  std::map<VariableNames, double>&) const;
151 
159  {
162  else
163  Assert(false, ExcNotImplemented());
164  }
166 
167  protected:
168 
175  {
176  return ((name == ORR) || (name == HOR));
177  }
178 
179  private:
181 
182 
187  virtual boost::shared_ptr<FuelCellShop::Material::CatalystBase > create_replica ()
188  {
189  return boost::shared_ptr<FuelCellShop::Material::CatalystBase > (new FuelCellShop::Material::Platinum ());
190  }
192 
194 
197  static Platinum const* PROTOTYPE;
199 
201 
202 
203  double alpha_a_ORR;
204 
206  double alpha_c_ORR;
207 
210 
213 
215  double i_0_ref_ORR;
216 
218  double c_O2_ref_ORR;
219 
221  double c_H_ref_ORR;
222 
224  double gamma_O2_ORR;
225 
227  double gamma_H_ORR;
228 
230  double alpha_a_HOR;
231 
233  double alpha_c_HOR;
234 
236  double i_0_ref_HOR;
237 
239  double c_H2_ref_HOR;
240 
242  double gamma_H2_HOR;
244  };
245 
246  }//namespace Material
247 
248 }//namespace FuelCellShop
249 
250 #endif
virtual double voltage_cell_th(const double &) const
Compute the theroretical cell voltage [Volts] as a function of temperature, for the reaction specifie...
Definition: system_management.h:181
virtual double exchange_current_density(const double &) const
Compute the exchange current density [A/cm^2] for the reaction specified using set_reaction_kinetics ...
double i_0_ref_ORR
Reference exchange current density [ A/cm^2] for ORR, given in the parameter file.
Definition: platinum.h:215
double c_H_ref_ORR
Reference proton concentration [mol/cm^3] for ORR, given in the parameter file.
Definition: platinum.h:221
const std::string name
Name of the layer.
Definition: base_material.h:155
virtual void initialize(ParameterHandler &param)
Member function used to read in data and initialize the necessary data from the parameter file to com...
double gamma_H2_HOR
Reaction order corresponding to hydrogen gas for HOR, given in the parameter file.
Definition: platinum.h:242
double alpha_a_HOR
Anodic transfer coefficient (HOR), given in the parameter file.
Definition: platinum.h:230
double alpha_c_ORR
Cathodic transfer coefficient (ORR), given in the parameter file.
Definition: platinum.h:206
double gamma_H_ORR
Reaction order corresponding to protons for ORR, given in the parameter file.
Definition: platinum.h:227
This class implements the interface to compute the properties of a &quot;standard&quot; catalyst.
Definition: catalyst_base.h:65
ReactionNames name_reaction_kinetics
Reaction name for which the class returns kinetic parameters.
Definition: catalyst_base.h:417
static const std::string concrete_name
Name of the class.
Definition: platinum.h:34
virtual void reference_concentration(const std::vector< VariableNames > &, std::map< VariableNames, double > &) const
Compute the reference concentration for the reaction specified using set_reaction_kinetics method...
virtual double dvoltage_cell_th_dT(const double &) const
Compute the derivative of theoretical cell voltage [Volts] w.r.t temperature [Kelvin], for the reaction specified using set_reaction_kinetics method.
double c_H2_ref_HOR
Reference hydrogen concentration [mol/cm^3] for HOR, given in the parameter file. ...
Definition: platinum.h:239
virtual void reaction_order(const std::vector< VariableNames > &, std::map< VariableNames, double > &) const
Compute the reaction order of the electrochemical reaction with respect to each species involved in t...
virtual void declare_parameters(ParameterHandler &param) const
double given_OCV_ORR
Given value of open cell voltage (OCV) for ORR, given in the parameter file.
Definition: platinum.h:209
virtual void alpha_cathodic(double &) const
Return cathodic transfer coefficient for the reaction specified using set_reaction_kinetics method...
double given_OCV_HOR
Given value of open cell voltage (OCV) for HOR, given in the parameter file.
Definition: platinum.h:212
Definition: system_management.h:180
double alpha_c_HOR
Cathodic transfer coefficient (HOR), given in the parameter file.
Definition: platinum.h:233
Platinum(std::string name="Platinum")
Constructor.
double gamma_O2_ORR
Reaction order corresponding to oxygen gas for ORR, given in the parameter file.
Definition: platinum.h:224
ReactionNames
Definition: system_management.h:177
virtual bool check_reaction_implementation(const ReactionNames name) const
Check that whether a particular reaction is implemented in the class or not.
Definition: platinum.h:174
double alpha_a_ORR
Anodic transfer coefficient (ORR), given in the parameter file.
Definition: platinum.h:203
Definition: platinum.h:26
virtual double derivative_exchange_current_density(const double &) const
Compute the derivative of exchange current density [A/cm^2] w.r.t temperature [Kelvin] for the reacti...
static Platinum const * PROTOTYPE
Create prototype for the layer.
Definition: platinum.h:197
double c_O2_ref_ORR
Reference oxygen concentration [mol/cm^3] for ORR, given in the parameter file.
Definition: platinum.h:218
virtual boost::shared_ptr< FuelCellShop::Material::CatalystBase > create_replica()
This member function is used to create an object of type gas diffusion layer.
Definition: platinum.h:187
virtual void set_reaction_kinetics(const ReactionNames name)
Member function used to specify the reaction for which the kinetic parameters are needed...
Definition: platinum.h:158
double i_0_ref_HOR
Reference exchange current density [ A/cm^2] for HOR, given in the parameter file.
Definition: platinum.h:236
virtual void alpha_anodic(double &) const
Return anodic transfer coefficient for the reaction specified using set_reaction_kinetics method...