OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
This class implements a Butler-Volmer kinetic model. More...
#include <bv_kinetics.h>
Public Member Functions | |
ButlerVolmerKinetics () | |
Constructor. More... | |
ButlerVolmerKinetics (const bool) | |
Constructor for PROTOTYPE. More... | |
~ButlerVolmerKinetics () | |
Destructor. More... | |
virtual void | declare_parameters (ParameterHandler &) const |
Declare parameters for a parameter file. More... | |
virtual void | initialize (ParameterHandler &) |
Member function used to read in data and initialize the necessary data to compute the coefficients. 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::CatalystBase * | get_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 ButlerVolmerKinetics 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 | alpha_c |
Cathodic transfer coefficient. More... | |
double | alpha_a |
Anodic transfer coefficient. More... | |
std::map< VariableNames, double > | ref_conc |
Map of reference concentrations. More... | |
std::map< VariableNames, double > | gamma |
Map of reaction orders. More... | |
virtual void | init_kin_param () |
Method used to initialize reference concentrations, reactions orders and cathodic/anodic transfer coefficient 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 ¶m) |
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 ¶m, 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 _mapFactory * | get_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< VariableNames > | derivative_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::CatalystBase * | catalyst |
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::PolymerElectrolyteBase * | electrolyte |
Pointer to the electrolyte object created in the application that is used to calculate the properties of the electrolyte in the catalyst layer. More... | |
This class implements a Butler-Volmer kinetic model.
The model is based on the following equation
where and are the reactant concentration and reference concentration respectively, is the reaction order, is the anodic transfer coefficient, is the cathodic transfer coefficient, and are the solid and electrolyte potentials and is the open cell voltage for the electrochemical reaction.
In the parameter file there are no parameters to specify since the kinetics parameters are given by the catalyst used.
FuelCellShop::Kinetics::ButlerVolmerKinetics::ButlerVolmerKinetics | ( | ) |
Constructor.
FuelCellShop::Kinetics::ButlerVolmerKinetics::ButlerVolmerKinetics | ( | const bool | ) |
Constructor for PROTOTYPE.
FuelCellShop::Kinetics::ButlerVolmerKinetics::~ButlerVolmerKinetics | ( | ) |
Destructor.
|
inlineprotectedvirtual |
This member function is used to create an object of type gas diffusion layer.
Reimplemented from FuelCellShop::Kinetics::BaseKinetics.
|
virtual |
Member function that computes the current, at every quadrature point in the cell.
Reimplemented from FuelCellShop::Kinetics::BaseKinetics.
|
inlinevirtual |
Declare parameters for a parameter file.
Reimplemented from FuelCellShop::Kinetics::BaseKinetics.
|
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.
Reimplemented from FuelCellShop::Kinetics::BaseKinetics.
|
inlineprotectedvirtual |
Method used to initialize reference concentrations, reactions orders and cathodic/anodic transfer coefficient for the reaction, and number of quadrature points in the cell.
Implements FuelCellShop::Kinetics::BaseKinetics.
|
inlinevirtual |
Member function used to read in data and initialize the necessary data to compute the coefficients.
Reimplemented from FuelCellShop::Kinetics::BaseKinetics.
|
protected |
Anodic transfer coefficient.
|
protected |
Cathodic transfer coefficient.
|
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
|
protected |
Map of reaction orders.
|
staticprotected |
Create prototype for the layer.
|
protected |
Map of reference concentrations.