OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
This class is used to compute non-linear reaction heat source terms in a catalyst layer. More...
#include <reaction_heat.h>
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 > ¤t) 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 > > ¤t_derived, const std::vector< double > ¤t) 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< VariableNames > | derivative_flags |
Flags for derivatives: These flags are used to request derivatives which are computed using the derivative_heat_source function. More... | |
FuelCellShop::Kinetics::BaseKinetics * | kinetics |
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/ ] 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... | |
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 can be written in following three components for ORR:
Similarly, the can be written for HOR:
where,
A/cm^3
], retrieved from kinetics object.ORR
and HOR
respectively. They are defined such that: .W/cm^3
and its derivatives.FuelCellShop::Equation::ReactionHeat::ReactionHeat | ( | ) |
Constructor.
FuelCellShop::Equation::ReactionHeat::~ReactionHeat | ( | ) |
Destructor.
|
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.
|
inlineprotected |
Function to compute entropy change of reaction [J/
] as a function of temperature [(mol-K
)
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.
|
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:
ORR
, defaulted to TRUE.HOR
, defaulted to TRUE.ORR
, defaulted to 1.0 (i.e., complete reversible (entropic) heat is released in the ORR
).ORR
, defaulted to TRUE. References Constants::F().
|
inline |
Set the variables for which we would like to compute the derivatives.
|
inline |
Set the electrolyte phase potential.
The potential should be in Volts.
References FuelCellShop::SolutionVariable::get_variablename(), and protonic_electrical_potential.
|
inline |
Function to set Kinetics for enabling calculation source terms.
|
inline |
Set the solid phase potential.
The potential should be in Volts.
References electronic_electrical_potential, and FuelCellShop::SolutionVariable::get_variablename().
|
inline |
Set temperature.
The temperature should be in Kelvin.
References FuelCellShop::SolutionVariable::get_variablename(), and temperature_of_REV.
|
protected |
Flags for derivatives: These flags are used to request derivatives which are computed using the derivative_heat_source function.
|
protected |
Factor for irreversible heating in HOR.
|
protected |
Factor for irreversible heating in ORR.
|
protected |
Factor for reversible heating in HOR.
|
protected |
Factor for reversible heating in ORR.
|
protected |
Factor for water vaporization heat sink in ORR.
|
protected |
Flag to check whether factors are initialized or not.
|
protected |
Store pointer to the kinetics object.
|
protected |
Struct storing a pointer to the solution vector for the electrolyte potential.
|
protected |
Struct stroing a pointer to the solution vector for the electronic/solid potential.
|
protected |
Struct stroing a pointer to the solution vector for the temperature.