OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Class that serves as a base class for all agglomerate calculations. More...
#include <agglomerate_base.h>
Public Member Functions | |
AgglomerateBase () | |
Constructor. | |
virtual | ~AgglomerateBase () |
Destructor. | |
virtual void | set_structure (FuelCellShop::Material::CatalystSupportBase *, FuelCellShop::Material::CatalystBase *, FuelCellShop::Material::PolymerElectrolyteBase *, double A, double r, double delta, double epsilon)=0 |
Set the composition and structure of the agglomerate. | |
void | set_kinetics (FuelCellShop::Kinetics::BaseKinetics *kin) |
virtual double | compute_current (double &E_r)=0 |
Main function of the class used to compute the current over the whole agglomerate at the local operating conditions. | |
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. | |
virtual std::vector< double > | compute_derivative_current () |
Function to compute the derivative of the current density at the local operating conditions;. | |
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 () |
Public Attributes | |
std::vector< std::vector < double > > | results |
std::vector< std::string > | column_titles |
Protected Member Functions | |
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 | |
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 |
Friends | |
class | ::AnalyticalAgglomerateTest |
Class that serves as a base class for all agglomerate calculations.
|
inline |
Constructor.
References Constants::E0(), Constants::F(), F, IC_loaded, maxRadialDimension, permittivity_0, Constants::Pi(), pi, Constants::R(), and R.
|
inlinevirtual |
Destructor.
|
inline |
References analyticalDerivatives.
|
pure virtual |
Main function of the class used to compute the current over the whole agglomerate at the local operating conditions.
Implemented in FuelCellShop::MicroScale::IonomerAgglomerateSun.
|
inlinevirtual |
Function to compute the derivative of the current density at the local operating conditions;.
Reimplemented in FuelCellShop::MicroScale::IonomerAgglomerateSun.
void FuelCellShop::MicroScale::AgglomerateBase::deep_copy_pointers | ( | ) |
|
protected |
|
inline |
References IC_loaded.
|
protected |
|
inline |
References IC_loaded, and initial_data.
|
inline |
References cond_factor.
|
inline |
References kinetics.
|
inline |
Set the pressure for the agglomerate.
References P.
void FuelCellShop::MicroScale::AgglomerateBase::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.
|
pure virtual |
Set the composition and structure of the agglomerate.
Implemented in FuelCellShop::MicroScale::IonomerAgglomerateSun.
|
inline |
Set the temperature for the agglomerate.
References T.
|
inlineprotected |
References AV.
|
inline |
References loadingWeigths.
|
protected |
|
protected |
|
friend |
|
protected |
|
protected |
Variable to check if analytical derivatives are implemented.
Referenced by analytical_derivatives().
|
protected |
Referenced by setAV().
|
protected |
Concentration of oxygen at the boundary.
|
protected |
Object used to store the properties of the catalyst used in the layer.
|
protected |
Object used to calculate the carbon black conductivity in the catalyst layer.
|
protected |
Vector storing the oxygen concentration profile across the agglomerate.
Used for to ensure the numerical agglomerate matches the analytical agglomerate.
std::vector<std::string> FuelCellShop::MicroScale::AgglomerateBase::column_titles |
|
protected |
Used to modify the proton conductivity in agglomerate.
Referenced by set_conductivity_factor().
|
protected |
Oxygen Diffusion.
|
protected |
Thickness of the ionomer thin film.
|
protected |
Object used to calculate the properties of the electrolyte in the catalyst layer.
In this case we assume is Nafion.
|
protected |
Thickness of the ionomer thin film.
|
protected |
Referenced by AgglomerateBase().
|
protected |
Henry's Constant.
|
protected |
Referenced by AgglomerateBase(), guess_not_loaded(), and load_initial_guess().
|
protected |
Referenced by load_initial_guess().
|
protected |
Value of the boundary between the thin film and agglomerate domain.
|
protected |
Create the kinetics object.
Referenced by set_kinetics().
|
protected |
|
protected |
Referenced by setLoadingWeigths().
|
protected |
Referenced by AgglomerateBase().
|
protected |
Vector storing the location of the nodes of the mesh used in the numerical agglomerate.
This can then be passed to the analytical agglomerate so that the oxygen concentration can be found at the same locations.
|
protected |
Referenced by set_P().
|
protected |
Referenced by AgglomerateBase().
|
protected |
Electrolyte (Membrane) phase potential at the boundary.
|
protected |
Solid phase potential through the agglomerate.
|
protected |
Referenced by AgglomerateBase().
|
protected |
Referenced by AgglomerateBase().
|
protected |
Radius of the agglomerate.
|
protected |
absolute tolerance in reactant concentration
|
protected |
std::vector<std::vector<double> > FuelCellShop::MicroScale::AgglomerateBase::results |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by set_T().