OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
FuelCellShop::MicroScale::HIPSD< dim > Class Template Reference

Hydrophilic Pore Size Distribution. More...

#include <PSD_HI.h>

Inheritance diagram for FuelCellShop::MicroScale::HIPSD< dim >:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::MicroScale::HIPSD< dim >:
Collaboration graph
[legend]

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 > &S) const
 
virtual void get_global_saturated_permeability (double &saturated_permeability) const
 This function is used to compute the Hydrophilic saturated_permeability by using PSD. More...
 
virtual void get_global_saturated_permeability (const double, double &) const
 
virtual void get_pore_HI_liquid_saturated_permeability (std::vector< double > &) const
 This function is used to compute the Hydrophilic liquid_permeability by using PSD. More...
 
virtual void get_derivative_pore_HI_liquid_saturated_permeability (std::vector< double > &) const
 
virtual void get_derivative_pore_HI_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_HI_liquid_saturated_permeability (const double porosity, const std::vector< double > S, std::vector< double > &saturated_HI_permeability) const
 
virtual void get_relative_liquid_permeability (std::vector< double > &liquid_permeability) const
 This function is used to compute the Hydrophilic 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_HI_gas_saturated_permeability (std::vector< double > &saturated_HI_permeability) const
 This function is used to compute the Hydrophilic gas_permeability by using PSD. More...
 
virtual void get_pore_HI_gas_saturated_permeability (const double porosity, const std::vector< double > S, std::vector< double > &saturated_HI_permeability) const
 
virtual void get_relative_gas_permeability (std::vector< double > &gas_permeability) const
 This function is used to compute the Hydrophilic gas_permeability by using PSD. More...
 
virtual void get_liquid_gas_interfacial_surface (std::vector< double > &HI_liquid_gas_interfacial_surface_a) const
 This function is used to compute the Hydrophilic liquid_gas_interfacial_surface by using PSD. More...
 
virtual void get_liquid_gas_interfacial_surface_withoutPb (std::vector< double > &HI_liquid_gas_interfacial_surface) const
 
virtual void get_derivative_liquid_gas_interfacial_surface (std::vector< double > &) const
 This function is used to compute the Hydrophilic liquid_gas_interfacial_surface by using PSD. More...
 
virtual void get_derivative_liquid_gas_interfacial_surface_increment (std::vector< double > &) const
 
virtual void get_pore_HI_wetted_wall_surface_area (std::vector< double > &HI_wetted_wall_surface_area) const
 This function is used to compute the Hydrophilic 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 Hydrophilic pore_wetted_wall by using PSD. More...
 
virtual void get_pore_knudsen_radius_C1 (std::vector< double > &knudsen_radius_C1) const
 This function is used to compute the knudsen_radius C1 by using PSD. More...
 
virtual void get_pore_knudsen_radius_C3 (std::vector< double > &knudsen_radius_C3) const
 This function is used to compute the knudsen_radius C3 by using PSD. More...
 
virtual void get_knudsen_radius (std::vector< double > &knudsen_radius) const
 This function is used to compute the Hydrophilic knudsen_radius by using PSD. More...
 
virtual void get_diffusivity () const
 This function is used to compute Hydrophilic the diffusivity by using PSD. More...
 
virtual void get_critical_radius (std::vector< double > &dst) const
 This function is used to compute the critical_radius 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 &param)
 Member function used to read in data and initialize the necessary data to compute the coefficients. More...
 

Protected Attributes

PSD properties
std::vector< double > fHI_k
 The f_k is the contribution of the log-normal distribution k to the total PSD. More...
 
std::vector< double > rHI_k
 The r_k is the characteristic pore size of the distribution k. More...
 
std::vector< double > sHI_k
 The s_k is the spread of the distribution k. More...
 
double contact_angle_HI
 
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< VariableNamesderivative_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 HIPSD< dim > const * PROTOTYPE
 PROTOTYPE is the pointer is the dynamic pointer pointing to the HIPSD class itself. More...
 

Consturctor,Destructor and Initalization

static const std::string concrete_name
 Concrete name used for objects of this class. More...
 
 HIPSD ()
 
 HIPSD (std::string name)
 Constructor. More...
 
virtual ~HIPSD ()
 Destructor. More...
 
void declare_parameters (ParameterHandler &param) const
 Declare parameters for a parameter file. More...
 
void initialize (ParameterHandler &param)
 Member function used to read in data and initialize the necessary data 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 &param)
 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 &param)
 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 _mapFactoryget_mapFactory ()
 Return the map library that stores all childrens of this class. More...
 

Detailed Description

template<int dim>
class FuelCellShop::MicroScale::HIPSD< dim >

Hydrophilic 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.

Input parameters

The input parameters for this class are:Mode probability global, Mode characteristic radius global, Mode width global, Volume fraction Hydrophilic...

* subsection PSD parameters
* subsection BasePSD
* set psd type = HIPSD
* set Mode probability global = 0.72, 0.28
* set Mode characteristic radius global = 34.0, 14.2
* set Mode width global = 0.35, 1.0
* set Gamma = 0.24
* set contact_angle = 1.396
* set lamda = 1.0
* subsection HIPSD
* set Hydrophilic Mode probability global = 0.72, 0.28
* set Hydrophilic Mode characteristic radius global = 34.0, 14.2
* set Hydrophilic Mode width global = 0.35, 1.0
* end
* end
* end
*

Usage details

If you want to use the object of the HIPSD, use the following code, but you should not create an object of the HIPSD out of the PSD scope. If you want to use the PSD in the layer level, use the code in BasePSD.

* //Create an object of TemplateClass
*

References

[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

Author
J. Zhou

Marc Secanell

Date
2014

Constructor & Destructor Documentation

template<int dim>
FuelCellShop::MicroScale::HIPSD< dim >::HIPSD ( )
Warning
For internal use only.

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.

template<int dim>
FuelCellShop::MicroScale::HIPSD< dim >::HIPSD ( std::string  name)

Constructor.

template<int dim>
virtual FuelCellShop::MicroScale::HIPSD< dim >::~HIPSD ( )
inlinevirtual

Destructor.

Member Function Documentation

template<int dim>
virtual boost::shared_ptr<FuelCellShop::MicroScale::BasePSD <dim> > FuelCellShop::MicroScale::HIPSD< dim >::create_replica ( const std::string &  psd_section_name)
inlineprotectedvirtual

This member function is used to create an object of type psd.

Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
void FuelCellShop::MicroScale::HIPSD< dim >::declare_parameters ( ParameterHandler &  param) const
virtual

Declare parameters for a parameter file.

Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
const std::type_info& FuelCellShop::MicroScale::HIPSD< dim >::get_base_type ( ) const
inlinevirtual

This member function returns a type_info object with the name of the base layer type the inherited class belongs to, i.e.

HIPSD HOPSD DualPSD

Note that this is necessary if we want to find out not the name of the actual class which can be obtain using

const std::type_info& name = typeid(*this)

but the name of the parent class.

Note
Do not re-implement this class in children classes

Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_critical_radius ( std::vector< double > &  dst) const
virtual

This function is used to compute the critical_radius by using PSD.

Note
the p_c is the capillary pressure which is one of the solution variable in the equation liquid water therefore we need to use set_capillary function to compute the p_c at each quatrature points Units of the critical_radius is in $ r_c \quad \left[ um \right] $ and the capillary pressure imposed by the solution is $ P_c \quad \left[ Pascal \right] $
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_derivate_critical_radius ( std::vector< double > &  dst) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_derivative_liquid_gas_interfacial_surface ( std::vector< double > &  ) const
virtual

This function is used to compute the Hydrophilic liquid_gas_interfacial_surface by using PSD.

$ \frac{a(r)_{HI}}{V_{T}} = \frac{a(r)_{c}}{a_{T}} \left( 1 - \frac{a(r)_{c}}{a_{T}}\right)\,F_{HI}\sum_{k}\frac{f_{k,HI}\exp{\left(\frac{s_{k,HI}^{2}}{2} \right)}}{8\,r_{k,HI}} \left[1 + \text{erf}\left(\frac{\text{ln}(r_{cr}) - \text{ln}(r_{k,HI})}{s_{k,HI}\sqrt{2}} + \frac{s_{k,HI}\sqrt{2}}{2} \right) \right] $

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_derivative_liquid_gas_interfacial_surface_increment ( std::vector< double > &  ) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_derivative_pore_HI_liquid_saturated_permeability ( std::vector< double > &  ) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_derivative_pore_HI_liquid_saturated_permeability ( const double  porosity,
const std::vector< double >  S,
const std::vector< double >  ds_dp,
std::vector< double > &   
) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_derivative_relative_liquid_permeability ( std::vector< double > &  ) const
virtual

This function is used to compute the liquid_permeability by using PSD.

Warning
This function is a virtual function and it must be reimplemented in the child class

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_derivative_saturation ( std::vector< double > &  S) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_diffusivity ( ) const
virtual

This function is used to compute Hydrophilic the diffusivity by using PSD.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_global_saturated_permeability ( double &  saturated_permeability) const
virtual

This function is used to compute the Hydrophilic saturated_permeability by using PSD.

$ k_{sat} = \frac{1}{8}\left[\frac{\varepsilon_{o}}{\lambda}\right]^{2} \sum_{k} \,\exp{(-2\,s_{k}^{2})}\,r_{k}^{2}f_{k} $

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_global_saturated_permeability ( const double  ,
double &   
) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_knudsen_radius ( std::vector< double > &  knudsen_radius) const
virtual

This function is used to compute the Hydrophilic knudsen_radius by using PSD.

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_liquid_gas_interfacial_surface ( std::vector< double > &  HI_liquid_gas_interfacial_surface_a) const
virtual

This function is used to compute the Hydrophilic liquid_gas_interfacial_surface by using PSD.

$ \frac{a(r)_{HI}}{V_{T}} = \frac{a(r)_{c}}{a_{T}} \left( 1 - \frac{a(r)_{c}}{a_{T}}\right)\,F_{HI}\sum_{k}\frac{f_{k,HI}\exp{\left(\frac{s_{k,HI}^{2}}{2} \right)}}{8\,r_{k,HI}} \left[1 + \text{erf}\left(\frac{\text{ln}(r_{cr}) - \text{ln}(r_{k,HI})}{s_{k,HI}\sqrt{2}} + \frac{s_{k,HI}\sqrt{2}}{2} \right) \right] $

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_liquid_gas_interfacial_surface_withoutPb ( std::vector< double > &  HI_liquid_gas_interfacial_surface) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_maximum_cross_sectional_areas ( double &  ) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_pore_HI_gas_saturated_permeability ( std::vector< double > &  saturated_HI_permeability) const
virtual

This function is used to compute the Hydrophilic gas_permeability by using PSD.

$ k_{G,HI} = \frac{F_{HI}}{16}\left[\frac{\varepsilon_{o}\,\left(1 - S_{e}\right)}{\lambda}\right]^{2}\sum_{k} \,\exp{(-2\,s_{HI,k}^{2})}\,r_{HI,k}^{2}f_{HI,k} \left[-\text{erf}\left(\frac{\ln{(r_{c,HI})} - \ln{(r_{HI,k})}}{s_{HI,k}\sqrt{2}} - s_{HI,k}\sqrt{2} \right) + 1 \right] $

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_pore_HI_gas_saturated_permeability ( const double  porosity,
const std::vector< double >  S,
std::vector< double > &  saturated_HI_permeability 
) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_pore_HI_liquid_saturated_permeability ( std::vector< double > &  ) const
virtual

This function is used to compute the Hydrophilic liquid_permeability by using PSD.

$ k_{L,HI} = \frac{F_{HI}}{16}\left[\frac{\varepsilon_{o}\,S_{e}}{\lambda}\right]^{2}\sum_{k} \,\exp{(-2\,s_{HI,k}^{2})}\,r_{HI,k}^{2}f_{HI,k} \left[\text{erf}\left(\frac{\ln{(r_{c,HI})} - \ln{(r_{HI,k})}}{s_{HI,k}\sqrt{2}} - s_{HI,k}\sqrt{2} \right) + 1 \right] $

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_pore_HI_liquid_saturated_permeability ( const double  porosity,
const std::vector< double >  S,
std::vector< double > &  saturated_HI_permeability 
) const
virtual
template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_pore_HI_wetted_wall_surface_area ( std::vector< double > &  HI_wetted_wall_surface_area) const
virtual

This function is used to compute the Hydrophilic pore_wetted_wall by using PSD.

$ a_{wall,HI} = \sum_{k} \frac{F_{HI}\,f_{k,HI}}{r_{k,HI}}\text{exp}\left(\frac{s_{k,HI}^{2}}{2} \right) \left[ 1 + \text{erf} \left( \frac{\text{ln}(r_{c,HI}) - \text{ln}(r_{k,HI})}{s_{k,HI}\sqrt{2}} + \frac{s_{k,HI}}{\sqrt{2}} \right) \right] $

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_pore_knudsen_radius_C1 ( std::vector< double > &  knudsen_radius_C1) const
virtual

This function is used to compute the knudsen_radius C1 by using PSD.

$ C_{1} = F_{HI} \sum_{k} \frac{f_{HI,r,k}}{2} \left[1 - \text{erf}\left(\frac{\text{ln}(r_{c,HI}) - \text{ln}(r_{HI,k})}{s_{HI,k}\sqrt{2}} \right) \right] $

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_pore_knudsen_radius_C3 ( std::vector< double > &  knudsen_radius_C3) const
virtual

This function is used to compute the knudsen_radius C3 by using PSD.

$ C_{3} = \sum_{k} \frac{F_{HI}\,f_{k,HI}}{r_{k,HI}}\text{exp}\left(\frac{s_{k,HI}^{2}}{2} \right) \left[ 1 - \text{erf} \left( \frac{\text{ln}(r_{c,HI}) - \text{ln}(r_{k,HI})}{s_{k,HI}\sqrt{2}} + \frac{s_{k,HI}}{\sqrt{2}} \right) \right] $

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_PSD_plot ( const std::vector< double >  ,
std::vector< double > &   
) const
virtual

This function is used to plot PSD configuration.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_relative_gas_permeability ( std::vector< double > &  gas_permeability) const
virtual

This function is used to compute the Hydrophilic gas_permeability by using PSD.

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_relative_liquid_permeability ( std::vector< double > &  liquid_permeability) const
virtual

This function is used to compute the Hydrophilic liquid_permeability by using PSD.

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_saturation ( std::vector< double > &  S) const
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.

$ S_{HI} = F_{HI}\sum_{k} \frac{f_{HI,r,k}}{2} \left[1 + \text{erf}\left(\frac{\text{ln}(r_{c,HI}) - \text{ln}(r_{HI,k})}{s_{HI,k}\sqrt{2}} \right) \right] $

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
virtual void FuelCellShop::MicroScale::HIPSD< dim >::get_wetted_wall_surface_area ( std::vector< double > &  wetted_wall_surface_area) const
virtual

This function is used to compute the Hydrophilic pore_wetted_wall by using PSD.

Implements FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
void FuelCellShop::MicroScale::HIPSD< dim >::initialize ( ParameterHandler &  param)
virtual

Member function used to read in data and initialize the necessary data to compute the coefficients.

Reimplemented from FuelCellShop::MicroScale::BasePSD< dim >.

template<int dim>
void FuelCellShop::MicroScale::HIPSD< dim >::set_capillary_pressure ( const SolutionVariable C_in)
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().

Here is the call graph for this function:

template<int dim>
void FuelCellShop::MicroScale::HIPSD< dim >::set_critical_radius ( )
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 >.

template<int dim>
void FuelCellShop::MicroScale::HIPSD< dim >::set_saturation ( )
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 >.

template<int dim>
void FuelCellShop::MicroScale::HIPSD< dim >::set_temperature ( const SolutionVariable T_in)
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.

Here is the call graph for this function:

Member Data Documentation

template<int dim>
SolutionVariable FuelCellShop::MicroScale::HIPSD< dim >::Capillary_pressure_vector
protected

Capillary pressure at every quadrature point inside the cell.

template<int dim>
const std::string FuelCellShop::MicroScale::HIPSD< dim >::concrete_name
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

* set psd type = HIPSD # <-here I select the type of object of type psd
* subsection HIPSD # <- this is the concrete_name for this class
* set all info relevant to this object
* end
* end
*
template<int dim>
double FuelCellShop::MicroScale::HIPSD< dim >::contact_angle_HI
protected
template<int dim>
std::vector<double> FuelCellShop::MicroScale::HIPSD< dim >::critical_radius_computed
protected

Critical_radius_computed by the get_critical_radius function.

template<int dim>
bool FuelCellShop::MicroScale::HIPSD< dim >::critical_radius_is_initialized
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

template<int dim>
std::vector<double> FuelCellShop::MicroScale::HIPSD< dim >::fHI_k
protected

The f_k is the contribution of the log-normal distribution k to the total PSD.

template<int dim>
double FuelCellShop::MicroScale::HIPSD< dim >::pressure_c
protected

Constant capillary pressure only for unit_test use.

template<int dim>
HIPSD<dim> const* FuelCellShop::MicroScale::HIPSD< dim >::PROTOTYPE
staticprotected

PROTOTYPE is the pointer is the dynamic pointer pointing to the HIPSD class itself.

template<int dim>
std::vector<double> FuelCellShop::MicroScale::HIPSD< dim >::rHI_k
protected

The r_k is the characteristic pore size of the distribution k.

template<int dim>
std::vector<double> FuelCellShop::MicroScale::HIPSD< dim >::saturation_computed
protected

Saturation_computed by the get_critical_radius function.

template<int dim>
bool FuelCellShop::MicroScale::HIPSD< dim >::saturation_is_initialized
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

template<int dim>
std::vector<double> FuelCellShop::MicroScale::HIPSD< dim >::sHI_k
protected

The s_k is the spread of the distribution k.

template<int dim>
SolutionVariable FuelCellShop::MicroScale::HIPSD< dim >::T_vector
protected

Temperature at every quadrature point inside the cell.


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