OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
FuelCellShop::Kinetics::DualPathKinetics Class Reference

This class will contain the implementation of the dual path kinetic kinetic model as developed by Wang et al and described in the following paper: More...

#include <dual_path_kinetics.h>

Inheritance diagram for FuelCellShop::Kinetics::DualPathKinetics:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::Kinetics::DualPathKinetics:
Collaboration graph
[legend]

Public Member Functions

Constructor, destructor and initialization
 DualPathKinetics ()
 Constructor. More...
 
 DualPathKinetics (const bool)
 Constructor. More...
 
 ~DualPathKinetics ()
 Destructor. More...
 
virtual void declare_parameters (ParameterHandler &param) const
 Declare parameters for a parameter file. More...
 
virtual void initialize (ParameterHandler &param)
 Member function used to read in data and initialize the necessary data to compute the coefficients. More...
 
Initialization
virtual void set_reaction_kinetics (const ReactionNames &name)
 Member function used to set the reaction name in the Dual path kinetics object. More...
 
Computational methods
virtual void current_density (std::vector< double > &)
 Member function that computes the current, at every quadrature point in the cell. More...
 
virtual void derivative_current (std::map< VariableNames, std::vector< double > > &)
 Function to return the derivative of the current density w.r.t solution variables. More...
 
- Public Member Functions inherited from FuelCellShop::Kinetics::BaseKinetics
virtual ~BaseKinetics ()
 Destructor. More...
 
virtual bool has_coverage (const VariableNames &type)
 
void set_electrolyte_potential (const SolutionVariable &phi)
 Set the electrolyte phase potential. More...
 
void set_solid_potential (const SolutionVariable &phi)
 Set the solid phase potential. More...
 
void set_temperature (const SolutionVariable &temperature)
 Set temperature. More...
 
void set_reactant_concentrations (const std::vector< SolutionVariable > &conc_vec)
 Set reactant concentrations at the catalyst/electrolyte interface. More...
 
void set_derivative_flags (const std::vector< VariableNames > &flags)
 Set the variables for which you would like to compute the derivaitives. More...
 
void set_catalyst (FuelCellShop::Material::CatalystBase *cat_in)
 Set a pointer to the catalyst that will be used. More...
 
void set_electrolyte (FuelCellShop::Material::PolymerElectrolyteBase *electrolyte_in)
 Member function used to set the electrolyte pointer to that used by the application. More...
 
virtual void set_reaction_kinetics (const ReactionNames name)
 Member function used to specify the reaction for which the kinetic parameters are needed, for example for a Platinum catalyst, we can specify that we need the kinetic parameters for either the oxygen reduction reaction (ORR) or the hydrogen oxidation reaction (HOR) More...
 
void set_p_t (const double &P_Tot)
 Set the total gas pressure [Pascals] in the cell. More...
 
ReactionNames get_reaction_name () const
 Returns the name of the reaction that this kinetics class is using. More...
 
FuelCellShop::Material::CatalystBaseget_cat () const
 Function to get pointer to catalyst class. More...
 
virtual void compute_coverages (const std::string &name_species, std::vector< double > &coverage) const
 Used to return the coverage of the intermediate species if they are computed. More...
 
virtual void OH_coverage (std::vector< double > &) const
 Used to return the coverage of the intermediate species if they are computed. More...
 
virtual void O_coverage (std::vector< double > &) const
 Used to return the coverage of the intermediate species if they are computed. More...
 

Static Public Attributes

Instance Delivery (Public variables)
static const std::string concrete_name
 Concrete name used for objects of this class. More...
 

Instance Delivery

static DualPathKinetics const * PROTOTYPE
 Create prototype for the layer. More...
 
virtual boost::shared_ptr
< FuelCellShop::Kinetics::BaseKinetics
create_replica ()
 This member function is used to create an object of type gas diffusion layer. More...
 

Kinetics parameters

double ref_conc_H2
 Reference concentration for hydrogen, $ H_2 $. More...
 
double j_0T
 TV exchange current density [A/cm^2]. More...
 
double j_0H
 HV exchange current density [A/cm^2]. More...
 
double potential_constant
 Potential range constant. More...
 
double ref_potential
 Reference potential. More...
 
virtual void init_kin_param ()
 Method used to initialize reference concentration of hydrogen for the reaction, and number of quadrature points in the cell. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from FuelCellShop::Kinetics::BaseKinetics
static void declare_Kinetics_parameters (ParameterHandler &param)
 Function used to declare all the data necessary in the parameter files for all BaseKinetics children. More...
 
static boost::shared_ptr
< FuelCellShop::Kinetics::BaseKinetics
create_Kinetics (ParameterHandler &param, std::string kinetics_name)
 Function called in create_CatalystLayer and used to select the appropriate BaseKinetics type that will be used in the layer. More...
 
- Protected Types inherited from FuelCellShop::Kinetics::BaseKinetics
typedef std::map< std::string,
BaseKinetics * > 
_mapFactory
 This object is used to store all objects of type BaseKinetics. More...
 
- Protected Member Functions inherited from FuelCellShop::Kinetics::BaseKinetics
 BaseKinetics ()
 Constructor. More...
 
- Static Protected Member Functions inherited from FuelCellShop::Kinetics::BaseKinetics
static _mapFactoryget_mapFactory ()
 
- Protected Attributes inherited from FuelCellShop::Kinetics::BaseKinetics
double R
 Universal gas constant. More...
 
double F
 Universal Farday's constant. More...
 
double K
 Boltzmann constant. More...
 
double p_total
 Total gas pressure [Pascals] in the cell for isobaric case. More...
 
std::map< VariableNames,
SolutionVariable
reactants_map
 Map of SolutionVariables storing a pointer to the solution vector storing the concentration of each one of the reactants implemented. More...
 
SolutionVariable phi_m
 Struct storing a pointer to the solution vector for the electrolyte potential. More...
 
SolutionVariable phi_s
 Struct stroing a pointer to the solution vector for the electronic/solid potential. More...
 
SolutionVariable T
 Struct stroing a pointer to the solution vector for the temperature. More...
 
bool kin_param_initialized
 Boolean variable to determine whether init_kin_param has been already called or not. More...
 
ReactionNames name_reaction_kinetics
 Enumeration with the reaction name for which the class returns kinetic parameters. More...
 
std::vector< VariableNamesderivative_flags
 Flags for derivatives: These flags are used to request derivatives which are computed using the derivative_current function. More...
 
unsigned int n_quad
 Number of quadrature points in the cell. More...
 
FuelCellShop::Material::CatalystBasecatalyst
 Pointer to the catalyst object that is created at the application level and passed to the kinetics class using the set_catalyst function. More...
 
FuelCellShop::Material::PolymerElectrolyteBaseelectrolyte
 Pointer to the electrolyte object created in the application that is used to calculate the properties of the electrolyte in the catalyst layer. More...
 

Detailed Description

This class will contain the implementation of the dual path kinetic kinetic model as developed by Wang et al and described in the following paper:

J.X. Wang, T.E. Springer, R.R. Adzic, Dual-pathway kinetic equation for the hydrogen oxidation reaction on pt electrodes, Journal of the Electrochemical Society 153~(9) (2006) A1732–A1740.

In order to use this class, the user needs to provide the following in set_solution

Author
M. Moore, 2011-12
M. Bhaiya, 2013
M. Secanell, 2006-13

Constructor & Destructor Documentation

FuelCellShop::Kinetics::DualPathKinetics::DualPathKinetics ( )

Constructor.

It also initializes the default values for kinetics parameters.

FuelCellShop::Kinetics::DualPathKinetics::DualPathKinetics ( const bool  )

Constructor.

Warning
For internal use only
FuelCellShop::Kinetics::DualPathKinetics::~DualPathKinetics ( )

Destructor.

Member Function Documentation

virtual boost::shared_ptr<FuelCellShop::Kinetics::BaseKinetics > FuelCellShop::Kinetics::DualPathKinetics::create_replica ( )
inlineprotectedvirtual

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::Kinetics::BaseKinetics.

virtual void FuelCellShop::Kinetics::DualPathKinetics::current_density ( std::vector< double > &  )
virtual

Member function that computes the current, at every quadrature point in the cell.

Warning
This routine can only be called after potentials and concentrations have been initialized using set_* functions. See parent class.

Reimplemented from FuelCellShop::Kinetics::BaseKinetics.

virtual void FuelCellShop::Kinetics::DualPathKinetics::declare_parameters ( ParameterHandler &  param) const
virtual

Declare parameters for a parameter file.

Reimplemented from FuelCellShop::Kinetics::BaseKinetics.

virtual void FuelCellShop::Kinetics::DualPathKinetics::derivative_current ( std::map< VariableNames, std::vector< double > > &  )
virtual

Function to return the derivative of the current density w.r.t solution variables.

It returns a map of vectors containing derivative w.r.t solution variables / design variables set using set_derivative_flags method. Each vector can be accessed by using Key of the map, which correpsonds to the VariableNames (solution/design variable). This method takes input map by reference, hence the map is needed to be created at application/equation level with default arguments and passed inside this method.

Warning
Requesting derivatives with respect to molar fraction is deprecated. Please use concentrations at electrolyte|catalyst interface.

Reimplemented from FuelCellShop::Kinetics::BaseKinetics.

virtual void FuelCellShop::Kinetics::DualPathKinetics::init_kin_param ( )
inlineprotectedvirtual

Method used to initialize reference concentration of hydrogen for the reaction, and number of quadrature points in the cell.

Implements FuelCellShop::Kinetics::BaseKinetics.

References HOR, and hydrogen_concentration.

virtual void FuelCellShop::Kinetics::DualPathKinetics::initialize ( ParameterHandler &  param)
virtual

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

Reimplemented from FuelCellShop::Kinetics::BaseKinetics.

virtual void FuelCellShop::Kinetics::DualPathKinetics::set_reaction_kinetics ( const ReactionNames name)
inlinevirtual

Member function used to set the reaction name in the Dual path kinetics object.

It will return error if any string other than "HOR" is passed as an input argument.

References HOR, and FcstUtilities::log.

Member Data Documentation

const std::string FuelCellShop::Kinetics::DualPathKinetics::concrete_name
static

Concrete name used for objects of this class.

This name is used when setting up the subsection where the data is stored in the input file.

The data will be stored under

* subsection concrete_name
*
* end
*
double FuelCellShop::Kinetics::DualPathKinetics::j_0H
protected

HV exchange current density [A/cm^2].

double FuelCellShop::Kinetics::DualPathKinetics::j_0T
protected

TV exchange current density [A/cm^2].

double FuelCellShop::Kinetics::DualPathKinetics::potential_constant
protected

Potential range constant.

DualPathKinetics const* FuelCellShop::Kinetics::DualPathKinetics::PROTOTYPE
staticprotected

Create prototype for the layer.

double FuelCellShop::Kinetics::DualPathKinetics::ref_conc_H2
protected

Reference concentration for hydrogen, $ H_2 $.

double FuelCellShop::Kinetics::DualPathKinetics::ref_potential
protected

Reference potential.


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