pyPRISM.omega.FreelyJointedChain module

class pyPRISM.omega.FreelyJointedChain.FJC(length, l)[source]

Bases: pyPRISM.omega.FreelyJointedChain.FreelyJointedChain

Alias of FreelyJointedChain

class pyPRISM.omega.FreelyJointedChain.FreelyJointedChain(length, l)[source]

Bases: pyPRISM.omega.Omega.Omega

Freely jointed chain intra-molecular correlation function

Mathematical Definition

\[\hat{\omega}(k) = \frac{1 - E^2 - \frac{2E}{N} + \frac{2E^{N+1}}{N}}{(1-E)^2}\]
\[E = \frac{\sin(k l)}{k l}\]

Variable Definitions

  • \(\hat{\omega}(k)\)
    intra-molecular correlation function at wavenumber \(k\)
  • \(N\)
    number of repeat units in chain
  • \(l\)
    bond-length

Description

The freely-jointed chain is an ideal polymer chain model that assumes a constant bond length \(l\) and no correlations between the directions of different bond vectors (i.e. \(<cos(\theta_{ij})>=0\)). In other words, monomer segments are assumed to have no intra-molecular excluded volume.

References

  1. 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 [link]
  2. Rubinstein, M; Colby, R.H; Polymer Physics. 2003. Oxford University Press.

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.FreelyJointedChain(length=100,l=1.0)
x = domain.k
y = omega.calculate(x)

#plot using matplotlib
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.FreelyJointedChain(length=100,l=1.0)
__init__(length, l)[source]

Constructor

Parameters:
  • length (float) – number of monomers/sites in Freely-jointed chain
  • l (float) – bond length
calculate(k)[source]

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

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