Implementation of the FENE (Finitely Extensible Non-linear Elastic) potential for polymers [Kremer_1986]. It approximates the interaction between the neighboring monomers by non-linear springs. In contrast to some other packages, the FENE interaction defined here does NOT include the WCA or LJ terms. They have to be specified separately. The FENE interaction is implemented like:

\[U(r) = -\frac{1}{2}r_{\mathrm{max}}^2 K \log\left[1 - \left(\frac{r - r_{0}}{r_{\mathrm{max}}}\right)^2\right].\]
class espressopp.interaction.FENE(K = 30.0, r0 = 0.0, rMax = 1.5, cutoff = inf, shift = 0.0)
  • K (real) – attractive force strength (in \(\epsilon / \sigma^2\) units)
  • r0 (real) – displacement parameter (in \(sigma\) units)
  • rMax (real) – size parameter (in \(sigma\) units)
  • cutoff (real) – cutoff radius
  • shift (real) – shift of the potential
[Kremer_1986]Grest, G. S. and Kremer, K. (1986). Molecular dynamics simulation for polymers in the presence of a heat bath. Physical Review A, 33(5), 3628-3631.

FENE-potential is applied to all pairs of the fixed-pair list (usually called the bondlist) via:

class espressopp.interaction.FixedPairListFENE(system, bondlist, potential)


Return type:A Python list of pairs (the bondlist).
Return type:potential object
Parameters:bondlist (list) – fixed-pair list (bondlist)
Parameters:potential (object) – a potential applied to all pairs of the bondlist

Example of usage

>>> # The following example shows how to bond particle 1 to particles 0 and 2 by a FENE potential.
>>> # We assume the particles are already in the storage of the system
>>> # Initialize list of pairs that will be bonded by FENE
>>> bondlist = espressopp.FixedPairList(
>>> # Set which pairs belong to the pair_list i.e. particle 1 is bonded to particles 0 and 2.
>>> bondlist.addBonds([(0,1),(1,2)])
>>> # Initialize the potential and set up the parameters.
>>> potFENE   = espressopp.interaction.FENE(K=30.0, r0=0.0, rMax=1.5)
>>> # Set which system, pair list and potential is the interaction associated with.
>>> interFENE = espressopp.interaction.FixedPairListFENE(system, bondlist, potFENE)
>>> # Add the interaction to the system.
>>> system.addInteraction(interFENE)