This class characterizes a catalyst layer and uses this information to compute effective transport properties and interfacial areas for phase change or electrochemical reactions.
More...
|
|
| AgglomerateCL () |
| Prototype Constructor.
|
|
| AgglomerateCL (std::string name) |
| Constructor.
|
|
| ~AgglomerateCL () |
| Destructor.
|
|
void | declare_parameters (ParameterHandler ¶m) const |
| Declare all necessary parameters in order to compute the coefficients.
|
|
void | set_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler ¶m) const |
| Member function used to set new parameters values in the optimization loop.
|
|
void | initialize (ParameterHandler ¶m) |
| Member function used to read in data and initialize the necessary data to compute the coefficients.
|
|
|
double | get_n () const |
| Inline member function that returns the number of agglomerates in the catalyst layer.
|
|
virtual void | current_density (std::vector< double > ¤t) |
| This member function will use a FuelCellShop::Kinetics class in order to compute the current density production in the CL Returns the current density at each quadrature point.
|
|
virtual void | current_density (std::vector< double > ¤t, std::vector< double > &effectiveness) |
| This member function will use a FuelCellShop::Kinetics class in order to compute the current density production in the CL Returns the current density at each quadrature point.
|
|
virtual void | derivative_current_density (std::map< VariableNames, std::vector< double > > &) |
| This member function will use a FuelCellShop::Kinetics class in order to compute the derivative of the current density with respect to the variables setup in set_derivative_flags (std::vector< std::string > &flags)
|
|
virtual void | print_layer_properties () const |
| Print out composition and micro-structural properties of the catalyst layer.
|
|
void | return_mesh_final (std::vector< double > &temp, std::vector< double > &temp1) |
|
void | set_mesh (std::vector< double > &temp) |
|
| ConventionalCL () |
|
| ~ConventionalCL () |
| Destructor.
|
|
virtual void | get_volume_fraction (double &epsilon_S_out, double &epsilon_V_out, double &epsilon_N_out) const |
| Get the volume fractions in the catalyst layer.
|
|
virtual double | get_V_Pt () const |
| Return the platinum loading per cm3 catalyst layer.
|
|
double | get_active_area_Pt () const |
| Get the active area of platinum per unit volume of CL.
|
|
virtual void | effective_gas_diffusivity (const double &, double &) const |
| Compute the effective diffusivty in the CL.
|
|
virtual void | effective_gas_diffusivity (Table< 2, Tensor< 2, dim > > &) const |
| Compute the effective diffusivty in the CL.
|
|
virtual void | effective_electron_conductivity (double &) const |
| Compute the effective electron conductivity in the CL.
|
|
virtual void | effective_electron_conductivity (Tensor< 2, dim > &) const |
| Compute the effective electron conductivity in the CL as an anisotropic tensor.
|
|
virtual void | derivative_effective_electron_conductivity (std::vector< double > &) const |
| Compute the derivative of the effective electron conductivity in the GDL with respect to either the solution or design parameters.
|
|
virtual void | effective_proton_conductivity (double &) const |
| Compute the effective proton conductivity in the CL.
|
|
virtual void | effective_proton_conductivity (std::vector< double > &) const |
| Compute the effective proton conductivity, at all quadrature points in the cell, mainly as a function of Temperature.
|
|
virtual void | derivative_effective_proton_conductivity (std::map< VariableNames, std::vector< double > > &) const |
| Compute the derivative of the effective proton conductivity in the CL with respect to either the solution or design parameters.
|
|
virtual void | effective_water_diffusivity (double &) const |
| Compute the effective water diffusivity (lambda diffusivity) in the CL.
|
|
virtual void | effective_water_diffusivity (std::vector< double > &) const |
| Compute the effective water diffusivity (lambda diffusivity) at all quadrature points in the CL.
|
|
virtual void | derivative_effective_water_diffusivity (std::map< VariableNames, std::vector< double > > &) const |
| Compute the derivative of the effective water diffusivity (lambda diffusivity) in the CL with respect to either the solution or design parameters.
|
|
virtual void | set_constant_solution (const double &value, const VariableNames &name) |
| Set those solution variables which are constant in the particular application.
|
|
virtual void | set_solution (const std::vector< SolutionVariable > &) |
| This method is used to set the solution variable values in the kinetics object, at all quadrature points in the cell.
|
|
virtual void | set_derivative_flags (const std::vector< VariableNames > &flags) |
| Method used to set the variables for which you would like to compute the derivatives in the catalyst layer.
|
|
void | set_reaction_kinetics (const std::string &rxn_name) |
| Member function used to specify the reaction for which the kinetic parameters are needed, for example for a Platinum catalyst, we can specify that we need the kinetic parameters for either the oxygen reduction reaction (ORR) or the hydrogen oxidation reaction (HOR)
|
|
const std::type_info & | get_base_type () const |
| This member function returns a type_info object with the name of the base layer type the inherited class belongs to, i.e.
|
|
virtual void | effective_gas_diffusivity (Table< 2, double > &) const |
| Return the effective diffusivty in the GDL for all the gases assigned to the layer using set_gases_and_compute.
|
|
virtual void | derivative_effective_electron_conductivity (std::vector< Tensor< 2, dim > > &) const |
| Compute the derivative of the effective electron conductivity in the GDL with respect to either the solution or design parameters.
|
|
virtual void | gas_permeablity (double &) const |
| Compute the CL gas permeability.
|
|
virtual void | gas_permeablity (Tensor< 2, dim > &) const |
| Compute the CL gas permeability.
|
|
virtual void | derivative_gas_permeablity (std::vector< double > &) const |
| Compute the derivative of the effective gas permeability in the GDL with respect to either the solution or design parameters.
|
|
virtual void | derivative_gas_permeablity (std::vector< Tensor< 2, dim > > &) const |
| Compute the derivative of the effective gas permeability in the GDL with respect to either the solution or design parameters.
|
|
virtual void | liquid_permeablity (double &) const |
| Compute the GDL liquid permeability.
|
|
virtual void | liquid_permeablity (Tensor< 2, dim > &) const |
| Compute the GDL liquid permeability.
|
|
virtual void | derivative_liquid_permeablity (std::vector< double > &) const |
| Compute the derivative of the effective gas diffusion in the GDL with respect to either the solution or design parameters.
|
|
virtual void | derivative_liquid_permeablity (std::vector< Tensor< 2, dim > > &) const |
| Compute the derivative of the effective gas diffusion in the GDL with respect to either the solution or design parameters.
|
|
virtual
FuelCellShop::Material::PolymerElectrolyteBase * | get_electrolyte () const |
| Method to provide access to pointer of the electrolyte object of the catalyst layer.
|
|
virtual
FuelCellShop::Kinetics::BaseKinetics * | get_kinetics () const |
| Method to provide access to pointer of the kinetic object of the catalyst layer.
|
|
void | set_gases_and_compute (std::vector< FuelCellShop::Material::PureGas * > &gases_in, const double &pressure_in, const double &temperature_in) |
| Member function used to store all the gases that are in the pore space in the gas diffusion layer as well as their temperature [Kelvin ] and total pressure [atm ].
|
|
void | compute_gas_diffusion (FuelCellShop::Material::PureGas *solute_gas, FuelCellShop::Material::PureGas *solvent_gas) |
| Member function used to compute bulk diffusion coefficients and derivatives w.r.t temperature for non-isothermal case and store inside the layer.
|
|
void | set_gases (std::vector< FuelCellShop::Material::PureGas * > &gases_in, const double &pressure_in) |
| Member function used to store all the gases that are in the pore space in the porous layer.
|
|
void | set_temperature (const SolutionVariable &T_in) |
| Member function used to set the temperature ]Kelvin ] at every quadrature point inside the cell.
|
|
FuelCellShop::Material::PureGas * | get_gas_pointer (int index) const |
| Return the FuelCellShop::Material::PureGas pointer that is stored inside the class in the ith position.
|
|
std::vector
< FuelCellShop::Material::PureGas * > | get_gases () const |
| Returns the vector of FuelCellShop::Material::PureGas pointers stored in the porous layer.
|
|
void | get_gas_index (FuelCellShop::Material::PureGas *gas_type, int &index) const |
| Return the gas index in the GDL class.
|
|
void | get_T_and_p (double &T, double &p) const |
| Return the constant temperature [Kelvin ] and constant pressure [atm ] inside the layer.
|
|
void | get_p (double &p) const |
| Return the constant pressure [atm ] inside the layer.
|
|
virtual bool | test_layer () const |
| This virtual class should be used for any derived class to be able to test the functionality of the class.
|
|
void | set_position (std::vector< Point< dim > > &p) |
| Member function used by some applications such as dummyGDL in order to know which value to return.
|
|
bool | belongs_to_material (const char material_id) |
| Check if a given cell belongs to the catalyst layer.
|
|
const std::string & | name_material () |
| Return the name of the layer.
|
|
virtual bool | test_layer () |
| This virtual class should be used for any derived class to be able to test the functionality of the class.
|
|
unsigned int | get_material_id () |
| Return the material id of the layer.
|
|
|
|
void | declare_parameters (const std::string &cl_section_name, ParameterHandler ¶m) const |
| Constructor.
|
|
void | set_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, const std::string &cl_section_name, ParameterHandler ¶m) const |
| Member function used to set new parameters values in the optimization loop.
|
|
|
virtual boost::shared_ptr
< FuelCellShop::Layer::CatalystLayer
< dim > > | create_replica (const std::string &cl_section_name) |
| This member function is used to create an object of type gas diffusion layer.
|
|
|
void | compute_void_fraction () |
| Compute porosity and volume fraction of solid and ionomer in the catalyst layer.
|
|
void | initialize_aggs () |
| Creates the agg objects populating the aggs object.
|
|
boost::shared_ptr
< FuelCellShop::MicroScale::AgglomerateBase > | get_agg () |
| Function for creating shared pointer object of an unique (multithreadable) agglomerate object.
|
|
double | compute_n () const |
| Member function to compute the number of agglomerates.
|
|
double | compute_thickness_agg () |
| Member function used to calculate the sensitivities of the number of agglomerates with respect to the dependent variables.
|
|
double | epsilon_N_agg (const double delta_agg) const |
| Inline function used to compute the amount of electrolyte in the catalyst layer.
|
|
double | depsilonN_dthickness_agg (const double thickness_agg) const |
| Inline function to compute
\[ \frac{\partial \epsilon_N^{cat}}{\partial thickness_{agg}} \]
This function should only be used to calculate the thin film thickness using Newton's method.
|
|
double | micro_scale_current (boost::shared_ptr< FuelCellShop::MicroScale::AgglomerateBase > &_agg, std::map< VariableNames, SolutionVariable > &solutionMap, const unsigned int &index, double &E_r) |
| Private member functions for solving current density given an agglomerate.
|
|
void | choose_agglomerate (boost::shared_ptr< FuelCellShop::MicroScale::AgglomerateBase > &agg_) |
| Private member functions for choosing agglomerate type.
|
|
void | solve_current_derivatives_average (std::map< VariableNames, std::vector< double > > &Dcurrent) |
| Private member functions for solving for current derivatives in an averaging approach.
|
|
void | solve_current_derivatives_at_each_node (std::map< VariableNames, std::vector< double > > &Dcurrent) |
| Private member functions for solving for current derivatives in a per node approach.
|
|
bool | check_micro_scale_initial_guess (const double &x_O2, const double &phi_m, const double &phi_s, const double lambda, const double radius, const double film_thickness, const double porosity) |
|
bool | get_micro_scale_initial_guess (const double &x_O2, const double &phi_m, const double &phi_s, const double lambda, boost::shared_ptr< FuelCellShop::MicroScale::AgglomerateBase > &_agg, const double radius, const double film_thickness, const double porosity) |
|
void | commit_data_to_db (std::vector< std::vector< double >> agg_data, std::vector< std::string > agg_column_titles, const double &x_R, const double &phi_m, const double &phi_s, const double lambda, const double radius, const double film_thickness, const double porosity) |
|
void | compute_volume_fraction () |
| Compute porosity and volume fraction of solid and ionomer in the catalyst layer.
|
|
void | compute_Av () |
| Compute the active area of catalyst in the layer by the specified method.
|
|
void | derivative_effective_proton_conductivity_wrt_electrolyte_loading (double &) const |
| Compute the derivative of the effective proton conductivity w.r.t.
|
|
void | derivative_volume_fractions (double &Depsilon_S, double &Depsilon_V, double &Depsilon_N) const |
| Function to compute the partial derivative of the volume fraction the different phases in the catalyst layer with respect to the design variables of the optimization problem.
|
|
void | get_method_transport_property_pores (std::string &method) |
| Get the effective transport method in the pores.
|
|
void | get_method_transport_property_electrolyte (std::string &method) |
| Get the effective transport method in the electrolyte.
|
|
void | get_method_transport_property_solid (std::string &method) |
| Get the effective transport method in the solid phase.
|
|
double | depsilon_S_cat_dprc_Pt (const double V_Pt, const double prc_Pt) const |
| Inline function to compute
\[ \frac{\partial \epsilon_S^{cat}}{\partial \%Pt} \]
.
|
|
double | depsilon_S_cat_dVPt (const double prc_Pt) const |
| Inline function to compute
\[ \frac{\partial \epsilon_S^{cat}}{\partial m_{Pt}} \]
.
|
|
double | depsilon_V_cat_depsilon_S_cat () const |
| Inline function to compute
\[ \frac{\partial \epsilon_V^{cat}}{\partial \epsilon_S^{cat}} \]
.
|
|
double | depsilon_V_cat_depsilon_N_cat () const |
| Inline function to compute
\[ \frac{\partial \epsilon_V^{cat}}{\partial \epsilon_S^{cat}} \]
.
|
|
| ConventionalCL (std::string name) |
| Constructor.
|
|
void | declare_parameters (const std::string &cl_section_name, ParameterHandler ¶m) const |
| Declare parameters for a parameter file.
|
|
void | set_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, const std::string &cl_section_name, ParameterHandler ¶m) const |
| Member function used to set new parameters values in the optimization loop.
|
|
void | initialize (ParameterHandler ¶m) |
| Member function used to read in data and initialize the necessary data to compute the coefficients.
|
|
| CatalystLayer () |
|
| ~CatalystLayer () |
| Destructor.
|
|
| CatalystLayer (const std::string &name) |
| Constructor.
|
|
| PorousLayer (const std::string &name) |
| Constructor.
|
|
| PorousLayer () |
| Constructor.
|
|
virtual | ~PorousLayer () |
| Destructor.
|
|
void | set_parameters (const std::string &object_name, const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler ¶m) |
| Member function used to change the values in the parameter file for a given list of parameters.
|
|
virtual void | set_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler ¶m) |
| Member function used to change the values in the parameter file for a given list of parameters.
|
|
virtual void | gas_diffusion_coefficients (Table< 2, double > &) const |
| Return the molecular diffusivty all the gases assigned to the layer using set_gases_and_compute.
|
|
virtual void | derivative_gas_diffusion_coefficients (std::vector< Table< 2, double > > &) const |
| Return the derivative of the molecular diffusion coefficient with respect to the derivative flags for all the gases assigned to the layer using set_gases_and_compute.
|
|
| BaseLayer () |
| Constructor.
|
|
| BaseLayer (const std::string &name) |
| Constructor.
|
|
virtual | ~BaseLayer () |
| Destructor.
|
|
template<int dim>
class FuelCellShop::Layer::AgglomerateCL< dim >
This class characterizes a catalyst layer and uses this information to compute effective transport properties and interfacial areas for phase change or electrochemical reactions.
- Author
- M. Secanell, 2009-13
-
P. Dobson, 2009-11
-
M. Moore, 2010-12
-
M. Bhaiya, 2011-13
-
P. Wardlaw, 2012-13