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

Analytical solution to an ionomer-filled agglomerate problem in 1D. More...

#include <agglomerate_ionomer_sun.h>

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

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::CatalystSupportBasecatalyst_support
 Object used to calculate the carbon black conductivity in the catalyst layer.
 
FuelCellShop::Material::CatalystBasecatalyst
 Object used to store the properties of the catalyst used in the layer.
 
FuelCellShop::Material::PolymerElectrolyteBaseelectrolyte
 Object used to calculate the properties of the electrolyte in the catalyst layer.
 
FuelCellShop::Kinetics::BaseKineticskinetics
 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< VariableNamessol_names
 
std::map< VariableNames,
SolutionVariable
solutions
 
VariableNames reactant
 
int sol_index
 
std::vector< std::vector
< double > > 
initial_data
 

Detailed Description

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.

Constructor & Destructor Documentation

FuelCellShop::MicroScale::IonomerAgglomerateSun::IonomerAgglomerateSun ( )

Constructor.

Member Function Documentation

void FuelCellShop::MicroScale::IonomerAgglomerateSun::_initialize ( )
private
virtual double FuelCellShop::MicroScale::IonomerAgglomerateSun::compute_current ( double &  E_r)
virtual

Main function of the class used to compute the current over the whole agglomerate at the local operating conditions.

Implements FuelCellShop::MicroScale::AgglomerateBase.

double FuelCellShop::MicroScale::IonomerAgglomerateSun::compute_dEr ( const double  k_c,
const double  dk_c,
const double  D 
)
private

Function to compute the derivative of the effectiveness of the agglomerate core.

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

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

Reimplemented from FuelCellShop::MicroScale::AgglomerateBase.

double FuelCellShop::MicroScale::IonomerAgglomerateSun::compute_Er ( const double  k_c,
const double  D 
)
private

Function to compute the effectiveness of the agglomerate core.

virtual void FuelCellShop::MicroScale::IonomerAgglomerateSun::set_structure ( FuelCellShop::Material::CatalystSupportBase CS,
FuelCellShop::Material::CatalystBase Cat,
FuelCellShop::Material::PolymerElectrolyteBase PEM,
double  A,
double  r,
double  delta,
double  epsilon 
)
virtual

Set the composition and structure of the agglomerate.

Implements FuelCellShop::MicroScale::AgglomerateBase.


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