liquid_mixture_COSTALD(phase, T='pore.temperature', MWs='param.molecular_weight.*', Tcs='param.critical_temperature.*', Vcs='param.critical_volume.*', omegas='param.acentric_factor.*')[source]#

Computes the density of a liquid mixture using the COrrospoding STAtes Liquid Density (COSTALD) method.

  • phase (OpenPNM Phase object) – The phase object to which this model is associated (i.e. attached). This controls the length of the calculated array(s), and also provides access to other necessary properties.

  • T (str (dict key) or numeric) – Name of the dictionary key on phase containing the ndarray of temperature values, in units of [K]. If a numerical value is passed (i.e. a scalar or ndarray) it gets used directly.

  • MWs (str (dict key) or dict of numeric values for each species) –

Tcs : str (dict key) or scalar

Vcs : str (dict key) or scalar

omegas : str (dict key) or scalar


density – The density of the liquid mixture in units of kg/m3. Note that chemicals.volume.COSTALD returns molar volume, so this function converts it to density using the mole fraction weighted molecular weight of the mixture: \(MW_{mix} = \Sigma x_i \cdot MW_i\).

Return type:



This is same approach used by chemicals.volume.COSTALD_mixture and exact numerical correspondance is confirmed. Unlike the chemicals version, this function is vectorized over the conditions rather than the compositions, since a typical simulation has millions of pores each representing an independent conditions, but a mixture typically only has a few components.