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::Material::GasMixture Class Reference

This class describes properties of gas mixtures. More...

#include <GasMixture.h>

Inheritance diagram for FuelCellShop::Material::GasMixture:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::Material::GasMixture:
Collaboration graph
[legend]

Public Member Functions

Constructors, destructor, and initialization
 GasMixture ()
 Constructor. More...
 
 GasMixture (const std::string &name)
 Constructor. More...
 
virtual ~GasMixture ()
 Destructor. More...
 
virtual void declare_parameters (ParameterHandler &param) const
 Declare parameters. More...
 
virtual void initialize (ParameterHandler &param)
 Initialize parameters. More...
 
void set_gases (const std::vector< PureGas * > &rgases)
 This function sets gases. More...
 
void set_total_pressure (const double &rtotal_pressure)
 This function takes a pressure (Pa) and if Isobaric fluid flow is set to true in the data file then the inputted pressure will be used else the DUMMY value is used. More...
 
void set_temperature (const double &rtemperature)
 This function takes a temperature (K) and if Isothermal fluid flow is set to true in the data file then the inputted temperature will be used else the DUMMY value is used. More...
 
Accessors and info
unsigned int n_gases () const
 Function returning the number of gases in the mixture. More...
 
PureGasget_gas (unsigned int &ind) const
 Return gas stored in index ind. More...
 
const std::vector< PureGas * > & get_gases () const
 This function returns gases. More...
 
const double & get_total_pressure () const
 This function returns total_pressure. More...
 
const double & get_temperature () const
 This function returns temperature. More...
 
virtual void print_material_properties () const
 This function prints out the material properties. More...
 
Service functions. Chapman Enskog isobaric diffusion coefficient. Binary gas mixture only.
const double get_ChapmanEnskog_isobaric_diffusion_coefficient () const
 This function returns Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant temperature. More...
 
void get_ChapmanEnskog_isobaric_diffusion_coefficient (std::vector< double > &diffusion_coefficient) const
 This function returns Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant temperature in the quadrature points of a mesh entity. More...
 
const double get_ChapmanEnskog_isobaric_diffusion_coefficient (const double &temperature) const
 This function returns Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable temperature. More...
 
void get_ChapmanEnskog_isobaric_diffusion_coefficient (const std::vector< double > &temperature, std::vector< double > &diffusion_coefficient) const
 This function returns Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable temperature in the quadrature points of a mesh entity. More...
 
Service functions. Derivatives of Chapman Enskog isobaric diffusion coefficient. Binary gas mixture only.
const double get_DChapmanEnskog_isobaric_diffusion_coefficient_Dtemperature (const double &temperature) const
 This function returns the first derivative $ \quad \frac{\partial D_{12}}{\partial T} \quad $ of the Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable temperature. More...
 
void get_DChapmanEnskog_isobaric_diffusion_coefficient_Dtemperature (const std::vector< double > &temperature, std::vector< double > &dst) const
 This function returns the first derivative $ \quad \frac{\partial D_{12}}{\partial T} \quad $ of the Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable temperature in the quadrature points of a mesh entity. More...
 
Service functions. Chapman Enskog diffusion coefficient. Binary gas mixture only.
const double get_ChapmanEnskog_diffusion_coefficient () const
 This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and temperature. More...
 
void get_ChapmanEnskog_diffusion_coefficient (std::vector< double > &diffusion_coefficient) const
 This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and temperature in the quadrature points of a mesh entity. More...
 
const double get_ChapmanEnskog_diffusion_coefficient_at_constant_pressure (const double &temperature) const
 This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and variable temperature. More...
 
void get_ChapmanEnskog_diffusion_coefficient_at_constant_pressure (const std::vector< double > &temperature, std::vector< double > &diffusion_coefficient) const
 This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and variable temperature in the quadrature points of a mesh entity. More...
 
const double get_ChapmanEnskog_diffusion_coefficient_at_constant_temperature (const double &total_pressure) const
 This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and constant temperature. More...
 
void get_ChapmanEnskog_diffusion_coefficient_at_constant_temperature (const std::vector< double > &total_pressure, std::vector< double > &diffusion_coefficient) const
 This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and constant temperature in the quadrature points of a mesh entity. More...
 
const double get_ChapmanEnskog_diffusion_coefficient (const double &total_pressure, const double &temperature) const
 This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature. More...
 
void get_ChapmanEnskog_diffusion_coefficient (const std::vector< double > &total_pressure, const std::vector< double > &temperature, std::vector< double > &diffusion_coefficient) const
 This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature in the quadrature points of a mesh entity. More...
 
Service functions. Derivatives of Chapman Enskog diffusion coefficient. Binary gas mixture only.
const double get_DChapmanEnskog_diffusion_coefficient_Dpressure (const double &total_pressure) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and constant temperature. More...
 
void get_DChapmanEnskog_diffusion_coefficient_Dpressure (const std::vector< double > &total_pressure, std::vector< double > &dst) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and constant temperature in the quadrature points of a mesh entity. More...
 
const double get_DChapmanEnskog_diffusion_coefficient_Dpressure (const double &total_pressure, const double &temperature) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature. More...
 
void get_DChapmanEnskog_diffusion_coefficient_Dpressure (const std::vector< double > &total_pressure, const std::vector< double > &temperature, std::vector< double > &dst) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature in the quadrature points of a mesh entity. More...
 
const double get_DChapmanEnskog_diffusion_coefficient_Dtemperature (const double &temperature) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and variable temperature. More...
 
void get_DChapmanEnskog_diffusion_coefficient_Dtemperature (const std::vector< double > &temperature, std::vector< double > &dst) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and variable temperature in the quadrature points of a mesh entity. More...
 
const double get_DChapmanEnskog_diffusion_coefficient_Dtemperature (const double &total_pressure, const double &temperature) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature. More...
 
void get_DChapmanEnskog_diffusion_coefficient_Dtemperature (const std::vector< double > &total_pressure, const std::vector< double > &temperature, std::vector< double > &dst) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature in the quadrature points of a mesh entity. More...
 
Service functions. Chapman Enskog isobaric diffusion coefficients. Ternary and more complicated gas mixtures.
const Table< 2, double > get_ChapmanEnskog_isobaric_diffusion_coefficients () const
 This function returns Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant temperature. More...
 
void get_ChapmanEnskog_isobaric_diffusion_coefficients (std::vector< Table< 2, double > > &diffusion_coefficients) const
 This function returns Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant temperature in the quadrature points of a mesh entity. More...
 
const Table< 2, double > get_ChapmanEnskog_isobaric_diffusion_coefficients (const double &temperature) const
 This function returns Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable temperature. More...
 
void get_ChapmanEnskog_isobaric_diffusion_coefficients (const std::vector< double > &temperature, std::vector< Table< 2, double > > &diffusion_coefficients) const
 This function returns Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable temperature in the quadrature points of a mesh entity. More...
 
Service functions. Derivatives of Chapman Enskog isobaric diffusion coefficients. Ternary and more complicated gas mixtures.
const Table< 2, double > get_DChapmanEnskog_isobaric_diffusion_coefficients_Dtemperature (const double &temperature) const
 This function returns the first derivative $ \quad \frac{\partial D_{ij}}{\partial T} \quad $ of the Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable temperature. More...
 
void get_DChapmanEnskog_isobaric_diffusion_coefficients_Dtemperature (const std::vector< double > &temperature, std::vector< Table< 2, double > > &dst) const
 This function returns the first derivative $ \quad \frac{\partial D_{ij}}{\partial T} \quad $ of the Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable temperature in the quadrature points of a mesh entity. More...
 
Service functions. Chapman Enskog diffusion coefficients. Ternary and more complicated gas mixtures.
const Table< 2, double > get_ChapmanEnskog_diffusion_coefficients () const
 This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and temperature. More...
 
void get_ChapmanEnskog_diffusion_coefficients (std::vector< Table< 2, double > > &diffusion_coefficients) const
 This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and temperature in the quadrature points of a mesh entity. More...
 
const Table< 2, double > get_ChapmanEnskog_diffusion_coefficients_at_constant_pressure (const double &temperature) const
 This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and variable temperature. More...
 
void get_ChapmanEnskog_diffusion_coefficients_at_constant_pressure (const std::vector< double > &temperature, std::vector< Table< 2, double > > &diffusion_coefficients) const
 This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and variable temperature in the quadrature points of a mesh entity. More...
 
const Table< 2, double > get_ChapmanEnskog_diffusion_coefficients_at_constant_temperature (const double &total_pressure) const
 This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and constant temperature. More...
 
void get_ChapmanEnskog_diffusion_coefficients_at_constant_temperature (const std::vector< double > &total_pressure, std::vector< Table< 2, double > > &diffusion_coefficients) const
 This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and constant temperature in the quadrature points of a mesh entity. More...
 
const Table< 2, double > get_ChapmanEnskog_diffusion_coefficients (const double &total_pressure, const double &temperature) const
 This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature. More...
 
void get_ChapmanEnskog_diffusion_coefficients (const std::vector< double > &total_pressure, const std::vector< double > &temperature, std::vector< Table< 2, double > > &diffusion_coefficients) const
 This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature in the quadrature points of a mesh entity. More...
 
Service functions. Derivatives of Chapman Enskog diffusion coefficients. Ternary and more complicated gas mixtures.
const Table< 2, double > get_DChapmanEnskog_diffusion_coefficients_Dpressure (const double &total_pressure) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and constant temperature. More...
 
void get_DChapmanEnskog_diffusion_coefficients_Dpressure (const std::vector< double > &total_pressure, std::vector< Table< 2, double > > &dst) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and constant temperature in the quadrature points of a mesh entity. More...
 
const Table< 2, double > get_DChapmanEnskog_diffusion_coefficients_Dpressure (const double &total_pressure, const double &temperature) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature. More...
 
void get_DChapmanEnskog_diffusion_coefficients_Dpressure (const std::vector< double > &total_pressure, const std::vector< double > &temperature, std::vector< Table< 2, double > > &dst) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature in the quadrature points of a mesh entity. More...
 
const Table< 2, double > get_DChapmanEnskog_diffusion_coefficients_Dtemperature (const double &temperature) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and variable temperature. More...
 
void get_DChapmanEnskog_diffusion_coefficients_Dtemperature (const std::vector< double > &temperature, std::vector< Table< 2, double > > &dst) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and variable temperature in the quadrature points of a mesh entity. More...
 
const Table< 2, double > get_DChapmanEnskog_diffusion_coefficients_Dtemperature (const double &total_pressure, const double &temperature) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature. More...
 
void get_DChapmanEnskog_diffusion_coefficients_Dtemperature (const std::vector< double > &total_pressure, const std::vector< double > &temperature, std::vector< Table< 2, double > > &dst) const
 This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature in the quadrature points of a mesh entity. More...
 
Service functions. Calculate partial viscosity mixture
const std::vector< std::vector
< double > > 
get_isothermal_nonisobaric_partial_viscosity (const double &tempOfMixture, const std::vector< std::vector< double > > &density, const std::vector< double > &molarMass, const std::vector< double > &dynamicViscosity, const std::vector< double > &collisionDiameter, const std::vector< double > &porosity, std::vector< std::vector< std::vector< double > > > &paramMatrix, std::vector< FullMatrix< double > > &PInv) const
 This function calculates the partial viscosity based on value stored in mixture_viscosity_mode and ASSUMES ISOTHERMAL and NONISOBARIC fluid flow. More...
 
const std::vector< std::vector
< double > > 
get_nonisothermal_nonisobaric_partial_viscosity (const std::vector< double > &temperature, const std::vector< std::vector< double > > &density, const std::vector< double > &molarMass, const std::vector< std::vector< double > > &dynamicViscosity, const std::vector< double > &collisionDiameter, const std::vector< double > &porosity, std::vector< std::vector< std::vector< double > > > &paramMatrix, std::vector< FullMatrix< double > > &PInv) const
 This function calculates the partial viscosity based on value stored in mixture_viscosity_mode and ASSUMES NONISOTHERMAL and NONISOBARIC fluid flow. More...
 
std::vector< double > get_isothermal_nonisobaric_Wilke_partial_viscosity (const std::vector< double > &density, const std::vector< double > &dynamicViscosity, const std::vector< double > &molarMass, const double &porosity) const
 This is an overloaded function that calculates the Wilke partial viscosity model and ASSUMES ISOTHERMAL and NONISOBARIC fluid flow, but doesn't return the $ \xi_{ij} $ matrix. More...
 
std::vector< double > get_isothermal_nonisobaric_Wilke_partial_viscosity (const std::vector< double > &density, const std::vector< double > &dynamicViscosity, const std::vector< double > &molarMass, const double &porosity, std::vector< std::vector< double > > &xi) const
 Same as another overloaded function (ASSUMES ISOTHERMAL and NONISOBARIC fluid flow). More...
 
std::vector< double > get_nonisothermal_nonisobaric_Wilke_partial_viscosity (const std::vector< double > &density, const std::vector< double > &dynamicViscosity, const std::vector< double > &molarMass, const double &porosity, std::vector< std::vector< double > > &xi) const
 This function calculates the partial viscosity using the Wilke model based on value stored in mixture_viscosity_mode and ASSUMES NONISOTHERMAL and NONISOBARIC fluid flow. More...
 
std::vector< double > get_isothermal_nonisobaric_OmegaKG_partial_viscosity (const std::vector< double > &density, const std::vector< double > &collisionDiameter, const std::vector< double > &molarMass, const double &temperature, const double &porosity) const
 This is an overloaded function that calculates the Kerkhof and Geboers partial viscosity model based on the Omega integrals and ASSUMES ISOTHERMAL and NONISOBARIC fluid flow, but doesn't return the $\boldsymbol{\hat{P}}^{-1}$ matrix or a table of the Omega integrals. More...
 
std::vector< double > get_isothermal_nonisobaric_OmegaKG_partial_viscosity (const std::vector< double > &density, const std::vector< double > &collisionDiameter, const std::vector< double > &molarMass, const double &temperature, const double &porosity, std::vector< std::vector< double > > &omegaIntegralTable, FullMatrix< double > &PInv) const
 Same as other overloaded function (ASSUMES ISOTHERMAL and NONISOBARIC fluid flow). More...
 
std::vector< double > get_nonisothermal_nonisobaric_OmegaKG_partial_viscosity (const std::vector< double > &density, const std::vector< double > &collisionDiameter, const std::vector< double > &molarMass, const double &temperature, const double &porosity, std::vector< std::vector< double > > &omegaIntegralTable, FullMatrix< double > &PInv) const
 This function calculates the partial viscosity using the OmegaKG model based on value stored in mixture_viscosity_mode and ASSUMES NONISOTHERMAL and NONISOBARIC fluid flow. More...
 
void get_isothermal_nonisobaric_delta_partial_viscosity (const double &tempOfMixture, const std::vector< std::vector< std::vector< double > > > &paramMatrix, const std::vector< FullMatrix< double > > &PInv, const std::vector< double > &porosity, const std::vector< double > &molarMass, const std::vector< double > &dynamicViscosity, const std::vector< double > &collisionDiameter, const std::vector< std::vector< std::vector< double > > > &deltaDensity, const std::vector< std::vector< double > > &density, std::vector< std::vector< std::vector< double > > > &deltaPartialViscosity) const
 This function calculates the variation in partial viscosity based on value stored in mixture_viscosity_mode and ASSUMES ISOTHERMAL and NONISOBARIC fluid flow. More...
 
void get_nonisothermal_nonisobaric_delta_partial_viscosity (const std::vector< double > &temperature, const std::vector< std::vector< std::vector< double > > > &paramMatrix, const std::vector< FullMatrix< double > > &PInv, const std::vector< double > &porosity, const std::vector< double > &molarMass, const std::vector< std::vector< double > > &dynamicViscosity, const std::vector< double > &collisionDiameter, const std::vector< std::vector< std::vector< double > > > &deltaDensity, const std::vector< std::vector< double > > &density, std::vector< std::vector< std::vector< double > > > &deltaPartialViscosity) const
 This function calculates the variation in partial viscosity based on value stored in mixture_viscosity_mode and ASSUMES NONISOTHERMAL and NONISOBARIC fluid flow. More...
 
void get_Wilke_delta_partial_viscosity_wrt_density (const std::vector< std::vector< std::vector< double > > > &xi, const std::vector< double > &porosity, const std::vector< double > &molarMass, const std::vector< double > &dynamicViscosity, const std::vector< std::vector< std::vector< double > > > &deltaDensity, const std::vector< std::vector< double > > &density, std::vector< std::vector< std::vector< double > > > &deltaPartialViscosity) const
 Calculates the variation in Wilke's partial viscosity model w.r.t. More...
 
void get_Wilke_delta_partial_viscosity_wrt_temperature (const std::vector< std::vector< std::vector< double > > > &xi, const std::vector< double > &porosity, const std::vector< double > &molarMass, const std::vector< double > &dynamicViscosity, const std::vector< std::vector< std::vector< double > > > &deltaTemperature, const std::vector< std::vector< double > > &density, std::vector< std::vector< std::vector< double > > > &deltaPartialViscosity) const
 Calculates the variation in Wilke's partial viscosity model w.r.t. More...
 
void get_OmegaKG_delta_partial_viscosity_wrt_density (const double &tempOfMixture, const std::vector< std::vector< std::vector< double > > > &omegaIntegralTable, const std::vector< FullMatrix< double > > &PInv, const std::vector< double > &porosity, const std::vector< double > &molarMass, const std::vector< double > &collisionDiameter, const std::vector< std::vector< std::vector< double > > > &deltaDensity, const std::vector< std::vector< double > > &density, std::vector< std::vector< std::vector< double > > > &deltaPartialViscosity) const
 Calculates the variation in Kerkhof and Geboers partial viscosity model using Omega integrals w.r.t. More...
 
void get_OmegaKG_delta_partial_viscosity_wrt_temperature (const std::vector< double > &temperature, const std::vector< std::vector< std::vector< double > > > &omegaIntegralTable, const std::vector< FullMatrix< double > > &PInv, const std::vector< double > &porosity, const std::vector< double > &molarMass, const std::vector< double > &collisionDiameter, const std::vector< std::vector< std::vector< double > > > &deltaDensity, const std::vector< std::vector< double > > &density, std::vector< std::vector< std::vector< double > > > &deltaPartialViscosity) const
 Calculates the variation in Kerkhof and Geboers partial viscosity model using Omega integrals w.r.t. More...
 
void get_Null_delta_viscosity (std::vector< std::vector< std::vector< double > > > &deltaViscosity) const
 Returns a std::vector< std::vector< std::vector<double> > > of 0s. More...
 
void get_delta_bulk_viscosity (const std::vector< PureGas * > &gases, const std::vector< std::vector< std::vector< double > > > &deltaPartialViscosity, std::vector< std::vector< std::vector< double > > > &deltaBulkViscosity) const
 Loops through all variations of partial viscosity and calculates the varation in bulk viscosity according to bulk_viscosity_mode. More...
 
- Public Member Functions inherited from FuelCellShop::Material::BaseMaterial
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...
 
const std::string & name_material () const
 Return the name of the layer. More...
 

Protected Member Functions

Service functions. Binary collision integral.
const double get_binary_collision_integral (const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns binary collision integral at a constant temperature. More...
 
void get_binary_collision_integral (std::vector< double > &binary_collision_integral, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns binary collision integral at a constant temperature in the quadrature points of a mesh entity. More...
 
const double get_binary_collision_integral (const double &temperature, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns binary collision integral at a variable temperature. More...
 
void get_binary_collision_integral (const std::vector< double > &temperature, std::vector< double > &binary_collision_integral, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns binary collision integral at a variable temperature in the quadrature points of a mesh entity. More...
 
const double get_Dbinary_collision_integral_Dtemperature (const double &temperature, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns the first derivative $ \quad \frac{\partial \Omega_{\mathscr{D}, ij}}{\partial T} \quad $ of the binary collision integral at a variable temperature. More...
 
void get_Dbinary_collision_integral_Dtemperature (const std::vector< double > &temperature, std::vector< double > &dst, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns the first derivative $ \quad \frac{\partial \Omega_{\mathscr{D}, ij}}{\partial T} \quad $ of the binary collision integral at a variable temperature in the quadrature points of a mesh entity. More...
 
Service functions. Omega* integrals.
const double get_omega_star_11_integral (const double &temperature, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns $ \Omega_{}^{*(1,1)} $ integral at a variable temperature. More...
 
void get_omega_star_11_integral (const double &temperature, std::vector< double > &omega_integral, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns $ \Omega_{}^{*(1,1)} $ integral at a variable temperature in the quadrature points of a mesh entity. More...
 
const double get_omega_star_22_integral (const double &temperature, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns $ \Omega_{}^{*(2,2)} $ integral at a variable temperature. More...
 
void get_omega_star_22_integral (const double &temperature, std::vector< double > &omega_integral, const unsigned int &N1=0, const unsigned int &N2=1) const
 This function returns $ \Omega_{}^{*(2,2)} $ integral at a variable temperature in the quadrature points of a mesh entity. More...
 
- Protected Member Functions inherited from FuelCellShop::Material::BaseMaterial
 BaseMaterial ()
 Constructor. More...
 
 BaseMaterial (const std::string &name)
 Constructor. More...
 
virtual ~BaseMaterial ()
 Destructor. More...
 

Protected Attributes

Fluid properties
std::vector< PureGas * > gases
 This std::vector contains all pure gases which form the whole gas mixture of a problem at hand. More...
 
bool tempIsoTherm = false
 This bool tells GasMisture if it should use isothermal assumption. More...
 
bool pressIsoBaric = false
 This bool tells GasMisture if it should use isobaric assumption. More...
 
double total_pressure = 1.0
 Total pressure of the whole mixture, $ p_{\text{total}} \quad \left[ \text{Pa} \right] $. More...
 
double temperature = 1.0
 Temperature of the whole gas mixture, $ T \quad \left[ \text{K} \right] $. More...
 
Names and modes
std::string mixture_viscosity_mode
 
- Protected Attributes inherited from FuelCellShop::Material::BaseMaterial
const std::string name
 Name of the layer. More...
 
std::vector< VariableNamesderivative_flags
 Flags for derivatives: These flags are used to request derivatives of material properties. More...
 

Detailed Description

This class describes properties of gas mixtures.

Note
All those methods receive data in SI units.
All those methods return the results in SI units.

This class contains the following data:

The whole gas mixture is supposed to be isobaric if some concrete value of total_pressure is assigned by either using the set_total_pressure() function or defining it in the parameters file.

If nothing happens, then the value of total_pressure gets the DUMMY number equal 1.e300 and the whole gas mixture is treated as non-isobaric. In this case, the total pressure of the whole gas mixture is one of the solution variables.

The whole gas mixture is supposed to be isothermal if some concrete value of temperature is assigned by either using the set_temperature() function or defining it in the parameters file.

If nothing happens, then the value of temperature gets the DUMMY number equal 1.e300 and the whole gas mixture is treated as non-isothermal. In this case, the temperature of the whole gas mixture is one of the solution variables.

NOTE: after calling initialize() please call set_total_pressure() and set_temperature() to insert the pressure and temperature from the Operating Conditions class if fluid flow is NOT isobaric or isothermal respectively. See these function calls below for more detail.

The following methods are used to compute the gas mixture properties:

For developers: please update this info appropriately if you add a new method.

Author
Valentin N. Zingan, 2013
M Secanell, 2013-15

Constructor & Destructor Documentation

FuelCellShop::Material::GasMixture::GasMixture ( )

Constructor.

FuelCellShop::Material::GasMixture::GasMixture ( const std::string &  name)

Constructor.

virtual FuelCellShop::Material::GasMixture::~GasMixture ( )
virtual

Destructor.

Member Function Documentation

virtual void FuelCellShop::Material::GasMixture::declare_parameters ( ParameterHandler &  param) const
virtual

Declare parameters.

Reimplemented from FuelCellShop::Material::BaseMaterial.

const double FuelCellShop::Material::GasMixture::get_binary_collision_integral ( const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns binary collision integral at a constant temperature.

Parameters
N1- number of the first gas from gases,
N2- number of the second gas from gases.
  • Neufeld, Philip D., A. R. Janzen, and R. A. Aziz. "Empirical Equations to Calculate 16 of the Transport Collision Integrals Ω (l, s)* for the Lennard‐Jones (12–6) Potential." The Journal of Chemical Physics 57.3 (1972): 1100-1102.
void FuelCellShop::Material::GasMixture::get_binary_collision_integral ( std::vector< double > &  binary_collision_integral,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns binary collision integral at a constant temperature in the quadrature points of a mesh entity.

Parameters
binary_collision_integral- binary collision integral at a constant temperature in the quadrature points of a mesh entity,
N1- number of the first gas from gases,
N2- number of the second gas from gases.
  • Neufeld, Philip D., A. R. Janzen, and R. A. Aziz. "Empirical Equations to Calculate 16 of the Transport Collision Integrals Ω (l, s)* for the Lennard‐Jones (12–6) Potential." The Journal of Chemical Physics 57.3 (1972): 1100-1102.
const double FuelCellShop::Material::GasMixture::get_binary_collision_integral ( const double &  temperature,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns binary collision integral at a variable temperature.

Parameters
temperature- temperature,
N1- number of the first gas from gases,
N2- number of the second gas from gases.
  • Neufeld, Philip D., A. R. Janzen, and R. A. Aziz. "Empirical Equations to Calculate 16 of the Transport Collision Integrals Ω (l, s)* for the Lennard‐Jones (12–6) Potential." The Journal of Chemical Physics 57.3 (1972): 1100-1102.
void FuelCellShop::Material::GasMixture::get_binary_collision_integral ( const std::vector< double > &  temperature,
std::vector< double > &  binary_collision_integral,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns binary collision integral at a variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
binary_collision_integral- binary collision integral at a variable temperature in the quadrature points of a mesh entity,
N1- number of the first gas from gases,
N2- number of the second gas from gases.
  • Neufeld, Philip D., A. R. Janzen, and R. A. Aziz. "Empirical Equations to Calculate 16 of the Transport Collision Integrals Ω (l, s)* for the Lennard‐Jones (12–6) Potential." The Journal of Chemical Physics 57.3 (1972): 1100-1102.
const double FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficient ( ) const

This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and temperature.

void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficient ( std::vector< double > &  diffusion_coefficient) const

This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and temperature in the quadrature points of a mesh entity.

Parameters
diffusion_coefficient- Chapman Enskog diffusion coefficient at a constant total pressure and temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficient ( const double &  total_pressure,
const double &  temperature 
) const

This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature.

Parameters
total_pressure- total pressure,
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficient ( const std::vector< double > &  total_pressure,
const std::vector< double > &  temperature,
std::vector< double > &  diffusion_coefficient 
) const

This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
temperature- temperature in the quadrature points of a mesh entity,
diffusion_coefficient- Chapman Enskog diffusion coefficient at a variable total pressure and temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficient_at_constant_pressure ( const double &  temperature) const

This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and variable temperature.

Parameters
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficient_at_constant_pressure ( const std::vector< double > &  temperature,
std::vector< double > &  diffusion_coefficient 
) const

This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
diffusion_coefficient- Chapman Enskog diffusion coefficient at a constant total pressure and variable temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficient_at_constant_temperature ( const double &  total_pressure) const

This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and constant temperature.

Parameters
total_pressure- total pressure.
void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficient_at_constant_temperature ( const std::vector< double > &  total_pressure,
std::vector< double > &  diffusion_coefficient 
) const

This function returns Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and constant temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
diffusion_coefficient- Chapman Enskog diffusion coefficient at a variable total pressure and constant temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficients ( ) const

This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and temperature.

void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficients ( std::vector< Table< 2, double > > &  diffusion_coefficients) const

This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and temperature in the quadrature points of a mesh entity.

Parameters
diffusion_coefficients- Chapman Enskog diffusion coefficients at a constant total pressure and temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficients ( const double &  total_pressure,
const double &  temperature 
) const

This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature.

Parameters
total_pressure- total pressure,
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficients ( const std::vector< double > &  total_pressure,
const std::vector< double > &  temperature,
std::vector< Table< 2, double > > &  diffusion_coefficients 
) const

This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
temperature- temperature in the quadrature points of a mesh entity,
diffusion_coefficients- Chapman Enskog diffusion coefficients at a variable total pressure and temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficients_at_constant_pressure ( const double &  temperature) const

This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and variable temperature.

Parameters
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficients_at_constant_pressure ( const std::vector< double > &  temperature,
std::vector< Table< 2, double > > &  diffusion_coefficients 
) const

This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
diffusion_coefficients- Chapman Enskog diffusion coefficients at a constant total pressure and variable temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficients_at_constant_temperature ( const double &  total_pressure) const

This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and constant temperature.

Parameters
total_pressure- total pressure.
void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_diffusion_coefficients_at_constant_temperature ( const std::vector< double > &  total_pressure,
std::vector< Table< 2, double > > &  diffusion_coefficients 
) const

This function returns Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and constant temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
diffusion_coefficients- Chapman Enskog diffusion coefficients at a variable total pressure and constant temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_ChapmanEnskog_isobaric_diffusion_coefficient ( ) const

This function returns Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant temperature.

void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_isobaric_diffusion_coefficient ( std::vector< double > &  diffusion_coefficient) const

This function returns Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant temperature in the quadrature points of a mesh entity.

Parameters
diffusion_coefficient- Chapman Enskog isobaric diffusion coefficient at a constant temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_ChapmanEnskog_isobaric_diffusion_coefficient ( const double &  temperature) const

This function returns Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable temperature.

Parameters
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_isobaric_diffusion_coefficient ( const std::vector< double > &  temperature,
std::vector< double > &  diffusion_coefficient 
) const

This function returns Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
diffusion_coefficient- Chapman Enskog isobaric diffusion coefficient at a variable temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_ChapmanEnskog_isobaric_diffusion_coefficients ( ) const

This function returns Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant temperature.

void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_isobaric_diffusion_coefficients ( std::vector< Table< 2, double > > &  diffusion_coefficients) const

This function returns Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant temperature in the quadrature points of a mesh entity.

Parameters
diffusion_coefficients- Chapman Enskog isobaric diffusion coefficients at a constant temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_ChapmanEnskog_isobaric_diffusion_coefficients ( const double &  temperature) const

This function returns Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable temperature.

Parameters
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_ChapmanEnskog_isobaric_diffusion_coefficients ( const std::vector< double > &  temperature,
std::vector< Table< 2, double > > &  diffusion_coefficients 
) const

This function returns Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
diffusion_coefficients- Chapman Enskog isobaric diffusion coefficients at a variable temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_Dbinary_collision_integral_Dtemperature ( const double &  temperature,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns the first derivative $ \quad \frac{\partial \Omega_{\mathscr{D}, ij}}{\partial T} \quad $ of the binary collision integral at a variable temperature.

Parameters
temperature- temperature,
N1- number of the first gas from gases,
N2- number of the second gas from gases.
void FuelCellShop::Material::GasMixture::get_Dbinary_collision_integral_Dtemperature ( const std::vector< double > &  temperature,
std::vector< double > &  dst,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns the first derivative $ \quad \frac{\partial \Omega_{\mathscr{D}, ij}}{\partial T} \quad $ of the binary collision integral at a variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial \Omega_{\mathscr{D}, ij}}{\partial T} \quad $ at a variable temperature in the quadrature points of a mesh entity,
N1- number of the first gas from gases,
N2- number of the second gas from gases.
const double FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficient_Dpressure ( const double &  total_pressure) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and constant temperature.

Parameters
total_pressure- total pressure.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficient_Dpressure ( const std::vector< double > &  total_pressure,
std::vector< double > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and constant temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
dst- $ \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ at a variable total pressure and constant temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficient_Dpressure ( const double &  total_pressure,
const double &  temperature 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature.

Parameters
total_pressure- total pressure,
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficient_Dpressure ( const std::vector< double > &  total_pressure,
const std::vector< double > &  temperature,
std::vector< double > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial \mathscr{D}_{12}}{\partial p} \quad $ at a variable total pressure and temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficient_Dtemperature ( const double &  temperature) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and variable temperature.

Parameters
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficient_Dtemperature ( const std::vector< double > &  temperature,
std::vector< double > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a constant total pressure and variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ at a constant total pressure and variable temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficient_Dtemperature ( const double &  total_pressure,
const double &  temperature 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature.

Parameters
total_pressure- total pressure,
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficient_Dtemperature ( const std::vector< double > &  total_pressure,
const std::vector< double > &  temperature,
std::vector< double > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable total pressure and temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial \mathscr{D}_{12}}{\partial T} \quad $ at a variable total pressure and temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficients_Dpressure ( const double &  total_pressure) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and constant temperature.

Parameters
total_pressure- total pressure.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficients_Dpressure ( const std::vector< double > &  total_pressure,
std::vector< Table< 2, double > > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and constant temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
dst- $ \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ at a variable total pressure and constant temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficients_Dpressure ( const double &  total_pressure,
const double &  temperature 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature.

Parameters
total_pressure- total pressure,
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficients_Dpressure ( const std::vector< double > &  total_pressure,
const std::vector< double > &  temperature,
std::vector< Table< 2, double > > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial \mathscr{D}_{ij}}{\partial p} \quad $ at a variable total pressure and temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficients_Dtemperature ( const double &  temperature) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and variable temperature.

Parameters
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficients_Dtemperature ( const std::vector< double > &  temperature,
std::vector< Table< 2, double > > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a constant total pressure and variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ at a constant total pressure and variable temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficients_Dtemperature ( const double &  total_pressure,
const double &  temperature 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature.

Parameters
total_pressure- total pressure,
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_diffusion_coefficients_Dtemperature ( const std::vector< double > &  total_pressure,
const std::vector< double > &  temperature,
std::vector< Table< 2, double > > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ of the Maxwell-Stefan diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable total pressure and temperature in the quadrature points of a mesh entity.

Parameters
total_pressure- total pressure in the quadrature points of a mesh entity,
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial \mathscr{D}_{ij}}{\partial T} \quad $ at a variable total pressure and temperature in the quadrature points of a mesh entity.
const double FuelCellShop::Material::GasMixture::get_DChapmanEnskog_isobaric_diffusion_coefficient_Dtemperature ( const double &  temperature) const

This function returns the first derivative $ \quad \frac{\partial D_{12}}{\partial T} \quad $ of the Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable temperature.

Parameters
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_isobaric_diffusion_coefficient_Dtemperature ( const std::vector< double > &  temperature,
std::vector< double > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial D_{12}}{\partial T} \quad $ of the Maxwell-Stefan isobaric diffusion coefficient of gas $ 1 $ in gas $ 2 $ (or vice-versa) written in the Chapman Enskog form (binary gas mixture only) at a variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial D_{12}}{\partial T} \quad $ at a variable temperature in the quadrature points of a mesh entity.
const Table< 2, double > FuelCellShop::Material::GasMixture::get_DChapmanEnskog_isobaric_diffusion_coefficients_Dtemperature ( const double &  temperature) const

This function returns the first derivative $ \quad \frac{\partial D_{ij}}{\partial T} \quad $ of the Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable temperature.

Parameters
temperature- temperature.
void FuelCellShop::Material::GasMixture::get_DChapmanEnskog_isobaric_diffusion_coefficients_Dtemperature ( const std::vector< double > &  temperature,
std::vector< Table< 2, double > > &  dst 
) const

This function returns the first derivative $ \quad \frac{\partial D_{ij}}{\partial T} \quad $ of the Maxwell-Stefan isobaric diffusion coefficients of gas $ i $ in gas $ j $ written in the Chapman Enskog form (ternary and more complicated gas mixtures) at a variable temperature in the quadrature points of a mesh entity.

Parameters
temperature- temperature in the quadrature points of a mesh entity,
dst- $ \frac{\partial D_{ij}}{\partial T} \quad $ at a variable temperature in the quadrature points of a mesh entity.
void FuelCellShop::Material::GasMixture::get_delta_bulk_viscosity ( const std::vector< PureGas * > &  gases,
const std::vector< std::vector< std::vector< double > > > &  deltaPartialViscosity,
std::vector< std::vector< std::vector< double > > > &  deltaBulkViscosity 
) const

Loops through all variations of partial viscosity and calculates the varation in bulk viscosity according to bulk_viscosity_mode.

All vectors must be sized correctly before using this function.

PureGas* FuelCellShop::Material::GasMixture::get_gas ( unsigned int &  ind) const
inline

Return gas stored in index ind.

References gases.

const std::vector< PureGas* >& FuelCellShop::Material::GasMixture::get_gases ( ) const
inline

This function returns gases.

References gases.

void FuelCellShop::Material::GasMixture::get_isothermal_nonisobaric_delta_partial_viscosity ( const double &  tempOfMixture,
const std::vector< std::vector< std::vector< double > > > &  paramMatrix,
const std::vector< FullMatrix< double > > &  PInv,
const std::vector< double > &  porosity,
const std::vector< double > &  molarMass,
const std::vector< double > &  dynamicViscosity,
const std::vector< double > &  collisionDiameter,
const std::vector< std::vector< std::vector< double > > > &  deltaDensity,
const std::vector< std::vector< double > > &  density,
std::vector< std::vector< std::vector< double > > > &  deltaPartialViscosity 
) const

This function calculates the variation in partial viscosity based on value stored in mixture_viscosity_mode and ASSUMES ISOTHERMAL and NONISOBARIC fluid flow.

Developers should call this function instead of directly calling Wilke, Omega, or Dynamic directly for the delta partial viscosity model. This function requires the following parameters:

Parameters
tempOfMixture- temperature of the element [K],
paramMatrix- this parameter provides a necessary matrix and is outputed by reference from get_partial_viscosity. This is done to decrease computations,
PInv( $ \boldsymbol{\hat{P}}^{-1} $) - calculated previously (numerically) and returned by get_partial_viscosity,
porosity- vector of quadrature points of porosity in element,
molarMass- vector of molar masses of each species; [g/mol],
dynamicViscosity- vector of dynamic viscosities of each species; [g/cm*s],
collisionDiameter- vector of collision diameters of each species; [m],
deltaDensity- variation of density in element (i.e. density[s][q][k], s=species, q=quadrature, k=dof); same unit standard as density,
density- density in element (i.e. density[s][q], s=species, q=quadrature); [g/cm^3],
deltaPartialViscosity- variation is partial viscosity returned by reference from function in element (i.e. deltaPartialViscosity[s][q][k], s=species, q=quadrature, k=dof).
std::vector<double> FuelCellShop::Material::GasMixture::get_isothermal_nonisobaric_OmegaKG_partial_viscosity ( const std::vector< double > &  density,
const std::vector< double > &  collisionDiameter,
const std::vector< double > &  molarMass,
const double &  temperature,
const double &  porosity 
) const

This is an overloaded function that calculates the Kerkhof and Geboers partial viscosity model based on the Omega integrals and ASSUMES ISOTHERMAL and NONISOBARIC fluid flow, but doesn't return the $\boldsymbol{\hat{P}}^{-1}$ matrix or a table of the Omega integrals.

The equations for the OmegaKG partial viscosity model are:

  • $ \boldsymbol{\hat{P}} \boldsymbol{\eta} = \boldsymbol{1} $,
  • $ P_{ii} = \frac{2}{kT} \left( \frac{4}{5} \Omega_{ii}^{(2,2)} + \frac{16 M_i}{15 \rho_i} \sum_{j \ne i}^{n} \frac{\rho_j}{(M_i + M_j)^2} \left( 5 M_i \Omega_{ij}^{(1,1)} + \frac{3}{2} M_j \Omega_{ij}^{(2,2)} \right) \right) $ ,
  • $ P_{ij} = -\frac{2}{kT} \left( \frac{16}{15} \left( \frac{M_i M_j}{(M_i + M_j)^2} \right) \left( 5 \Omega_{ij}^{(1,1)} - \frac{3}{2} \Omega_{ij}^{(2,2)} \right) \right) $ ,
  • $ \Omega_{ij}^{(\ell,s)} = \Omega_{ij}^{*(\ell,s)} \left[\Omega_{ij}^{(\ell,s)}\right]_{rs} $ ,
  • $ \left[Q_{ij}^{\ell}\right]_{rs} = \left( 1 - \frac{1}{2} \left( \frac{1+(-1)^\ell}{1+\ell}\right) \right)\pi \sigma_{ij}^2 $ ,
  • $ \left[\Omega_{ij}^{(\ell,s)}\right]_{rs} = \sqrt{\frac{kT}{2 \pi \mu_{ij}}} \left( \frac{(s+1)!}{2} \right) \left[Q_{ij}^{\ell}\right]_{rs} $ ,
  • $ \sigma_{ij} = \frac{1}{2} \left( \sigma_i + \sigma_j \right) $ ,
  • $ \mu_{ij} = \frac{M_i M_j}{N_A (M_i + M_j)} $
Parameters
density( $ \rho_i $ ) - density; [g/cm^3],
collisionDiameter( $ \sigma_i $ ) - collision diameter [m],
molarMass( $ M_i $) - molar mass [g/mol],
temperature( $ T $) - temperature [K].
porosity( $ \varepsilon_i $) - porosity,

NOTE: that the global variable gases is used in this function. So set before functional call by using GasMixture object set_gases() function.

  • Kerkhof, Piet JAM, and Marcel AM Geboers. "Toward a unified theory of isotropic molecular transport phenomena." AIChE journal 51.1 (2005): 79-121.
std::vector<double> FuelCellShop::Material::GasMixture::get_isothermal_nonisobaric_OmegaKG_partial_viscosity ( const std::vector< double > &  density,
const std::vector< double > &  collisionDiameter,
const std::vector< double > &  molarMass,
const double &  temperature,
const double &  porosity,
std::vector< std::vector< double > > &  omegaIntegralTable,
FullMatrix< double > &  PInv 
) const

Same as other overloaded function (ASSUMES ISOTHERMAL and NONISOBARIC fluid flow).

The difference is that this one will return by reference $ \boldsymbol{\hat{P}}^{-1} $ and you can specify a porosity. This is for convience if later calculations are needed so $ \boldsymbol{\hat{P}}^{-1} $ does not need to be re-computed (like when calculating the variation in the partial viscosity of the mixture). No need to size $ \boldsymbol{\hat{P}}^{-1} $ properly as all values are cleared at the beginning and then values pushed in after. The volume averaged OmegaKG partial viscosity model equations are:

  • $ \boldsymbol{\hat{P}} \boldsymbol{\eta} = \boldsymbol{1} $,
  • $ P_{ii} = \frac{2}{kT} \left( \frac{4}{5} \Omega_{ii}^{(2,2)} + \frac{16 M_i}{15 \rho_i} \sum_{j \ne i}^{n} \frac{\rho_j}{(M_i + M_j)^2} \left( 5 M_i \Omega_{ij}^{(1,1)} + \frac{3}{2} M_j \Omega_{ij}^{(2,2)} \right) \right) $ ,
  • $ P_{ij} = -\frac{2}{kT} \left( \frac{16}{15} \left( \frac{M_i M_j}{(M_i + M_j)^2} \right) \left( 5 \Omega_{ij}^{(1,1)} - \frac{3}{2} \Omega_{ij}^{(2,2)} \right) \right) $ ,
  • $ \Omega_{ij}^{(\ell,s)} = \Omega_{ij}^{*(\ell,s)} \left[\Omega_{ij}^{(\ell,s)}\right]_{rs} $ ,
  • $ \left[Q_{ij}^{\ell}\right]_{rs} = \left( 1 - \frac{1}{2} \left( \frac{1+(-1)^\ell}{1+\ell}\right) \right)\pi \sigma_{ij}^2 $ ,
  • $ \left[\Omega_{ij}^{(\ell,s)}\right]_{rs} = \sqrt{\frac{kT}{2 \pi \mu_{ij}}} \left( \frac{(s+1)!}{2} \right) \left[Q_{ij}^{\ell}\right]_{rs} $ ,
  • $ \sigma_{ij} = \frac{1}{2} \left( \sigma_i + \sigma_j \right) $ ,
  • $ \mu_{ij} = \frac{M_i M_j}{N_A (M_i + M_j)} $
Parameters
density( $ \rho_i $ ) - phase average of density; [g/cm^3],
collisionDiameter( $ \sigma_i $ ) - collision diameter [m],
molarMass( $ M_i $) - molar mass [g/mol],
temperature( $ T $) - temperature [K],
porosity( $ \varepsilon $ ) - porosity,
omegaIntegralTable- returned by reference to reduce computations when calculation variation. Contains a 2n x n matrix (n is species number) with the $ \Omega_{ij}^{(1,1)} $ on top followed by $ \Omega_{ij}^{(2,2)} $
PInv( $ \boldsymbol{\hat{P}}^{-1} $ ) - returned by reference for possible later calculations (i.e. PInv[s1][s2], s1=species1, s2=species2).

NOTE: that the global variable gases is used in this function. So set before functional call by using GasMixture object set_gases() function.

  • Kerkhof, Piet JAM, and Marcel AM Geboers. "Toward a unified theory of isotropic molecular transport phenomena." AIChE journal 51.1 (2005): 79-121.
const std::vector< std::vector<double> > FuelCellShop::Material::GasMixture::get_isothermal_nonisobaric_partial_viscosity ( const double &  tempOfMixture,
const std::vector< std::vector< double > > &  density,
const std::vector< double > &  molarMass,
const std::vector< double > &  dynamicViscosity,
const std::vector< double > &  collisionDiameter,
const std::vector< double > &  porosity,
std::vector< std::vector< std::vector< double > > > &  paramMatrix,
std::vector< FullMatrix< double > > &  PInv 
) const

This function calculates the partial viscosity based on value stored in mixture_viscosity_mode and ASSUMES ISOTHERMAL and NONISOBARIC fluid flow.

Developers should call this function instead of directly calling Wilke, OmegaKG, or Dynamic directly for the partial viscosity model. This function requires the following parameters:

Parameters
tempOfMixture- temperature of the element; [K],
density- density in element (i.e. density[s][q], s=species, q=quadrature); [g/cm^3],
molarMass- vector of molar masses of each species; [g/mol],
dynamicViscosity- vector of dynamic viscosities of each species; [g/cm*s],
collisionDiameter- vector of collision diameters of each species; [m],
porosity- vector of quadrature points of porosity in element,
paramMatrix- this parameter provides a necessary matrix and is outputed by reference to be used for calculating the variation in partial viscosity. This is done to decrease computations, and used strictly internally, in get_delta_partial_viscosity(). Value is cleared and resized internally. Vector format is paramMatrix[q][s1][s2], q=quadrature, s1=species1, s2=species2,
PInv- this parameter provides the inverse of P for the calculation of OmegaKG viscosity and variation of.

NOTE: you have to set std::vector< NAME::PureGas* > gases in your GasMixture object to be the gases used, before calling this function

std::vector<double> FuelCellShop::Material::GasMixture::get_isothermal_nonisobaric_Wilke_partial_viscosity ( const std::vector< double > &  density,
const std::vector< double > &  dynamicViscosity,
const std::vector< double > &  molarMass,
const double &  porosity 
) const

This is an overloaded function that calculates the Wilke partial viscosity model and ASSUMES ISOTHERMAL and NONISOBARIC fluid flow, but doesn't return the $ \xi_{ij} $ matrix.

The Wilke partial viscosity model equations are:

  • $ \eta_i = \frac{\rho_i \eta_i^0}{ \varepsilon M_i \sum_{j=1}^n (\rho_j / M_j) \xi_{ij}} $,
  • $ \xi_{ij} = \frac{\left( 1 + (\eta_i^0 / \eta_j^0)^{1/2} (M_j / M_i)^{1/4} \right)^2}{\left( 8 ( 1 + M_i / M_j ) \right)^{1/2}} $
Parameters
density( $ \rho_i $) - density; [g/cm^3],
dynamicViscosity( $ \eta^0_i $) - dynamic viscosity [g/cm*s],
molarMass( $ M_i $) - molar mass [g/mol],
porosixty( $ \varepsilon $) - porosity.
  • Wilke, C. R. "A viscosity equation for gas mixtures." The journal of chemical physics 18.4 (1950): 517-519.
std::vector<double> FuelCellShop::Material::GasMixture::get_isothermal_nonisobaric_Wilke_partial_viscosity ( const std::vector< double > &  density,
const std::vector< double > &  dynamicViscosity,
const std::vector< double > &  molarMass,
const double &  porosity,
std::vector< std::vector< double > > &  xi 
) const

Same as another overloaded function (ASSUMES ISOTHERMAL and NONISOBARIC fluid flow).

The difference is that this one will return by reference $ \xi_{ij} $. This is for convience if later calculations are needed so $ \xi_{ij} $ does not need to be re-computed (like when calculating the variation in the partial viscosity of the mixture). No need to size $ \xi_{ij} $ properly as all values are cleared at the beginning and then values pushed in after. The volume averaged Wilke partial viscosity model equations are:

  • $ \eta_i = \frac{\rho_i \eta_i^0}{ \varepsilon M_i \sum_{j=1}^n (\rho_j / M_j) \xi_{ij}} $,
  • $ \xi_{ij} = \frac{\left( 1 + (\eta_i^0 / \eta_j^0)^{1/2} (M_j / M_i)^{1/4} \right)^2}{\left( 8 ( 1 + M_i / M_j ) \right)^{1/2}} $
Parameters
density( $ \rho_i $) - phase average of density; [g/cm^3],
dynamicViscosity( $ \eta^0_i $) - dynamic viscosity [g/cm*s],
molarMass( $ M_i $) - molar mass [g/mol],
porosity( $ \varepsilon_i $) - porosity,
xi( $ \xi_{ij} $) - returned by reference for possible later calculations (i.e. xi[s1][s2], s1=species1, s2=species2).
  • Wilke, C. R. "A viscosity equation for gas mixtures." The journal of chemical physics 18.4 (1950): 517-519.
void FuelCellShop::Material::GasMixture::get_nonisothermal_nonisobaric_delta_partial_viscosity ( const std::vector< double > &  temperature,
const std::vector< std::vector< std::vector< double > > > &  paramMatrix,
const std::vector< FullMatrix< double > > &  PInv,
const std::vector< double > &  porosity,
const std::vector< double > &  molarMass,
const std::vector< std::vector< double > > &  dynamicViscosity,
const std::vector< double > &  collisionDiameter,
const std::vector< std::vector< std::vector< double > > > &  deltaDensity,
const std::vector< std::vector< double > > &  density,
std::vector< std::vector< std::vector< double > > > &  deltaPartialViscosity 
) const

This function calculates the variation in partial viscosity based on value stored in mixture_viscosity_mode and ASSUMES NONISOTHERMAL and NONISOBARIC fluid flow.

Developers should call this function instead of directly calling Wilke, Omega, or Dynamic directly for the delta partial viscosity model. This function requires the following parameters:

Parameters
temperature- temperature of the element (i.e. temperature[q], q=quadrature); [K],
paramMatrix- this parameter provides a necessary matrix and is outputed by reference from get_partial_viscosity. This is done to decrease computations,
PInv( $ \boldsymbol{\hat{P}}^{-1} $) - calculated previously (numerically) and returned by get_partial_viscosity,
porosity- vector of quadrature points of porosity in element,
molarMass- vector of molar masses of each species; [g/mol],
dynamicViscosity- vector of dynamic viscosities of each species (i.e. dynamicViscosity[s][q], s=species, q=quadrature); [g/cm*s],
collisionDiameter- vector of collision diameters of each species; [m],
deltaDensity- variation of density in element (i.e. density[s][q][k], s=species, q=quadrature, k=dof); same unit standard as density,
density- density in element (i.e. density[s][q], s=species, q=quadrature); [g/cm^3],
deltaPartialViscosity- variation is partial viscosity returned by reference from function in element (i.e. deltaPartialViscosity[s][q][k], s=species, q=quadrature, k=dof).
std::vector<double> FuelCellShop::Material::GasMixture::get_nonisothermal_nonisobaric_OmegaKG_partial_viscosity ( const std::vector< double > &  density,
const std::vector< double > &  collisionDiameter,
const std::vector< double > &  molarMass,
const double &  temperature,
const double &  porosity,
std::vector< std::vector< double > > &  omegaIntegralTable,
FullMatrix< double > &  PInv 
) const

This function calculates the partial viscosity using the OmegaKG model based on value stored in mixture_viscosity_mode and ASSUMES NONISOTHERMAL and NONISOBARIC fluid flow.

const std::vector< std::vector<double> > FuelCellShop::Material::GasMixture::get_nonisothermal_nonisobaric_partial_viscosity ( const std::vector< double > &  temperature,
const std::vector< std::vector< double > > &  density,
const std::vector< double > &  molarMass,
const std::vector< std::vector< double > > &  dynamicViscosity,
const std::vector< double > &  collisionDiameter,
const std::vector< double > &  porosity,
std::vector< std::vector< std::vector< double > > > &  paramMatrix,
std::vector< FullMatrix< double > > &  PInv 
) const

This function calculates the partial viscosity based on value stored in mixture_viscosity_mode and ASSUMES NONISOTHERMAL and NONISOBARIC fluid flow.

Developers should call this function instead of directly calling Wilke, OmegaKG, or Dynamic directly for the partial viscosity model. This function requires the following parameters:

Parameters
temperature- temperature in element (i.e. temperature[q], q=quadrature); [K],
density- density in element (i.e. density[s][q], s=species, q=quadrature); [g/cm^3],
molarMass- vector of molar masses of each species; [g/mol],
dynamicViscosity- dynamic viscosities of element (i.e. dynamicViscosity[s][q], s=species, q=quadrature); [g/cm*s],
collisionDiameter- vector of collision diameters of each species; [m],
porosity- vector of quadrature points of porosity in element,
paramMatrix- this parameter provides a necessary matrix and is outputed by reference to be used for calculating the variation in partial viscosity. This is done to decrease computations, and used strictly internally, in get_delta_partial_viscosity(). Value is cleared and resized internally. Vector format is paramMatrix[q][s1][s2], q=quadrature, s1=species1, s2=species2,
PInv- this parameter provides the inverse of P for the calculation of OmegaKG viscosity and variation of.

NOTE: you have to set std::vector< NAME::PureGas* > gases in your GasMixture object to be the gases used, before calling this function

std::vector<double> FuelCellShop::Material::GasMixture::get_nonisothermal_nonisobaric_Wilke_partial_viscosity ( const std::vector< double > &  density,
const std::vector< double > &  dynamicViscosity,
const std::vector< double > &  molarMass,
const double &  porosity,
std::vector< std::vector< double > > &  xi 
) const

This function calculates the partial viscosity using the Wilke model based on value stored in mixture_viscosity_mode and ASSUMES NONISOTHERMAL and NONISOBARIC fluid flow.

void FuelCellShop::Material::GasMixture::get_Null_delta_viscosity ( std::vector< std::vector< std::vector< double > > > &  deltaViscosity) const

Returns a std::vector< std::vector< std::vector<double> > > of 0s.

This is used for the dynamic viscosity partial viscosity model as it is not a function of density or velocity. As such, the variation is 0. Note that deltaViscosity must be properly sized before sending to this function.

const double FuelCellShop::Material::GasMixture::get_omega_star_11_integral ( const double &  temperature,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns $ \Omega_{}^{*(1,1)} $ integral at a variable temperature.

This equation is only valid in range $ 0.3 \leq T^* \leq 400 $ and empirical constants were taken from "Toward a Unified Theory of Isotropic Molecular Transport Phenomena" by Kerkhof and Geboers, which used Table C2 from the data in "Molecular Theory of Gases and Liquids" by Hirschfelder.

Parameters
temperature- temperature [K],
N1- number of the first gas from gases,
N2- number of the second gas from gases.
  • Kerkhof, Piet JAM, and Marcel AM Geboers. "Toward a unified theory of isotropic molecular transport phenomena." AIChE journal 51.1 (2005): 79-121.
  • Hirschfelder, Joseph O., et al. Molecular theory of gases and liquids. New York: Wiley, 1964.
void FuelCellShop::Material::GasMixture::get_omega_star_11_integral ( const double &  temperature,
std::vector< double > &  omega_integral,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns $ \Omega_{}^{*(1,1)} $ integral at a variable temperature in the quadrature points of a mesh entity.

this equation is only valid in range $ 0.3 \leq T^* \leq 400 $ and empirical constants were taken from "Toward a Unified Theory of Isotropic Molecular Transport Phenomena" by Kerkhof and Geboers, which used Table C2 from the data in "Molecular Theory of Gases and Liquids" by Hirschfelder.

Parameters
temperature- temperature in the quadrature points of a mesh entity [K],
omega_integral- $ \Omega_{}^{*(1,1)} $ integral at a variable temperature in the quadrature points of a mesh entity,
N1- index of the first gas from gases,
N2- index of the second gas from gases.
  • Kerkhof, Piet JAM, and Marcel AM Geboers. "Toward a unified theory of isotropic molecular transport phenomena." AIChE journal 51.1 (2005): 79-121.
  • Hirschfelder, Joseph O., et al. Molecular theory of gases and liquids. New York: Wiley, 1964.
const double FuelCellShop::Material::GasMixture::get_omega_star_22_integral ( const double &  temperature,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns $ \Omega_{}^{*(2,2)} $ integral at a variable temperature.

this equation is only valid in range $ 0.3 \leq T^* \leq 400 $ and empirical constants were taken from "Toward a Unified Theory of Isotropic Molecular Transport Phenomena" by Kerkhof and Geboers, which used Table C2 from the data in "Molecular Theory of Gases and Liquids" by Hirschfelder.

Parameters
temperature- temperature [K],
N1- number of the first gas from gases,
N2- number of the second gas from gases.
  • Kerkhof, Piet JAM, and Marcel AM Geboers. "Toward a unified theory of isotropic molecular transport phenomena." AIChE journal 51.1 (2005): 79-121.
  • Hirschfelder, Joseph O., et al. Molecular theory of gases and liquids. New York: Wiley, 1964.
void FuelCellShop::Material::GasMixture::get_omega_star_22_integral ( const double &  temperature,
std::vector< double > &  omega_integral,
const unsigned int &  N1 = 0,
const unsigned int &  N2 = 1 
) const
protected

This function returns $ \Omega_{}^{*(2,2)} $ integral at a variable temperature in the quadrature points of a mesh entity.

this equation is only valid in range $ 0.3 \leq T^* \leq 400 $ and empirical constants were taken from "Toward a Unified Theory of Isotropic Molecular Transport Phenomena" by Kerkhof and Geboers, which used Table C2 from the data in "Molecular Theory of Gases and Liquids" by Hirschfelder.

Parameters
temperature- temperature in the quadrature points of a mesh entity [K],
omega_integral- $ \Omega_{}^{*(2,2)} $ integral at a variable temperature in the quadrature points of a mesh entity,
N1- index of the first gas from gases,
N2- index of the second gas from gases.
  • Kerkhof, Piet JAM, and Marcel AM Geboers. "Toward a unified theory of isotropic molecular transport phenomena." AIChE journal 51.1 (2005): 79-121.
  • Hirschfelder, Joseph O., et al. Molecular theory of gases and liquids. New York: Wiley, 1964.
void FuelCellShop::Material::GasMixture::get_OmegaKG_delta_partial_viscosity_wrt_density ( const double &  tempOfMixture,
const std::vector< std::vector< std::vector< double > > > &  omegaIntegralTable,
const std::vector< FullMatrix< double > > &  PInv,
const std::vector< double > &  porosity,
const std::vector< double > &  molarMass,
const std::vector< double > &  collisionDiameter,
const std::vector< std::vector< std::vector< double > > > &  deltaDensity,
const std::vector< std::vector< double > > &  density,
std::vector< std::vector< std::vector< double > > > &  deltaPartialViscosity 
) const

Calculates the variation in Kerkhof and Geboers partial viscosity model using Omega integrals w.r.t.

density ( $ \rho_{}^{} $). The equations are:

  • $ \delta \boldsymbol{\eta} = -\hat{\boldsymbol{P}}^{-1} \delta\hat{\boldsymbol{P}} \hat{\boldsymbol{P}}^{-1} \boldsymbol{1} $,
  • $ \delta P_{ii} = \frac{32 M_i}{15kT \varepsilon} \left( \frac{1}{\rho_i} \sum_{j \ne i}^{n} \frac{\delta \rho_j}{(M_i + M_j)^2} \left( 5 M_i \Omega_{ij}^{(1,1)} + \frac{3}{2} M_j \Omega_{ij}^{(2,2)} \right) -\frac{\delta \rho_i}{\varepsilon^2 \rho_i^2} \sum_{j \ne i}^{n} \frac{\rho_j}{(M_i + M_j)^2} \left( 5 M_i \Omega_{ij}^{(1,1)} + \frac{3}{2} M_j \Omega_{ij}^{(2,2)} \right) \right) $,
  • $ \delta P_{ij}^{} = 0 $.
Parameters
tempOfMixture( $ T $) - temperature of the element [K],
omegaIntegralTable- returned by reference to reduce computations when calculation variation. Contains a 2n x n matrix (n is species number) with the $ \Omega_{ij}^{(1,1)} $ on top followed by $ \Omega_{ij}^{(2,2)} $; (i.e. omegaIntegralTable[q][s1][s2], q=quadrature, s1=species1, s2=species2).
PInv( $ \boldsymbol{\hat{P}}^{-1} $) - calculated previously (numerically) and returned by get_partial_viscosity,
porosity( $ \varepsilon $) - porosity,
molarMass( $ M_{}^{} $) - vector of molar masses of each species; [g/mol],
collisionDiameter( $ \sigma^{ij}_{} $) - vector of collision diameters of each species; [m],
deltaDensity( $ \delta \rho_i $) - varation in phase average of density; same unit standard as density,
density( $ \rho_i $ ) - phase average of density; [g/cm^3],
deltaPartialViscosity( $ \delta \eta_i $) - variation is partial viscosity returned by reference from function in element (i.e. deltaPartialViscosity[s][q][k], s=species, q=quadrature, k=dof).
  • Kerkhof, Piet JAM, and Marcel AM Geboers. "Toward a unified theory of isotropic molecular transport phenomena." AIChE journal 51.1 (2005): 79-121.
void FuelCellShop::Material::GasMixture::get_OmegaKG_delta_partial_viscosity_wrt_temperature ( const std::vector< double > &  temperature,
const std::vector< std::vector< std::vector< double > > > &  omegaIntegralTable,
const std::vector< FullMatrix< double > > &  PInv,
const std::vector< double > &  porosity,
const std::vector< double > &  molarMass,
const std::vector< double > &  collisionDiameter,
const std::vector< std::vector< std::vector< double > > > &  deltaDensity,
const std::vector< std::vector< double > > &  density,
std::vector< std::vector< std::vector< double > > > &  deltaPartialViscosity 
) const

Calculates the variation in Kerkhof and Geboers partial viscosity model using Omega integrals w.r.t.

temperature ( $ T_{}^{} $). The equations are:

  • Need to be determined.

NOTE: these equations are not volume averaged, which will need to be done.

Parameters
temperature( $ T $) - temperature of the element [K],
omegaIntegralTable- returned by reference to reduce computations when calculation variation. Contains a 2n x n matrix (n is species number) with the $ \Omega_{ij}^{(1,1)} $ on top followed by $ \Omega_{ij}^{(2,2)} $; (i.e. omegaIntegralTable[q][s1][s2], q=quadrature, s1=species1, s2=species2).
PInv( $ \boldsymbol{\hat{P}}^{-1} $) - calculated previously (numerically) and returned by get_partial_viscosity,
porosity( $ \varepsilon $) - porosity,
molarMass( $ M_{}^{} $) - vector of molar masses of each species; [g/mol],
collisionDiameter( $ \sigma^{ij}_{} $) - vector of collision diameters of each species; [m],
deltaDensity( $ \delta \rho_i $) - varation in phase average of density; same unit standard as density,
density( $ \rho_i $ ) - phase average of density; [g/cm^3],
deltaPartialViscosity( $ \delta \eta_i $) - variation is partial viscosity returned by reference from function in element (i.e. deltaPartialViscosity[s][q][k], s=species, q=quadrature, k=dof).
  • Kerkhof, Piet JAM, and Marcel AM Geboers. "Toward a unified theory of isotropic molecular transport phenomena." AIChE journal 51.1 (2005): 79-121.
const double& FuelCellShop::Material::GasMixture::get_temperature ( ) const
inline

This function returns temperature.

References temperature.

const double& FuelCellShop::Material::GasMixture::get_total_pressure ( ) const
inline

This function returns total_pressure.

References total_pressure.

void FuelCellShop::Material::GasMixture::get_Wilke_delta_partial_viscosity_wrt_density ( const std::vector< std::vector< std::vector< double > > > &  xi,
const std::vector< double > &  porosity,
const std::vector< double > &  molarMass,
const std::vector< double > &  dynamicViscosity,
const std::vector< std::vector< std::vector< double > > > &  deltaDensity,
const std::vector< std::vector< double > > &  density,
std::vector< std::vector< std::vector< double > > > &  deltaPartialViscosity 
) const

Calculates the variation in Wilke's partial viscosity model w.r.t.

density ( $ \rho_{}^{} $). The equation it solves is:

  • $ \delta_{\rho} \eta_i = \frac{\eta_i^0}{\varepsilon M_i} \left( \delta \rho_i \left( \sum_j \frac{\rho_j \xi_{ij}}{M_j} \right)^{-1} -\frac{\rho_i}{\varepsilon^2} \left( \sum_j \frac{\rho_j \xi_{ij}}{M_j} \right)^{-2} \left( \sum_j \frac{\delta \rho_j \xi_{ij}}{M_j} \right) \right) $
Parameters
xi( $ \xi_{ij} $) - calculated previously and returned by get_partial_viscosity,
porosity( $ \varepsilon $) - porosity,
molarMass( $ M_{}^{} $) - vector of molar masses of each species; [g/mol],
dynamicViscosity( $ \eta^{0}_{} $) - vector of dynamic viscosities of each species; [g/cm*s],
deltaDensity( $ \delta \rho_i $) - varation in phase average of density; same unit standard as density,
density( $ \rho_i $ ) - phase average of density; [g/cm^3],
deltaPartialViscosity( $ \delta \eta_i $) - variation is partial viscosity returned by reference from function in element (i.e. deltaPartialViscosity[s][q][k], s=species, q=quadrature, k=dof).
  • Wilke, C. R. "A viscosity equation for gas mixtures." The journal of chemical physics 18.4 (1950): 517-519.
void FuelCellShop::Material::GasMixture::get_Wilke_delta_partial_viscosity_wrt_temperature ( const std::vector< std::vector< std::vector< double > > > &  xi,
const std::vector< double > &  porosity,
const std::vector< double > &  molarMass,
const std::vector< double > &  dynamicViscosity,
const std::vector< std::vector< std::vector< double > > > &  deltaTemperature,
const std::vector< std::vector< double > > &  density,
std::vector< std::vector< std::vector< double > > > &  deltaPartialViscosity 
) const

Calculates the variation in Wilke's partial viscosity model w.r.t.

temperature ( $ T_{}^{} $). The equation it solves is:

  • $ \delta_{T} \eta_i = \frac{\rho_i}{M_i} \left( \delta_{T} \eta_i^0 \left( \sum_j \frac{\rho_j \xi_{ij}}{M_j} \right)^{-1} -\eta_i^0 \left( \sum_j \frac{\rho_j \xi_{ij}}{M_j} \right)^{-2} \left( \sum_j \frac{\rho_j \delta_{T} \xi_{ij}}{M_j} \right) \right) $
  • $ \delta_{T} \xi_{ij} = \left( 8(1 + \frac{M_i}{M_j}) \right)^{1/2} \left( 1 + \left( \frac{\eta_i^0}{\eta_j^0} \right)^{1/2} \left( \frac{M_j}{M_i} \right)^{1/4} \right) \left( \frac{M_j}{M_i} \right)^{1/4} \left( \delta_T \eta_i^0 \left( \frac{1}{\eta_i^0 \eta_j^0} \right)^{1/2} - \delta_T \eta_j^0 \left( \frac{\eta_i^0}{(\eta_j^0)^3} \right)^{1/2} \right) $

NOTE: these equations are not volume averaged, which will need to be done.

Parameters
xi( $ \xi_{ij} $) - calculated previously and returned by get_partial_viscosity,
porosity( $ \varepsilon $) - porosity,
molarMass( $ M_{}^{} $) - vector of molar masses of each species; [g/mol],
dynamicViscosity( $ \eta^{0}_{} $) - vector of dynamic viscosities of each species; [g/cm*s],
deltaTemperature( $ \delta_{T} T $) - varation in phase average of temperature; same unit standard as temperature,
density( $ \rho_i $ ) - phase average of density; [g/cm^3],
deltaPartialViscosity( $ \delta \eta_i $) - variation is partial viscosity returned by reference from function in element (i.e. deltaPartialViscosity[s][q][k], s=species, q=quadrature, k=dof).
  • Wilke, C. R. "A viscosity equation for gas mixtures." The journal of chemical physics 18.4 (1950): 517-519.
virtual void FuelCellShop::Material::GasMixture::initialize ( ParameterHandler &  param)
virtual

Initialize parameters.

Reimplemented from FuelCellShop::Material::BaseMaterial.

unsigned int FuelCellShop::Material::GasMixture::n_gases ( ) const
inline

Function returning the number of gases in the mixture.

References gases.

virtual void FuelCellShop::Material::GasMixture::print_material_properties ( ) const
virtual

This function prints out the material properties.

Reimplemented from FuelCellShop::Material::BaseMaterial.

void FuelCellShop::Material::GasMixture::set_gases ( const std::vector< PureGas * > &  rgases)
inline

This function sets gases.

References gases.

void FuelCellShop::Material::GasMixture::set_temperature ( const double &  rtemperature)
inline

This function takes a temperature (K) and if Isothermal fluid flow is set to true in the data file then the inputted temperature will be used else the DUMMY value is used.

References temperature.

Referenced by FuelCell::OperatingConditions::set_gas_mixtures().

Here is the caller graph for this function:

void FuelCellShop::Material::GasMixture::set_total_pressure ( const double &  rtotal_pressure)
inline

This function takes a pressure (Pa) and if Isobaric fluid flow is set to true in the data file then the inputted pressure will be used else the DUMMY value is used.

References total_pressure.

Referenced by FuelCell::OperatingConditions::set_gas_mixtures().

Here is the caller graph for this function:

Member Data Documentation

std::vector< PureGas* > FuelCellShop::Material::GasMixture::gases
protected

This std::vector contains all pure gases which form the whole gas mixture of a problem at hand.

Referenced by get_gas(), get_gases(), n_gases(), and set_gases().

std::string FuelCellShop::Material::GasMixture::mixture_viscosity_mode
protected
Parameters
mixture_viscosity_mode=Wilke- Wilke's formula for partial viscosity of each species is used,
mixture_viscosity_mode=OmegaKG- Kerkhof and Geboers formula for partial viscosity of each species, using the Omega integrals, is used,
mixture_viscosity_mode=Dynamic- The dynamic viscosity of each species is used as calculated by dynamic_viscosity_mode.
bool FuelCellShop::Material::GasMixture::pressIsoBaric = false
protected

This bool tells GasMisture if it should use isobaric assumption.

double FuelCellShop::Material::GasMixture::temperature = 1.0
protected

Temperature of the whole gas mixture, $ T \quad \left[ \text{K} \right] $.

Referenced by get_temperature(), and set_temperature().

bool FuelCellShop::Material::GasMixture::tempIsoTherm = false
protected

This bool tells GasMisture if it should use isothermal assumption.

double FuelCellShop::Material::GasMixture::total_pressure = 1.0
protected

Total pressure of the whole mixture, $ p_{\text{total}} \quad \left[ \text{Pa} \right] $.

Referenced by get_total_pressure(), and set_total_pressure().


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