LAMMPS Polymer
(→LAMMPS Script) |
(→Abstract) |
||
Line 1: | Line 1: | ||
== Abstract == | == Abstract == | ||
+ | |||
+ | '''!Tutorial is not yet complied!''' | ||
+ | |||
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. | 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. | ||
Revision as of 17:59, 30 November 2011
Abstract
!Tutorial is not yet complied!
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
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.
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"
In general, this script does equilibration and minimization to the polymer chain. Polymer chain data file named 'PE_cl100.txt' should be the same directory. Line "dump 1 all cfg 6 dum..." used to output information during simulation can be moved before the equilibration part of the script to output the process of equilibration.
# 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}
This part is just opens the data file, defines the boundary conditions, units, logfile's name, etc.
# 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
In this section goes the information about the bonds, angles, dihedrals in a chain. Bond_style and bond_coeff defines the type on the force field between atoms and a magnitude of this fields. "1" here corresponds to the second column of the "Bonds" section of the data file. Thus, every atom pair with "1" in the second column will be having such properties during the simulation. Similar goes to the angles and dihedrals. Angle_* and dihedral_* lines defines the angles and dihedral angles between atoms in the polymer chain. Pair_* commands used to define pair potentials between atoms that are within a cutoff distance. More about this commands and a parameters can be found at SANDIA website: