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::Equation::ReactionHeat Class Reference

This class is used to compute non-linear reaction heat source terms in a catalyst layer. More...

#include <reaction_heat.h>

Collaboration diagram for FuelCellShop::Equation::ReactionHeat:
Collaboration graph
[legend]

Public Member Functions

Constructor, Destructor and Initialization
 ReactionHeat ()
 Constructor. More...
 
 ~ReactionHeat ()
 Destructor. More...
 
void set_kinetics (FuelCellShop::Kinetics::BaseKinetics *kin)
 Function to set Kinetics for enabling calculation source terms. More...
 
Initialization methods for computation
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_derivative_flags (const std::vector< VariableNames > &flags)
 Set the variables for which we would like to compute the derivatives. More...
 
void initialize_factors (const bool &flag_irrev_ORR=true, const bool &flag_irrev_HOR=true, const bool &flag_rev_heat=true, const double &rev_heat_ORR_coef=1.0, const bool &flag_single_phase_ORR=true)
 Method to initialize the flags and factors corresponding to various source term components in the application. More...
 
Source term computation methods
void heat_source (std::vector< double > &heat, const std::vector< double > &current) const
 Member function that computes the non-linear thermal source terms, as a first argument by reference. More...
 
void derivative_heat_source (std::map< VariableNames, std::vector< double > > &heat_derived, const std::map< VariableNames, std::vector< double > > &current_derived, const std::vector< double > &current) const
 Member function that computes the derivative of the source terms with respect to the solution variables/parameters set using set_derivative_flags method. More...
 

Internal data and methods

std::vector< VariableNamesderivative_flags
 Flags for derivatives: These flags are used to request derivatives which are computed using the derivative_heat_source function. More...
 
FuelCellShop::Kinetics::BaseKineticskinetics
 Store pointer to the kinetics object. 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...
 
double factor_irrev_ORR
 Factor for irreversible heating in ORR. More...
 
double factor_irrev_HOR
 Factor for irreversible heating in HOR. More...
 
double factor_rev_ORR
 Factor for reversible heating in ORR. More...
 
double factor_rev_HOR
 Factor for reversible heating in HOR. More...
 
double factor_vap_ORR
 Factor for water vaporization heat sink in ORR. More...
 
bool factors_initialized
 Flag to check whether factors are initialized or not. More...
 
double entropy_rxn (const double &Temp) const
 Function to compute entropy change of reaction [J/(mol-K)] as a function of temperature [K]. More...
 
double deriv_entropy_rxn (const double &Temp) const
 Function to compute derivative of entropy change of reaction with respect to temperature [K]. More...
 

Detailed Description

This class is used to compute non-linear reaction heat source terms in a catalyst layer.

There are basically two sources of heat generation for an electro-chemical reaction. These are: Reversible Heat and Irreversible Heat

Besides this, there is an additional heat sink, accounting for complete evaporation of liquid water formed inside the Cathode catalyst layer (ORR ). This is done to maintain consistency with single phase formulation.

The $ \mathbf{S_{thermal}} $ can be written in following three components for ORR:

$ \qquad \mathbf{S_{thermal}} = \begin{cases} -j \left( \phi_s - \phi_m - E_{cathode,eq}(T) \right) \quad - \quad \text{Irreversible heat} \\ ~ \\ \frac{-j}{2F} T \Delta S(T) \times f_{ORR} \quad - \quad \text{Reversible Heat} \\ ~ \\ \frac{-j}{2F} h_{LV}(T) \quad - \quad \text{Evaporation of liquid water formed} \end{cases} $

Similarly, the $ \mathbf{S_{thermal}} $ can be written for HOR:

$ \qquad \mathbf{S_{thermal}} = \begin{cases} j \left( \phi_s - \phi_m - E_{anode,eq}(T) \right) \quad - \quad \text{Irreversible heat} \\ ~ \\ \frac{-j}{2F} T \Delta S(T) \times f_{HOR} \quad - \quad \text{Reversible Heat} \\ ~ \\ \end{cases} $

where,

Remarks
Following points to be noted:
  • Overpotential ( $ \eta $) is negative for ORR (Cathode side). Hence, a negative sign is included in the formulation.
  • Similarly, entropy change ( $ \Delta S $) for an exothermic reaction (ORR) is negative, hence a negative sign.
  • There is no water formation in HOR (Anode side), hence no water vaporization inside the anode catalyst layer.
  • This class computes heat source in W/cm^3 and its derivatives.
Note
Author
Madhur Bhaiya, 2012-2013

Constructor & Destructor Documentation

FuelCellShop::Equation::ReactionHeat::ReactionHeat ( )

Constructor.

FuelCellShop::Equation::ReactionHeat::~ReactionHeat ( )

Destructor.

Member Function Documentation

double FuelCellShop::Equation::ReactionHeat::deriv_entropy_rxn ( const double &  Temp) const
inlineprotected

Function to compute derivative of entropy change of reaction with respect to temperature [K].

void FuelCellShop::Equation::ReactionHeat::derivative_heat_source ( std::map< VariableNames, std::vector< double > > &  heat_derived,
const std::map< VariableNames, std::vector< double > > &  current_derived,
const std::vector< double > &  current 
) const

Member function that computes the derivative of the source terms with respect to the solution variables/parameters set using set_derivative_flags method.

This function takes the current [A/cm^3] and its derivatives computed from the catalyst layer object, as const third and second arguments respectively. It is also necessary to ensure that the derivative_flags set inside this object should atleast be there inside the derivative current map. The derivative of heat source is returned by reference in the first argument as a map.

double FuelCellShop::Equation::ReactionHeat::entropy_rxn ( const double &  Temp) const
inlineprotected

Function to compute entropy change of reaction [J/(mol-K)] as a function of temperature [K].

Ref: G. Lewis and M. Randall. International Critical Tables, volum 7. McGraw Hill, New York, 1930.

References FcstUtilities::log.

void FuelCellShop::Equation::ReactionHeat::heat_source ( std::vector< double > &  heat,
const std::vector< double > &  current 
) const

Member function that computes the non-linear thermal source terms, as a first argument by reference.

This function takes the current [A/cm^3] computed from the catalyst layer object, as a const second argument.

void FuelCellShop::Equation::ReactionHeat::initialize_factors ( const bool &  flag_irrev_ORR = true,
const bool &  flag_irrev_HOR = true,
const bool &  flag_rev_heat = true,
const double &  rev_heat_ORR_coef = 1.0,
const bool &  flag_single_phase_ORR = true 
)
inline

Method to initialize the flags and factors corresponding to various source term components in the application.

This method should normally be initialization of the application/equation class. It takes following arguments:

  • flag_irrev_ORR is for Irreversible heat generation in ORR, defaulted to TRUE.
  • flag_irrev_HOR is for Irreversible heat generation in HOR, defaulted to TRUE.
  • flag_rev_heat is for Reversible heat generation in the overall reaction forming liquid water product, defaulted to TRUE.
  • rev_heat_ORR_coef is for fraction of reversible heat released in the half-cell reaction of ORR, defaulted to 1.0 (i.e., complete reversible (entropic) heat is released in the ORR).
  • flag_single_phase_ORR is for complete vaporization of liquid water formed during ORR, defaulted to TRUE.

References Constants::F().

Here is the call graph for this function:

void FuelCellShop::Equation::ReactionHeat::set_derivative_flags ( const std::vector< VariableNames > &  flags)
inline

Set the variables for which we would like to compute the derivatives.

void FuelCellShop::Equation::ReactionHeat::set_electrolyte_potential ( const SolutionVariable phi)
inline

Set the electrolyte phase potential.

The potential should be in Volts.

References FuelCellShop::SolutionVariable::get_variablename(), and protonic_electrical_potential.

Here is the call graph for this function:

void FuelCellShop::Equation::ReactionHeat::set_kinetics ( FuelCellShop::Kinetics::BaseKinetics kin)
inline

Function to set Kinetics for enabling calculation source terms.

void FuelCellShop::Equation::ReactionHeat::set_solid_potential ( const SolutionVariable phi)
inline

Set the solid phase potential.

The potential should be in Volts.

References electronic_electrical_potential, and FuelCellShop::SolutionVariable::get_variablename().

Here is the call graph for this function:

void FuelCellShop::Equation::ReactionHeat::set_temperature ( const SolutionVariable temperature)
inline

Set temperature.

The temperature should be in Kelvin.

References FuelCellShop::SolutionVariable::get_variablename(), and temperature_of_REV.

Here is the call graph for this function:

Member Data Documentation

std::vector<VariableNames> FuelCellShop::Equation::ReactionHeat::derivative_flags
protected

Flags for derivatives: These flags are used to request derivatives which are computed using the derivative_heat_source function.

double FuelCellShop::Equation::ReactionHeat::factor_irrev_HOR
protected

Factor for irreversible heating in HOR.

double FuelCellShop::Equation::ReactionHeat::factor_irrev_ORR
protected

Factor for irreversible heating in ORR.

double FuelCellShop::Equation::ReactionHeat::factor_rev_HOR
protected

Factor for reversible heating in HOR.

double FuelCellShop::Equation::ReactionHeat::factor_rev_ORR
protected

Factor for reversible heating in ORR.

double FuelCellShop::Equation::ReactionHeat::factor_vap_ORR
protected

Factor for water vaporization heat sink in ORR.

bool FuelCellShop::Equation::ReactionHeat::factors_initialized
protected

Flag to check whether factors are initialized or not.

FuelCellShop::Kinetics::BaseKinetics* FuelCellShop::Equation::ReactionHeat::kinetics
protected

Store pointer to the kinetics object.

SolutionVariable FuelCellShop::Equation::ReactionHeat::phi_m
protected

Struct storing a pointer to the solution vector for the electrolyte potential.

SolutionVariable FuelCellShop::Equation::ReactionHeat::phi_s
protected

Struct stroing a pointer to the solution vector for the electronic/solid potential.

SolutionVariable FuelCellShop::Equation::ReactionHeat::T
protected

Struct stroing a pointer to the solution vector for the temperature.


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