OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Static Public Attributes | Protected Member Functions | List of all members
FuelCellShop::Material::Platinum Class Reference

#include <platinum.h>

Inheritance diagram for FuelCellShop::Material::Platinum:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::Material::Platinum:
Collaboration graph
[legend]

Public Member Functions

Constructors, destructor, and parameter initalization
 Platinum (std::string name="Platinum")
 Constructor.
 
 Platinum (const bool)
 PROTOTYE Constructor.
 
 ~Platinum ()
 Destructor.
 
virtual void declare_parameters (ParameterHandler &param) const
 
virtual void set_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler &param)
 
virtual void initialize (ParameterHandler &param)
 Member function used to read in data and initialize the necessary data from the parameter file to compute the coefficients.
 
Kinetic Parameter Accessors
virtual void alpha_anodic (double &) const
 Return anodic transfer coefficient for the reaction specified using set_reaction_kinetics method.
 
virtual void alpha_cathodic (double &) const
 Return cathodic transfer coefficient for the reaction specified using set_reaction_kinetics method.
 
virtual double exchange_current_density (const double &) const
 Compute the exchange current density [A/cm^2] for the reaction specified using set_reaction_kinetics method.
 
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 reaction specified using set_reaction_kinetics method.
 
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 voltage_cell_th (const double &) const
 Compute the theroretical cell voltage [Volts] as a function of temperature, 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.
 
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 the reaction specified using set_reaction_kinetics method.
 
virtual void set_reaction_kinetics (const std::string name)
 Member function used to specify the reaction for which the kinetic parameters are needed.
 
- Public Member Functions inherited from FuelCellShop::Material::CatalystBase
virtual void derivative_alpha_anodic (std::vector< double > &) const
 Return derivative of anodic transfer coefficient for the reaction specified using set_reaction_kinetics method with respect to the solution and design parameters specified using set_derivative_flags method.
 
virtual void derivative_alpha_cathodic (std::vector< double > &) const
 Return derivative of cathodic transfer coefficient for the reaction specified using set_reaction_kinetics method with respect to the solution and design parameters specified using set_derivative_flags method.
 
std::string get_reaction_name () const
 Member function to return the name of the reaction set in the catalyst material class.
 
double get_density () const
 Obtain the density [gm/cm^3].
 
- Public Member Functions inherited from FuelCellShop::Material::BaseMaterial
void set_derivative_flags (const std::vector< VariableNames > &flags)
 Set the variables for which you would like to compute the derivatives.
 
const std::string & name_material ()
 Return the name of the layer.
 
virtual void print_material_properties () const
 This function prints out the material properties.
 

Static Public Attributes

static const std::string concrete_name
 Name of the class.
 

Protected Member Functions

virtual bool check_reaction_implementation (const std::string name) const
 Check that whether a particular reaction is implemented in the class or not.
 
- Protected Member Functions inherited from FuelCellShop::Material::CatalystBase
 CatalystBase (std::string name)
 Constructor.
 
 CatalystBase ()
 Constructor.
 
virtual ~CatalystBase ()
 Destructor.
 
- Protected Member Functions inherited from FuelCellShop::Material::BaseMaterial
 BaseMaterial ()
 Constructor.
 
 BaseMaterial (const std::string &name)
 Constructor.
 
virtual ~BaseMaterial ()
 Destructor.
 

Private Member Functions

Instance Delivery (Member function to create replica)
virtual boost::shared_ptr
< FuelCellShop::Material::CatalystBase
create_replica ()
 This member function is used to create an object of type gas diffusion layer.
 

Private Attributes

Internal Data
double alpha_a_ORR
 Anodic transfer coefficient (ORR), given in the parameter file.
 
double alpha_c_ORR
 Cathodic transfer coefficient (ORR), given in the parameter file.
 
std::string method_kinetics_ORR
 Method for kinetics parameters (ORR), given in the parameter file.
 
double given_OCV_ORR
 Given value of open cell voltage (OCV) for ORR, given in the parameter file.
 
double given_OCV_HOR
 Given value of open cell voltage (OCV) for HOR, given in the parameter file.
 
double i_0_ref_ORR
 Reference exchange current density [ \( \mu \) A/cm^2] for ORR, given in the parameter file.
 
double c_O2_ref_ORR
 Reference oxygen concentration [mol/cm^3] for ORR, given in the parameter file.
 
double c_H_ref_ORR
 Reference proton concentration [mol/cm^3] for ORR, given in the parameter file.
 
double gamma_O2_ORR
 Reaction order corresponding to oxygen gas for ORR, given in the parameter file.
 
double gamma_H_ORR
 Reaction order corresponding to protons for ORR, given in the parameter file.
 
double alpha_a_HOR
 Anodic transfer coefficient (HOR), given in the parameter file.
 
double alpha_c_HOR
 Cathodic transfer coefficient (HOR), given in the parameter file.
 
double i_0_ref_HOR
 Reference exchange current density [ \( \mu \) A/cm^2] for HOR, given in the parameter file.
 
double c_H2_ref_HOR
 Reference hydrogen concentration [mol/cm^3] for HOR, given in the parameter file.
 
double gamma_H2_HOR
 Reaction order corresponding to hydrogen gas for HOR, given in the parameter file.
 

Static Private Attributes

Instance Delivery (PROTOTYPE)
static Platinum const * PROTOTYPE
 Create prototype for the layer.
 

Additional Inherited Members

- Static Public Member Functions inherited from FuelCellShop::Material::CatalystBase
static void declare_Catalyst_parameters (ParameterHandler &param)
 Function used to declare all the data necessary in the parameter files for all BaseKinetics children.
 
static void set_Catalyst_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler &param)
 
static boost::shared_ptr
< FuelCellShop::Material::CatalystBase
create_Catalyst (ParameterHandler &param, std::string catalyst_name)
 Function called in create_CatalystLayer and used to select the appropriate CatalystBase children that will be used in the layer.
 
- Protected Types inherited from FuelCellShop::Material::CatalystBase
typedef std::map< std::string,
FuelCellShop::Material::CatalystBase * > 
_mapFactory
 This object is used to store all objects of type CatalystBase.
 
- Static Protected Member Functions inherited from FuelCellShop::Material::CatalystBase
static _mapFactoryget_mapFactory ()
 
- Protected Attributes inherited from FuelCellShop::Material::CatalystBase
std::string name_reaction_kinetics
 Reaction name for which the class returns kinetic parameters.
 
double density
 Density of catalyst particles [gm/cm^3].
 

Constructor & Destructor Documentation

FuelCellShop::Material::Platinum::Platinum ( std::string  name = "Platinum")

Constructor.

FuelCellShop::Material::Platinum::Platinum ( const bool  )

PROTOTYE Constructor.

Warning
For internal use only.
FuelCellShop::Material::Platinum::~Platinum ( )

Destructor.

Member Function Documentation

virtual void FuelCellShop::Material::Platinum::alpha_anodic ( double &  ) const
virtual

Return anodic transfer coefficient for the reaction specified using set_reaction_kinetics method.

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual void FuelCellShop::Material::Platinum::alpha_cathodic ( double &  ) const
virtual

Return cathodic transfer coefficient for the reaction specified using set_reaction_kinetics method.

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual bool FuelCellShop::Material::Platinum::check_reaction_implementation ( const std::string  name) const
inlineprotectedvirtual

Check that whether a particular reaction is implemented in the class or not.

It takes a std::string as an input argument, against which the check is done. For Developers: As more reactions are implemented in the class, this method should be extended.

Reimplemented from FuelCellShop::Material::CatalystBase.

Referenced by set_reaction_kinetics().

Here is the caller graph for this function:

virtual boost::shared_ptr<FuelCellShop::Material::CatalystBase > FuelCellShop::Material::Platinum::create_replica ( )
inlineprivatevirtual

This member function is used to create an object of type gas diffusion layer.

Warning
This class MUST be redeclared in every child.

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual void FuelCellShop::Material::Platinum::declare_parameters ( ParameterHandler &  param) const
virtual
High Priority Todo:
THIS SHOULD BE PRIVATE

Declare parameters.

The parameters for the Platinum class will usually be declared inside the layer classes.

The parameters that are declared in the input file are as follows:

(...) <- Other sections here
subsection Materials
subsection name <- This value is specified during the constructor. By default Platinum
set Density [g/cm^3] = 21.5
//############ Oxygen Reduction Reaction Parameters ############
set Anodic transfer coefficient (ORR) = 0.5
set Cathodic transfer coefficient (ORR) = 1.0
set Method for kinetics parameters (ORR) = Parthasarathy # Options are: Given|Parthasarathy|Parthasarathy_hcd|Double_trap|Neyerlin
set Given Open Cell Voltage (ORR) [V] = 1.229
set Given Open Cell Voltage (HOR) [V] = 0.0
set Reference exchange current density (ORR) [uA/cm2] = 2.707e-2
set Reference oxygen concentration (ORR) = 0.725e-5
set Reference proton concentration (ORR) = 1.818e-3
set Oxygen reaction order (ORR) = 1.0
set Proton reaction order (ORR) = 1.0
//############ Hydrogen Oxidation Reaction Parameters ############
set Anodic transfer coefficient (HOR) = 0.5
set Cathodic transfer coefficient (HOR) = 0.5
set Reference exchange current density (HOR) [uA/cm2] = 1e6
set Reference hydrogen concentration (HOR) = 5.64e-5
set Hydrogen reaction order (HOR) = 0.25
end
end
(...)

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual double FuelCellShop::Material::Platinum::derivative_exchange_current_density ( const double &  ) const
virtual

Compute the derivative of exchange current density [A/cm^2] w.r.t temperature [Kelvin] for the reaction specified using set_reaction_kinetics method.

It takes temperature [Kelvin] as an input argument by reference and returns the derivative.

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual double FuelCellShop::Material::Platinum::dvoltage_cell_th_dT ( const double &  ) const
virtual

Compute the derivative of theoretical cell voltage [Volts] w.r.t temperature [Kelvin], for the reaction specified using set_reaction_kinetics method.

It takes temperature [Kelvin] as an input argument and returns the derivative.

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual double FuelCellShop::Material::Platinum::exchange_current_density ( const double &  ) const
virtual

Compute the exchange current density [A/cm^2] for the reaction specified using set_reaction_kinetics method.

It takes temperature [Kelvin] as an input argument by reference and returns the exchange current density [A/cm^2].

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual void FuelCellShop::Material::Platinum::initialize ( ParameterHandler &  param)
virtual

Member function used to read in data and initialize the necessary data from the parameter file to compute the coefficients.

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual void FuelCellShop::Material::Platinum::reaction_order ( const std::vector< VariableNames > &  ,
std::map< VariableNames, double > &   
) const
virtual

Compute the reaction order of the electrochemical reaction with respect to each species involved in the reaction specified using set_reaction_kinetics method.

The reaction might depend on more than one species, therefore this class returns a std::map of reaction orders referenced using VariableNames as Key. This map is returned by reference (second argument). It takes a vector of VariableNames as first argument, corresponding to those solution variables for whose reaction orders are required.

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual void FuelCellShop::Material::Platinum::reference_concentration ( const std::vector< VariableNames > &  ,
std::map< VariableNames, double > &   
) const
virtual

Compute the reference concentration for the reaction specified using set_reaction_kinetics method.

The reaction might depend on more than one species, therefore this class returns a std::map of reference concentrations referenced using VariableNames as Key. This map is returned by reference (second argument). It takes a vector of VariableNames as first argument, corresponding to those solution variables for whose reference concentrations are required.

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual void FuelCellShop::Material::Platinum::set_parameters ( const std::vector< std::string > &  name_dvar,
const std::vector< double > &  value_dvar,
ParameterHandler &  param 
)
virtual
High Priority Todo:
THIS SHOULD BE PRIVATE

Member function used to change the values in the parameter file for a given list of parameters.

  • name_dvar should ideally contain the string as it would appear in the input parameter file.
  • value_dvar contains the value that the variable should be set at.
  • param is the ParameterHandler that contains all the information that has been read from file.

List of available std::string that can be changed, i.e. name_dvar are given below:

  • "alpha_a_ORR" : anodic transfer coefficient (ORR)
  • "alpha_c_ORR" : cathodic transfer coefficient (ORR)
  • "i_0_ref_ORR" : reference exchange current density (ORR) [ \( \mu \) A/cm^2]
  • "c_O2_ref_ORR" : reference oxygen concentration (ORR) [mol/cm^3]
  • "c_H_ref_ORR" : reference proton concentration (ORR) [mol/cm^3]
  • "gamma_O2_ORR" : oxygen reaction order (ORR)
  • "gamma_H_ORR" : proton reaction order (ORR)
  • "alpha_a_HOR" : anodic transfer coefficient (HOR)
  • "alpha_c_HOR" : cathodic transfer coefficient (HOR)
  • "i_0_ref_HOR" : reference exchange current density (HOR) [ \( \mu \) A/cm^2]
  • "c_H2_ref_HOR" : reference hydrogen concentration (HOR) [mol/cm^3]
  • "gamma_H2_HOR" : hydrogen reaction order (HOR)

Reimplemented from FuelCellShop::Material::CatalystBase.

virtual void FuelCellShop::Material::Platinum::set_reaction_kinetics ( const std::string  name)
inlinevirtual

Member function used to specify the reaction for which the kinetic parameters are needed.

Method will fail if any other std::string is passed, other than the ones mentioned below:

  • "ORR"
  • "HOR"

Reimplemented from FuelCellShop::Material::CatalystBase.

References check_reaction_implementation(), FuelCellShop::Material::BaseMaterial::name, and FuelCellShop::Material::CatalystBase::name_reaction_kinetics.

Here is the call graph for this function:

virtual double FuelCellShop::Material::Platinum::voltage_cell_th ( const double &  ) const
virtual

Compute the theroretical cell voltage [Volts] as a function of temperature, for the reaction specified using set_reaction_kinetics method.

It takes temperature [Kelvin] as an input argument and returns the voltage.

Reimplemented from FuelCellShop::Material::CatalystBase.

Member Data Documentation

double FuelCellShop::Material::Platinum::alpha_a_HOR
private

Anodic transfer coefficient (HOR), given in the parameter file.

double FuelCellShop::Material::Platinum::alpha_a_ORR
private

Anodic transfer coefficient (ORR), given in the parameter file.

double FuelCellShop::Material::Platinum::alpha_c_HOR
private

Cathodic transfer coefficient (HOR), given in the parameter file.

double FuelCellShop::Material::Platinum::alpha_c_ORR
private

Cathodic transfer coefficient (ORR), given in the parameter file.

double FuelCellShop::Material::Platinum::c_H2_ref_HOR
private

Reference hydrogen concentration [mol/cm^3] for HOR, given in the parameter file.

double FuelCellShop::Material::Platinum::c_H_ref_ORR
private

Reference proton concentration [mol/cm^3] for ORR, given in the parameter file.

double FuelCellShop::Material::Platinum::c_O2_ref_ORR
private

Reference oxygen concentration [mol/cm^3] for ORR, given in the parameter file.

const std::string FuelCellShop::Material::Platinum::concrete_name
static

Name of the class.

This name is used to select the layer.

double FuelCellShop::Material::Platinum::gamma_H2_HOR
private

Reaction order corresponding to hydrogen gas for HOR, given in the parameter file.

double FuelCellShop::Material::Platinum::gamma_H_ORR
private

Reaction order corresponding to protons for ORR, given in the parameter file.

double FuelCellShop::Material::Platinum::gamma_O2_ORR
private

Reaction order corresponding to oxygen gas for ORR, given in the parameter file.

double FuelCellShop::Material::Platinum::given_OCV_HOR
private

Given value of open cell voltage (OCV) for HOR, given in the parameter file.

double FuelCellShop::Material::Platinum::given_OCV_ORR
private

Given value of open cell voltage (OCV) for ORR, given in the parameter file.

double FuelCellShop::Material::Platinum::i_0_ref_HOR
private

Reference exchange current density [ \( \mu \) A/cm^2] for HOR, given in the parameter file.

double FuelCellShop::Material::Platinum::i_0_ref_ORR
private

Reference exchange current density [ \( \mu \) A/cm^2] for ORR, given in the parameter file.

std::string FuelCellShop::Material::Platinum::method_kinetics_ORR
private

Method for kinetics parameters (ORR), given in the parameter file.

Platinum const* FuelCellShop::Material::Platinum::PROTOTYPE
staticprivate

Create prototype for the layer.


The documentation for this class was generated from the following file: