LAMMPS Polymer

From EVOCD
Revision as of 16:50, 30 November 2011 by Dzhuk (Talk | contribs)

Jump to: navigation, search

Abstract

In this tutorial Molecular dynamics simulation in LAMMPS is used to show what happens to a polymer chain at a certain temperature after some time. Chain's movement is caused by a molecular forces between atoms in the chain and by temperature of the chain. This factors are modeled in LAMMPS in order to show the behavior of this polymer chain. The chain was previously prepared in MATLAB. It contains 100 atoms with bound between neighbor atoms. Duding the simulation, firstly, the chain was left for do deform freely under the molecular forces and a random atomic fluctuation due to the temperature. After that the chain was minimized to find it's minimal energy condition.

Author(s): Mark A. Tschopp, Dmitry I. Zhuk.

Corresponding Author: Mark Tschopp

Input File

Figure 1. Not-deformed polymer chain.

The polymer chain of 100 atoms was specially prepared in MATLAB. The atom's Z coordinate does not varies much, all of them are within 2Å. The distance between atoms is about 1.5Å. Basically, the chain goes from left upper to right lower corner of the box. At the right you can see the picture of the initial condition of the chain.

The data file is shown below and available for download here: https://icme.hpc.msstate.edu/mediawiki/images/e/e1/PE_cl100.txt

|
# Model for PE

     100     atoms
      99     bonds
      98     angles
      97     dihedrals

         1     atom types
         1     bond types
         1     angle types
         1     dihedral types

    0.0000   158.5000 xlo xhi
    0.0000   158.5000 ylo yhi
    0.0000   100.0000 zlo zhi

Masses

         1          14.02

Atoms

         1         1         1    5.6240    5.3279   51.6059
         2         1         1    7.4995    7.4810   50.2541
         3         1         1    8.2322    8.0236   51.2149
         4         1         1    9.6108    9.9075   51.7682
         5         1         1   11.5481   11.3690   50.4167
         6         1         1   12.9409   13.4562   50.2481
         7         1         1   14.4708   14.8569   50.0868
         8         1         1   16.1916   16.4790   50.5665
         9         1         1   17.1338   17.6853   51.8189
        10         1         1   19.1109   19.4000   50.3869

...

Bonds

         1         1         1         2
         2         1         2         3
         3         1         3         4
         4         1         4         5
         5         1         5         6
         6         1         6         7
         7         1         7         8
         8         1         8         9
         9         1         9        10
        10         1        10        11
 
...

Angles

         1         1         1         2         3
         2         1         2         3         4
         3         1         3         4         5
         4         1         4         5         6
         5         1         5         6         7
         6         1         6         7         8
         7         1         7         8         9
         8         1         8         9        10

...

Dihedrals

         1         1         1         2         3         4
         2         1         2         3         4         5
         3         1         3         4         5         6
         4         1         4         5         6         7
         5         1         5         6         7         8
         6         1         6         7         8         9
         7         1         7         8         9        10

Here, the first section defines the numbers of atoms, bonds, angles and dihedrals. Lower you can see the types and the box sizes. Below that are the simulation box sizes.

Then comes the Atoms section. The first column is the atom number, then comes the atom type and some other information not used in this tutorial. Last three columns is the atom's x, y and z coordinates correspondingly.

Figure 2. Angles between atoms defined in LAMMPS.
Figure 2. Dihedral angles between atoms defined in LAMMPS.


In the Angle section listed the angles between atoms. First column is the angle number, second - angle ID, then comes the atom's number between which the angle is defined. Example of the distribution of the atoms can be seen on the picture to the left. Dihedrals are a little bit more complicated. To define a diherdal four atoms are needed. Syntax are pretty much similar to the angles section. The only difference is that one more atom is needed to define a dihedral. Basically, the dihedral angle is the angle between the planes formed by 2 groups of 3 neighbor atoms. You see the example on the picture to the right.










LAMMPS Script

Below is the script used for the actual simulation. This input script was run using the November 2010 version of LAMMPS. Changes in some commands in more recent versions may require revision of the input script. This script runs the simulation with the previously discussed data file.

#####################################################
#                                                   #
#                                                   #
# Filename: in.deform.polychain.txt                 #
# Author: Mark Tschopp 2010                         #
#                                                   #
# The methodology outlined here follows that from   #
# Hossain, Tschopp, et al. 2010, Polymer.  Please   #
# cite accordingly. The following script requires   #
# a LAMMPS data file containing the coordinates and #
# appropriate bond/angle/dihedral lists for each    #
# united atom.                                      #
#                                                   #
# Execute the script through:                       #
# lmp_exe < in.deform.polychain.txt                 #
#                                                   #
#####################################################

# VARIABLES
variable fname index PE_cl100.txt
variable simname index PE_cl100

# Initialization
units		real
boundary	f f f
atom_style	molecular
log 		log.${simname}.txt
read_data	${fname}

# Dreiding potential information
neighbor	0.4 bin
neigh_modify	every 10 one 10000
bond_style      harmonic
bond_coeff	1 350 1.53
angle_style     harmonic
angle_coeff	1 60 109.5
dihedral_style	multi/harmonic
dihedral_coeff	1 1.73 -4.49 0.776 6.99 0.0
pair_style	lj/cut 10.5
pair_coeff	1 1 0.112 4.01 10.5

compute csym all centro/atom fcc
compute peratom all pe/atom 



#####################################################
# Equilibration (Langevin dynamics at 5000 K)

velocity 	all create 5000.0 1231
fix		1 all nve/limit 0.05
fix		2 all langevin 5000.0 5000.0 10.0 904297
thermo_style	custom step temp 
thermo          10000
timestep	1
run		1000000
unfix 1
unfix 2
write_restart 	restart.${simname}.dreiding1


#####################################################
# Define Settings
compute eng all pe/atom 
compute eatoms all reduce sum c_eng 

#####################################################
# Minimization

dump 		1 all cfg 6 dump.comp_*.cfg id type xs ys zs c_csym c_peratom fx fy fz

reset_timestep 0 
fix 1 all nvt temp 500.0 500.0 100.0
thermo 20 
thermo_style custom step pe lx ly lz press pxx pyy pzz c_eatoms 
min_style cg
minimize 1e-25 1e-25 500000 1000000 


print "All done"
Personal tools
Namespaces

Variants
Actions
home
Materials
Material Models
Design
Resources
Projects
Education
Toolbox