Cantera  2.0
LiquidTransport Class Reference

Class LiquidTransport implements models for transport properties for liquid phases. More...

#include <LiquidTransport.h>

Inheritance diagram for LiquidTransport:
[legend]
Collaboration diagram for LiquidTransport:
[legend]

## Public Member Functions

LiquidTransport (thermo_t *thermo=0, int ndim=1)
Default constructor.

LiquidTransport (const LiquidTransport &right)
Copy Constructor for the LiquidThermo object.

LiquidTransportoperator= (const LiquidTransport &right)
Assignment operator.

virtual TransportduplMyselfAsTransport () const
Duplication routine for objects which inherit from Transport.

virtual ~LiquidTransport ()
virtual destructor

virtual bool initLiquid (LiquidTransportParams &tr)
Initialize the transport object.

virtual int model () const
Return the model id for this transport parameterization.

virtual doublereal viscosity ()
Returns the viscosity of the solution.

virtual void getSpeciesViscosities (doublereal *const visc)
Returns the pure species viscosities for all species.

virtual doublereal ionConductivity ()
Returns the ionic conductivity of the solution.

virtual void getSpeciesIonConductivity (doublereal *const ionCond)
Returns the pure species ionic conductivities for all species.

virtual void mobilityRatio (doublereal *mobRat)
Returns the pointer to the mobility ratios of the binary combinations of the transported species for the solution Has size of the number of binary interactions = nsp*nsp.

virtual void getSpeciesMobilityRatio (doublereal **mobRat)
Returns a double pointer to the mobility ratios of the transported species in each pure species phase.

virtual void selfDiffusion (doublereal *const selfDiff)
Returns the self diffusion coefficients of the species in the phase.

virtual void getSpeciesSelfDiffusion (doublereal **selfDiff)
Returns the self diffusion coefficients in the pure species phases.

Returns the hydrodynamic radius for all species.

virtual void getBinaryDiffCoeffs (const size_t ld, doublereal *const d)
Returns the binary diffusion coefficients.

virtual void getMixDiffCoeffs (doublereal *const d)
Get the Mixture diffusion coefficients.

virtual void getThermalDiffCoeffs (doublereal *const dt)
Return the thermal diffusion coefficients.

virtual doublereal thermalConductivity ()
Return the thermal conductivity of the solution.

virtual void getMobilities (doublereal *const mobil_e)
Get the Electrical mobilities (m^2/V/s).

virtual void getFluidMobilities (doublereal *const mobil_f)
Get the fluid mobilities (s kmol/kg).

Specify the value of the gradient of the voltage.

Specify the value of the gradient of the temperature.

Specify the value of the gradient of the MoleFractions.

virtual doublereal getElectricConduct ()
Compute the mixture electrical conductivity from the Stefan-Maxwell equation.

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.

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 averaged velocity, given the gradients in mole fraction and temperature.

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 averaged velocity, given the gradients in mole fraction, temperature and electrostatic potential.

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)
Return the species diffusive mass fluxes wrt to the averaged velocity in [kmol/m^2/s].

virtual void getSpeciesFluxesES (size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, const doublereal *grad_Phi, doublereal *fluxes)
Return the species diffusive mass fluxes wrt to the averaged velocity in [kmol/m^2/s].

virtual void getSpeciesVdiffExt (size_t ldf, doublereal *Vdiff)
Return the species diffusive velocities relative to the averaged velocity.

virtual void getSpeciesFluxesExt (size_t ldf, doublereal *fluxes)
Return the species diffusive fluxes relative to the averaged velocity.

thermo_tthermo ()
Phase object.

Returns true if the transport manager is ready for use.

void setNDim (const int ndim)
Set the number of dimensions to be expected in flux expressions.

size_t nDim () const
Return the number of dimensions in flux expressions.

void checkSpeciesIndex (size_t k) const
Check that the specified species index is in range Throws an exception if k is greater than nSpecies()

void checkSpeciesArraySize (size_t kk) const
Check that an array size is at least nSpecies() Throws an exception if kk is less than nSpecies().

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.

virtual void getMolarFluxes (const doublereal *const state1, const doublereal *const state2, const doublereal delta, doublereal *const cfluxes)
Get the molar fluxes [kmol/m^2/s], given the thermodynamic state at two nearby points.

virtual void getMassFluxes (const doublereal *state1, const doublereal *state2, doublereal delta, doublereal *mfluxes)
Get the mass fluxes [kg/m^2/s], given the thermodynamic state at two nearby points.

virtual void getMultiDiffCoeffs (const size_t ld, doublereal *const d)
Return the Multicomponent diffusion coefficients. Units: [m^2/s].

virtual void getMixDiffCoeffsMole (doublereal *const d)
Returns a vector of mixture averaged diffusion coefficients.

virtual void getMixDiffCoeffsMass (doublereal *const d)
Returns a vector of mixture averaged diffusion coefficients.

virtual void setParameters (const int type, const int k, const doublereal *const p)
Set model parameters for derived classes.

void setVelocityBasis (VelocityBasis ivb)
Sets the velocity basis.

VelocityBasis getVelocityBasis () const
Gets the velocity basis.

Transport Properties
virtual doublereal bulkViscosity ()
The bulk viscosity in Pa-s.

virtual doublereal electricalConductivity ()
The electrical conductivity (Siemens/m).

## Protected Member Functions

virtual bool update_T ()
Returns true if temperature has changed, in which case flags are set to recompute transport properties.

virtual bool update_C ()
Returns true if mixture composition has changed, in which case flags are set to recompute transport properties.

Updates the internal value of the gradient of the logarithm of the activity, which is used in the gradient of the chemical potential.

void stefan_maxwell_solve ()
Solve the stefan_maxell equations for the diffusive fluxes.

void updateViscosity_T ()
Updates the array of pure species viscosities internally.

void updateIonConductivity_T ()
Update the temperature-dependent ionic conductivity terms for each species internally.

void updateMobilityRatio_T ()
Updates the array of pure species mobility ratios internally.

Updates the array of pure species self diffusion coeffs internally.

Update the temperature-dependent hydrodynamic radius terms for each species internally.

void updateCond_T ()
Update the temperature-dependent parts of the mixture-averaged thermal conductivity internally.

void updateViscosities_C ()
Update the concentration parts of the viscosities.

void updateIonConductivity_C ()
Update the concentration parts of the ionic conductivity.

void updateMobilityRatio_C ()
Update the concentration parts of the mobility ratio.

Update the concentration parts of the self diffusion.

Update the concentration dependence of the hydrodynamic radius.

void updateDiff_T ()
Update the binary Stefan-Maxwell diffusion coefficients wrt T using calls to the appropriate LTPspecies subclass.

Transport manager construction

These methods are used internally during construction.

virtual bool initGas (GasTransportParams &tr)
Called by TransportFactory to set parameters.

void setThermo (thermo_t &thermo)
Specifies the ThermPhase object.

void finalize ()
Enable the transport object for use.

## Protected Attributes

thermo_tm_thermo
pointer to the object representing the phase

true if finalize has been called

size_t m_nsp
Number of species.

int m_velocityBasis
Velocity basis from which diffusion velocities are computed.

## Private Types

typedef std::vector< LTPspecies * > LTPvector
Type def for LTPvector equating it with a vector of pointers to LTPspecies.

## Private Member Functions

doublereal err (std::string msg) const
Throw an exception if this method is invoked.

## Private Attributes

size_t m_nsp2
Number of species squared.

doublereal m_tmin
Minimum temperature applicable to the transport property eval.

doublereal m_tmax
Maximum temperature applicable to the transport property evaluator.

vector_fp m_mw
Local copy of the molecular weights of the species.

std::vector< LTPspecies * > m_viscTempDep_Ns
Viscosity for each species expressed as an appropriate subclass of LTPspecies.

LiquidTranInteractionm_viscMixModel
Viscosity of the mixture expressed as a subclass of LiquidTranInteraction.

std::vector< LTPspecies * > m_ionCondTempDep_Ns
Ionic conductivity for each species expressed as an appropriate subclass of LTPspecies.

LiquidTranInteractionm_ionCondMixModel
Ionic Conductivity of the mixture expressed as a subclass of LiquidTranInteraction.

std::vector< LTPvectorm_mobRatTempDep_Ns
Mobility ratio for the binary cominations of each species in each pure phase expressed as an appropriate subclass of LTPspecies.

std::vector
< LiquidTranInteraction * >
m_mobRatMixModel
Mobility ratio for each binary combination of mobile species in the mixture expressed as a subclass of LiquidTranInteraction.

std::vector< LTPvectorm_selfDiffTempDep_Ns
Self Diffusion for each species in each pure species phase expressed as an appropriate subclass of LTPspecies.

std::vector
< LiquidTranInteraction * >
m_selfDiffMixModel
Self Diffusion for each species in the mixture expressed as a subclass of LiquidTranInteraction.

std::vector< LTPspecies * > m_lambdaTempDep_Ns
Thermal conductivity for each species expressed as an appropriate subclass of LTPspecies.

LiquidTranInteractionm_lambdaMixModel
Thermal conductivity of the mixture expressed as a subclass of LiquidTranInteraction.

std::vector< LTPspecies * > m_diffTempDep_Ns
(NOT USED IN LiquidTransport.) Diffusion coefficient model for each species expressed as an appropriate subclass of LTPspecies

LiquidTranInteractionm_diffMixModel
Species diffusivity of the mixture expressed as a subclass of LiquidTranInteraction.

DenseMatrix m_diff_Dij
Setfan-Maxwell diffusion coefficients.

Hydrodynamic radius for each species expressed as an appropriate subclass of LTPspecies.

(Not used in LiquidTransport) Hydrodynamic radius of the mixture expressed as a subclass of LiquidTranInteraction

Gradient of the logarithm of the activity.

Internal value of the gradient of the Temperature vector.

Internal value of the gradient of the Pressure vector.

Internal value of the gradient of the Electric Voltage.

DenseMatrix m_bdiff
Array of Binary Diffusivities.

vector_fp m_viscSpecies
Internal value of the species viscosities.

vector_fp m_ionCondSpecies
Internal value of the species ionic conductivities.

DenseMatrix m_mobRatSpecies
Internal value of the species mobility ratios.

DenseMatrix m_selfDiffSpecies
Internal value of the species self diffusion coefficients.

vector_fp m_lambdaSpecies
Internal value of the species individual thermal conductivities.

int m_iStateMF
State of the mole fraction vector.

vector_fp m_massfracs
Local copy of the mass fractions of the species in the phase.

vector_fp m_massfracs_tran
Local copy of the mass fractions of the species in the phase.

vector_fp m_molefracs
Local copy of the mole fractions of the species in the phase.

vector_fp m_molefracs_tran
Non-zero mole fraction vector used in transport property calculations.

vector_fp m_concentrations
Local copy of the concentrations of the species in the phase.

doublereal concTot_
Local copy of the total concentration.

doublereal concTot_tran_
Local copy of the total concentration.

doublereal meanMolecularWeight_
Mean molecular mass.

doublereal dens_
Density.

vector_fp m_chargeSpecies
Local copy of the charge of each species.

vector_fp m_volume_spec
Specific volume for each species. Local copy from thermo object.

vector_fp m_actCoeff
Vector of activity coefficients.

DenseMatrix m_B
RHS to the stefan-maxwell equation.

DenseMatrix m_A
Matrix for the stefan maxwell equation.

doublereal m_temp
Current Temperature -> locally stored.

doublereal m_press
Current value of the pressure.

Array2D m_flux
Solution of the Stefan Maxwell equation in terms of flux.

Array2D m_Vdiff
Solution of the Stefan Maxwell equation.

doublereal m_lambda
Saved value of the mixture thermal conductivity.

doublereal m_viscmix
Saved value of the mixture viscosity.

doublereal m_ionCondmix
Saved value of the mixture ionic conductivity.

vector_fp m_mobRatMix
Saved values of the mixture mobility ratios.

vector_fp m_selfDiffMix
Saved values of the mixture self diffusion coefficients.

vector_fp m_spwork
work space

bool m_visc_mix_ok
Boolean indicating that the top-level mixture viscosity is current.

bool m_visc_temp_ok
Boolean indicating that weight factors wrt viscosity is current.

bool m_visc_conc_ok
Flag to indicate that the pure species viscosities are current wrt the concentration.

bool m_ionCond_mix_ok
Boolean indicating that the top-level mixture ionic conductivity is current.

bool m_ionCond_temp_ok
Boolean indicating that weight factors wrt ionic conductivty is current.

bool m_ionCond_conc_ok
Flag to indicate that the pure species ionic conductivities are current wrt the concentration.

bool m_cond_mix_ok
Flag to indicate that the mixture conductivity is current.

bool m_mobRat_mix_ok
Boolean indicating that the top-level mixture mobility ratio is current.

bool m_mobRat_temp_ok
Boolean indicating that weight factors wrt mobility ratio is current.

bool m_mobRat_conc_ok
Flag to indicate that the pure species mobility ratios are current wrt the concentration.

bool m_selfDiff_mix_ok
Boolean indicating that the top-level mixture self diffusion is current.

bool m_selfDiff_temp_ok
Boolean indicating that weight factors wrt self diffusion is current.

bool m_selfDiff_conc_ok
Flag to indicate that the pure species self diffusion are current wrt the concentration.

Boolean indicating that mixture diffusion coeffs are current.

Boolean indicating that temperature dependence of hydrodynamic radius is current.

Flag to indicate that the hydrodynamic radius is current is current wrt the concentration.

bool m_diff_mix_ok
Boolean indicating that mixture diffusion coeffs are current.

bool m_diff_temp_ok
Boolean indicating that binary diffusion coeffs are current.

bool m_lambda_temp_ok
Flag to indicate that the pure species conductivities are current wrt the temperature.

bool m_lambda_mix_ok
Boolean indicating that mixture conductivity is current.

int m_mode
Mode indicator for transport models – currently unused.

bool m_debug
Debugging flags.

size_t m_nDim
Number of dimensions.

## Friends

class TransportFactory

## Detailed Description

Class LiquidTransport implements models for transport properties for liquid phases.

Liquid Transport is set up with some flexibility in this class. Transport properties like viscosity and thermal conductivity are allowed flexibility within the constraints of the LiquidTransportProperty and LiquidTransportInteractions classes. For species diffusion, the LiquidTransport class focuses on the Stefan-Maxwell equation to determine the diffusion velocities. Other options for liquid diffusion include solvent-dominated diffusion, and a class SolventTransport should be forthcoming.

The class LiquidTransport has several roles.

1. It brings together the individual species transport properties, expressed as subclasses of LTPspecies (Liquid Transport Properties of Species) through LiquidTransportData, with models for the composition dependence of liquid transport properties expressed as subclasses of LiquidTranInteraction (mixing rules) through LiquidTransportParams. Calculating mixture properties generally consists of calling the getMixTansProp member of LiquidTranInteraction by passing a vector of LTPSpecies
2. It calculates the bulk velocity $$\vec{v}$$ and individual species diffusion velocities, $$\vec{V_i}$$ using the Stefan-Maxwell equations. It is possible to set a flag to calculate relative to a mass-averaged bulk velocity, relative to a mole-averaged bulk velocity or relative to a single species velocity using the <velocityBasis basis="mass">, <velocityBasis basis="mass">, or <velocityBasis basis="Cl-"> keyword. Mass-averaged velocities are the default for which the diffusion velocities satisfy

$\sum_{i} Y_i \vec{V_i} = 0$

for mass fraction $$Y_i$$. For mole-averaged velocities

$\sum_{i} X_i \vec{V_i} = 0$

for mole fraction $$X_i$$. or

$\vec{V_i} = 0$

for reference species $$i$$.
3. It provides access to a number of derived quantities related to transport properties as described in the various methods below.

Within LiquidTransport, the state is presumed to be defined in terms of the species mole fraction, temperature and pressure. Charged species are expected and quantities like the electric current are computed based on a combined electrochemcial potential.

Definition at line 90 of file LiquidTransport.h.

## Member Typedef Documentation

 typedef std::vector LTPvector
private

Type def for LTPvector equating it with a vector of pointers to LTPspecies.

Definition at line 930 of file LiquidTransport.h.

## Constructor & Destructor Documentation

 LiquidTransport ( thermo_t * thermo = 0, int ndim = 1 )

Default constructor.

This requires call to initLiquid(LiquidTransportParams& tr) after filling LiquidTransportParams to complete instantiation. The filling of LiquidTransportParams is currently carried out in the TransportFactory class, but might be moved at some point.

Parameters
 thermo ThermoPhase object holding species information. ndim Number of spatial dimensions.

Definition at line 32 of file LiquidTransport.cpp.

Referenced by LiquidTransport::duplMyselfAsTransport().

 LiquidTransport ( const LiquidTransport & right )

Copy Constructor for the LiquidThermo object.

Parameters
 right LiquidTransport to be copied

Definition at line 79 of file LiquidTransport.cpp.

 ~LiquidTransport ( )
virtual

## Member Function Documentation

 Transport * duplMyselfAsTransport ( ) const
virtual

Duplication routine for objects which inherit from Transport.

This virtual routine can be used to duplicate Transport objects inherited from Transport even if the application only has a pointer to Transport to work with.

These routines are basically wrappers around the derived copy constructor.

Reimplemented from Transport.

Definition at line 213 of file LiquidTransport.cpp.

References LiquidTransport::LiquidTransport().

 virtual int model ( ) const
inlinevirtual

Return the model id for this transport parameterization.

Reimplemented from Transport.

Definition at line 153 of file LiquidTransport.h.

Referenced by LiquidTransport::err().

 doublereal viscosity ( )
virtual

Returns the viscosity of the solution.

The viscosity calculation is handled by subclasses of LiquidTranInteraction as specified in the input file. These in turn employ subclasses of LTPspecies to determine the individual species viscosities.

Reimplemented from Transport.

Definition at line 477 of file LiquidTransport.cpp.

 void getSpeciesViscosities ( doublereal *const visc )
virtual

Returns the pure species viscosities for all species.

The pure species viscosities are evaluated using the appropriate subclasses of LTPspecies as specified in the input file.

Parameters
 visc array of length "number of species" to hold returned viscosities.

Reimplemented from Transport.

Definition at line 502 of file LiquidTransport.cpp.

 doublereal ionConductivity ( )
virtual

Returns the ionic conductivity of the solution.

The ionic conductivity calculation is handled by subclasses of LiquidTranInteraction as specified in the input file. These in turn employ subclasses of LTPspecies to determine the individual species ionic conductivities.

Reimplemented from Transport.

Definition at line 520 of file LiquidTransport.cpp.

 void getSpeciesIonConductivity ( doublereal *const ionCond )
virtual

Returns the pure species ionic conductivities for all species.

The pure species ionic conductivities are evaluated using the appropriate subclasses of LTPspecies as specified in the input file.

Parameters
 ionCond Array of length "number of species" to hold returned ionic conductivities.

Reimplemented from Transport.

Definition at line 556 of file LiquidTransport.cpp.

 void mobilityRatio ( doublereal * mobRat )
virtual

Returns the pointer to the mobility ratios of the binary combinations of the transported species for the solution Has size of the number of binary interactions = nsp*nsp.

The mobility ratio calculation is handled by subclasses of LiquidTranInteraction as specified in the input file. These in turn employ subclasses of LTPspecies to determine the mobility ratios in the pure species.

Parameters
 mobRat Vector of mobility ratios

Reimplemented from Transport.

Definition at line 574 of file LiquidTransport.cpp.

 void getSpeciesMobilityRatio ( doublereal ** mobRat )
virtual

Returns a double pointer to the mobility ratios of the transported species in each pure species phase.

Has size of the number of binary interactions by the number of species (nsp*nsp X nsp) The pure species mobility ratios are evaluated using the appropriate subclasses of LTPspecies as specified in the input file.

Parameters
 mobRat array of length "number of species" to hold returned mobility ratios.

Reimplemented from Transport.

Definition at line 605 of file LiquidTransport.cpp.

 void selfDiffusion ( doublereal *const selfDiff )
virtual

Returns the self diffusion coefficients of the species in the phase.

Has size of nsp(coeffs)

The self diffusion coefficient is the diffusion coefficient of a tracer species at the current temperature and composition of the species. Therefore, the dilute limit of transport is assumed for the tracer species. The effective formula may be calculated from the stefan-maxwell formulation by adding another row for the tracer species, assigning all D's to be equal to the respective species D's, and then taking the limit as the tracer species mole fraction goes to zero. The corresponding flux equation for the tracer species k in units of kmol m-2 s-1 is.

$J_k = - D^{sd}_k \frac{C_k}{R T} \nabla \mu_k$

The derivative is taken at constant T and P.

The self diffusion calculation is handled by subclasses of LiquidTranInteraction as specified in the input file. These in turn employ subclasses of LTPspecies to determine the individual species self diffusion coeffs.

Parameters
 selfDiff Vector of self-diffusion coefficients Length = number of species in phase units = m**2 s-1

Reimplemented from Transport.

Definition at line 644 of file LiquidTransport.cpp.

 void getSpeciesSelfDiffusion ( doublereal ** selfDiff )
virtual

Returns the self diffusion coefficients in the pure species phases.

Has size of nsp(coeffs) x nsp(phases)

The pure species molar volumes are evaluated using the appropriate subclasses of LTPspecies as specified in the input file.

Parameters
 selfDiff array of length "number of species" to hold returned self diffusion coeffs.

Reimplemented from Transport.

Definition at line 667 of file LiquidTransport.cpp.

virtual

Returns the hydrodynamic radius for all species.

The species hydrodynamic radii are evaluated using the appropriate subclasses of LTPspecies as specified in the input file.

Parameters

Definition at line 690 of file LiquidTransport.cpp.

 void getBinaryDiffCoeffs ( const size_t ld, doublereal *const d )
virtual

Returns the binary diffusion coefficients.

The binary diffusion coefficients are specified in the input file through the LiquidTransportInteractions class. These are the binary interaction coefficients employed in the Stefan-Maxwell equation.

Parameters
 ld number of species in system d vector of binary diffusion coefficients units = m2 s-1. length = ld*ld = (number of species)^2

Reimplemented from Transport.

Definition at line 753 of file LiquidTransport.cpp.

 void getMixDiffCoeffs ( doublereal *const d )
virtual

Get the Mixture diffusion coefficients.

The mixture diffusion coefficients are not well defined in the context of LiquidTransport because the Stefan Maxwell equation is solved. Here the mixture diffusion coefficients are defined according to Ficks law:

$X_i \vec{V_i} = -D_i \nabla X_i.$

Solving Ficks Law for $$D_i$$ gives a mixture diffusion coefficient

$D_i = - X_i \vec{V_i} / ( \nabla X_i ).$

If $$\nabla X_i = 0$$ this is undefined and the nonsensical value -1 is returned.

Note that this evaluation of $$\vec{V_i}$$ requires a solve of the Stefan Maxwell equation making this determination of the mixture averaged diffusion coefficients a slow method for obtaining diffusion coefficients.

Also note that the Stefan Maxwell solve will be based upon the thermodynamic state (including gradients) most recently set. Gradients can be set specifically using set_Grad_V, set_Grad_X and set_Grad_T or through calls to getSpeciesFluxes, getSpeciesFluxesES, getSpeciesVdiff, getSpeciesVdiffES, etc.

Parameters
 d vector of mixture diffusion coefficients units = m2 s-1. length = number of species

Reimplemented from Transport.

Definition at line 1249 of file LiquidTransport.cpp.

Referenced by LiquidTransport::getFluidMobilities(), and LiquidTransport::getMobilities().

 void getThermalDiffCoeffs ( doublereal *const dt )
virtual

Return the thermal diffusion coefficients.

These are all zero for this simple implementaion

Parameters
 dt thermal diffusion coefficients

Reimplemented from Transport.

Definition at line 732 of file LiquidTransport.cpp.

References Transport::m_nsp.

 doublereal thermalConductivity ( )
virtual

Return the thermal conductivity of the solution.

The thermal conductivity calculation is handled by subclasses of LiquidTranInteraction as specified in the input file. These in turn employ subclasses of LTPspecies to determine the individual species thermal condictivities.

Reimplemented from Transport.

Definition at line 709 of file LiquidTransport.cpp.

 void getMobilities ( doublereal *const mobil_e )
virtual

Get the Electrical mobilities (m^2/V/s).

The electrical mobilities are not well defined in the context of LiquidTransport because the Stefan Maxwell equation is solved. Here the electrical mobilities are calculated from the mixture-averaged diffusion coefficients through a call to getMixDiffCoeffs() using the Einstein relation

$\mu^e_k = \frac{F D_k}{R T}$

Note that this call to getMixDiffCoeffs() requires a solve of the Stefan Maxwell equation making this determination of the mixture averaged diffusion coefficients a slow method for obtaining diffusion coefficients.

Also note that the Stefan Maxwell solve will be based upon the thermodynamic state (including gradients) most recently set. Gradients can be set specifically using set_Grad_V, set_Grad_X and set_Grad_T or through calls to getSpeciesFluxes, getSpeciesFluxesES, getSpeciesVdiff, getSpeciesVdiffES, etc.

Parameters
 mobil_e Returns the electrical mobilities of the species in array mobil_e. The array must be dimensioned at least as large as the number of species.

Reimplemented from Transport.

Definition at line 806 of file LiquidTransport.cpp.

 void getFluidMobilities ( doublereal *const mobil_f )
virtual

Get the fluid mobilities (s kmol/kg).

The fluid mobilities are not well defined in the context of LiquidTransport because the Stefan Maxwell equation is solved. Here the fluid mobilities are calculated from the mixture-averaged diffusion coefficients through a call to getMixDiffCoeffs() using the Einstein relation

$\mu^f_k = \frac{D_k}{R T}$

Note that this call to getMixDiffCoeffs() requires a solve of the Stefan Maxwell equation making this determination of the mixture averaged diffusion coefficients a slow method for obtaining diffusion coefficients.

Also note that the Stefan Maxwell solve will be based upon the thermodynamic state (including gradients) most recently set. Gradients can be set specifically using set_Grad_V, set_Grad_X and set_Grad_T or through calls to getSpeciesFluxes, getSpeciesFluxesES, getSpeciesVdiff, getSpeciesVdiffES, etc.

Parameters
 mobil_f Returns the fluid mobilities of the species in array mobil_f. The array must be dimensioned at least as large as the number of species.

Reimplemented from Transport.

Definition at line 844 of file LiquidTransport.cpp.

virtual

Specify the value of the gradient of the voltage.

Parameters

Definition at line 869 of file LiquidTransport.cpp.

virtual

Specify the value of the gradient of the temperature.

Parameters

Definition at line 857 of file LiquidTransport.cpp.

virtual

Specify the value of the gradient of the MoleFractions.

Parameters

Definition at line 881 of file LiquidTransport.cpp.

 doublereal getElectricConduct ( )
virtual

Compute the mixture electrical conductivity from the Stefan-Maxwell equation.

To compute the mixture electrical conductance, the Stefan Maxwell equation is solved for zero species gradients and for unit potential gradient, $$\nabla V$$. The species fluxes are converted to current by summing over the charge-weighted fluxes according to

$\vec{i} = \sum_{i} z_i F \rho \vec{V_i} / W_i$

where $$z_i$$ is the charge on species i, $$F$$ is Faradays constant, $$\rho$$ is the density, $$W_i$$ is the molecular mass of species i. The conductance, $$\kappa$$ is obtained from

$\kappa = \vec{i} / \nabla V.$

Reimplemented from Transport.

Definition at line 909 of file LiquidTransport.cpp.

 void getElectricCurrent ( int ndim, const doublereal * grad_T, int ldx, const doublereal * grad_X, int ldf, const doublereal * grad_V, doublereal * current )
virtual

Compute the electric current density in A/m^2.

The electric current is computed first by computing the species diffusive fluxes using the Stefan Maxwell solution and then the current, $$\vec{i}$$ by summing over the charge-weighted fluxes according to

$\vec{i} = \sum_{i} z_i F \rho \vec{V_i} / W_i$

where $$z_i$$ is the charge on species i, $$F$$ is Faradays constant, $$\rho$$ is the density, $$W_i$$ is the molecular mass of species i.

Parameters
 ndim The number of spatial dimensions (1, 2, or 3). grad_T The temperature gradient (ignored in this model). ldx Leading dimension of the grad_X array. grad_X Gradients of the mole fraction Flat vector with the m_nsp in the inner loop. length = ldx * ndim ldf Leading dimension of the grad_V and current vectors. grad_V The electrostatic potential gradient. current The electric current in A/m^2.

Reimplemented from Transport.

Definition at line 964 of file LiquidTransport.cpp.

 void getSpeciesVdiff ( size_t ndim, const doublereal * grad_T, int ldx, const doublereal * grad_X, int ldf, doublereal * Vdiff )
virtual

Get the species diffusive velocities wrt to the averaged velocity, given the gradients in mole fraction and temperature.

The average velocity can be computed on a mole-weighted or mass-weighted basis, or the diffusion velocities may be specified as relative to a specific species (i.e. a solvent) all according to the velocityBasis input parameter.

Units for the returned velocities are m s-1.

Parameters
 ndim Number of dimensions in the flux expressions grad_T Gradient of the temperature (length = ndim) ldx Leading dimension of the grad_X array (usually equal to m_nsp but not always) grad_X Gradients of the mole fraction Flat vector with the m_nsp in the inner loop. length = ldx * ndim ldf Leading dimension of the fluxes array (usually equal to m_nsp but not always) Vdiff Output of the diffusive velocities. Flat vector with the m_nsp in the inner loop. length = ldx * ndim

Reimplemented from Transport.

Definition at line 1016 of file LiquidTransport.cpp.

 void getSpeciesVdiffES ( size_t ndim, const doublereal * grad_T, int ldx, const doublereal * grad_X, int ldf, const doublereal * grad_Phi, doublereal * Vdiff )
virtual

Get the species diffusive velocities wrt to the averaged velocity, given the gradients in mole fraction, temperature and electrostatic potential.

The average velocity can be computed on a mole-weighted or mass-weighted basis, or the diffusion velocities may be specified as relative to a specific species (i.e. a solvent) all according to the velocityBasis input parameter.

Units for the returned velocities are m s-1.

Parameters
 ndim Number of dimensions in the flux expressions grad_T Gradient of the temperature (length = ndim) ldx Leading dimension of the grad_X array (usually equal to m_nsp but not always) grad_X Gradients of the mole fraction Flat vector with the m_nsp in the inner loop. length = ldx * ndim ldf Leading dimension of the fluxes array (usually equal to m_nsp but not always) grad_Phi Gradients of the electrostatic potential (length = ndim) Vdiff Output of the species diffusion velocities Flat vector with the m_nsp in the inner loop. length = ldx * ndim

Reimplemented from Transport.

Definition at line 1036 of file LiquidTransport.cpp.

 void getSpeciesFluxes ( size_t ndim, const doublereal *const grad_T, size_t ldx, const doublereal *const grad_X, size_t ldf, doublereal *const fluxes )
virtual

Return the species diffusive mass fluxes wrt to the averaged velocity in [kmol/m^2/s].

The diffusive mass flux of species k [kmol/m^2/s] is computed using the Stefan-Maxwell equation

$X_i \nabla \mu_i = RT \sum_i \frac{X_i X_j}{D_{ij}} ( \vec{V}_j - \vec{V}_i )$

to determine the diffusion velocity and

$\vec{N}_i = C_T X_i \vec{V}_i$

to determine the diffusion flux. Here $$C_T$$ is the total concentration of the mixture [kmol/m^3], $$D_{ij}$$ are the Stefa-Maxwell interaction parameters in [m^2/s], $$\vec{V}_{i}$$ is the diffusion velocity of species i, $$\mu_i$$ is the electrochemical potential of species i.

Note that for this method, there is no argument for the gradient of the electric potential (voltage). Electric potential gradients can be set with set_Grad_V() or method getSpeciesFluxesES() can be called.x

The diffusion velocity is relative to an average velocity that can be computed on a mole-weighted or mass-weighted basis, or the diffusion velocities may be specified as relative to a specific species (i.e. a solvent) all according to the

<velocityBasis>

input parameter.

Parameters
 ndim The number of spatial dimensions (1, 2, or 3). grad_T The temperature gradient (ignored in this model). (length = ndim) ldx Leading dimension of the grad_X array. (usually equal to m_nsp but not always) grad_X Gradients of the mole fraction Flat vector with the m_nsp in the inner loop. length = ldx * ndim ldf Leading dimension of the fluxes array (usually equal to m_nsp but not always) fluxes Output of the diffusive mass fluxes Flat vector with the m_nsp in the inner loop. length = ldx * ndim

Reimplemented from Transport.

Definition at line 1099 of file LiquidTransport.cpp.

 void getSpeciesFluxesES ( size_t ndim, const doublereal * grad_T, int ldx, const doublereal * grad_X, int ldf, const doublereal * grad_Phi, doublereal * fluxes )
virtual

Return the species diffusive mass fluxes wrt to the averaged velocity in [kmol/m^2/s].

The diffusive mass flux of species k is computed using the Stefan-Maxwell equation

$X_i \nabla \mu_i = RT \sum_i \frac{X_i X_j}{D_{ij}} ( \vec{V}_j - \vec{V}_i )$

to determine the diffusion velocity and

$\vec{N}_i = C_T X_i \vec{V}_i$

to determine the diffusion flux. Here $$C_T$$ is the total concentration of the mixture [kmol/m^3], $$D_{ij}$$ are the Stefa-Maxwell interaction parameters in [m^2/s], $$\vec{V}_{i}$$ is the diffusion velocity of species i, $$\mu_i$$ is the electrochemical potential of species i.

The diffusion velocity is relative to an average velocity that can be computed on a mole-weighted or mass-weighted basis, or the diffusion velocities may be specified as relative to a specific species (i.e. a solvent) all according to the

<velocityBasis>
* 

input parameter.

Parameters
 ndim The number of spatial dimensions (1, 2, or 3). grad_T The temperature gradient (ignored in this model). (length = ndim) ldx Leading dimension of the grad_X array. (usually equal to m_nsp but not always) grad_X Gradients of the mole fraction Flat vector with the m_nsp in the inner loop. length = ldx * ndim ldf Leading dimension of the fluxes array (usually equal to m_nsp but not always) grad_Phi Gradients of the electrostatic potential length = ndim fluxes Output of the diffusive mass fluxes Flat vector with the m_nsp in the inner loop. length = ldx * ndim

Definition at line 1153 of file LiquidTransport.cpp.

 void getSpeciesVdiffExt ( size_t ldf, doublereal * Vdiff )
virtual

Return the species diffusive velocities relative to the averaged velocity.

This method acts similarly to getSpeciesVdiffES() but requires all gradients to be preset using methods set_Grad_X(), set_Grad_V(), set_Grad_T(). See the documentation of getSpeciesVdiffES() for details.

Parameters
 ldf Leading dimension of the Vdiff array. Vdiff Output of the diffusive velocities. Flat vector with the m_nsp in the inner loop. length = ldx * ndim

Definition at line 1180 of file LiquidTransport.cpp.

Referenced by LiquidTransport::getSpeciesVdiff(), and LiquidTransport::getSpeciesVdiffES().

 void getSpeciesFluxesExt ( size_t ldf, doublereal * fluxes )
virtual

Return the species diffusive fluxes relative to the averaged velocity.

This method acts similarly to getSpeciesFluxesES() but requires all gradients to be preset using methods set_Grad_X(), set_Grad_V(), set_Grad_T(). See the documentation of getSpeciesFluxesES() for details.

units = kg/m2/s

Parameters
 ldf Leading dimension of the Vdiff array. fluxes Output of the diffusive fluxes. Flat vector with the m_nsp in the inner loop. length = ldx * ndim

Definition at line 1206 of file LiquidTransport.cpp.

 bool update_T ( void )
protectedvirtual

Returns true if temperature has changed, in which case flags are set to recompute transport properties.

This is called whenever a transport property is requested. The first task is to check whether the temperature has changed since the last call to update_T(). If it hasn't then an immediate return is carried out.

Note this should be a lightweight function since it's part of all of the interfaces.

Returns
Returns true if the temperature has changed, and false otherwise

Definition at line 1279 of file LiquidTransport.cpp.

 bool update_C ( )
protectedvirtual

Returns true if mixture composition has changed, in which case flags are set to recompute transport properties.

This is called for every interface call to check whether the concentrations have changed. Concentrations change whenever the pressure or the mole fraction has changed. If it has changed, the recalculations should be done.

Note this should be a lightweight function since it's part of all of the interfaces.

Returns
Returns true if the mixture composition has changed, and false otherwise.

Definition at line 1336 of file LiquidTransport.cpp.

protectedvirtual

Updates the internal value of the gradient of the logarithm of the activity, which is used in the gradient of the chemical potential.

Evaluate the gradients of the activity as they alter the diffusion coefficient.

The gradient of the chemical potential can be written in terms of gradient of the logarithm of the mole fraction times a correction associated with the gradient of the activity coefficient relative to that of the mole fraction. Specifically, the gradients of the logarithms of each are involved according to the formula

$\nabla \mu_k = RT \left[ \nabla ( \ln X_k ) + \nabla ( \ln \gamma_k ) \right] = RT \left[ \nabla ( \ln a_k ) \right]$

The gradient in the activity coefficient requires the use of thermophase getdlnActCoeff that calculates its change based on a chane in the state (i.e. temperature and composition of each species) which was first implemented in MargulesVPSSTP.cpp (LiquidTransport.h doxygen)

Definition at line 1534 of file LiquidTransport.cpp.

Referenced by LiquidTransport::stefan_maxwell_solve().

 void stefan_maxwell_solve ( )
protected

Solve the stefan_maxell equations for the diffusive fluxes.

The diffusive mass flux of species k is computed using the Stefan-Maxwell equation

$X_i \nabla \mu_i = RT \sum_i \frac{X_i X_j}{D_{ij}} ( \vec{V}_j - \vec{V}_i )$

to determine the diffusion velocity and

$\vec{N}_i = C_T X_i \vec{V}_i$

to determine the diffusion flux. Here $$C_T$$ is the total concentration of the mixture [kmol/m^3], $$D_{ij}$$ are the Stefa-Maxwell interaction parameters in [m^2/s], $$\vec{V}_{i}$$ is the diffusion velocity of species i, $$\mu_i$$ is the electrochemical potential of species i.

The diffusion velocity is relative to an average velocity that can be computed on a mole-weighted or mass-weighted basis, or the diffusion velocities may be specified as relative to a specific species (i.e. a solvent) all according to the

<velocityBasis>
* 

input para The gradient in the activity coefficient requires the use of thermophase getdlnActCoeff that calculates its change based on a change in the state i.e. temperature and composition of each species. First implemented in MargulesVPSSTP.cppmeter.

One of the Stefan Maxwell equations is replaced by the appropriate definition of the mass-averaged velocity, the mole-averaged velocity or the specification that velocities are relative to that of one species.

Definition at line 1596 of file LiquidTransport.cpp.

 void updateViscosity_T ( )
protected

Updates the array of pure species viscosities internally.

The flag m_visc_ok is set to true.

Note that for viscosity, a positive activation energy corresponds to the typical case of a positive argument to the exponential so that the Arrhenius expression is

$\mu = A T^n \exp( + E / R T )$

Definition at line 1439 of file LiquidTransport.cpp.

Referenced by LiquidTransport::getSpeciesViscosities().

 void updateIonConductivity_T ( )
protected

Update the temperature-dependent ionic conductivity terms for each species internally.

The flag m_ionCond_temp_ok is set to true.

Definition at line 1461 of file LiquidTransport.cpp.

Referenced by LiquidTransport::getSpeciesIonConductivity().

 void updateMobilityRatio_T ( )
protected

Updates the array of pure species mobility ratios internally.

The flag m_mobRat_ok is set to true.

Definition at line 1482 of file LiquidTransport.cpp.

Referenced by LiquidTransport::getSpeciesMobilityRatio().

protected

Updates the array of pure species self diffusion coeffs internally.

The flag m_selfDiff_ok is set to true.

Definition at line 1506 of file LiquidTransport.cpp.

Referenced by LiquidTransport::getSpeciesSelfDiffusion().

protected

Update the temperature-dependent hydrodynamic radius terms for each species internally.

The flag m_radi_temp_ok is set to true.

Definition at line 1525 of file LiquidTransport.cpp.

 void updateCond_T ( )
protected

Update the temperature-dependent parts of the mixture-averaged thermal conductivity internally.

Update the temperature-dependent parts of the species thermal conductivity internally using calls to the appropriate LTPspecies subclass.

Definition at line 1399 of file LiquidTransport.cpp.

 void updateViscosities_C ( )
protected

Update the concentration parts of the viscosities.

Internal routine is run whenever the update_boolean m_visc_conc_ok is false. Currently there is no concentration dependence for the pure species viscosities.

Definition at line 1420 of file LiquidTransport.cpp.

References LiquidTransport::m_visc_conc_ok.

 void updateIonConductivity_C ( )
protected

Update the concentration parts of the ionic conductivity.

Internal routine is run whenever the update_boolean m_ionCond_conc_ok is false. Currently there is no concentration dependence for the pure species ionic conductivity.

Definition at line 1450 of file LiquidTransport.cpp.

References LiquidTransport::m_ionCond_conc_ok.

 void updateMobilityRatio_C ( )
protected

Update the concentration parts of the mobility ratio.

Internal routine is run whenever the update_boolean m_mobRat_conc_ok is false. Currently there is no concentration dependence for the pure species mobility ratio.

Definition at line 1472 of file LiquidTransport.cpp.

References LiquidTransport::m_mobRat_conc_ok.

protected

Update the concentration parts of the self diffusion.

Internal routine is run whenever the update_boolean m_selfDiff_conc_ok is false. Currently there is no concentration dependence for the pure species self diffusion.

Definition at line 1495 of file LiquidTransport.cpp.

References LiquidTransport::m_selfDiff_conc_ok.

protected

Update the concentration dependence of the hydrodynamic radius.

Internal routine is run whenever the update_boolean m_radi_conc_ok is false. Currently there is no concentration dependence for the hydrodynamic radius.

Definition at line 1517 of file LiquidTransport.cpp.

 void updateDiff_T ( )
protected

Update the binary Stefan-Maxwell diffusion coefficients wrt T using calls to the appropriate LTPspecies subclass.

Definition at line 1411 of file LiquidTransport.cpp.

 doublereal err ( std::string msg ) const
private

Throw an exception if this method is invoked.

This probably indicates something is not yet implemented.

Parameters
 msg Indicates the member function which is not implemented

Definition at line 1844 of file LiquidTransport.cpp.

References Cantera::int2str(), and LiquidTransport::model().

 thermo_t& thermo ( )
inlineinherited

Phase object.

Every transport manager is designed to compute properties for a specific phase of a mixture, which might be a liquid solution, a gas mixture, a surface, etc. This method returns a reference to the object representing the phase itself.

Definition at line 239 of file TransportBase.h.

References Transport::m_thermo.

Referenced by Transport::setThermo().

inherited

Returns true if the transport manager is ready for use.

Definition at line 75 of file TransportBase.cpp.

Referenced by Transport::finalize(), and Transport::setThermo().

 void setNDim ( const int ndim )
inherited

Set the number of dimensions to be expected in flux expressions.

Internal memory will be set with this value.

Parameters
 ndim Number of dimensions in flux expressions

Definition at line 83 of file TransportBase.cpp.

References Transport::m_nDim.

 size_t nDim ( ) const
inlineinherited

Return the number of dimensions in flux expressions.

Returns
Returns the number of dimensions

Definition at line 261 of file TransportBase.h.

References Transport::m_nDim.

 void checkSpeciesIndex ( size_t k ) const
inherited

Check that the specified species index is in range Throws an exception if k is greater than nSpecies()

Definition at line 88 of file TransportBase.cpp.

References Transport::m_nsp.

 void checkSpeciesArraySize ( size_t kk ) const
inherited

Check that an array size is at least nSpecies() Throws an exception if kk is less than nSpecies().

Used before calls which take an array pointer.

Definition at line 95 of file TransportBase.cpp.

References Transport::m_nsp.

 virtual doublereal bulkViscosity ( )
inlinevirtualinherited

The bulk viscosity in Pa-s.

The bulk viscosity is only non-zero in rare cases. Most transport managers either overload this method to return zero, or do not implement it, in which case an exception is thrown if called.

Reimplemented in WaterTransport, and FtnTransport.

Definition at line 303 of file TransportBase.h.

References Transport::err().

 virtual doublereal electricalConductivity ( )
inlinevirtualinherited

The electrical conductivity (Siemens/m).

Reimplemented in SolidTransport, and FtnTransport.

Definition at line 413 of file TransportBase.h.

References Transport::err().

 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 )
inlinevirtualinherited

Get the species diffusive mass fluxes wrt to the mass averaged velocity, given the gradients in mole fraction, temperature and electrostatic potential.

Units for the returned fluxes are kg m-2 s-1.

Parameters
 ndim Number of dimensions in the flux expressions grad_T Gradient of the temperature (length = ndim) ldx Leading dimension of the grad_X array (usually equal to m_nsp but not always) grad_X Gradients of the mole fraction Flat vector with the m_nsp in the inner loop. length = ldx * ndim ldf Leading dimension of the fluxes array (usually equal to m_nsp but not always) grad_Phi Gradients of the electrostatic potential (length = ndim) fluxes Output of the diffusive mass fluxes Flat vector with the m_nsp in the inner loop. length = ldx * ndim

Definition at line 560 of file TransportBase.h.

References Transport::getSpeciesFluxes().

 virtual void getMolarFluxes ( const doublereal *const state1, const doublereal *const state2, const doublereal delta, doublereal *const cfluxes )
inlinevirtualinherited

Get the molar fluxes [kmol/m^2/s], given the thermodynamic state at two nearby points.

Parameters
 state1 Array of temperature, density, and mass fractions for state 1. state2 Array of temperature, density, and mass fractions for state 2. delta Distance from state 1 to state 2 (m). cfluxes Output array containing the diffusive molar fluxes of species from state1 to state2. This is a flat vector with the m_nsp in the inner loop. length = ldx * ndim. Units are [kmol/m^2/s].

Reimplemented in MultiTransport, and DustyGasTransport.

Definition at line 650 of file TransportBase.h.

References Transport::err().

 virtual void getMassFluxes ( const doublereal * state1, const doublereal * state2, doublereal delta, doublereal * mfluxes )
inlinevirtualinherited

Get the mass fluxes [kg/m^2/s], given the thermodynamic state at two nearby points.

Parameters
 state1 Array of temperature, density, and mass fractions for state 1. state2 Array of temperature, density, and mass fractions for state 2. delta Distance from state 1 to state 2 (m). mfluxes Output array containing the diffusive mass fluxes of species from state1 to state2. This is a flat vector with the m_nsp in the inner loop. length = ldx * ndim. Units are [kg/m^2/s].

Reimplemented in MultiTransport.

Definition at line 671 of file TransportBase.h.

References Transport::err().

 virtual void getMultiDiffCoeffs ( const size_t ld, doublereal *const d )
inlinevirtualinherited

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.

Parameters
 ld The dimension of the inner loop of d (usually equal to m_nsp) 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 in DustyGasTransport, and MultiTransport.

Definition at line 721 of file TransportBase.h.

References Transport::err().

Referenced by StFlow::updateTransport().

 virtual void getMixDiffCoeffsMole ( doublereal *const d )
inlinevirtualinherited

Returns a vector of mixture averaged diffusion coefficients.

Reimplemented in GasTransport.

Definition at line 744 of file TransportBase.h.

References Transport::err().

 virtual void getMixDiffCoeffsMass ( doublereal *const d )
inlinevirtualinherited

Returns a vector of mixture averaged diffusion coefficients.

Reimplemented in GasTransport.

Definition at line 749 of file TransportBase.h.

References Transport::err().

 void setParameters ( const int type, const int k, const doublereal *const p )
virtualinherited

Set model parameters for derived classes.

This method may be derived in subclasses to set model-specific parameters. The primary use of this class is to set parameters while in the middle of a calculation without actually having to dynamically cast the base Transport pointer.

Parameters
 type Specifies the type of parameters to set 0 : Diffusion coefficient 1 : Thermal Conductivity The rest are currently unused. k Species index to set the parameters on p Vector of parameters. The length of the vector varies with the parameterization

Reimplemented in DustyGasTransport, and SolidTransport.

Definition at line 105 of file TransportBase.cpp.

References Transport::err().

 void setVelocityBasis ( VelocityBasis ivb )
inlineinherited

Sets the velocity basis.

What the transport object does with this parameter is up to the individual operator. Currently, this is not functional for most transport operators including all of the gas-phase operators.

Parameters
 ivb Species the velocity basis

Definition at line 777 of file TransportBase.h.

References Transport::m_velocityBasis.

 VelocityBasis getVelocityBasis ( ) const
inlineinherited

Gets the velocity basis.

What the transport object does with this parameter is up to the individual operator. Currently, this is not functional for most transport operators including all of the gas-phase operators.

Returns
Returns the velocity basis

Definition at line 789 of file TransportBase.h.

References Transport::m_velocityBasis.

 virtual bool initGas ( GasTransportParams & tr )
inlineprotectedvirtualinherited

Called by TransportFactory to set parameters.

Called by TransportFactory to set parameters.

This is called by classes that use the gas phase parameter list to initialize themselves.

Parameters
 tr Reference to the parameter list that will be used to initialize the class

Reimplemented in MixTransport, MultiTransport, and GasTransport.

Definition at line 819 of file TransportBase.h.

References Transport::err().

Referenced by TransportFactory::initTransport().

 void setThermo ( thermo_t & thermo )
protectedinherited

Specifies the ThermPhase object.

Parameters
 thermo Reference to the ThermoPhase object that the transport object will use

Definition at line 112 of file TransportBase.cpp.

Referenced by TransportFactory::newTransport().

 void finalize ( )
protectedinherited

Enable the transport object for use.

Once finalize() has been called, the transport manager should be ready to compute any supported transport property, and no further modifications to the model parameters should be made.

Definition at line 136 of file TransportBase.cpp.

## Member Data Documentation

 size_t m_nsp2
private

Number of species squared.

Definition at line 879 of file LiquidTransport.h.

 doublereal m_tmin
private

Minimum temperature applicable to the transport property eval.

Definition at line 882 of file LiquidTransport.h.

Referenced by LiquidTransport::initLiquid(), and LiquidTransport::operator=().

 doublereal m_tmax
private

Maximum temperature applicable to the transport property evaluator.

Definition at line 885 of file LiquidTransport.h.

Referenced by LiquidTransport::initLiquid(), and LiquidTransport::operator=().

 vector_fp m_mw
private

Local copy of the molecular weights of the species.

Length is equal to the number of species in the phase

Definition at line 891 of file LiquidTransport.h.

 std::vector m_viscTempDep_Ns
private

Viscosity for each species expressed as an appropriate subclass of LTPspecies.

These subclasses of LTPspecies evaluate the species-specific transport properties according to the parameters parsed in TransportFactory::getLiquidSpeciesTransportData().

Definition at line 900 of file LiquidTransport.h.

 LiquidTranInteraction* m_viscMixModel
private

Viscosity of the mixture expressed as a subclass of LiquidTranInteraction.

These subclasses of LiquidTranInteraction evaluate the mixture transport properties according to the parameters parsed in TransportFactory::getLiquidInteractionsTransportData().

Definition at line 909 of file LiquidTransport.h.

 std::vector m_ionCondTempDep_Ns
private

Ionic conductivity for each species expressed as an appropriate subclass of LTPspecies.

These subclasses of LTPspecies evaluate the species-specific transport properties according to the parameters parsed in TransportFactory::getLiquidSpeciesTransportData().

Definition at line 918 of file LiquidTransport.h.

 LiquidTranInteraction* m_ionCondMixModel
private

Ionic Conductivity of the mixture expressed as a subclass of LiquidTranInteraction.

These subclasses of LiquidTranInteraction evaluate the mixture transport properties according to the parameters parsed in TransportFactory::getLiquidInteractionsTransportData().

Definition at line 927 of file LiquidTransport.h.

 std::vector m_mobRatTempDep_Ns
private

Mobility ratio for the binary cominations of each species in each pure phase expressed as an appropriate subclass of LTPspecies.

These subclasses of LTPspecies evaluate the species-specific transport properties according to the parameters parsed in TransportFactory::getLiquidSpeciesTransportData().

Definition at line 939 of file LiquidTransport.h.

 std::vector m_mobRatMixModel
private

Mobility ratio for each binary combination of mobile species in the mixture expressed as a subclass of LiquidTranInteraction.

These subclasses of LiquidTranInteraction evaluate the mixture transport properties according to the parameters parsed in TransportFactory::getLiquidInteractionsTransportData().

Definition at line 948 of file LiquidTransport.h.

 std::vector m_selfDiffTempDep_Ns
private

Self Diffusion for each species in each pure species phase expressed as an appropriate subclass of LTPspecies.

These subclasses of LTPspecies evaluate the species-specific transport properties according to the parameters parsed in TransportFactory::getLiquidSpeciesTransportData().

Definition at line 957 of file LiquidTransport.h.

 std::vector m_selfDiffMixModel
private

Self Diffusion for each species in the mixture expressed as a subclass of LiquidTranInteraction.

These subclasses of LiquidTranInteraction evaluate the mixture transport properties according to the parameters parsed in TransportFactory::getLiquidInteractionsTransportData().

Definition at line 966 of file LiquidTransport.h.

 std::vector m_lambdaTempDep_Ns
private

Thermal conductivity for each species expressed as an appropriate subclass of LTPspecies.

These subclasses of LTPspecies evaluate the species-specific transport properties according to the parameters parsed in TransportFactory::getLiquidSpeciesTransportData().

Definition at line 975 of file LiquidTransport.h.

 LiquidTranInteraction* m_lambdaMixModel
private

Thermal conductivity of the mixture expressed as a subclass of LiquidTranInteraction.

These subclasses of LiquidTranInteraction evaluate the mixture transport properties according to the parameters parsed in TransportFactory::getLiquidInteractionsTransportData().

Definition at line 984 of file LiquidTransport.h.

 std::vector m_diffTempDep_Ns
private

(NOT USED IN LiquidTransport.) Diffusion coefficient model for each species expressed as an appropriate subclass of LTPspecies

These subclasses of LTPspecies evaluate the species-specific transport properties according to the parameters parsed in TransportFactory::getLiquidSpeciesTransportData().

Since the LiquidTransport class uses the Stefan-Maxwell equation to describe species diffusivity, the species-specific diffusivity is irrelevant.

Definition at line 998 of file LiquidTransport.h.

 LiquidTranInteraction* m_diffMixModel
private

Species diffusivity of the mixture expressed as a subclass of LiquidTranInteraction.

This will return an array of Stefan-Maxwell interaction parameters for use in the Stefan-Maxwell solution.

These subclasses of LiquidTranInteraction evaluate the mixture transport properties according to the parameters parsed in TransportFactory::getLiquidInteractionsTransportData().

Definition at line 1009 of file LiquidTransport.h.

 DenseMatrix m_diff_Dij
private

Setfan-Maxwell diffusion coefficients.

Definition at line 1012 of file LiquidTransport.h.

private

Hydrodynamic radius for each species expressed as an appropriate subclass of LTPspecies.

These subclasses of LTPspecies evaluate the species-specific transport properties according to the parameters parsed in TransportFactory::getLiquidSpeciesTransportData(). length = nsp

Definition at line 1022 of file LiquidTransport.h.

private

(Not used in LiquidTransport) Hydrodynamic radius of the mixture expressed as a subclass of LiquidTranInteraction

These subclasses of LiquidTranInteraction evaluate the mixture transport properties according to the parameters parsed in TransportFactory::getLiquidInteractionsTransportData().

Definition at line 1032 of file LiquidTransport.h.

private

Definition at line 1035 of file LiquidTransport.h.

private

Internal value of the gradient of the mole fraction vector

Note, this is the only gradient value that can and perhaps should reflect the true state of the mole fractions in the application solution vector. In other words no cropping or massaging of the values to make sure they are above zero should occur. - developing ....

m_nsp is the number of species in the fluid k is the species index n is the dimensional index (x, y, or z). It has a length equal to m_nDim

Definition at line 1055 of file LiquidTransport.h.

private

Gradient of the logarithm of the activity.

This quantity appears in the gradient of the chemical potential. It replaces the gradient of the mole fraction, and in this way serves to "modify" the diffusion coefficient.

$m\_Grad\_lnAC[k] = \nabla ( \ln X_k ) + \nabla ( \ln \gamma_k )$

k is the species index n is the dimensional index (x, y, or z). It has a length equal to m_nDim

Definition at line 1075 of file LiquidTransport.h.

private

Internal value of the gradient of the Temperature vector.

Generally, if a transport property needs this in its evaluation it will look to this place to get it.

No internal property is precalculated based on gradients. Gradients are assumed to be freshly updated before every property call.

Definition at line 1087 of file LiquidTransport.h.

private

Internal value of the gradient of the Pressure vector.

Generally, if a transport property needs this in its evaluation it will look to this place to get it.

No internal property is precalculated based on gradients. Gradients are assumed to be freshly updated before every property call.

Definition at line 1099 of file LiquidTransport.h.

private

Internal value of the gradient of the Electric Voltage.

Generally, if a transport property needs this in its evaluation it will look to this place to get it.

No internal property is precalculated based on gradients. Gradients are assumed to be freshly updated before every property call.

Definition at line 1111 of file LiquidTransport.h.

private

m_nsp is the number of species in the fluid k is the species index n is the dimensional index (x, y, or z)

$m\_Grad\_mu[n*m_nsp + k]$

Definition at line 1123 of file LiquidTransport.h.

 DenseMatrix m_bdiff
private

Array of Binary Diffusivities.

These are evaluated according to the subclass of LiquidTranInteraction stored in m_diffMixModel.

This has a size equal to nsp x nsp It is a symmetric matrix. D_ii is the self diffusion coefficient. D_ii is not needed except for when there is one species in the mixture.

units m2/sec

Definition at line 1139 of file LiquidTransport.h.

 vector_fp m_viscSpecies
private

Internal value of the species viscosities.

Viscosity of the species evaluated using subclass of LTPspecies held in m_viscTempDep_Ns.

Length = number of species

controlling update boolean -> m_visc_temp_ok

Definition at line 1150 of file LiquidTransport.h.

 vector_fp m_ionCondSpecies
private

Internal value of the species ionic conductivities.

Ionic conductivity of the species evaluated using subclass of LTPspecies held in m_ionCondTempDep_Ns.

Length = number of species

controlling update boolean -> m_ionCond_temp_ok

Definition at line 1161 of file LiquidTransport.h.

 DenseMatrix m_mobRatSpecies
private

Internal value of the species mobility ratios.

Mobility ratio of the species evaluated using subclass of LTPspecies held in m_mobRatTempDep_Ns.

Length = number of species

controlling update boolean -> m_mobRat_temp_ok

Definition at line 1172 of file LiquidTransport.h.

 DenseMatrix m_selfDiffSpecies
private

Internal value of the species self diffusion coefficients.

Self diffusion of the species evaluated using subclass of LTPspecies held in m_selfDiffTempDep_Ns.

Length = number of species

controlling update boolean -> m_selfDiff_temp_ok

Definition at line 1183 of file LiquidTransport.h.

 vector_fp m_lambdaSpecies
private

Internal value of the species individual thermal conductivities.

Thermal conductivities of the species evaluated using subclass of LTPspecies held in m_lambdaTempDep_Ns.

Length = number of species

Definition at line 1193 of file LiquidTransport.h.

 int m_iStateMF
private

State of the mole fraction vector.

Definition at line 1196 of file LiquidTransport.h.

Referenced by LiquidTransport::operator=(), and LiquidTransport::update_C().

 vector_fp m_massfracs
private

Local copy of the mass fractions of the species in the phase.

The mass fraction vector comes from the ThermoPhase object.

length = m_nsp

Definition at line 1204 of file LiquidTransport.h.

 vector_fp m_massfracs_tran
private

Local copy of the mass fractions of the species in the phase.

This version of the mass fraction vector is adjusted to a minimum lower bound of MIN_X for use in transport calculations.

Definition at line 1211 of file LiquidTransport.h.

 vector_fp m_molefracs
private

Local copy of the mole fractions of the species in the phase.

The mole fractions here are assumed to be bounded by 0.0 and 1.0 and they are assumed to add up to one exactly. This mole fraction vector comes from the ThermoPhase object. Derivative quantities from this are referred to as bounded.

Update info? length = m_nsp

Definition at line 1223 of file LiquidTransport.h.

 vector_fp m_molefracs_tran
private

Non-zero mole fraction vector used in transport property calculations.

The mole fractions here are assumed to be bounded by MIN_X and 1.0 and they may not be assumed to add up to one. This mole fraction vector is created from the ThermoPhase object. Derivative quantities of this use the _tran suffix.

Update info? length = m_nsp

Definition at line 1235 of file LiquidTransport.h.

 vector_fp m_concentrations
private

Local copy of the concentrations of the species in the phase.

The concentrations are consistent with the m_molefracs vector which is bounded and sums to one.

Update info? length = m_nsp

Definition at line 1245 of file LiquidTransport.h.

 doublereal concTot_
private

Local copy of the total concentration.

This is consistent with the m_concentrations[] and m_molefracs[] vector.

Definition at line 1252 of file LiquidTransport.h.

Referenced by LiquidTransport::stefan_maxwell_solve(), and LiquidTransport::update_C().

 doublereal concTot_tran_
private

Local copy of the total concentration.

This is consistent with the x_molefracs_tran vector and with the concTot_ number;

Definition at line 1259 of file LiquidTransport.h.

Referenced by LiquidTransport::update_C().

 doublereal meanMolecularWeight_
private

Mean molecular mass.

Definition at line 1262 of file LiquidTransport.h.

Referenced by LiquidTransport::update_C().

 doublereal dens_
private

Density.

Definition at line 1265 of file LiquidTransport.h.

Referenced by LiquidTransport::update_C().

 vector_fp m_chargeSpecies
private

Local copy of the charge of each species.

Contains the charge of each species (length m_nsp)

Definition at line 1271 of file LiquidTransport.h.

 vector_fp m_volume_spec
private

Specific volume for each species. Local copy from thermo object.

Definition at line 1274 of file LiquidTransport.h.

Referenced by LiquidTransport::initLiquid().

 vector_fp m_actCoeff
private

Vector of activity coefficients.

Definition at line 1277 of file LiquidTransport.h.

 DenseMatrix m_B
private

RHS to the stefan-maxwell equation.

Definition at line 1280 of file LiquidTransport.h.

Referenced by LiquidTransport::operator=(), and LiquidTransport::stefan_maxwell_solve().

 DenseMatrix m_A
private

Matrix for the stefan maxwell equation.

Definition at line 1283 of file LiquidTransport.h.

Referenced by LiquidTransport::operator=(), and LiquidTransport::stefan_maxwell_solve().

 doublereal m_temp
private

Current Temperature -> locally stored.

This is used to test whether new temperature computations should be performed.

Definition at line 1290 of file LiquidTransport.h.

 doublereal m_press
private

Current value of the pressure.

Definition at line 1293 of file LiquidTransport.h.

Referenced by LiquidTransport::operator=(), and LiquidTransport::update_C().

 Array2D m_flux
private

Solution of the Stefan Maxwell equation in terms of flux.

This is the mass flux of species k in units of kg m-3 s-1.

Definition at line 1300 of file LiquidTransport.h.

 Array2D m_Vdiff
private

Solution of the Stefan Maxwell equation.

This is the diffusion velocity of species k in units of m/s and relative to the mole-averaged velocity.

Definition at line 1307 of file LiquidTransport.h.

 doublereal m_lambda
private

Saved value of the mixture thermal conductivity.

Definition at line 1310 of file LiquidTransport.h.

Referenced by LiquidTransport::operator=(), and LiquidTransport::thermalConductivity().

 doublereal m_viscmix
private

Saved value of the mixture viscosity.

Definition at line 1313 of file LiquidTransport.h.

Referenced by LiquidTransport::operator=(), and LiquidTransport::viscosity().

 doublereal m_ionCondmix
private

Saved value of the mixture ionic conductivity.

Definition at line 1316 of file LiquidTransport.h.

Referenced by LiquidTransport::ionConductivity(), and LiquidTransport::operator=().

 vector_fp m_mobRatMix
private

Saved values of the mixture mobility ratios.

Definition at line 1319 of file LiquidTransport.h.

 vector_fp m_selfDiffMix
private

Saved values of the mixture self diffusion coefficients.

Definition at line 1322 of file LiquidTransport.h.

 vector_fp m_spwork
private

work space

Length is equal to m_nsp

Definition at line 1328 of file LiquidTransport.h.

 bool m_visc_mix_ok
private

Boolean indicating that the top-level mixture viscosity is current.

This is turned false for every change in T, P, or C.

Definition at line 1337 of file LiquidTransport.h.

 bool m_visc_temp_ok
private

Boolean indicating that weight factors wrt viscosity is current.

Definition at line 1340 of file LiquidTransport.h.

 bool m_visc_conc_ok
private

Flag to indicate that the pure species viscosities are current wrt the concentration.

Definition at line 1344 of file LiquidTransport.h.

 bool m_ionCond_mix_ok
private

Boolean indicating that the top-level mixture ionic conductivity is current.

This is turned false for every change in T, P, or C.

Definition at line 1350 of file LiquidTransport.h.

 bool m_ionCond_temp_ok
private

Boolean indicating that weight factors wrt ionic conductivty is current.

Definition at line 1353 of file LiquidTransport.h.

 bool m_ionCond_conc_ok
private

Flag to indicate that the pure species ionic conductivities are current wrt the concentration.

Definition at line 1357 of file LiquidTransport.h.

 bool m_cond_mix_ok
private

Flag to indicate that the mixture conductivity is current.

Definition at line 1360 of file LiquidTransport.h.

Referenced by LiquidTransport::thermalConductivity().

 bool m_mobRat_mix_ok
private

Boolean indicating that the top-level mixture mobility ratio is current.

This is turned false for every change in T, P, or C.

Definition at line 1366 of file LiquidTransport.h.

 bool m_mobRat_temp_ok
private

Boolean indicating that weight factors wrt mobility ratio is current.

Definition at line 1369 of file LiquidTransport.h.

 bool m_mobRat_conc_ok
private

Flag to indicate that the pure species mobility ratios are current wrt the concentration.

Definition at line 1373 of file LiquidTransport.h.

 bool m_selfDiff_mix_ok
private

Boolean indicating that the top-level mixture self diffusion is current.

This is turned false for every change in T, P, or C.

Definition at line 1379 of file LiquidTransport.h.

 bool m_selfDiff_temp_ok
private

Boolean indicating that weight factors wrt self diffusion is current.

Definition at line 1382 of file LiquidTransport.h.

 bool m_selfDiff_conc_ok
private

Flag to indicate that the pure species self diffusion are current wrt the concentration.

Definition at line 1386 of file LiquidTransport.h.

private

Boolean indicating that mixture diffusion coeffs are current.

Definition at line 1389 of file LiquidTransport.h.

private

Boolean indicating that temperature dependence of hydrodynamic radius is current.

Definition at line 1393 of file LiquidTransport.h.

private

Flag to indicate that the hydrodynamic radius is current is current wrt the concentration.

Definition at line 1397 of file LiquidTransport.h.

 bool m_diff_mix_ok
private

Boolean indicating that mixture diffusion coeffs are current.

Definition at line 1400 of file LiquidTransport.h.

 bool m_diff_temp_ok
private

Boolean indicating that binary diffusion coeffs are current.

Definition at line 1403 of file LiquidTransport.h.

 bool m_lambda_temp_ok
private

Flag to indicate that the pure species conductivities are current wrt the temperature.

Definition at line 1407 of file LiquidTransport.h.

 bool m_lambda_mix_ok
private

Boolean indicating that mixture conductivity is current.

Definition at line 1410 of file LiquidTransport.h.

 int m_mode
private

Mode indicator for transport models – currently unused.

Definition at line 1413 of file LiquidTransport.h.

Referenced by LiquidTransport::initLiquid(), and LiquidTransport::operator=().

 bool m_debug
private

Debugging flags.

Turn on to get debugging information

Definition at line 1419 of file LiquidTransport.h.

Referenced by LiquidTransport::operator=().

 size_t m_nDim
private

Number of dimensions.

Either 1, 2, or 3

Definition at line 1425 of file LiquidTransport.h.

protectedinherited

true if finalize has been called

Definition at line 860 of file TransportBase.h.

Referenced by Transport::finalize(), Transport::operator=(), Transport::ready(), and Transport::Transport().

 int m_velocityBasis
protectedinherited

Velocity basis from which diffusion velocities are computed.

Defaults to the mass averaged basis = -2

Definition at line 870 of file TransportBase.h.

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