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 Member Functions | Static Protected Attributes | Private Attributes | Static Private Attributes | List of all members
FuelCellShop::MicroScale::PolyAgglomerate Class Reference

An agglomerate model which considers a combination of agglomerates. More...

#include <poly_agglomerate.h>

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

Public Member Functions

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

Static Public Attributes

static const std::string concrete_name
 

Protected Member Functions

virtual void declare_parameters (ParameterHandler &param) const
 
virtual void initialize (ParameterHandler &param)
 
virtual void set_structure ()
 
Instance Delivery (Private functions)
virtual boost::shared_ptr
< MicroScaleBase
create_replica ()
 This member function is used to create an object of 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 PolyAgglomerate const * PROTOTYPE
 

Private Attributes

MicroSet micro
 

Static Private Attributes

static bool inf_loop_preventor
 
static int num_sub_micro
 

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...
 
- 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...
 
- 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

An agglomerate model which considers a combination of agglomerates.

Theory

A combination of different micro structural formations may exist within the micro structure of PEFC catalyst layer. This model allows us to assess a combination of different micro structural models

Input parameters

LIST OF INPUT PARAMETERS FOR THE CLASS.

* ...
* subsection MicroScale
* set Microscale type = PolyAgglomerate
* #Further subsections for sub micro scale models
* subsection MicroStructure0 #from 0 to 10
*
* set Volume fraction = 0.1 #The volume fraction of the micro structure we are about to describe
*
* subsection MicroScale
* #Describe the micro structure
* end
* end
*
* #Describe more sub micro scale models
*
* end
* ...
*
Warning
The maximum number of sub micro structures is hard coded to 10 - see num_sub_micro
Note
Default volume fraction is 0.0, models with volume fractions of 0.0 will be ignored
Combination of volume fractions are normalized to 1.0
Author
Philip Wardlaw
Date
2014

Constructor & Destructor Documentation

FuelCellShop::MicroScale::PolyAgglomerate::PolyAgglomerate ( std::string  )
FuelCellShop::MicroScale::PolyAgglomerate::PolyAgglomerate ( )
inline
virtual FuelCellShop::MicroScale::PolyAgglomerate::~PolyAgglomerate ( )
virtual

Member Function Documentation

virtual double FuelCellShop::MicroScale::PolyAgglomerate::aux_volume_fraction ( )
virtual

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

water.

Implements FuelCellShop::MicroScale::MicroScaleBase.

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

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

Returns current density in [A/cm^3 of solid/liquid phase micro structure]

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

Implements FuelCellShop::MicroScale::MicroScaleBase.

virtual std::vector<double> FuelCellShop::MicroScale::PolyAgglomerate::compute_derivative_current ( )
inlinevirtual

Function to compute the derivative of the current density at the local operating conditions.

Returns current density derivatives

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

Usage details

Call has_derivatives to check if it is OK to call this function.

Reimplemented from FuelCellShop::MicroScale::MicroScaleBase.

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

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

Warning
This class MUST be redeclared in every child.

Implements FuelCellShop::MicroScale::MicroScaleBase.

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

Return name of class instance, i.e.

concrete name.

Implements FuelCellShop::MicroScale::MicroScaleBase.

References concrete_name.

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

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

Usage details

Call this function if unsure whether or not to call compute_derivative_current.

Implements FuelCellShop::MicroScale::MicroScaleBase.

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

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

Implements FuelCellShop::MicroScale::MicroScaleBase.

References FuelCellShop::MicroScale::MicroSet::at(), FcstUtilities::log, micro, FuelCellShop::MicroScale::MicroSet::size(), and FuelCellShop::MicroScale::MicroSet::volAt().

Here is the call graph for this function:

virtual void FuelCellShop::MicroScale::PolyAgglomerate::set_solution ( const std::map< VariableNames, SolutionVariable > &  sols,
const VariableNames name,
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::PolyAgglomerate::set_structure ( )
protectedvirtual

Member Data Documentation

const std::string FuelCellShop::MicroScale::PolyAgglomerate::concrete_name
static

Referenced by get_name().

bool FuelCellShop::MicroScale::PolyAgglomerate::inf_loop_preventor
staticprivate
MicroSet FuelCellShop::MicroScale::PolyAgglomerate::micro
private

Referenced by print_properties().

int FuelCellShop::MicroScale::PolyAgglomerate::num_sub_micro
staticprivate
PolyAgglomerate const* FuelCellShop::MicroScale::PolyAgglomerate::PROTOTYPE
staticprotected

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