OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Private Attributes | List of all members
FuelCellShop::PostProcessing::HORReactionHeatResponse< dim > Class Template Reference

Class used to calculate the heat generated due to HOR inside the anode catalyst layer. More...

#include <response_reaction_heat.h>

Inheritance diagram for FuelCellShop::PostProcessing::HORReactionHeatResponse< dim >:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::PostProcessing::HORReactionHeatResponse< dim >:
Collaboration graph
[legend]

Public Member Functions

Constructor, declaration and initialization
 HORReactionHeatResponse (const FuelCell::SystemManagement &sm, const FuelCellShop::Equation::ReactionSourceTerms< dim > *rst)
 
 ~HORReactionHeatResponse ()
 
void initialize (ParameterHandler &param)
 Initialize class. More...
 
Compute functional
void compute_responses (const typename DoFApplication< dim >::CellInfo &info, FuelCellShop::Layer::BaseLayer< dim > *const layer, std::map< FuelCellShop::PostProcessing::ResponsesNames, double > &respMap) const
 This member function computes the heat generated due to HOR inside the anode catalyst layer. More...
 
void compute_responses (std::vector< FuelCellShop::SolutionVariable > solution_variables, const typename DoFApplication< dim >::CellInfo &info, FuelCellShop::Layer::BaseLayer< dim > *const layer, std::map< FuelCellShop::PostProcessing::ResponsesNames, double > &respMap) const
 Routine used in order to compute the response with a modified solution (not the one stored in CellInfo object.) More...
 

Private Attributes

const
FuelCellShop::Equation::ReactionSourceTerms
< dim > * 
reaction_source
 Pointer to ReactionSourceTerms object. More...
 
FuelCellShop::Kinetics::BaseKineticskinetics
 Pointer to BaseKinetics object. More...
 
FuelCellShop::Equation::ReactionHeatreaction_heat
 Pointer to ReactionHeat object. More...
 
FuelCellShop::Equation::VariableInfo xHydrogen
 VariableInfo structure corresponding to the "hydrogen_molar_fraction". More...
 
FuelCellShop::Equation::VariableInfo xWater
 VariableInfo structure corresponding to the "water_molar_fraction". More...
 
FuelCellShop::Equation::VariableInfo phiS
 VariableInfo structure corresponding to the "electronic_electrical_potential". More...
 
FuelCellShop::Equation::VariableInfo phiM
 VariableInfo structure corresponding to the "protonic_electrical_potential". More...
 
FuelCellShop::Equation::VariableInfo tRev
 VariableInfo structure corresponding to the "temperature_of_REV". More...
 

Additional Inherited Members

- Protected Member Functions inherited from FuelCellShop::PostProcessing::BaseResponse< dim >
 BaseResponse (const FuelCell::SystemManagement &sm)
 Constructor. More...
 
virtual ~BaseResponse ()
 Destructor. More...
 
virtual void declare_parameters (ParameterHandler &param) const
 Declare any necessary parameters to compute the functional. More...
 
- Protected Attributes inherited from FuelCellShop::PostProcessing::BaseResponse< dim >
const FuelCell::SystemManagementsystem_management
 Pointer to system management. More...
 

Detailed Description

template<int dim>
class FuelCellShop::PostProcessing::HORReactionHeatResponse< dim >

Class used to calculate the heat generated due to HOR inside the anode catalyst layer.

For mathematical formulation details of various heat terms, viz., reversible and irreversible, please look at documentation of FuelCellShop::Equation::ReactionHeat. Also refer: M. Bhaiya, A. Putz and M. Secanell, "Analysis of non-isothermal effects on polymer electrolyte fuel cell electrode assemblies", Electrochimica Acta, 147C:294-309, 2014. DOI: http://dx.doi.org/10.1016/j.electacta.2014.09.051

Applications can divide the obtained total quantity by surface area, volume etc. of the layer, in order to determine surface density, volumetric density etc.

Remarks
  • This class will not work if anything other than the CL layer object is passed as argument.
  • FuelCellShop::Equation::ReactionSourceTerms object reference is required in the constructor, besides the FuelCell::SystemManagement object reference.
  • $ \phi_s $, $ \phi_m $, $ T_{rev} $, and ( $ x_{H_2} $ OR $ x_{H_2O} $) should be solved for in the application.
  • Flag parameters from the ReactionSourceTerms, eg, 'Irreversible heat source due to HOR' is Enabled or Not, are used by this class as well. So for eg, if 'Irreversible heat source due to HOR' is set to false, computing irreversible heat due to HOR will return zero.

Usage

In order to use this classes, first add them to your application as an object.

* #include "postprocessing/response_reaction_heat.h"
*
* (...)
*
*

In the class constructor, construct the class passing SystemManagement and ReactionSourceTerms object. These objects are used in order to find the solution variables as appropriate, and flag parameters.

* //---------------------------------------------------------------------------
* template <int dim>
* NAME::AppPemfcNIThermal<dim>::AppPemfcNIThermal(boost::shared_ptr<FuelCell::ApplicationCore::ApplicationData> data)
* :
* OptimizationBlockMatrixApplication<dim>(data),
* system_management(this->block_info, this->cell_couplings, this->flux_couplings),
* reaction_source_terms(system_management)
* anReactionHeat(system_management, &reaction_source_terms)
* {}
*

Note that unlike some response classes, this class is not required to declare parameters, as it is already deriving flag parameters from ReactionSourceTerms object.

Next, the object has to be initialized once SystemManagement and ReactionSourceTerms objects have already been initialized:

* // Initialize parameters in system management:
* reaction_source_terms.set_anode_kinetics(ACL->get_kinetics());
* reaction_source_terms.initialize(param);
* //Initialize post-processing routines:
* anReactionHeat.initialize(param);
*

Finally, the object is ready for use in cell_responses in your application:

* // Compute reaction heat terms due to HOR generated in the CCL
* std::map<FuelCellShop::PostProcessing::ResponsesNames, double> respMap;
* if (ACL->belongs_to_material(material_id)) //the material is the anode catalyst layer
* anReactionHeat.compute_responses(cellInfo, ACL.get(), respMap);
*
Author
Madhur Bhaiya, 2014

Constructor & Destructor Documentation

Member Function Documentation

template<int dim>
void FuelCellShop::PostProcessing::HORReactionHeatResponse< dim >::compute_responses ( const typename DoFApplication< dim >::CellInfo &  info,
FuelCellShop::Layer::BaseLayer< dim > *const  layer,
std::map< FuelCellShop::PostProcessing::ResponsesNames, double > &  respMap 
) const
virtual

This member function computes the heat generated due to HOR inside the anode catalyst layer.

In order to access various HOR reactions heat terms:

* // To access total reaction heat generated due to HOR
*
* // To access irreversible heat generated due to HOR
*
* // To access reversible heat generated due to HOR
*

Implements FuelCellShop::PostProcessing::BaseResponse< dim >.

template<int dim>
void FuelCellShop::PostProcessing::HORReactionHeatResponse< dim >::compute_responses ( std::vector< FuelCellShop::SolutionVariable solution_variables,
const typename DoFApplication< dim >::CellInfo &  info,
FuelCellShop::Layer::BaseLayer< dim > *const  layer,
std::map< FuelCellShop::PostProcessing::ResponsesNames, double > &  respMap 
) const
inlinevirtual

Routine used in order to compute the response with a modified solution (not the one stored in CellInfo object.)

Note
Currently NOT IMPLEMENTED.

Implements FuelCellShop::PostProcessing::BaseResponse< dim >.

template<int dim>
void FuelCellShop::PostProcessing::HORReactionHeatResponse< dim >::initialize ( ParameterHandler &  param)
virtual

Initialize class.

This function basically checks for various pre-requisites such as, certain solution variables are solved for in the application.

Reimplemented from FuelCellShop::PostProcessing::BaseResponse< dim >.

Member Data Documentation

Pointer to BaseKinetics object.

VariableInfo structure corresponding to the "protonic_electrical_potential".

VariableInfo structure corresponding to the "electronic_electrical_potential".

Pointer to ReactionHeat object.

This is initialized automatically inside this class.

Pointer to ReactionSourceTerms object.

VariableInfo structure corresponding to the "temperature_of_REV".

VariableInfo structure corresponding to the "hydrogen_molar_fraction".

VariableInfo structure corresponding to the "water_molar_fraction".


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