OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
polymer_electrolyte_material_base.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 //
3 // FCST: Fuel Cell Simulation Toolbox
4 //
5 // Copyright (C) 2006-13 by Energy Systems Design Laboratory, University of Alberta
6 //
7 // This software is distributed under the MIT License.
8 // For more information, see the README file in /doc/LICENSE
9 //
10 // - Class: polymer_electrolyte_material_base.h
11 // - Description: base class for polymer electrolyte materials e.g. Nafion
12 // - Developers: M. Secanell and Madhur Bhaiya
13 // - Id: $Id: polymer_electrolyte_material_base.h 2605 2014-08-15 03:36:44Z secanell $
14 //
15 //---------------------------------------------------------------------------
16 
17 #ifndef _FUELCELLSHOP_POLYMER_ELECTROLYTE_MATERIAL_BASE__H
18 #define _FUELCELLSHOP_POLYMER_ELECTROLYTE_MATERIAL_BASE__H
19 
20 // Include deal.II classes
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>
26 
27 // Include FCST classes
29 #include "utils/fcst_constants.h"
30 #include "materials/PureGas.h"
31 
32 //Include STL
33 #include <cmath>
34 #include <iostream>
35 
36 
37 namespace FuelCellShop
38 {
39  namespace Material
40  {
63  :
64  public BaseMaterial
65  {
66  public:
68 
69 
74  static void declare_PolymerElectrolyte_parameters (ParameterHandler &param)
75  {
76 
77  for (typename FuelCellShop::Material::PolymerElectrolyteBase::_mapFactory::iterator iterator = FuelCellShop::Material::PolymerElectrolyteBase::get_mapFactory()->begin();
79  iterator++)
80  {
81  iterator->second->declare_parameters(param);
82  }
83  }
84 
103  static boost::shared_ptr<FuelCellShop::Material::PolymerElectrolyteBase > create_PolymerElectrolyte (ParameterHandler &param,
104  std::string polymer_electrolyte_name)
105  {
106  boost::shared_ptr<FuelCellShop::Material::PolymerElectrolyteBase > pointer;
107 
108  typename FuelCellShop::Material::PolymerElectrolyteBase::_mapFactory::iterator iterator = FuelCellShop::Material::PolymerElectrolyteBase::get_mapFactory()->find(polymer_electrolyte_name);
109 
111  {
112  if (iterator->second)
113  {
114  pointer = iterator->second->create_replica();
115  }
116  else
117  {
118  FcstUtilities::log<<"Pointer not initialized"<<std::endl;
119  abort();
120  }
121  }
122  else
123  {
124  FcstUtilities::log<<"Concrete name in FuelCellShop::Material::PolymerElectrolyteBase::create_PolymerElectrolyte does not exist"<<std::endl;
125  abort();
126  }
127 
128  pointer->initialize(param);
129 
130  return pointer;
131  }
133 
135 
136 
142  virtual void sorption_isotherm(std::vector<double>&) const
143  {
144  const std::type_info& info = typeid(*this);
145  FcstUtilities::log << "Pure function " << __FUNCTION__
146  << " called in Class "
147  << info.name() << std::endl;
148  }
156  virtual void sorption_isotherm_derivative(std::map < VariableNames, std::vector<double> >&) const
157  {
158  const std::type_info& info = typeid(*this);
159  FcstUtilities::log << "Pure function " << __FUNCTION__
160  << " called in Class "
161  << info.name() << std::endl;
162  }
163 
169  virtual void proton_conductivity(double&) const
170  {
171  const std::type_info& info = typeid(*this);
172  FcstUtilities::log << "Pure function " << __FUNCTION__
173  << " called in Class "
174  << info.name() << std::endl;
175  }
181  virtual void proton_conductivity(std::vector<double>&) const
182  {
183  const std::type_info& info = typeid(*this);
184  FcstUtilities::log << "Pure function " << __FUNCTION__
185  << " called in Class "
186  << info.name() << std::endl;
187  }
194  virtual void proton_conductivity_derivative(std::map< VariableNames, std::vector<double> >&) const
195  {
196  const std::type_info& info = typeid(*this);
197  FcstUtilities::log << "Pure function " << __FUNCTION__
198  << " called in Class "
199  << info.name() << std::endl;
200  }
201 
207  virtual void water_diffusivity(double&) const
208  {
209  const std::type_info& info = typeid(*this);
210  FcstUtilities::log << "Pure function " << __FUNCTION__
211  << " called in Class "
212  << info.name() << std::endl;
213  }
219  virtual void water_diffusivity(std::vector<double>&) const
220  {
221  const std::type_info& info = typeid(*this);
222  FcstUtilities::log << "Pure function " << __FUNCTION__
223  << " called in Class "
224  << info.name() << std::endl;
225  }
232  virtual void water_diffusivity_derivative(std::map< VariableNames, std::vector<double> >&) const
233  {
234  const std::type_info& info = typeid(*this);
235  FcstUtilities::log << "Pure function " << __FUNCTION__
236  << " called in Class "
237  << info.name() << std::endl;
238  }
239 
245  virtual void electroosmotic_drag(std::vector<double>&) const
246  {
247  const std::type_info& info = typeid(*this);
248  FcstUtilities::log << "Pure function " << __FUNCTION__
249  << " called in Class "
250  << info.name() << std::endl;
251  }
258  virtual void electroosmotic_drag_derivative(std::map< VariableNames, std::vector<double> >&) const
259  {
260  const std::type_info& info = typeid(*this);
261  FcstUtilities::log << "Pure function " << __FUNCTION__
262  << " called in Class "
263  << info.name() << std::endl;
264  }
265 
271  virtual void thermoosmotic_coeff(std::vector<double>&) const
272  {
273  const std::type_info& info = typeid(*this);
274  FcstUtilities::log << "Pure function " << __FUNCTION__
275  << " called in Class "
276  << info.name() << std::endl;
277  }
284  virtual void thermoosmotic_coeff_derivative(std::map< VariableNames, std::vector<double> >&) const
285  {
286  const std::type_info& info = typeid(*this);
287  FcstUtilities::log << "Pure function " << __FUNCTION__
288  << " called in Class "
289  << info.name() << std::endl;
290  }
291 
297  virtual void oxygen_diffusivity(double&) const
298  {
299  const std::type_info& info = typeid(*this);
300  FcstUtilities::log << "Pure function " << __FUNCTION__
301  << " called in Class "
302  << info.name() << std::endl;
303  }
309  virtual void hydrogen_diffusivity(double&) const
310  {
311  const std::type_info& info = typeid(*this);
312  FcstUtilities::log << "Pure function " << __FUNCTION__
313  << " called in Class "
314  << info.name() << std::endl;
315  }
321  virtual void oxygen_diffusivity(std::vector<double>&) const
322  {
323  const std::type_info& info = typeid(*this);
324  FcstUtilities::log << "Pure function " << __FUNCTION__
325  << " called in Class "
326  << info.name() << std::endl;
327  }
334  virtual void oxygen_diffusivity_derivative(std::map< VariableNames, std::vector<double> >&) const
335  {
336  const std::type_info& info = typeid(*this);
337  FcstUtilities::log << "Pure function " << __FUNCTION__
338  << " called in Class "
339  << info.name() << std::endl;
340  }
341 
347  virtual void proton_diffusivity(double&) const
348  {
349  const std::type_info& info = typeid(*this);
350  FcstUtilities::log << "Pure function " << __FUNCTION__
351  << " called in Class "
352  << info.name() << std::endl;
353  }
354 
360  virtual void sorption_enthalpy(std::vector<double>& ) const
361  {
362  const std::type_info& info = typeid(*this);
363  FcstUtilities::log << "Pure function " << __FUNCTION__
364  << " called in Class "
365  << info.name() << std::endl;
366  }
373  virtual void sorption_enthalpy_derivative(std::map< VariableNames, std::vector<double> >&) const
374  {
375  const std::type_info& info = typeid(*this);
376  FcstUtilities::log << "Pure function " << __FUNCTION__
377  << " called in Class "
378  << info.name() << std::endl;
379  }
380 
382 
384 
385 
391  virtual double get_Hlambda(const double&) const
392  {
393  const std::type_info& info = typeid(*this);
394  FcstUtilities::log << "Pure function " << __FUNCTION__
395  << " called in Class "
396  << info.name() << std::endl;
397  }
398 
404  virtual double get_dHlambda_dT(const double&) const
405  {
406  const std::type_info& info = typeid(*this);
407  FcstUtilities::log << "Pure function " << __FUNCTION__
408  << " called in Class "
409  << info.name() << std::endl;
410  }
411 
417  virtual double get_d2Hlambda_dT2(const double&) const
418  {
419  const std::type_info& info = typeid(*this);
420  FcstUtilities::log << "Pure function " << __FUNCTION__
421  << " called in Class "
422  << info.name() << std::endl;
423  }
425 
427 
428 
430  inline double get_density() const
431  {
432  return rho_M;
433  }
434 
436  inline double get_H_O2() const
437  {
438  return H_O2;
439  }
440 
442  inline double get_H_H2() const
443  {
444  return H_H2;
445  }
446 
448  inline double get_EW() const
449  {
450  return EW;
451  }
452 
454  inline double get_permittivity() const
455  {
456  return permittivity;
457  }
458 
460 
462 
463 
467  inline void set_p_t(const double& p_t)
468  {
469  p_total = p_t;
470  }
471 
475  inline void set_T (const double& Temp)
476  {
477  T = Temp;
478  }
479 
483  inline void set_lambda(const double& L)
484  {
485  lambda = L;
486  }
487 
494  {
495  Assert( ((l_in.is_initialized()) && (l_in.get_variablename() == membrane_water_content)),
496  ExcMessage("Input solution variable not initialized properly in PolymerElectrolyteBase::set_membrane_water_content method.") );
497 
498  lambda_var = l_in;
499 
500  if ( !T_var.is_initialized() )
502  }
503 
510  {
511  Assert( ((T_in.is_initialized()) && (T_in.get_variablename() == temperature_of_REV)),
512  ExcMessage("Input solution variable not initialized properly in PolymerElectrolyteBase::set_temperature method.") );
513 
514  T_var = T_in;
515 
516  if ( !lambda_var.is_initialized() )
518  }
519 
527  {
528  Assert( ((x_in.is_initialized()) && (x_in.get_variablename() == water_molar_fraction)),
529  ExcMessage("Input solution variable not initialized properly in PolymerElectrolyteBase::set_water_molar_fraction method.") );
530 
531  xwater_var = x_in;
532 
533  if ( !T_var.is_initialized() )
535  }
537 
538  protected:
540 
541 
545  : BaseMaterial(name)
546  {
547  lambda = 12.0;
548  T = 0.0; // Used for assertion to throw error, if temperature values are not set.
549  p_total = 0.0; // Used for assertion to throw error, if pressure values are not set.
550 
552  };
553 
558  : FuelCellShop::Material::BaseMaterial()
559  {
560  lambda = 12.0;
561  T = 0.0; // Used for assertion to throw error, if temperature values are not set.
562  p_total = 0.0; // Used for assertion to throw error, if pressure values are not set.
563 
565  };
566 
571  {
572  delete water_mat;
573  };
574 
579  virtual void declare_parameters(ParameterHandler &param) const
580  {
581  const std::type_info& info = typeid(*this);
582  FcstUtilities::log << "Pure function " << __FUNCTION__
583  << " called in Class "
584  << info.name() << std::endl;
585  };
586 
590  virtual void initialize (ParameterHandler &param)
591  {
592  const std::type_info& info = typeid(*this);
593  FcstUtilities::log << "Pure function " << __FUNCTION__
594  << " called in Class "
595  << info.name() << std::endl;
596  };
598 
600 
601 
604  typedef std::map< std::string, FuelCellShop::Material::PolymerElectrolyteBase* > _mapFactory;
606 
608 
609 
613  {
614  static _mapFactory mapFactory;
615  return &mapFactory;
616  }
618 
620 
621 
625  virtual boost::shared_ptr<FuelCellShop::Material::PolymerElectrolyteBase > create_replica ()
626  {
627  const std::type_info& info = typeid(*this);
628  FcstUtilities::log << "Pure function " << __FUNCTION__
629  << " called in Class "
630  << info.name() << std::endl;
631  }
633 
635 
636 
637  double EW;
638 
640  double rho_M;
641 
645  double H_O2;
649  double H_H2;
653  double permittivity;
654 
655 
657  double T;
658 
662  double lambda;
663 
665  double p_total;
666 
667 
671  double sigma_p;
672 
676  double diffusion_w;
677 
682  double given_n_drag;
683 
689 
695 
699  double D_O2;
700 
704  double D_H2;
705 
709  double D_Protons;
711 
713 
714 
718  std::string method_conductivity;
719 
723  std::string method_sorption;
724 
728  std::string method_diffusivity;
729 
734 
738  std::string method_thermoosmosis;
739 
745 
747 
748 
753 
758 
764 
765 
770  };
771  }
772 }
773 
774 #endif
double permittivity
Permittivity of the material.
Definition: polymer_electrolyte_material_base.h:653
double H_H2
Henry&#39;s Constant [Pa-cm^3/mol] for dissolution of hydroge.
Definition: polymer_electrolyte_material_base.h:649
double given_thermoosmotic_coeff
Given thermo-osmotic diffusion coefficient [gm/(cm-s-K )] in the parameter file.
Definition: polymer_electrolyte_material_base.h:688
double T
Temperature [Kelvins] for isothermal case.
Definition: polymer_electrolyte_material_base.h:657
double D_H2
Effective diffusion coefficient of hydrogen [cm^2/s], given in the parameter file.
Definition: polymer_electrolyte_material_base.h:704
double diffusion_w
Diffusion of water in polymer electrolyte (if constant option is used), [cm2/s].
Definition: polymer_electrolyte_material_base.h:676
double H_O2
Henry&#39;s Constant [Pa-cm^3/mol] for dissolution of oxygen.
Definition: polymer_electrolyte_material_base.h:645
double get_H_O2() const
Get Henry&#39;s constant [Pa-cm^3/mol] for oxygen dissolution in the polymer electrolyte.
Definition: polymer_electrolyte_material_base.h:436
virtual void hydrogen_diffusivity(double &) const
Compute the oxygen diffusivity, [cm^2/s], inside the polymer electrolyte for constant case...
Definition: polymer_electrolyte_material_base.h:309
virtual void thermoosmotic_coeff(std::vector< double > &) const
Compute the thermo-osmotic diffusion coefficient, [gm/ (cm-s-K )], inside the polymer electrolyte at ...
Definition: polymer_electrolyte_material_base.h:271
std::string method_enthalpy_sorption
Method/semi-empirical relation to compute enthalpy of sorption of water.
Definition: polymer_electrolyte_material_base.h:743
double p_total
Total pressure (in Pascals).
Definition: polymer_electrolyte_material_base.h:665
VariableNames get_variablename() const
Function to get the VariableNames enumeration corresponding to this struct.
Definition: fcst_variables.h:163
const std::string name
Name of the layer.
Definition: base_material.h:155
double get_EW() const
Get Equivalent Weight (grams of dry polymer electrolyte per moles of ) of the polymer electrolyte mat...
Definition: polymer_electrolyte_material_base.h:448
virtual double get_dHlambda_dT(const double &) const
Compute of sorbed water in the polymer electrolyte as a function of .
Definition: polymer_electrolyte_material_base.h:404
FuelCellShop::Material::WaterVapor * water_mat
Pointer to FuelCellShop::Material::WaterVapor object, dynamically allocated when the class is constru...
Definition: polymer_electrolyte_material_base.h:769
FuelCellShop::SolutionVariable lambda_var
Solution variable, membrane water content .
Definition: polymer_electrolyte_material_base.h:752
virtual void declare_parameters(ParameterHandler &param) const
Declare parameters for a parameter file.
Definition: polymer_electrolyte_material_base.h:579
FuelCellShop::SolutionVariable xwater_var
Solution variable, water vapor molar fraction .
Definition: polymer_electrolyte_material_base.h:762
VariableNames
The enumeration containing the names of some of the available FCST solution variables and their deriv...
Definition: system_management.h:62
double D_Protons
Diffusion coefficient of protons [cm^2/s], given in the parameter file.
Definition: polymer_electrolyte_material_base.h:709
This structure is used to encapsulate data from constant values and variable solution data that is us...
Definition: fcst_variables.h:86
virtual void proton_conductivity_derivative(std::map< VariableNames, std::vector< double > > &) const
Compute the derivatives of proton conductivity at every quadrature point in the cell.
Definition: polymer_electrolyte_material_base.h:194
void set_water_molar_fraction(const FuelCellShop::SolutionVariable &x_in)
Set the solution variable, water vapor molar fraction .
Definition: polymer_electrolyte_material_base.h:526
virtual void oxygen_diffusivity(std::vector< double > &) const
Compute the oxygen diffusivity, [cm^2/s], inside the polymer electrolyte at every quadrature point in...
Definition: polymer_electrolyte_material_base.h:321
std::string method_electroosmotic_drag
Method/semi-empirical relation to compute Electro-osmotic drag.
Definition: polymer_electrolyte_material_base.h:733
virtual double get_d2Hlambda_dT2(const double &) const
Compute of sorbed water in the polymer electrolyte as a function of .
Definition: polymer_electrolyte_material_base.h:417
virtual void sorption_isotherm(std::vector< double > &) const
Compute the equilibrium water content, , inside the polymer electrolyte for vapor-equilibriated case...
Definition: polymer_electrolyte_material_base.h:142
double D_O2
Diffusion coefficient of oxygen [cm^2/s], given in the parameter file.
Definition: polymer_electrolyte_material_base.h:699
std::string method_diffusivity
Method/semi-empirical relation to compute water diffusivity.
Definition: polymer_electrolyte_material_base.h:728
virtual void water_diffusivity(std::vector< double > &) const
Compute the water diffusivity, [cm^2/s], inside the polymer electrolyte at every quadrature point in...
Definition: polymer_electrolyte_material_base.h:219
Definition: system_management.h:75
double get_density() const
Get the density [gm/cm^3] of the dry polymer electrolyte material.
Definition: polymer_electrolyte_material_base.h:430
Definition: system_management.h:72
virtual void oxygen_diffusivity(double &) const
Compute the oxygen diffusivity, [cm^2/s], inside the polymer electrolyte for constant case...
Definition: polymer_electrolyte_material_base.h:297
double get_H_H2() const
Get Henry&#39;s constant [Pa-cm^3/mol] for hydrogen dissolution in the polymer electrolyte.
Definition: polymer_electrolyte_material_base.h:442
virtual void initialize(ParameterHandler &param)
Initialize parameters.
Definition: polymer_electrolyte_material_base.h:590
void set_T(const double &Temp)
Specify the temperature [Kelvin] in the polymer electrolyte for isothermal case.
Definition: polymer_electrolyte_material_base.h:475
virtual void sorption_isotherm_derivative(std::map< VariableNames, std::vector< double > > &) const
Compute the derivatives for water sorption source terms, , at every quadrature point in the cell...
Definition: polymer_electrolyte_material_base.h:156
virtual void sorption_enthalpy(std::vector< double > &) const
Compute the enthalpy of sorption [J/mol] of water, at all quadrature points in the cell...
Definition: polymer_electrolyte_material_base.h:360
std::map< std::string, FuelCellShop::Material::PolymerElectrolyteBase * > _mapFactory
This object is used to store all objects of type PolymerElectrolyteBase.
Definition: polymer_electrolyte_material_base.h:604
FCSTLogStream log
Object used to output data to file and, if file attached recorded to a file as well.
virtual void water_diffusivity_derivative(std::map< VariableNames, std::vector< double > > &) const
Compute the derivatives of water diffusivity at every quadrature point in the cell.
Definition: polymer_electrolyte_material_base.h:232
double lambda
Membrane water content, for constant lambda case.
Definition: polymer_electrolyte_material_base.h:662
static _mapFactory * get_mapFactory()
Definition: polymer_electrolyte_material_base.h:612
std::string method_sorption
Method to compute equilibrium water content value from sorption isotherm.
Definition: polymer_electrolyte_material_base.h:723
This class implements the interface to compute the properties of a &quot;standard&quot; polymer electrolyte mem...
Definition: polymer_electrolyte_material_base.h:62
Definition: system_management.h:67
virtual void sorption_enthalpy_derivative(std::map< VariableNames, std::vector< double > > &) const
Compute the derivatives of enthalpy of sorption of water, at every quadrature point in the cell...
Definition: polymer_electrolyte_material_base.h:373
PolymerElectrolyteBase(std::string name)
Constructor.
Definition: polymer_electrolyte_material_base.h:544
double sigma_p
Proton conductivity value [S/cm], given in the parameter file; used with &quot;Constant&quot; method...
Definition: polymer_electrolyte_material_base.h:671
virtual void electroosmotic_drag_derivative(std::map< VariableNames, std::vector< double > > &) const
Compute the derivatives of electro-osmotic drag coefficient, at every quadrature point in the cell...
Definition: polymer_electrolyte_material_base.h:258
double EW
Equivalent weight.
Definition: polymer_electrolyte_material_base.h:637
virtual void oxygen_diffusivity_derivative(std::map< VariableNames, std::vector< double > > &) const
Compute the derivatives of oxygen diffusivity, at every quadrature point in the cell.
Definition: polymer_electrolyte_material_base.h:334
virtual ~PolymerElectrolyteBase()
Destructor.
Definition: polymer_electrolyte_material_base.h:570
void set_membrane_water_content(const FuelCellShop::SolutionVariable &l_in)
Set the solution variable, membrane water content .
Definition: polymer_electrolyte_material_base.h:493
virtual boost::shared_ptr< FuelCellShop::Material::PolymerElectrolyteBase > create_replica()
This member function is used to create an object of type PolymerElectrolyteBase.
Definition: polymer_electrolyte_material_base.h:625
PolymerElectrolyteBase()
Constructor.
Definition: polymer_electrolyte_material_base.h:557
void set_lambda(const double &L)
Specify the water content in the polymer electrolyte for constant lambda case.
Definition: polymer_electrolyte_material_base.h:483
void set_temperature(const FuelCellShop::SolutionVariable &T_in)
Set the solution variable, temperature [Kelvin].
Definition: polymer_electrolyte_material_base.h:509
std::string method_conductivity
Method/Semi-empirical relation to compute protonic conductivity.
Definition: polymer_electrolyte_material_base.h:718
std::string method_thermoosmosis
Method/semi-empirical relation to compute thermo-osmotic diffusion coefficient.
Definition: polymer_electrolyte_material_base.h:738
static boost::shared_ptr< FuelCellShop::Material::PolymerElectrolyteBase > create_PolymerElectrolyte(ParameterHandler &param, std::string polymer_electrolyte_name)
Function called in create_CatalystLayer and used to select the appropriate PolymerElectrolyteBase chi...
Definition: polymer_electrolyte_material_base.h:103
double given_n_drag
Given electroosmotic drag value in the parameter file.
Definition: polymer_electrolyte_material_base.h:682
virtual void electroosmotic_drag(std::vector< double > &) const
Compute the electro-osmotic drag coefficient inside the polymer electrolyte at every quadrature point...
Definition: polymer_electrolyte_material_base.h:245
virtual void thermoosmotic_coeff_derivative(std::map< VariableNames, std::vector< double > > &) const
Compute the derivatives of thermo-osmotic diffusion coefficient, at every quadrature point in the cel...
Definition: polymer_electrolyte_material_base.h:284
static void declare_PolymerElectrolyte_parameters(ParameterHandler &param)
Function used to declare all the data necessary in the parameter files for all PolymerElectrolyteBase...
Definition: polymer_electrolyte_material_base.h:74
virtual double get_Hlambda(const double &) const
Compute the molar enthalpy, [J/mol] of sorbed water in the polymer electrolyte as a function of ...
Definition: polymer_electrolyte_material_base.h:391
virtual void proton_conductivity(double &) const
Compute the proton conductivity, [S/cm], inside the polymer electrolyte for constant case...
Definition: polymer_electrolyte_material_base.h:169
double rho_M
Dry polymer electrolyte density [gm/cm^3].
Definition: polymer_electrolyte_material_base.h:640
void set_p_t(const double &p_t)
Specify the total pressure in Pascals.
Definition: polymer_electrolyte_material_base.h:467
double given_enthalpy_sorption
Given enthalpy of sorption of water [J/mol] in the parameter file.
Definition: polymer_electrolyte_material_base.h:694
virtual void proton_diffusivity(double &) const
Compute the proton diffusivity, [cm^2/s], inside the polymer electrolyte for constant case...
Definition: polymer_electrolyte_material_base.h:347
double get_permittivity() const
Get permittivity of the polymer electrolyte material.
Definition: polymer_electrolyte_material_base.h:454
virtual void water_diffusivity(double &) const
Compute the water diffusivity, [cm^2/s], inside the polymer electrolyte for constant case...
Definition: polymer_electrolyte_material_base.h:207
Virtual class used to provide the interface for all material classes.
Definition: base_material.h:54
FuelCellShop::SolutionVariable T_var
Solution variable, temperature .
Definition: polymer_electrolyte_material_base.h:757
const bool is_initialized() const
Function to determine whether the structure is initialized or not.
Definition: fcst_variables.h:172
virtual void proton_conductivity(std::vector< double > &) const
Compute the proton conductivity, [S/cm], inside the polymer electrolyte, at every quadrature point i...
Definition: polymer_electrolyte_material_base.h:181
This class describes properties of pure WaterVapor.
Definition: PureGas.h:1157