17 #ifndef _FUELCELLSHOP__MICRO_POROUS_LAYER_H 
   18 #define _FUELCELLSHOP__MICRO_POROUS_LAYER_H 
   24 using namespace dealii;
 
   26 namespace FuelCellShop
 
  157                                                                  ParameterHandler ¶m)
 
  163                          iterator->second->declare_parameters(mpl_section_name, param);
 
  170             static boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> > 
create_MicroPorousLayer (
const std::string& mpl_section_name, 
 
  171                                                                                                            ParameterHandler ¶m)
 
  173                 boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> > pointer;
 
  175                 std::string concrete_name;
 
  176                 param.enter_subsection(
"Fuel cell data");
 
  178                     param.enter_subsection(mpl_section_name);
 
  180                         concrete_name = param.get(
"Micro porous layer type");
 
  183                     param.leave_subsection();
 
  185                 param.leave_subsection();
 
  191                     if (iterator->second)
 
  203                      FcstUtilities::log<<
"Concrete name in FuelCellShop::Layer::MicroPorousLayer<dim>::create_MicroPorousLayer does not exist"<<std::endl;
 
  207                 pointer->initialize(param);
 
  232             void initialize (ParameterHandler ¶m);
 
  270                 const std::type_info& info = 
typeid(*this);
 
  272                 << 
" called in Class " 
  273                 << info.name() << std::endl;
 
  282                 const std::type_info& info = 
typeid(*this);
 
  284                 << 
" called in Class " 
  285                 << info.name() << std::endl;
 
  296                 const std::type_info& info = 
typeid(*this);
 
  298                 << 
" called in Class " 
  299                 << info.name() << std::endl;
 
  310                 const std::type_info& info = 
typeid(*this);
 
  312                 << 
" called in Class " 
  313                 << info.name() << std::endl;
 
  328                  const std::type_info& info = 
typeid(*this);
 
  330                  << 
" called in Class " 
  331                  << info.name() << std::endl;
 
  341                  const std::type_info& info = 
typeid(*this);
 
  343                  << 
" called in Class " 
  344                  << info.name() << std::endl; 
 
  354                 const std::type_info& info = 
typeid(*this);
 
  356                 << 
" called in Class " 
  357                 << info.name() << std::endl;
 
  367                 const std::type_info& info = 
typeid(*this);
 
  369                 << 
" called in Class " 
  370                 << info.name() << std::endl;
 
  379                 const std::type_info& info = 
typeid(*this);
 
  381                 << 
" called in Class " 
  382                 << info.name() << std::endl;
 
  391                 const std::type_info& info = 
typeid(*this);
 
  393                 << 
" called in Class " 
  394                 << info.name() << std::endl;
 
  403                 const std::type_info& info = 
typeid(*this);
 
  405                 << 
" called in Class " 
  406                 << info.name() << std::endl;
 
  414                 const std::type_info& info = 
typeid(*this);
 
  416                 << 
" called in Class " 
  417                 << info.name() << std::endl;
 
  426                 const std::type_info& info = 
typeid(*this);
 
  428                 << 
" called in Class " 
  429                 << info.name() << std::endl;
 
  438                 const std::type_info& info = 
typeid(*this);
 
  440                 << 
" called in Class " 
  441                 << info.name() << std::endl;
 
  446                 const std::type_info& info = 
typeid(*this);
 
  448                 << 
" called in Class " 
  449                 << info.name() << std::endl;
 
  454                 const std::type_info& info = 
typeid(*this);
 
  456                 << 
" called in Class " 
  457                 << info.name() << std::endl;
 
  462                 const std::type_info& info = 
typeid(*this);
 
  464                 << 
" called in Class " 
  465                 << info.name() << std::endl;
 
  473                 const std::type_info& info = 
typeid(*this);
 
  475                 << 
" called in Class " 
  476                 << info.name() << std::endl; 
 
  481                 const std::type_info& info = 
typeid(*this);
 
  483                 << 
" called in Class " 
  484                 << info.name() << std::endl; 
 
  489                 const std::type_info& info = 
typeid(*this);
 
  491                 << 
" called in Class " 
  492                 << info.name() << std::endl; 
 
  499                 const std::type_info& info = 
typeid(*this);
 
  501                 << 
" called in Class " 
  502                 << info.name() << std::endl;
 
  511                 const std::type_info& info = 
typeid(*this);
 
  513                 << 
" called in Class " 
  514                 << info.name() << std::endl;
 
  523                 const std::type_info& info = 
typeid(*this);
 
  525                 << 
" called in Class " 
  526                 << info.name() << std::endl;
 
  535                 const std::type_info& info = 
typeid(*this);
 
  537                 << 
" called in Class " 
  538                 << info.name() << std::endl;
 
  549                 const std::type_info& info = 
typeid(*this);
 
  551                 << 
" called in Class " 
  552                 << info.name() << std::endl;
 
  563                                                             double& effective_property)
 const 
  565                 const std::type_info& info = 
typeid(*this);
 
  567                 << 
" called in Class " 
  568                 << info.name() << std::endl;
 
  579                                                             Tensor<2,dim>& effective_property)
 const 
  581                 const std::type_info& info = 
typeid(*this);
 
  583                 << 
" called in Class " 
  584                 << info.name() << std::endl;
 
  594                 const std::type_info& info = 
typeid(*this);
 
  596                 << 
" called in Class " 
  597                 << info.name() << std::endl;
 
  606                 const std::type_info& info = 
typeid(*this);
 
  608                 << 
" called in Class " 
  609                 << info.name() << std::endl;
 
  614                 const std::type_info& info = 
typeid(*this);
 
  616                 << 
" called in Class " 
  617                 << info.name() << std::endl;
 
  658             void declare_parameters (
const std::string& name, 
 
  659                                      ParameterHandler ¶m) 
const;
 
  672             typedef std::map< std::string, MicroPorousLayer<dim>* > 
_mapFactory;      
 
  731             virtual boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> > 
create_replica (
const std::string &name)
 
  733                 const std::type_info& info = 
typeid(*this);
 
  735                 << 
" called in Class " 
  736                 << info.name() << std::endl;
 
  758 #endif // _FUELCELLSHOP__MICRO_POROUS_LAYER_H 
Tensor< 2, dim > water_diffusivity
Water diffusion coefficient. 
Definition: micro_porous_layer.h:746
 
virtual void effective_gas_diffusivity(Table< 2, Tensor< 2, dim > > &) const 
Compute the effective property in the pores. 
Definition: micro_porous_layer.h:326
 
virtual void derivative_interfacial_surface_area_PSD(std::vector< double > &) const 
Definition: micro_porous_layer.h:612
 
virtual void effective_electron_conductivity(double &) const 
Compute the effective conductivity. 
Definition: micro_porous_layer.h:339
 
static boost::shared_ptr< FuelCellShop::Layer::MicroPorousLayer< dim > > create_MicroPorousLayer(const std::string &mpl_section_name, ParameterHandler ¶m)
Function used to select the appropriate MicroPorousLayer. 
Definition: micro_porous_layer.h:170
 
virtual void pcapillary(std::vector< double > &) const 
Compute , at all quadrature points in the cell. 
Definition: micro_porous_layer.h:471
 
virtual void saturated_liquid_permeablity_PSD(double &) const 
Definition: micro_porous_layer.h:460
 
virtual void effective_transport_property_solid(const double &property, double &effective_property) const 
Compute the effective property of a property that is defined by the network of fibres. 
Definition: micro_porous_layer.h:562
 
virtual void effective_electron_conductivity(Tensor< 2, dim > &) const 
Compute the effective conductivity. 
Definition: micro_porous_layer.h:352
 
virtual void derivative_saturation_from_capillary_equation_PSD(std::vector< double > &) const 
Definition: micro_porous_layer.h:487
 
virtual void effective_gas_diffusivity(const double &, const double &, Tensor< 2, dim > &) const 
Compute the effective property in the pores of the MPL. 
Definition: micro_porous_layer.h:280
 
VariableNames
The enumeration containing the names of some of the available FCST solution variables and their deriv...
Definition: system_management.h:63
 
virtual void interfacial_surface_area_PSD(std::vector< double > &) const 
Compute the liquid-gas interfacial surface area per unit volume, , at all quadrature points in the CL...
Definition: micro_porous_layer.h:592
 
virtual void derivative_effective_gas_diffusivity(std::map< VariableNames, std::vector< Tensor< 2, dim > > > &) const 
Return the derivative of effective diffusivity w.r.t solution variables/design parameters for nonisot...
Definition: micro_porous_layer.h:308
 
virtual boost::shared_ptr< FuelCellShop::Layer::MicroPorousLayer< dim > > create_replica(const std::string &name)
This member function is used to create an object of type micro porous layer. 
Definition: micro_porous_layer.h:731
 
Virtual class used to provide the interface for all MicroPorousLayer children. 
Definition: micro_porous_layer.h:102
 
virtual void dpcapillary_dsat(std::vector< double > &) const 
Compute , at all quadrature points in the MPL. 
Definition: micro_porous_layer.h:497
 
virtual void effective_gas_diffusivity(std::vector< Tensor< 2, dim > > &) const 
Return the effective diffusivity [m^2/s] for nonisothermal with/without two-phase case in the MPL...
Definition: micro_porous_layer.h:294
 
Tensor< 2, dim > electrical_conductivity
Electrical conductivity from the input file in the anisotripic case. 
Definition: micro_porous_layer.h:748
 
virtual void derivative_interfacial_surface_area(std::map< VariableNames, std::vector< double > > &) const 
Compute the derivative of the liquid-gas interfacial surface area per unit volume, with respect to either the solution variables or design parameters, at all quadrature points in the MPL. 
Definition: micro_porous_layer.h:533
 
virtual void effective_transport_property_solid(const Tensor< 2, dim > &property, Tensor< 2, dim > &effective_property) const 
Compute the effective property of a property that is defined by the network of fibres. 
Definition: micro_porous_layer.h:578
 
virtual void saturation_from_capillary_equation(std::vector< double > &) const 
Definition: micro_porous_layer.h:479
 
virtual void relative_liquid_permeability_PSD(std::vector< Tensor< 2, dim > > &) const 
Compute the derivative of the anisotropic liquid permeability in the GDL with respect to either the s...
Definition: micro_porous_layer.h:436
 
Tensor< 2, dim > thermal_conductivity
Thermal conductivity from the input file in the anisotripic case. 
Definition: micro_porous_layer.h:750
 
virtual void interfacial_surface_area(std::vector< double > &) const 
Compute the liquid-gas interfacial surface area per unit volume, , at all quadrature points in the MP...
Definition: micro_porous_layer.h:521
 
FCSTLogStream log
Object used to output data to file and, if file attached recorded to a file as well. 
 
static void declare_MicroPorousLayer_parameters(const std::string &mpl_section_name, ParameterHandler ¶m)
Function used to declare all the data necessary in the parameter files former all MicroPorousLayer ch...
Definition: micro_porous_layer.h:156
 
static const std::string concrete_name
Concrete name used for objects of this class. 
Definition: micro_porous_layer.h:125
 
virtual void derivative_interfacial_surface_area_PSD(std::map< VariableNames, std::vector< double > > &) const 
Compute the derivative of the liquid-gas interfacial surface area per unit volume, with respect to either the solution variables or design parameters, at all quadrature points in the CL. 
Definition: micro_porous_layer.h:604
 
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 cl...
Definition: micro_porous_layer.h:254
 
virtual void derivative_relative_liquid_permeablity_PSD(std::map< VariableNames, std::vector< Tensor< 2, dim > > > &) const 
Definition: micro_porous_layer.h:444
 
virtual void derivative_effective_thermal_conductivity(std::vector< Tensor< 2, dim > > &) const 
Compute the derivative of effective thermal conductivity with respect to temperature. 
Definition: micro_porous_layer.h:401
 
virtual void effective_gas_diffusivity(const double &, const double &, double &) const 
Compute the effective property in the pores of the MPL. 
Definition: micro_porous_layer.h:268
 
Tensor< 2, dim > oxygen_diffusivity
Oxygen diffusion coefficient. 
Definition: micro_porous_layer.h:744
 
Virtual class used to implement properties that are characteristic of a porous layer. 
Definition: porous_layer.h:75
 
virtual void derivative_relative_liquid_permeablity_PSD(std::vector< double > &) const 
Definition: micro_porous_layer.h:452
 
static _mapFactory * get_mapFactory()
Return the map library that stores all childrens of this class. 
Definition: micro_porous_layer.h:721
 
virtual void effective_thermal_conductivity(Tensor< 2, dim > &) const 
Compute the effective thermal conductivity. 
Definition: micro_porous_layer.h:377
 
virtual void effective_thermal_conductivity(double &) const 
Compute the effective thermal conductivity. 
Definition: micro_porous_layer.h:365
 
virtual void derivative_dpcapillary_dsat(std::map< VariableNames, std::vector< double > > &) const 
Compute the derivative of  in the MPL, with respect to either the solution or design parameters...
Definition: micro_porous_layer.h:509
 
virtual bool set_method_effective_transport_property_solid(std::string)
Specify the methodology to be used to compute the effective properties for the porous phase...
Definition: micro_porous_layer.h:547
 
bool anisotropy
Anisotropy variable. 
Definition: micro_porous_layer.h:742
 
virtual void derivative_liquid_permeablity(std::map< VariableNames, std::vector< Tensor< 2, dim > > > &) const 
Compute the derivative of the anisotropic liquid permeability in the MPL with respect to either the s...
Definition: micro_porous_layer.h:424
 
virtual void liquid_permeablity(std::vector< Tensor< 2, dim > > &) const 
Compute the anisotropic MPL liquid permeability , at all quadrature points in the cell...
Definition: micro_porous_layer.h:412
 
virtual void effective_thermal_conductivity(std::vector< Tensor< 2, dim > > &) const 
Compute the effective thermal conductivity. 
Definition: micro_porous_layer.h:389
 
std::map< std::string, MicroPorousLayer< dim > * > _mapFactory
This object is used to store all objects of type MicroPorousLayer. 
Definition: micro_porous_layer.h:672