17 #ifndef _FUELCELLSHOP__BASE__PSD_H 
   18 #define _FUELCELLSHOP__BASE__PSD_H 
   21 #include <base/parameter_handler.h> 
   22 #include <base/point.h> 
   23 #include <base/function.h> 
   24 #include <lac/vector.h> 
   25 #include <fe/fe_values.h> 
   39 using namespace dealii;
 
   41 namespace FuelCellShop
 
  169                          iterator->second->declare_parameters(param);
 
  186             static boost::shared_ptr<FuelCellShop::MicroScale::BasePSD<dim> > 
create_PSD (
const std::string& psd_section_name, 
 
  187                                                                                                      ParameterHandler ¶m)
 
  189                 boost::shared_ptr<FuelCellShop::MicroScale::BasePSD<dim> > pointer;
 
  191                 std::string concrete_name;
 
  193                 param.enter_subsection(
"PSD parameters");
 
  195                     param.enter_subsection(
"BasePSD");
 
  197                         concrete_name = param.get(
"psd type");
 
  199                     param.leave_subsection();
 
  201                 param.leave_subsection();
 
  207                     if (iterator->second)
 
  213                         deallog<<
"Pointer not initialized"<<std::endl;
 
  219                     deallog<<
"Concrete name in FuelCellShop::MicroScale::BasePSD::create_psd does not exist"<<std::endl;
 
  223                 pointer->initialize(param);
 
  236                 this->por = porosity;
 
  254                 this->derivative_flags = flags;
 
  270                 constant_solutions[name] = value;
 
  284                 const std::type_info& info = 
typeid(*this);
 
  285                 deallog << 
"Pure function " << __FUNCTION__
 
  286                 << 
" called in Class " 
  287                 << info.name()  << std::endl;
 
  307                 const std::type_info& info = 
typeid(*this);
 
  308                 deallog << 
"Pure function " << __FUNCTION__
 
  309                 << 
" called in Class " 
  310                 << info.name()  << std::endl;
 
  325             virtual  void get_saturation(std::vector<double>& ) 
const = 0;
 
  332             virtual  void get_global_saturated_permeability(
double& ) 
const = 0;
 
  339             virtual  void get_relative_liquid_permeability(std::vector<double>& ) 
const = 0;
 
  346             virtual  void get_relative_gas_permeability(std::vector<double>& ) 
const = 0;
 
  353             virtual  void get_liquid_gas_interfacial_surface(std::vector<double>& ) 
const = 0;
 
  360             virtual  void get_wetted_wall_surface_area(std::vector<double>& ) 
const = 0;
 
  367             virtual  void get_knudsen_radius(std::vector<double>& ) 
const = 0;
 
  389             BasePSD(
const std::string& name);
 
  398             void declare_parameters (ParameterHandler ¶m) 
const;
 
  404             void initialize (ParameterHandler ¶m) ;
 
  476             virtual boost::shared_ptr<FuelCellShop::MicroScale::BasePSD<dim> > 
create_replica (
const std::string &name)
 
  478                 const std::type_info& info = 
typeid(*this);
 
  479                 deallog << 
"Pure function " << __FUNCTION__
 
  480                 << 
" called in Class " 
  481                 << info.name() << std::endl;
 
virtual boost::shared_ptr< FuelCellShop::MicroScale::BasePSD< dim > > create_replica(const std::string &name)
This member function is used to create an object of type gas diffusion layer. 
Definition: PSD_base.h:476
 
double get_porosity() const 
Definition: PSD_base.h:242
 
VariableNames
The enumeration containing the names of some of the available FCST solution variables and their deriv...
Definition: system_management.h:62
 
std::vector< double > f_k
The f_k is the contribution of the log-normal distribution k to the total PSD. 
Definition: PSD_base.h:533
 
const std::string & name_psd() const 
Return the name of the PSD. 
Definition: PSD_base.h:296
 
double P_b
The effects of pore interconnectivity is represented by probability P_b. 
Definition: PSD_base.h:518
 
void set_porosity(double porosity)
Definition: PSD_base.h:234
 
static void declare_PSD_parameters(ParameterHandler ¶m)
Function used to declare all the data necessary in the parameter files for all BasePSD children...
Definition: PSD_base.h:163
 
double lamda
The lamda is measured from the mercury intrusion experiment. 
Definition: PSD_base.h:513
 
virtual void set_constant_solution(const double &value, const VariableNames &name)
Set those solution variables which are constant in the particular application. 
Definition: PSD_base.h:268
 
virtual void print_psd_properties() const 
This function prints out the psd properties. 
Definition: PSD_base.h:305
 
std::map< VariableNames, double > constant_solutions
Map storing values of solution variables constant in a particular application. 
Definition: PSD_base.h:498
 
std::vector< VariableNames > derivative_flags
Flags for derivatives: These flags are used to request derivatives of material properties. 
Definition: PSD_base.h:493
 
const std::string name
Name of the psd. 
Definition: PSD_base.h:490
 
double por
The por is the porosity inherited from the layer class. 
Definition: PSD_base.h:548
 
std::vector< double > r_k
The r_k is the characteristic pore size of the distribution k. 
Definition: PSD_base.h:538
 
static _mapFactory * get_mapFactory()
Return the map library that stores all childrens of this class. 
Definition: PSD_base.h:464
 
double contact_angle
The contact_angle is the contact angle between air and water. 
Definition: PSD_base.h:508
 
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 b...
Definition: PSD_base.h:282
 
std::map< std::string, BasePSD< dim > * > _mapFactory
This object is used to store all objects of type psd. 
Definition: PSD_base.h:412
 
double gamma
The gamma is the Water-air interface surface tension. 
Definition: PSD_base.h:503
 
Pore Size Distribution. 
Definition: PSD_base.h:130
 
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...
Definition: PSD_base.h:186
 
double F_HO
The F_HO is the fraction of the total volume corresponding to the hydrophobic pores. 
Definition: PSD_base.h:528
 
double F_HI
The F_HI is the fraction of the total volume corresponding to the hydrophilic pores. 
Definition: PSD_base.h:523
 
BasePSD()
Constructor. 
Definition: PSD_base.h:383
 
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 derivati...
Definition: PSD_base.h:252
 
std::vector< double > s_k
The s_k is the spread of the distribution k. 
Definition: PSD_base.h:543