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
- 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']