pyPRISM.omega.GaussianRing module

class pyPRISM.omega.GaussianRing.GaussianRing(sigma, length)[source]

Bases: pyPRISM.omega.Omega.Omega

Gaussian ring polymer intra-molecular correlation function

Mathematical Definition

\[\hat{\omega}(k) = 1+2N^{-1}\sum_{t=1}^{N-1}(N-t)\exp(\frac{-k^2\sigma^2t(N-t)}{6N})\]

Variable Definitions

  • \(\hat{\omega}(k)\)
    intra-molecular correlation function at wavenumber \(k\)
  • \(N\)
    number of monomers/sites in gaussian ring
  • \(\sigma\)
    contact distance between sites (i.e. site diameter)

Description

The Gaussian ring is an ideal model for a cyclic chain that assumes a random walk between successive monomer segments along the chain, constrained such that ends join together to form a ring with no intra-molecular excluded volume.

References

Schweizer, K.S.; Curro, J.G.; Integral-Equation Theory of Polymer Melts - Intramolecular Structure, Local Order, and the Correlation Hole, Macromolecules, 1988, 21 (10), pp 3070, doi:10.1021/ma00188a027

Example

import pyPRISM
import numpy as np
import matplotlib.pyplot as plt

#calculate Fourier space domain and omega values
domain = pyPRISM.domain(dr=0.1,length=1000)
omega  = pyPRISM.omega.GaussianRing(sigma=1.0,length=100)
x = domain.k
y = omega.calculate(x)

#plot it!
plt.plot(x,y)
plt.gca().set_xscale("log", nonposx='clip')
plt.gca().set_yscale("log", nonposy='clip')

plt.show()

#Define a PRISM system and set omega(k) for type A
sys = pyPRISM.System(['A','B'],kT=1.0)
sys.domain = pyPRISM.Domain(dr=0.1,length=1024)
sys.omega['A','A']  = pyPRISM.omega.GaussianRing(sigma=1.0,length=100)
__init__(sigma, length)[source]

Constructor

Parameters:
  • sigma (float) – contact distance between sites (site diameter)
  • length (float) – number of monomers/sites in gaussian ring
calculate(k)[source]

Return value of \(\hat{\omega}\) at supplied \(k\)

Parameters:k (np.ndarray) – array of wavenumber values to calculate \(\omega\) at