|
Cantera
2.4.0
|
Class MultiTransport implements transport properties for high pressure gas mixtures. More...
#include <HighPressureGasTransport.h>
Public Member Functions | |
| virtual std::string | transportType () const |
| Identifies the Transport object type. More... | |
| virtual void | getThermalDiffCoeffs (doublereal *const dt) |
| Return the thermal diffusion coefficients (kg/m/s) More... | |
| virtual double | thermalConductivity () |
| Returns the mixture thermal conductivity in W/m/K. More... | |
| virtual void | getBinaryDiffCoeffs (const size_t ld, doublereal *const d) |
| virtual void | getMultiDiffCoeffs (const size_t ld, doublereal *const d) |
| Return the Multicomponent diffusion coefficients. Units: [m^2/s]. More... | |
| virtual doublereal | viscosity () |
| Viscosity of the mixture (kg /m /s) More... | |
Public Member Functions inherited from MultiTransport | |
| MultiTransport (thermo_t *thermo=0) | |
| default constructor More... | |
| virtual void | getSpeciesFluxes (size_t ndim, const doublereal *const grad_T, size_t ldx, const doublereal *const grad_X, size_t ldf, doublereal *const fluxes) |
| Get the species diffusive mass fluxes wrt to the mass averaged velocity, given the gradients in mole fraction and temperature. More... | |
| virtual void | getMolarFluxes (const doublereal *const state1, const doublereal *const state2, const doublereal delta, doublereal *const fluxes) |
| Get the molar diffusional fluxes [kmol/m^2/s] of the species, given the thermodynamic state at two nearby points. More... | |
| virtual void | getMassFluxes (const doublereal *state1, const doublereal *state2, doublereal delta, doublereal *fluxes) |
| Get the mass diffusional fluxes [kg/m^2/s] of the species, given the thermodynamic state at two nearby points. More... | |
| virtual void | init (ThermoPhase *thermo, int mode=0, int log_level=0) |
| Initialize a transport manager. More... | |
Public Member Functions inherited from GasTransport | |
| virtual void | getSpeciesViscosities (doublereal *const visc) |
| Get the pure-species viscosities. More... | |
| virtual void | getMixDiffCoeffs (doublereal *const d) |
| Returns the Mixture-averaged diffusion coefficients [m^2/s]. More... | |
| virtual void | getMixDiffCoeffsMole (doublereal *const d) |
| Returns the mixture-averaged diffusion coefficients [m^2/s]. More... | |
| virtual void | getMixDiffCoeffsMass (doublereal *const d) |
| Returns the mixture-averaged diffusion coefficients [m^2/s]. More... | |
Public Member Functions inherited from Transport | |
| Transport (thermo_t *thermo=0, size_t ndim=1) | |
| Constructor. More... | |
| Transport (const Transport &)=delete | |
| Transport & | operator= (const Transport &)=delete |
| thermo_t & | thermo () |
| bool | ready () |
| void | setNDim (const int ndim) |
| Set the number of dimensions to be expected in flux expressions. More... | |
| size_t | nDim () const |
| Return the number of dimensions in flux expressions. More... | |
| void | checkSpeciesIndex (size_t k) const |
| Check that the specified species index is in range. More... | |
| void | checkSpeciesArraySize (size_t kk) const |
| Check that an array size is at least nSpecies(). More... | |
| virtual doublereal | getElectricConduct () |
| Compute the mixture electrical conductivity (S m-1) at the current conditions of the phase (Siemens m-1) More... | |
| virtual void | getElectricCurrent (int ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, const doublereal *grad_V, doublereal *current) |
| Compute the electric current density in A/m^2. More... | |
| virtual void | getSpeciesFluxesES (size_t ndim, const doublereal *grad_T, size_t ldx, const doublereal *grad_X, size_t ldf, const doublereal *grad_Phi, doublereal *fluxes) |
| Get the species diffusive mass fluxes wrt to the mass averaged velocity, given the gradients in mole fraction, temperature and electrostatic potential. More... | |
| virtual void | getSpeciesVdiff (size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, doublereal *Vdiff) |
| Get the species diffusive velocities wrt to the mass averaged velocity, given the gradients in mole fraction and temperature. More... | |
| virtual void | getSpeciesVdiffES (size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, const doublereal *grad_Phi, doublereal *Vdiff) |
| Get the species diffusive velocities wrt to the mass averaged velocity, given the gradients in mole fraction, temperature, and electrostatic potential. More... | |
| virtual void | setParameters (const int type, const int k, const doublereal *const p) |
| Set model parameters for derived classes. More... | |
| void | setVelocityBasis (VelocityBasis ivb) |
| Sets the velocity basis. More... | |
| VelocityBasis | getVelocityBasis () const |
| Gets the velocity basis. More... | |
| virtual doublereal | bulkViscosity () |
| The bulk viscosity in Pa-s. More... | |
| virtual doublereal | ionConductivity () |
| The ionic conductivity in 1/ohm/m. More... | |
| virtual void | getSpeciesIonConductivity (doublereal *const ionCond) |
| Returns the pure species ionic conductivity. More... | |
| virtual void | mobilityRatio (double *mobRat) |
| Returns the pointer to the mobility ratios of the species in the phase. More... | |
| virtual void | getSpeciesMobilityRatio (double **mobRat) |
| Returns the pure species limit of the mobility ratios. More... | |
| virtual void | selfDiffusion (doublereal *const selfDiff) |
| Returns the self diffusion coefficients of the species in the phase. More... | |
| virtual void | getSpeciesSelfDiffusion (double **selfDiff) |
| Returns the pure species self diffusion in solution of each species. More... | |
| virtual doublereal | electricalConductivity () |
| The electrical conductivity (Siemens/m). More... | |
| virtual void | getMobilities (doublereal *const mobil_e) |
| Get the Electrical mobilities (m^2/V/s). More... | |
| virtual void | getFluidMobilities (doublereal *const mobil_f) |
| Get the fluid mobilities (s kmol/kg). More... | |
| virtual bool | initLiquid (LiquidTransportParams &tr) |
| Called by TransportFactory to set parameters. More... | |
| virtual bool | initSolid (SolidTransportData &tr) |
| Called by TransportFactory to set parameters. More... | |
| virtual void | setThermo (thermo_t &thermo) |
| Specifies the ThermoPhase object. More... | |
Protected Member Functions | |
| HighPressureGasTransport (thermo_t *thermo=0) | |
| default constructor More... | |
| virtual doublereal | Tcrit_i (size_t i) |
| virtual doublereal | Pcrit_i (size_t i) |
| virtual doublereal | Vcrit_i (size_t i) |
| virtual doublereal | Zcrit_i (size_t i) |
| vector_fp | store (size_t i, size_t nsp) |
| virtual doublereal | FQ_i (doublereal Q, doublereal Tr, doublereal MW) |
| virtual doublereal | setPcorr (doublereal Pr, doublereal Tr) |
Protected Member Functions inherited from MultiTransport | |
| void | update_T () |
| Update basic temperature-dependent quantities if the temperature has changed. More... | |
| void | update_C () |
| Update basic concentration-dependent quantities if the concentrations have changed. More... | |
| void | updateThermal_T () |
| Update the temperature-dependent terms needed to compute the thermal conductivity and thermal diffusion coefficients. More... | |
| void | correctBinDiffCoeffs () |
| void | eval_L0000 (const doublereal *const x) |
| Evaluate the L0000 matrices. More... | |
| void | eval_L0010 (const doublereal *const x) |
| Evaluate the L0010 matrices. More... | |
| void | eval_L1000 () |
| Evaluate the L1000 matrices. More... | |
| void | eval_L0100 () |
| void | eval_L0001 () |
| void | eval_L1010 (const doublereal *x) |
| void | eval_L1001 (const doublereal *x) |
| void | eval_L0110 () |
| void | eval_L0101 (const doublereal *x) |
| bool | hasInternalModes (size_t j) |
| doublereal | pressure_ig () |
| virtual void | solveLMatrixEquation () |
Protected Member Functions inherited from GasTransport | |
| GasTransport (ThermoPhase *thermo=0) | |
| virtual void | updateViscosity_T () |
| Update the temperature-dependent viscosity terms. More... | |
| virtual void | updateSpeciesViscosities () |
| Update the pure-species viscosities. More... | |
| virtual void | updateDiff_T () |
| Update the binary diffusion coefficients. More... | |
| virtual void | setupCollisionParameters () |
| Setup parameters for a new kinetic-theory-based transport manager for low-density gases. More... | |
| void | setupCollisionIntegral () |
| Setup range for polynomial fits to collision integrals of Monchick & Mason. More... | |
| void | getTransportData () |
| Read the transport database. More... | |
| void | makePolarCorrections (size_t i, size_t j, doublereal &f_eps, doublereal &f_sigma) |
| Corrections for polar-nonpolar binary diffusion coefficients. More... | |
| void | fitCollisionIntegrals (MMCollisionInt &integrals) |
| Generate polynomial fits to collision integrals. More... | |
| virtual void | fitProperties (MMCollisionInt &integrals) |
| Generate polynomial fits to the viscosity and conductivity. More... | |
| virtual void | fitDiffCoeffs (MMCollisionInt &integrals) |
| Generate polynomial fits to the binary diffusion coefficients. More... | |
| void | getBinDiffCorrection (doublereal t, MMCollisionInt &integrals, size_t k, size_t j, doublereal xk, doublereal xj, doublereal &fkj, doublereal &fjk) |
| Second-order correction to the binary diffusion coefficients. More... | |
Protected Member Functions inherited from Transport | |
| void | finalize () |
| Enable the transport object for use. More... | |
Friends | |
| class | TransportFactory |
Additional Inherited Members | |
Protected Attributes inherited from MultiTransport | |
| doublereal | m_thermal_tlast |
| DenseMatrix | m_astar |
| Dense matrix for astar. More... | |
| DenseMatrix | m_bstar |
| Dense matrix for bstar. More... | |
| DenseMatrix | m_cstar |
| Dense matrix for cstar. More... | |
| DenseMatrix | m_om22 |
| Dense matrix for omega22. More... | |
| vector_fp | m_cinternal |
| vector_fp | m_sqrt_eps_k |
| DenseMatrix | m_log_eps_k |
| vector_fp | m_frot_298 |
| vector_fp | m_rotrelax |
| doublereal | m_lambda |
| DenseMatrix | m_Lmatrix |
| DenseMatrix | m_aa |
| vector_fp | m_a |
| vector_fp | m_b |
| vector_fp | m_spwork1 |
| vector_fp | m_spwork2 |
| vector_fp | m_spwork3 |
| vector_fp | m_molefracs_last |
| Mole fraction vector from last L-matrix evaluation. More... | |
| bool | m_abc_ok |
| Boolean indicating viscosity is up to date. More... | |
| bool | m_l0000_ok |
| bool | m_lmatrix_soln_ok |
| DenseMatrix | incl |
| bool | m_debug |
Protected Attributes inherited from GasTransport | |
| vector_fp | m_molefracs |
| Vector of species mole fractions. More... | |
| doublereal | m_viscmix |
| Internal storage for the viscosity of the mixture (kg /m /s) More... | |
| bool | m_visc_ok |
| Update boolean for mixture rule for the mixture viscosity. More... | |
| bool | m_viscwt_ok |
| Update boolean for the weighting factors for the mixture viscosity. More... | |
| bool | m_spvisc_ok |
| Update boolean for the species viscosities. More... | |
| bool | m_bindiff_ok |
| Update boolean for the binary diffusivities at unit pressure. More... | |
| int | m_mode |
| Type of the polynomial fits to temperature. More... | |
| DenseMatrix | m_phi |
| m_phi is a Viscosity Weighting Function. size = m_nsp * n_nsp More... | |
| vector_fp | m_spwork |
| work space length = m_kk More... | |
| vector_fp | m_visc |
| vector of species viscosities (kg /m /s). More... | |
| std::vector< vector_fp > | m_visccoeffs |
| Polynomial fits to the viscosity of each species. More... | |
| vector_fp | m_mw |
| Local copy of the species molecular weights. More... | |
| DenseMatrix | m_wratjk |
| Holds square roots of molecular weight ratios. More... | |
| DenseMatrix | m_wratkj1 |
| Holds square roots of molecular weight ratios. More... | |
| vector_fp | m_sqvisc |
| vector of square root of species viscosities sqrt(kg /m /s). More... | |
| vector_fp | m_polytempvec |
| Powers of the ln temperature, up to fourth order. More... | |
| doublereal | m_temp |
| Current value of the temperature at which the properties in this object are calculated (Kelvin). More... | |
| doublereal | m_kbt |
| Current value of Boltzmann constant times the temperature (Joules) More... | |
| doublereal | m_sqrt_kbt |
| current value of Boltzmann constant times the temperature. More... | |
| doublereal | m_sqrt_t |
| current value of temperature to 1/2 power More... | |
| doublereal | m_logt |
| Current value of the log of the temperature. More... | |
| doublereal | m_t14 |
| Current value of temperature to 1/4 power. More... | |
| doublereal | m_t32 |
| Current value of temperature to the 3/2 power. More... | |
| std::vector< vector_fp > | m_diffcoeffs |
| Polynomial fits to the binary diffusivity of each species. More... | |
| DenseMatrix | m_bdiff |
| Matrix of binary diffusion coefficients at the reference pressure and the current temperature Size is nsp x nsp. More... | |
| std::vector< vector_fp > | m_condcoeffs |
| temperature fits of the heat conduction More... | |
| std::vector< vector_int > | m_poly |
| Indices for the (i,j) interaction in collision integral fits. More... | |
| std::vector< vector_fp > | m_omega22_poly |
| Fit for omega22 collision integral. More... | |
| std::vector< vector_fp > | m_astar_poly |
| Fit for astar collision integral. More... | |
| std::vector< vector_fp > | m_bstar_poly |
| Fit for bstar collision integral. More... | |
| std::vector< vector_fp > | m_cstar_poly |
| Fit for cstar collision integral. More... | |
| vector_fp | m_zrot |
| Rotational relaxation number for each species. More... | |
| vector_fp | m_crot |
| Dimensionless rotational heat capacity of each species. More... | |
| std::vector< bool > | m_polar |
| Vector of booleans indicating whether a species is a polar molecule. More... | |
| vector_fp | m_alpha |
| Polarizability of each species in the phase. More... | |
| vector_fp | m_eps |
| Lennard-Jones well-depth of the species in the current phase. More... | |
| vector_fp | m_sigma |
| Lennard-Jones diameter of the species in the current phase. More... | |
| DenseMatrix | m_reducedMass |
| This is the reduced mass of the interaction between species i and j. More... | |
| DenseMatrix | m_diam |
| hard-sphere diameter for (i,j) collision More... | |
| DenseMatrix | m_epsilon |
| The effective well depth for (i,j) collisions. More... | |
| DenseMatrix | m_dipole |
| The effective dipole moment for (i,j) collisions. More... | |
| DenseMatrix | m_delta |
| Reduced dipole moment of the interaction between two species. More... | |
| vector_fp | m_w_ac |
| Pitzer acentric factor. More... | |
| vector_fp | m_disp |
| Dispersion coefficient. More... | |
| vector_fp | m_quad_polar |
| Quadrupole polarizability. More... | |
| int | m_log_level |
| Level of verbose printing during initialization. More... | |
Protected Attributes inherited from Transport | |
| thermo_t * | m_thermo |
| pointer to the object representing the phase More... | |
| bool | m_ready |
| true if finalize has been called More... | |
| size_t | m_nsp |
| Number of species. More... | |
| size_t | m_nDim |
| Number of dimensions used in flux expressions. More... | |
| int | m_velocityBasis |
| Velocity basis from which diffusion velocities are computed. More... | |
Class MultiTransport implements transport properties for high pressure gas mixtures.
The implementation employs a method of corresponding states, using the Takahashi approach for binary diffusion coefficients, (using multicomponent averaging rules for the mixture properties, and the Lucas method for the viscosity of a high-pressure gas mixture.
Definition at line 38 of file HighPressureGasTransport.h.
|
protected |
default constructor
| thermo | Optional parameter for the pointer to the ThermoPhase object |
Definition at line 30 of file HighPressureGasTransport.cpp.
|
inlinevirtual |
Identifies the Transport object type.
Each derived class should override this method to return a meaningful identifier.
Reimplemented from MultiTransport.
Definition at line 48 of file HighPressureGasTransport.h.
|
virtual |
Return the thermal diffusion coefficients (kg/m/s)
Currently not implemented for this model
Reimplemented from MultiTransport.
Definition at line 125 of file HighPressureGasTransport.cpp.
|
virtual |
Returns the mixture thermal conductivity in W/m/K.
Units are in W / m K or equivalently kg m / s3 K
Reimplemented from MultiTransport.
Definition at line 35 of file HighPressureGasTransport.cpp.
References Cantera::BigNumber, Cantera::GasConstant, ThermoPhase::getCp_R_ref(), Phase::getMoleFractions(), GasTransport::m_mw, Transport::m_nsp, GasTransport::m_temp, Transport::m_thermo, GasTransport::m_w_ac, Phase::molarVolume(), Phase::nSpecies(), Phase::temperature(), Cantera::Tiny, and MultiTransport::update_T().
|
virtual |
Returns the matrix of binary diffusion coefficients
d[ld*j + i] = rp*m_bdiff(i,j)*(DP)_R;
| ld | offset of rows in the storage |
| d | output vector of diffusion coefficients. Units of m**2 / s |
Reimplemented from GasTransport.
Definition at line 137 of file HighPressureGasTransport.cpp.
References Phase::getMoleFractions(), GasTransport::m_bdiff, GasTransport::m_temp, Transport::m_thermo, Phase::nSpecies(), ThermoPhase::pressure(), Cantera::Tiny, MultiTransport::update_T(), and GasTransport::updateDiff_T().
|
virtual |
Return the Multicomponent diffusion coefficients. Units: [m^2/s].
If the transport manager implements a multicomponent diffusion model, then this method returns the array of multicomponent diffusion coefficients. Otherwise it throws an exception.
| [in] | ld | The dimension of the inner loop of d (usually equal to m_nsp) |
| [out] | d | flat vector of diffusion coefficients, fortran ordering. d[ld*j+i] is the D_ij diffusion coefficient (the diffusion coefficient for species i due to species j). |
Reimplemented from MultiTransport.
Definition at line 193 of file HighPressureGasTransport.cpp.
References MultiTransport::eval_L0000(), Phase::getMoleFractions(), Cantera::invert(), GasTransport::m_bdiff, GasTransport::m_bindiff_ok, GasTransport::m_mw, Transport::m_nsp, GasTransport::m_temp, Transport::m_thermo, Phase::meanMolecularWeight(), Phase::nSpecies(), ThermoPhase::pressure(), Cantera::Tiny, MultiTransport::update_C(), MultiTransport::update_T(), GasTransport::updateDiff_T(), and MultiTransport::updateThermal_T().
|
virtual |
Viscosity of the mixture (kg /m /s)
The viscosity is computed using the Wilke mixture rule (kg /m /s)
\[ \mu = \sum_k \frac{\mu_k X_k}{\sum_j \Phi_{k,j} X_j}. \]
Here \( \mu_k \) is the viscosity of pure species k, and
\[ \Phi_{k,j} = \frac{\left[1 + \sqrt{\left(\frac{\mu_k}{\mu_j}\sqrt{\frac{M_j}{M_k}}\right)}\right]^2} {\sqrt{8}\sqrt{1 + M_k/M_j}} \]
Reimplemented from GasTransport.
Definition at line 278 of file HighPressureGasTransport.cpp.
References Phase::getMoleFractions(), GasTransport::m_mw, Transport::m_nsp, Transport::m_thermo, Phase::meanMolecularWeight(), Phase::nSpecies(), ThermoPhase::satPressure(), and Phase::temperature().
1.8.14