pyPRISM.calculate.spinodal_condition module

pyPRISM.calculate.spinodal_condition.spinodal_condition(PRISM, extrapolate=True)[source]

Calculate the spinodal condition between pairs of components

Parameters:
  • PRISM (pyPRISM.core.PRISM) – A solved PRISM object.
  • extrapolate (bool, optional) – If True, only return the value extrapolated to \(k=0\) rather than reporting the value at the lowest-k. Defaults to True.
Returns:

lambda – The full MatrixArray of structure factors

Return type:

pyPRISM.core.MatrixArray

Mathematical Definition

\[\begin{split}\hat{\Lambda}_{\alpha,\beta}(k) = 1 & -\rho^{site}_{\alpha,\alpha} \hat{C}_{\alpha,\alpha}(k) \hat{\omega}_{\alpha,\alpha}(k) \\ & -2\rho^{site}_{\alpha,\beta} \hat{C}_{\alpha,\beta}(k) \hat{\omega}_{\alpha,\beta}(k) \\ & -\rho^{site}_{\beta,\beta} \hat{C}_{\beta,\beta} \hat{\omega}_{\beta,\beta}(k) \\ & +\rho^{site}_{\alpha,\beta} \rho^{site}_{\alpha,\beta} \hat{C}_{\alpha,\beta}(k) \hat{C}_{\alpha,\beta}(k) \hat{\omega}_{\alpha,\beta}(k) \hat{\omega}_{\alpha,\beta}(k) \\ & -\rho^{site}_{\alpha,\beta} \rho^{site}_{\alpha,\beta} \hat{C}_{\alpha,\alpha}(k) \hat{C}_{\beta,\beta}(k) \hat{\omega}_{\alpha,\beta}(k) \hat{\omega}_{\alpha,\beta}(k) \\ & +\rho^{site}_{\alpha,\alpha} \rho^{site}_{\beta,\beta} \hat{C}_{\alpha,\alpha}(k) \hat{C}_{\beta,\beta}(k) \hat{\omega}_{\alpha,\alpha}(k) \hat{\omega}_{\beta,\beta}(k) \\ & -\rho^{site}_{\alpha,\alpha} \rho^{site}_{\beta,\beta} \hat{C}_{\alpha,\beta}(k) \hat{C}_{\alpha,\beta}(k) \hat{\omega}_{\alpha,\alpha}(k) \hat{\omega}_{\beta,\beta}(k) \\\end{split}\]

Variable Definitions

  • \(\hat{\omega}_{\alpha,\beta}(k)\)
    Intra-molecular correlation function between sites \(\alpha\) and \(\beta\) at a wavenumber \(k\)
  • \(\hat{c}_{\alpha,\beta}(k)\)
    Direct correlation function between sites \(\alpha\) and \(\beta\) at a wavenumber \(k\)
  • \(\rho^{site}_{\alpha,\beta}\)
    Sitewise density for sites \(\alpha\) and \(\beta\). See pyPRISM.core.Density for details.

Description

The spinodal condition (\(\hat{\Lambda}_{\alpha,\beta}(k)\)) can be used to identify liquid-liquid macrophase separation between site types \(\alpha\) and \(\beta\) when \(\hat{\Lambda}_{\alpha,\beta}(k\rightarrow 0)=0\)

Warning

Using standard atomic closures (e.g, PY, HNC, MSA), PRISM theory may not predict the correct scaling of spinodal temperatures for phase separating systems. While this issue is mitigated by using molecular closures,[3] these closures are not currently implemented in pyPRISM. For more information, this issue is referenced in the pyPRISM paper.[5]. We urge users to do their due diligence in understanding how well these closures and PRISM theory perform for their systems of interest.

Warning

Passing an unsolved PRISM object to this function will still produce output based on the default values of the attributes of the PRISM object.

References

  1. Schweizer, Curro, Integral equation theory of the structure and thermodynamics of polymer blends, J. Chem. Phys., 1989 91 (8) 5059 [link]

Example

import pyPRISM

sys = pyPRISM.System(['A','B'])

# ** populate system variables **

PRISM = sys.createPRISM()

PRISM.solve()

spin = pyPRISM.calculate.spinodal_conditon(PRISM)

spin_AB = spin['A','B']