This is a package for Monte Carlo sampling of conformations of single coarse-grained polymer chains using the Metropolis algorithm.
Three different chain architectures are supported:
- Linear
- Ring
- Graft (linear or ring). Examples include bottlebrushes and comb polymers.
The chain can have different parameters for bonds and angles. Dihedrals are not supported as they are unusual to include for coarse-grained models. However, there is a stub file for dihedrals, and different styles many be added if necessary.
The following bond styles are available:
- None (no bond)
- Harmonic
- Shifted-FENE
- Kremer-Grest
- Tabulated
The following angle styles are available:
- None (no angle)
- Harmonic
- Cosine
- Tabulated
Polymer segments may be tethered using either of the two styles:
- Harmonic
- FENE
A chain may be subject to an external field. At present, the ones available are:
- Constant force on a segment along x-direction.
- Hard wall
It is fairly straightforward to add other external field styles if necessary.
The following non-bonded pair styles are included:
- None (no pairwise interaction)
- Hard sphere
- Lennard-Jones with cut-off
- Square-well
- Gaussian
- Tabulated
The code supports the following kinds of MC moves:
- Displacement
- Crankshaft
- Pivot
- Side chain pivot (for grafted polymers)
- Restricted pivot (for grafted polymers). Unlike usual pivot, the rotation axis for is chosen along the bond incident to the pivot point. This move may be useful for molecules that are restricted to be in a stretched conformation or if angular constraints need to be respected.
- A Fortran compiler compliant with the 2008 standard.
- Intel Math Kernel Library (classic or oneAPI MKL), available from the [Intel website](https://www.intel.com/content/www/us/en/developer/tools/oneapi/ onemkl.html). The code uses random number generation routines from MKL.
The code can be compiled using the Makefile in the build directory (checked with gfortran >= 7.0 ). The variables MKLROOT and MKL_INTRFC may be changed to reflect the actual paths of MKL and its interfaces on the system to be installed. After successful compilation, an executable named mcpak will be created in the bin directory.
The executable mcpak reads in all input from a file called control.txt (see
test/mcpak/control.txt for an example). This file includes the name of the
file storing the initial configuration and topology. Initial configurations can be
generated using the python scripts in utils/models.
Output trajectory files are in binary format, which can be converted to ascii using the code traj2txt in utils/traj2txt.
Documentation generated by FORD is available here.
This code or parts of it has been used for the folowing publications:
- S. Dutta, M. A. Wade, D. J. Walsh, D. Guironnet, S. A. Rogers, C. E. Sing, Dilute solution structure of bottlebrush polymers Soft Matter 15, 2928 (2019).
- S. Dutta, C. E. Sing, Two stretching regimes in the elasticity of bottlebrush polymers Macromolecules 53, 6946–6955 (2020).