Source code for the twistable polymer model in LAMMPS.



To implement the twistable polymer model two new "angle style" interaction potentials are needed.

For details see our JCP paper:
C. A. Brackley, A. N. Morozov and D. Marenduzzo "Models for twistable elastic polymers in Brownian dynamics, and their implementation for LAMMPS" J. Chem. Phys. 140 135103 (2014) jcp arXiv

Download source files as a tar ball. Due to changes in different versions of LAMMPS I've had to update the code several times. I've kept previous versions here. I'm listing the version tested on, it may well work on other versions as well.

Angle styles for LAMMPS version 30-Sep13 (also worked for 1-Feb14 version): twistable_source_Sep13.tar.gz

Angle styles for LAMMPS version 12-Dec18: twistable_source_Dec18.tar.gz

Angle styles for LAMMPS version 22-Oct20: twistable_source_Oct20.tar.gz (This has also been tested on newer LAMMPS versions upto 2Jun22.)

Copy the .cc and .h files into the lammps src/ directory and compile as usual. Make sure that the ASPHERE and MOLECULE packages are installed, and optionally the RIGID package. These are standard packages that come with lammps, and can be enabled e.g. with the command:
make yes-asphere
before compiling.

Minimal requirements to get started are a lammps input script:
in.twistable_polymer
and a suitable initial configuration file:
polymer.lammps_input

This implements a bead-spring polymer, with FENE bonds between adjacent beads, COSINE angles between groups of three adjacent beads give a bending rigidity, and the new POLYTORSION angle style between adjacent beads provides the torsional rigidity. This example has a linear polymer, and a slightly modified version of the torsion angle POLYTORSIONEND is required for the final bead in the chain. For a polymer loop a POLYTORSION angle is used between the final and first beads in the chain.

A simple (and very stupid) c++ program to generate initial conditions is provided here: generate_Twistable.cc. Note this this starts the ellipsoids such that they are all orientated in the same direction, so for the case of a closed loop, it is not guaranteed to start with zero twist.





Back to LAMMPS Stuff