OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
The base class for agglomerate objects in OpenFCST. More...
#include <agglomerate_base.h>
Public Member Functions | |
virtual | ~AgglomerateBase () |
virtual void | print_properties () |
Print out key agglomerate information (name, radius, film thickness, porosity). More... | |
virtual std::vector< double > | compute_derivative_current () |
Function to compute the derivative of the current density at the local operating conditions. 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) |
Initalization | |
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... | |
virtual SolutionMap | compute_current ()=0 |
Function used to compute the current density produced by the micro structure. More... | |
virtual std::string | get_name ()=0 |
Return name of class instance, i.e. More... | |
virtual double | aux_volume_fraction ()=0 |
MicroScale object may have extra contribution to volume of layer, e.g. More... | |
Protected Types | |
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 |
Protected Member Functions | |
void | _initialize_film_porosity () |
AgglomerateBase () | |
virtual void | declare_parameters (ParameterHandler ¶m) const |
virtual void | initialize (ParameterHandler ¶m) |
virtual double | get_film_thickness ()=0 |
virtual double | get_radius ()=0 |
Protected Member Functions inherited from FuelCellShop::MicroScale::MicroScaleBase | |
void | set_layer (FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > *_layer) |
MicroScaleBase () | |
virtual void | set_structure ()=0 |
virtual boost::shared_ptr < MicroScaleBase > | create_replica ()=0 |
This member function is used to create an object of MicroScaleBase. More... | |
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... | |
Protected Attributes | |
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 |
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... | |
The base class for agglomerate objects in OpenFCST.
This base class implements some of the necessary interfaces specified by MicroScaleBase, as well as providing spherical agglomerate specific data and functionality.
LIST OF INPUT PARAMETERS FOR THE CLASS.
This class may be inherited by agglomerate object in order to gain useful member data and methods. Use MicroScaleBase classes instance delivery system for creating child.
|
protected |
|
protected |
|
inlinevirtual |
|
inlineprotected |
References Constants::E0(), Constants::F(), F, permittivity_0, Constants::R(), and R.
|
protected |
|
inlinevirtual |
Function to compute the derivative of the current density at the local operating conditions.
Returns current density derivatives in (A/cm^3)/(unit of the changing quantity)
Solves for solution variables set by the last call to set_solution.
Call has_derivatives to check if it is OK to call this function.
Reimplemented from FuelCellShop::MicroScale::MicroScaleBase.
Reimplemented in FuelCellShop::MicroScale::IonomerAgglomerateSun, and FuelCellShop::MicroScale::IonomerAgglomerateAnalytical.
References sol_names.
|
protectedvirtual |
Implements FuelCellShop::MicroScale::MicroScaleBase.
Reimplemented in FuelCellShop::MicroScale::IonomerAgglomerateSun, FuelCellShop::MicroScale::IonomerAgglomerateAnalytical, FuelCellShop::MicroScale::WaterAgglomerate, FuelCellShop::MicroScale::IonomerAgglomerate, FuelCellShop::MicroScale::HybridAgglomerate, FuelCellShop::MicroScale::WaterConicalPoreAgglomerate, and FuelCellShop::MicroScale::NumericalAgglomerateBase.
Referenced by FuelCellShop::MicroScale::WaterConicalPoreAgglomerate::declare_parameters(), FuelCellShop::MicroScale::IonomerAgglomerateAnalytical::declare_parameters(), and FuelCellShop::MicroScale::IonomerAgglomerateSun::declare_parameters().
|
protectedpure virtual |
|
protectedpure virtual |
|
inlinevirtual |
Returns true if the class instance can calculate current density derivatives.
Call this function if unsure whether or not to call compute_derivative_current.
Implements FuelCellShop::MicroScale::MicroScaleBase.
References has_derivatives_.
|
protectedvirtual |
Implements FuelCellShop::MicroScale::MicroScaleBase.
Reimplemented in FuelCellShop::MicroScale::IonomerAgglomerateSun, FuelCellShop::MicroScale::WaterAgglomerate, FuelCellShop::MicroScale::IonomerAgglomerateAnalytical, FuelCellShop::MicroScale::IonomerAgglomerate, FuelCellShop::MicroScale::HybridAgglomerate, FuelCellShop::MicroScale::WaterConicalPoreAgglomerate, and FuelCellShop::MicroScale::NumericalAgglomerateBase.
Referenced by FuelCellShop::MicroScale::WaterConicalPoreAgglomerate::initialize(), FuelCellShop::MicroScale::IonomerAgglomerateAnalytical::initialize(), and FuelCellShop::MicroScale::IonomerAgglomerateSun::initialize().
|
virtual |
Implements FuelCellShop::MicroScale::MicroScaleBase.
Reimplemented in FuelCellShop::MicroScale::NumericalAgglomerateBase.
|
virtual |
Print out key agglomerate information (name, radius, film thickness, porosity).
Implements FuelCellShop::MicroScale::MicroScaleBase.
Reimplemented in FuelCellShop::MicroScale::HybridAgglomerate.
|
virtual |
Function for setting the solution map(reactant concentration, phi_s, phi_m, etc.).
First argument provide the map of solution variables. 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, i.e. if the solution map contains arrays of quadrature solutions then the index corresponds to the quadrature point we are solving for
This function should be called immediatly before compute_current or compute_derivative_current.
Implements FuelCellShop::MicroScale::MicroScaleBase.
|
protected |
Referenced by FuelCellShop::MicroScale::NumericalAgglomerateBase::setAV().
|
protected |
|
protected |
|
protected |
Boost shared pointer to catalyst object.
Used to determine kinetic properties of catalyst
|
protected |
|
protected |
Boost shared pointer to electrolyte object.
Used to determine local effective properties.
|
protected |
Referenced by AgglomerateBase().
|
protected |
|
protected |
Henry's Constant for primary reactant in nafion, [Pa cm^3/mol].
|
protected |
Referenced by has_derivatives().
|
protected |
|
protected |
Boost shared pointer to kinetics object.
Used to determine reaction rates.
|
protected |
|
protected |
Referenced by AgglomerateBase().
|
protected |
|
protected |
|
protected |
Referenced by AgglomerateBase().
|
protected |
|
protected |
|
protected |
Referenced by compute_derivative_current().
|
protected |
Member data for storing solutions.
|
protected |