OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
This class implements the interface to compute the properties of a "standard" catalyst. More...
#include <catalyst_base.h>
Public Member Functions | |
Initializaton | |
virtual void | set_reaction_kinetics (const ReactionNames) |
Member function used to specify the reaction for which the kinetic parameters are needed. More... | |
Accessors and Info | |
virtual void | alpha_anodic (double &) const |
Return anodic transfer coefficient for the reaction specified using set_reaction_kinetics method. More... | |
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. More... | |
virtual void | alpha_cathodic (double &) const |
Return cathodic transfer coefficient for the reaction specified using set_reaction_kinetics method. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
ReactionNames | get_reaction_name () const |
Member function to return the name of the reaction set in the catalyst material class. More... | |
std::string | get_kinetic_parameter_method () const |
Member function to return method for kinetics parameters (ORR). More... | |
double | get_density () const |
Obtain the density [gm/cm^3 ]. More... | |
Public Member Functions inherited from FuelCellShop::Material::BaseMaterial | |
void | set_derivative_flags (const std::vector< VariableNames > &flags) |
Set the names of FCST solution variables with respect to which you would like to compute the derivatives of material properties. More... | |
const std::string & | name_material () const |
Return the name of the layer. More... | |
virtual void | print_material_properties () const |
This function prints out the material properties. More... | |
Static Public Member Functions | |
Instance Delivery (Public functions) | |
static void | declare_Catalyst_parameters (ParameterHandler ¶m) |
Function used to declare all the data necessary in the parameter files for all BaseKinetics children. More... | |
static boost::shared_ptr < FuelCellShop::Material::CatalystBase > | create_Catalyst (ParameterHandler ¶m, std::string catalyst_name) |
Function called in create_CatalystLayer and used to select the appropriate CatalystBase children that will be used in the layer. More... | |
Protected Types | |
Instance Delivery (Types) | |
typedef std::map< std::string, FuelCellShop::Material::CatalystBase * > | _mapFactory |
This object is used to store all objects of type CatalystBase. More... | |
Protected Member Functions | |
Constructors, destructor, and parameter initalization | |
CatalystBase (std::string name) | |
Constructor. More... | |
CatalystBase () | |
Constructor. More... | |
virtual | ~CatalystBase () |
Destructor. More... | |
virtual void | declare_parameters (ParameterHandler ¶m) const |
Declare parameters for a parameter file. More... | |
virtual void | initialize (ParameterHandler ¶m) |
Initialize parameters. More... | |
Instance Delivery (Private functions) | |
virtual boost::shared_ptr < FuelCellShop::Material::CatalystBase > | create_replica () |
This member function is used to create an object of type CatalystBase. More... | |
Protected member functions: | |
virtual bool | check_reaction_implementation (const std::string) const |
Check that whether a particular reaction is implemented in the class or not. More... | |
Protected Member Functions inherited from FuelCellShop::Material::BaseMaterial | |
BaseMaterial () | |
Constructor. More... | |
BaseMaterial (const std::string &name) | |
Constructor. More... | |
virtual | ~BaseMaterial () |
Destructor. More... | |
Static Protected Member Functions | |
Instance Delivery (Private and static) | |
static _mapFactory * | get_mapFactory () |
Protected Attributes | |
Internal variables | |
ReactionNames | name_reaction_kinetics |
Reaction name for which the class returns kinetic parameters. More... | |
std::string | method_kinetics_ORR |
Method for kinetics parameters (ORR), given in the parameter file. More... | |
double | density |
Density of catalyst particles [gm/cm^3 ]. More... | |
Protected Attributes inherited from FuelCellShop::Material::BaseMaterial | |
const std::string | name |
Name of the layer. More... | |
std::vector< VariableNames > | derivative_flags |
Flags for derivatives: These flags are used to request derivatives of material properties. More... | |
This class implements the interface to compute the properties of a "standard" catalyst.
Note that there are many types of catalyst such as platinum, ruthinium, core-shell Pt alloys and non-precious metal alloys. This class serves a common interface for each one of these types. It implements member functions to declare the parameter file for each catalyst, read the parameter file and select the appropriate catalysts based on the user input.
The properties of each catalyst are implemented in the children classes. The most important properties that define our catalyst are the activity and reaction order parameters. Therefore, before the layer can be used, the reaction that it is catalyzing should be specified.
After the reaction is known, the class return the exchange current density, transfer coefficient, reaction order etc. for the type of catalysts. If the reaction is a multi-step reaction, it might return additional parameters such as the free-energies of activation for each elementary reaction.
This class should never be used in an application. Instead, the class is used inside FuelCellShop::Kinetics::BaseKinetics objects. To use the class, follow the instructions below.
|
protected |
This object is used to store all objects of type CatalystBase.
|
inlineprotected |
Constructor.
|
inlineprotected |
Constructor.
|
inlineprotectedvirtual |
Destructor.
|
inlinevirtual |
Return anodic transfer coefficient for the reaction specified using set_reaction_kinetics method.
Reimplemented in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinevirtual |
Return cathodic transfer coefficient for the reaction specified using set_reaction_kinetics method.
Reimplemented in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
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. Moreover, it is recommended to use this method in set_reaction_kinetics method as an assertation check.
References FcstUtilities::log.
|
inlinestatic |
Function called in create_CatalystLayer and used to select the appropriate CatalystBase children that will be used in the layer.
The name of the CatalystBase children object to be used is provided in catalyst_name.
The name of the CatalystBase children object is provided in the ParameterHandler in the CatalystLayer subsection as follows:
current options are [ Platinum ]
References get_mapFactory(), and FcstUtilities::log.
|
inlineprotectedvirtual |
This member function is used to create an object of type CatalystBase.
Reimplemented in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinestatic |
Function used to declare all the data necessary in the parameter files for all BaseKinetics children.
References get_mapFactory().
|
inlineprotectedvirtual |
Declare parameters for a parameter file.
Reimplemented from FuelCellShop::Material::BaseMaterial.
Reimplemented in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinevirtual |
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.
References FcstUtilities::log.
|
inlinevirtual |
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.
References FcstUtilities::log.
|
inlinevirtual |
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 in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinevirtual |
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 in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinevirtual |
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 in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inline |
Obtain the density [gm/cm^3
].
References density.
|
inline |
Member function to return method for kinetics parameters (ORR).
References method_kinetics_ORR.
|
inlinestaticprotected |
Referenced by create_Catalyst(), and declare_Catalyst_parameters().
|
inline |
Member function to return the name of the reaction set in the catalyst material class.
References name_reaction_kinetics, and noReaction.
|
inlineprotectedvirtual |
Initialize parameters.
Reimplemented from FuelCellShop::Material::BaseMaterial.
Reimplemented in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinevirtual |
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 in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinevirtual |
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 in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinevirtual |
Member function used to specify the reaction for which the kinetic parameters are needed.
Reimplemented in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
inlinevirtual |
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 in FuelCellShop::Material::Platinum.
References FcstUtilities::log.
|
protected |
Density of catalyst particles [gm/cm^3
].
Referenced by get_density().
|
protected |
Method for kinetics parameters (ORR), given in the parameter file.
Referenced by get_kinetic_parameter_method().
|
protected |
Reaction name for which the class returns kinetic parameters.
Referenced by get_reaction_name(), and FuelCellShop::Material::Platinum::set_reaction_kinetics().