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::SorptionHeatResponse< dim > Class Template Reference

Class used to calculate the heat generated due to sorption of water inside the catalyst layer. More...

#include <response_sorption_heat.h>

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

Public Member Functions

Constructor, declaration and initialization
 SorptionHeatResponse (const FuelCell::SystemManagement &sm, const FuelCellShop::Equation::SorptionSourceTerms< dim > *sst)
 
 ~SorptionHeatResponse ()
 
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 sorption inside the 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::SorptionSourceTerms
< dim > * 
sorption_source
 Pointer to SorptionSourceTerms object. More...
 
FuelCellShop::Equation::VariableInfo xWater
 VariableInfo structure corresponding to the "water_molar_fraction". More...
 
FuelCellShop::Equation::VariableInfo lambda
 VariableInfo structure corresponding to the "membrane_water_content". More...
 
FuelCellShop::Equation::VariableInfo tRev
 VariableInfo structure corresponding to the "temperature_of_REV". More...
 
double time_constant
 Time constant, $ k $ [1/s]. 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::SorptionHeatResponse< dim >

Class used to calculate the heat generated due to sorption of water inside the catalyst layer.

This class returns the total heat generated due to sorption inside the layer, i.e.

\[ \int_{\Omega} k h_{sorp} \frac{\rho_{dry}}{EW} (\lambda_{eq} - \lambda) d\Omega \]

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::SorptionSourceTerms object reference is required in the constructor, besides the FuelCell::SystemManagement object reference.
  • $ \lambda $, $ x_{H_2O} $ and $ T_{rev} $ should be solved for in the application.
  • Flag parameters from the SorptionSourceTerms, eg, 'Heat source/sink due to sorption/desorption' is Enabled or Not, are used by this class as well. So for eg, if 'Heat source/sink due to sorption/desorption' is set to false, computing heat due to sorption in CL will return zero.

Usage

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

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

In the class constructor, construct the class passing SystemManagement and SorptionSourceTerms 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),
* sorption_source_terms(system_management)
* sorptionHeat(system_management, &sorption_source_terms)
* {}
*

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

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

* // Initialize parameters in system management:
* sorption_source_terms.initialize(param);
* //Initialize post-processing routines:
* sorptionHeat.initialize(param);
*

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

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

Constructor & Destructor Documentation

Member Function Documentation

template<int dim>
void FuelCellShop::PostProcessing::SorptionHeatResponse< 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 sorption inside the layer.

In order to access the sorption heat generated at the layer use:

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

template<int dim>
void FuelCellShop::PostProcessing::SorptionHeatResponse< 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::SorptionHeatResponse< 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

VariableInfo structure corresponding to the "membrane_water_content".

Pointer to SorptionSourceTerms object.

template<int dim>
double FuelCellShop::PostProcessing::SorptionHeatResponse< dim >::time_constant
private

Time constant, $ k $ [1/s].

VariableInfo structure corresponding to the "temperature_of_REV".

VariableInfo structure corresponding to the "water_molar_fraction".


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