OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Analytical solution to an ionomer-filled agglomerate problem in 1D. More...
#include <agglomerate_ionomer_sun.h>
Public Member Functions | |
IonomerAgglomerateSun () | |
Constructor. | |
virtual void | set_structure (FuelCellShop::Material::CatalystSupportBase *CS, FuelCellShop::Material::CatalystBase *Cat, FuelCellShop::Material::PolymerElectrolyteBase *PEM, double A, double r, double delta, double epsilon) |
Set the composition and structure of the agglomerate. | |
virtual double | compute_current (double &E_r) |
Main function of the class used to compute the current over the whole agglomerate at the local operating conditions. | |
virtual std::vector< double > | compute_derivative_current () |
Function to compute the derivative of the current density at the local operating conditions;. | |
Public Member Functions inherited from FuelCellShop::MicroScale::AgglomerateBase | |
AgglomerateBase () | |
Constructor. | |
virtual | ~AgglomerateBase () |
Destructor. | |
void | set_kinetics (FuelCellShop::Kinetics::BaseKinetics *kin) |
void | set_solution (const std::map< VariableNames, SolutionVariable > &, const VariableNames &, const int &) |
Function for setting the solution variables (reactant concentration, phi_s, phi_m, etc) before we compute current. | |
void | set_P (double P_Tot) |
Set the pressure for the agglomerate. | |
void | set_T (double Temp) |
Set the temperature for the agglomerate. | |
void | setLoadingWeigths (std::vector< double > weigths) |
void | set_conductivity_factor (double temp) |
bool | analytical_derivatives () |
void | load_initial_guess (std::vector< std::vector< double >> IC) |
bool | guess_not_loaded () |
void | deep_copy_pointers () |
Private Member Functions | |
void | _initialize () |
double | compute_Er (const double k_c, const double D) |
Function to compute the effectiveness of the agglomerate core. | |
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. | |
Additional Inherited Members | |
Public Attributes inherited from FuelCellShop::MicroScale::AgglomerateBase | |
std::vector< std::vector < double > > | results |
std::vector< std::string > | column_titles |
Protected Member Functions inherited from FuelCellShop::MicroScale::AgglomerateBase | |
void | setAV (double newAV) |
double | getAV (double location) |
void | setUpLoadings () |
void | interpolate_initial_data (double z[], double &x, double left_pos, double right_pos, std::vector< double > left_data, std::vector< double > right_data) |
bool | use_initial_data (double z[], double &x) |
Protected Attributes inherited from FuelCellShop::MicroScale::AgglomerateBase | |
double | permittivity_0 |
double | pi |
double | F |
double | R |
double | P |
double | T |
std::vector< double > | loadingWeigths |
std::vector< double > | actualLoadings |
std::vector< double > | loadingRadii |
double | AV |
double | maxRadialDimension |
bool | IC_loaded |
bool | analyticalDerivatives |
Variable to check if analytical derivatives are implemented. | |
FuelCellShop::Material::CatalystSupportBase * | catalyst_support |
Object used to calculate the carbon black conductivity in the catalyst layer. | |
FuelCellShop::Material::CatalystBase * | catalyst |
Object used to store the properties of the catalyst used in the layer. | |
FuelCellShop::Material::PolymerElectrolyteBase * | electrolyte |
Object used to calculate the properties of the electrolyte in the catalyst layer. | |
FuelCellShop::Kinetics::BaseKinetics * | kinetics |
Create the kinetics object. | |
std::vector< double > | co2_final |
Vector storing the oxygen concentration profile across the agglomerate. | |
std::vector< double > | mesh_final |
Vector storing the location of the nodes of the mesh used in the numerical agglomerate. | |
double | cond_factor |
Used to modify the proton conductivity in agglomerate. | |
double | r_agg |
Radius of the agglomerate. | |
double | delta_agg |
Thickness of the ionomer thin film. | |
double | epsilon_agg |
Thickness of the ionomer thin film. | |
double | c_R |
Concentration of oxygen at the boundary. | |
double | phi_M |
Electrolyte (Membrane) phase potential at the boundary. | |
double | phi_S |
Solid phase potential through the agglomerate. | |
double | interface |
Value of the boundary between the thin film and agglomerate domain. | |
double | D_R_N |
Oxygen Diffusion. | |
double | H_R_N |
Henry's Constant. | |
double | R_tol |
absolute tolerance in reactant concentration | |
std::vector< VariableNames > | sol_names |
std::map< VariableNames, SolutionVariable > | solutions |
VariableNames | reactant |
int | sol_index |
std::vector< std::vector < double > > | initial_data |
Analytical solution to an ionomer-filled agglomerate problem in 1D.
Adapted from Source: W. Sun, B. A. Peppley, K. Karan, An improved two-dimensional agglomerate cathode model to study the influence of catalyst layer structural parameters, Electrochimica Acta 50 (16-17) (2005) 3347–3358.
FuelCellShop::MicroScale::IonomerAgglomerateSun::IonomerAgglomerateSun | ( | ) |
Constructor.
|
private |
|
virtual |
Main function of the class used to compute the current over the whole agglomerate at the local operating conditions.
Implements FuelCellShop::MicroScale::AgglomerateBase.
|
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.
|
virtual |
Set the composition and structure of the agglomerate.
Implements FuelCellShop::MicroScale::AgglomerateBase.