pyPRISM.calculate.structure_factor module

pyPRISM.calculate.structure_factor.structure_factor(PRISM, normalize=True)[source]

Calculate the structure factor from a PRISM object

Parameters:
  • PRISM (pyPRISM.core.PRISM) – A solved PRISM object.
  • normalize (bool) – normalize the structure factor by the site density
Returns:

structureFactor – The full MatrixArray of structure factors

Return type:

pyPRISM.core.MatrixArray

Mathematical Definition

\[\hat{s}_{\alpha,\beta}(k) = \rho^{site}_{\alpha,\beta} \hat{\omega}_{\alpha,\beta}(k) + \rho^{pair}_{\alpha,\beta} \hat{h}_{\alpha,\beta}(k)\]
\[\hat{s}_{\alpha,\beta}^{norm}(k) = \hat{s}_{\alpha,\beta}(k) / \rho^{site}_{\alpha,\beta}\]

Variable Definitions

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

Description

The structure factor (\(\hat{s}_{\alpha,\beta}(k)\)) is a Fourier-space representation of the structural correlations between sites \(\alpha\) and \(\beta\). The \(\hat{s}_{\alpha,\beta}(k)\) can be related to the real-space pair correlation function through a Fourier transform. In the PRISM formalism, the \(\hat{s}_{\alpha,\beta}(k)\) can be calculated as the sum of the Fourier-space intra-molecular and total correlation functions, as shown above.

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. Chandler, D., Introduction to Modern Statistical Mechanics, Oxford U. Press, New York, 1987 [link]
  2. 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()

sk = pyPRISM.calculate.structure_factor(PRISM)

sk_BB = sk['B','B']