OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Class that gives the analytical solution to an ionomer-filled agglomerate problem in 1D. More...
#include <agglomerate_ionomer_analytical.h>
Public Member Functions | |
virtual SolutionMap | compute_current () |
Main function of the class used to compute the current over the whole agglomerate at the local operating conditions. More... | |
virtual std::vector< double > | compute_derivative_current () |
Function to compute the derivative of the current density at the local operating conditions;. More... | |
virtual std::string | get_name () |
Return name of class instance, i.e. More... | |
virtual double | aux_volume_fraction () |
Returns extra contribution to volume of layer. More... | |
Public Member Functions inherited from FuelCellShop::MicroScale::AgglomerateBase | |
virtual | ~AgglomerateBase () |
virtual void | print_properties () |
Print out key agglomerate information (name, radius, film thickness, porosity). More... | |
virtual bool | has_derivatives () |
Returns true if the class instance can calculate current density derivatives. More... | |
virtual void | make_thread_safe (ParameterHandler ¶m, unsigned int thread_index) |
virtual void | set_solution (const std::map< VariableNames, SolutionVariable > &, const VariableNames &, const int &) |
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 double | get_film_thickness () |
virtual double | get_radius () |
virtual void | set_structure () |
virtual boost::shared_ptr < FuelCellShop::MicroScale::MicroScaleBase > | create_replica () |
This member function is used to create an object of MicroScaleBase. More... | |
IonomerAgglomerateAnalytical () | |
Constructors. More... | |
IonomerAgglomerateAnalytical (std::string concrete_name) | |
virtual void | declare_parameters (ParameterHandler ¶m) const |
virtual void | initialize (ParameterHandler ¶m) |
Protected Member Functions inherited from FuelCellShop::MicroScale::AgglomerateBase | |
void | _initialize_film_porosity () |
AgglomerateBase () | |
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 IonomerAgglomerateAnalytical const * | PROTOTYPE |
Private Member Functions | |
double | compute_Er (const double k_c, const double D) |
Function to compute the effectiveness of the agglomerate core. More... | |
double | compute_dEr (const double k_c, const double dk_c, const double D) |
Function to compute the derivative of the effectiveness of the agglomerate core. More... | |
void | check_kinetics () |
Private Attributes | |
bool | checked_kinetics |
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... | |
Protected Types inherited from FuelCellShop::MicroScale::AgglomerateBase | |
typedef FuelCellShop::Layer::MultiScaleCL < deal_II_dimension > ::Properties | CLPropNames |
typedef std::map< CLPropNames, double > | CL_Properties |
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 |
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::AgglomerateBase | |
boost::shared_ptr < FuelCellShop::Material::CatalystBase > | catalyst |
Boost shared pointer to catalyst object. More... | |
boost::shared_ptr < FuelCellShop::Material::PolymerElectrolyteBase > | electrolyte |
Boost shared pointer to electrolyte object. More... | |
boost::shared_ptr < FuelCellShop::Kinetics::BaseKinetics > | kinetics |
Boost shared pointer to kinetics object. More... | |
std::map< VariableNames, SolutionVariable > | solutions |
Member data for storing solutions. More... | |
std::vector< VariableNames > | sol_names |
VariableNames | reactant |
VariableNames | tempReactantName |
int | sol_index |
double | permittivity_0 |
Constants. More... | |
double | F |
double | R |
double | P |
double | AV |
double | c_R |
bool | has_derivatives_ |
double | c_H |
double | phi_M |
double | phi_S |
double | interface |
double | D_R_N |
double | H_R_N |
Henry's Constant for primary reactant in nafion, [Pa cm^3/mol]. More... | |
std::string | fixed_agg_variable |
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 gives the analytical solution to an ionomer-filled agglomerate problem in 1D.
This class implements the analytical ionomer-filled agglomerate first proposed in:
The volumetric current density is
The effectiveness factor is obtained from the analytical solution of the oxygen transport equation on the agglomerate domain,
where is Thieles modulus, which characterizes the reaction-transport process for a given geometry. For a sphere, the characteristic length is , so Thiele's modulus becomes
The term is an active area scaling factor. Typically, the active area for an electrode is given as the area per volume of catalyst layer. Since in the agglomerate model the platinum is only found in the core of the agglomerate, the active area has to be adjusted accordingly. Dividing by , where is the porosity of the electrode, gives the active area of Pt ( ) per volume of agglomerate ( ). Then, dividing by gives the active area of Pt ( ) per volume of agglomerate core ( ). The variable ${V}_{agg}$ is defined as
is a scaling factor determined as the ratio of the volume of the agglomerate core to the volume of the entire agglomerate.
|
protected |
Constructors.
|
protected |
|
inlinevirtual |
Returns extra contribution to volume of layer.
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
private |
|
virtual |
Main function of the class used to compute the current over the whole agglomerate at the local operating conditions.
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
private |
Function to compute the derivative of the effectiveness of the agglomerate core.
|
virtual |
Function to compute the derivative of the current density at the local operating conditions;.
Reimplemented from FuelCellShop::MicroScale::AgglomerateBase.
|
private |
Function to compute the effectiveness of the agglomerate core.
|
inlineprotectedvirtual |
This member function is used to create an object of MicroScaleBase.
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
inlineprotectedvirtual |
Reimplemented from FuelCellShop::MicroScale::AgglomerateBase.
References concrete_name, and FuelCellShop::MicroScale::AgglomerateBase::declare_parameters().
|
inlineprotectedvirtual |
|
inlinevirtual |
Return name of class instance, i.e.
concrete name.
Implements FuelCellShop::MicroScale::MicroScaleBase.
References concrete_name.
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
Reimplemented from FuelCellShop::MicroScale::AgglomerateBase.
References concrete_name, and FuelCellShop::MicroScale::AgglomerateBase::initialize().
|
protectedvirtual |
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
private |
|
static |
Referenced by declare_parameters(), get_name(), and initialize().
|
staticprotected |