17 #ifndef _FUELCELLSHOP__CONVENTIONAL_CL__H 
   18 #define _FUELCELLSHOP__CONVENTIONAL_CL__H 
   21 #include <deal.II/base/types.h> 
   26 #include <boost/shared_ptr.hpp> 
   33 using namespace dealii;
 
   35 namespace FuelCellShop
 
   96                 if (!epsilon_V.empty())
 
   97                     this->porosity = epsilon_V.at(this->local_material_id());
 
  102             virtual void print_layer_properties() 
const;
 
  109                 compute_volume_fraction();
 
  110                 volume_fractions[
"Solid"] = epsilon_S.at(this->local_material_id());
 
  111                 volume_fractions[
"Void"] = epsilon_V.at(this->local_material_id());
 
  112                 volume_fractions[
"Ionomer"] = epsilon_N.at(this->local_material_id());
 
  127                info[
"V_Pt"] = V_Pt.at(this->local_material_id());
 
  128                  info[
"loading_N"] = loading_N.at(this->local_material_id());
 
  129                  info[
"IC_ratio"] = IC_ratio.at(this->local_material_id());
 
  130                  info[
"prc_Pt"] = prc_Pt.at(this->local_material_id());
 
  134              inline double get_V_Pt(
const unsigned int mat_id = numbers::invalid_material_id)
 const 
  136                 Assert( mat_id != numbers::invalid_material_id, ExcMessage(
"Graded/Homogeneous Catalyst Layers needs its material id.") );
 
  138                  return V_Pt.at(this->local_material_id());
 
  150                  return Av.at(this->local_material_id());
 
  162             virtual void effective_gas_diffusivity(
const double&,
 
  174             virtual void effective_gas_diffusivity(std::vector< Tensor<2,dim> >&) 
const;
 
  184             virtual void derivative_effective_gas_diffusivity(std::map< 
VariableNames, std::vector< Tensor<2,dim> > >&) 
const;
 
  195             virtual void effective_gas_diffusivity(Table< 2, Tensor< 2, dim > >&) 
const;
 
  200             virtual void effective_electron_conductivity(
double&) 
const;
 
  206             virtual void effective_electron_conductivity(Tensor<2,dim>&) 
const;
 
  213             virtual void derivative_effective_electron_conductivity(std::vector<double>&) 
const;
 
  218             virtual void effective_proton_conductivity(
double&) 
const;
 
  219             virtual void effective_proton_conductivity(std::vector<double>&) 
const;
 
  225             virtual void derivative_effective_proton_conductivity(std::map< 
VariableNames, std::vector<double> >&) 
const;
 
  230             virtual void effective_water_diffusivity(
double&) 
const;
 
  231             virtual void effective_water_diffusivity(std::vector<double>&) 
const;
 
  237             virtual void derivative_effective_water_diffusivity(std::map< 
VariableNames, std::vector<double> >&) 
const;
 
  242             virtual void effective_thermal_conductivity(
double&) 
const;
 
  246             virtual void effective_thermal_conductivity(std::vector< Tensor<2,dim> >&) 
const;
 
  251             virtual void derivative_effective_thermal_conductivity(std::vector< Tensor<2,dim> >&) 
const;
 
  257             virtual void effective_thermoosmotic_diffusivity(std::vector<double>&) 
const;
 
  263             virtual void derivative_effective_thermoosmotic_diffusivity(std::map< 
VariableNames, std::vector<double> >&) 
const;
 
  268             virtual void liquid_permeablity(std::vector< Tensor<2,dim> >&) 
const;
 
  275             virtual void derivative_liquid_permeablity(std::map< 
VariableNames, std::vector< Tensor<2,dim> > >&) 
const;
 
  287             virtual void saturated_liquid_permeablity_PSD(
double&) 
const;
 
  289             virtual void relative_liquid_permeability_PSD(std::vector< Tensor<2,dim> >&) 
const;
 
  291             virtual void derivative_relative_liquid_permeablity_PSD(std::vector< double >&) 
const;
 
  293             virtual void derivative_relative_liquid_permeablity_PSD(std::map< 
VariableNames, std::vector< Tensor<2,dim> > >&) 
const;
 
  306             virtual void pcapillary(std::vector<double>&) 
const;
 
  308             virtual void saturation_from_capillary_equation(std::vector<double>&) 
const;
 
  310             virtual void derivative_saturation_from_capillary_equation_PSD(std::vector<double>&) 
const;
 
  314             virtual void dpcapillary_dsat(std::vector<double> &) 
const;
 
  320             virtual void derivative_dpcapillary_dsat(std::map< 
VariableNames, std::vector<double> > &) 
const;
 
  326             virtual void interfacial_surface_area(std::vector<double>&) 
const;
 
  332             virtual void derivative_interfacial_surface_area(std::map< 
VariableNames, std::vector<double> >&) 
const;
 
  338             virtual void interfacial_surface_area_PSD(std::vector<double>&) 
const;
 
  344             virtual void derivative_interfacial_surface_area_PSD(std::vector<double>&) 
const;
 
  345             virtual void derivative_interfacial_surface_area_PSD(std::map< 
VariableNames, std::vector<double> >&) 
const;
 
  399             void declare_parameters (
const std::string& cl_section_name, 
 
  400                                      ParameterHandler ¶m) 
const;
 
  406             void initialize (ParameterHandler ¶m);
 
  411             void compute_volume_fraction();
 
  462              void derivative_effective_proton_conductivity_wrt_electrolyte_loading(
double&) 
const;
 
  469              void derivative_volume_fractions(
double &Depsilon_S,
 
  471                                               double &Depsilon_N) 
const;
 
  478                 method = method_eff_property_pores;
 
  486                 method = method_eff_property_electrolyte;
 
  494                 method = method_eff_property_solid;
 
  504                                                  const double& prc_Pt)
 const 
  506                 return -(V_Pt*1e-3)/(rho_c*pow(prc_Pt,2.0));
 
  517                 return  (1/rho_Pt + (1-prc_Pt)/(prc_Pt*rho_c))*(1e-3);
 
  560             std::map< unsigned int, double> 
V_Pt;
 
  562             std::map< unsigned int, double> 
M_Pt;
 
  564             std::map< unsigned int, double> 
Av;
 
  570             std::map< unsigned int, double> 
L_CL;
 
  587             std::map< unsigned int, double> 
prc_N;
 
  616             std::map< unsigned int, double> 
k_T;
 
  621             std::map< unsigned int, double> 
s_irr;
 
std::string method_eff_property_pores
Method used to compute effective properties – Type of network. 
Definition: conventional_CL.h:591
 
void get_method_transport_property_pores(std::string &method) const 
Get the effective transport method in the pores. 
Definition: conventional_CL.h:476
 
std::map< unsigned int, double > k_T
Thermal Conductivity of the layer. 
Definition: conventional_CL.h:616
 
std::string method_eff_property_solid
Method used to compute effective properties – Type of network. 
Definition: conventional_CL.h:600
 
std::map< unsigned int, double > V_Pt
Platinum loading at the catalyst layer per unit volume. 
Definition: conventional_CL.h:560
 
std::map< unsigned int, double > IC_ratio
Ionomer to carbon ratio. 
Definition: conventional_CL.h:584
 
double depsilon_S_cat_dVPt(const double &prc_Pt) const 
Inline function to compute . 
Definition: conventional_CL.h:515
 
virtual double get_active_area_Pt() const 
Get the active area of platinum per unit volume of CL. 
Definition: conventional_CL.h:146
 
std::map< unsigned int, double > epsilon_N
Volume fraction of Nafion in the cathode catalyst layer. 
Definition: conventional_CL.h:544
 
double porosity_gamma
Definition: conventional_CL.h:597
 
std::map< unsigned int, double > epsilon_S
Solid volume fraction in the catalyst layer. 
Definition: conventional_CL.h:548
 
VariableNames
The enumeration containing the names of some of the available FCST solution variables and their deriv...
Definition: system_management.h:63
 
std::string method_porosity
Method to compute porosity. 
Definition: conventional_CL.h:568
 
double get_V_Pt(const unsigned int mat_id=numbers::invalid_material_id) const 
Return the platinum loading per cm3 catalyst layer. 
Definition: conventional_CL.h:134
 
std::map< unsigned int, double > prc_N
Percentage (mass fraction) of electrolyte in the catalyst layer. 
Definition: conventional_CL.h:587
 
std::map< unsigned int, double > prc_Pt
Percentage of platinum per carbon on the catalyst layer. 
Definition: conventional_CL.h:558
 
double rho_c
Density of support material. 
Definition: conventional_CL.h:556
 
std::map< unsigned int, double > epsilon_W
Volume fraction of water in the cathode catalyst layer. 
Definition: conventional_CL.h:550
 
double solid_mu
Solid phase network constant. 
Definition: conventional_CL.h:604
 
virtual void get_volume_fractions(std::map< std::string, double > &volume_fractions)
Get the volume fractions in the catalyst layer. 
Definition: conventional_CL.h:105
 
std::string method_eff_thermal
Method used to compute effective thermal conductivity in the catalyst layer. 
Definition: conventional_CL.h:614
 
double porosity_th
Porous network threshold. 
Definition: conventional_CL.h:593
 
std::map< unsigned int, double > epsilon_V
Void volume fraction (Porosity) of the catalyst layer. 
Definition: conventional_CL.h:546
 
double depsilon_V_cat_depsilon_S_cat() const 
Inline function to compute . 
Definition: conventional_CL.h:526
 
This class characterizes a catalyst layer and uses this information to compute effective transport pr...
Definition: conventional_CL.h:48
 
std::string method_capillary_function
Method used to compute capillary pressure as a function of saturation. 
Definition: conventional_CL.h:626
 
virtual void set_local_material_id(const unsigned int &id)
Re-implementation of the parent set_local_material_id class to initialize the porosity variable to th...
Definition: conventional_CL.h:93
 
std::map< unsigned int, double > s_irr
Irreducible liquid water saturation value in the MPL. 
Definition: conventional_CL.h:621
 
double depsilon_S_cat_dprc_Pt(const double &V_Pt, const double &prc_Pt) const 
Inline function to compute . 
Definition: conventional_CL.h:503
 
std::map< unsigned int, double > Av
Active area of catalyst per unit volume of catalyst layer. 
Definition: conventional_CL.h:564
 
double solid_th
Solid phase network threshold. 
Definition: conventional_CL.h:602
 
double depsilon_V_cat_depsilon_N_cat() const 
Inline function to compute . 
Definition: conventional_CL.h:537
 
virtual void set_local_material_id(const unsigned int &id)
Function for setting local material id, for unit testing purposes. 
Definition: base_layer.h:85
 
double rho_Pt
Density of platinum. 
Definition: conventional_CL.h:554
 
virtual void get_loadings(std::map< std::string, double > &info)
Return loadings. 
Definition: conventional_CL.h:124
 
std::map< unsigned int, double > L_CL
Layer thickness or thicknesses. 
Definition: conventional_CL.h:570
 
double porosity_mu
Porous network constant. 
Definition: conventional_CL.h:595
 
std::map< unsigned int, double > loading_N
Electrolyte loading. 
Definition: conventional_CL.h:579
 
static const std::string concrete_name
FcstUtilities Concrete name used for objects of this class. 
Definition: conventional_CL.h:68
 
std::string method_Av
Method to compute active area. 
Definition: conventional_CL.h:566
 
double rho_N
Density of electrolyte. 
Definition: conventional_CL.h:574
 
double electrolyte_mu
Electrolyte network constant. 
Definition: conventional_CL.h:610
 
std::map< unsigned int, double > abs_permeability
Absolute permeability [cm^2] of the layer. 
Definition: conventional_CL.h:623
 
std::string method_eff_property_electrolyte
Method used to compute effective properties – Type of network. 
Definition: conventional_CL.h:606
 
double electrolyte_th
Electrolyte network threshold. 
Definition: conventional_CL.h:608
 
std::string method_rel_liquid_permeability
Method used to compute the relative liquid permeability. 
Definition: conventional_CL.h:619
 
void get_method_transport_property_solid(std::string &method) const 
Get the effective transport method in the solid phase. 
Definition: conventional_CL.h:492
 
Virtual class used to provide the interface for all CatalystLayer children. 
Definition: catalyst_layer.h:124
 
void get_method_transport_property_electrolyte(std::string &method) const 
Get the effective transport method in the electrolyte. 
Definition: conventional_CL.h:484
 
std::map< unsigned int, double > M_Pt
Platinum loading at the catalyst layer per unit area. 
Definition: conventional_CL.h:562