Snapping Polyacetylene Chain¶
This tutorial demonstrates how to set up a molecular dynamics calculation with a increasingly more stretched unit cell in order to study the mechanical properties of a small polymer chain model. During the simulation, the strain on the chain is increased slowly until the initial double bonds of the cis-Polyacetylene are successively converted into their trans configurations. Afterwards, an even larger strain causes the polymer chain to snap which immediately reduces the stress to zero. The stress tensor components computed during the MD simulation are then collected with a small Python script and plotted to demonstrate different changes in the molecular structure of chain.
Step 1: Start ReaxFFinput¶
Step 2: Import Structure and Settings¶
We begin by setting the main calculation option for the molecular dynamics simulation
- In the menu bar, File → Import Coordinates…Select
cis_polyacetylene.xyz
In the main panel, select Force Field: → CHO.ffAs Number of iterations, enter850000
Select Method: → NPT BerendsenAs Temperature, enter300.15
KAs Pressure, enter1.01
barAs Damping Constant, enter1500.0
fsSelect Stress → Stress energy
Next, we have to set the strain rate. To prevent the NPT thermostat to alter the strained lattice vector:
- In the panel bar, select Details → Molecular DynamicsSelect Fix cell parameters (NPT only) → b (vector depends on the chosen direction of the strain)In KF result file enter
2000
(saves disk space)
Finally, we can add the volume regime set the strain rate:
Step 3: Run the Calculation¶
After having set all calculation options we are now ready to start the run
Step 4: Evaluate the Results¶
Once the calculation has finished, the stress-strain curves can be extracted from the binary results file with the help of a Python script using the PLAMS library.
The script called stress_strain_curve.py is available from here and can be run from the command line:
$ADFBIN/startpython stress_strain_curve.py PolyStressStrain.rxkf
The stress-strain curve is written to a file called stress-strain-curve.csv
:
# strain_x, strain_y, strain_z, stress_xx, stress_yy, stress_zz
-0.0002 0.0005 0.0000 0.0019 0.8405 -0.0001
-0.0001 0.0011 -0.0000 -0.0009 0.9600 0.0002
-0.0001 0.0016 ...
The resulting stress/strain curve can then be plotted as stress_yy
(column 5) against strain_y
(column 2) with any plotting software, e.g. gnuplot:
Note the different disconnected segments in the stress/strain plot. The first three of these segments starts correspond to the polymer chain having increasingly more double bonds in trans configuration. After the last double bond has been converted the resulting trans-Polyacetylene chain exhibits different mechanical properties which results in a different slope of the stress/strain graph. At a certain strain, the chain snaps, immediately reducing the stress to zero as beyond this point the periodic polymer chain has turned into a molecular entity.