OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Hydrophobic Pore Size Distribution. More...
#include <PSD_HO.h>
Public Member Functions | |
Accessors and info | |
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. More... | |
virtual void | get_saturation (std::vector< double > &S) const |
This function is used to compute the saturation by using PSD The saturation iof a porous medium can be obtained by integrating the change of cumulative pore volume fraction as a function of effective pore radius over the whole pore size domain. More... | |
virtual void | get_derivative_saturation (std::vector< double > &) const |
virtual void | get_global_saturated_permeability (double &saturated_permeability) const |
This function is used to compute the Hydrophobic saturated_permeability by using PSD. More... | |
virtual void | get_global_saturated_permeability (const double, double &) const |
virtual void | get_pore_HO_liquid_saturated_permeability (std::vector< double > &saturated_HO_permeability) const |
This function is used to compute the Hydrophobic liquid_permeability by using PSD. More... | |
virtual void | get_derivative_pore_HO_liquid_saturated_permeability (std::vector< double > &) const |
virtual void | get_derivative_pore_HO_liquid_saturated_permeability (const double porosity, const std::vector< double > S, const std::vector< double > ds_dp, std::vector< double > &) const |
virtual void | get_pore_HO_liquid_saturated_permeability (const double porosity, const std::vector< double > S, std::vector< double > &saturated_HO_permeability) const |
virtual void | get_relative_liquid_permeability (std::vector< double > &liquid_permeability) const |
This function is used to compute the Hydrophobic liquid_permeability by using PSD. More... | |
virtual void | get_derivative_relative_liquid_permeability (std::vector< double > &) const |
This function is used to compute the liquid_permeability by using PSD. More... | |
virtual void | get_pore_HO_gas_saturated_permeability (std::vector< double > &saturated_HO_permeability) const |
This function is used to compute the Hydrophobic gas_permeability by using PSD. More... | |
virtual void | get_pore_HO_gas_saturated_permeability (const double porosity, const std::vector< double > S, std::vector< double > &saturated_HO_permeability) const |
virtual void | get_relative_gas_permeability (std::vector< double > &gas_permeability) const |
This function is used to compute the Hydrophobic gas_permeability by using PSD. More... | |
virtual void | get_liquid_gas_interfacial_surface (std::vector< double > &HO_liquid_gas_interfacial_surface_a) const |
This function is used to compute the Hydrophobic liquid_gas_interfacial_surface by using PSD. More... | |
virtual void | get_liquid_gas_interfacial_surface_withoutPb (std::vector< double > &HO_liquid_gas_interfacial_surface) const |
virtual void | get_derivative_liquid_gas_interfacial_surface_increment (std::vector< double > &) const |
This function is used to compute the Hydrophobic liquid_gas_interfacial_surface by using PSD. More... | |
virtual void | get_derivative_liquid_gas_interfacial_surface (std::vector< double > &) const |
This function is used to compute the liquid_gas_interfacial_surface by using PSD. More... | |
virtual void | get_pore_HO_wetted_wall_surface_area (std::vector< double > &HO_wetted_wall_surface_area) const |
This function is used to compute the Hydrophobic pore_wetted_wall by using PSD. More... | |
virtual void | get_wetted_wall_surface_area (std::vector< double > &wetted_wall_surface_area) const |
This function is used to compute the Hydrophobic pore_wetted_wall by using PSD. More... | |
virtual void | get_pore_knudsen_radius_C2 (std::vector< double > &knudsen_radius_C2) const |
This function is used to compute the Hydrophobic knudsen_radius C2 by using PSD. More... | |
virtual void | get_pore_knudsen_radius_C4 (std::vector< double > &knudsen_radius_C4) const |
This function is used to compute the Hydrophobic knudsen_radius C4 by using PSD. More... | |
virtual void | get_knudsen_radius (std::vector< double > &knudsen_radius) const |
This function is used to compute the Hydrophobic knudsen_radius by using PSD. More... | |
virtual void | get_diffusivity () const |
This function is used to compute the diffusivity by using PSD. More... | |
virtual void | get_critical_radius (std::vector< double > &dst) const |
This function is used to compute the diffusivity by using PSD. More... | |
virtual void | get_derivate_critical_radius (std::vector< double > &dst) const |
virtual void | get_maximum_cross_sectional_areas (double &) const |
virtual void | get_PSD_plot (const std::vector< double >, std::vector< double > &) const |
This function is used to plot PSD configuration. More... | |
Public Member Functions inherited from FuelCellShop::MicroScale::BasePSD< dim > | |
virtual | ~BasePSD () |
Destructor. More... | |
void | set_porosity (double porosity) |
double | get_porosity () const |
void | set_derivative_flags (const std::vector< VariableNames > &flags) |
Set the names of FCST solution variables with respect to which you would like to compute the derivatives of material properties. More... | |
virtual void | set_constant_solution (const double &value, const VariableNames &name) |
Set those solution variables which are constant in the particular application. More... | |
virtual void | set_solution (const std::vector< SolutionVariable > &) |
If the effective properties in the psd depend on the solution, the solution for a given cell should be passed to the class using this member function. More... | |
virtual void | get_PSD_plot () |
This function is used to create PSD configuration plot by outputing all the numbers. More... | |
const std::string & | name_psd () const |
Return the name of the PSD. More... | |
virtual void | print_psd_properties () const |
This function prints out the psd properties. More... | |
Protected Member Functions | |
Instance Delivery (Replica creator) | |
virtual boost::shared_ptr < FuelCellShop::MicroScale::BasePSD < dim > > | create_replica (const std::string &psd_section_name) |
This member function is used to create an object of type psd. More... | |
Protected Member Functions inherited from FuelCellShop::MicroScale::BasePSD< dim > | |
BasePSD () | |
Constructor. More... | |
BasePSD (const std::string &name) | |
Constructor. More... | |
void | _initialize (ParameterHandler ¶m) |
Member function used to read in data and initialize the necessary data to compute the coefficients. More... | |
Protected Attributes | |
Psd properties | |
std::vector< double > | fHO_k |
The f_k is the contribution of the log-normal distribution k to the total PSD. More... | |
std::vector< double > | rHO_k |
The r_k is the characteristic pore size of the distribution k. More... | |
std::vector< double > | sHO_k |
The s_k is the spread of the distribution k. More... | |
double | contact_angle_HO |
SolutionVariable | T_vector |
Temperature at every quadrature point inside the cell. More... | |
SolutionVariable | Capillary_pressure_vector |
Capillary pressure at every quadrature point inside the cell. More... | |
double | pressure_c |
Constant capillary pressure only for unit_test use. More... | |
std::vector< double > | critical_radius_computed |
Critical_radius_computed by the get_critical_radius function. More... | |
bool | critical_radius_is_initialized |
Check if the critical radius has already been computed by set_critical_radius function. More... | |
std::vector< double > | saturation_computed |
Saturation_computed by the get_critical_radius function. More... | |
bool | saturation_is_initialized |
Check if the saturation has already been computed by set_saturation function. More... | |
Protected Attributes inherited from FuelCellShop::MicroScale::BasePSD< dim > | |
const std::string | name |
Name of the psd. More... | |
std::vector< VariableNames > | derivative_flags |
Flags for derivatives: These flags are used to request derivatives of material properties. More... | |
std::map< VariableNames, double > | constant_solutions |
Map storing values of solution variables constant in a particular application. More... | |
double | gamma |
The gamma is the Water-air interface surface tension. More... | |
double | contact_angle |
The contact_angle is the contact angle between air and water. More... | |
double | lamda |
The lamda is measured from the mercury intrusion experiment. More... | |
double | F_HI |
The F_HI is the fraction of the total volume corresponding to the hydrophilic pores. More... | |
double | F_HO |
The F_HO is the fraction of the total volume corresponding to the hydrophobic pores. More... | |
std::vector< double > | f_k |
The f_k is the contribution of the log-normal distribution k to the total PSD. More... | |
std::vector< double > | r_k |
The r_k is the characteristic pore size of the distribution k. More... | |
std::vector< double > | s_k |
The s_k is the spread of the distribution k. More... | |
double | por |
The por is the porosity inherited from the layer class. More... | |
Static Protected Attributes | |
Instance Delivery (Prototype) | |
static HOPSD< dim > const * | PROTOTYPE |
PROTOTYPE is the pointer is the dynamic pointer pointing to the HOPSD class itself. More... | |
Constructor,Initalization, Declarations | |
static const std::string | concrete_name |
Concrete name used for objects of this class. More... | |
HOPSD () | |
Constructor. More... | |
HOPSD (std::string name) | |
Constructor. More... | |
virtual | ~HOPSD () |
Destructor. More... | |
void | initialize (ParameterHandler ¶m) |
Member function used to read in data and initialize the necessary data to compute the coefficients. More... | |
void | declare_parameters (ParameterHandler ¶m) const |
Declare all necessary parameters in order to compute the coefficients. More... | |
void | set_temperature (const SolutionVariable &T_in) |
Member function used to set the temperature [Kelvin ] at every quadrature point inside the cell. More... | |
void | set_capillary_pressure (const SolutionVariable &C_in) |
Member function used to set the capillary pressure [psi ] at every quadrature point inside the cell. More... | |
void | set_critical_radius () |
Member function used to set the critical radius [nm ] at every quadrature point inside the cell. More... | |
void | set_saturation () |
Member function used to set the saturation at every quadrature point inside the cell. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from FuelCellShop::MicroScale::BasePSD< dim > | |
static void | declare_PSD_parameters (ParameterHandler ¶m) |
Function used to declare all the data necessary in the parameter files for all BasePSD children. More... | |
static boost::shared_ptr < FuelCellShop::MicroScale::BasePSD < dim > > | create_PSD (const std::string &psd_section_name, ParameterHandler ¶m) |
Function used to select the appropriate CatalystLayer type as specified in the ParameterHandler under line. More... | |
Protected Types inherited from FuelCellShop::MicroScale::BasePSD< dim > | |
typedef std::map< std::string, BasePSD< dim > * > | _mapFactory |
This object is used to store all objects of type psd. More... | |
Static Protected Member Functions inherited from FuelCellShop::MicroScale::BasePSD< dim > | |
static _mapFactory * | get_mapFactory () |
Return the map library that stores all childrens of this class. More... | |
Hydrophobic Pore Size Distribution.
Based on the results of the mecury intrusion experiment, this class calculates the coefficients such as relative liquid permeability, permeability and knudsen radius...
This class is the child class of the all the BasePSD class which reimplements all the functions that are decleared in the BasePSD class.
The input parameters for this class are:Mode probability global, Mode characteristic radius global, Mode width global, Volume fraction Hydrophobic,
If you want to use the object of the HOPSD, use the following code, but you should not create an object of the HOPSD out of the PSD scope. If you want to use the PSD in the layer level, use the code in BasePSD.
[1] Pedro Abdiel Mateo Villanueva, A MIXED WETTABILITY PORE SIZE DISTRIBUTION MODEL FOR THE ANALYSIS OF WATER TRANSPORT IN PEMFC MATERIALS, M. Sc. thesis, University of Alberta, 2013
Marc Secanell
FuelCellShop::MicroScale::HOPSD< dim >::HOPSD | ( | ) |
Constructor.
Constructor used only to create a prototype. Do not use in general since this will not include the name of the section in the parameter file you need.
FuelCellShop::MicroScale::HOPSD< dim >::HOPSD | ( | std::string | name | ) |
Constructor.
|
virtual |
Destructor.
|
inlineprotectedvirtual |
This member function is used to create an object of type psd.
Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
Declare all necessary parameters in order to compute the coefficients.
Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.
|
inlinevirtual |
This member function returns a type_info object with the name of the base layer type the inherited class belongs to, i.e.
Note that this is necessary if we want to find out not the name of the actual class which can be obtain using
but the name of the parent class.
Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
This function is used to compute the diffusivity by using PSD.
|
virtual |
|
virtual |
This function is used to compute the liquid_gas_interfacial_surface by using PSD.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
This function is used to compute the Hydrophobic liquid_gas_interfacial_surface by using PSD.
|
virtual |
|
virtual |
|
virtual |
This function is used to compute the liquid_permeability by using PSD.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
This function is used to compute the diffusivity by using PSD.
|
virtual |
This function is used to compute the Hydrophobic saturated_permeability by using PSD.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
|
virtual |
This function is used to compute the Hydrophobic knudsen_radius by using PSD.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
This function is used to compute the Hydrophobic liquid_gas_interfacial_surface by using PSD.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
|
virtual |
|
virtual |
This function is used to compute the Hydrophobic gas_permeability by using PSD.
|
virtual |
|
virtual |
This function is used to compute the Hydrophobic liquid_permeability by using PSD.
|
virtual |
|
virtual |
This function is used to compute the Hydrophobic pore_wetted_wall by using PSD.
|
virtual |
This function is used to compute the Hydrophobic knudsen_radius C2 by using PSD.
|
virtual |
This function is used to compute the Hydrophobic knudsen_radius C4 by using PSD.
|
virtual |
This function is used to plot PSD configuration.
|
virtual |
This function is used to compute the Hydrophobic gas_permeability by using PSD.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
This function is used to compute the Hydrophobic liquid_permeability by using PSD.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
This function is used to compute the saturation by using PSD The saturation iof a porous medium can be obtained by integrating the change of cumulative pore volume fraction as a function of effective pore radius over the whole pore size domain.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
This function is used to compute the Hydrophobic pore_wetted_wall by using PSD.
Implements FuelCellShop::MicroScale::BasePSD< dim >.
|
virtual |
Member function used to read in data and initialize the necessary data to compute the coefficients.
Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.
|
inlinevirtual |
Member function used to set the capillary pressure [psi
] at every quadrature point inside the cell.
This function should particulary be used in the case of non-isothermal application.
Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.
References capillary_pressure, and FuelCellShop::SolutionVariable::get_variablename().
|
inlinevirtual |
Member function used to set the critical radius [nm
] at every quadrature point inside the cell.
This function should particulary be used in the case of non-isothermal application. It needs to be implemented at each iteration time to reduce the computational time.
Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.
|
inlinevirtual |
Member function used to set the saturation at every quadrature point inside the cell.
This function should particulary be used in the case of non-isothermal application. It needs to be implemented at each iteration time to reduce the computational time.
Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.
|
inlinevirtual |
Member function used to set the temperature [Kelvin
] at every quadrature point inside the cell.
This function should particulary be used in the case of non-isothermal application.
Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.
References FuelCellShop::SolutionVariable::get_variablename(), and temperature_of_REV.
|
protected |
Capillary pressure at every quadrature point inside the cell.
|
static |
Concrete name used for objects of this class.
This name is used when setting up the subsection where the data is stored in the input file.
The data will be store under
|
protected |
|
protected |
Critical_radius_computed by the get_critical_radius function.
|
protected |
Check if the critical radius has already been computed by set_critical_radius function.
It has to be reset each time when the solution variable capillary pressure is updated
|
protected |
The f_k is the contribution of the log-normal distribution k to the total PSD.
|
protected |
Constant capillary pressure only for unit_test use.
|
staticprotected |
PROTOTYPE is the pointer is the dynamic pointer pointing to the HOPSD class itself.
|
protected |
The r_k is the characteristic pore size of the distribution k.
|
protected |
Saturation_computed by the get_critical_radius function.
|
protected |
Check if the saturation has already been computed by set_saturation function.
It has to be reset each time when the solution variable capillary pressure is updated
|
protected |
The s_k is the spread of the distribution k.
|
protected |
Temperature at every quadrature point inside the cell.