OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
FuelCellShop::MicroScale::ICCP Class Reference

Class that solves solid carbon particle, with Pt surface loading, surrounded by ionomer thin film. More...

#include <ICCP.h>

Inheritance diagram for FuelCellShop::MicroScale::ICCP:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::MicroScale::ICCP:
Collaboration graph
[legend]

Public Member Functions

virtual void set_solution (const std::map< VariableNames, SolutionVariable > &sols, const VariableNames &react, const int &index)
 Function for setting the solution map(reactant concentration, phi_s, phi_m, etc.). More...
 
virtual SolutionMap compute_current ()
 Function used to compute the current density produced by the micro structure. More...
 
virtual bool has_derivatives ()
 Returns true if the class instance can calculate current density derivatives. More...
 
virtual std::string get_name ()
 Return name of class instance, i.e. More...
 
virtual double aux_volume_fraction ()
 MicroScale object may have extra contribution to volume of layer, e.g. More...
 
virtual void print_properties ()
 Print out key micro-structural dimensions, defined by child. More...
 
virtual void make_thread_safe (ParameterHandler &param, unsigned int thread_index)
 
- Public Member Functions inherited from FuelCellShop::MicroScale::MicroScaleBase
virtual ~MicroScaleBase ()
 Destructor. More...
 
virtual std::vector< double > compute_derivative_current ()
 Function to compute the derivative of the current density at the local operating conditions. More...
 

Static Public Attributes

static const std::string concrete_name
 

Protected Types

typedef
FuelCellShop::Layer::MultiScaleCL
< deal_II_dimension > 
CLPropNames
 Convenient typdef for getting properties. More...
 
- Protected Types inherited from FuelCellShop::MicroScale::MicroScaleBase
typedef std::map< std::string,
MicroScaleBase * > 
_mapFactory
 This object is used to store all objects of type MicroScaleBase. More...
 

Protected Member Functions

 ICCP ()
 Default Constructor. More...
 
 ICCP (std::string name)
 Factory map registration constructor. More...
 
virtual void set_structure ()
 
virtual void declare_parameters (ParameterHandler &param) const
 
virtual void initialize (ParameterHandler &param)
 
virtual boost::shared_ptr
< MicroScaleBase
create_replica ()
 This member function is used to create an object of type MicroScaleBase. More...
 
- Protected Member Functions inherited from FuelCellShop::MicroScale::MicroScaleBase
void set_layer (FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > *_layer)
 
 MicroScaleBase ()
 

Static Protected Attributes

static ICCP const * PROTOTYPE
 

Private Member Functions

double residual (const double &c_inner, const double &c_outer)
 

Private Attributes

std::vector< SolutionVariablereactants
 
SolutionVariable proton_pot
 
SolutionVariable electron_pot
 
double ActiveArea
 
bool non_eq_BC
 
double non_eq_BC_coeff
 
double P
 
double HO2N
 
double DO2N
 
boost::shared_ptr
< FuelCellShop::Kinetics::BaseKinetics
kinetics
 
boost::shared_ptr
< FuelCellShop::Material::PolymerElectrolyteBase
electrolyte
 
boost::shared_ptr
< FuelCellShop::Material::CatalystBase
catalyst
 
double film_thickness
 
double core_radius
 
const double F
 
const double pi
 

Additional Inherited Members

- Static Public Member Functions inherited from FuelCellShop::MicroScale::MicroScaleBase
static void declare_MicroScale_parameters (ParameterHandler &param)
 Function used to declare all the data necessary in the parameter files for all MicroScale children. More...
 
static boost::shared_ptr
< FuelCellShop::MicroScale::MicroScaleBase
create_MicroStructure (ParameterHandler &param, FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > *layer)
 Function used to select the appropriate MicroScale type as specified in the ParameterHandler under line. More...
 
- Static Protected Member Functions inherited from FuelCellShop::MicroScale::MicroScaleBase
static _mapFactoryget_mapFactory ()
 This member function is used to create an object of type MicroScaleBase. More...
 
- Protected Attributes inherited from FuelCellShop::MicroScale::MicroScaleBase
FuelCellShop::Layer::MultiScaleCL
< deal_II_dimension > * 
layer
 

Detailed Description

Class that solves solid carbon particle, with Pt surface loading, surrounded by ionomer thin film.

This class is a very basic representation of the CL micro structure, intended to analyize the CL/MEA's sensitivity to micro scale models for various operating conditions and material params.

Input parameters

LIST OF INPUT PARAMETERS FOR THE CLASS.

* ...
* subsection MicroScale
* subsection ICCP
* set Radius [nm] = 100.0 #Inner core radius
* set Film Thickness [nm] =5.0 #Surrounding ionomer film thickness
* set Non Equilibrium BC Rate constant = 0.13 #Non equilibrium Reaction rate coefficient
* set Use non equilibrium BC = false #Use non-equilibrium BC as described by Suzukhi et al.
* end
* end
*

Member Typedef Documentation

Convenient typdef for getting properties.

Constructor & Destructor Documentation

FuelCellShop::MicroScale::ICCP::ICCP ( )
inlineprotected

Default Constructor.

References non_eq_BC.

Referenced by create_replica().

Here is the caller graph for this function:

FuelCellShop::MicroScale::ICCP::ICCP ( std::string  name)
protected

Factory map registration constructor.

Member Function Documentation

virtual double FuelCellShop::MicroScale::ICCP::aux_volume_fraction ( )
inlinevirtual

MicroScale object may have extra contribution to volume of layer, e.g.

water. In this case it is zero.

Implements FuelCellShop::MicroScale::MicroScaleBase.

virtual SolutionMap FuelCellShop::MicroScale::ICCP::compute_current ( )
virtual

Function used to compute the current density produced by the micro structure.

Effectiveness is returned by reference, and defined by child class.

Solves for solution variables set by the last call to set_solution.

Implements FuelCellShop::MicroScale::MicroScaleBase.

virtual boost::shared_ptr<MicroScaleBase> FuelCellShop::MicroScale::ICCP::create_replica ( )
inlineprotectedvirtual

This member function is used to create an object of type MicroScaleBase.

Implements FuelCellShop::MicroScale::MicroScaleBase.

References ICCP().

Here is the call graph for this function:

virtual void FuelCellShop::MicroScale::ICCP::declare_parameters ( ParameterHandler &  param) const
protectedvirtual
virtual std::string FuelCellShop::MicroScale::ICCP::get_name ( )
inlinevirtual

Return name of class instance, i.e.

concrete name.

Implements FuelCellShop::MicroScale::MicroScaleBase.

References concrete_name.

virtual bool FuelCellShop::MicroScale::ICCP::has_derivatives ( )
inlinevirtual

Returns true if the class instance can calculate current density derivatives.

In this case it will return false.

Implements FuelCellShop::MicroScale::MicroScaleBase.

virtual void FuelCellShop::MicroScale::ICCP::initialize ( ParameterHandler &  param)
protectedvirtual
virtual void FuelCellShop::MicroScale::ICCP::make_thread_safe ( ParameterHandler &  param,
unsigned int  thread_index 
)
virtual
virtual void FuelCellShop::MicroScale::ICCP::print_properties ( )
virtual

Print out key micro-structural dimensions, defined by child.

Implements FuelCellShop::MicroScale::MicroScaleBase.

double FuelCellShop::MicroScale::ICCP::residual ( const double &  c_inner,
const double &  c_outer 
)
private
virtual void FuelCellShop::MicroScale::ICCP::set_solution ( const std::map< VariableNames, SolutionVariable > &  sols,
const VariableNames react,
const int &  index 
)
virtual

Function for setting the solution map(reactant concentration, phi_s, phi_m, etc.).

First argument provide the map of SolutionVariable. The second argument provide the name of the primary reactant. The final argument is the index of the solution map that the micro scale object should solve for.

This function should be called immediatly before compute_current or compute_derivative_current.

Implements FuelCellShop::MicroScale::MicroScaleBase.

virtual void FuelCellShop::MicroScale::ICCP::set_structure ( )
protectedvirtual

Member Data Documentation

double FuelCellShop::MicroScale::ICCP::ActiveArea
private
boost::shared_ptr<FuelCellShop::Material::CatalystBase> FuelCellShop::MicroScale::ICCP::catalyst
private
const std::string FuelCellShop::MicroScale::ICCP::concrete_name
static

Referenced by get_name().

double FuelCellShop::MicroScale::ICCP::core_radius
private
double FuelCellShop::MicroScale::ICCP::DO2N
private
boost::shared_ptr<FuelCellShop::Material::PolymerElectrolyteBase> FuelCellShop::MicroScale::ICCP::electrolyte
private
SolutionVariable FuelCellShop::MicroScale::ICCP::electron_pot
private
const double FuelCellShop::MicroScale::ICCP::F
private
double FuelCellShop::MicroScale::ICCP::film_thickness
private
double FuelCellShop::MicroScale::ICCP::HO2N
private
boost::shared_ptr<FuelCellShop::Kinetics::BaseKinetics> FuelCellShop::MicroScale::ICCP::kinetics
private
bool FuelCellShop::MicroScale::ICCP::non_eq_BC
private

Referenced by ICCP().

double FuelCellShop::MicroScale::ICCP::non_eq_BC_coeff
private
double FuelCellShop::MicroScale::ICCP::P
private
const double FuelCellShop::MicroScale::ICCP::pi
private
SolutionVariable FuelCellShop::MicroScale::ICCP::proton_pot
private
ICCP const* FuelCellShop::MicroScale::ICCP::PROTOTYPE
staticprotected
std::vector<SolutionVariable> FuelCellShop::MicroScale::ICCP::reactants
private

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