espressopp.interaction.FENE¶
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)¶ Parameters: - 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. https://doi.org/10.1103/PhysRevA.33.3628 |
FENE-potential is applied to all pairs of the fixed-pair list (usually called the bondlist) via:
-
class
espressopp.interaction.
FixedPairListFENE
(system, bondlist, potential)¶ Parameters: - system (object) – your system
espressopp.System()
- bondlist (list) – list of bonds
espressopp.FixedPairList()
- potential (object) – bonded potential, in this case
espressopp.interaction.FENE()
Methods
-
getFixedPairList
()¶ Return type: A Python list of pairs (the bondlist).
-
getPotential
()¶ Return type: potential object
-
setFixedPairList
(bondlist)¶ Parameters: bondlist (list) – fixed-pair list (bondlist)
-
setPotential
(potential)¶ Parameters: potential (object) – a potential applied to all pairs of the bondlist
- system (object) – your system
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(system.storage)
>>> # 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)