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

Class used to calculate the electronic ohmic heat generated in the electron conducting layers, viz., GDL, MPL and CL. More...

#include <response_ohmic_heat.h>

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

Public Member Functions

Constructor, declaration and initialization
 ElectronOhmicHeatResponse (const FuelCell::SystemManagement &sm, const FuelCellShop::Equation::ThermalTransportEquation< dim > *tte)
 
 ~ElectronOhmicHeatResponse ()
 
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 ohmic heat generated due to electron transport 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::ThermalTransportEquation
< dim > * 
thermal_equation
 Pointer to ThermalTransportEquation object. More...
 
FuelCellShop::Equation::VariableInfo phiS
 VariableInfo structure corresponding to the "electronic_electrical_potential". More...
 
unsigned int factor_GDL
 Factor is 1 if electronic ohmic heating in GDL is enabled, else 0. More...
 
unsigned int factor_MPL
 Factor is 1 if electronic ohmic heating in MPL is enabled, else 0. More...
 
unsigned int factor_CL
 Factor is 1 if electronic ohmic heating in CL is enabled, else 0. 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::ElectronOhmicHeatResponse< dim >

Class used to calculate the electronic ohmic heat generated in the electron conducting layers, viz., GDL, MPL and CL.

This class returns the total electronic ohmic heat produced in the layer, i.e.

\[ \int_{\Omega} \hat{\sigma}_{s,eff} \cdot \left( \mathbf{\nabla} \phi_s \otimes \mathbf{\nabla} \phi_s \right) 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 GDL, MPL or CL layer objects are passed as argument.
  • This class will not work if thermal transport equation is not being solved for. FuelCellShop::Equation::ThermalTransportEquation object reference is required in the constructor, besides the FuelCell::SystemManagement object reference.
  • Electron transport should also be solved for, i.e. , $ \phi_s $, should be a solution variable.
  • Flag parameters from the ThermalTransportEquation, for instance, 'Electronic ohmic heat in GDL' is Enabled or Not, are used by this class as well. So for eg, if 'Electronic ohmic heat in GDL' is set to false, computing electronic ohmic heat in GDL will return zero.

Usage

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

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

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

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

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

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

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

* // Compute Total Electronic Ohmic Heat generated in the CGDL
* std::map<FuelCellShop::PostProcessing::ResponsesNames, double> respMap;
* if (CGDL->belongs_to_material(material_id)) //the material is the cathode gas diffusion layer
* electronOhmicHeat.compute_responses(cellInfo, CGDL.get(), respMap);
*
Author
Madhur Bhaiya, 2014

Constructor & Destructor Documentation

Member Function Documentation

template<int dim>
void FuelCellShop::PostProcessing::ElectronOhmicHeatResponse< 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 ohmic heat generated due to electron transport inside the layer.

In order to access the electronic ohmic heat at the layer use:

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

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

template<int dim>
unsigned int FuelCellShop::PostProcessing::ElectronOhmicHeatResponse< dim >::factor_CL
private

Factor is 1 if electronic ohmic heating in CL is enabled, else 0.

template<int dim>
unsigned int FuelCellShop::PostProcessing::ElectronOhmicHeatResponse< dim >::factor_GDL
private

Factor is 1 if electronic ohmic heating in GDL is enabled, else 0.

template<int dim>
unsigned int FuelCellShop::PostProcessing::ElectronOhmicHeatResponse< dim >::factor_MPL
private

Factor is 1 if electronic ohmic heating in MPL is enabled, else 0.

VariableInfo structure corresponding to the "electronic_electrical_potential".

Pointer to ThermalTransportEquation object.


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