OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Class that solves solid carbon particle, with Pt surface loading, surrounded by ionomer thin film. More...
#include <ICCP.h>
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 ¶m, 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 Types inherited from FuelCellShop::MicroScale::SphericalAgglomerateGeometry | |
typedef FuelCellShop::Layer::MultiScaleCL < deal_II_dimension > ::Properties | CLPropNames |
typedef std::map< CLPropNames, double > | CL_Properties |
Protected Member Functions | |
void | _initialize_film_porosity () |
ICCP () | |
Default Constructor. More... | |
ICCP (std::string name) | |
Factory map registration constructor. More... | |
virtual void | set_structure () |
virtual void | declare_parameters (ParameterHandler ¶m) const |
virtual void | initialize (ParameterHandler ¶m) |
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 () | |
Protected Member Functions inherited from FuelCellShop::MicroScale::SphericalAgglomerateGeometry | |
SphericalAgglomerateGeometry () | |
virtual double | compute_thickness_agg (FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > *layer) |
Member function to compute the thickness of the agglomerate thin film based on the radius and structure. More... | |
virtual double | compute_epsilon_agg (FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > *layer) |
Compute the volume fraction of nafion inside the agglomerate given the catalyst layer ionomer volume fraction , ; size of the agglomerate, ; and, porosity inside the agglomerate, , the necessary ionomer thin film thickness is computed such that the correct volume fractions are obtained. More... | |
virtual double | compute_epsilon_N (const double delta_agg, const double thickness_agg) const |
Function used to compute the amount of electrolyte in the catalyst layer. More... | |
virtual double | compute_depsilonN_dthickness (const double thickness_agg) const |
Function to compute
This function should only be used to calculate the thin film thickness using Newton's method. More... | |
virtual double | compute_depsilonN_depsilon_agg (FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > *layer) const |
Function to compute
This function should only be used to calculate the thin film thickness using Newton's method. More... | |
virtual double | compute_n (FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > *layer) const |
Member function to compute the number of agglomerates. More... | |
virtual double | compute_dn_depsilon_agg (FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > *layer) const |
Compute the derivative of n with respect to the porosity of the agglomerate. More... | |
Static Protected Attributes | |
static ICCP const * | PROTOTYPE |
Private Member Functions | |
double | residual (const double &c_inner, const double &c_outer) |
Compute the residual functions describing oxygen concentration at the particle surface. More... | |
Private Attributes | |
std::vector< SolutionVariable > | reactants |
SolutionVariable | proton_pot |
SolutionVariable | electron_pot |
double | ActiveArea |
bool | non_eq_BC |
double | non_eq_BC_coeff |
double | P |
double | H_R_N |
double | D_R_N |
double | molarNumerator |
VariableNames | reactant |
boost::shared_ptr < FuelCellShop::Kinetics::BaseKinetics > | kinetics |
boost::shared_ptr < FuelCellShop::Material::PolymerElectrolyteBase > | electrolyte |
boost::shared_ptr < FuelCellShop::Material::CatalystBase > | catalyst |
const double | F |
const double | pi |
Additional Inherited Members | |
Static Public Member Functions inherited from FuelCellShop::MicroScale::MicroScaleBase | |
static void | declare_MicroScale_parameters (ParameterHandler ¶m) |
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 ¶m, 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 _mapFactory * | get_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 |
Protected Attributes inherited from FuelCellShop::MicroScale::SphericalAgglomerateGeometry | |
double | pi |
double | r_agg |
double | delta_agg |
double | epsilon_agg |
double | n_agg |
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.
LIST OF INPUT PARAMETERS FOR THE CLASS.
|
protected |
Convenient typdef for getting properties.
|
inlineprotected |
Default Constructor.
References non_eq_BC.
Referenced by create_replica().
|
protected |
Factory map registration constructor.
|
protected |
|
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 |
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.
|
inlineprotectedvirtual |
This member function is used to create an object of type MicroScaleBase.
Implements FuelCellShop::MicroScale::MicroScaleBase.
References ICCP().
|
protectedvirtual |
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
inlinevirtual |
Return name of class instance, i.e.
concrete name.
Implements FuelCellShop::MicroScale::MicroScaleBase.
References concrete_name.
|
inlinevirtual |
Returns true if the class instance can calculate current density derivatives.
In this case it will return false.
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
protectedvirtual |
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
virtual |
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
virtual |
Print out key micro-structural dimensions, defined by child.
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
private |
Compute the residual functions describing oxygen concentration at the particle surface.
Equilibrium BC: 0 = c_{O_2, \; f|c} - c_{O_2, \; g|f} - {{agg} }{r_{agg}(r_{agg} +{agg}) } { j(c_{O_2, \; f|c}) A_s}{4 n F D_{O_2,N}} Nonequilibrium BC (substitute the following term) : c_{O_2, \; g|f} = c_{O_2, \; g|f}^{eq} - {j(c_{O_2, \; f|c}) A_s}{4 n F (r_{agg} +{agg})^2 k_o}
See equations 2.111 and 2.120 of Philip Wardlaw's Thesis
|
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.
|
protectedvirtual |
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
private |
|
private |
|
static |
Referenced by get_name().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by ICCP().
|
private |
|
private |
|
private |
|
private |
|
staticprotected |
|
private |
|
private |