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

Class used to calculate the protonic ohmic heat generated in the proton conducting layers, viz., Membrane and CL. More...

#include <response_ohmic_heat.h>

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

Public Member Functions

Constructor, declaration and initialization
 ProtonOhmicHeatResponse (const FuelCell::SystemManagement &sm, const FuelCellShop::Equation::ThermalTransportEquation< dim > *tte)
 
 ~ProtonOhmicHeatResponse ()
 
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 proton 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 phiM
 VariableInfo structure corresponding to the "protonic_electrical_potential". 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...
 
unsigned int factor_CL
 Factor is 1 if protonic ohmic heating in CL is enabled, else 0. More...
 
unsigned int factor_ML
 Factor is 1 if protonic ohmic heating in Membrane 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::ProtonOhmicHeatResponse< dim >

Class used to calculate the protonic ohmic heat generated in the proton conducting layers, viz., Membrane and CL.

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

\[ \int_{\Omega} \hat{\sigma}_{m,eff} \cdot \left( \mathbf{\nabla} \phi_m \otimes \mathbf{\nabla} \phi_m \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 Membrane 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.
  • Proton transport should also be solved for, i.e. , $ \phi_m $, should be a solution variable.
  • Flag parameters from the ThermalTransportEquation, for instance, 'Protonic ohmic heat in CL' is Enabled or Not, are used by this class as well. So for eg, if 'Protonic ohmic heat in CL' is set to false, computing protonic ohmic heat in CL 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),
* protonOhmicHeat(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:
* protonOhmicHeat.initialize(param);
*

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

* // Compute Total Protonic Ohmic Heat 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
* protonOhmicHeat.compute_responses(cellInfo, CCL.get(), respMap);
*
Author
Madhur Bhaiya, 2014

Constructor & Destructor Documentation

Member Function Documentation

template<int dim>
void FuelCellShop::PostProcessing::ProtonOhmicHeatResponse< 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 proton transport inside the layer.

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

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

template<int dim>
void FuelCellShop::PostProcessing::ProtonOhmicHeatResponse< 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::ProtonOhmicHeatResponse< 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::ProtonOhmicHeatResponse< dim >::factor_CL
private

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

template<int dim>
unsigned int FuelCellShop::PostProcessing::ProtonOhmicHeatResponse< dim >::factor_ML
private

Factor is 1 if protonic ohmic heating in Membrane is enabled, else 0.

VariableInfo structure corresponding to the "membrane_water_content".

VariableInfo structure corresponding to the "protonic_electrical_potential".

Pointer to ThermalTransportEquation object.

VariableInfo structure corresponding to the "temperature_of_REV".


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