git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@11696 f3b2605a-c512-4ea7-a41b-209d697bcdaa
@ -1,72 +0,0 @@
|
||||
# -------- WARNING: --------
|
||||
|
||||
This directory contains some examples of all-atom simulations using the GAFF
|
||||
force field, prepared using moltemplate.
|
||||
|
||||
This software is experimental, and the force-fields and equilbration protocols
|
||||
have not been tested carefully by me. There is no gaurantee that simulations
|
||||
prepared using moltemplate will reproduce the behavior of AmberTools/AMBER.
|
||||
|
||||
# -------- REQUEST FOR HELP: --------
|
||||
|
||||
If you notice a problem with these examples, please report it.
|
||||
Peer-review is the only way to improve this software (or any software).
|
||||
Other suggestions are also welcome!
|
||||
|
||||
(Contact jewett.aij@gmail.com, 2013-12-01)
|
||||
|
||||
|
||||
--- Charge ---
|
||||
|
||||
This software does not assign charges to each atom.
|
||||
(AmberTools can do this.)
|
||||
|
||||
For the purpose of demonstration, in the hydrocarbon examples located here,
|
||||
I am simply neglecting the partial charge of the carbon and hydrogen atoms.
|
||||
This approach is unlikely to be appropriate in most practical applications.
|
||||
|
||||
|
||||
--- Long-range electrostatics ---
|
||||
|
||||
Furthermore long-range electrostatics (kspace_style pppm) are usually disabled
|
||||
by default. (Examples containing TIP3P water are an exception to this.)
|
||||
To enable long-range coulombics, make these modifications to the
|
||||
"system.in.init" and "system.in.settings" files AFTER running moltemplate:
|
||||
(enter these commands into the bash shell)
|
||||
|
||||
echo "kspace_style pppm 0.0001" >> system.in.init
|
||||
echo "pair_style hybrid lj/charmm/coul/long 9.0 10.0" >> system.in.init
|
||||
sed -i 's/lj\/charmm\/coul\/charmm/lj\/charmm\/coul\/long/g' system.in.settings
|
||||
|
||||
|
||||
--- Improper angles ---
|
||||
|
||||
I am also uncertain whether the improper angle interactions generated by
|
||||
moltemplate are equivalent to those generated by AmberTools. (I think they are,
|
||||
but I am worried that I might have listed the atom types in the wrong order.)
|
||||
|
||||
|
||||
--- Bloated lammps input scripts ---
|
||||
--- -> slow simulations ? ---
|
||||
|
||||
As of 2013-12-01, LAMMPS input scripts prepared using moltemplate using the
|
||||
"gaff.lt" file contain the entire contents of the GAFF force-field,
|
||||
even if your simulation uses only a few of the atom types in GAFF.
|
||||
|
||||
Details:
|
||||
Moltemplate creates a file usually named "system.in.settings" containing all
|
||||
of the GAFF information. It is usually about 700kB large. This file is read
|
||||
by LAMMPS. This means that every interaction in GAFF is loaded
|
||||
into LAMMPS (for all ~72 atom types).
|
||||
This is true even if you only use a tiny subset of the atom types and bonded
|
||||
interactions defined in GAFF. Hopefully allocating the memory needed to store
|
||||
this extra information will not slow down your simulations noticably.
|
||||
|
||||
However, in case it does, the "waterTIP3P+isobutane/README_setup.sh"
|
||||
contains detailed instructions how to strip this kind of junk from
|
||||
the "system.in.settings" file.
|
||||
|
||||
(In the future I may modify moltemplate to do this automatically,
|
||||
however I may not remember to remove this warning from this file.
|
||||
Hopefully this issue will be fixed by the time you use moltemplate.)
|
||||
|
||||
@ -1,44 +0,0 @@
|
||||
This example is a simple simulation of 288 hexadecane molecules in a box at
|
||||
room temperature and atmospheric pressure. Please read the WARNING.TXT file.
|
||||
|
||||
-------- REQUIREMENTS: ---------
|
||||
This example requires building LAMMPS with the "USER-MISC" package.
|
||||
(because it uses dihedral_style fourier)
|
||||
To do this, type "make yes-user-misc" before compiling LAMMPS.
|
||||
http://lammps.sandia.gov/doc/Section_start.html#start_3
|
||||
|
||||
More detailed instructions on how to build LAMMPS input files and
|
||||
run a short simulation are provided in other README files:
|
||||
|
||||
step 1) to setup the LAMMPS input files, run this file:
|
||||
README_setup.sh
|
||||
|
||||
(Currently there is a bug which makes this step slow.
|
||||
I'll fix it later -Andrew 2013-10-15.)
|
||||
|
||||
step 2) to run LAMMPS, follow the instructions in this file:
|
||||
README_run.sh
|
||||
|
||||
------------ NOTE: There are two versions of this example. ----------------
|
||||
|
||||
Both examples use the same force-field parameters.
|
||||
|
||||
1)
|
||||
In this version, the force-field parameters are loaded from the "gaff.lt" file
|
||||
(located in the "common" subdirectory).
|
||||
This frees the user from the drudgery of manually specifying all of these
|
||||
force-field details for every molecule. (However, the user must be careful
|
||||
to choose @atom-type names which match AMBER GAFF conventions,
|
||||
such as the "c3" and "h1" atoms, in this example.)
|
||||
|
||||
2)
|
||||
Alternately, there is another "hexadecane" example in the "all_atom_examples"
|
||||
directory. In that example, force-field parameters are loaded from a file
|
||||
named "alkanes.lt" (instead of "gaff.lt"). The "alkanes.lt" file contains
|
||||
only the excerpts from "gaff.lt" which are relevant to the hydrocarbon
|
||||
molcules used in that example. ("gaff.lt" contains parameters for most
|
||||
small organic molecules, not just hydrocarbons.)
|
||||
In this way, by editing "alkanes.lt", the user can manually control all of the
|
||||
force-field details in the simulation. (Without feeling as though they are
|
||||
relying on some kind of mysterious "black box" to do it for them.)
|
||||
|
||||
@ -1,39 +0,0 @@
|
||||
# --- Running LAMMPS ---
|
||||
# -------- REQUIREMENTS: ---------
|
||||
# 1) This example requires building LAMMPS with the "USER-MISC" package.
|
||||
# (because it makes use of "gaff.lt" which uses dihedral_style fourier)
|
||||
# To do this, type "make yes-user-misc" before compiling LAMMPS.
|
||||
# http://lammps.sandia.gov/doc/Section_start.html#start_3
|
||||
# -------- PREREQUISITES: --------
|
||||
# The 2 files "run.in.npt", and "run.in.nvt" are LAMMPS
|
||||
# input scripts which link to the input scripts and data files
|
||||
# you hopefully have created earlier with moltemplate.sh:
|
||||
# system.in.init, system.in.settings, system.data
|
||||
# If not, carry out the instructions in "README_setup.sh".
|
||||
#
|
||||
# -- Instructions: --
|
||||
# If "lmp_linux" is the name of the command you use to invoke lammps,
|
||||
# then you would run lammps on these files this way:
|
||||
|
||||
|
||||
lmp_linux -i run.in.npt # minimization and simulation at constant pressure
|
||||
lmp_linux -i run.in.nvt # minimization and simulation at constant volume
|
||||
|
||||
#(Note: The constant volume simulation lacks pressure equilibration. These are
|
||||
# completely separate simulations. The results of the constant pressure
|
||||
# simulation might be ignored when beginning the simulation at constant
|
||||
# volume. (This is because restart files in LAMMPS don't always work,
|
||||
# and I was spending a lot of time trying to convince people it was a
|
||||
# LAMMPS bug, instead of a moltemplate bug, so I disabled restart files.)
|
||||
# Read the "run.in.nvt" file to find out how to use the "read_restart"
|
||||
# command to load the results of the pressure-equilibration simulation,
|
||||
# before beginning a constant-volume run.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# If you have compiled the MPI version of lammps, you can run lammps in parallel
|
||||
#mpirun -np 4 lmp_linux -i run.in.npt
|
||||
#mpirun -np 4 lmp_linux -i run.in.nvt
|
||||
# (assuming you have 4 processors available)
|
||||
@ -1,74 +0,0 @@
|
||||
# -------- REQUIREMENTS: ---------
|
||||
# You must define your MOLTEMPLATE_PATH environment variable
|
||||
# and set it to the "common" subdirectory of your moltemplate distribution.
|
||||
# (See the "Installation" section in the moltemplate manual.)
|
||||
|
||||
|
||||
# Create LAMMPS input files this way:
|
||||
cd moltemplate_files
|
||||
|
||||
# run moltemplate
|
||||
|
||||
moltemplate.sh system.lt
|
||||
|
||||
# This will generate various files with names ending in *.in* and *.data.
|
||||
# These files are the input files directly read by LAMMPS. Move them to
|
||||
# the parent directory (or wherever you plan to run the simulation).
|
||||
#cp -f system.data system.in* ../
|
||||
|
||||
|
||||
# --------- OPTIONAL STEPS FOR STRIPPING OUT JUNK ---------
|
||||
# --------- edit 2013-10-13 ---------
|
||||
echo "-----------------------------------------------------------------" >&2
|
||||
echo "OPTIONAL STEP: PRUNING THE RESULTING MOLTEMPLATE OUTPUT TO" >&2
|
||||
echo " INCLUDE ONLY ATOMS AND TYPES WE ARE ACTUALLY USING." >&2
|
||||
# Unfortunately, as of 2013-8-28, these files contain a lot of irrelevant
|
||||
# information (for atom types not present in the current system).
|
||||
# For now, we can strip this out using ltemplify.py to build a new .lt file.
|
||||
# THIS IS AN UGLY WORKAROUND. HOPEFULLY IN THE FUTURE, WE CAN SKIP THESE STEPS
|
||||
|
||||
# do this in a temporary_directory
|
||||
mkdir new_lt_file
|
||||
cd new_lt_file/
|
||||
|
||||
# now run ltemplify.py
|
||||
|
||||
ltemplify.py ../system.in.init ../system.in.settings ../system.data > system.lt
|
||||
rm -rf ../system.data ../system.in* # these old lammps files no longer needed
|
||||
|
||||
# This creates a new .LT file named "system.lt" in the local directory.
|
||||
|
||||
|
||||
# The ltemplify.py script also does not copy the boundary dimensions.
|
||||
# We must do this manually.
|
||||
echo "write_once(\"Data Boundary\") {" >> system.lt
|
||||
cat "../output_ttree/Data Boundary" >> system.lt
|
||||
echo "}" >> system.lt
|
||||
echo "" >> system.lt
|
||||
# Now, run moltemplate on this new .LT file.
|
||||
moltemplate.sh system.lt
|
||||
# This will create: "system.data" "system.in.init" "system.in.settings."
|
||||
|
||||
|
||||
# Move the final DATA and INput scripts to the desired location,
|
||||
mv -f system.data system.in* ../../
|
||||
|
||||
# and clean up the mess
|
||||
rm -rf output_ttree/
|
||||
cd ..
|
||||
rm -rf new_lt_file/
|
||||
echo "---------------- DONE PRUNING MOLTEMPLATE OUTPUT ----------------" >&2
|
||||
echo "-----------------------------------------------------------------" >&2
|
||||
# --------- END OF OPTIONAL STEPS FOR STRIPPING OUT JUNK ---------
|
||||
|
||||
|
||||
|
||||
|
||||
# Optional:
|
||||
# The "./output_ttree/" directory is full of temporary files generated by
|
||||
# moltemplate. They can be useful for debugging, but are usually thrown away.
|
||||
rm -rf output_ttree/
|
||||
|
||||
|
||||
|
||||
cd ../
|
||||
@ -1,87 +0,0 @@
|
||||
|
||||
------- To view a lammps trajectory in VMD --------
|
||||
|
||||
|
||||
1) Build a PSF file for use in viewing with VMD.
|
||||
|
||||
This step works with VMD 1.9 and topotools 1.2.
|
||||
(Older versions, like VMD 1.8.6, don't support this.)
|
||||
|
||||
|
||||
a) Start VMD
|
||||
b) Menu Extensions->Tk Console
|
||||
c) Enter:
|
||||
|
||||
(I assume that the the DATA file is called "system.data")
|
||||
|
||||
topo readlammpsdata system.data full
|
||||
animate write psf system.psf
|
||||
|
||||
2)
|
||||
|
||||
Later, to Load a trajectory in VMD:
|
||||
|
||||
Start VMD
|
||||
Select menu: File->New Molecule
|
||||
-Browse to select the PSF file you created above, and load it.
|
||||
(Don't close the window yet.)
|
||||
-Browse to select the trajectory file.
|
||||
If necessary, for "file type" select: "LAMMPS Trajectory"
|
||||
Load it.
|
||||
|
||||
---- A note on trajectory format: -----
|
||||
If the trajectory is a DUMP file, then make sure the it contains the
|
||||
information you need for pbctools (see below. I've been using this
|
||||
command in my LAMMPS scripts to create the trajectories:
|
||||
|
||||
dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
It's a good idea to use an atom_style which supports molecule-ID numbers
|
||||
so that you can assign a molecule-ID number to each atom. (I think this
|
||||
is needed to wrap atom coordinates without breaking molecules in half.)
|
||||
|
||||
Of course, you don't have to save your trajectories in DUMP format,
|
||||
(other formats like DCD work fine) I just mention dump files
|
||||
because these are the files I'm familiar with.
|
||||
|
||||
3) ----- Wrap the coordinates to the unit cell
|
||||
(without cutting the molecules in half)
|
||||
|
||||
a) Start VMD
|
||||
b) Load the trajectory in VMD (see above)
|
||||
c) Menu Extensions->Tk Console
|
||||
d) Try entering these commands:
|
||||
|
||||
pbc wrap -compound res -all
|
||||
pbc box
|
||||
|
||||
----- Optional ----
|
||||
Sometimes the solvent or membrane obscures the view of the solute.
|
||||
It can help to shift the location of the periodic boundary box
|
||||
To shift the box in the y direction (for example) do this:
|
||||
|
||||
pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0}
|
||||
pbc box -shiftcenterrel {0.0 0.15 0.0}
|
||||
|
||||
Distances are measured in units of box-length fractions, not Angstroms.
|
||||
|
||||
Alternately if you have a solute whose atoms are all of type 1,
|
||||
then you can also try this to center the box around it:
|
||||
|
||||
pbc wrap -sel type=1 -all -centersel type=2 -center com
|
||||
|
||||
4)
|
||||
You should check if your periodic boundary conditions are too small.
|
||||
To do that:
|
||||
select Graphics->Representations menu option
|
||||
click on the "Periodic" tab, and
|
||||
click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes.
|
||||
|
||||
5) Optional: If you like, change the atom types in the PSF file so
|
||||
that VMD recognizes the atom types, use something like:
|
||||
|
||||
sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf
|
||||
sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf
|
||||
sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf
|
||||
|
||||
(If you do this, it might effect step 2 above.)
|
||||
@ -1,16 +0,0 @@
|
||||
# -------- WARNING: --------
|
||||
|
||||
This software is experimental, and the force-fields and equilbration protocols
|
||||
have not been tested carefully by me. There is no gaurantee that the simulation
|
||||
will reproduce the behavior of real hexadecane molecules,
|
||||
(or even of hexadecane molecules simulated using AMBER, which should
|
||||
be using the same force-field).
|
||||
|
||||
# -------- REQUEST FOR HELP: --------
|
||||
|
||||
However, if you notice a problem with this example, please report it.
|
||||
I confess I do not have a lot of experience running all-atom simulations.
|
||||
Peer-review is the only way to improve this software (or any software).
|
||||
Other suggestions are also welcome!
|
||||
|
||||
(Contact jewett.aij@gmail.com, 2013-10-16)
|
||||
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
@ -1,49 +0,0 @@
|
||||
|
||||
import "gaff.lt" # <-- defines the "GAFF" force field
|
||||
|
||||
|
||||
# The "gaff.lt" file is usually located in $MOLTEMPLATE_PATH (and is
|
||||
# distributed with moltemplate. See the "Installation" section in the manual.)
|
||||
# It contains definitions of the atoms "c3", "h1", as well as the force-field
|
||||
# parameters for bonded and non-bonded interactions between them
|
||||
# (and many other atoms).
|
||||
|
||||
# The charges for the atoms in this example are all set to zero.
|
||||
# In a realistic simulation, one must assign (partial) charges to each atom.
|
||||
|
||||
|
||||
CH2 inherits GAFF {
|
||||
|
||||
# atom-id mol-id atom-type charge x y z
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:C $mol:... @atom:c3 0.00 0.00 0.000 0.000
|
||||
$atom:H1 $mol:... @atom:h1 0.00 0.00 0.6310438442242609 0.8924307629540046
|
||||
$atom:H2 $mol:... @atom:h1 0.00 0.00 0.6310438442242609 -0.8924307629540046
|
||||
}
|
||||
|
||||
# Note: The "..." in "$mol:..." tells moltemplate that this molecule may
|
||||
# be a part of a larger molecule, and (if so) to use the larger
|
||||
# parent object's molecule id number as it's own.
|
||||
# The CH2 group is part of the Hexadecane molecule.
|
||||
|
||||
# Now specify which pairs of atoms are bonded:
|
||||
write('Data Bond List') {
|
||||
$bond:CH1 $atom:C $atom:H1
|
||||
$bond:CH2 $atom:C $atom:H2
|
||||
}
|
||||
|
||||
} # CH2
|
||||
|
||||
|
||||
|
||||
|
||||
######### (scratchwork calculations for the atomic coordinates) #########
|
||||
# Lcc = 1.5350 # length of the C-C bond (Sp3)
|
||||
# Lch = 1.0930 # length of the C-H bond
|
||||
# theta=2*atan(sqrt(2)) # ~= 109.5 degrees = tetrahedronal angle (C-C-C angle)
|
||||
# DeltaXc = Lcc*sin(theta/2) # = 1.2533222517240594
|
||||
# DeltaYc = Lcc*cos(theta/2) # = 0.8862326632060754
|
||||
# # 0.5*DeltaYc = 0.4431163316030377
|
||||
# DeltaZh = Lch*sin(theta/2) # = 0.8924307629540046
|
||||
# DeltaYh = Lch*cos(theta/2) # = 0.6310438442242609
|
||||
@ -1,52 +0,0 @@
|
||||
|
||||
import "gaff.lt" # <-- defines the "GAFF" force field
|
||||
|
||||
|
||||
# The "gaff.lt" file is usually located in $MOLTEMPLATE_PATH (and is
|
||||
# distributed with moltemplate. See the "Installation" section in the manual.)
|
||||
# It contains definitions of the atoms "c3", "h1", as well as the force-field
|
||||
# parameters for bonded and non-bonded interactions between them
|
||||
# (and many other atoms).
|
||||
|
||||
# The charges for the atoms in this example are all set to zero.
|
||||
# In a realistic simulation, one must assign (partial) charges to each atom.
|
||||
|
||||
|
||||
CH3 inherits GAFF {
|
||||
|
||||
# atom-id mol-id atom-type charge x y z
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:C $mol:... @atom:c3 0.00 0.00 0.000 0.000
|
||||
$atom:H1 $mol:... @atom:h1 0.00 0.00 0.6310438442242609 0.8924307629540046
|
||||
$atom:H2 $mol:... @atom:h1 0.00 0.00 0.6310438442242609 -0.8924307629540046
|
||||
$atom:H3 $mol:... @atom:h1 0.00 -0.8924307629540046 -0.6310438442242609 0.00
|
||||
}
|
||||
|
||||
# Note: The "..." in "$mol:..." tells moltemplate that this molecule may
|
||||
# be a part of a larger molecule, and (if so) to use the larger
|
||||
# parent object's molecule id number as it's own.
|
||||
# The CH3 group is part of the Hexadecane molecule.
|
||||
|
||||
# Now specify which pairs of atoms are bonded:
|
||||
write('Data Bond List') {
|
||||
$bond:CH1 $atom:C $atom:H1
|
||||
$bond:CH2 $atom:C $atom:H2
|
||||
$bond:CH3 $atom:C $atom:H3
|
||||
}
|
||||
|
||||
} # CH3
|
||||
|
||||
|
||||
|
||||
|
||||
######### (scratchwork calculations for the atomic coordinates) #########
|
||||
# Lcc = 1.5350 # length of the C-C bond (Sp3)
|
||||
# Lch = 1.0930 # length of the C-H bond
|
||||
# theta=2*atan(sqrt(2)) # ~= 109.5 degrees = tetrahedronal angle (C-C-C angle)
|
||||
# DeltaXc = Lcc*sin(theta/2) # = 1.2533222517240594
|
||||
# DeltaYc = Lcc*cos(theta/2) # = 0.8862326632060754
|
||||
# # 0.5*DeltaYc = 0.4431163316030377
|
||||
# DeltaZh = Lch*sin(theta/2) # = 0.8924307629540046
|
||||
# DeltaYh = Lch*cos(theta/2) # = 0.6310438442242609
|
||||
|
||||
@ -1,84 +0,0 @@
|
||||
# Define the "CH2" and "CH3" objects:
|
||||
|
||||
import "ch2group.lt"
|
||||
import "ch3group.lt"
|
||||
|
||||
|
||||
|
||||
Hexadecane inherits GAFF {
|
||||
|
||||
# Create an array of 16 "CH2" objects
|
||||
|
||||
monomers = new CH2.move(0,0.4431163,0) [16].rot(180,1,0,0).move(1.2533223,0,0)
|
||||
|
||||
# "monomers" is a 1-dimensional array containing 16 copies of the CH2 molecule
|
||||
# Each copy is rotated 180 degrees and shifted along the x axix.
|
||||
# (For an explanation, read sections 7.1-7.3 of the moltemplate manual.)
|
||||
# Notes:
|
||||
# 1.2533223 = DeltaXc = how far each CH2 group is shifted along the axis
|
||||
# 0.4431163 = DeltaYc/2 = lateral displacement of carbons along axis
|
||||
|
||||
# ---- Now, modify the ends: ---
|
||||
# Delete the CH2 groups at the beginning and end, and replace them with CH3.
|
||||
# (Note: Alternately, instead of deleting the CH2 groups at each end, you
|
||||
# could modify them by adding an extra hydrogen atom to those carbons.)
|
||||
|
||||
delete monomers[0]
|
||||
delete monomers[15]
|
||||
monomer_begin = new CH3
|
||||
monomer_end = new CH3
|
||||
|
||||
# Move the CH3 groups to the correct location at either end of the chain:
|
||||
|
||||
monomer_begin.move(0,0.4431163,0)
|
||||
monomer_end.move(0,0.4431163,0).rot(180,0,0,1).move(18.7998345,0,0)
|
||||
|
||||
# Note: 18.7998345 = (16-1) * DeltaXc
|
||||
|
||||
|
||||
# Now add a list of bonds connecting the carbon atoms together:
|
||||
|
||||
write('Data Bond List') {
|
||||
$bond:b1 $atom:monomer_begin/C $atom:monomers[1]/C
|
||||
$bond:b2 $atom:monomers[1]/C $atom:monomers[2]/C
|
||||
$bond:b3 $atom:monomers[2]/C $atom:monomers[3]/C
|
||||
$bond:b4 $atom:monomers[3]/C $atom:monomers[4]/C
|
||||
$bond:b5 $atom:monomers[4]/C $atom:monomers[5]/C
|
||||
$bond:b6 $atom:monomers[5]/C $atom:monomers[6]/C
|
||||
$bond:b7 $atom:monomers[6]/C $atom:monomers[7]/C
|
||||
$bond:b8 $atom:monomers[7]/C $atom:monomers[8]/C
|
||||
$bond:b9 $atom:monomers[8]/C $atom:monomers[9]/C
|
||||
$bond:b10 $atom:monomers[9]/C $atom:monomers[10]/C
|
||||
$bond:b11 $atom:monomers[10]/C $atom:monomers[11]/C
|
||||
$bond:b12 $atom:monomers[11]/C $atom:monomers[12]/C
|
||||
$bond:b13 $atom:monomers[12]/C $atom:monomers[13]/C
|
||||
$bond:b14 $atom:monomers[13]/C $atom:monomers[14]/C
|
||||
$bond:b15 $atom:monomers[14]/C $atom:monomer_end/C
|
||||
}
|
||||
|
||||
create_var { $mol } # Define a molecule ID number for this polymer
|
||||
|
||||
# This causes monomer[0], monomer[1], ... to share the same molecule-ID.
|
||||
# (because in the ch2group.lt file, the "..." in "$mol:..." looks for
|
||||
# a counter of type "$mol" in a parent molecule or earlier ancestor.)
|
||||
|
||||
} # Hexadecane
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
######### (scratchwork calculations for the atomic coordinates) #########
|
||||
# Lcc = 1.5350 # length of the C-C bond (Sp3)
|
||||
# Lch = 1.0930 # length of the C-H bond
|
||||
# theta=2*atan(sqrt(2)) # ~= 109.5 degrees = tetrahedronal angle (C-C-C angle)
|
||||
# DeltaXc = Lcc*sin(theta/2) # = 1.2533222517240594
|
||||
# DeltaYc = Lcc*cos(theta/2) # = 0.8862326632060754
|
||||
# # 0.5*DeltaYc = 0.4431163316030377
|
||||
# DeltaZh = Lch*sin(theta/2) # = 0.8924307629540046
|
||||
# DeltaYh = Lch*cos(theta/2) # = 0.6310438442242609
|
||||
@ -1,18 +0,0 @@
|
||||
import "hexadecane.lt" # <- defines the "Hexadecane" molecule type.
|
||||
|
||||
# Periodic boundary conditions:
|
||||
write_once("Data Boundary") {
|
||||
0.0 62.4 xlo xhi
|
||||
0.0 62.4 ylo yhi
|
||||
0.0 62.4 zlo zhi
|
||||
}
|
||||
|
||||
molecules = new Hexadecane [12].move(0, 0, 5.2)
|
||||
[12].move(0, 5.2, 0)
|
||||
[2].move(31.2, 0, 0)
|
||||
|
||||
|
||||
# NOTE: The spacing between molecules is large. There should be extra room to
|
||||
# move during the initial stages of equilibration. However, you will have to
|
||||
# run the simulation at NPT conditions later to compress the system to a
|
||||
# more realistic density.
|
||||
@ -1,85 +0,0 @@
|
||||
# PREREQUISITES:
|
||||
#
|
||||
# You must use moltemplate.sh to create 3 files:
|
||||
# system.data system.in.init system.in.settings
|
||||
# (Follow the instructions in README_setup.sh, or run it using ./README_sh.)
|
||||
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
read_data system.data
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
# To avvoid explosions, I have a 4-step equilibraion process (expand, minimize,
|
||||
# reorient, compress). The system (as defined in the "system.data" file)
|
||||
# is already expanded. That means there are 3 steps left:
|
||||
|
||||
dump dumpeq1 all custom 50 traj_eq1_min.lammpstrj id mol type x y z ix iy iz
|
||||
thermo 50
|
||||
|
||||
# -- Equilibration: part 1: initial minimization --
|
||||
|
||||
# Note: In general, it's always a good idea to minimize the system at first.
|
||||
|
||||
minimize 1.0e-5 1.0e-7 100000 400000
|
||||
undump dumpeq1
|
||||
|
||||
write_data system_after_eq1_min.data
|
||||
|
||||
# -- Equilibration part 2: reorienting the molecules (NVT) --
|
||||
|
||||
timestep 1.0
|
||||
dump dumpeq2 all custom 200 traj_eq2_reorient.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
# Run the system at high temperature (at constant volume) to reorient the
|
||||
# the molecules (which would otherwise be pointing in the same direction).
|
||||
|
||||
# To speed it up, I randomize the atomic positions for a few thousand steps
|
||||
# using fix langevin (and fix nve). Then I switch to fix nvt (Nose-Hoover).
|
||||
# (If I start with fix nvt (Nose-Hoover), it seems to get "stuck" for a while.)
|
||||
|
||||
|
||||
fix fxlan all langevin 900.0 900.0 120 48279
|
||||
fix fxnve all nve
|
||||
|
||||
run 2000
|
||||
|
||||
unfix fxlan
|
||||
unfix fxnve
|
||||
# Now continue the simulation at high temperature using fix nvt (Nose-Hoover).
|
||||
fix fxnvt all nvt temp 900.0 900.0 100.0
|
||||
|
||||
run 5000
|
||||
undump dumpeq2
|
||||
|
||||
|
||||
write_data system_after_eq2_reorient.data
|
||||
|
||||
unfix fxnvt
|
||||
|
||||
# -- equilibration part 3: Equilibrating the density (NPT) --
|
||||
|
||||
# Originally, the simulation box (in "system.data" and "system.lt") was
|
||||
# unrealistically large. The spacing between the molecules was large also.
|
||||
# I did this to enable the molecules to move freely and reorient themselves.
|
||||
# After doing that, we should run the simulation under NPT conditions to
|
||||
# allow the simulation box to contract to it's natural size. We do that here:
|
||||
# We begin the simulation at 100 barr (a relatively low pressure), and
|
||||
# slowly decrease it to 1 barr, maintianing the temperature at 300K.
|
||||
|
||||
dump dumpeq3 all custom 200 traj_eq3_npt.lammpstrj id mol type x y z ix iy iz
|
||||
fix fxnpt all npt temp 300.0 300.0 100.0 iso 100.0 1.0 1000.0 drag 2.0
|
||||
|
||||
timestep 1.0
|
||||
run 30000
|
||||
|
||||
write_data system_after_eq3_npt.data
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
# PREREQUISITES:
|
||||
#
|
||||
# 1) You must use moltemplate.sh to create 3 files:
|
||||
# system.data system.in.init system.in.settings
|
||||
# (Follow the instructions in README_setup.sh, or run it using ./README_sh.)
|
||||
# 2) You must equilibrate the system beforehand using "run.in.npt".
|
||||
# This will create the file "system_after_npt.data" which this file reads.
|
||||
# (Note: I have not verified that this equilibration protocol works well.)
|
||||
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
|
||||
# Read the coordinates generated by an earlier NPT simulation
|
||||
|
||||
read_data system_after_eq3_npt.data
|
||||
|
||||
# (The "write_restart" and "read_restart" commands were buggy in 2012,
|
||||
# but they should work also. I prefer "write_data" and "read_data".)
|
||||
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
# -- simulation protocol --
|
||||
|
||||
|
||||
timestep 1.0
|
||||
dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz
|
||||
fix fxnvt all nvt temp 350.0 350.0 500.0 tchain 1
|
||||
thermo 100
|
||||
#thermo_modify flush yes
|
||||
|
||||
run 50000
|
||||
|
||||
write_data system_after_nvt.data
|
||||
@ -1,42 +0,0 @@
|
||||
This is an example of how to use "canned" force-fields in like GAFF in LAMMPS.
|
||||
In this example, we specify only the atom names, bond connectivity,
|
||||
(and coordinates and charge), and use moltemplate to
|
||||
load the GAFF parameters from an external file (gaff.lt)
|
||||
(...instead of specifying them explicitly in the molecule definition).
|
||||
|
||||
The simulation consists of a mixture of isobutane and water.
|
||||
Over time (less than 1 ns), the two molecules phase-separate.
|
||||
|
||||
The GAFF parameters are applied only to the isobutane molecule.
|
||||
(The water molecule paramters are defined explicitly in common/tip3p_2004.lt)
|
||||
For this to work, make sure you have defined the MOLTEMPLATE_PATH
|
||||
environment variable and set it to "common". See manual for more details.)
|
||||
|
||||
# WARNING: THIS IS A PRELIMINARY EXAMPLE WHICH USES AMBER'S GAFF FORCE FIELD.
|
||||
# THIS FEATURE IS CURRENTLY BEING TESTED (AS OF 2013-8-08).
|
||||
# THE ABILITY TO DETECT AND ASSIGN GAFF FORCE FIELD PARAMETERS
|
||||
# MOLECULES ACCORDING TO ATOM TYPE IS AN EXPERIMENTAL FEATURE
|
||||
# AND CURRENTLY PROBABLY HAS BUGS (IN THE DIHEDRALS AND IMPROPERS).
|
||||
#
|
||||
# (In addition, I am embarassed to admit I do not understand
|
||||
# atom nomenclature, and I am not sure if I am using
|
||||
# the correct GAFF atom names in the isobutane molecule.)
|
||||
# PLEASE REPORT BUGS AND/OR SEND CORRECTIONS. -A 2013-8-08
|
||||
#
|
||||
# -------- REQUIREMENTS: ---------
|
||||
# 1) This example requires building LAMMPS with the "USER-MISC" package.
|
||||
# (because it makes use of "gaff.lt" which uses dihedral_style fourier)
|
||||
# To do this, type "make yes-user-misc" before compiling LAMMPS.
|
||||
# http://lammps.sandia.gov/doc/Section_start.html#start_3
|
||||
# 2) You must define your MOLTEMPLATE_PATH environment variable
|
||||
# and set it to the "common" subdirectory of your moltemplate distribution.
|
||||
# (See the "Installation" section in the moltemplate manual.)
|
||||
|
||||
More detailed instructions on how to build LAMMPS input files and
|
||||
run a short simulation are provided in other README files.
|
||||
|
||||
step 1)
|
||||
README_setup.sh
|
||||
|
||||
step 2)
|
||||
README_run.sh
|
||||
@ -1,39 +0,0 @@
|
||||
# --- Running LAMMPS ---
|
||||
# -------- REQUIREMENTS: ---------
|
||||
# 1) This example requires building LAMMPS with the "USER-MISC" package.
|
||||
# (because it makes use of "gaff.lt" which uses dihedral_style fourier)
|
||||
# To do this, type "make yes-user-misc" before compiling LAMMPS.
|
||||
# http://lammps.sandia.gov/doc/Section_start.html#start_3
|
||||
# -------- PREREQUISITES: --------
|
||||
# The 2 files "run.in.npt", and "run.in.nvt" are LAMMPS
|
||||
# input scripts which link to the input scripts and data files
|
||||
# you hopefully have created earlier with moltemplate.sh:
|
||||
# system.in.init, system.in.settings, system.data
|
||||
# If not, carry out the instructions in "README_setup.sh".
|
||||
#
|
||||
# -- Instructions: --
|
||||
# If "lmp_linux" is the name of the command you use to invoke lammps,
|
||||
# then you would run lammps on these files this way:
|
||||
|
||||
|
||||
lmp_linux -i run.in.npt # minimization and simulation at constant pressure
|
||||
lmp_linux -i run.in.nvt # minimization and simulation at constant volume
|
||||
|
||||
#(Note: The constant volume simulation lacks pressure equilibration. These are
|
||||
# completely separate simulations. The results of the constant pressure
|
||||
# simulation might be ignored when beginning the simulation at constant
|
||||
# volume. (This is because restart files in LAMMPS don't always work,
|
||||
# and I was spending a lot of time trying to convince people it was a
|
||||
# LAMMPS bug, instead of a moltemplate bug, so I disabled restart files.)
|
||||
# Read the "run.in.nvt" file to find out how to use the "read_restart"
|
||||
# command to load the results of the pressure-equilibration simulation,
|
||||
# before beginning a constant-volume run.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# If you have compiled the MPI version of lammps, you can run lammps in parallel
|
||||
#mpirun -np 4 lmp_linux -i run.in.npt
|
||||
#mpirun -np 4 lmp_linux -i run.in.nvt
|
||||
# (assuming you have 4 processors available)
|
||||
@ -1,116 +0,0 @@
|
||||
# -------- REQUIREMENTS: ---------
|
||||
# You must define your MOLTEMPLATE_PATH environment variable
|
||||
# and set it to the "common" subdirectory of your moltemplate distribution.
|
||||
# (See the "Installation" section in the moltemplate manual.)
|
||||
|
||||
|
||||
# Create LAMMPS input files this way:
|
||||
cd moltemplate_files
|
||||
|
||||
# run moltemplate
|
||||
|
||||
moltemplate.sh system.lt
|
||||
|
||||
# This will generate various files with names ending in *.in* and *.data.
|
||||
|
||||
# FIX THE PAIR STYLES
|
||||
# (Sorry, this is messy)
|
||||
#
|
||||
# I was forced to change the default pair-style for AMBER-force-fields (GAFF)
|
||||
# from lj/charmm/coul/long to lj/charmm/coul/charmm. (This is because
|
||||
# LAMMPS crashes when using lj/charmm/coul/long on a system without any
|
||||
# charged particles, and users were complaining it was moltemplate's fault.
|
||||
# I wish LAMMPS would not do this.)
|
||||
#
|
||||
# Unfortunately, this means that the "Isobutane" molecule (which uses
|
||||
# AMBER's GAFF), and the "TIP3P_2004" molecule now use different pair styles.
|
||||
#
|
||||
# The cleanest way to fix this is to force the two molecules to use
|
||||
# the same pair style.
|
||||
# (Using a hybrid pair_style is not practical because that disables mixing
|
||||
# rules. This would force us to add a huge list of pair_coeff commands to
|
||||
# explain how TIP3P_2004 atoms interact with all of the various GAFF atoms.)
|
||||
|
||||
# Add a line to systems.in.init to override the pair_style.
|
||||
# Change the pair_style to "lj/charmm/coul/long 10.0 10.5 10.5".
|
||||
|
||||
echo "pair_style hybrid lj/charmm/coul/long 10.0 10.5 10.5" >> system.in.init
|
||||
|
||||
# Then use "sed" to replace "lj/charmm/coul/charmm" with "lj/charmm/coul/long"
|
||||
sed -i 's/lj\/charmm\/coul\/charmm/lj\/charmm\/coul\/long/g' system.in.settings
|
||||
|
||||
# These files are the input files directly read by LAMMPS. Move them to
|
||||
# the parent directory (or wherever you plan to run the simulation).
|
||||
#cp -f system.data system.in* ../
|
||||
|
||||
|
||||
# --------- OPTIONAL STEPS FOR STRIPPING OUT JUNK ---------
|
||||
# --------- edit 2013-8-28 ---------
|
||||
echo "-----------------------------------------------------------------" >&2
|
||||
echo "OPTIONAL STEP: PRUNING THE RESULTING MOLTEMPLATE OUTPUT TO" >&2
|
||||
echo " INCLUDE ONLY ATOMS AND TYPES WE ARE ACTUALLY USING." >&2
|
||||
# Unfortunately, as of 2013-8-28, these files contain a lot of irrelevant
|
||||
# information (for atom types not present in the current system).
|
||||
# For now, we can strip this out using ltemplify.py to build a new .lt file.
|
||||
# THIS IS AN UGLY WORKAROUND. HOPEFULLY IN THE FUTURE, WE CAN SKIP THESE STEPS
|
||||
|
||||
# do this in a temporary_directory
|
||||
mkdir new_lt_file
|
||||
cd new_lt_file/
|
||||
|
||||
# now run ltemplify.py
|
||||
|
||||
ltemplify.py ../system.in.init ../system.in.settings ../system.data > system.lt
|
||||
rm -rf ../system.data ../system.in* # these old lammps files no longer needed
|
||||
|
||||
# This creates a new .LT file named "system.lt" in the local directory.
|
||||
# Unfortunately, it may be missing some information because ltemplify.py
|
||||
# does not understand all the commands present in a LAMMPS input script.
|
||||
# If you define groups or use constraints, you must define them again. In this
|
||||
# case, we must add the SHAKE constraint for the "TIP3P_2004" water molecule.
|
||||
# So we have to remember the original name of the bond types and angle types.
|
||||
# (For this example, SHAKE is applied to the water molecule, which is defined
|
||||
# in "tip3p_2004.lt" file in the "common/" directory. Check this file.)
|
||||
ATOMTYPENUM_ow=`awk '{if ($1 == "@/atom:TIP3P_2004/ow") print $2}' < ../output_ttree/ttree_assignments.txt`
|
||||
ATOMTYPENUM_hw=`awk '{if ($1 == "@/atom:TIP3P_2004/hw") print $2}' < ../output_ttree/ttree_assignments.txt`
|
||||
BONDTYPENUM=`awk '{if ($1 == "@/bond:TIP3P_2004/OH") print $2}' < ../output_ttree/ttree_assignments.txt`
|
||||
ANGLETYPENUM=`awk '{if ($1 == "@/angle:TIP3P_2004/HOH") print $2}' < ../output_ttree/ttree_assignments.txt`
|
||||
echo "" >> system.lt
|
||||
echo "write_once(\"In Settings\") {" >> system.lt
|
||||
echo " group tip3p type @atom:type$ATOMTYPENUM_ow @atom:type$ATOMTYPENUM_hw" >> system.lt
|
||||
echo " fix fShakeTIP3P tip3p shake 0.0001 10 100 b @bond:type$BONDTYPENUM a @angle:type$ANGLETYPENUM" >> system.lt
|
||||
echo "}" >> system.lt
|
||||
echo "" >> system.lt
|
||||
|
||||
# The ltemplify.py script also does not copy the boundary dimensions.
|
||||
# We must do this manually as well.
|
||||
echo "write_once(\"Data Boundary\") {" >> system.lt
|
||||
cat "../output_ttree/Data Boundary" >> system.lt
|
||||
echo "}" >> system.lt
|
||||
echo "" >> system.lt
|
||||
# Now, run moltemplate on this new .LT file.
|
||||
moltemplate.sh system.lt
|
||||
# This will create: "system.data" "system.in.init" "system.in.settings."
|
||||
|
||||
# move the final DATA and INput scripts to the desired location,
|
||||
mv -f system.data system.in* ../../
|
||||
|
||||
# and clean up the mess
|
||||
rm -rf output_ttree/
|
||||
cd ..
|
||||
rm -rf new_lt_file/
|
||||
echo "---------------- DONE PRUNING MOLTEMPLATE OUTPUT ----------------" >&2
|
||||
echo "-----------------------------------------------------------------" >&2
|
||||
# --------- END OF OPTIONAL STEPS FOR STRIPPING OUT JUNK ---------
|
||||
|
||||
|
||||
|
||||
|
||||
# Optional:
|
||||
# The "./output_ttree/" directory is full of temporary files generated by
|
||||
# moltemplate. They can be useful for debugging, but are usually thrown away.
|
||||
rm -rf output_ttree/
|
||||
|
||||
|
||||
|
||||
cd ../
|
||||
@ -1,87 +0,0 @@
|
||||
|
||||
------- To view a lammps trajectory in VMD --------
|
||||
|
||||
|
||||
1) Build a PSF file for use in viewing with VMD.
|
||||
|
||||
This step works with VMD 1.9 and topotools 1.2.
|
||||
(Older versions, like VMD 1.8.6, don't support this.)
|
||||
|
||||
|
||||
a) Start VMD
|
||||
b) Menu Extensions->Tk Console
|
||||
c) Enter:
|
||||
|
||||
(I assume that the the DATA file is called "system.data")
|
||||
|
||||
topo readlammpsdata system.data full
|
||||
animate write psf system.psf
|
||||
|
||||
2)
|
||||
|
||||
Later, to Load a trajectory in VMD:
|
||||
|
||||
Start VMD
|
||||
Select menu: File->New Molecule
|
||||
-Browse to select the PSF file you created above, and load it.
|
||||
(Don't close the window yet.)
|
||||
-Browse to select the trajectory file.
|
||||
If necessary, for "file type" select: "LAMMPS Trajectory"
|
||||
Load it.
|
||||
|
||||
---- A note on trajectory format: -----
|
||||
If the trajectory is a DUMP file, then make sure the it contains the
|
||||
information you need for pbctools (see below. I've been using this
|
||||
command in my LAMMPS scripts to create the trajectories:
|
||||
|
||||
dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
It's a good idea to use an atom_style which supports molecule-ID numbers
|
||||
so that you can assign a molecule-ID number to each atom. (I think this
|
||||
is needed to wrap atom coordinates without breaking molecules in half.)
|
||||
|
||||
Of course, you don't have to save your trajectories in DUMP format,
|
||||
(other formats like DCD work fine) I just mention dump files
|
||||
because these are the files I'm familiar with.
|
||||
|
||||
3) ----- Wrap the coordinates to the unit cell
|
||||
(without cutting the molecules in half)
|
||||
|
||||
a) Start VMD
|
||||
b) Load the trajectory in VMD (see above)
|
||||
c) Menu Extensions->Tk Console
|
||||
d) Try entering these commands:
|
||||
|
||||
pbc wrap -compound res -all
|
||||
pbc box
|
||||
|
||||
----- Optional ----
|
||||
Sometimes the solvent or membrane obscures the view of the solute.
|
||||
It can help to shift the location of the periodic boundary box
|
||||
To shift the box in the y direction (for example) do this:
|
||||
|
||||
pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0}
|
||||
pbc box -shiftcenterrel {0.0 0.15 0.0}
|
||||
|
||||
Distances are measured in units of box-length fractions, not Angstroms.
|
||||
|
||||
Alternately if you have a solute whose atoms are all of type 1,
|
||||
then you can also try this to center the box around it:
|
||||
|
||||
pbc wrap -sel type=1 -all -centersel type=2 -center com
|
||||
|
||||
4)
|
||||
You should check if your periodic boundary conditions are too small.
|
||||
To do that:
|
||||
select Graphics->Representations menu option
|
||||
click on the "Periodic" tab, and
|
||||
click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes.
|
||||
|
||||
5) Optional: If you like, change the atom types in the PSF file so
|
||||
that VMD recognizes the atom types, use something like:
|
||||
|
||||
sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf
|
||||
sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf
|
||||
sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf
|
||||
|
||||
(If you do this, it might effect step 2 above.)
|
||||
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 9.8 KiB |
@ -1,51 +0,0 @@
|
||||
import "gaff.lt"
|
||||
|
||||
# The "gaff.lt" file is usually located in $MOLTEMPLATE_PATH (and is
|
||||
# distributed with moltemplate. See the "Installation" section in the manual.)
|
||||
# It contains definitions of the atoms "c3", "h1", as well as the bonded
|
||||
# and non-bonded interactions between them (and many other atoms).
|
||||
|
||||
# Moltemplate is a simple text manipulation tool and can not assign atomic
|
||||
# charge. So the charges for the atoms in this example are all set to zero.
|
||||
# In a realistic simulation, one must assign (partial) charges to each atom.
|
||||
|
||||
|
||||
Isobutane inherits GAFF {
|
||||
|
||||
|
||||
write('Data Atoms') {
|
||||
$atom:C0 $mol:. @atom:c3 0.0 -0.001 -0.001 -0.439
|
||||
$atom:C1 $mol:. @atom:c3 0.0 -1.257 -0.726 0.078
|
||||
$atom:C2 $mol:. @atom:c3 0.0 1.258 -0.726 0.072
|
||||
$atom:C3 $mol:. @atom:c3 0.0 -0.001 1.453 0.069
|
||||
$atom:H0 $mol:. @atom:h1 0.0 -0.003 -0.004 -1.439
|
||||
$atom:H11 $mol:. @atom:h1 0.0 -2.075 -0.255 -0.254
|
||||
$atom:H12 $mol:. @atom:h1 0.0 -1.256 -0.724 1.078
|
||||
$atom:H13 $mol:. @atom:h1 0.0 -1.259 -1.669 -0.253
|
||||
$atom:H21 $mol:. @atom:h1 0.0 2.074 -0.255 -0.264
|
||||
$atom:H22 $mol:. @atom:h1 0.0 1.258 -1.669 -0.259
|
||||
$atom:H23 $mol:. @atom:h1 0.0 1.261 -0.724 1.072
|
||||
$atom:H31 $mol:. @atom:h1 0.0 -0.817 1.923 -0.263
|
||||
$atom:H32 $mol:. @atom:h1 0.0 0.816 1.923 -0.268
|
||||
$atom:H33 $mol:. @atom:h1 0.0 0.003 1.456 1.070
|
||||
}
|
||||
|
||||
# The "." in "$mol:." refers to the current object's molecule ID,
|
||||
|
||||
write('Data Bond List') {
|
||||
$bond:C01 $atom:C0 $atom:C1
|
||||
$bond:C02 $atom:C0 $atom:C2
|
||||
$bond:C03 $atom:C0 $atom:C3
|
||||
$bond:C0H $atom:C0 $atom:H0
|
||||
$bond:C1H1 $atom:C1 $atom:H11
|
||||
$bond:C1H2 $atom:C1 $atom:H12
|
||||
$bond:C1H3 $atom:C1 $atom:H13
|
||||
$bond:C2H1 $atom:C2 $atom:H21
|
||||
$bond:C2H2 $atom:C2 $atom:H22
|
||||
$bond:C2H3 $atom:C2 $atom:H23
|
||||
$bond:C3H1 $atom:C3 $atom:H31
|
||||
$bond:C3H2 $atom:C3 $atom:H32
|
||||
$bond:C3H3 $atom:C3 $atom:H33
|
||||
}
|
||||
|
||||
} # Isobutane
|
||||
@ -1,32 +0,0 @@
|
||||
import "tip3p_2004.lt"
|
||||
# <- This defines the TIP3P water molecule. This file is
|
||||
# located in the "common" directory. You can either copy it
|
||||
# here, or (preferably), you can define a MOLTEMPLATE_PATH
|
||||
# environment variable and point it to "common".
|
||||
# (as explained in the installation section of the manual).
|
||||
|
||||
import "isobutane.lt" # <- defines the "Isobutane" molecule type.
|
||||
|
||||
|
||||
# Periodic boundary conditions:
|
||||
write_once("Data Boundary") {
|
||||
0.0 41.50 xlo xhi
|
||||
0.0 41.50 ylo yhi
|
||||
0.0 41.50 zlo zhi
|
||||
}
|
||||
|
||||
|
||||
# The next command generates a (rather dense) cubic lattice with
|
||||
# spacing 3.45 Angstroms. (The pressure must be equilibrated later.)
|
||||
|
||||
wat = new TIP3P_2004 [12].move(0.00, 0.00, 3.45)
|
||||
[12].move(0.00, 3.45, 0.00)
|
||||
[12].move(3.45, 0.00, 0.00)
|
||||
|
||||
isobutane = new Isobutane [4].move(0, 0, 10.35)
|
||||
[4].move(0, 10.35, 0)
|
||||
[4].move(10.35, 0, 0)
|
||||
|
||||
# move the isobutane molecules slightly to reduce overlap with the water
|
||||
isobutane[*][*][*].move(1.725, 1.725, 1.725)
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
# PREREQUISITES:
|
||||
#
|
||||
# You must use moltemplate.sh to create 3 files:
|
||||
# system.data system.in.init system.in.settings
|
||||
# (Follow the instructions in README_setup.sh, or run it using ./README_sh.)
|
||||
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
read_data system.data
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
|
||||
# -- minimization protocol --
|
||||
|
||||
# Note: The minimization step is not necessary in this example. However
|
||||
# in general, it's always a good idea to minimize the system beforehand.
|
||||
# fShakeTIP3P was defined in system.in.settings. It is incompatible with "minimize".
|
||||
unfix fShakeTIP3P
|
||||
minimize 1.0e-4 1.0e-6 100000 400000
|
||||
# Now read "system.in.settings" in order to redefine fShakeTIP3P again:
|
||||
include system.in.settings
|
||||
|
||||
# -- simulation protocol --
|
||||
|
||||
|
||||
timestep 1.0
|
||||
dump 1 all custom 500 traj_npt.lammpstrj id mol type x y z ix iy iz
|
||||
fix fxnpt all npt temp 300.0 300.0 100.0 iso 1.0 1.0 1000.0 drag 1.0
|
||||
thermo 100
|
||||
#thermo_modify flush yes
|
||||
|
||||
run 2000
|
||||
|
||||
write_data system_after_npt.data
|
||||
@ -1,51 +0,0 @@
|
||||
# PREREQUISITES:
|
||||
#
|
||||
# 1) You must use moltemplate.sh to create 3 files:
|
||||
# system.data system.in.init system.in.settings
|
||||
# (Follow the instructions in README_setup.sh, or run it using ./README_sh.)
|
||||
# 2) You must equilibrate the system beforehand using "run.in.npt".
|
||||
# This will create the file "system_after_npt.data" which this file reads.
|
||||
# (Note: I have not verified that this equilibration protocol works well.)
|
||||
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
|
||||
# Read the coordinates generated by an earlier NPT simulation
|
||||
|
||||
read_data system_after_npt.data
|
||||
|
||||
# (The "write_restart" and "read_restart" commands were buggy in 2012,
|
||||
# but they should work also. I prefer "write_data" and "read_data".)
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
# COMMENTING OUT MINIMIZATION STEPS:
|
||||
# If you are reading the coordinates generated by the NPT run
|
||||
# then you should not need to minimize the system beforehand.
|
||||
# -- minimization protocol --
|
||||
## ("fix shake" is incompatible with "minimize".)
|
||||
#unfix fShakeTIP3P
|
||||
#minimize 1.0e-4 1.0e-6 100000 400000
|
||||
## Now read "system.in.settings" in order to redefine fShakeTIP3P again:
|
||||
#include system.in.settings
|
||||
|
||||
# -- simulation protocol --
|
||||
|
||||
|
||||
timestep 1.0
|
||||
dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz
|
||||
fix fxnvt all nvt temp 300.0 300.0 500.0 tchain 1
|
||||
thermo 500
|
||||
#thermo_modify flush yes
|
||||
|
||||
run 50000
|
||||
|
||||
write_restart system_after_nvt.data
|
||||
@ -1,54 +0,0 @@
|
||||
NOTE: This example requires the "Al99.eam.alloy" file.
|
||||
(It was not included in this directory because if its large size.)
|
||||
As of 2012-11, I was able to obtain it here:
|
||||
http://www.ctcms.nist.gov/~cbecker/Download/Al-YM/Al99.eam.alloy
|
||||
Copy it to the directory containing this README file.
|
||||
------------------------------------------------------------------------
|
||||
This example shows an alternative way to setup the
|
||||
aluminum crystal loading simulation described here:
|
||||
http://icme.hpc.msstate.edu/mediawiki/index.php/Uniaxial_Compression
|
||||
by Mark Tschopp and Nathan R. Rhodes
|
||||
For additional backgroumd information, please consult that web page.
|
||||
|
||||
In this example, I use moltemplate to build a "DATA" file for this system.
|
||||
(I can't think of a compelling reason to do this for simple simulations like
|
||||
this. But this approach might be useful if you want to artificially create
|
||||
unusual structures out of aluminum crystals, or mix them with other molecules.
|
||||
I created this example in response to a user request.)
|
||||
|
||||
|
||||
--- To build the system ---
|
||||
|
||||
Carry out the instructions in README_setup.sh,
|
||||
to generate the LAMMPS DATA file and input scripts you need:
|
||||
system.data, system.in.init, system.in.settings.
|
||||
(The run.in script contains references to these files.)
|
||||
|
||||
|
||||
--- To run LAMMPS, try a command like: ---
|
||||
|
||||
lmp_linux -i run.in
|
||||
|
||||
or (if you have mpi installed)
|
||||
|
||||
mpirun -np 4 lmp_linux -i run.in
|
||||
|
||||
This will create an ordinary LAMMPS dump file you can visualize with VMD
|
||||
traj.lammpstrj (See README_visualize.txt)
|
||||
|
||||
It will also create a number of other files, such as:
|
||||
dump.comp_0.cfg
|
||||
dump.comp_500.cfg
|
||||
dump.comp_20000.cfg
|
||||
Al_comp_100.def1.txt
|
||||
|
||||
The dump.comp_*.cfg files can be visualized using
|
||||
AtomEye if you have AtomEye and ImageJ installed.
|
||||
The procedure for doing this is explained in the original tutorial at:
|
||||
http://icme.hpc.msstate.edu/mediawiki/index.php/Uniaxial_Compression
|
||||
|
||||
The "Al_comp_100.def1.txt" file is a four-column text file containing:
|
||||
column 1: v_strain = (lx - v_L0)/v_L0
|
||||
column 2: -pxx/10000 (diagonal components of the stress tensor)
|
||||
column 3: -pyy/10000
|
||||
column 4: -pzz/10000
|
||||
@ -1,29 +0,0 @@
|
||||
# Use these commands to generate the LAMMPS input script and data file
|
||||
# (and other auxilliary files):
|
||||
|
||||
|
||||
# Create LAMMPS input files this way:
|
||||
cd moltemplate_files
|
||||
|
||||
# run moltemplate
|
||||
|
||||
moltemplate.sh -atomstyle full system.lt
|
||||
|
||||
# This will generate various files with names ending in *.in* and *.data.
|
||||
# These files are the input files directly read by LAMMPS. Move them to
|
||||
# the parent directory (or wherever you plan to run the simulation).
|
||||
|
||||
mv -f system.in* system.data ../
|
||||
|
||||
# We will also need the "Al99.eam.alloy" file:
|
||||
#cp -f Al99.eam.alloy ../
|
||||
# This file was (can be) downloaded from:
|
||||
# http://www.ctcms.nist.gov/~cbecker/Download/Al-YM/Al99.eam.alloy
|
||||
|
||||
|
||||
# Optional:
|
||||
# The "./output_ttree/" directory is full of temporary files generated by
|
||||
# moltemplate. They can be useful for debugging, but are usually thrown away.
|
||||
rm -rf output_ttree/
|
||||
|
||||
cd ../
|
||||
@ -1,87 +0,0 @@
|
||||
|
||||
------- To view a lammps trajectory in VMD --------
|
||||
|
||||
|
||||
1) Build a PSF file for use in viewing with VMD.
|
||||
|
||||
This step works with VMD 1.9 and topotools 1.2.
|
||||
(Older versions, like VMD 1.8.6, don't support this.)
|
||||
|
||||
|
||||
a) Start VMD
|
||||
b) Menu Extensions->Tk Console
|
||||
c) Enter:
|
||||
|
||||
(I assume that the the DATA file is called "system.data")
|
||||
|
||||
topo readlammpsdata system.data full
|
||||
animate write psf system.psf
|
||||
|
||||
2)
|
||||
|
||||
Later, to Load a trajectory in VMD:
|
||||
|
||||
Start VMD
|
||||
Select menu: File->New Molecule
|
||||
-Browse to select the PSF file you created above, and load it.
|
||||
(Don't close the window yet.)
|
||||
-Browse to select the trajectory file.
|
||||
If necessary, for "file type" select: "LAMMPS Trajectory"
|
||||
Load it.
|
||||
|
||||
---- A note on trajectory format: -----
|
||||
If the trajectory is a DUMP file, then make sure the it contains the
|
||||
information you need for pbctools (see below. I've been using this
|
||||
command in my LAMMPS scripts to create the trajectories:
|
||||
|
||||
dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
It's a good idea to use an atom_style which supports molecule-ID numbers
|
||||
so that you can assign a molecule-ID number to each atom. (I think this
|
||||
is needed to wrap atom coordinates without breaking molecules in half.)
|
||||
|
||||
Of course, you don't have to save your trajectories in DUMP format,
|
||||
(other formats like DCD work fine) I just mention dump files
|
||||
because these are the files I'm familiar with.
|
||||
|
||||
3) ----- Wrap the coordinates to the unit cell
|
||||
(without cutting the molecules in half)
|
||||
|
||||
a) Start VMD
|
||||
b) Load the trajectory in VMD (see above)
|
||||
c) Menu Extensions->Tk Console
|
||||
d) Try entering these commands:
|
||||
|
||||
pbc wrap -compound res -all
|
||||
pbc box
|
||||
|
||||
----- Optional ----
|
||||
Sometimes the solvent or membrane obscures the view of the solute.
|
||||
It can help to shift the location of the periodic boundary box
|
||||
To shift the box in the y direction (for example) do this:
|
||||
|
||||
pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0}
|
||||
pbc box -shiftcenterrel {0.0 0.15 0.0}
|
||||
|
||||
Distances are measured in units of box-length fractions, not Angstroms.
|
||||
|
||||
Alternately if you have a solute whose atoms are all of type 1,
|
||||
then you can also try this to center the box around it:
|
||||
|
||||
pbc wrap -sel type=1 -all -centersel type=2 -center com
|
||||
|
||||
4)
|
||||
You should check if your periodic boundary conditions are too small.
|
||||
To do that:
|
||||
select Graphics->Representations menu option
|
||||
click on the "Periodic" tab, and
|
||||
click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes.
|
||||
|
||||
5) Optional: If you like, change the atom types in the PSF file so
|
||||
that VMD recognizes the atom types, use something like:
|
||||
|
||||
sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf
|
||||
sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf
|
||||
sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf
|
||||
|
||||
(If you do this, it might effect step 2 above.)
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 29 KiB |
@ -1,22 +0,0 @@
|
||||
# This example shows an alternative way to setup the
|
||||
# aluminum crystal loading simulation described here:
|
||||
# http://icme.hpc.msstate.edu/mediawiki/index.php/Uniaxial_Compression
|
||||
# by Mark Tschopp and Nathan R. Rhodes
|
||||
# For additional backgroumd information, please consult that web page.
|
||||
#
|
||||
# In this example, I use moltemplate to build a "DATA" file for this system.
|
||||
# (I can't think of a compelling reason to do this for simple simulations like
|
||||
# this. But this approach might be useful if you want to artificially create
|
||||
# unusual structures out of aluminum crystals, or mix them with other molecules.
|
||||
# I created this example in response to a user request.)
|
||||
#
|
||||
# Use these commands to generate the LAMMPS input script and data file:
|
||||
|
||||
moltemplate.sh system.lt
|
||||
|
||||
# This will generate system.data, system.in.init, system.in.settings.
|
||||
# In addition to will need to download "Al99.eam.alloy" file.
|
||||
# (It was not included in this directory because if its large size.)
|
||||
# As of 2012-11, I was able to obtain it here:
|
||||
# http://www.ctcms.nist.gov/~cbecker/Download/Al-YM/Al99.eam.alloy
|
||||
|
||||
@ -1,64 +0,0 @@
|
||||
# "AlCell" defines the 4-atom FCC unit cell
|
||||
# of Aluminum (with a 4.05 angstrom spacing)
|
||||
|
||||
AlCell {
|
||||
|
||||
# AtomID MolID(IGNORE!) AtomType Charge X Y Z
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:AlC $mol:... @atom:Al 0.0 0.000 0.000 0.000
|
||||
$atom:AlX $mol:... @atom:Al 0.0 0.000 2.025 2.025
|
||||
$atom:AlY $mol:... @atom:Al 0.0 2.025 0.000 2.025
|
||||
$atom:AlZ $mol:... @atom:Al 0.0 2.025 2.025 0.000
|
||||
}
|
||||
|
||||
write_once("In Init") {
|
||||
units metal
|
||||
atom_style full # <- Requires each atom has a MolID and Charge.
|
||||
# This is not necessary. (Why use "full"?
|
||||
# The "full" atom style is useful if you want to
|
||||
# mix the aluminum with other molecules later.
|
||||
# Otherwise, just use "atom_style atomic", and
|
||||
# and remove the 2nd and 4th columns above.)
|
||||
pair_style eam/alloy
|
||||
}
|
||||
|
||||
write_once("In Settings") {
|
||||
pair_coeff * * Al99.eam.alloy Al
|
||||
}
|
||||
|
||||
write_once("Data Masses") {
|
||||
@atom:Al 27.0
|
||||
}
|
||||
|
||||
} # AlCell
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Here is an alternate way to define AlCell
|
||||
# using "scale(4.05)" to select the lattice spacing:
|
||||
#
|
||||
#FccCell {
|
||||
# write("Data Atoms") {
|
||||
# $atom:AlC $mol:... @atom:Al 0.0 0.0 0.0 0.0
|
||||
# $atom:AlX $mol:... @atom:Al 0.0 0.0 0.5 0.5
|
||||
# $atom:AlY $mol:... @atom:Al 0.0 0.5 0.0 0.5
|
||||
# $atom:AyZ $mol:... @atom:Al 0.0 0.5 0.5 0.0
|
||||
# }
|
||||
# write_once("Data Masses") {
|
||||
# @atom:Al 27.0
|
||||
# }
|
||||
# write_once("In Init") {
|
||||
# units metal
|
||||
# atom_style full
|
||||
# pair_style eam/alloy
|
||||
# }
|
||||
# write_once("In Settings") {
|
||||
# pair_coeff * * Al99.eam.alloy Al
|
||||
# }
|
||||
#}
|
||||
#
|
||||
#AlCell = FccCell.scale(4.05)
|
||||
#
|
||||
@ -1,35 +0,0 @@
|
||||
|
||||
import "al_cell.lt" # <- this defines the unit cell for aluminum
|
||||
|
||||
# Periodic boundary conditions:
|
||||
write_once("Data Boundary") {
|
||||
0.0 40.50 xlo xhi
|
||||
0.0 40.50 ylo yhi
|
||||
0.0 40.50 zlo zhi
|
||||
}
|
||||
|
||||
# The next command generates an array of 10x10x10 AlCell unit cells with
|
||||
# spacing 4.05 Angstroms.
|
||||
|
||||
unitcells = new AlCell [10].move(0.00, 0.00, 4.05)
|
||||
[10].move(0.00, 4.05, 0.00)
|
||||
[10].move(4.05, 0.00, 0.00)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################
|
||||
# The next command is not necessary:
|
||||
#
|
||||
create_var { $mol } # <-This forces all of the Al atoms in the crystal
|
||||
# # to share the same molecule ID number.
|
||||
# # Molecule ID numbers are not necessary. Ignore this.
|
||||
#
|
||||
@ -1,76 +0,0 @@
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
read_data system.data
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
#
|
||||
# The run-settings below were stolen from:
|
||||
#
|
||||
# http://icme.hpc.msstate.edu/mediawiki/index.php/Uniaxial_Compression
|
||||
|
||||
|
||||
compute csym all centro/atom fcc
|
||||
compute peratom all pe/atom
|
||||
|
||||
# EQUILIBRATION
|
||||
reset_timestep 0
|
||||
timestep 0.001
|
||||
velocity all create 300 12345 mom yes rot no
|
||||
fix 1 all npt temp 300 300 1 iso 0 0 1 drag 1
|
||||
|
||||
# Set thermo output
|
||||
thermo 1000
|
||||
thermo_style custom step lx ly lz press pxx pyy pzz pe temp
|
||||
|
||||
# Run for at least 10 picosecond (assuming 1 fs timestep)
|
||||
run 20000
|
||||
unfix 1
|
||||
|
||||
# Store final cell length for strain calculations
|
||||
variable tmp equal "lx"
|
||||
variable L0 equal ${tmp}
|
||||
print "Initial Length, L0: ${L0}"
|
||||
|
||||
######################################
|
||||
# DEFORMATION
|
||||
reset_timestep 0
|
||||
|
||||
fix 1 all npt temp 300 300 1 y 0 0 1 z 0 0 1 drag 1
|
||||
variable srate equal 1.0e10
|
||||
variable srate1 equal "-v_srate / 1.0e12"
|
||||
fix 2 all deform 1 x erate ${srate1} units box remap x
|
||||
|
||||
# Output strain and stress info to file
|
||||
# for units metal, pressure is in [bars] = 100 [kPa] = 1/10000 [GPa]
|
||||
# p2, p3, p4 are in GPa
|
||||
variable strain equal "(lx - v_L0)/v_L0"
|
||||
variable p1 equal "v_strain"
|
||||
variable p2 equal "-pxx/10000"
|
||||
variable p3 equal "-pyy/10000"
|
||||
variable p4 equal "-pzz/10000"
|
||||
fix def1 all print 100 "${p1} ${p2} ${p3} ${p4}" file Al_comp_100.def1.txt screen no
|
||||
|
||||
# Use cfg for AtomEye
|
||||
dump dAtomEye all cfg 250 dump.comp_*.cfg id type xs ys zs c_csym c_peratom fx fy fz
|
||||
dump_modify dAtomEye element Al
|
||||
|
||||
# For users without AtomEye (like me), I decided to create a regular dump file:
|
||||
dump dCoords all custom 250 traj.lammpstrj id type x y z ix iy iz
|
||||
|
||||
# Display thermo
|
||||
thermo 1000
|
||||
thermo_style custom step v_strain temp v_p2 v_p3 v_p4 ke pe press
|
||||
|
||||
run 20000
|
||||
|
||||
######################################
|
||||
# SIMULATION DONE
|
||||
print "All done"
|
||||
@ -1,83 +0,0 @@
|
||||
###########################################################
|
||||
# Interaction of a carbon nanotube with a pair of "mystery
|
||||
# molecules" (extracted from the cnat-cnt.data/in files).
|
||||
###########################################################
|
||||
# Author: Aysun Itai and Andrew Jewett
|
||||
|
||||
This example uses "ltemplify.py" to create molecule templates out
|
||||
of two different molecules in a pre-existing LAMMPS IN/DATA file.
|
||||
Then I show how to use "moltemplate.sh" to make copies of these
|
||||
molecules and to move and rotate them (creating new LAMMPS IN/DATA files).
|
||||
|
||||
Disclaimer:
|
||||
The molecules in this example are not physically realistic.
|
||||
The purpose of this example is to demonstrate ltemplify usage.
|
||||
|
||||
REQUIRED INPUT FILES
|
||||
|
||||
cnad-cnt.data cnad-cnt.in system.lt
|
||||
|
||||
cnad-cnt.data
|
||||
This is a LAMMPS data file containing the coordinates and the topology
|
||||
for a system combining the two molecules together. ltemplify will extract
|
||||
molecules from this file, one at a time.
|
||||
|
||||
cnad-cnt.in
|
||||
This file contains force-field parameters and old run settings for the system.
|
||||
(We ignore the run settings in this file.) The force-field parameters in
|
||||
the "cnad-cnt.in" file are only necessary because we are going to build
|
||||
a completely new set of simulation input files. (We are not only going to
|
||||
rotate them and duplicate the molecules.) ltemplify.py will extract the
|
||||
force field parameters from this file. This approach allows us to combine
|
||||
these molecules with other types of molecules later on.)
|
||||
|
||||
system.lt
|
||||
The "system.lt" contains the instructions what we will do with these molecules
|
||||
after ltemplify.py has converted them into .LT format. In this example
|
||||
it contains instructions for rotating and copying the two molecules,
|
||||
(It also defines the periodic boundary conditions.)
|
||||
|
||||
OUTPUT FILES
|
||||
|
||||
cnad.lt
|
||||
cnt.lt
|
||||
|
||||
These files are referenced in system.lt.
|
||||
Running moltemplate.sh on system.lt (using "moltemplate.sh system.lt")
|
||||
creates new LAMMPS data and input files:
|
||||
system.data, system.in, system.in.init, system.in.settings
|
||||
(These files are referenced in run.in.nvt.)
|
||||
|
||||
You can run a simulation from the files created by moltemplate using
|
||||
|
||||
lmp_linux -i run.in.nvt
|
||||
|
||||
NOTE: BECAUSE ALL OF THE ORIGINAL FORCE FIELD PARAMETERS WERE INTENTIONALLY
|
||||
ALTERED, THE SYSTEM WILL MOVE IN A VERY UNREALISTIC WAY WHEN SIMULATED.
|
||||
(This was done to protect the original source of the files.)
|
||||
The goal of this example is only to demonstrate how to use
|
||||
"ltemplify.py" to convert lammps input and data files into
|
||||
LT format and back again.)
|
||||
|
||||
-----------
|
||||
|
||||
Instructions:
|
||||
Run the commands (follow the instructions) in these files:
|
||||
|
||||
step 1)
|
||||
README_step1_run_ltemplify.sh
|
||||
|
||||
and then
|
||||
|
||||
step 2)
|
||||
README_step2_run_moltemplate.sh
|
||||
|
||||
step 3) OPTIONAL
|
||||
|
||||
To run a short LAMMPS simulation, you can use the "in.nvt" file, for example:
|
||||
|
||||
$LAMMPS_BINARY -i run.in.nvt
|
||||
|
||||
where "$LAMMPS_BINARY" is the name of the command you use to invoke lammps
|
||||
(such as lmp_linux, lmp_g++, lmp_mac, lmp_ubuntu, lmp_cygwin, etc...).
|
||||
-----------
|
||||
@ -1,13 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Aysun Itai's LAMMPS files contain two molecules:
|
||||
|
||||
# The CNAD molecule has molecule-id 1
|
||||
|
||||
ltemplify.py -name CNAD -molid "1" cnad-cnt.in cnad-cnt.data > cnad.lt
|
||||
|
||||
# The CNT (carbon nanotube) corresponds to molecule-id 2
|
||||
ltemplify.py -name CNT -molid "2" cnad-cnt.in cnad-cnt.data > cnt.lt
|
||||
|
||||
# This will extract both molecules and save them as separate .LT files.
|
||||
# (We can include these files later when preparing new simulations.)
|
||||
@ -1,18 +0,0 @@
|
||||
# --- Running Moltemplate ---
|
||||
# -- Prerequisites: --
|
||||
# The "system.lt" moltemplate file links to other ".lt" files
|
||||
# files you hopefully have created earlier when you ran "ltemplify.py:
|
||||
# cnad.lt and cnt.lt
|
||||
# If not, carry out the instructions in "README_run_ltemplify.sh".
|
||||
|
||||
moltemplate.sh system.lt
|
||||
|
||||
# This will generate various files with names ending in *.in* and *.data.
|
||||
# These files are the input files directly read by LAMMPS.
|
||||
|
||||
# Optional:
|
||||
# The "./output_ttree/" directory is full of temporary files generated by
|
||||
# moltemplate. They can be useful for debugging, but are usually thrown away.
|
||||
|
||||
rm -rf output_ttree/
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
# --- Running LAMMPS ---
|
||||
# -- Prerequisites: --
|
||||
# The "run.in.nvt" LAMMPS input script links to the input
|
||||
# scripts and data files you hopefully have created earlier
|
||||
# with moltemplate.sh:
|
||||
# system.in.init, system.in.settings, system.data
|
||||
# If not, carry out the instructions in "README_run_moltemplate.sh".
|
||||
#
|
||||
# -- Instructions: --
|
||||
# If "lmp_linux" is the name of the command you use to invoke lammps,
|
||||
# then you would run lammps this way:
|
||||
|
||||
lmp_linux -i run.in.nvt
|
||||
|
||||
# NOTE: BECAUSE ALL OF THE ORIGINAL FORCE FIELD PARAMETERS WERE INTENTIONALLY
|
||||
# REMOVED, THE SYSTEM WILL MOVE IN A VERY UNREALISTIC WAY.
|
||||
@ -1,50 +0,0 @@
|
||||
|
||||
------- To view the trajectory in VMD --------
|
||||
|
||||
|
||||
1) Build a PSF file for use in viewing with VMD.
|
||||
|
||||
This step works with VMD 1.9 and topotools 1.2.
|
||||
(Older versions, like VMD 1.8.6, don't support this.)
|
||||
|
||||
|
||||
a) Start VMD
|
||||
b) Menu Extensions->Tk Console
|
||||
c) Enter:
|
||||
|
||||
(I assume that the the DATA file is called "system.data")
|
||||
|
||||
topo readlammpsdata system.data full
|
||||
animate write psf system.psf
|
||||
|
||||
|
||||
Later, to Load a trajectory in VMD:
|
||||
Start VMD
|
||||
Select menu: File->New Molecule
|
||||
-Browse to select the PSF file you created above, and load it.
|
||||
(Don't close the window yet.)
|
||||
-Browse to select the trajectory file.
|
||||
If necessary, for "file type" select: "LAMMPS Trajectory"
|
||||
Load it
|
||||
|
||||
----- Wrap the coordinates to the unit cell
|
||||
|
||||
a) Start VMD
|
||||
b) Load the trajectory in VMD (see above)
|
||||
c) Menu Extensions->Tk Console
|
||||
d) Enter:
|
||||
|
||||
DISCLAIMER: I'M NOT SURE THESE COMMANDS ARE CORRECT.
|
||||
LOOKUP "pbctools" FOR DETAILS.
|
||||
|
||||
pbc wrap -compound res -all
|
||||
pbc box
|
||||
|
||||
3) Optional: If you like, change the atom types in the PSF file so
|
||||
that VMD recognizes the atom types, use something like:
|
||||
|
||||
sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf
|
||||
sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf
|
||||
sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf
|
||||
|
||||
(If you do this, it might effect step 2 above.)
|
||||
@ -1,49 +0,0 @@
|
||||
#Created by Aysun Itai and modified by Andrew Jewett
|
||||
# NOTE: This file has been extensively modified.
|
||||
# Only the bond connectivity and atomic positions are accurate.
|
||||
|
||||
units real
|
||||
|
||||
neigh_modify delay 2 every 1
|
||||
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
pair_style lj/charmm/coul/charmm 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
|
||||
read_data cnad-cnt.data
|
||||
|
||||
pair_coeff 1 1 0.02 4.0
|
||||
pair_coeff 2 2 0.02 1.0 # atoms will not interact sterically
|
||||
pair_coeff 3 3 0.02 2.0 # in this version of the file.
|
||||
pair_coeff 4 4 0.02 2.0 # (All pair forces and atom names removed)
|
||||
pair_coeff 5 5 0.02 2.0
|
||||
pair_coeff 6 6 0.02 3.0
|
||||
pair_coeff 7 7 0.02 3.0
|
||||
pair_coeff 8 8 0.02 3.0
|
||||
pair_coeff 9 9 0.02 4.0
|
||||
pair_coeff 10 10 0.02 4.0
|
||||
pair_coeff 11 11 0.02 4.0
|
||||
pair_coeff 12 12 0.02 4.0
|
||||
pair_coeff 13 13 0.02 3.0
|
||||
pair_coeff 14 14 0.02 3.0
|
||||
pair_coeff 15 15 0.02 3.0
|
||||
pair_coeff 16 16 0.02 3.0
|
||||
|
||||
group cnt type 1
|
||||
group cnad type 2-16
|
||||
|
||||
displace_atoms cnad move 0 -7 0 units box
|
||||
special_bonds charmm
|
||||
|
||||
velocity all create 0.0 54321 dist uniform
|
||||
|
||||
thermo 1
|
||||
thermo_style multi
|
||||
timestep 0.005
|
||||
|
||||
dump 1 all atom 10 cnad-cnt.dump
|
||||
|
||||
run 20000
|
||||
@ -1,779 +0,0 @@
|
||||
CNT {
|
||||
|
||||
### LAMMPS commands for initialization
|
||||
### (These can be overridden later.)
|
||||
|
||||
|
||||
write_once("In Init") {
|
||||
units real
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
pair_style lj/charmm/coul/charmm 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
special_bonds charmm
|
||||
}
|
||||
|
||||
write_once("In Settings") {
|
||||
pair_coeff @atom:type1 @atom:type1 0.02 4.0
|
||||
}
|
||||
|
||||
### DATA sections
|
||||
|
||||
|
||||
write_once("Data Masses") {
|
||||
@atom:type1 10.0
|
||||
}
|
||||
|
||||
write_once("Data Bond Coeffs") {
|
||||
@bond:type1 2.0 1.4
|
||||
}
|
||||
|
||||
write_once("Data Angle Coeffs") {
|
||||
@angle:type1 0 120.0 0 2.0
|
||||
}
|
||||
|
||||
write_once("Data Dihedral Coeffs") {
|
||||
@dihedral:type1 0.0 2 180 1
|
||||
}
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:id1 $mol:id2 @atom:type1 0.000000 12.345 10.000 4.328
|
||||
$atom:id2 $mol:id2 @atom:type1 0.000000 12.031 11.173 5.037
|
||||
$atom:id3 $mol:id2 @atom:type1 0.000000 12.031 11.173 6.455
|
||||
$atom:id4 $mol:id2 @atom:type1 0.000000 11.173 12.031 7.164
|
||||
$atom:id5 $mol:id2 @atom:type1 0.000000 11.173 12.031 4.328
|
||||
$atom:id6 $mol:id2 @atom:type1 0.000000 10.000 12.345 5.037
|
||||
$atom:id7 $mol:id2 @atom:type1 0.000000 10.000 12.345 6.455
|
||||
$atom:id8 $mol:id2 @atom:type1 0.000000 8.827 12.031 7.164
|
||||
$atom:id9 $mol:id2 @atom:type1 0.000000 8.827 12.031 4.328
|
||||
$atom:id10 $mol:id2 @atom:type1 0.000000 7.969 11.173 5.037
|
||||
$atom:id11 $mol:id2 @atom:type1 0.000000 7.969 11.173 6.455
|
||||
$atom:id12 $mol:id2 @atom:type1 0.000000 7.655 10.000 7.164
|
||||
$atom:id13 $mol:id2 @atom:type1 0.000000 7.655 10.000 4.328
|
||||
$atom:id14 $mol:id2 @atom:type1 0.000000 7.969 8.827 5.037
|
||||
$atom:id15 $mol:id2 @atom:type1 0.000000 7.969 8.827 6.455
|
||||
$atom:id16 $mol:id2 @atom:type1 0.000000 8.827 7.969 7.164
|
||||
$atom:id17 $mol:id2 @atom:type1 0.000000 8.827 7.969 4.328
|
||||
$atom:id18 $mol:id2 @atom:type1 0.000000 10.000 7.655 5.037
|
||||
$atom:id19 $mol:id2 @atom:type1 0.000000 10.000 7.655 6.455
|
||||
$atom:id20 $mol:id2 @atom:type1 0.000000 11.173 7.969 7.164
|
||||
$atom:id21 $mol:id2 @atom:type1 0.000000 11.173 7.969 4.328
|
||||
$atom:id22 $mol:id2 @atom:type1 0.000000 12.031 8.827 5.037
|
||||
$atom:id23 $mol:id2 @atom:type1 0.000000 12.031 8.827 6.455
|
||||
$atom:id24 $mol:id2 @atom:type1 0.000000 12.345 10.000 7.164
|
||||
$atom:id25 $mol:id2 @atom:type1 0.000000 12.345 10.000 8.582
|
||||
$atom:id26 $mol:id2 @atom:type1 0.000000 12.031 11.173 9.291
|
||||
$atom:id27 $mol:id2 @atom:type1 0.000000 12.031 11.173 10.709
|
||||
$atom:id28 $mol:id2 @atom:type1 0.000000 11.173 12.031 11.418
|
||||
$atom:id29 $mol:id2 @atom:type1 0.000000 11.173 12.031 8.582
|
||||
$atom:id30 $mol:id2 @atom:type1 0.000000 10.000 12.345 9.291
|
||||
$atom:id31 $mol:id2 @atom:type1 0.000000 10.000 12.345 10.709
|
||||
$atom:id32 $mol:id2 @atom:type1 0.000000 8.827 12.031 11.418
|
||||
$atom:id33 $mol:id2 @atom:type1 0.000000 8.827 12.031 8.582
|
||||
$atom:id34 $mol:id2 @atom:type1 0.000000 7.969 11.173 9.291
|
||||
$atom:id35 $mol:id2 @atom:type1 0.000000 7.969 11.173 10.709
|
||||
$atom:id36 $mol:id2 @atom:type1 0.000000 7.655 10.000 11.418
|
||||
$atom:id37 $mol:id2 @atom:type1 0.000000 7.655 10.000 8.582
|
||||
$atom:id38 $mol:id2 @atom:type1 0.000000 7.969 8.827 9.291
|
||||
$atom:id39 $mol:id2 @atom:type1 0.000000 7.969 8.827 10.709
|
||||
$atom:id40 $mol:id2 @atom:type1 0.000000 8.827 7.969 11.418
|
||||
$atom:id41 $mol:id2 @atom:type1 0.000000 8.827 7.969 8.582
|
||||
$atom:id42 $mol:id2 @atom:type1 0.000000 10.000 7.655 9.291
|
||||
$atom:id43 $mol:id2 @atom:type1 0.000000 10.000 7.655 10.709
|
||||
$atom:id44 $mol:id2 @atom:type1 0.000000 11.173 7.969 11.418
|
||||
$atom:id45 $mol:id2 @atom:type1 0.000000 11.173 7.969 8.582
|
||||
$atom:id46 $mol:id2 @atom:type1 0.000000 12.031 8.827 9.291
|
||||
$atom:id47 $mol:id2 @atom:type1 0.000000 12.031 8.827 10.709
|
||||
$atom:id48 $mol:id2 @atom:type1 0.000000 12.345 10.000 11.418
|
||||
$atom:id49 $mol:id2 @atom:type1 0.000000 12.345 10.000 12.836
|
||||
$atom:id50 $mol:id2 @atom:type1 0.000000 12.031 11.173 13.545
|
||||
$atom:id51 $mol:id2 @atom:type1 0.000000 12.031 11.173 14.963
|
||||
$atom:id52 $mol:id2 @atom:type1 0.000000 11.173 12.031 15.672
|
||||
$atom:id53 $mol:id2 @atom:type1 0.000000 11.173 12.031 12.836
|
||||
$atom:id54 $mol:id2 @atom:type1 0.000000 10.000 12.345 13.545
|
||||
$atom:id55 $mol:id2 @atom:type1 0.000000 10.000 12.345 14.963
|
||||
$atom:id56 $mol:id2 @atom:type1 0.000000 8.827 12.031 15.672
|
||||
$atom:id57 $mol:id2 @atom:type1 0.000000 8.827 12.031 12.836
|
||||
$atom:id58 $mol:id2 @atom:type1 0.000000 7.969 11.173 13.545
|
||||
$atom:id59 $mol:id2 @atom:type1 0.000000 7.969 11.173 14.963
|
||||
$atom:id60 $mol:id2 @atom:type1 0.000000 7.655 10.000 15.672
|
||||
$atom:id61 $mol:id2 @atom:type1 0.000000 7.655 10.000 12.836
|
||||
$atom:id62 $mol:id2 @atom:type1 0.000000 7.969 8.827 13.545
|
||||
$atom:id63 $mol:id2 @atom:type1 0.000000 7.969 8.827 14.963
|
||||
$atom:id64 $mol:id2 @atom:type1 0.000000 8.827 7.969 15.672
|
||||
$atom:id65 $mol:id2 @atom:type1 0.000000 8.827 7.969 12.836
|
||||
$atom:id66 $mol:id2 @atom:type1 0.000000 10.000 7.655 13.545
|
||||
$atom:id67 $mol:id2 @atom:type1 0.000000 10.000 7.655 14.963
|
||||
$atom:id68 $mol:id2 @atom:type1 0.000000 11.173 7.969 15.672
|
||||
$atom:id69 $mol:id2 @atom:type1 0.000000 11.173 7.969 12.836
|
||||
$atom:id70 $mol:id2 @atom:type1 0.000000 12.031 8.827 13.545
|
||||
$atom:id71 $mol:id2 @atom:type1 0.000000 12.031 8.827 14.963
|
||||
$atom:id72 $mol:id2 @atom:type1 0.000000 12.345 10.000 15.672
|
||||
}
|
||||
|
||||
write("Data Bonds") {
|
||||
$bond:id1 @bond:type1 $atom:id1 $atom:id2
|
||||
$bond:id2 @bond:type1 $atom:id1 $atom:id22
|
||||
$bond:id3 @bond:type1 $atom:id2 $atom:id3
|
||||
$bond:id4 @bond:type1 $atom:id2 $atom:id5
|
||||
$bond:id5 @bond:type1 $atom:id3 $atom:id24
|
||||
$bond:id6 @bond:type1 $atom:id3 $atom:id4
|
||||
$bond:id7 @bond:type1 $atom:id4 $atom:id7
|
||||
$bond:id8 @bond:type1 $atom:id4 $atom:id29
|
||||
$bond:id9 @bond:type1 $atom:id5 $atom:id6
|
||||
$bond:id10 @bond:type1 $atom:id6 $atom:id7
|
||||
$bond:id11 @bond:type1 $atom:id6 $atom:id9
|
||||
$bond:id12 @bond:type1 $atom:id7 $atom:id8
|
||||
$bond:id13 @bond:type1 $atom:id8 $atom:id33
|
||||
$bond:id14 @bond:type1 $atom:id8 $atom:id11
|
||||
$bond:id15 @bond:type1 $atom:id9 $atom:id10
|
||||
$bond:id16 @bond:type1 $atom:id10 $atom:id13
|
||||
$bond:id17 @bond:type1 $atom:id10 $atom:id11
|
||||
$bond:id18 @bond:type1 $atom:id11 $atom:id12
|
||||
$bond:id19 @bond:type1 $atom:id12 $atom:id15
|
||||
$bond:id20 @bond:type1 $atom:id12 $atom:id37
|
||||
$bond:id21 @bond:type1 $atom:id13 $atom:id14
|
||||
$bond:id22 @bond:type1 $atom:id14 $atom:id17
|
||||
$bond:id23 @bond:type1 $atom:id14 $atom:id15
|
||||
$bond:id24 @bond:type1 $atom:id15 $atom:id16
|
||||
$bond:id25 @bond:type1 $atom:id16 $atom:id19
|
||||
$bond:id26 @bond:type1 $atom:id16 $atom:id41
|
||||
$bond:id27 @bond:type1 $atom:id17 $atom:id18
|
||||
$bond:id28 @bond:type1 $atom:id18 $atom:id21
|
||||
$bond:id29 @bond:type1 $atom:id18 $atom:id19
|
||||
$bond:id30 @bond:type1 $atom:id19 $atom:id20
|
||||
$bond:id31 @bond:type1 $atom:id20 $atom:id23
|
||||
$bond:id32 @bond:type1 $atom:id20 $atom:id45
|
||||
$bond:id33 @bond:type1 $atom:id21 $atom:id22
|
||||
$bond:id34 @bond:type1 $atom:id22 $atom:id23
|
||||
$bond:id35 @bond:type1 $atom:id23 $atom:id24
|
||||
$bond:id36 @bond:type1 $atom:id24 $atom:id25
|
||||
$bond:id37 @bond:type1 $atom:id25 $atom:id26
|
||||
$bond:id38 @bond:type1 $atom:id25 $atom:id46
|
||||
$bond:id39 @bond:type1 $atom:id26 $atom:id27
|
||||
$bond:id40 @bond:type1 $atom:id26 $atom:id29
|
||||
$bond:id41 @bond:type1 $atom:id27 $atom:id48
|
||||
$bond:id42 @bond:type1 $atom:id27 $atom:id28
|
||||
$bond:id43 @bond:type1 $atom:id28 $atom:id31
|
||||
$bond:id44 @bond:type1 $atom:id28 $atom:id53
|
||||
$bond:id45 @bond:type1 $atom:id29 $atom:id30
|
||||
$bond:id46 @bond:type1 $atom:id30 $atom:id31
|
||||
$bond:id47 @bond:type1 $atom:id30 $atom:id33
|
||||
$bond:id48 @bond:type1 $atom:id31 $atom:id32
|
||||
$bond:id49 @bond:type1 $atom:id32 $atom:id57
|
||||
$bond:id50 @bond:type1 $atom:id32 $atom:id35
|
||||
$bond:id51 @bond:type1 $atom:id33 $atom:id34
|
||||
$bond:id52 @bond:type1 $atom:id34 $atom:id37
|
||||
$bond:id53 @bond:type1 $atom:id34 $atom:id35
|
||||
$bond:id54 @bond:type1 $atom:id35 $atom:id36
|
||||
$bond:id55 @bond:type1 $atom:id36 $atom:id39
|
||||
$bond:id56 @bond:type1 $atom:id36 $atom:id61
|
||||
$bond:id57 @bond:type1 $atom:id37 $atom:id38
|
||||
$bond:id58 @bond:type1 $atom:id38 $atom:id41
|
||||
$bond:id59 @bond:type1 $atom:id38 $atom:id39
|
||||
$bond:id60 @bond:type1 $atom:id39 $atom:id40
|
||||
$bond:id61 @bond:type1 $atom:id40 $atom:id43
|
||||
$bond:id62 @bond:type1 $atom:id40 $atom:id65
|
||||
$bond:id63 @bond:type1 $atom:id41 $atom:id42
|
||||
$bond:id64 @bond:type1 $atom:id42 $atom:id45
|
||||
$bond:id65 @bond:type1 $atom:id42 $atom:id43
|
||||
$bond:id66 @bond:type1 $atom:id43 $atom:id44
|
||||
$bond:id67 @bond:type1 $atom:id44 $atom:id47
|
||||
$bond:id68 @bond:type1 $atom:id44 $atom:id69
|
||||
$bond:id69 @bond:type1 $atom:id45 $atom:id46
|
||||
$bond:id70 @bond:type1 $atom:id46 $atom:id47
|
||||
$bond:id71 @bond:type1 $atom:id47 $atom:id48
|
||||
$bond:id72 @bond:type1 $atom:id48 $atom:id49
|
||||
$bond:id73 @bond:type1 $atom:id49 $atom:id50
|
||||
$bond:id74 @bond:type1 $atom:id49 $atom:id70
|
||||
$bond:id75 @bond:type1 $atom:id50 $atom:id51
|
||||
$bond:id76 @bond:type1 $atom:id50 $atom:id53
|
||||
$bond:id77 @bond:type1 $atom:id51 $atom:id72
|
||||
$bond:id78 @bond:type1 $atom:id51 $atom:id52
|
||||
$bond:id79 @bond:type1 $atom:id52 $atom:id55
|
||||
$bond:id80 @bond:type1 $atom:id53 $atom:id54
|
||||
$bond:id81 @bond:type1 $atom:id54 $atom:id55
|
||||
$bond:id82 @bond:type1 $atom:id54 $atom:id57
|
||||
$bond:id83 @bond:type1 $atom:id55 $atom:id56
|
||||
$bond:id84 @bond:type1 $atom:id56 $atom:id59
|
||||
$bond:id85 @bond:type1 $atom:id57 $atom:id58
|
||||
$bond:id86 @bond:type1 $atom:id58 $atom:id61
|
||||
$bond:id87 @bond:type1 $atom:id58 $atom:id59
|
||||
$bond:id88 @bond:type1 $atom:id59 $atom:id60
|
||||
$bond:id89 @bond:type1 $atom:id60 $atom:id63
|
||||
$bond:id90 @bond:type1 $atom:id61 $atom:id62
|
||||
$bond:id91 @bond:type1 $atom:id62 $atom:id65
|
||||
$bond:id92 @bond:type1 $atom:id62 $atom:id63
|
||||
$bond:id93 @bond:type1 $atom:id63 $atom:id64
|
||||
$bond:id94 @bond:type1 $atom:id64 $atom:id67
|
||||
$bond:id95 @bond:type1 $atom:id65 $atom:id66
|
||||
$bond:id96 @bond:type1 $atom:id66 $atom:id69
|
||||
$bond:id97 @bond:type1 $atom:id66 $atom:id67
|
||||
$bond:id98 @bond:type1 $atom:id67 $atom:id68
|
||||
$bond:id99 @bond:type1 $atom:id68 $atom:id71
|
||||
$bond:id100 @bond:type1 $atom:id69 $atom:id70
|
||||
$bond:id101 @bond:type1 $atom:id70 $atom:id71
|
||||
$bond:id102 @bond:type1 $atom:id71 $atom:id72
|
||||
}
|
||||
|
||||
write("Data Angles") {
|
||||
$angle:id1 @angle:type1 $atom:id2 $atom:id1 $atom:id22
|
||||
$angle:id2 @angle:type1 $atom:id1 $atom:id2 $atom:id3
|
||||
$angle:id3 @angle:type1 $atom:id1 $atom:id2 $atom:id5
|
||||
$angle:id4 @angle:type1 $atom:id3 $atom:id2 $atom:id5
|
||||
$angle:id5 @angle:type1 $atom:id2 $atom:id3 $atom:id24
|
||||
$angle:id6 @angle:type1 $atom:id2 $atom:id3 $atom:id4
|
||||
$angle:id7 @angle:type1 $atom:id4 $atom:id3 $atom:id24
|
||||
$angle:id8 @angle:type1 $atom:id3 $atom:id4 $atom:id7
|
||||
$angle:id9 @angle:type1 $atom:id3 $atom:id4 $atom:id29
|
||||
$angle:id10 @angle:type1 $atom:id7 $atom:id4 $atom:id29
|
||||
$angle:id11 @angle:type1 $atom:id2 $atom:id5 $atom:id6
|
||||
$angle:id12 @angle:type1 $atom:id5 $atom:id6 $atom:id7
|
||||
$angle:id13 @angle:type1 $atom:id5 $atom:id6 $atom:id9
|
||||
$angle:id14 @angle:type1 $atom:id7 $atom:id6 $atom:id9
|
||||
$angle:id15 @angle:type1 $atom:id4 $atom:id7 $atom:id6
|
||||
$angle:id16 @angle:type1 $atom:id4 $atom:id7 $atom:id8
|
||||
$angle:id17 @angle:type1 $atom:id6 $atom:id7 $atom:id8
|
||||
$angle:id18 @angle:type1 $atom:id7 $atom:id8 $atom:id33
|
||||
$angle:id19 @angle:type1 $atom:id7 $atom:id8 $atom:id11
|
||||
$angle:id20 @angle:type1 $atom:id11 $atom:id8 $atom:id33
|
||||
$angle:id21 @angle:type1 $atom:id6 $atom:id9 $atom:id10
|
||||
$angle:id22 @angle:type1 $atom:id9 $atom:id10 $atom:id13
|
||||
$angle:id23 @angle:type1 $atom:id9 $atom:id10 $atom:id11
|
||||
$angle:id24 @angle:type1 $atom:id11 $atom:id10 $atom:id13
|
||||
$angle:id25 @angle:type1 $atom:id8 $atom:id11 $atom:id10
|
||||
$angle:id26 @angle:type1 $atom:id8 $atom:id11 $atom:id12
|
||||
$angle:id27 @angle:type1 $atom:id10 $atom:id11 $atom:id12
|
||||
$angle:id28 @angle:type1 $atom:id11 $atom:id12 $atom:id15
|
||||
$angle:id29 @angle:type1 $atom:id11 $atom:id12 $atom:id37
|
||||
$angle:id30 @angle:type1 $atom:id15 $atom:id12 $atom:id37
|
||||
$angle:id31 @angle:type1 $atom:id10 $atom:id13 $atom:id14
|
||||
$angle:id32 @angle:type1 $atom:id13 $atom:id14 $atom:id17
|
||||
$angle:id33 @angle:type1 $atom:id13 $atom:id14 $atom:id15
|
||||
$angle:id34 @angle:type1 $atom:id15 $atom:id14 $atom:id17
|
||||
$angle:id35 @angle:type1 $atom:id12 $atom:id15 $atom:id14
|
||||
$angle:id36 @angle:type1 $atom:id12 $atom:id15 $atom:id16
|
||||
$angle:id37 @angle:type1 $atom:id14 $atom:id15 $atom:id16
|
||||
$angle:id38 @angle:type1 $atom:id15 $atom:id16 $atom:id19
|
||||
$angle:id39 @angle:type1 $atom:id15 $atom:id16 $atom:id41
|
||||
$angle:id40 @angle:type1 $atom:id19 $atom:id16 $atom:id41
|
||||
$angle:id41 @angle:type1 $atom:id14 $atom:id17 $atom:id18
|
||||
$angle:id42 @angle:type1 $atom:id17 $atom:id18 $atom:id21
|
||||
$angle:id43 @angle:type1 $atom:id17 $atom:id18 $atom:id19
|
||||
$angle:id44 @angle:type1 $atom:id19 $atom:id18 $atom:id21
|
||||
$angle:id45 @angle:type1 $atom:id16 $atom:id19 $atom:id18
|
||||
$angle:id46 @angle:type1 $atom:id16 $atom:id19 $atom:id20
|
||||
$angle:id47 @angle:type1 $atom:id18 $atom:id19 $atom:id20
|
||||
$angle:id48 @angle:type1 $atom:id19 $atom:id20 $atom:id23
|
||||
$angle:id49 @angle:type1 $atom:id19 $atom:id20 $atom:id45
|
||||
$angle:id50 @angle:type1 $atom:id23 $atom:id20 $atom:id45
|
||||
$angle:id51 @angle:type1 $atom:id18 $atom:id21 $atom:id22
|
||||
$angle:id52 @angle:type1 $atom:id1 $atom:id22 $atom:id21
|
||||
$angle:id53 @angle:type1 $atom:id1 $atom:id22 $atom:id23
|
||||
$angle:id54 @angle:type1 $atom:id21 $atom:id22 $atom:id23
|
||||
$angle:id55 @angle:type1 $atom:id20 $atom:id23 $atom:id22
|
||||
$angle:id56 @angle:type1 $atom:id20 $atom:id23 $atom:id24
|
||||
$angle:id57 @angle:type1 $atom:id22 $atom:id23 $atom:id24
|
||||
$angle:id58 @angle:type1 $atom:id3 $atom:id24 $atom:id23
|
||||
$angle:id59 @angle:type1 $atom:id3 $atom:id24 $atom:id25
|
||||
$angle:id60 @angle:type1 $atom:id23 $atom:id24 $atom:id25
|
||||
$angle:id61 @angle:type1 $atom:id24 $atom:id25 $atom:id26
|
||||
$angle:id62 @angle:type1 $atom:id24 $atom:id25 $atom:id46
|
||||
$angle:id63 @angle:type1 $atom:id26 $atom:id25 $atom:id46
|
||||
$angle:id64 @angle:type1 $atom:id25 $atom:id26 $atom:id27
|
||||
$angle:id65 @angle:type1 $atom:id25 $atom:id26 $atom:id29
|
||||
$angle:id66 @angle:type1 $atom:id27 $atom:id26 $atom:id29
|
||||
$angle:id67 @angle:type1 $atom:id26 $atom:id27 $atom:id48
|
||||
$angle:id68 @angle:type1 $atom:id26 $atom:id27 $atom:id28
|
||||
$angle:id69 @angle:type1 $atom:id28 $atom:id27 $atom:id48
|
||||
$angle:id70 @angle:type1 $atom:id27 $atom:id28 $atom:id31
|
||||
$angle:id71 @angle:type1 $atom:id27 $atom:id28 $atom:id53
|
||||
$angle:id72 @angle:type1 $atom:id31 $atom:id28 $atom:id53
|
||||
$angle:id73 @angle:type1 $atom:id4 $atom:id29 $atom:id26
|
||||
$angle:id74 @angle:type1 $atom:id4 $atom:id29 $atom:id30
|
||||
$angle:id75 @angle:type1 $atom:id26 $atom:id29 $atom:id30
|
||||
$angle:id76 @angle:type1 $atom:id29 $atom:id30 $atom:id31
|
||||
$angle:id77 @angle:type1 $atom:id29 $atom:id30 $atom:id33
|
||||
$angle:id78 @angle:type1 $atom:id31 $atom:id30 $atom:id33
|
||||
$angle:id79 @angle:type1 $atom:id28 $atom:id31 $atom:id30
|
||||
$angle:id80 @angle:type1 $atom:id28 $atom:id31 $atom:id32
|
||||
$angle:id81 @angle:type1 $atom:id30 $atom:id31 $atom:id32
|
||||
$angle:id82 @angle:type1 $atom:id31 $atom:id32 $atom:id57
|
||||
$angle:id83 @angle:type1 $atom:id31 $atom:id32 $atom:id35
|
||||
$angle:id84 @angle:type1 $atom:id35 $atom:id32 $atom:id57
|
||||
$angle:id85 @angle:type1 $atom:id8 $atom:id33 $atom:id30
|
||||
$angle:id86 @angle:type1 $atom:id8 $atom:id33 $atom:id34
|
||||
$angle:id87 @angle:type1 $atom:id30 $atom:id33 $atom:id34
|
||||
$angle:id88 @angle:type1 $atom:id33 $atom:id34 $atom:id37
|
||||
$angle:id89 @angle:type1 $atom:id33 $atom:id34 $atom:id35
|
||||
$angle:id90 @angle:type1 $atom:id35 $atom:id34 $atom:id37
|
||||
$angle:id91 @angle:type1 $atom:id32 $atom:id35 $atom:id34
|
||||
$angle:id92 @angle:type1 $atom:id32 $atom:id35 $atom:id36
|
||||
$angle:id93 @angle:type1 $atom:id34 $atom:id35 $atom:id36
|
||||
$angle:id94 @angle:type1 $atom:id35 $atom:id36 $atom:id39
|
||||
$angle:id95 @angle:type1 $atom:id35 $atom:id36 $atom:id61
|
||||
$angle:id96 @angle:type1 $atom:id39 $atom:id36 $atom:id61
|
||||
$angle:id97 @angle:type1 $atom:id12 $atom:id37 $atom:id34
|
||||
$angle:id98 @angle:type1 $atom:id12 $atom:id37 $atom:id38
|
||||
$angle:id99 @angle:type1 $atom:id34 $atom:id37 $atom:id38
|
||||
$angle:id100 @angle:type1 $atom:id37 $atom:id38 $atom:id41
|
||||
$angle:id101 @angle:type1 $atom:id37 $atom:id38 $atom:id39
|
||||
$angle:id102 @angle:type1 $atom:id39 $atom:id38 $atom:id41
|
||||
$angle:id103 @angle:type1 $atom:id36 $atom:id39 $atom:id38
|
||||
$angle:id104 @angle:type1 $atom:id36 $atom:id39 $atom:id40
|
||||
$angle:id105 @angle:type1 $atom:id38 $atom:id39 $atom:id40
|
||||
$angle:id106 @angle:type1 $atom:id39 $atom:id40 $atom:id43
|
||||
$angle:id107 @angle:type1 $atom:id39 $atom:id40 $atom:id65
|
||||
$angle:id108 @angle:type1 $atom:id43 $atom:id40 $atom:id65
|
||||
$angle:id109 @angle:type1 $atom:id16 $atom:id41 $atom:id38
|
||||
$angle:id110 @angle:type1 $atom:id16 $atom:id41 $atom:id42
|
||||
$angle:id111 @angle:type1 $atom:id38 $atom:id41 $atom:id42
|
||||
$angle:id112 @angle:type1 $atom:id41 $atom:id42 $atom:id45
|
||||
$angle:id113 @angle:type1 $atom:id41 $atom:id42 $atom:id43
|
||||
$angle:id114 @angle:type1 $atom:id43 $atom:id42 $atom:id45
|
||||
$angle:id115 @angle:type1 $atom:id40 $atom:id43 $atom:id42
|
||||
$angle:id116 @angle:type1 $atom:id40 $atom:id43 $atom:id44
|
||||
$angle:id117 @angle:type1 $atom:id42 $atom:id43 $atom:id44
|
||||
$angle:id118 @angle:type1 $atom:id43 $atom:id44 $atom:id47
|
||||
$angle:id119 @angle:type1 $atom:id43 $atom:id44 $atom:id69
|
||||
$angle:id120 @angle:type1 $atom:id47 $atom:id44 $atom:id69
|
||||
$angle:id121 @angle:type1 $atom:id20 $atom:id45 $atom:id42
|
||||
$angle:id122 @angle:type1 $atom:id20 $atom:id45 $atom:id46
|
||||
$angle:id123 @angle:type1 $atom:id42 $atom:id45 $atom:id46
|
||||
$angle:id124 @angle:type1 $atom:id25 $atom:id46 $atom:id45
|
||||
$angle:id125 @angle:type1 $atom:id25 $atom:id46 $atom:id47
|
||||
$angle:id126 @angle:type1 $atom:id45 $atom:id46 $atom:id47
|
||||
$angle:id127 @angle:type1 $atom:id44 $atom:id47 $atom:id46
|
||||
$angle:id128 @angle:type1 $atom:id44 $atom:id47 $atom:id48
|
||||
$angle:id129 @angle:type1 $atom:id46 $atom:id47 $atom:id48
|
||||
$angle:id130 @angle:type1 $atom:id27 $atom:id48 $atom:id47
|
||||
$angle:id131 @angle:type1 $atom:id27 $atom:id48 $atom:id49
|
||||
$angle:id132 @angle:type1 $atom:id47 $atom:id48 $atom:id49
|
||||
$angle:id133 @angle:type1 $atom:id48 $atom:id49 $atom:id50
|
||||
$angle:id134 @angle:type1 $atom:id48 $atom:id49 $atom:id70
|
||||
$angle:id135 @angle:type1 $atom:id50 $atom:id49 $atom:id70
|
||||
$angle:id136 @angle:type1 $atom:id49 $atom:id50 $atom:id51
|
||||
$angle:id137 @angle:type1 $atom:id49 $atom:id50 $atom:id53
|
||||
$angle:id138 @angle:type1 $atom:id51 $atom:id50 $atom:id53
|
||||
$angle:id139 @angle:type1 $atom:id50 $atom:id51 $atom:id72
|
||||
$angle:id140 @angle:type1 $atom:id50 $atom:id51 $atom:id52
|
||||
$angle:id141 @angle:type1 $atom:id52 $atom:id51 $atom:id72
|
||||
$angle:id142 @angle:type1 $atom:id51 $atom:id52 $atom:id55
|
||||
$angle:id143 @angle:type1 $atom:id28 $atom:id53 $atom:id50
|
||||
$angle:id144 @angle:type1 $atom:id28 $atom:id53 $atom:id54
|
||||
$angle:id145 @angle:type1 $atom:id50 $atom:id53 $atom:id54
|
||||
$angle:id146 @angle:type1 $atom:id53 $atom:id54 $atom:id55
|
||||
$angle:id147 @angle:type1 $atom:id53 $atom:id54 $atom:id57
|
||||
$angle:id148 @angle:type1 $atom:id55 $atom:id54 $atom:id57
|
||||
$angle:id149 @angle:type1 $atom:id52 $atom:id55 $atom:id54
|
||||
$angle:id150 @angle:type1 $atom:id52 $atom:id55 $atom:id56
|
||||
$angle:id151 @angle:type1 $atom:id54 $atom:id55 $atom:id56
|
||||
$angle:id152 @angle:type1 $atom:id55 $atom:id56 $atom:id59
|
||||
$angle:id153 @angle:type1 $atom:id32 $atom:id57 $atom:id54
|
||||
$angle:id154 @angle:type1 $atom:id32 $atom:id57 $atom:id58
|
||||
$angle:id155 @angle:type1 $atom:id54 $atom:id57 $atom:id58
|
||||
$angle:id156 @angle:type1 $atom:id57 $atom:id58 $atom:id61
|
||||
$angle:id157 @angle:type1 $atom:id57 $atom:id58 $atom:id59
|
||||
$angle:id158 @angle:type1 $atom:id59 $atom:id58 $atom:id61
|
||||
$angle:id159 @angle:type1 $atom:id56 $atom:id59 $atom:id58
|
||||
$angle:id160 @angle:type1 $atom:id56 $atom:id59 $atom:id60
|
||||
$angle:id161 @angle:type1 $atom:id58 $atom:id59 $atom:id60
|
||||
$angle:id162 @angle:type1 $atom:id59 $atom:id60 $atom:id63
|
||||
$angle:id163 @angle:type1 $atom:id36 $atom:id61 $atom:id58
|
||||
$angle:id164 @angle:type1 $atom:id36 $atom:id61 $atom:id62
|
||||
$angle:id165 @angle:type1 $atom:id58 $atom:id61 $atom:id62
|
||||
$angle:id166 @angle:type1 $atom:id61 $atom:id62 $atom:id65
|
||||
$angle:id167 @angle:type1 $atom:id61 $atom:id62 $atom:id63
|
||||
$angle:id168 @angle:type1 $atom:id63 $atom:id62 $atom:id65
|
||||
$angle:id169 @angle:type1 $atom:id60 $atom:id63 $atom:id62
|
||||
$angle:id170 @angle:type1 $atom:id60 $atom:id63 $atom:id64
|
||||
$angle:id171 @angle:type1 $atom:id62 $atom:id63 $atom:id64
|
||||
$angle:id172 @angle:type1 $atom:id63 $atom:id64 $atom:id67
|
||||
$angle:id173 @angle:type1 $atom:id40 $atom:id65 $atom:id62
|
||||
$angle:id174 @angle:type1 $atom:id40 $atom:id65 $atom:id66
|
||||
$angle:id175 @angle:type1 $atom:id62 $atom:id65 $atom:id66
|
||||
$angle:id176 @angle:type1 $atom:id65 $atom:id66 $atom:id69
|
||||
$angle:id177 @angle:type1 $atom:id65 $atom:id66 $atom:id67
|
||||
$angle:id178 @angle:type1 $atom:id67 $atom:id66 $atom:id69
|
||||
$angle:id179 @angle:type1 $atom:id64 $atom:id67 $atom:id66
|
||||
$angle:id180 @angle:type1 $atom:id64 $atom:id67 $atom:id68
|
||||
$angle:id181 @angle:type1 $atom:id66 $atom:id67 $atom:id68
|
||||
$angle:id182 @angle:type1 $atom:id67 $atom:id68 $atom:id71
|
||||
$angle:id183 @angle:type1 $atom:id44 $atom:id69 $atom:id66
|
||||
$angle:id184 @angle:type1 $atom:id44 $atom:id69 $atom:id70
|
||||
$angle:id185 @angle:type1 $atom:id66 $atom:id69 $atom:id70
|
||||
$angle:id186 @angle:type1 $atom:id49 $atom:id70 $atom:id69
|
||||
$angle:id187 @angle:type1 $atom:id49 $atom:id70 $atom:id71
|
||||
$angle:id188 @angle:type1 $atom:id69 $atom:id70 $atom:id71
|
||||
$angle:id189 @angle:type1 $atom:id68 $atom:id71 $atom:id70
|
||||
$angle:id190 @angle:type1 $atom:id68 $atom:id71 $atom:id72
|
||||
$angle:id191 @angle:type1 $atom:id70 $atom:id71 $atom:id72
|
||||
$angle:id192 @angle:type1 $atom:id51 $atom:id72 $atom:id71
|
||||
}
|
||||
|
||||
write("Data Dihedrals") {
|
||||
$dihedral:id1 @dihedral:type1 $atom:id22 $atom:id1 $atom:id2 $atom:id3
|
||||
$dihedral:id2 @dihedral:type1 $atom:id22 $atom:id1 $atom:id2 $atom:id5
|
||||
$dihedral:id3 @dihedral:type1 $atom:id2 $atom:id1 $atom:id22 $atom:id21
|
||||
$dihedral:id4 @dihedral:type1 $atom:id2 $atom:id1 $atom:id22 $atom:id23
|
||||
$dihedral:id5 @dihedral:type1 $atom:id1 $atom:id2 $atom:id3 $atom:id24
|
||||
$dihedral:id6 @dihedral:type1 $atom:id1 $atom:id2 $atom:id3 $atom:id4
|
||||
$dihedral:id7 @dihedral:type1 $atom:id5 $atom:id2 $atom:id3 $atom:id24
|
||||
$dihedral:id8 @dihedral:type1 $atom:id5 $atom:id2 $atom:id3 $atom:id4
|
||||
$dihedral:id9 @dihedral:type1 $atom:id1 $atom:id2 $atom:id5 $atom:id6
|
||||
$dihedral:id10 @dihedral:type1 $atom:id3 $atom:id2 $atom:id5 $atom:id6
|
||||
$dihedral:id11 @dihedral:type1 $atom:id2 $atom:id3 $atom:id24 $atom:id23
|
||||
$dihedral:id12 @dihedral:type1 $atom:id2 $atom:id3 $atom:id24 $atom:id25
|
||||
$dihedral:id13 @dihedral:type1 $atom:id4 $atom:id3 $atom:id24 $atom:id23
|
||||
$dihedral:id14 @dihedral:type1 $atom:id4 $atom:id3 $atom:id24 $atom:id25
|
||||
$dihedral:id15 @dihedral:type1 $atom:id2 $atom:id3 $atom:id4 $atom:id7
|
||||
$dihedral:id16 @dihedral:type1 $atom:id2 $atom:id3 $atom:id4 $atom:id29
|
||||
$dihedral:id17 @dihedral:type1 $atom:id24 $atom:id3 $atom:id4 $atom:id7
|
||||
$dihedral:id18 @dihedral:type1 $atom:id24 $atom:id3 $atom:id4 $atom:id29
|
||||
$dihedral:id19 @dihedral:type1 $atom:id3 $atom:id4 $atom:id7 $atom:id6
|
||||
$dihedral:id20 @dihedral:type1 $atom:id3 $atom:id4 $atom:id7 $atom:id8
|
||||
$dihedral:id21 @dihedral:type1 $atom:id29 $atom:id4 $atom:id7 $atom:id6
|
||||
$dihedral:id22 @dihedral:type1 $atom:id29 $atom:id4 $atom:id7 $atom:id8
|
||||
$dihedral:id23 @dihedral:type1 $atom:id3 $atom:id4 $atom:id29 $atom:id26
|
||||
$dihedral:id24 @dihedral:type1 $atom:id3 $atom:id4 $atom:id29 $atom:id30
|
||||
$dihedral:id25 @dihedral:type1 $atom:id7 $atom:id4 $atom:id29 $atom:id26
|
||||
$dihedral:id26 @dihedral:type1 $atom:id7 $atom:id4 $atom:id29 $atom:id30
|
||||
$dihedral:id27 @dihedral:type1 $atom:id2 $atom:id5 $atom:id6 $atom:id7
|
||||
$dihedral:id28 @dihedral:type1 $atom:id2 $atom:id5 $atom:id6 $atom:id9
|
||||
$dihedral:id29 @dihedral:type1 $atom:id5 $atom:id6 $atom:id7 $atom:id4
|
||||
$dihedral:id30 @dihedral:type1 $atom:id5 $atom:id6 $atom:id7 $atom:id8
|
||||
$dihedral:id31 @dihedral:type1 $atom:id9 $atom:id6 $atom:id7 $atom:id4
|
||||
$dihedral:id32 @dihedral:type1 $atom:id9 $atom:id6 $atom:id7 $atom:id8
|
||||
$dihedral:id33 @dihedral:type1 $atom:id5 $atom:id6 $atom:id9 $atom:id10
|
||||
$dihedral:id34 @dihedral:type1 $atom:id7 $atom:id6 $atom:id9 $atom:id10
|
||||
$dihedral:id35 @dihedral:type1 $atom:id4 $atom:id7 $atom:id8 $atom:id33
|
||||
$dihedral:id36 @dihedral:type1 $atom:id4 $atom:id7 $atom:id8 $atom:id11
|
||||
$dihedral:id37 @dihedral:type1 $atom:id6 $atom:id7 $atom:id8 $atom:id33
|
||||
$dihedral:id38 @dihedral:type1 $atom:id6 $atom:id7 $atom:id8 $atom:id11
|
||||
$dihedral:id39 @dihedral:type1 $atom:id7 $atom:id8 $atom:id33 $atom:id30
|
||||
$dihedral:id40 @dihedral:type1 $atom:id7 $atom:id8 $atom:id33 $atom:id34
|
||||
$dihedral:id41 @dihedral:type1 $atom:id11 $atom:id8 $atom:id33 $atom:id30
|
||||
$dihedral:id42 @dihedral:type1 $atom:id11 $atom:id8 $atom:id33 $atom:id34
|
||||
$dihedral:id43 @dihedral:type1 $atom:id7 $atom:id8 $atom:id11 $atom:id10
|
||||
$dihedral:id44 @dihedral:type1 $atom:id7 $atom:id8 $atom:id11 $atom:id12
|
||||
$dihedral:id45 @dihedral:type1 $atom:id33 $atom:id8 $atom:id11 $atom:id10
|
||||
$dihedral:id46 @dihedral:type1 $atom:id33 $atom:id8 $atom:id11 $atom:id12
|
||||
$dihedral:id47 @dihedral:type1 $atom:id6 $atom:id9 $atom:id10 $atom:id13
|
||||
$dihedral:id48 @dihedral:type1 $atom:id6 $atom:id9 $atom:id10 $atom:id11
|
||||
$dihedral:id49 @dihedral:type1 $atom:id9 $atom:id10 $atom:id13 $atom:id14
|
||||
$dihedral:id50 @dihedral:type1 $atom:id11 $atom:id10 $atom:id13 $atom:id14
|
||||
$dihedral:id51 @dihedral:type1 $atom:id9 $atom:id10 $atom:id11 $atom:id8
|
||||
$dihedral:id52 @dihedral:type1 $atom:id9 $atom:id10 $atom:id11 $atom:id12
|
||||
$dihedral:id53 @dihedral:type1 $atom:id13 $atom:id10 $atom:id11 $atom:id8
|
||||
$dihedral:id54 @dihedral:type1 $atom:id13 $atom:id10 $atom:id11 $atom:id12
|
||||
$dihedral:id55 @dihedral:type1 $atom:id8 $atom:id11 $atom:id12 $atom:id15
|
||||
$dihedral:id56 @dihedral:type1 $atom:id8 $atom:id11 $atom:id12 $atom:id37
|
||||
$dihedral:id57 @dihedral:type1 $atom:id10 $atom:id11 $atom:id12 $atom:id15
|
||||
$dihedral:id58 @dihedral:type1 $atom:id10 $atom:id11 $atom:id12 $atom:id37
|
||||
$dihedral:id59 @dihedral:type1 $atom:id11 $atom:id12 $atom:id15 $atom:id14
|
||||
$dihedral:id60 @dihedral:type1 $atom:id11 $atom:id12 $atom:id15 $atom:id16
|
||||
$dihedral:id61 @dihedral:type1 $atom:id37 $atom:id12 $atom:id15 $atom:id14
|
||||
$dihedral:id62 @dihedral:type1 $atom:id37 $atom:id12 $atom:id15 $atom:id16
|
||||
$dihedral:id63 @dihedral:type1 $atom:id11 $atom:id12 $atom:id37 $atom:id34
|
||||
$dihedral:id64 @dihedral:type1 $atom:id11 $atom:id12 $atom:id37 $atom:id38
|
||||
$dihedral:id65 @dihedral:type1 $atom:id15 $atom:id12 $atom:id37 $atom:id34
|
||||
$dihedral:id66 @dihedral:type1 $atom:id15 $atom:id12 $atom:id37 $atom:id38
|
||||
$dihedral:id67 @dihedral:type1 $atom:id10 $atom:id13 $atom:id14 $atom:id17
|
||||
$dihedral:id68 @dihedral:type1 $atom:id10 $atom:id13 $atom:id14 $atom:id15
|
||||
$dihedral:id69 @dihedral:type1 $atom:id13 $atom:id14 $atom:id17 $atom:id18
|
||||
$dihedral:id70 @dihedral:type1 $atom:id15 $atom:id14 $atom:id17 $atom:id18
|
||||
$dihedral:id71 @dihedral:type1 $atom:id13 $atom:id14 $atom:id15 $atom:id12
|
||||
$dihedral:id72 @dihedral:type1 $atom:id13 $atom:id14 $atom:id15 $atom:id16
|
||||
$dihedral:id73 @dihedral:type1 $atom:id17 $atom:id14 $atom:id15 $atom:id12
|
||||
$dihedral:id74 @dihedral:type1 $atom:id17 $atom:id14 $atom:id15 $atom:id16
|
||||
$dihedral:id75 @dihedral:type1 $atom:id12 $atom:id15 $atom:id16 $atom:id19
|
||||
$dihedral:id76 @dihedral:type1 $atom:id12 $atom:id15 $atom:id16 $atom:id41
|
||||
$dihedral:id77 @dihedral:type1 $atom:id14 $atom:id15 $atom:id16 $atom:id19
|
||||
$dihedral:id78 @dihedral:type1 $atom:id14 $atom:id15 $atom:id16 $atom:id41
|
||||
$dihedral:id79 @dihedral:type1 $atom:id15 $atom:id16 $atom:id19 $atom:id18
|
||||
$dihedral:id80 @dihedral:type1 $atom:id15 $atom:id16 $atom:id19 $atom:id20
|
||||
$dihedral:id81 @dihedral:type1 $atom:id41 $atom:id16 $atom:id19 $atom:id18
|
||||
$dihedral:id82 @dihedral:type1 $atom:id41 $atom:id16 $atom:id19 $atom:id20
|
||||
$dihedral:id83 @dihedral:type1 $atom:id15 $atom:id16 $atom:id41 $atom:id38
|
||||
$dihedral:id84 @dihedral:type1 $atom:id15 $atom:id16 $atom:id41 $atom:id42
|
||||
$dihedral:id85 @dihedral:type1 $atom:id19 $atom:id16 $atom:id41 $atom:id38
|
||||
$dihedral:id86 @dihedral:type1 $atom:id19 $atom:id16 $atom:id41 $atom:id42
|
||||
$dihedral:id87 @dihedral:type1 $atom:id14 $atom:id17 $atom:id18 $atom:id21
|
||||
$dihedral:id88 @dihedral:type1 $atom:id14 $atom:id17 $atom:id18 $atom:id19
|
||||
$dihedral:id89 @dihedral:type1 $atom:id17 $atom:id18 $atom:id21 $atom:id22
|
||||
$dihedral:id90 @dihedral:type1 $atom:id19 $atom:id18 $atom:id21 $atom:id22
|
||||
$dihedral:id91 @dihedral:type1 $atom:id17 $atom:id18 $atom:id19 $atom:id16
|
||||
$dihedral:id92 @dihedral:type1 $atom:id17 $atom:id18 $atom:id19 $atom:id20
|
||||
$dihedral:id93 @dihedral:type1 $atom:id21 $atom:id18 $atom:id19 $atom:id16
|
||||
$dihedral:id94 @dihedral:type1 $atom:id21 $atom:id18 $atom:id19 $atom:id20
|
||||
$dihedral:id95 @dihedral:type1 $atom:id16 $atom:id19 $atom:id20 $atom:id23
|
||||
$dihedral:id96 @dihedral:type1 $atom:id16 $atom:id19 $atom:id20 $atom:id45
|
||||
$dihedral:id97 @dihedral:type1 $atom:id18 $atom:id19 $atom:id20 $atom:id23
|
||||
$dihedral:id98 @dihedral:type1 $atom:id18 $atom:id19 $atom:id20 $atom:id45
|
||||
$dihedral:id99 @dihedral:type1 $atom:id19 $atom:id20 $atom:id23 $atom:id22
|
||||
$dihedral:id100 @dihedral:type1 $atom:id19 $atom:id20 $atom:id23 $atom:id24
|
||||
$dihedral:id101 @dihedral:type1 $atom:id45 $atom:id20 $atom:id23 $atom:id22
|
||||
$dihedral:id102 @dihedral:type1 $atom:id45 $atom:id20 $atom:id23 $atom:id24
|
||||
$dihedral:id103 @dihedral:type1 $atom:id19 $atom:id20 $atom:id45 $atom:id42
|
||||
$dihedral:id104 @dihedral:type1 $atom:id19 $atom:id20 $atom:id45 $atom:id46
|
||||
$dihedral:id105 @dihedral:type1 $atom:id23 $atom:id20 $atom:id45 $atom:id42
|
||||
$dihedral:id106 @dihedral:type1 $atom:id23 $atom:id20 $atom:id45 $atom:id46
|
||||
$dihedral:id107 @dihedral:type1 $atom:id18 $atom:id21 $atom:id22 $atom:id1
|
||||
$dihedral:id108 @dihedral:type1 $atom:id18 $atom:id21 $atom:id22 $atom:id23
|
||||
$dihedral:id109 @dihedral:type1 $atom:id1 $atom:id22 $atom:id23 $atom:id20
|
||||
$dihedral:id110 @dihedral:type1 $atom:id1 $atom:id22 $atom:id23 $atom:id24
|
||||
$dihedral:id111 @dihedral:type1 $atom:id21 $atom:id22 $atom:id23 $atom:id20
|
||||
$dihedral:id112 @dihedral:type1 $atom:id21 $atom:id22 $atom:id23 $atom:id24
|
||||
$dihedral:id113 @dihedral:type1 $atom:id20 $atom:id23 $atom:id24 $atom:id3
|
||||
$dihedral:id114 @dihedral:type1 $atom:id20 $atom:id23 $atom:id24 $atom:id25
|
||||
$dihedral:id115 @dihedral:type1 $atom:id22 $atom:id23 $atom:id24 $atom:id3
|
||||
$dihedral:id116 @dihedral:type1 $atom:id22 $atom:id23 $atom:id24 $atom:id25
|
||||
$dihedral:id117 @dihedral:type1 $atom:id3 $atom:id24 $atom:id25 $atom:id26
|
||||
$dihedral:id118 @dihedral:type1 $atom:id3 $atom:id24 $atom:id25 $atom:id46
|
||||
$dihedral:id119 @dihedral:type1 $atom:id23 $atom:id24 $atom:id25 $atom:id26
|
||||
$dihedral:id120 @dihedral:type1 $atom:id23 $atom:id24 $atom:id25 $atom:id46
|
||||
$dihedral:id121 @dihedral:type1 $atom:id24 $atom:id25 $atom:id26 $atom:id27
|
||||
$dihedral:id122 @dihedral:type1 $atom:id24 $atom:id25 $atom:id26 $atom:id29
|
||||
$dihedral:id123 @dihedral:type1 $atom:id46 $atom:id25 $atom:id26 $atom:id27
|
||||
$dihedral:id124 @dihedral:type1 $atom:id46 $atom:id25 $atom:id26 $atom:id29
|
||||
$dihedral:id125 @dihedral:type1 $atom:id24 $atom:id25 $atom:id46 $atom:id45
|
||||
$dihedral:id126 @dihedral:type1 $atom:id24 $atom:id25 $atom:id46 $atom:id47
|
||||
$dihedral:id127 @dihedral:type1 $atom:id26 $atom:id25 $atom:id46 $atom:id45
|
||||
$dihedral:id128 @dihedral:type1 $atom:id26 $atom:id25 $atom:id46 $atom:id47
|
||||
$dihedral:id129 @dihedral:type1 $atom:id25 $atom:id26 $atom:id27 $atom:id48
|
||||
$dihedral:id130 @dihedral:type1 $atom:id25 $atom:id26 $atom:id27 $atom:id28
|
||||
$dihedral:id131 @dihedral:type1 $atom:id29 $atom:id26 $atom:id27 $atom:id48
|
||||
$dihedral:id132 @dihedral:type1 $atom:id29 $atom:id26 $atom:id27 $atom:id28
|
||||
$dihedral:id133 @dihedral:type1 $atom:id25 $atom:id26 $atom:id29 $atom:id4
|
||||
$dihedral:id134 @dihedral:type1 $atom:id25 $atom:id26 $atom:id29 $atom:id30
|
||||
$dihedral:id135 @dihedral:type1 $atom:id27 $atom:id26 $atom:id29 $atom:id4
|
||||
$dihedral:id136 @dihedral:type1 $atom:id27 $atom:id26 $atom:id29 $atom:id30
|
||||
$dihedral:id137 @dihedral:type1 $atom:id26 $atom:id27 $atom:id48 $atom:id47
|
||||
$dihedral:id138 @dihedral:type1 $atom:id26 $atom:id27 $atom:id48 $atom:id49
|
||||
$dihedral:id139 @dihedral:type1 $atom:id28 $atom:id27 $atom:id48 $atom:id47
|
||||
$dihedral:id140 @dihedral:type1 $atom:id28 $atom:id27 $atom:id48 $atom:id49
|
||||
$dihedral:id141 @dihedral:type1 $atom:id26 $atom:id27 $atom:id28 $atom:id31
|
||||
$dihedral:id142 @dihedral:type1 $atom:id26 $atom:id27 $atom:id28 $atom:id53
|
||||
$dihedral:id143 @dihedral:type1 $atom:id48 $atom:id27 $atom:id28 $atom:id31
|
||||
$dihedral:id144 @dihedral:type1 $atom:id48 $atom:id27 $atom:id28 $atom:id53
|
||||
$dihedral:id145 @dihedral:type1 $atom:id27 $atom:id28 $atom:id31 $atom:id30
|
||||
$dihedral:id146 @dihedral:type1 $atom:id27 $atom:id28 $atom:id31 $atom:id32
|
||||
$dihedral:id147 @dihedral:type1 $atom:id53 $atom:id28 $atom:id31 $atom:id30
|
||||
$dihedral:id148 @dihedral:type1 $atom:id53 $atom:id28 $atom:id31 $atom:id32
|
||||
$dihedral:id149 @dihedral:type1 $atom:id27 $atom:id28 $atom:id53 $atom:id50
|
||||
$dihedral:id150 @dihedral:type1 $atom:id27 $atom:id28 $atom:id53 $atom:id54
|
||||
$dihedral:id151 @dihedral:type1 $atom:id31 $atom:id28 $atom:id53 $atom:id50
|
||||
$dihedral:id152 @dihedral:type1 $atom:id31 $atom:id28 $atom:id53 $atom:id54
|
||||
$dihedral:id153 @dihedral:type1 $atom:id4 $atom:id29 $atom:id30 $atom:id31
|
||||
$dihedral:id154 @dihedral:type1 $atom:id4 $atom:id29 $atom:id30 $atom:id33
|
||||
$dihedral:id155 @dihedral:type1 $atom:id26 $atom:id29 $atom:id30 $atom:id31
|
||||
$dihedral:id156 @dihedral:type1 $atom:id26 $atom:id29 $atom:id30 $atom:id33
|
||||
$dihedral:id157 @dihedral:type1 $atom:id29 $atom:id30 $atom:id31 $atom:id28
|
||||
$dihedral:id158 @dihedral:type1 $atom:id29 $atom:id30 $atom:id31 $atom:id32
|
||||
$dihedral:id159 @dihedral:type1 $atom:id33 $atom:id30 $atom:id31 $atom:id28
|
||||
$dihedral:id160 @dihedral:type1 $atom:id33 $atom:id30 $atom:id31 $atom:id32
|
||||
$dihedral:id161 @dihedral:type1 $atom:id29 $atom:id30 $atom:id33 $atom:id8
|
||||
$dihedral:id162 @dihedral:type1 $atom:id29 $atom:id30 $atom:id33 $atom:id34
|
||||
$dihedral:id163 @dihedral:type1 $atom:id31 $atom:id30 $atom:id33 $atom:id8
|
||||
$dihedral:id164 @dihedral:type1 $atom:id31 $atom:id30 $atom:id33 $atom:id34
|
||||
$dihedral:id165 @dihedral:type1 $atom:id28 $atom:id31 $atom:id32 $atom:id57
|
||||
$dihedral:id166 @dihedral:type1 $atom:id28 $atom:id31 $atom:id32 $atom:id35
|
||||
$dihedral:id167 @dihedral:type1 $atom:id30 $atom:id31 $atom:id32 $atom:id57
|
||||
$dihedral:id168 @dihedral:type1 $atom:id30 $atom:id31 $atom:id32 $atom:id35
|
||||
$dihedral:id169 @dihedral:type1 $atom:id31 $atom:id32 $atom:id57 $atom:id54
|
||||
$dihedral:id170 @dihedral:type1 $atom:id31 $atom:id32 $atom:id57 $atom:id58
|
||||
$dihedral:id171 @dihedral:type1 $atom:id35 $atom:id32 $atom:id57 $atom:id54
|
||||
$dihedral:id172 @dihedral:type1 $atom:id35 $atom:id32 $atom:id57 $atom:id58
|
||||
$dihedral:id173 @dihedral:type1 $atom:id31 $atom:id32 $atom:id35 $atom:id34
|
||||
$dihedral:id174 @dihedral:type1 $atom:id31 $atom:id32 $atom:id35 $atom:id36
|
||||
$dihedral:id175 @dihedral:type1 $atom:id57 $atom:id32 $atom:id35 $atom:id34
|
||||
$dihedral:id176 @dihedral:type1 $atom:id57 $atom:id32 $atom:id35 $atom:id36
|
||||
$dihedral:id177 @dihedral:type1 $atom:id8 $atom:id33 $atom:id34 $atom:id37
|
||||
$dihedral:id178 @dihedral:type1 $atom:id8 $atom:id33 $atom:id34 $atom:id35
|
||||
$dihedral:id179 @dihedral:type1 $atom:id30 $atom:id33 $atom:id34 $atom:id37
|
||||
$dihedral:id180 @dihedral:type1 $atom:id30 $atom:id33 $atom:id34 $atom:id35
|
||||
$dihedral:id181 @dihedral:type1 $atom:id33 $atom:id34 $atom:id37 $atom:id12
|
||||
$dihedral:id182 @dihedral:type1 $atom:id33 $atom:id34 $atom:id37 $atom:id38
|
||||
$dihedral:id183 @dihedral:type1 $atom:id35 $atom:id34 $atom:id37 $atom:id12
|
||||
$dihedral:id184 @dihedral:type1 $atom:id35 $atom:id34 $atom:id37 $atom:id38
|
||||
$dihedral:id185 @dihedral:type1 $atom:id33 $atom:id34 $atom:id35 $atom:id32
|
||||
$dihedral:id186 @dihedral:type1 $atom:id33 $atom:id34 $atom:id35 $atom:id36
|
||||
$dihedral:id187 @dihedral:type1 $atom:id37 $atom:id34 $atom:id35 $atom:id32
|
||||
$dihedral:id188 @dihedral:type1 $atom:id37 $atom:id34 $atom:id35 $atom:id36
|
||||
$dihedral:id189 @dihedral:type1 $atom:id32 $atom:id35 $atom:id36 $atom:id39
|
||||
$dihedral:id190 @dihedral:type1 $atom:id32 $atom:id35 $atom:id36 $atom:id61
|
||||
$dihedral:id191 @dihedral:type1 $atom:id34 $atom:id35 $atom:id36 $atom:id39
|
||||
$dihedral:id192 @dihedral:type1 $atom:id34 $atom:id35 $atom:id36 $atom:id61
|
||||
$dihedral:id193 @dihedral:type1 $atom:id35 $atom:id36 $atom:id39 $atom:id38
|
||||
$dihedral:id194 @dihedral:type1 $atom:id35 $atom:id36 $atom:id39 $atom:id40
|
||||
$dihedral:id195 @dihedral:type1 $atom:id61 $atom:id36 $atom:id39 $atom:id38
|
||||
$dihedral:id196 @dihedral:type1 $atom:id61 $atom:id36 $atom:id39 $atom:id40
|
||||
$dihedral:id197 @dihedral:type1 $atom:id35 $atom:id36 $atom:id61 $atom:id58
|
||||
$dihedral:id198 @dihedral:type1 $atom:id35 $atom:id36 $atom:id61 $atom:id62
|
||||
$dihedral:id199 @dihedral:type1 $atom:id39 $atom:id36 $atom:id61 $atom:id58
|
||||
$dihedral:id200 @dihedral:type1 $atom:id39 $atom:id36 $atom:id61 $atom:id62
|
||||
$dihedral:id201 @dihedral:type1 $atom:id12 $atom:id37 $atom:id38 $atom:id41
|
||||
$dihedral:id202 @dihedral:type1 $atom:id12 $atom:id37 $atom:id38 $atom:id39
|
||||
$dihedral:id203 @dihedral:type1 $atom:id34 $atom:id37 $atom:id38 $atom:id41
|
||||
$dihedral:id204 @dihedral:type1 $atom:id34 $atom:id37 $atom:id38 $atom:id39
|
||||
$dihedral:id205 @dihedral:type1 $atom:id37 $atom:id38 $atom:id41 $atom:id16
|
||||
$dihedral:id206 @dihedral:type1 $atom:id37 $atom:id38 $atom:id41 $atom:id42
|
||||
$dihedral:id207 @dihedral:type1 $atom:id39 $atom:id38 $atom:id41 $atom:id16
|
||||
$dihedral:id208 @dihedral:type1 $atom:id39 $atom:id38 $atom:id41 $atom:id42
|
||||
$dihedral:id209 @dihedral:type1 $atom:id37 $atom:id38 $atom:id39 $atom:id36
|
||||
$dihedral:id210 @dihedral:type1 $atom:id37 $atom:id38 $atom:id39 $atom:id40
|
||||
$dihedral:id211 @dihedral:type1 $atom:id41 $atom:id38 $atom:id39 $atom:id36
|
||||
$dihedral:id212 @dihedral:type1 $atom:id41 $atom:id38 $atom:id39 $atom:id40
|
||||
$dihedral:id213 @dihedral:type1 $atom:id36 $atom:id39 $atom:id40 $atom:id43
|
||||
$dihedral:id214 @dihedral:type1 $atom:id36 $atom:id39 $atom:id40 $atom:id65
|
||||
$dihedral:id215 @dihedral:type1 $atom:id38 $atom:id39 $atom:id40 $atom:id43
|
||||
$dihedral:id216 @dihedral:type1 $atom:id38 $atom:id39 $atom:id40 $atom:id65
|
||||
$dihedral:id217 @dihedral:type1 $atom:id39 $atom:id40 $atom:id43 $atom:id42
|
||||
$dihedral:id218 @dihedral:type1 $atom:id39 $atom:id40 $atom:id43 $atom:id44
|
||||
$dihedral:id219 @dihedral:type1 $atom:id65 $atom:id40 $atom:id43 $atom:id42
|
||||
$dihedral:id220 @dihedral:type1 $atom:id65 $atom:id40 $atom:id43 $atom:id44
|
||||
$dihedral:id221 @dihedral:type1 $atom:id39 $atom:id40 $atom:id65 $atom:id62
|
||||
$dihedral:id222 @dihedral:type1 $atom:id39 $atom:id40 $atom:id65 $atom:id66
|
||||
$dihedral:id223 @dihedral:type1 $atom:id43 $atom:id40 $atom:id65 $atom:id62
|
||||
$dihedral:id224 @dihedral:type1 $atom:id43 $atom:id40 $atom:id65 $atom:id66
|
||||
$dihedral:id225 @dihedral:type1 $atom:id16 $atom:id41 $atom:id42 $atom:id45
|
||||
$dihedral:id226 @dihedral:type1 $atom:id16 $atom:id41 $atom:id42 $atom:id43
|
||||
$dihedral:id227 @dihedral:type1 $atom:id38 $atom:id41 $atom:id42 $atom:id45
|
||||
$dihedral:id228 @dihedral:type1 $atom:id38 $atom:id41 $atom:id42 $atom:id43
|
||||
$dihedral:id229 @dihedral:type1 $atom:id41 $atom:id42 $atom:id45 $atom:id20
|
||||
$dihedral:id230 @dihedral:type1 $atom:id41 $atom:id42 $atom:id45 $atom:id46
|
||||
$dihedral:id231 @dihedral:type1 $atom:id43 $atom:id42 $atom:id45 $atom:id20
|
||||
$dihedral:id232 @dihedral:type1 $atom:id43 $atom:id42 $atom:id45 $atom:id46
|
||||
$dihedral:id233 @dihedral:type1 $atom:id41 $atom:id42 $atom:id43 $atom:id40
|
||||
$dihedral:id234 @dihedral:type1 $atom:id41 $atom:id42 $atom:id43 $atom:id44
|
||||
$dihedral:id235 @dihedral:type1 $atom:id45 $atom:id42 $atom:id43 $atom:id40
|
||||
$dihedral:id236 @dihedral:type1 $atom:id45 $atom:id42 $atom:id43 $atom:id44
|
||||
$dihedral:id237 @dihedral:type1 $atom:id40 $atom:id43 $atom:id44 $atom:id47
|
||||
$dihedral:id238 @dihedral:type1 $atom:id40 $atom:id43 $atom:id44 $atom:id69
|
||||
$dihedral:id239 @dihedral:type1 $atom:id42 $atom:id43 $atom:id44 $atom:id47
|
||||
$dihedral:id240 @dihedral:type1 $atom:id42 $atom:id43 $atom:id44 $atom:id69
|
||||
$dihedral:id241 @dihedral:type1 $atom:id43 $atom:id44 $atom:id47 $atom:id46
|
||||
$dihedral:id242 @dihedral:type1 $atom:id43 $atom:id44 $atom:id47 $atom:id48
|
||||
$dihedral:id243 @dihedral:type1 $atom:id69 $atom:id44 $atom:id47 $atom:id46
|
||||
$dihedral:id244 @dihedral:type1 $atom:id69 $atom:id44 $atom:id47 $atom:id48
|
||||
$dihedral:id245 @dihedral:type1 $atom:id43 $atom:id44 $atom:id69 $atom:id66
|
||||
$dihedral:id246 @dihedral:type1 $atom:id43 $atom:id44 $atom:id69 $atom:id70
|
||||
$dihedral:id247 @dihedral:type1 $atom:id47 $atom:id44 $atom:id69 $atom:id66
|
||||
$dihedral:id248 @dihedral:type1 $atom:id47 $atom:id44 $atom:id69 $atom:id70
|
||||
$dihedral:id249 @dihedral:type1 $atom:id20 $atom:id45 $atom:id46 $atom:id25
|
||||
$dihedral:id250 @dihedral:type1 $atom:id20 $atom:id45 $atom:id46 $atom:id47
|
||||
$dihedral:id251 @dihedral:type1 $atom:id42 $atom:id45 $atom:id46 $atom:id25
|
||||
$dihedral:id252 @dihedral:type1 $atom:id42 $atom:id45 $atom:id46 $atom:id47
|
||||
$dihedral:id253 @dihedral:type1 $atom:id25 $atom:id46 $atom:id47 $atom:id44
|
||||
$dihedral:id254 @dihedral:type1 $atom:id25 $atom:id46 $atom:id47 $atom:id48
|
||||
$dihedral:id255 @dihedral:type1 $atom:id45 $atom:id46 $atom:id47 $atom:id44
|
||||
$dihedral:id256 @dihedral:type1 $atom:id45 $atom:id46 $atom:id47 $atom:id48
|
||||
$dihedral:id257 @dihedral:type1 $atom:id44 $atom:id47 $atom:id48 $atom:id27
|
||||
$dihedral:id258 @dihedral:type1 $atom:id44 $atom:id47 $atom:id48 $atom:id49
|
||||
$dihedral:id259 @dihedral:type1 $atom:id46 $atom:id47 $atom:id48 $atom:id27
|
||||
$dihedral:id260 @dihedral:type1 $atom:id46 $atom:id47 $atom:id48 $atom:id49
|
||||
$dihedral:id261 @dihedral:type1 $atom:id27 $atom:id48 $atom:id49 $atom:id50
|
||||
$dihedral:id262 @dihedral:type1 $atom:id27 $atom:id48 $atom:id49 $atom:id70
|
||||
$dihedral:id263 @dihedral:type1 $atom:id47 $atom:id48 $atom:id49 $atom:id50
|
||||
$dihedral:id264 @dihedral:type1 $atom:id47 $atom:id48 $atom:id49 $atom:id70
|
||||
$dihedral:id265 @dihedral:type1 $atom:id48 $atom:id49 $atom:id50 $atom:id51
|
||||
$dihedral:id266 @dihedral:type1 $atom:id48 $atom:id49 $atom:id50 $atom:id53
|
||||
$dihedral:id267 @dihedral:type1 $atom:id70 $atom:id49 $atom:id50 $atom:id51
|
||||
$dihedral:id268 @dihedral:type1 $atom:id70 $atom:id49 $atom:id50 $atom:id53
|
||||
$dihedral:id269 @dihedral:type1 $atom:id48 $atom:id49 $atom:id70 $atom:id69
|
||||
$dihedral:id270 @dihedral:type1 $atom:id48 $atom:id49 $atom:id70 $atom:id71
|
||||
$dihedral:id271 @dihedral:type1 $atom:id50 $atom:id49 $atom:id70 $atom:id69
|
||||
$dihedral:id272 @dihedral:type1 $atom:id50 $atom:id49 $atom:id70 $atom:id71
|
||||
$dihedral:id273 @dihedral:type1 $atom:id49 $atom:id50 $atom:id51 $atom:id72
|
||||
$dihedral:id274 @dihedral:type1 $atom:id49 $atom:id50 $atom:id51 $atom:id52
|
||||
$dihedral:id275 @dihedral:type1 $atom:id53 $atom:id50 $atom:id51 $atom:id72
|
||||
$dihedral:id276 @dihedral:type1 $atom:id53 $atom:id50 $atom:id51 $atom:id52
|
||||
$dihedral:id277 @dihedral:type1 $atom:id49 $atom:id50 $atom:id53 $atom:id28
|
||||
$dihedral:id278 @dihedral:type1 $atom:id49 $atom:id50 $atom:id53 $atom:id54
|
||||
$dihedral:id279 @dihedral:type1 $atom:id51 $atom:id50 $atom:id53 $atom:id28
|
||||
$dihedral:id280 @dihedral:type1 $atom:id51 $atom:id50 $atom:id53 $atom:id54
|
||||
$dihedral:id281 @dihedral:type1 $atom:id50 $atom:id51 $atom:id72 $atom:id71
|
||||
$dihedral:id282 @dihedral:type1 $atom:id52 $atom:id51 $atom:id72 $atom:id71
|
||||
$dihedral:id283 @dihedral:type1 $atom:id50 $atom:id51 $atom:id52 $atom:id55
|
||||
$dihedral:id284 @dihedral:type1 $atom:id72 $atom:id51 $atom:id52 $atom:id55
|
||||
$dihedral:id285 @dihedral:type1 $atom:id51 $atom:id52 $atom:id55 $atom:id54
|
||||
$dihedral:id286 @dihedral:type1 $atom:id51 $atom:id52 $atom:id55 $atom:id56
|
||||
$dihedral:id287 @dihedral:type1 $atom:id28 $atom:id53 $atom:id54 $atom:id55
|
||||
$dihedral:id288 @dihedral:type1 $atom:id28 $atom:id53 $atom:id54 $atom:id57
|
||||
$dihedral:id289 @dihedral:type1 $atom:id50 $atom:id53 $atom:id54 $atom:id55
|
||||
$dihedral:id290 @dihedral:type1 $atom:id50 $atom:id53 $atom:id54 $atom:id57
|
||||
$dihedral:id291 @dihedral:type1 $atom:id53 $atom:id54 $atom:id55 $atom:id52
|
||||
$dihedral:id292 @dihedral:type1 $atom:id53 $atom:id54 $atom:id55 $atom:id56
|
||||
$dihedral:id293 @dihedral:type1 $atom:id57 $atom:id54 $atom:id55 $atom:id52
|
||||
$dihedral:id294 @dihedral:type1 $atom:id57 $atom:id54 $atom:id55 $atom:id56
|
||||
$dihedral:id295 @dihedral:type1 $atom:id53 $atom:id54 $atom:id57 $atom:id32
|
||||
$dihedral:id296 @dihedral:type1 $atom:id53 $atom:id54 $atom:id57 $atom:id58
|
||||
$dihedral:id297 @dihedral:type1 $atom:id55 $atom:id54 $atom:id57 $atom:id32
|
||||
$dihedral:id298 @dihedral:type1 $atom:id55 $atom:id54 $atom:id57 $atom:id58
|
||||
$dihedral:id299 @dihedral:type1 $atom:id52 $atom:id55 $atom:id56 $atom:id59
|
||||
$dihedral:id300 @dihedral:type1 $atom:id54 $atom:id55 $atom:id56 $atom:id59
|
||||
$dihedral:id301 @dihedral:type1 $atom:id55 $atom:id56 $atom:id59 $atom:id58
|
||||
$dihedral:id302 @dihedral:type1 $atom:id55 $atom:id56 $atom:id59 $atom:id60
|
||||
$dihedral:id303 @dihedral:type1 $atom:id32 $atom:id57 $atom:id58 $atom:id61
|
||||
$dihedral:id304 @dihedral:type1 $atom:id32 $atom:id57 $atom:id58 $atom:id59
|
||||
$dihedral:id305 @dihedral:type1 $atom:id54 $atom:id57 $atom:id58 $atom:id61
|
||||
$dihedral:id306 @dihedral:type1 $atom:id54 $atom:id57 $atom:id58 $atom:id59
|
||||
$dihedral:id307 @dihedral:type1 $atom:id57 $atom:id58 $atom:id61 $atom:id36
|
||||
$dihedral:id308 @dihedral:type1 $atom:id57 $atom:id58 $atom:id61 $atom:id62
|
||||
$dihedral:id309 @dihedral:type1 $atom:id59 $atom:id58 $atom:id61 $atom:id36
|
||||
$dihedral:id310 @dihedral:type1 $atom:id59 $atom:id58 $atom:id61 $atom:id62
|
||||
$dihedral:id311 @dihedral:type1 $atom:id57 $atom:id58 $atom:id59 $atom:id56
|
||||
$dihedral:id312 @dihedral:type1 $atom:id57 $atom:id58 $atom:id59 $atom:id60
|
||||
$dihedral:id313 @dihedral:type1 $atom:id61 $atom:id58 $atom:id59 $atom:id56
|
||||
$dihedral:id314 @dihedral:type1 $atom:id61 $atom:id58 $atom:id59 $atom:id60
|
||||
$dihedral:id315 @dihedral:type1 $atom:id56 $atom:id59 $atom:id60 $atom:id63
|
||||
$dihedral:id316 @dihedral:type1 $atom:id58 $atom:id59 $atom:id60 $atom:id63
|
||||
$dihedral:id317 @dihedral:type1 $atom:id59 $atom:id60 $atom:id63 $atom:id62
|
||||
$dihedral:id318 @dihedral:type1 $atom:id59 $atom:id60 $atom:id63 $atom:id64
|
||||
$dihedral:id319 @dihedral:type1 $atom:id36 $atom:id61 $atom:id62 $atom:id65
|
||||
$dihedral:id320 @dihedral:type1 $atom:id36 $atom:id61 $atom:id62 $atom:id63
|
||||
$dihedral:id321 @dihedral:type1 $atom:id58 $atom:id61 $atom:id62 $atom:id65
|
||||
$dihedral:id322 @dihedral:type1 $atom:id58 $atom:id61 $atom:id62 $atom:id63
|
||||
$dihedral:id323 @dihedral:type1 $atom:id61 $atom:id62 $atom:id65 $atom:id40
|
||||
$dihedral:id324 @dihedral:type1 $atom:id61 $atom:id62 $atom:id65 $atom:id66
|
||||
$dihedral:id325 @dihedral:type1 $atom:id63 $atom:id62 $atom:id65 $atom:id40
|
||||
$dihedral:id326 @dihedral:type1 $atom:id63 $atom:id62 $atom:id65 $atom:id66
|
||||
$dihedral:id327 @dihedral:type1 $atom:id61 $atom:id62 $atom:id63 $atom:id60
|
||||
$dihedral:id328 @dihedral:type1 $atom:id61 $atom:id62 $atom:id63 $atom:id64
|
||||
$dihedral:id329 @dihedral:type1 $atom:id65 $atom:id62 $atom:id63 $atom:id60
|
||||
$dihedral:id330 @dihedral:type1 $atom:id65 $atom:id62 $atom:id63 $atom:id64
|
||||
$dihedral:id331 @dihedral:type1 $atom:id60 $atom:id63 $atom:id64 $atom:id67
|
||||
$dihedral:id332 @dihedral:type1 $atom:id62 $atom:id63 $atom:id64 $atom:id67
|
||||
$dihedral:id333 @dihedral:type1 $atom:id63 $atom:id64 $atom:id67 $atom:id66
|
||||
$dihedral:id334 @dihedral:type1 $atom:id63 $atom:id64 $atom:id67 $atom:id68
|
||||
$dihedral:id335 @dihedral:type1 $atom:id40 $atom:id65 $atom:id66 $atom:id69
|
||||
$dihedral:id336 @dihedral:type1 $atom:id40 $atom:id65 $atom:id66 $atom:id67
|
||||
$dihedral:id337 @dihedral:type1 $atom:id62 $atom:id65 $atom:id66 $atom:id69
|
||||
$dihedral:id338 @dihedral:type1 $atom:id62 $atom:id65 $atom:id66 $atom:id67
|
||||
$dihedral:id339 @dihedral:type1 $atom:id65 $atom:id66 $atom:id69 $atom:id44
|
||||
$dihedral:id340 @dihedral:type1 $atom:id65 $atom:id66 $atom:id69 $atom:id70
|
||||
$dihedral:id341 @dihedral:type1 $atom:id67 $atom:id66 $atom:id69 $atom:id44
|
||||
$dihedral:id342 @dihedral:type1 $atom:id67 $atom:id66 $atom:id69 $atom:id70
|
||||
$dihedral:id343 @dihedral:type1 $atom:id65 $atom:id66 $atom:id67 $atom:id64
|
||||
$dihedral:id344 @dihedral:type1 $atom:id65 $atom:id66 $atom:id67 $atom:id68
|
||||
$dihedral:id345 @dihedral:type1 $atom:id69 $atom:id66 $atom:id67 $atom:id64
|
||||
$dihedral:id346 @dihedral:type1 $atom:id69 $atom:id66 $atom:id67 $atom:id68
|
||||
$dihedral:id347 @dihedral:type1 $atom:id64 $atom:id67 $atom:id68 $atom:id71
|
||||
$dihedral:id348 @dihedral:type1 $atom:id66 $atom:id67 $atom:id68 $atom:id71
|
||||
$dihedral:id349 @dihedral:type1 $atom:id67 $atom:id68 $atom:id71 $atom:id70
|
||||
$dihedral:id350 @dihedral:type1 $atom:id67 $atom:id68 $atom:id71 $atom:id72
|
||||
$dihedral:id351 @dihedral:type1 $atom:id44 $atom:id69 $atom:id70 $atom:id49
|
||||
$dihedral:id352 @dihedral:type1 $atom:id44 $atom:id69 $atom:id70 $atom:id71
|
||||
$dihedral:id353 @dihedral:type1 $atom:id66 $atom:id69 $atom:id70 $atom:id49
|
||||
$dihedral:id354 @dihedral:type1 $atom:id66 $atom:id69 $atom:id70 $atom:id71
|
||||
$dihedral:id355 @dihedral:type1 $atom:id49 $atom:id70 $atom:id71 $atom:id68
|
||||
$dihedral:id356 @dihedral:type1 $atom:id49 $atom:id70 $atom:id71 $atom:id72
|
||||
$dihedral:id357 @dihedral:type1 $atom:id69 $atom:id70 $atom:id71 $atom:id68
|
||||
$dihedral:id358 @dihedral:type1 $atom:id69 $atom:id70 $atom:id71 $atom:id72
|
||||
$dihedral:id359 @dihedral:type1 $atom:id68 $atom:id71 $atom:id72 $atom:id51
|
||||
$dihedral:id360 @dihedral:type1 $atom:id70 $atom:id71 $atom:id72 $atom:id51
|
||||
}
|
||||
|
||||
} # end of "CNT" type definition
|
||||
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 20 KiB |
@ -1,598 +0,0 @@
|
||||
PSF
|
||||
|
||||
1 !NTITLE
|
||||
REMARKS VMD generated structure x-plor psf file
|
||||
|
||||
130 !NATOM
|
||||
1 1 1 1 0.000000 10.0000 0
|
||||
2 1 1 1 0.000000 10.0000 0
|
||||
3 1 1 1 0.000000 10.0000 0
|
||||
4 1 1 1 0.000000 10.0000 0
|
||||
5 1 1 1 0.000000 10.0000 0
|
||||
6 1 1 1 0.000000 10.0000 0
|
||||
7 1 1 1 0.000000 10.0000 0
|
||||
8 1 1 1 0.000000 10.0000 0
|
||||
9 1 1 1 0.000000 10.0000 0
|
||||
10 1 1 1 0.000000 10.0000 0
|
||||
11 1 1 1 0.000000 10.0000 0
|
||||
12 1 1 1 0.000000 10.0000 0
|
||||
13 1 1 1 0.000000 10.0000 0
|
||||
14 1 1 1 0.000000 10.0000 0
|
||||
15 1 1 1 0.000000 10.0000 0
|
||||
16 1 1 1 0.000000 10.0000 0
|
||||
17 1 1 1 0.000000 10.0000 0
|
||||
18 1 1 1 0.000000 10.0000 0
|
||||
19 1 1 1 0.000000 10.0000 0
|
||||
20 1 1 1 0.000000 10.0000 0
|
||||
21 1 1 1 0.000000 10.0000 0
|
||||
22 1 1 1 0.000000 10.0000 0
|
||||
23 1 1 1 0.000000 10.0000 0
|
||||
24 1 1 1 0.000000 10.0000 0
|
||||
25 1 1 1 0.000000 10.0000 0
|
||||
26 1 1 1 0.000000 10.0000 0
|
||||
27 1 1 1 0.000000 10.0000 0
|
||||
28 1 1 1 0.000000 10.0000 0
|
||||
29 1 1 1 0.000000 10.0000 0
|
||||
30 1 1 1 0.000000 10.0000 0
|
||||
31 1 1 1 0.000000 10.0000 0
|
||||
32 1 1 1 0.000000 10.0000 0
|
||||
33 1 1 1 0.000000 10.0000 0
|
||||
34 1 1 1 0.000000 10.0000 0
|
||||
35 1 1 1 0.000000 10.0000 0
|
||||
36 1 1 1 0.000000 10.0000 0
|
||||
37 1 1 1 0.000000 10.0000 0
|
||||
38 1 1 1 0.000000 10.0000 0
|
||||
39 1 1 1 0.000000 10.0000 0
|
||||
40 1 1 1 0.000000 10.0000 0
|
||||
41 1 1 1 0.000000 10.0000 0
|
||||
42 1 1 1 0.000000 10.0000 0
|
||||
43 1 1 1 0.000000 10.0000 0
|
||||
44 1 1 1 0.000000 10.0000 0
|
||||
45 1 1 1 0.000000 10.0000 0
|
||||
46 1 1 1 0.000000 10.0000 0
|
||||
47 1 1 1 0.000000 10.0000 0
|
||||
48 1 1 1 0.000000 10.0000 0
|
||||
49 1 1 1 0.000000 10.0000 0
|
||||
50 1 1 1 0.000000 10.0000 0
|
||||
51 1 1 1 0.000000 10.0000 0
|
||||
52 1 1 1 0.000000 10.0000 0
|
||||
53 1 1 1 0.000000 10.0000 0
|
||||
54 1 1 1 0.000000 10.0000 0
|
||||
55 1 1 1 0.000000 10.0000 0
|
||||
56 1 1 1 0.000000 10.0000 0
|
||||
57 1 1 1 0.000000 10.0000 0
|
||||
58 1 1 1 0.000000 10.0000 0
|
||||
59 1 1 1 0.000000 10.0000 0
|
||||
60 1 1 1 0.000000 10.0000 0
|
||||
61 1 1 1 0.000000 10.0000 0
|
||||
62 1 1 1 0.000000 10.0000 0
|
||||
63 1 1 1 0.000000 10.0000 0
|
||||
64 1 1 1 0.000000 10.0000 0
|
||||
65 1 1 1 0.000000 10.0000 0
|
||||
66 1 1 1 0.000000 10.0000 0
|
||||
67 1 1 1 0.000000 10.0000 0
|
||||
68 1 1 1 0.000000 10.0000 0
|
||||
69 1 1 1 0.000000 10.0000 0
|
||||
70 1 1 1 0.000000 10.0000 0
|
||||
71 1 1 1 0.000000 10.0000 0
|
||||
72 1 1 1 0.000000 10.0000 0
|
||||
73 2 9 9 -0.180000 10.0000 0
|
||||
74 2 4 4 0.090000 10.0000 0
|
||||
75 2 4 4 0.090000 10.0000 0
|
||||
76 2 9 9 -0.090000 10.0000 0
|
||||
77 2 4 4 0.090000 10.0000 0
|
||||
78 2 10 10 -0.180000 10.0000 0
|
||||
79 2 5 5 0.090000 10.0000 0
|
||||
80 2 5 5 0.090000 10.0000 0
|
||||
81 2 11 11 -0.090000 10.0000 0
|
||||
82 2 4 4 0.090000 10.0000 0
|
||||
83 2 10 10 -0.180000 10.0000 0
|
||||
84 2 5 5 0.090000 10.0000 0
|
||||
85 2 5 5 0.090000 10.0000 0
|
||||
86 2 12 12 -0.090000 10.0000 0
|
||||
87 2 4 4 0.090000 10.0000 0
|
||||
88 2 8 8 0.280000 10.0000 0
|
||||
89 2 16 16 -0.710000 10.0000 0
|
||||
90 2 7 7 0.340000 10.0000 0
|
||||
91 2 3 3 0.120000 10.0000 0
|
||||
92 2 14 14 -0.050000 10.0000 0
|
||||
93 2 15 15 -0.740000 10.0000 0
|
||||
94 2 7 7 0.500000 10.0000 0
|
||||
95 2 3 3 0.130000 10.0000 0
|
||||
96 2 15 15 -0.750000 10.0000 0
|
||||
97 2 8 8 0.430000 10.0000 0
|
||||
98 2 6 6 0.460000 10.0000 0
|
||||
99 2 13 13 -0.770000 10.0000 0
|
||||
100 2 2 2 0.380000 10.0000 0
|
||||
101 2 2 2 0.380000 10.0000 0
|
||||
102 3 9 9 -0.180000 10.0000 0
|
||||
103 3 4 4 0.090000 10.0000 0
|
||||
104 3 4 4 0.090000 10.0000 0
|
||||
105 3 9 9 -0.090000 10.0000 0
|
||||
106 3 4 4 0.090000 10.0000 0
|
||||
107 3 10 10 -0.180000 10.0000 0
|
||||
108 3 5 5 0.090000 10.0000 0
|
||||
109 3 5 5 0.090000 10.0000 0
|
||||
110 3 11 11 -0.090000 10.0000 0
|
||||
111 3 4 4 0.090000 10.0000 0
|
||||
112 3 10 10 -0.180000 10.0000 0
|
||||
113 3 5 5 0.090000 10.0000 0
|
||||
114 3 5 5 0.090000 10.0000 0
|
||||
115 3 12 12 -0.090000 10.0000 0
|
||||
116 3 4 4 0.090000 10.0000 0
|
||||
117 3 8 8 0.280000 10.0000 0
|
||||
118 3 16 16 -0.710000 10.0000 0
|
||||
119 3 7 7 0.340000 10.0000 0
|
||||
120 3 3 3 0.120000 10.0000 0
|
||||
121 3 14 14 -0.050000 10.0000 0
|
||||
122 3 15 15 -0.740000 10.0000 0
|
||||
123 3 7 7 0.500000 10.0000 0
|
||||
124 3 3 3 0.130000 10.0000 0
|
||||
125 3 15 15 -0.750000 10.0000 0
|
||||
126 3 8 8 0.430000 10.0000 0
|
||||
127 3 6 6 0.460000 10.0000 0
|
||||
128 3 13 13 -0.770000 10.0000 0
|
||||
129 3 2 2 0.380000 10.0000 0
|
||||
130 3 2 2 0.380000 10.0000 0
|
||||
|
||||
166 !NBOND: bonds
|
||||
1 2 1 22 2 3 2 5
|
||||
3 24 3 4 4 7 4 29
|
||||
5 6 6 7 6 9 7 8
|
||||
8 33 8 11 9 10 10 13
|
||||
10 11 11 12 12 15 12 37
|
||||
13 14 14 17 14 15 15 16
|
||||
16 19 16 41 17 18 18 21
|
||||
18 19 19 20 20 23 20 45
|
||||
21 22 22 23 23 24 24 25
|
||||
25 26 25 46 26 27 26 29
|
||||
27 48 27 28 28 31 28 53
|
||||
29 30 30 31 30 33 31 32
|
||||
32 57 32 35 33 34 34 37
|
||||
34 35 35 36 36 39 36 61
|
||||
37 38 38 41 38 39 39 40
|
||||
40 43 40 65 41 42 42 45
|
||||
42 43 43 44 44 47 44 69
|
||||
45 46 46 47 47 48 48 49
|
||||
49 50 49 70 50 51 50 53
|
||||
51 72 51 52 52 55 53 54
|
||||
54 55 54 57 55 56 56 59
|
||||
57 58 58 61 58 59 59 60
|
||||
60 63 61 62 62 65 62 63
|
||||
63 64 64 67 65 66 66 69
|
||||
66 67 67 68 68 71 69 70
|
||||
70 71 71 72 73 81 73 74
|
||||
73 75 73 78 76 78 76 77
|
||||
76 92 76 86 78 79 78 80
|
||||
81 86 81 83 81 82 83 86
|
||||
83 84 83 85 86 87 88 89
|
||||
88 97 88 98 89 90 90 91
|
||||
90 92 92 97 93 98 93 94
|
||||
94 95 94 96 96 97 98 99
|
||||
99 100 99 101 102 110 102 103
|
||||
102 104 102 107 105 107 105 106
|
||||
105 121 105 115 107 108 107 109
|
||||
110 115 110 112 110 111 112 115
|
||||
112 113 112 114 115 116 117 118
|
||||
117 126 117 127 118 119 119 120
|
||||
119 121 121 126 122 127 122 123
|
||||
123 124 123 125 125 126 127 128
|
||||
128 129 128 130
|
||||
|
||||
312 !NTHETA: angles
|
||||
2 1 22 1 2 3 1 2 5
|
||||
3 2 5 2 3 24 2 3 4
|
||||
4 3 24 3 4 7 3 4 29
|
||||
7 4 29 2 5 6 5 6 7
|
||||
5 6 9 7 6 9 4 7 6
|
||||
4 7 8 6 7 8 7 8 33
|
||||
7 8 11 11 8 33 6 9 10
|
||||
9 10 13 9 10 11 11 10 13
|
||||
8 11 10 8 11 12 10 11 12
|
||||
11 12 15 11 12 37 15 12 37
|
||||
10 13 14 13 14 17 13 14 15
|
||||
15 14 17 12 15 14 12 15 16
|
||||
14 15 16 15 16 19 15 16 41
|
||||
19 16 41 14 17 18 17 18 21
|
||||
17 18 19 19 18 21 16 19 18
|
||||
16 19 20 18 19 20 19 20 23
|
||||
19 20 45 23 20 45 18 21 22
|
||||
1 22 21 1 22 23 21 22 23
|
||||
20 23 22 20 23 24 22 23 24
|
||||
3 24 23 3 24 25 23 24 25
|
||||
24 25 26 24 25 46 26 25 46
|
||||
25 26 27 25 26 29 27 26 29
|
||||
26 27 48 26 27 28 28 27 48
|
||||
27 28 31 27 28 53 31 28 53
|
||||
4 29 26 4 29 30 26 29 30
|
||||
29 30 31 29 30 33 31 30 33
|
||||
28 31 30 28 31 32 30 31 32
|
||||
31 32 57 31 32 35 35 32 57
|
||||
8 33 30 8 33 34 30 33 34
|
||||
33 34 37 33 34 35 35 34 37
|
||||
32 35 34 32 35 36 34 35 36
|
||||
35 36 39 35 36 61 39 36 61
|
||||
12 37 34 12 37 38 34 37 38
|
||||
37 38 41 37 38 39 39 38 41
|
||||
36 39 38 36 39 40 38 39 40
|
||||
39 40 43 39 40 65 43 40 65
|
||||
16 41 38 16 41 42 38 41 42
|
||||
41 42 45 41 42 43 43 42 45
|
||||
40 43 42 40 43 44 42 43 44
|
||||
43 44 47 43 44 69 47 44 69
|
||||
20 45 42 20 45 46 42 45 46
|
||||
25 46 45 25 46 47 45 46 47
|
||||
44 47 46 44 47 48 46 47 48
|
||||
27 48 47 27 48 49 47 48 49
|
||||
48 49 50 48 49 70 50 49 70
|
||||
49 50 51 49 50 53 51 50 53
|
||||
50 51 72 50 51 52 52 51 72
|
||||
51 52 55 28 53 50 28 53 54
|
||||
50 53 54 53 54 55 53 54 57
|
||||
55 54 57 52 55 54 52 55 56
|
||||
54 55 56 55 56 59 32 57 54
|
||||
32 57 58 54 57 58 57 58 61
|
||||
57 58 59 59 58 61 56 59 58
|
||||
56 59 60 58 59 60 59 60 63
|
||||
36 61 58 36 61 62 58 61 62
|
||||
61 62 65 61 62 63 63 62 65
|
||||
60 63 62 60 63 64 62 63 64
|
||||
63 64 67 40 65 62 40 65 66
|
||||
62 65 66 65 66 69 65 66 67
|
||||
67 66 69 64 67 66 64 67 68
|
||||
66 67 68 67 68 71 44 69 66
|
||||
44 69 70 66 69 70 49 70 69
|
||||
49 70 71 69 70 71 68 71 70
|
||||
68 71 72 70 71 72 51 72 71
|
||||
73 81 82 73 81 83 73 81 86
|
||||
73 78 80 73 78 79 74 73 75
|
||||
76 92 90 76 92 97 76 86 87
|
||||
76 86 83 76 86 81 76 78 80
|
||||
76 78 79 73 78 76 77 76 92
|
||||
78 76 92 77 76 78 75 73 78
|
||||
74 73 78 78 73 81 79 78 80
|
||||
81 86 87 81 86 83 81 83 85
|
||||
81 83 84 81 83 86 75 73 81
|
||||
74 73 81 83 86 87 82 81 83
|
||||
84 83 85 85 83 86 84 83 86
|
||||
82 81 86 83 81 86 86 76 92
|
||||
77 76 86 78 76 86 88 98 93
|
||||
88 89 90 89 88 97 89 90 91
|
||||
88 97 92 92 97 96 89 90 92
|
||||
91 90 92 93 94 96 93 94 95
|
||||
94 93 98 95 94 96 88 97 96
|
||||
94 96 97 90 92 97 98 99 101
|
||||
98 99 100 97 88 98 89 88 98
|
||||
93 98 99 88 98 99 100 99 101
|
||||
102 110 111 102 110 112 102 110 115
|
||||
102 107 109 102 107 108 103 102 104
|
||||
105 121 119 105 121 126 105 115 116
|
||||
105 115 112 105 115 110 105 107 109
|
||||
105 107 108 102 107 105 106 105 121
|
||||
107 105 121 106 105 107 104 102 107
|
||||
103 102 107 107 102 110 108 107 109
|
||||
110 115 116 110 115 112 110 112 114
|
||||
110 112 113 110 112 115 104 102 110
|
||||
103 102 110 112 115 116 111 110 112
|
||||
113 112 114 114 112 115 113 112 115
|
||||
111 110 115 112 110 115 115 105 121
|
||||
106 105 115 107 105 115 117 127 122
|
||||
117 118 119 118 117 126 118 119 120
|
||||
117 126 121 121 126 125 118 119 121
|
||||
120 119 121 122 123 125 122 123 124
|
||||
123 122 127 124 123 125 117 126 125
|
||||
123 125 126 119 121 126 127 128 130
|
||||
127 128 129 126 117 127 118 117 127
|
||||
122 127 128 117 127 128 129 128 130
|
||||
|
||||
554 !NPHI: dihedrals
|
||||
22 1 2 3 22 1 2 5
|
||||
2 1 22 21 2 1 22 23
|
||||
1 2 3 24 1 2 3 4
|
||||
5 2 3 24 5 2 3 4
|
||||
1 2 5 6 3 2 5 6
|
||||
2 3 24 23 2 3 24 25
|
||||
4 3 24 23 4 3 24 25
|
||||
2 3 4 7 2 3 4 29
|
||||
24 3 4 7 24 3 4 29
|
||||
3 4 7 6 3 4 7 8
|
||||
29 4 7 6 29 4 7 8
|
||||
3 4 29 26 3 4 29 30
|
||||
7 4 29 26 7 4 29 30
|
||||
2 5 6 7 2 5 6 9
|
||||
5 6 7 4 5 6 7 8
|
||||
9 6 7 4 9 6 7 8
|
||||
5 6 9 10 7 6 9 10
|
||||
4 7 8 33 4 7 8 11
|
||||
6 7 8 33 6 7 8 11
|
||||
7 8 33 30 7 8 33 34
|
||||
11 8 33 30 11 8 33 34
|
||||
7 8 11 10 7 8 11 12
|
||||
33 8 11 10 33 8 11 12
|
||||
6 9 10 13 6 9 10 11
|
||||
9 10 13 14 11 10 13 14
|
||||
9 10 11 8 9 10 11 12
|
||||
13 10 11 8 13 10 11 12
|
||||
8 11 12 15 8 11 12 37
|
||||
10 11 12 15 10 11 12 37
|
||||
11 12 15 14 11 12 15 16
|
||||
37 12 15 14 37 12 15 16
|
||||
11 12 37 34 11 12 37 38
|
||||
15 12 37 34 15 12 37 38
|
||||
10 13 14 17 10 13 14 15
|
||||
13 14 17 18 15 14 17 18
|
||||
13 14 15 12 13 14 15 16
|
||||
17 14 15 12 17 14 15 16
|
||||
12 15 16 19 12 15 16 41
|
||||
14 15 16 19 14 15 16 41
|
||||
15 16 19 18 15 16 19 20
|
||||
41 16 19 18 41 16 19 20
|
||||
15 16 41 38 15 16 41 42
|
||||
19 16 41 38 19 16 41 42
|
||||
14 17 18 21 14 17 18 19
|
||||
17 18 21 22 19 18 21 22
|
||||
17 18 19 16 17 18 19 20
|
||||
21 18 19 16 21 18 19 20
|
||||
16 19 20 23 16 19 20 45
|
||||
18 19 20 23 18 19 20 45
|
||||
19 20 23 22 19 20 23 24
|
||||
45 20 23 22 45 20 23 24
|
||||
19 20 45 42 19 20 45 46
|
||||
23 20 45 42 23 20 45 46
|
||||
18 21 22 1 18 21 22 23
|
||||
1 22 23 20 1 22 23 24
|
||||
21 22 23 20 21 22 23 24
|
||||
20 23 24 3 20 23 24 25
|
||||
22 23 24 3 22 23 24 25
|
||||
3 24 25 26 3 24 25 46
|
||||
23 24 25 26 23 24 25 46
|
||||
24 25 26 27 24 25 26 29
|
||||
46 25 26 27 46 25 26 29
|
||||
24 25 46 45 24 25 46 47
|
||||
26 25 46 45 26 25 46 47
|
||||
25 26 27 48 25 26 27 28
|
||||
29 26 27 48 29 26 27 28
|
||||
25 26 29 4 25 26 29 30
|
||||
27 26 29 4 27 26 29 30
|
||||
26 27 48 47 26 27 48 49
|
||||
28 27 48 47 28 27 48 49
|
||||
26 27 28 31 26 27 28 53
|
||||
48 27 28 31 48 27 28 53
|
||||
27 28 31 30 27 28 31 32
|
||||
53 28 31 30 53 28 31 32
|
||||
27 28 53 50 27 28 53 54
|
||||
31 28 53 50 31 28 53 54
|
||||
4 29 30 31 4 29 30 33
|
||||
26 29 30 31 26 29 30 33
|
||||
29 30 31 28 29 30 31 32
|
||||
33 30 31 28 33 30 31 32
|
||||
29 30 33 8 29 30 33 34
|
||||
31 30 33 8 31 30 33 34
|
||||
28 31 32 57 28 31 32 35
|
||||
30 31 32 57 30 31 32 35
|
||||
31 32 57 54 31 32 57 58
|
||||
35 32 57 54 35 32 57 58
|
||||
31 32 35 34 31 32 35 36
|
||||
57 32 35 34 57 32 35 36
|
||||
8 33 34 37 8 33 34 35
|
||||
30 33 34 37 30 33 34 35
|
||||
33 34 37 12 33 34 37 38
|
||||
35 34 37 12 35 34 37 38
|
||||
33 34 35 32 33 34 35 36
|
||||
37 34 35 32 37 34 35 36
|
||||
32 35 36 39 32 35 36 61
|
||||
34 35 36 39 34 35 36 61
|
||||
35 36 39 38 35 36 39 40
|
||||
61 36 39 38 61 36 39 40
|
||||
35 36 61 58 35 36 61 62
|
||||
39 36 61 58 39 36 61 62
|
||||
12 37 38 41 12 37 38 39
|
||||
34 37 38 41 34 37 38 39
|
||||
37 38 41 16 37 38 41 42
|
||||
39 38 41 16 39 38 41 42
|
||||
37 38 39 36 37 38 39 40
|
||||
41 38 39 36 41 38 39 40
|
||||
36 39 40 43 36 39 40 65
|
||||
38 39 40 43 38 39 40 65
|
||||
39 40 43 42 39 40 43 44
|
||||
65 40 43 42 65 40 43 44
|
||||
39 40 65 62 39 40 65 66
|
||||
43 40 65 62 43 40 65 66
|
||||
16 41 42 45 16 41 42 43
|
||||
38 41 42 45 38 41 42 43
|
||||
41 42 45 20 41 42 45 46
|
||||
43 42 45 20 43 42 45 46
|
||||
41 42 43 40 41 42 43 44
|
||||
45 42 43 40 45 42 43 44
|
||||
40 43 44 47 40 43 44 69
|
||||
42 43 44 47 42 43 44 69
|
||||
43 44 47 46 43 44 47 48
|
||||
69 44 47 46 69 44 47 48
|
||||
43 44 69 66 43 44 69 70
|
||||
47 44 69 66 47 44 69 70
|
||||
20 45 46 25 20 45 46 47
|
||||
42 45 46 25 42 45 46 47
|
||||
25 46 47 44 25 46 47 48
|
||||
45 46 47 44 45 46 47 48
|
||||
44 47 48 27 44 47 48 49
|
||||
46 47 48 27 46 47 48 49
|
||||
27 48 49 50 27 48 49 70
|
||||
47 48 49 50 47 48 49 70
|
||||
48 49 50 51 48 49 50 53
|
||||
70 49 50 51 70 49 50 53
|
||||
48 49 70 69 48 49 70 71
|
||||
50 49 70 69 50 49 70 71
|
||||
49 50 51 72 49 50 51 52
|
||||
53 50 51 72 53 50 51 52
|
||||
49 50 53 28 49 50 53 54
|
||||
51 50 53 28 51 50 53 54
|
||||
50 51 72 71 52 51 72 71
|
||||
50 51 52 55 72 51 52 55
|
||||
51 52 55 54 51 52 55 56
|
||||
28 53 54 55 28 53 54 57
|
||||
50 53 54 55 50 53 54 57
|
||||
53 54 55 52 53 54 55 56
|
||||
57 54 55 52 57 54 55 56
|
||||
53 54 57 32 53 54 57 58
|
||||
55 54 57 32 55 54 57 58
|
||||
52 55 56 59 54 55 56 59
|
||||
55 56 59 58 55 56 59 60
|
||||
32 57 58 61 32 57 58 59
|
||||
54 57 58 61 54 57 58 59
|
||||
57 58 61 36 57 58 61 62
|
||||
59 58 61 36 59 58 61 62
|
||||
57 58 59 56 57 58 59 60
|
||||
61 58 59 56 61 58 59 60
|
||||
56 59 60 63 58 59 60 63
|
||||
59 60 63 62 59 60 63 64
|
||||
36 61 62 65 36 61 62 63
|
||||
58 61 62 65 58 61 62 63
|
||||
61 62 65 40 61 62 65 66
|
||||
63 62 65 40 63 62 65 66
|
||||
61 62 63 60 61 62 63 64
|
||||
65 62 63 60 65 62 63 64
|
||||
60 63 64 67 62 63 64 67
|
||||
63 64 67 66 63 64 67 68
|
||||
40 65 66 69 40 65 66 67
|
||||
62 65 66 69 62 65 66 67
|
||||
65 66 69 44 65 66 69 70
|
||||
67 66 69 44 67 66 69 70
|
||||
65 66 67 64 65 66 67 68
|
||||
69 66 67 64 69 66 67 68
|
||||
64 67 68 71 66 67 68 71
|
||||
67 68 71 70 67 68 71 72
|
||||
44 69 70 49 44 69 70 71
|
||||
66 69 70 49 66 69 70 71
|
||||
49 70 71 68 49 70 71 72
|
||||
69 70 71 68 69 70 71 72
|
||||
68 71 72 51 70 71 72 51
|
||||
73 81 86 76 73 81 86 83
|
||||
73 81 86 87 73 81 83 86
|
||||
73 81 83 84 73 81 83 85
|
||||
86 76 78 73 77 76 78 73
|
||||
92 76 78 73 74 73 78 76
|
||||
74 73 78 79 74 73 78 80
|
||||
74 73 81 86 74 73 81 83
|
||||
74 73 81 82 75 73 78 76
|
||||
75 73 78 79 75 73 78 80
|
||||
75 73 81 86 75 73 81 83
|
||||
75 73 81 82 76 92 97 96
|
||||
76 92 97 88 91 90 92 76
|
||||
89 90 92 76 83 81 86 76
|
||||
82 81 86 76 81 83 86 76
|
||||
84 83 86 76 85 83 86 76
|
||||
81 73 78 76 77 76 86 81
|
||||
77 76 86 83 77 76 86 87
|
||||
77 76 78 79 77 76 78 80
|
||||
77 76 92 97 77 76 92 90
|
||||
78 76 86 81 78 76 86 83
|
||||
78 76 86 87 78 76 92 97
|
||||
78 76 92 90 78 73 81 86
|
||||
78 73 81 83 78 73 81 82
|
||||
86 76 78 79 92 76 78 79
|
||||
81 73 78 79 86 76 78 80
|
||||
92 76 78 80 81 73 78 80
|
||||
92 76 86 81 84 83 86 81
|
||||
85 83 86 81 81 83 86 87
|
||||
82 81 86 83 82 81 86 87
|
||||
82 81 83 86 82 81 83 84
|
||||
82 81 83 85 92 76 86 83
|
||||
83 81 86 87 86 81 83 84
|
||||
84 83 86 87 86 81 83 85
|
||||
85 83 86 87 86 76 92 97
|
||||
86 76 92 90 92 76 86 87
|
||||
88 98 99 100 88 98 99 101
|
||||
94 93 98 88 90 92 97 88
|
||||
94 96 97 88 88 89 90 92
|
||||
88 89 90 91 89 90 92 97
|
||||
89 88 98 99 89 88 98 93
|
||||
89 88 97 92 89 88 97 96
|
||||
90 92 97 96 98 88 89 90
|
||||
97 88 89 90 91 90 92 97
|
||||
94 96 97 92 98 88 97 92
|
||||
93 98 99 100 93 98 99 101
|
||||
97 88 98 93 93 94 96 97
|
||||
94 93 98 99 98 93 94 95
|
||||
95 94 96 97 98 88 97 96
|
||||
98 93 94 96 102 110 115 105
|
||||
102 110 115 112 102 110 115 116
|
||||
102 110 112 115 102 110 112 113
|
||||
102 110 112 114 115 105 107 102
|
||||
106 105 107 102 121 105 107 102
|
||||
103 102 107 105 103 102 107 108
|
||||
103 102 107 109 103 102 110 115
|
||||
103 102 110 112 103 102 110 111
|
||||
104 102 107 105 104 102 107 108
|
||||
104 102 107 109 104 102 110 115
|
||||
104 102 110 112 104 102 110 111
|
||||
105 121 126 125 105 121 126 117
|
||||
120 119 121 105 118 119 121 105
|
||||
112 110 115 105 111 110 115 105
|
||||
110 112 115 105 113 112 115 105
|
||||
114 112 115 105 110 102 107 105
|
||||
106 105 115 110 106 105 115 112
|
||||
106 105 115 116 106 105 107 108
|
||||
106 105 107 109 106 105 121 126
|
||||
106 105 121 119 107 105 115 110
|
||||
107 105 115 112 107 105 115 116
|
||||
107 105 121 126 107 105 121 119
|
||||
107 102 110 115 107 102 110 112
|
||||
107 102 110 111 115 105 107 108
|
||||
121 105 107 108 110 102 107 108
|
||||
115 105 107 109 121 105 107 109
|
||||
110 102 107 109 121 105 115 110
|
||||
113 112 115 110 114 112 115 110
|
||||
110 112 115 116 111 110 115 112
|
||||
111 110 115 116 111 110 112 115
|
||||
111 110 112 113 111 110 112 114
|
||||
121 105 115 112 112 110 115 116
|
||||
115 110 112 113 113 112 115 116
|
||||
115 110 112 114 114 112 115 116
|
||||
115 105 121 126 115 105 121 119
|
||||
121 105 115 116 117 127 128 129
|
||||
117 127 128 130 123 122 127 117
|
||||
119 121 126 117 123 125 126 117
|
||||
117 118 119 121 117 118 119 120
|
||||
118 119 121 126 118 117 127 128
|
||||
118 117 127 122 118 117 126 121
|
||||
118 117 126 125 119 121 126 125
|
||||
127 117 118 119 126 117 118 119
|
||||
120 119 121 126 123 125 126 121
|
||||
127 117 126 121 122 127 128 129
|
||||
122 127 128 130 126 117 127 122
|
||||
122 123 125 126 123 122 127 128
|
||||
127 122 123 124 124 123 125 126
|
||||
127 117 126 125 127 122 123 125
|
||||
|
||||
0 !NIMPHI: impropers
|
||||
|
||||
|
||||
0 !NDON: donors
|
||||
|
||||
|
||||
0 !NACC: acceptors
|
||||
|
||||
|
||||
0 !NNB
|
||||
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0
|
||||
|
||||
1 0 !NGRP
|
||||
0 0 0
|
||||
|
||||
@ -1,489 +0,0 @@
|
||||
PSF
|
||||
|
||||
1 !NTITLE
|
||||
REMARKS VMD generated structure x-plor psf file
|
||||
|
||||
101 !NATOM
|
||||
1 2 1 1 0.000000 10.0000 0
|
||||
2 2 1 1 0.000000 10.0000 0
|
||||
3 2 1 1 0.000000 10.0000 0
|
||||
4 2 1 1 0.000000 10.0000 0
|
||||
5 2 1 1 0.000000 10.0000 0
|
||||
6 2 1 1 0.000000 10.0000 0
|
||||
7 2 1 1 0.000000 10.0000 0
|
||||
8 2 1 1 0.000000 10.0000 0
|
||||
9 2 1 1 0.000000 10.0000 0
|
||||
10 2 1 1 0.000000 10.0000 0
|
||||
11 2 1 1 0.000000 10.0000 0
|
||||
12 2 1 1 0.000000 10.0000 0
|
||||
13 2 1 1 0.000000 10.0000 0
|
||||
14 2 1 1 0.000000 10.0000 0
|
||||
15 2 1 1 0.000000 10.0000 0
|
||||
16 2 1 1 0.000000 10.0000 0
|
||||
17 2 1 1 0.000000 10.0000 0
|
||||
18 2 1 1 0.000000 10.0000 0
|
||||
19 2 1 1 0.000000 10.0000 0
|
||||
20 2 1 1 0.000000 10.0000 0
|
||||
21 2 1 1 0.000000 10.0000 0
|
||||
22 2 1 1 0.000000 10.0000 0
|
||||
23 2 1 1 0.000000 10.0000 0
|
||||
24 2 1 1 0.000000 10.0000 0
|
||||
25 2 1 1 0.000000 10.0000 0
|
||||
26 2 1 1 0.000000 10.0000 0
|
||||
27 2 1 1 0.000000 10.0000 0
|
||||
28 2 1 1 0.000000 10.0000 0
|
||||
29 2 1 1 0.000000 10.0000 0
|
||||
30 2 1 1 0.000000 10.0000 0
|
||||
31 2 1 1 0.000000 10.0000 0
|
||||
32 2 1 1 0.000000 10.0000 0
|
||||
33 2 1 1 0.000000 10.0000 0
|
||||
34 2 1 1 0.000000 10.0000 0
|
||||
35 2 1 1 0.000000 10.0000 0
|
||||
36 2 1 1 0.000000 10.0000 0
|
||||
37 2 1 1 0.000000 10.0000 0
|
||||
38 2 1 1 0.000000 10.0000 0
|
||||
39 2 1 1 0.000000 10.0000 0
|
||||
40 2 1 1 0.000000 10.0000 0
|
||||
41 2 1 1 0.000000 10.0000 0
|
||||
42 2 1 1 0.000000 10.0000 0
|
||||
43 2 1 1 0.000000 10.0000 0
|
||||
44 2 1 1 0.000000 10.0000 0
|
||||
45 2 1 1 0.000000 10.0000 0
|
||||
46 2 1 1 0.000000 10.0000 0
|
||||
47 2 1 1 0.000000 10.0000 0
|
||||
48 2 1 1 0.000000 10.0000 0
|
||||
49 2 1 1 0.000000 10.0000 0
|
||||
50 2 1 1 0.000000 10.0000 0
|
||||
51 2 1 1 0.000000 10.0000 0
|
||||
52 2 1 1 0.000000 10.0000 0
|
||||
53 2 1 1 0.000000 10.0000 0
|
||||
54 2 1 1 0.000000 10.0000 0
|
||||
55 2 1 1 0.000000 10.0000 0
|
||||
56 2 1 1 0.000000 10.0000 0
|
||||
57 2 1 1 0.000000 10.0000 0
|
||||
58 2 1 1 0.000000 10.0000 0
|
||||
59 2 1 1 0.000000 10.0000 0
|
||||
60 2 1 1 0.000000 10.0000 0
|
||||
61 2 1 1 0.000000 10.0000 0
|
||||
62 2 1 1 0.000000 10.0000 0
|
||||
63 2 1 1 0.000000 10.0000 0
|
||||
64 2 1 1 0.000000 10.0000 0
|
||||
65 2 1 1 0.000000 10.0000 0
|
||||
66 2 1 1 0.000000 10.0000 0
|
||||
67 2 1 1 0.000000 10.0000 0
|
||||
68 2 1 1 0.000000 10.0000 0
|
||||
69 2 1 1 0.000000 10.0000 0
|
||||
70 2 1 1 0.000000 10.0000 0
|
||||
71 2 1 1 0.000000 10.0000 0
|
||||
72 2 1 1 0.000000 10.0000 0
|
||||
73 1 9 9 -0.180000 10.0000 0
|
||||
74 1 4 4 0.090000 10.0000 0
|
||||
75 1 4 4 0.090000 10.0000 0
|
||||
76 1 9 9 -0.090000 10.0000 0
|
||||
77 1 4 4 0.090000 10.0000 0
|
||||
78 1 10 10 -0.180000 10.0000 0
|
||||
79 1 5 5 0.090000 10.0000 0
|
||||
80 1 5 5 0.090000 10.0000 0
|
||||
81 1 11 11 -0.090000 10.0000 0
|
||||
82 1 4 4 0.090000 10.0000 0
|
||||
83 1 10 10 -0.180000 10.0000 0
|
||||
84 1 5 5 0.090000 10.0000 0
|
||||
85 1 5 5 0.090000 10.0000 0
|
||||
86 1 12 12 -0.090000 10.0000 0
|
||||
87 1 4 4 0.090000 10.0000 0
|
||||
88 1 8 8 0.280000 10.0000 0
|
||||
89 1 16 16 -0.710000 10.0000 0
|
||||
90 1 7 7 0.340000 10.0000 0
|
||||
91 1 3 3 0.120000 10.0000 0
|
||||
92 1 14 14 -0.050000 10.0000 0
|
||||
93 1 15 15 -0.740000 10.0000 0
|
||||
94 1 7 7 0.500000 10.0000 0
|
||||
95 1 3 3 0.130000 10.0000 0
|
||||
96 1 15 15 -0.750000 10.0000 0
|
||||
97 1 8 8 0.430000 10.0000 0
|
||||
98 1 6 6 0.460000 10.0000 0
|
||||
99 1 13 13 -0.770000 10.0000 0
|
||||
100 1 2 2 0.380000 10.0000 0
|
||||
101 1 2 2 0.380000 10.0000 0
|
||||
|
||||
134 !NBOND: bonds
|
||||
1 2 1 22 2 3 2 5
|
||||
3 24 3 4 4 7 4 29
|
||||
5 6 6 7 6 9 7 8
|
||||
8 33 8 11 9 10 10 13
|
||||
10 11 11 12 12 15 12 37
|
||||
13 14 14 17 14 15 15 16
|
||||
16 19 16 41 17 18 18 21
|
||||
18 19 19 20 20 23 20 45
|
||||
21 22 22 23 23 24 24 25
|
||||
25 26 25 46 26 27 26 29
|
||||
27 48 27 28 28 31 28 53
|
||||
29 30 30 31 30 33 31 32
|
||||
32 57 32 35 33 34 34 37
|
||||
34 35 35 36 36 39 36 61
|
||||
37 38 38 41 38 39 39 40
|
||||
40 43 40 65 41 42 42 45
|
||||
42 43 43 44 44 47 44 69
|
||||
45 46 46 47 47 48 48 49
|
||||
49 50 49 70 50 51 50 53
|
||||
51 72 51 52 52 55 53 54
|
||||
54 55 54 57 55 56 56 59
|
||||
57 58 58 61 58 59 59 60
|
||||
60 63 61 62 62 65 62 63
|
||||
63 64 64 67 65 66 66 69
|
||||
66 67 67 68 68 71 69 70
|
||||
70 71 71 72 73 81 73 74
|
||||
73 75 73 78 76 78 76 77
|
||||
76 92 76 86 78 79 78 80
|
||||
81 86 81 83 81 82 83 86
|
||||
83 84 83 85 86 87 88 89
|
||||
88 97 88 98 89 90 90 91
|
||||
90 92 92 97 93 98 93 94
|
||||
94 95 94 96 96 97 98 99
|
||||
99 100 99 101
|
||||
|
||||
252 !NTHETA: angles
|
||||
2 1 22 1 2 3 1 2 5
|
||||
3 2 5 2 3 24 2 3 4
|
||||
4 3 24 3 4 7 3 4 29
|
||||
7 4 29 2 5 6 5 6 7
|
||||
5 6 9 7 6 9 4 7 6
|
||||
4 7 8 6 7 8 7 8 33
|
||||
7 8 11 11 8 33 6 9 10
|
||||
9 10 13 9 10 11 11 10 13
|
||||
8 11 10 8 11 12 10 11 12
|
||||
11 12 15 11 12 37 15 12 37
|
||||
10 13 14 13 14 17 13 14 15
|
||||
15 14 17 12 15 14 12 15 16
|
||||
14 15 16 15 16 19 15 16 41
|
||||
19 16 41 14 17 18 17 18 21
|
||||
17 18 19 19 18 21 16 19 18
|
||||
16 19 20 18 19 20 19 20 23
|
||||
19 20 45 23 20 45 18 21 22
|
||||
1 22 21 1 22 23 21 22 23
|
||||
20 23 22 20 23 24 22 23 24
|
||||
3 24 23 3 24 25 23 24 25
|
||||
24 25 26 24 25 46 26 25 46
|
||||
25 26 27 25 26 29 27 26 29
|
||||
26 27 48 26 27 28 28 27 48
|
||||
27 28 31 27 28 53 31 28 53
|
||||
4 29 26 4 29 30 26 29 30
|
||||
29 30 31 29 30 33 31 30 33
|
||||
28 31 30 28 31 32 30 31 32
|
||||
31 32 57 31 32 35 35 32 57
|
||||
8 33 30 8 33 34 30 33 34
|
||||
33 34 37 33 34 35 35 34 37
|
||||
32 35 34 32 35 36 34 35 36
|
||||
35 36 39 35 36 61 39 36 61
|
||||
12 37 34 12 37 38 34 37 38
|
||||
37 38 41 37 38 39 39 38 41
|
||||
36 39 38 36 39 40 38 39 40
|
||||
39 40 43 39 40 65 43 40 65
|
||||
16 41 38 16 41 42 38 41 42
|
||||
41 42 45 41 42 43 43 42 45
|
||||
40 43 42 40 43 44 42 43 44
|
||||
43 44 47 43 44 69 47 44 69
|
||||
20 45 42 20 45 46 42 45 46
|
||||
25 46 45 25 46 47 45 46 47
|
||||
44 47 46 44 47 48 46 47 48
|
||||
27 48 47 27 48 49 47 48 49
|
||||
48 49 50 48 49 70 50 49 70
|
||||
49 50 51 49 50 53 51 50 53
|
||||
50 51 72 50 51 52 52 51 72
|
||||
51 52 55 28 53 50 28 53 54
|
||||
50 53 54 53 54 55 53 54 57
|
||||
55 54 57 52 55 54 52 55 56
|
||||
54 55 56 55 56 59 32 57 54
|
||||
32 57 58 54 57 58 57 58 61
|
||||
57 58 59 59 58 61 56 59 58
|
||||
56 59 60 58 59 60 59 60 63
|
||||
36 61 58 36 61 62 58 61 62
|
||||
61 62 65 61 62 63 63 62 65
|
||||
60 63 62 60 63 64 62 63 64
|
||||
63 64 67 40 65 62 40 65 66
|
||||
62 65 66 65 66 69 65 66 67
|
||||
67 66 69 64 67 66 64 67 68
|
||||
66 67 68 67 68 71 44 69 66
|
||||
44 69 70 66 69 70 49 70 69
|
||||
49 70 71 69 70 71 68 71 70
|
||||
68 71 72 70 71 72 51 72 71
|
||||
73 81 82 73 81 83 73 81 86
|
||||
73 78 80 73 78 79 74 73 75
|
||||
76 92 90 76 92 97 76 86 87
|
||||
76 86 83 76 86 81 76 78 80
|
||||
76 78 79 73 78 76 77 76 92
|
||||
78 76 92 77 76 78 75 73 78
|
||||
74 73 78 78 73 81 79 78 80
|
||||
81 86 87 81 86 83 81 83 85
|
||||
81 83 84 81 83 86 75 73 81
|
||||
74 73 81 83 86 87 82 81 83
|
||||
84 83 85 85 83 86 84 83 86
|
||||
82 81 86 83 81 86 86 76 92
|
||||
77 76 86 78 76 86 88 98 93
|
||||
88 89 90 89 88 97 89 90 91
|
||||
88 97 92 92 97 96 89 90 92
|
||||
91 90 92 93 94 96 93 94 95
|
||||
94 93 98 95 94 96 88 97 96
|
||||
94 96 97 90 92 97 98 99 101
|
||||
98 99 100 97 88 98 89 88 98
|
||||
93 98 99 88 98 99 100 99 101
|
||||
|
||||
457 !NPHI: dihedrals
|
||||
22 1 2 3 22 1 2 5
|
||||
2 1 22 21 2 1 22 23
|
||||
1 2 3 24 1 2 3 4
|
||||
5 2 3 24 5 2 3 4
|
||||
1 2 5 6 3 2 5 6
|
||||
2 3 24 23 2 3 24 25
|
||||
4 3 24 23 4 3 24 25
|
||||
2 3 4 7 2 3 4 29
|
||||
24 3 4 7 24 3 4 29
|
||||
3 4 7 6 3 4 7 8
|
||||
29 4 7 6 29 4 7 8
|
||||
3 4 29 26 3 4 29 30
|
||||
7 4 29 26 7 4 29 30
|
||||
2 5 6 7 2 5 6 9
|
||||
5 6 7 4 5 6 7 8
|
||||
9 6 7 4 9 6 7 8
|
||||
5 6 9 10 7 6 9 10
|
||||
4 7 8 33 4 7 8 11
|
||||
6 7 8 33 6 7 8 11
|
||||
7 8 33 30 7 8 33 34
|
||||
11 8 33 30 11 8 33 34
|
||||
7 8 11 10 7 8 11 12
|
||||
33 8 11 10 33 8 11 12
|
||||
6 9 10 13 6 9 10 11
|
||||
9 10 13 14 11 10 13 14
|
||||
9 10 11 8 9 10 11 12
|
||||
13 10 11 8 13 10 11 12
|
||||
8 11 12 15 8 11 12 37
|
||||
10 11 12 15 10 11 12 37
|
||||
11 12 15 14 11 12 15 16
|
||||
37 12 15 14 37 12 15 16
|
||||
11 12 37 34 11 12 37 38
|
||||
15 12 37 34 15 12 37 38
|
||||
10 13 14 17 10 13 14 15
|
||||
13 14 17 18 15 14 17 18
|
||||
13 14 15 12 13 14 15 16
|
||||
17 14 15 12 17 14 15 16
|
||||
12 15 16 19 12 15 16 41
|
||||
14 15 16 19 14 15 16 41
|
||||
15 16 19 18 15 16 19 20
|
||||
41 16 19 18 41 16 19 20
|
||||
15 16 41 38 15 16 41 42
|
||||
19 16 41 38 19 16 41 42
|
||||
14 17 18 21 14 17 18 19
|
||||
17 18 21 22 19 18 21 22
|
||||
17 18 19 16 17 18 19 20
|
||||
21 18 19 16 21 18 19 20
|
||||
16 19 20 23 16 19 20 45
|
||||
18 19 20 23 18 19 20 45
|
||||
19 20 23 22 19 20 23 24
|
||||
45 20 23 22 45 20 23 24
|
||||
19 20 45 42 19 20 45 46
|
||||
23 20 45 42 23 20 45 46
|
||||
18 21 22 1 18 21 22 23
|
||||
1 22 23 20 1 22 23 24
|
||||
21 22 23 20 21 22 23 24
|
||||
20 23 24 3 20 23 24 25
|
||||
22 23 24 3 22 23 24 25
|
||||
3 24 25 26 3 24 25 46
|
||||
23 24 25 26 23 24 25 46
|
||||
24 25 26 27 24 25 26 29
|
||||
46 25 26 27 46 25 26 29
|
||||
24 25 46 45 24 25 46 47
|
||||
26 25 46 45 26 25 46 47
|
||||
25 26 27 48 25 26 27 28
|
||||
29 26 27 48 29 26 27 28
|
||||
25 26 29 4 25 26 29 30
|
||||
27 26 29 4 27 26 29 30
|
||||
26 27 48 47 26 27 48 49
|
||||
28 27 48 47 28 27 48 49
|
||||
26 27 28 31 26 27 28 53
|
||||
48 27 28 31 48 27 28 53
|
||||
27 28 31 30 27 28 31 32
|
||||
53 28 31 30 53 28 31 32
|
||||
27 28 53 50 27 28 53 54
|
||||
31 28 53 50 31 28 53 54
|
||||
4 29 30 31 4 29 30 33
|
||||
26 29 30 31 26 29 30 33
|
||||
29 30 31 28 29 30 31 32
|
||||
33 30 31 28 33 30 31 32
|
||||
29 30 33 8 29 30 33 34
|
||||
31 30 33 8 31 30 33 34
|
||||
28 31 32 57 28 31 32 35
|
||||
30 31 32 57 30 31 32 35
|
||||
31 32 57 54 31 32 57 58
|
||||
35 32 57 54 35 32 57 58
|
||||
31 32 35 34 31 32 35 36
|
||||
57 32 35 34 57 32 35 36
|
||||
8 33 34 37 8 33 34 35
|
||||
30 33 34 37 30 33 34 35
|
||||
33 34 37 12 33 34 37 38
|
||||
35 34 37 12 35 34 37 38
|
||||
33 34 35 32 33 34 35 36
|
||||
37 34 35 32 37 34 35 36
|
||||
32 35 36 39 32 35 36 61
|
||||
34 35 36 39 34 35 36 61
|
||||
35 36 39 38 35 36 39 40
|
||||
61 36 39 38 61 36 39 40
|
||||
35 36 61 58 35 36 61 62
|
||||
39 36 61 58 39 36 61 62
|
||||
12 37 38 41 12 37 38 39
|
||||
34 37 38 41 34 37 38 39
|
||||
37 38 41 16 37 38 41 42
|
||||
39 38 41 16 39 38 41 42
|
||||
37 38 39 36 37 38 39 40
|
||||
41 38 39 36 41 38 39 40
|
||||
36 39 40 43 36 39 40 65
|
||||
38 39 40 43 38 39 40 65
|
||||
39 40 43 42 39 40 43 44
|
||||
65 40 43 42 65 40 43 44
|
||||
39 40 65 62 39 40 65 66
|
||||
43 40 65 62 43 40 65 66
|
||||
16 41 42 45 16 41 42 43
|
||||
38 41 42 45 38 41 42 43
|
||||
41 42 45 20 41 42 45 46
|
||||
43 42 45 20 43 42 45 46
|
||||
41 42 43 40 41 42 43 44
|
||||
45 42 43 40 45 42 43 44
|
||||
40 43 44 47 40 43 44 69
|
||||
42 43 44 47 42 43 44 69
|
||||
43 44 47 46 43 44 47 48
|
||||
69 44 47 46 69 44 47 48
|
||||
43 44 69 66 43 44 69 70
|
||||
47 44 69 66 47 44 69 70
|
||||
20 45 46 25 20 45 46 47
|
||||
42 45 46 25 42 45 46 47
|
||||
25 46 47 44 25 46 47 48
|
||||
45 46 47 44 45 46 47 48
|
||||
44 47 48 27 44 47 48 49
|
||||
46 47 48 27 46 47 48 49
|
||||
27 48 49 50 27 48 49 70
|
||||
47 48 49 50 47 48 49 70
|
||||
48 49 50 51 48 49 50 53
|
||||
70 49 50 51 70 49 50 53
|
||||
48 49 70 69 48 49 70 71
|
||||
50 49 70 69 50 49 70 71
|
||||
49 50 51 72 49 50 51 52
|
||||
53 50 51 72 53 50 51 52
|
||||
49 50 53 28 49 50 53 54
|
||||
51 50 53 28 51 50 53 54
|
||||
50 51 72 71 52 51 72 71
|
||||
50 51 52 55 72 51 52 55
|
||||
51 52 55 54 51 52 55 56
|
||||
28 53 54 55 28 53 54 57
|
||||
50 53 54 55 50 53 54 57
|
||||
53 54 55 52 53 54 55 56
|
||||
57 54 55 52 57 54 55 56
|
||||
53 54 57 32 53 54 57 58
|
||||
55 54 57 32 55 54 57 58
|
||||
52 55 56 59 54 55 56 59
|
||||
55 56 59 58 55 56 59 60
|
||||
32 57 58 61 32 57 58 59
|
||||
54 57 58 61 54 57 58 59
|
||||
57 58 61 36 57 58 61 62
|
||||
59 58 61 36 59 58 61 62
|
||||
57 58 59 56 57 58 59 60
|
||||
61 58 59 56 61 58 59 60
|
||||
56 59 60 63 58 59 60 63
|
||||
59 60 63 62 59 60 63 64
|
||||
36 61 62 65 36 61 62 63
|
||||
58 61 62 65 58 61 62 63
|
||||
61 62 65 40 61 62 65 66
|
||||
63 62 65 40 63 62 65 66
|
||||
61 62 63 60 61 62 63 64
|
||||
65 62 63 60 65 62 63 64
|
||||
60 63 64 67 62 63 64 67
|
||||
63 64 67 66 63 64 67 68
|
||||
40 65 66 69 40 65 66 67
|
||||
62 65 66 69 62 65 66 67
|
||||
65 66 69 44 65 66 69 70
|
||||
67 66 69 44 67 66 69 70
|
||||
65 66 67 64 65 66 67 68
|
||||
69 66 67 64 69 66 67 68
|
||||
64 67 68 71 66 67 68 71
|
||||
67 68 71 70 67 68 71 72
|
||||
44 69 70 49 44 69 70 71
|
||||
66 69 70 49 66 69 70 71
|
||||
49 70 71 68 49 70 71 72
|
||||
69 70 71 68 69 70 71 72
|
||||
68 71 72 51 70 71 72 51
|
||||
73 81 86 76 73 81 86 83
|
||||
73 81 86 87 73 81 83 86
|
||||
73 81 83 84 73 81 83 85
|
||||
86 76 78 73 77 76 78 73
|
||||
92 76 78 73 74 73 78 76
|
||||
74 73 78 79 74 73 78 80
|
||||
74 73 81 86 74 73 81 83
|
||||
74 73 81 82 75 73 78 76
|
||||
75 73 78 79 75 73 78 80
|
||||
75 73 81 86 75 73 81 83
|
||||
75 73 81 82 76 92 97 96
|
||||
76 92 97 88 91 90 92 76
|
||||
89 90 92 76 83 81 86 76
|
||||
82 81 86 76 81 83 86 76
|
||||
84 83 86 76 85 83 86 76
|
||||
81 73 78 76 77 76 86 81
|
||||
77 76 86 83 77 76 86 87
|
||||
77 76 78 79 77 76 78 80
|
||||
77 76 92 97 77 76 92 90
|
||||
78 76 86 81 78 76 86 83
|
||||
78 76 86 87 78 76 92 97
|
||||
78 76 92 90 78 73 81 86
|
||||
78 73 81 83 78 73 81 82
|
||||
86 76 78 79 92 76 78 79
|
||||
81 73 78 79 86 76 78 80
|
||||
92 76 78 80 81 73 78 80
|
||||
92 76 86 81 84 83 86 81
|
||||
85 83 86 81 81 83 86 87
|
||||
82 81 86 83 82 81 86 87
|
||||
82 81 83 86 82 81 83 84
|
||||
82 81 83 85 92 76 86 83
|
||||
83 81 86 87 86 81 83 84
|
||||
84 83 86 87 86 81 83 85
|
||||
85 83 86 87 86 76 92 97
|
||||
86 76 92 90 92 76 86 87
|
||||
88 98 99 100 88 98 99 101
|
||||
94 93 98 88 90 92 97 88
|
||||
94 96 97 88 88 89 90 92
|
||||
88 89 90 91 89 90 92 97
|
||||
89 88 98 99 89 88 98 93
|
||||
89 88 97 92 89 88 97 96
|
||||
90 92 97 96 98 88 89 90
|
||||
97 88 89 90 91 90 92 97
|
||||
94 96 97 92 98 88 97 92
|
||||
93 98 99 100 93 98 99 101
|
||||
97 88 98 93 93 94 96 97
|
||||
94 93 98 99 98 93 94 95
|
||||
95 94 96 97 98 88 97 96
|
||||
98 93 94 96
|
||||
|
||||
0 !NIMPHI: impropers
|
||||
|
||||
|
||||
0 !NDON: donors
|
||||
|
||||
|
||||
0 !NACC: acceptors
|
||||
|
||||
|
||||
0 !NNB
|
||||
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0
|
||||
|
||||
1 0 !NGRP
|
||||
0 0 0
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
###########################################################
|
||||
# Interaction of a carbon nanotube with a pair of mystery
|
||||
# molecules (extracted from the cnat-cnt.data/in files).
|
||||
###########################################################
|
||||
#
|
||||
# define the system being simulated:
|
||||
|
||||
# -- init section --
|
||||
include system.in.init
|
||||
|
||||
# -- atom definition section --
|
||||
|
||||
read_data system.data
|
||||
|
||||
# -- settings section --
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# -- run section --
|
||||
|
||||
|
||||
timestep 0.05
|
||||
dump 1 all custom 2000 traj_nvt.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
# The Nose-Hoover thermostat used with "fix nvt" can produce very odd-looking
|
||||
# dynamics in dilute systems with few atoms (such as this one).
|
||||
# Commenting this next line out:
|
||||
|
||||
# fix fxnvt all nvt temp 300.0 300.0 500.0 tchain 1
|
||||
|
||||
# Alternately, I receive fewer questions if I use langevin/nve instead:
|
||||
fix fxlan all langevin 300.0 300.0 1000.0 48279 scale 3 1.5
|
||||
fix fxnve all nve
|
||||
|
||||
|
||||
thermo_style custom step temp pe etotal press vol epair ebond eangle edihed
|
||||
thermo 500 # time interval for printing out "thermo" data
|
||||
#thermo_modify flush yes
|
||||
|
||||
#restart 1000000 restart_nvt
|
||||
|
||||
run 500000
|
||||
|
||||
write_restart system_after_nvt.rst
|
||||
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
#Define the CNT and CNAD molecules, by including the files which define them
|
||||
import cnt.lt
|
||||
import cnad.lt
|
||||
|
||||
# The cnt's center was originally at position 10,10,10,
|
||||
# so I moved it back to the origin
|
||||
cnt = new CNT.move(-10,-10,-10)
|
||||
|
||||
# Rotation around the center of mass does not work (yet),
|
||||
# so instead you have to move the molecule to the origin,
|
||||
# rotate it, and move it back to where you want it.
|
||||
# That's why the next line contains move().rot().move()
|
||||
# I'll add center-of-mass rotation as a later feature.
|
||||
|
||||
cnad1 = new CNAD.move(0.611276,-0.0237931,-0.0487586).rot(90,0,1,0).move(-7,0,0)
|
||||
cnad2 = new CNAD.move(0.611276,-0.0237931,-0.0487586).rot(-90,0,1,0).move(7,0,0)
|
||||
|
||||
|
||||
# You can leave the periodic boundary conditions unspecified
|
||||
# and change them later, OR you can declare them
|
||||
# using the "write_once("Data Boundary") {}" command:
|
||||
|
||||
write_once("Data Boundary")
|
||||
{
|
||||
0 50.0 xlo xhi
|
||||
0 50.0 ylo yhi
|
||||
0 50.0 zlo zhi
|
||||
}
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
This example is a simple simulation of 288 hexadecane molecules in a box at
|
||||
room temperature and atmospheric pressure. Please read the WARNING.TXT file.
|
||||
|
||||
-------- REQUIREMENTS: ---------
|
||||
This example requires building LAMMPS with the "USER-MISC" package.
|
||||
(because it uses dihedral_style fourier)
|
||||
To do this, type "make yes-user-misc" before compiling LAMMPS.
|
||||
http://lammps.sandia.gov/doc/Section_start.html#start_3
|
||||
|
||||
More detailed instructions on how to build LAMMPS input files and
|
||||
run a short simulation are provided in other README files:
|
||||
|
||||
step 1) to setup the LAMMPS input files, run this file:
|
||||
README_setup.sh
|
||||
|
||||
step 2) to run LAMMPS, follow the instructions in this file:
|
||||
README_run.sh
|
||||
|
||||
------------ NOTE: There are two versions of this example. ----------------
|
||||
|
||||
Both examples use the same force-field parameters.
|
||||
|
||||
1) In this directory, all of the force-field parameters are listed explicitly
|
||||
in the "alkanes.lt" file (located in the "moltemplate_files" directory).
|
||||
This allows the user to manually control all of the force-field details.
|
||||
|
||||
2) However, there is an alternate version of this example in the
|
||||
"../AMBER_force_field_examples" directory.
|
||||
In that version, the force-fields are loaded from a much larger file named
|
||||
"gaff.lt" which contains all of the parameters in the AMBER GAFF force-field
|
||||
database. The "gaff.lt" is similar to the "alkanes.lt" file except that
|
||||
it is larger (because it contains information for nearly all small organic
|
||||
molecules). It is located in a different directory (in the "common" directory).
|
||||
|
||||
Relying on "gaff.lt" frees the user from the drudgery of manually specifying
|
||||
all of these force-field details for every molecule. (However, the user must
|
||||
be careful to choose @atom-type names which match AMBER GAFF conventions,
|
||||
such as "c3" and "h1", in this example.)
|
||||
@ -1,39 +0,0 @@
|
||||
# --- Running LAMMPS ---
|
||||
# -------- REQUIREMENTS: ---------
|
||||
# 1) This example requires building LAMMPS with the "USER-MISC" package.
|
||||
# (because it makes use of "gaff.lt" which uses dihedral_style fourier)
|
||||
# To do this, type "make yes-user-misc" before compiling LAMMPS.
|
||||
# http://lammps.sandia.gov/doc/Section_start.html#start_3
|
||||
# -------- PREREQUISITES: --------
|
||||
# The 2 files "run.in.npt", and "run.in.nvt" are LAMMPS
|
||||
# input scripts which link to the input scripts and data files
|
||||
# you hopefully have created earlier with moltemplate.sh:
|
||||
# system.in.init, system.in.settings, system.data
|
||||
# If not, carry out the instructions in "README_setup.sh".
|
||||
#
|
||||
# -- Instructions: --
|
||||
# If "lmp_linux" is the name of the command you use to invoke lammps,
|
||||
# then you would run lammps on these files this way:
|
||||
|
||||
|
||||
lmp_linux -i run.in.npt # minimization and simulation at constant pressure
|
||||
lmp_linux -i run.in.nvt # minimization and simulation at constant volume
|
||||
|
||||
#(Note: The constant volume simulation lacks pressure equilibration. These are
|
||||
# completely separate simulations. The results of the constant pressure
|
||||
# simulation might be ignored when beginning the simulation at constant
|
||||
# volume. (This is because restart files in LAMMPS don't always work,
|
||||
# and I was spending a lot of time trying to convince people it was a
|
||||
# LAMMPS bug, instead of a moltemplate bug, so I disabled restart files.)
|
||||
# Read the "run.in.nvt" file to find out how to use the "read_restart"
|
||||
# command to load the results of the pressure-equilibration simulation,
|
||||
# before beginning a constant-volume run.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# If you have compiled the MPI version of lammps, you can run lammps in parallel
|
||||
#mpirun -np 4 lmp_linux -i run.in.npt
|
||||
#mpirun -np 4 lmp_linux -i run.in.nvt
|
||||
# (assuming you have 4 processors available)
|
||||
@ -1,25 +0,0 @@
|
||||
# -------- REQUIREMENTS: ---------
|
||||
# You must define your MOLTEMPLATE_PATH environment variable
|
||||
# and set it to the "common" subdirectory of your moltemplate distribution.
|
||||
# (See the "Installation" section in the moltemplate manual.)
|
||||
|
||||
|
||||
# Create LAMMPS input files this way:
|
||||
cd moltemplate_files
|
||||
|
||||
# run moltemplate
|
||||
|
||||
moltemplate.sh system.lt
|
||||
|
||||
# This will generate various files with names ending in *.in* and *.data.
|
||||
# These files are the input files directly read by LAMMPS. Move them to
|
||||
# the parent directory (or wherever you plan to run the simulation).
|
||||
mv -f system.data system.in* ../
|
||||
|
||||
# Optional:
|
||||
# The "./output_ttree/" directory is full of temporary files generated by
|
||||
# moltemplate. They can be useful for debugging, but are usually thrown away.
|
||||
rm -rf output_ttree/
|
||||
|
||||
|
||||
cd ../
|
||||
@ -1,87 +0,0 @@
|
||||
|
||||
------- To view a lammps trajectory in VMD --------
|
||||
|
||||
|
||||
1) Build a PSF file for use in viewing with VMD.
|
||||
|
||||
This step works with VMD 1.9 and topotools 1.2.
|
||||
(Older versions, like VMD 1.8.6, don't support this.)
|
||||
|
||||
|
||||
a) Start VMD
|
||||
b) Menu Extensions->Tk Console
|
||||
c) Enter:
|
||||
|
||||
(I assume that the the DATA file is called "system.data")
|
||||
|
||||
topo readlammpsdata system.data full
|
||||
animate write psf system.psf
|
||||
|
||||
2)
|
||||
|
||||
Later, to Load a trajectory in VMD:
|
||||
|
||||
Start VMD
|
||||
Select menu: File->New Molecule
|
||||
-Browse to select the PSF file you created above, and load it.
|
||||
(Don't close the window yet.)
|
||||
-Browse to select the trajectory file.
|
||||
If necessary, for "file type" select: "LAMMPS Trajectory"
|
||||
Load it.
|
||||
|
||||
---- A note on trajectory format: -----
|
||||
If the trajectory is a DUMP file, then make sure the it contains the
|
||||
information you need for pbctools (see below. I've been using this
|
||||
command in my LAMMPS scripts to create the trajectories:
|
||||
|
||||
dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
It's a good idea to use an atom_style which supports molecule-ID numbers
|
||||
so that you can assign a molecule-ID number to each atom. (I think this
|
||||
is needed to wrap atom coordinates without breaking molecules in half.)
|
||||
|
||||
Of course, you don't have to save your trajectories in DUMP format,
|
||||
(other formats like DCD work fine) I just mention dump files
|
||||
because these are the files I'm familiar with.
|
||||
|
||||
3) ----- Wrap the coordinates to the unit cell
|
||||
(without cutting the molecules in half)
|
||||
|
||||
a) Start VMD
|
||||
b) Load the trajectory in VMD (see above)
|
||||
c) Menu Extensions->Tk Console
|
||||
d) Try entering these commands:
|
||||
|
||||
pbc wrap -compound res -all
|
||||
pbc box
|
||||
|
||||
----- Optional ----
|
||||
Sometimes the solvent or membrane obscures the view of the solute.
|
||||
It can help to shift the location of the periodic boundary box
|
||||
To shift the box in the y direction (for example) do this:
|
||||
|
||||
pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0}
|
||||
pbc box -shiftcenterrel {0.0 0.15 0.0}
|
||||
|
||||
Distances are measured in units of box-length fractions, not Angstroms.
|
||||
|
||||
Alternately if you have a solute whose atoms are all of type 1,
|
||||
then you can also try this to center the box around it:
|
||||
|
||||
pbc wrap -sel type=1 -all -centersel type=2 -center com
|
||||
|
||||
4)
|
||||
You should check if your periodic boundary conditions are too small.
|
||||
To do that:
|
||||
select Graphics->Representations menu option
|
||||
click on the "Periodic" tab, and
|
||||
click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes.
|
||||
|
||||
5) Optional: If you like, change the atom types in the PSF file so
|
||||
that VMD recognizes the atom types, use something like:
|
||||
|
||||
sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf
|
||||
sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf
|
||||
sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf
|
||||
|
||||
(If you do this, it might effect step 2 above.)
|
||||
@ -1,16 +0,0 @@
|
||||
# -------- WARNING: --------
|
||||
|
||||
This software is experimental, and the force-fields and equilbration protocols
|
||||
have not been tested carefully by me. There is no gaurantee that the simulation
|
||||
will reproduce the behavior of real hexadecane molecules,
|
||||
(or even of hexadecane molecules simulated using AMBER, which should
|
||||
be using the same force-field).
|
||||
|
||||
# -------- REQUEST FOR HELP: --------
|
||||
|
||||
However, if you notice a problem with this example, please report it.
|
||||
I confess I do not have a lot of experience running all-atom simulations.
|
||||
Peer-review is the only way to improve this software (or any software).
|
||||
Other suggestions are also welcome!
|
||||
|
||||
(Contact jewett.aij@gmail.com, 2013-10-16)
|
||||
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
@ -1,84 +0,0 @@
|
||||
|
||||
Alkanes {
|
||||
|
||||
# LAMMPS offers many different force-field styles and atom-styles.
|
||||
# We must select which kind of atoms and force fields we want to use.
|
||||
# (This will effect the syntax of the "_coeff" commands below.)
|
||||
|
||||
write_once("In Init") {
|
||||
# Default styles and settings for AMBER based force-fields:
|
||||
units real
|
||||
atom_style full
|
||||
bond_style hybrid harmonic
|
||||
angle_style hybrid harmonic
|
||||
dihedral_style hybrid fourier
|
||||
#improper_style hybrid cvff
|
||||
|
||||
pair_style hybrid lj/cut 9.0
|
||||
pair_modify shift yes
|
||||
|
||||
# If you have charges on the atoms, then comment out the line above
|
||||
# and use this instead:
|
||||
#pair_style hybrid lj/charmm/coul/long 9.0 10.0 10.0
|
||||
#kspace_style pppm 0.0001
|
||||
|
||||
pair_modify mix arithmetic
|
||||
special_bonds amber
|
||||
}
|
||||
|
||||
# The "Alkanes" object contains the definition of atoms, bonds, bond-angles,
|
||||
# and all of the force-field parameters for simple n-Alkanes.
|
||||
# (These parameters were taken from the January 2013 version of the
|
||||
# AMBER GAFF force-field. See "common/gaff.lt" for details.)
|
||||
|
||||
# atom-type mass
|
||||
|
||||
write_once("Data Masses") {
|
||||
@atom:c3 12.01
|
||||
@atom:h1 1.008
|
||||
}
|
||||
|
||||
# Pairwise (non-bonded) force-field parameters:
|
||||
|
||||
write_once("In Settings") {
|
||||
pair_coeff @atom:c3 @atom:c3 lj/cut 0.1094 1.9080
|
||||
pair_coeff @atom:h1 @atom:h1 lj/cut 0.0157 1.3870
|
||||
}
|
||||
|
||||
# Rules for determining 3 and 4-body bonded interactions by type
|
||||
|
||||
# angle-type atomType1 atomType2 atomType3 bondType1 bondType2
|
||||
|
||||
write_once("Data Angles By Type") {
|
||||
@angle:CCC @atom:c3 @atom:c3 @atom:c3 @bond:* @bond:*
|
||||
@angle:CCH @atom:c3 @atom:c3 @atom:h1 @bond:* @bond:*
|
||||
@angle:HCH @atom:h1 @atom:c3 @atom:h1 @bond:* @bond:*
|
||||
}
|
||||
|
||||
# dihedral-type AtomType1 AtomType2 AtomType3 AtomType4 bondType1 btyp2 btyp3
|
||||
|
||||
write_once("Data Dihedrals By Type") {
|
||||
@dihedral:XCCX @atom:* @atom:c3 @atom:c3 @atom:* @bond:* @bond:* @bond:*
|
||||
@dihedral:CCCC @atom:c3 @atom:c3 @atom:c3 @atom:c3 @bond:* @bond:* @bond:*
|
||||
}
|
||||
|
||||
# Parameters for these new angular interactions must be defined. (I recommend
|
||||
# putting all force-field parameters (coeffs) in the "In Settings" section.)
|
||||
|
||||
write_once("In Settings") {
|
||||
|
||||
# bond-type k r0
|
||||
bond_coeff @bond:CC harmonic 303.1 1.5350
|
||||
bond_coeff @bond:CH harmonic 335.9 1.0930
|
||||
|
||||
# angle-type k theta0
|
||||
angle_coeff @angle:CCC harmonic 63.210 110.630
|
||||
angle_coeff @angle:CCH harmonic 46.360 110.070
|
||||
angle_coeff @angle:HCH harmonic 39.180 109.550
|
||||
|
||||
# dihedral-type
|
||||
dihedral_coeff @dihedral:XCCX fourier 1 0.155555555556 3 0.0
|
||||
dihedral_coeff @dihedral:CCCC fourier 3 0.18 3 0.0 0.25 2 180.0 0.2 1 180.0
|
||||
}
|
||||
|
||||
} # Alkanes
|
||||
@ -1,44 +0,0 @@
|
||||
|
||||
import "alkanes.lt" # <-- Defines the atoms and force-field used for Alkanes
|
||||
|
||||
|
||||
CH2 inherits Alkanes {
|
||||
|
||||
# atom-id mol-id atom-type charge x y z
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:C $mol:... @atom:c3 0.00 0.00 0.000 0.000
|
||||
$atom:H1 $mol:... @atom:h1 0.00 0.00 0.6310438442242609 0.8924307629540046
|
||||
$atom:H2 $mol:... @atom:h1 0.00 0.00 0.6310438442242609 -0.8924307629540046
|
||||
}
|
||||
|
||||
# Note: The "..." in "$mol:..." tells moltemplate that this molecule may
|
||||
# be a part of a larger molecule, and (if so) to use the larger
|
||||
# parent object's molecule id number as it's own.
|
||||
# The CH2 group is part of the Hexadecane molecule.
|
||||
|
||||
# Now specify which pairs of atoms are bonded:
|
||||
# bond-id bond-type atom-id1 atom-id2
|
||||
|
||||
write('Data Bonds') {
|
||||
$bond:b1 @bond:CH $atom:C $atom:H1
|
||||
$bond:b2 @bond:CH $atom:C $atom:H2
|
||||
}
|
||||
|
||||
} # CH2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
######### (scratchwork calculations for the atomic coordinates) #########
|
||||
# Lcc = 1.5350 # length of the C-C bond (Sp3)
|
||||
# Lch = 1.0930 # length of the C-H bond
|
||||
# theta=2*atan(sqrt(2)) # ~= 109.5 degrees = tetrahedronal angle (C-C-C angle)
|
||||
# DeltaXc = Lcc*sin(theta/2) # = 1.2533222517240594
|
||||
# DeltaYc = Lcc*cos(theta/2) # = 0.8862326632060754
|
||||
# # 0.5*DeltaYc = 0.4431163316030377
|
||||
# DeltaZh = Lch*sin(theta/2) # = 0.8924307629540046
|
||||
# DeltaYh = Lch*cos(theta/2) # = 0.6310438442242609
|
||||
|
||||
|
||||
@ -1,44 +0,0 @@
|
||||
|
||||
import "alkanes.lt" # <-- Defines the atoms and force-field used for Alkanes
|
||||
|
||||
|
||||
CH3 inherits Alkanes {
|
||||
|
||||
# atom-id mol-id atom-type charge x y z
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:C $mol:... @atom:c3 0.00 0.00 0.000 0.000
|
||||
$atom:H1 $mol:... @atom:h1 0.00 0.00 0.6310438442242609 0.8924307629540046
|
||||
$atom:H2 $mol:... @atom:h1 0.00 0.00 0.6310438442242609 -0.8924307629540046
|
||||
$atom:H3 $mol:... @atom:h1 0.00 -0.8924307629540046 -0.6310438442242609 0.00
|
||||
}
|
||||
|
||||
# Note: The "..." in "$mol:..." tells moltemplate that this molecule may
|
||||
# be a part of a larger molecule, and (if so) to use the larger
|
||||
# parent object's molecule id number as it's own.
|
||||
# The CH3 group is part of the Hexadecane molecule.
|
||||
|
||||
# Now specify which pairs of atoms are bonded:
|
||||
# bond-id bond-type atom-id1 atom-id2
|
||||
|
||||
write('Data Bonds') {
|
||||
$bond:b1 @bond:CH $atom:C $atom:H1
|
||||
$bond:b2 @bond:CH $atom:C $atom:H2
|
||||
$bond:b3 @bond:CH $atom:C $atom:H3
|
||||
}
|
||||
|
||||
} # CH3
|
||||
|
||||
|
||||
|
||||
|
||||
######### (scratchwork calculations for the atomic coordinates) #########
|
||||
# Lcc = 1.5350 # length of the C-C bond (Sp3)
|
||||
# Lch = 1.0930 # length of the C-H bond
|
||||
# theta=2*atan(sqrt(2)) # ~= 109.5 degrees = tetrahedronal angle (C-C-C angle)
|
||||
# DeltaXc = Lcc*sin(theta/2) # = 1.2533222517240594
|
||||
# DeltaYc = Lcc*cos(theta/2) # = 0.8862326632060754
|
||||
# # 0.5*DeltaYc = 0.4431163316030377
|
||||
# DeltaZh = Lch*sin(theta/2) # = 0.8924307629540046
|
||||
# DeltaYh = Lch*cos(theta/2) # = 0.6310438442242609
|
||||
|
||||
@ -1,84 +0,0 @@
|
||||
# Define the "CH2" and "CH3" objects:
|
||||
|
||||
import "ch2group.lt"
|
||||
import "ch3group.lt"
|
||||
|
||||
|
||||
|
||||
Hexadecane inherits Alkanes {
|
||||
|
||||
# Create an array of 16 "CH2" objects
|
||||
|
||||
monomers = new CH2.move(0,0.4431163,0) [16].rot(180,1,0,0).move(1.2533223,0,0)
|
||||
|
||||
# "monomers" is a 1-dimensional array containing 16 copies of the CH2 molecule
|
||||
# Each copy is rotated 180 degrees and shifted along the x axix.
|
||||
# (For an explanation, read sections 7.1-7.3 of the moltemplate manual.)
|
||||
# Notes:
|
||||
# 1.2533223 = DeltaXc = how far each CH2 group is shifted along the axis
|
||||
# 0.4431163 = DeltaYc/2 = lateral displacement of carbons along axis
|
||||
|
||||
# ---- Now, modify the ends: ---
|
||||
# Delete the CH2 groups at the beginning and end, and replace them with CH3.
|
||||
# (Note: Alternately, instead of deleting the CH2 groups at each end, you
|
||||
# could modify them by adding an extra hydrogen atom to those carbons.)
|
||||
|
||||
delete monomers[0]
|
||||
delete monomers[15]
|
||||
monomer_begin = new CH3
|
||||
monomer_end = new CH3
|
||||
|
||||
# Move the CH3 groups to the correct location at either end of the chain:
|
||||
|
||||
monomer_begin.move(0,0.4431163,0)
|
||||
monomer_end.move(0,0.4431163,0).rot(180,0,0,1).move(18.7998345,0,0)
|
||||
|
||||
# Note: 18.7998345 = (16-1) * DeltaXc
|
||||
|
||||
|
||||
# Now add a list of bonds connecting the carbon atoms together:
|
||||
|
||||
write('Data Bonds') {
|
||||
$bond:b1 @bond:CC $atom:monomer_begin/C $atom:monomers[1]/C
|
||||
$bond:b2 @bond:CC $atom:monomers[1]/C $atom:monomers[2]/C
|
||||
$bond:b3 @bond:CC $atom:monomers[2]/C $atom:monomers[3]/C
|
||||
$bond:b4 @bond:CC $atom:monomers[3]/C $atom:monomers[4]/C
|
||||
$bond:b5 @bond:CC $atom:monomers[4]/C $atom:monomers[5]/C
|
||||
$bond:b6 @bond:CC $atom:monomers[5]/C $atom:monomers[6]/C
|
||||
$bond:b7 @bond:CC $atom:monomers[6]/C $atom:monomers[7]/C
|
||||
$bond:b8 @bond:CC $atom:monomers[7]/C $atom:monomers[8]/C
|
||||
$bond:b9 @bond:CC $atom:monomers[8]/C $atom:monomers[9]/C
|
||||
$bond:b10 @bond:CC $atom:monomers[9]/C $atom:monomers[10]/C
|
||||
$bond:b11 @bond:CC $atom:monomers[10]/C $atom:monomers[11]/C
|
||||
$bond:b12 @bond:CC $atom:monomers[11]/C $atom:monomers[12]/C
|
||||
$bond:b13 @bond:CC $atom:monomers[12]/C $atom:monomers[13]/C
|
||||
$bond:b14 @bond:CC $atom:monomers[13]/C $atom:monomers[14]/C
|
||||
$bond:b15 @bond:CC $atom:monomers[14]/C $atom:monomer_end/C
|
||||
}
|
||||
|
||||
create_var { $mol } # Define a molecule ID number for this polymer
|
||||
|
||||
# This causes monomer[0], monomer[1], ... to share the same molecule-ID.
|
||||
# (because in the ch2group.lt file, the "..." in "$mol:..." looks for
|
||||
# a counter of type "$mol" in a parent molecule or earlier ancestor.)
|
||||
|
||||
} # Hexadecane
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
######### (scratchwork calculations for the atomic coordinates) #########
|
||||
# Lcc = 1.5350 # length of the C-C bond (Sp3)
|
||||
# Lch = 1.0930 # length of the C-H bond
|
||||
# theta=2*atan(sqrt(2)) # ~= 109.5 degrees = tetrahedronal angle (C-C-C angle)
|
||||
# DeltaXc = Lcc*sin(theta/2) # = 1.2533222517240594
|
||||
# DeltaYc = Lcc*cos(theta/2) # = 0.8862326632060754
|
||||
# # 0.5*DeltaYc = 0.4431163316030377
|
||||
# DeltaZh = Lch*sin(theta/2) # = 0.8924307629540046
|
||||
# DeltaYh = Lch*cos(theta/2) # = 0.6310438442242609
|
||||
@ -1,18 +0,0 @@
|
||||
import "hexadecane.lt" # <- defines the "Hexadecane" molecule type.
|
||||
|
||||
# Periodic boundary conditions:
|
||||
write_once("Data Boundary") {
|
||||
0.0 62.4 xlo xhi
|
||||
0.0 62.4 ylo yhi
|
||||
0.0 62.4 zlo zhi
|
||||
}
|
||||
|
||||
molecules = new Hexadecane [12].move(0, 0, 5.2)
|
||||
[12].move(0, 5.2, 0)
|
||||
[2].move(31.2, 0, 0)
|
||||
|
||||
|
||||
# NOTE: The spacing between molecules is large. There should be extra room to
|
||||
# move during the initial stages of equilibration. However, you will have to
|
||||
# run the simulation at NPT conditions later to compress the system to a
|
||||
# more realistic density.
|
||||
@ -1,85 +0,0 @@
|
||||
# PREREQUISITES:
|
||||
#
|
||||
# You must use moltemplate.sh to create 3 files:
|
||||
# system.data system.in.init system.in.settings
|
||||
# (Follow the instructions in README_setup.sh, or run it using ./README_sh.)
|
||||
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
read_data system.data
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
# To avvoid explosions, I have a 4-step equilibraion process (expand, minimize,
|
||||
# reorient, compress). The system (as defined in the "system.data" file)
|
||||
# is already expanded. That means there are 3 steps left:
|
||||
|
||||
dump dumpeq1 all custom 50 traj_eq1_min.lammpstrj id mol type x y z ix iy iz
|
||||
thermo 50
|
||||
|
||||
# -- Equilibration: part 1: initial minimization --
|
||||
|
||||
# Note: In general, it's always a good idea to minimize the system at first.
|
||||
|
||||
minimize 1.0e-5 1.0e-7 100000 400000
|
||||
undump dumpeq1
|
||||
|
||||
write_data system_after_eq1_min.data
|
||||
|
||||
# -- Equilibration part 2: reorienting the molecules (NVT) --
|
||||
|
||||
timestep 1.0
|
||||
dump dumpeq2 all custom 200 traj_eq2_reorient.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
# Run the system at high temperature (at constant volume) to reorient the
|
||||
# the molecules (which would otherwise be pointing in the same direction).
|
||||
|
||||
# To speed it up, I randomize the atomic positions for a few thousand steps
|
||||
# using fix langevin (and fix nve). Then I switch to fix nvt (Nose-Hoover).
|
||||
# (If I start with fix nvt (Nose-Hoover), it seems to get "stuck" for a while.)
|
||||
|
||||
|
||||
fix fxlan all langevin 900.0 900.0 120 48279
|
||||
fix fxnve all nve
|
||||
|
||||
run 2000
|
||||
|
||||
unfix fxlan
|
||||
unfix fxnve
|
||||
# Now continue the simulation at high temperature using fix nvt (Nose-Hoover).
|
||||
fix fxnvt all nvt temp 900.0 900.0 100.0
|
||||
|
||||
run 5000
|
||||
undump dumpeq2
|
||||
|
||||
|
||||
write_data system_after_eq2_reorient.data
|
||||
|
||||
unfix fxnvt
|
||||
|
||||
# -- equilibration part 3: Equilibrating the density (NPT) --
|
||||
|
||||
# Originally, the simulation box (in "system.data" and "system.lt") was
|
||||
# unrealistically large. The spacing between the molecules was large also.
|
||||
# I did this to enable the molecules to move freely and reorient themselves.
|
||||
# After doing that, we should run the simulation under NPT conditions to
|
||||
# allow the simulation box to contract to it's natural size. We do that here:
|
||||
# We begin the simulation at 100 barr (a relatively low pressure), and
|
||||
# slowly decrease it to 1 barr, maintianing the temperature at 300K.
|
||||
|
||||
dump dumpeq3 all custom 200 traj_eq3_npt.lammpstrj id mol type x y z ix iy iz
|
||||
fix fxnpt all npt temp 300.0 300.0 100.0 iso 100.0 1.0 1000.0 drag 2.0
|
||||
|
||||
timestep 1.0
|
||||
run 30000
|
||||
|
||||
write_data system_after_eq3_npt.data
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
# PREREQUISITES:
|
||||
#
|
||||
# 1) You must use moltemplate.sh to create 3 files:
|
||||
# system.data system.in.init system.in.settings
|
||||
# (Follow the instructions in README_setup.sh, or run it using ./README_sh.)
|
||||
# 2) You must equilibrate the system beforehand using "run.in.npt".
|
||||
# This will create the file "system_after_npt.data" which this file reads.
|
||||
# (Note: I have not verified that this equilibration protocol works well.)
|
||||
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
|
||||
# Read the coordinates generated by an earlier NPT simulation
|
||||
|
||||
read_data system_after_eq3_npt.data
|
||||
|
||||
# (The "write_restart" and "read_restart" commands were buggy in 2012,
|
||||
# but they should work also. I prefer "write_data" and "read_data".)
|
||||
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
# -- simulation protocol --
|
||||
|
||||
|
||||
timestep 1.0
|
||||
dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz
|
||||
fix fxnvt all nvt temp 350.0 350.0 500.0 tchain 1
|
||||
thermo 100
|
||||
#thermo_modify flush yes
|
||||
|
||||
run 50000
|
||||
|
||||
write_data system_after_nvt.data
|
||||
@ -1,33 +0,0 @@
|
||||
# --- Running LAMMPS ---
|
||||
# -- Prerequisites: --
|
||||
# The 2 files "run.in.npt", and "run.in.nvt" are LAMMPS
|
||||
# input scripts which link to the input scripts and data files
|
||||
# you hopefully have created earlier with moltemplate.sh:
|
||||
# system.in.init, system.in.settings, system.data
|
||||
# If not, carry out the instructions in "README_setup.sh".
|
||||
#
|
||||
# -- Instructions: --
|
||||
# If "lmp_linux" is the name of the command you use to invoke lammps,
|
||||
# then you would run lammps on these files this way:
|
||||
|
||||
|
||||
lmp_linux -i run.in.npt # minimization and simulation at constant pressure
|
||||
|
||||
# or
|
||||
|
||||
lmp_linux -i run.in.nvt # minimization and simulation at constant volume
|
||||
|
||||
#(Note: The constant volume simulation lacks pressure equilibration. These are
|
||||
# completely separate simulations. The results of the constant pressure
|
||||
# simulation are ignored when beginning the simulation at constant volume.
|
||||
# This can be fixed. Read "run.in.nvt" for equilibration instructions.)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# If you have compiled the MPI version of lammps, you can run lammps in parallel
|
||||
#mpirun -np 4 lmp_linux -i run.in.npt
|
||||
# or
|
||||
#mpirun -np 4 lmp_linux -i run.in.nvt
|
||||
# (assuming you have 4 processors available)
|
||||
@ -1,23 +0,0 @@
|
||||
# Use these commands to generate the LAMMPS input script and data file
|
||||
# (and other auxilliary files):
|
||||
|
||||
|
||||
# Create LAMMPS input files this way:
|
||||
cd moltemplate_files
|
||||
|
||||
# run moltemplate
|
||||
|
||||
moltemplate.sh -atomstyle full system.lt
|
||||
|
||||
# This will generate various files with names ending in *.in* and *.data.
|
||||
# These files are the input files directly read by LAMMPS. Move them to
|
||||
# the parent directory (or wherever you plan to run the simulation).
|
||||
|
||||
mv -f system.in* system.data ../
|
||||
|
||||
# Optional:
|
||||
# The "./output_ttree/" directory is full of temporary files generated by
|
||||
# moltemplate. They can be useful for debugging, but are usually thrown away.
|
||||
rm -rf output_ttree/
|
||||
|
||||
cd ../
|
||||
@ -1,87 +0,0 @@
|
||||
|
||||
------- To view a lammps trajectory in VMD --------
|
||||
|
||||
|
||||
1) Build a PSF file for use in viewing with VMD.
|
||||
|
||||
This step works with VMD 1.9 and topotools 1.2.
|
||||
(Older versions, like VMD 1.8.6, don't support this.)
|
||||
|
||||
|
||||
a) Start VMD
|
||||
b) Menu Extensions->Tk Console
|
||||
c) Enter:
|
||||
|
||||
(I assume that the the DATA file is called "system.data")
|
||||
|
||||
topo readlammpsdata system.data full
|
||||
animate write psf system.psf
|
||||
|
||||
2)
|
||||
|
||||
Later, to Load a trajectory in VMD:
|
||||
|
||||
Start VMD
|
||||
Select menu: File->New Molecule
|
||||
-Browse to select the PSF file you created above, and load it.
|
||||
(Don't close the window yet.)
|
||||
-Browse to select the trajectory file.
|
||||
If necessary, for "file type" select: "LAMMPS Trajectory"
|
||||
Load it.
|
||||
|
||||
---- A note on trajectory format: -----
|
||||
If the trajectory is a DUMP file, then make sure the it contains the
|
||||
information you need for pbctools (see below. I've been using this
|
||||
command in my LAMMPS scripts to create the trajectories:
|
||||
|
||||
dump 1 all custom 500 DUMP_FILE.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
It's a good idea to use an atom_style which supports molecule-ID numbers
|
||||
so that you can assign a molecule-ID number to each atom. (I think this
|
||||
is needed to wrap atom coordinates without breaking molecules in half.)
|
||||
|
||||
Of course, you don't have to save your trajectories in DUMP format,
|
||||
(other formats like DCD work fine) I just mention dump files
|
||||
because these are the files I'm familiar with.
|
||||
|
||||
3) ----- Wrap the coordinates to the unit cell
|
||||
(without cutting the molecules in half)
|
||||
|
||||
a) Start VMD
|
||||
b) Load the trajectory in VMD (see above)
|
||||
c) Menu Extensions->Tk Console
|
||||
d) Try entering these commands:
|
||||
|
||||
pbc wrap -compound res -all
|
||||
pbc box
|
||||
|
||||
----- Optional ----
|
||||
Sometimes the solvent or membrane obscures the view of the solute.
|
||||
It can help to shift the location of the periodic boundary box
|
||||
To shift the box in the y direction (for example) do this:
|
||||
|
||||
pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0}
|
||||
pbc box -shiftcenterrel {0.0 0.15 0.0}
|
||||
|
||||
Distances are measured in units of box-length fractions, not Angstroms.
|
||||
|
||||
Alternately if you have a solute whose atoms are all of type 1,
|
||||
then you can also try this to center the box around it:
|
||||
|
||||
pbc wrap -sel type=1 -all -centersel type=2 -center com
|
||||
|
||||
4)
|
||||
You should check if your periodic boundary conditions are too small.
|
||||
To do that:
|
||||
select Graphics->Representations menu option
|
||||
click on the "Periodic" tab, and
|
||||
click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes.
|
||||
|
||||
5) Optional: If you like, change the atom types in the PSF file so
|
||||
that VMD recognizes the atom types, use something like:
|
||||
|
||||
sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf
|
||||
sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf
|
||||
sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf
|
||||
|
||||
(If you do this, it might effect step 2 above.)
|
||||
|
Before Width: | Height: | Size: 25 KiB |
@ -1,52 +0,0 @@
|
||||
# file "spce.lt"
|
||||
#
|
||||
# H1 H2
|
||||
# \ /
|
||||
# O
|
||||
|
||||
SPCE {
|
||||
|
||||
write_once("In Init") {
|
||||
# -- Default styles (for solo "SPCE" water) --
|
||||
units real
|
||||
atom_style full
|
||||
# (Hybrid force fields were not necessary but are used for portability.)
|
||||
pair_style hybrid lj/charmm/coul/long 9.0 10.0 10.0
|
||||
bond_style hybrid harmonic
|
||||
angle_style hybrid harmonic
|
||||
kspace_style pppm 0.0001
|
||||
pair_modify mix arithmetic
|
||||
}
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:O $mol:. @atom:O -0.8476 0.0000000 0.00000 0.000000
|
||||
$atom:H1 $mol:. @atom:H 0.4238 0.8164904 0.00000 0.5773590
|
||||
$atom:H2 $mol:. @atom:H 0.4238 -0.8164904 0.00000 0.5773590
|
||||
}
|
||||
|
||||
write_once("Data Masses") {
|
||||
@atom:O 15.9994
|
||||
@atom:H 1.008
|
||||
}
|
||||
|
||||
write("Data Bonds") {
|
||||
$bond:OH1 @bond:OH $atom:O $atom:H1
|
||||
$bond:OH2 @bond:OH $atom:O $atom:H2
|
||||
}
|
||||
|
||||
write("Data Angles") {
|
||||
$angle:HOH @angle:HOH $atom:H1 $atom:O $atom:H2
|
||||
}
|
||||
|
||||
write_once("In Settings") {
|
||||
bond_coeff @bond:OH harmonic 1000.0 1.0
|
||||
angle_coeff @angle:HOH harmonic 1000.0 109.47
|
||||
pair_coeff @atom:O @atom:O lj/charmm/coul/long 0.1553 3.166
|
||||
pair_coeff @atom:H @atom:H lj/charmm/coul/long 0.0 2.058
|
||||
group spce type @atom:O @atom:H
|
||||
fix fSHAKE spce shake 0.0001 10 100 b @bond:OH a @angle:HOH
|
||||
# (Remember to "unfix" fSHAKE during minimization.)
|
||||
}
|
||||
|
||||
} # end of definition of "SPCE" water molecule type
|
||||
|
||||
@ -1,57 +0,0 @@
|
||||
# This ice (1h) unit cell is rectangular and contains 8 water molecules.
|
||||
# (Coordinates and cell dimensions converted were from a PDB file.)
|
||||
# The dimensions of the unit cell (in Angstroms) are: 4.521 7.832 7.362
|
||||
|
||||
|
||||
import "spce.lt" # <-- define the "SPCE" molecule
|
||||
|
||||
SpceIceRect8 {
|
||||
|
||||
# Create a 3-dimensional array of 8 water molecules
|
||||
|
||||
wat = new SPCE[2][2][2]
|
||||
|
||||
# Array indices will be correlated with position [xindex][yindex][zindex]
|
||||
|
||||
# You can overwrite coordinates of atoms after they were created this way:
|
||||
# (Order is not important)
|
||||
# atom-ID molecule-ID atomType charge newX newY newZ
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:wat[1][0][0]/O $mol:wat[1][0][0] @atom:SPCE/O -0.8476 3.391 1.305 1.381
|
||||
$atom:wat[1][0][0]/H1 $mol:wat[1][0][0] @atom:SPCE/H 0.4238 3.391 0.370 1.710
|
||||
$atom:wat[1][0][0]/H2 $mol:wat[1][0][0] @atom:SPCE/H 0.4238 2.582 1.772 1.710
|
||||
$atom:wat[1][0][1]/O $mol:wat[1][0][1] @atom:SPCE/O -0.8476 3.391 1.305 5.981
|
||||
$atom:wat[1][0][1]/H1 $mol:wat[1][0][1] @atom:SPCE/H 0.4238 3.391 1.305 6.970
|
||||
$atom:wat[1][0][1]/H2 $mol:wat[1][0][1] @atom:SPCE/H 0.4238 4.200 1.772 5.652
|
||||
$atom:wat[0][0][0]/O $mol:wat[0][0][0] @atom:SPCE/O -0.8476 1.131 2.611 2.300
|
||||
$atom:wat[0][0][0]/H1 $mol:wat[0][0][0] @atom:SPCE/H 0.4238 1.131 2.611 3.289
|
||||
$atom:wat[0][0][0]/H2 $mol:wat[0][0][0] @atom:SPCE/H 0.4238 0.320 2.143 1.971
|
||||
$atom:wat[0][0][1]/O $mol:wat[0][0][1] @atom:SPCE/O -0.8476 1.131 2.611 5.061
|
||||
$atom:wat[0][0][1]/H1 $mol:wat[0][0][1] @atom:SPCE/H 0.4238 1.940 2.143 5.391
|
||||
$atom:wat[0][0][1]/H2 $mol:wat[0][0][1] @atom:SPCE/H 0.4238 1.131 3.546 5.391
|
||||
$atom:wat[0][1][0]/O $mol:wat[0][1][0] @atom:SPCE/O -0.8476 1.131 5.221 1.381
|
||||
$atom:wat[0][1][0]/H1 $mol:wat[0][1][0] @atom:SPCE/H 0.4238 1.131 4.286 1.710
|
||||
$atom:wat[0][1][0]/H2 $mol:wat[0][1][0] @atom:SPCE/H 0.4238 0.320 5.688 1.710
|
||||
$atom:wat[0][1][1]/O $mol:wat[0][1][1] @atom:SPCE/O -0.8476 1.131 5.221 5.981
|
||||
$atom:wat[0][1][1]/H1 $mol:wat[0][1][1] @atom:SPCE/H 0.4238 1.131 5.221 6.970
|
||||
$atom:wat[0][1][1]/H2 $mol:wat[0][1][1] @atom:SPCE/H 0.4238 1.940 5.688 5.652
|
||||
$atom:wat[1][1][0]/O $mol:wat[1][1][0] @atom:SPCE/O -0.8476 3.391 6.526 2.300
|
||||
$atom:wat[1][1][0]/H1 $mol:wat[1][1][0] @atom:SPCE/H 0.4238 3.391 6.526 3.289
|
||||
$atom:wat[1][1][0]/H2 $mol:wat[1][1][0] @atom:SPCE/H 0.4238 2.582 6.058 1.971
|
||||
$atom:wat[1][1][1]/O $mol:wat[1][1][1] @atom:SPCE/O -0.8476 3.391 6.526 5.061
|
||||
$atom:wat[1][1][1]/H1 $mol:wat[1][1][1] @atom:SPCE/H 0.4238 4.200 6.058 5.391
|
||||
$atom:wat[1][1][1]/H2 $mol:wat[1][1][1] @atom:SPCE/H 0.4238 3.391 7.462 5.391
|
||||
}
|
||||
} # IceRect8
|
||||
|
||||
# Credit goes to Martin Chaplin.
|
||||
# These coordinates were orignally downloaded from Martin Chaplin's
|
||||
# website: http://www.btinternet.com/~martin.chaplin/ice1h.html
|
||||
# ... and then they were stretched independently in the xy and z
|
||||
# directions in order to match the lattice parameters measured by
|
||||
# Rottger et al.,
|
||||
# "Lattice constants and thermal expansion of H2O and D2O ice Ih"
|
||||
# between 10 and 265K", Acta Crystallogr. B, 50 (1994) 644-648
|
||||
# I am using the lattice constants measured at temperature 265K
|
||||
# (and pressure=100Torr).
|
||||
@ -1,11 +0,0 @@
|
||||
import "spce_ice_rect8.lt"
|
||||
|
||||
cells = new SpceIceRect8 [3].move(4.521, 0.0, 0.0)
|
||||
[2].move( 0.0, 7.832, 0.0)
|
||||
[2].move( 0.0, 0.0, 7.362)
|
||||
|
||||
write_once("Data Boundary") {
|
||||
0 13.563 xlo xhi
|
||||
0 15.664 ylo yhi
|
||||
0 14.724 zlo zhi
|
||||
}
|
||||
@ -1,38 +0,0 @@
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
read_data system.data
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
|
||||
# -- minimization protocol --
|
||||
|
||||
# Note: The minimization step is not necessary in this example. However
|
||||
# in general, it's always a good idea to minimize the system beforehand.
|
||||
# fSHAKE was defined in system.in.settings. It is incompatible with "minimize".
|
||||
unfix fSHAKE
|
||||
minimize 1.0e-5 1.0e-7 100000 400000
|
||||
# Now read "system.in.settings" in order to redefine fSHAKE again:
|
||||
include system.in.settings
|
||||
|
||||
# -- simulation protocol --
|
||||
|
||||
|
||||
timestep 2.0
|
||||
dump 1 all custom 200 traj_npt.lammpstrj id mol type x y z ix iy iz
|
||||
fix fxnpt all npt temp 400.0 400.0 100.0 iso 1.0 1.0 1000.0 drag 1.0
|
||||
|
||||
thermo 100
|
||||
#thermo_modify flush yes
|
||||
|
||||
run 20000
|
||||
|
||||
write_restart system_after_npt.rst
|
||||
@ -1,61 +0,0 @@
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
|
||||
# Normally, I would minimize the system and equilibrate the system at constant
|
||||
# pressure and temperature beforehand. If you run lammps with "run.in.npt",
|
||||
# it will generate a restart file "system_after_npt.rst" with reasonable
|
||||
# coordinates at that temperature and pressure. Then we could load it now:
|
||||
#
|
||||
#read_restart system_after_npt.rst
|
||||
#
|
||||
# Unfortunately the LAMMPS "read_restart" command has been undependable over
|
||||
# the past year (2012), and I feel it is safer to remove it from the examples.
|
||||
# Instead, for this example, I just read the raw coordinates generated by
|
||||
# moltemplate (and the default volume). (I get fewer questions this way.)
|
||||
# However you should never run any liquid simulations at constant volume without
|
||||
# pressure equilibration first. Hopefully in the future "read_restart" will
|
||||
# work. Until then, try "read_dump", "dump2data.py", or "restart2data".
|
||||
|
||||
read_data system.data
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
|
||||
# -- minimization protocol --
|
||||
|
||||
# Note: The minimization step is not necessary in this example. However
|
||||
# in general, it's always a good idea to minimize the system beforehand.
|
||||
# fSHAKE was defined in system.in.settings. It is incompatible with "minimize".
|
||||
unfix fSHAKE
|
||||
minimize 1.0e-5 1.0e-7 100000 400000
|
||||
# Now read "system.in.settings" in order to redefine fSHAKE again:
|
||||
include system.in.settings
|
||||
|
||||
# -- simulation protocol --
|
||||
|
||||
|
||||
|
||||
timestep 2.0
|
||||
dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz
|
||||
fix fxnvt all nvt temp 300.0 300.0 500.0 tchain 1
|
||||
|
||||
|
||||
thermo 500
|
||||
#thermo_modify flush yes
|
||||
|
||||
|
||||
#restart 100000 restart_nvt
|
||||
|
||||
run 50000
|
||||
|
||||
write_restart system_after_nvt.rst
|
||||
|
||||
|
||||
@ -1,51 +0,0 @@
|
||||
This is a small version of a carbon-nanotube, water capillary system.
|
||||
It was inspired by this paper:
|
||||
|
||||
Laurent Joly, J. Chem. Phys. 135(21):214705 (2011)
|
||||
|
||||
-------- Requirements: -------
|
||||
To run this system at constant pressure, it might help to compile LAMMPS
|
||||
with the optional RIGID package, and use "fix rigid" on the carbon.
|
||||
(The use of fix rigid is controversial.) Running at NVT does not require this.
|
||||
------------------------------
|
||||
|
||||
Note: To investigate the behavior from that paper, it might be a good
|
||||
idea to increase the size of the water reservoir, the spacing between
|
||||
the walls, and the size of the system in the X and Y directions.
|
||||
|
||||
Note: Explicit carbon-carbon bonds:
|
||||
In the graphene and nanotube structures, I did not try to connect the
|
||||
carbon atoms together with bonds. Instead we will hold these structures
|
||||
rigid by not integrating their equations of motion.
|
||||
(If you want to simulate movement of the carbon atoms at high
|
||||
temperatures or tension, LAMMPS has 3-body/many-body LAMMPS force-fields
|
||||
available for simulating the behaviour of carbon in graphite. I know
|
||||
that you don't need to specify bonds to use these force fields. I do
|
||||
not know know if these force fields work for nanotubes or graphene.)
|
||||
|
||||
Note: Other modeling tools:
|
||||
If you need explicit bonds between carbon atoms, then you must add them
|
||||
yourself or use a different tool. Currently (2012-10-20), moltemplate does
|
||||
not generate bonds automatically. The "Nanotube Builder" and "topotools"
|
||||
plugins for for VMD can generate a nanotube with bonds in LAMMPS data
|
||||
format. You can then convert this data file to .LT format using the
|
||||
ltemplify.py utility and then import it into another .LT file and play
|
||||
with it later. (In the "cnad-cnt" example, the carbon nanotube was built
|
||||
using "Nanotube Builder" and topotools, and processed with ltemplify.py)
|
||||
|
||||
|
||||
# WARNING: THIS IS NOT A REALISTIC MODEL OF A GRAPHENE-NANOTUBE JUNCTION.
|
||||
# A real junction would be curved and deformed near the boundary,
|
||||
# (not 90 degrees) and it would not be built entirely from hexagons.
|
||||
# (This is not a problem in this example because the carbon atoms
|
||||
# are immobilized.) If you want to simulate the behavior of
|
||||
# real graphene or nanotube junctions, you must be more careful.
|
||||
# To solve this problem:
|
||||
# Moltemplate allows you to move, customize or delete individual
|
||||
# atoms near the boundary. You can move atoms by overwriting their
|
||||
# coordinates using additional write("Data Atoms") statements (after
|
||||
# the walls and tube are created). You can also change their charge.
|
||||
# Alternately, you could start with the structure provided here, and
|
||||
# relax/minimize the coordinates of the carbon atoms using LAMMPS
|
||||
# before using it in other simulations.
|
||||
# Or you could do both (customization & minimization).
|
||||
@ -1,24 +0,0 @@
|
||||
# --- Running LAMMPS ---
|
||||
# -- Prerequisites: --
|
||||
# The 2 files "run.in.npt", and "run.in.nvt" are LAMMPS
|
||||
# input scripts which link to the input scripts and data files
|
||||
# you hopefully have created earlier with moltemplate.sh:
|
||||
# system.in.init, system.in.settings, system.data
|
||||
# If not, carry out the instructions in "README_setup.sh".
|
||||
#
|
||||
# -- Instructions: --
|
||||
# If "lmp_linux" is the name of the command you use to invoke lammps,
|
||||
# then you would run lammps on these files this way:
|
||||
|
||||
|
||||
lmp_linux -i run.in.nvt # minimization and simulation at constant volume
|
||||
lmp_linux -i run.in.npt # minimization and simulation at constant pressure
|
||||
# (WARNING: The "run.in.npt" example has not been
|
||||
# rigorously tested and may fail.)
|
||||
|
||||
|
||||
|
||||
# If you have compiled the MPI version of lammps, you can run lammps in parallel
|
||||
#mpirun -np 4 lmp_linux -i run.in.npt
|
||||
#mpirun -np 4 lmp_linux -i run.in.nvt
|
||||
# (assuming you have 4 processors available)
|
||||
@ -1,23 +0,0 @@
|
||||
# Use these commands to generate the LAMMPS input script and data file
|
||||
# (and other auxilliary files):
|
||||
|
||||
|
||||
# Create LAMMPS input files this way:
|
||||
cd moltemplate_files
|
||||
|
||||
# run moltemplate
|
||||
|
||||
moltemplate.sh system.lt
|
||||
|
||||
# This will generate various files with names ending in *.in* and *.data.
|
||||
# These files are the input files directly read by LAMMPS. Move them to
|
||||
# the parent directory (or wherever you plan to run the simulation).
|
||||
|
||||
mv -f system.in* system.data ../
|
||||
|
||||
# Optional:
|
||||
# The "./output_ttree/" directory is full of temporary files generated by
|
||||
# moltemplate. They can be useful for debugging, but are usually thrown away.
|
||||
rm -rf output_ttree/
|
||||
|
||||
cd ../
|
||||
@ -1,77 +0,0 @@
|
||||
|
||||
------- To view a lammps trajectory in VMD --------
|
||||
|
||||
|
||||
1) Build a PSF file for use in viewing with VMD.
|
||||
|
||||
This step works with VMD 1.9 and topotools 1.2.
|
||||
(Older versions, like VMD 1.8.6, don't support this.)
|
||||
|
||||
|
||||
a) Start VMD
|
||||
b) Menu Extensions->Tk Console
|
||||
c) Enter:
|
||||
|
||||
(I assume that the the DATA file is called "system.data")
|
||||
|
||||
topo readlammpsdata system.data full
|
||||
animate write psf system.psf
|
||||
|
||||
2)
|
||||
|
||||
Later, to Load a trajectory in VMD:
|
||||
|
||||
Start VMD
|
||||
Select menu: File->New Molecule
|
||||
-Browse to select the PSF file you created above, and load it.
|
||||
(Don't close the window yet.)
|
||||
-Browse to select the trajectory file.
|
||||
If necessary, for "file type" select: "LAMMPS Trajectory"
|
||||
Load it.
|
||||
|
||||
---- A note on trajectory format: -----
|
||||
If the trajectory is a DUMP file, then make sure the it contains the
|
||||
information you need for pbctools (see below. I've been using this
|
||||
command in my LAMMPS scripts to create the trajectories:
|
||||
|
||||
dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
It's a good idea to use an atom_style which supports molecule-ID numbers
|
||||
so that you can assign a molecule-ID number to each atom. (I think this
|
||||
is needed to wrap atom coordinates without breaking molecules in half.)
|
||||
|
||||
Of course, you don't have to save your trajectories in DUMP format,
|
||||
(other formats like DCD work fine) I just mention dump files
|
||||
because these are the files I'm familiar with.
|
||||
|
||||
3) ----- Wrap the coordinates to the unit cell
|
||||
(without cutting the molecules in half)
|
||||
|
||||
a) Start VMD
|
||||
b) Load the trajectory in VMD (see above)
|
||||
c) Menu Extensions->Tk Console
|
||||
d) Try entering these commands:
|
||||
|
||||
pbc wrap -compound res -all
|
||||
pbc box
|
||||
|
||||
----- Optional ----
|
||||
To shift the box by a fraction in the x direction (for example)
|
||||
do this:
|
||||
|
||||
pbc wrap -compound res -all -shiftcenterrel {-0.50 -0.52 0.0 }
|
||||
pbc box -shiftcenterrel {-0.50 -0.52 0.0 }
|
||||
|
||||
# Alternately if you have a solute whose atoms are all of type 1,
|
||||
# then you can also try this to center the box around it:
|
||||
|
||||
pbc wrap -sel type=1 -all -centersel type=2 -center com
|
||||
|
||||
4) Optional: If you like, change the atom types in the PSF file so
|
||||
that VMD recognizes the atom types, use something like:
|
||||
|
||||
sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf
|
||||
sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf
|
||||
sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf
|
||||
|
||||
(If you do this, it might effect step 2 above.)
|
||||
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 26 KiB |
@ -1,27 +0,0 @@
|
||||
# This is a small version of a carbon-nanotube, water capillary system.
|
||||
# It was inspired by this paper:
|
||||
#
|
||||
# Laurent Joly, J. Chem. Phys. 135(21):214705 (2011)
|
||||
#
|
||||
# Note: To investigate the behavior from that paper, you would have to increase
|
||||
# the spacing between the two graphene sheets to prevent the water from
|
||||
# making contact with the lower graphene wall.
|
||||
#
|
||||
# Requirements: 1) Set your $MOLTEMPLATE_PATH variable
|
||||
# 2) The "RIGID" LAMMPS package may be needed later
|
||||
# To run this system at constant pressure, it might help to compile LAMMPS with
|
||||
# the optional RIGID package, and use "fix rigid" on the carbon. (Optional.)
|
||||
#
|
||||
# Also, if you have not yet done this set your MOLTEMPLATE_PATH environment
|
||||
# variable to access it. (See installation instructions.)
|
||||
# Most likely some of the files in this example (like graphene.lt, tip3p2004.lt)
|
||||
# are not in this directory, but are in the "common" directory.
|
||||
# Set MOLTEMPLATE_PATH to point to the "common" directory.
|
||||
#
|
||||
# -----------------------------------------------------------
|
||||
#
|
||||
# To run moltemplate, use:
|
||||
|
||||
moltemplate.sh system.lt
|
||||
|
||||
# This will generate:system.data, system.in, system.in.init, system.in.settings
|
||||
@ -1,119 +0,0 @@
|
||||
# This file contains a unit cell for building graphene and nanotubes
|
||||
#
|
||||
#
|
||||
# The 2AtomCellAlignX "molecule" defined below is a minimal unit cell for any
|
||||
# hexagonal tesselation in 2-dimensions. (See "graphene_unit_cell.jpg")
|
||||
# Surfaces constructed with this unit cell can be flat or curved into tubes.
|
||||
# The distance between nearest-neighbor carbon atoms (ie the length of a
|
||||
# carbon-carbon bond) is equal to "d" which I set to 1.42 Angstroms.
|
||||
#
|
||||
# d = length of each hexagon's side = 1.42 Angstroms
|
||||
# L = length of each hexagon = 2*d = 2.84 Angstroms
|
||||
# W = width of each hexagon = 2*d*sqrt(3)/2 = 2.4595121467478056 Angstroms
|
||||
# w = width of hexagon rows = 1.5*d = 2.13 Angstroms
|
||||
#
|
||||
# Consequently, the Lattice-cell vectors for singe-layer graphene are:
|
||||
# (2.4595121467478, 0, 0) (aligned with X axis)
|
||||
# (1.2297560733739, 2.13, 0) (2.13 = 1.5*d)
|
||||
# So, to build a sheet of graphite, you could use:
|
||||
# sheet = new Graphene/2AtomCellAlignX [10].move(2.4595121467478,0,0)
|
||||
# [10].move(1.2297560733739,2.13,0)
|
||||
|
||||
|
||||
|
||||
|
||||
Graphene {
|
||||
|
||||
2AtomCellAlignX
|
||||
{
|
||||
# atomID molID atomType charge x y z
|
||||
write("Data Atoms") {
|
||||
$atom:C1 $mol:... @atom:../C 0.0 -0.61487803668695 -0.355 0.0
|
||||
$atom:C2 $mol:... @atom:../C 0.0 0.61487803668695 0.355 0.0
|
||||
}
|
||||
}
|
||||
|
||||
# Now define properties of the Carbon graphene atom
|
||||
|
||||
write_once("In Init") {
|
||||
# If all of the graphene carbon atoms have zero charge, try this:
|
||||
pair_style hybrid lj/cut 10.0
|
||||
|
||||
# If some of the boundary atoms have non-zero (partial) charge, try these:
|
||||
#pair_style hybrid lj/charmm/coul/charmm 9.0 10.0
|
||||
#pair_style hybrid lj/charmm/coul/long 9.0 10.0
|
||||
}
|
||||
|
||||
write_once("Data Masses") {
|
||||
@atom:C 12.0
|
||||
}
|
||||
|
||||
write_once("In Settings") {
|
||||
# If all graphene carbon atoms have zero charge, try this:
|
||||
pair_coeff @atom:C @atom:C lj/cut 0.068443 3.407
|
||||
|
||||
# i j epsilon sigma
|
||||
# If some of the boundary atoms have non-zero (partial) charge, try these:
|
||||
#pair_coeff @atom:C @atom:C lj/charmm/coul/charmm 0.068443 3.407
|
||||
#pair_coeff @atom:C @atom:C lj/charmm/coul/long 0.068443 3.407
|
||||
|
||||
# These Lennard-Jones parameters come from
|
||||
# R. Saito, R. Matsuo, T. Kimura, G. Dresselhaus, M.S. Dresselhaus,
|
||||
# Chem Phys Lett, 348:187 (2001)
|
||||
# LAMMPS provides more realistic manybody force fields for graphene.
|
||||
# But in this example, we immobilize the atoms so it does not matter.)
|
||||
|
||||
# Define a group consisting of only carbon atoms in graphene molecules
|
||||
group Cgraphene type @atom:C
|
||||
}
|
||||
|
||||
# Notice that the two atoms in the unit-cell above lie in the XY plane.
|
||||
# (Their z-coordinate is zero). It's also useful to have a version of
|
||||
# this object which lies in the XZ plan. So we define this below:
|
||||
|
||||
2AtomCellAlignXZ = 2AtomCellAlignX.rot(90,1,0,0)
|
||||
|
||||
} # Graphene
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ------------ Graphite -----------
|
||||
#
|
||||
# Note: For graphite: sheets stacked in the Z direction are separated by a
|
||||
# distance of 3.35 Angstroms, and shifted in an alternating +/-Y direction
|
||||
# by a distance of d (1.42 Angstroms). To add additional graphene layers
|
||||
# you could use:
|
||||
# sheet2 = new Graphene/2AtomCellAlignX [10].move(2.4595121467478,0,0)
|
||||
# [10].move(1.2297560733739,2.13,0)
|
||||
# sheet2[*][*].move(0, 1.42, 3.35)
|
||||
# sheet3 = new Graphene/2AtomCellAlignX [10].move(2.4595121467478,0,0)
|
||||
# [10].move(1.2297560733739,2.13,0)
|
||||
# sheet3[*][*].move(0, -1.42, 6.70)
|
||||
# etc...
|
||||
# However, to build a thick sheet of graphite, it would
|
||||
# be more efficient to use a 4-atom unit cell:
|
||||
#
|
||||
#Graphene {
|
||||
# GraphiteCell {
|
||||
# # atomID molID atomType charge x y z
|
||||
# write("Data Atoms") {
|
||||
# $atom:C1 $mol:... @atom:../C 0.0 -0.61487803668695 -0.355 0.0
|
||||
# $atom:C2 $mol:... @atom:../C 0.0 0.61487803668695 0.355 0.0
|
||||
# $atom:C3 $mol:... @atom:../C 0.0 -0.61487803668695 1.065 3.35
|
||||
# $atom:C4 $mol:... @atom:../C 0.0 0.61487803668695 1.775 3.35
|
||||
# }
|
||||
# } # GraphiteCell
|
||||
#}
|
||||
#
|
||||
# Then you could create a thick sheet of graphite this way:
|
||||
#
|
||||
# graphite = new Graphene/GraphiteCell [10].move(2.4595121467478,0,0)
|
||||
# [10].move(1.2297560733739,2.13,0)
|
||||
# [5].move(0,0,6.70)
|
||||
@ -1,54 +0,0 @@
|
||||
|
||||
import "graphene.lt"
|
||||
|
||||
# -------------- graphene sheet -----------------
|
||||
|
||||
# Notes:
|
||||
# Hexagonal lattice with:
|
||||
# d = length of each hexagonal side = 1.42 Angstroms
|
||||
# L = length of each hexagon = 2*d = 2.84 Angstroms
|
||||
# W = width of each hexagon = 2*d*sqrt(3)/2 = 2.4595121467478 Angstroms
|
||||
# w = width of hexagon rows = 1.5*d = 2.13 Angstroms
|
||||
|
||||
Wall {
|
||||
unitcells = new Graphene/2AtomCellAlignX [14].move(1.2297560733739, 2.13, 0)
|
||||
[13].move(2.4595121467478, 0, 0)
|
||||
unitcells[*][*].move(-24.595121467478, -14.91, 0.000)
|
||||
|
||||
# Now cut a hole in the graphene sheet roughly where the nanotube is located
|
||||
delete unitcells[5][7-8] # delete 2 unit cells (2 atoms each, 4 atoms total)
|
||||
delete unitcells[6][6-8] # delete 3 unit cells (2 atoms each, 6 atoms total)
|
||||
delete unitcells[7][5-8] # delete 4 unit cells (2 atoms each, 8 atoms total)
|
||||
delete unitcells[8][5-7] # delete 3 unit cells (2 atoms each, 6 atoms total)
|
||||
delete unitcells[9][5-6] # delete 2 unit cells (2 atoms each, 4 atoms total)
|
||||
# Optional fine tuning: delete a few additional atoms around the edges
|
||||
delete unitcells[5][6]/C2 # delete a single atom
|
||||
delete unitcells[6][5]/C2 # delete a single atom
|
||||
delete unitcells[6][9]/C1 # delete a single atom
|
||||
delete unitcells[8][4]/C2 # delete a single atom
|
||||
delete unitcells[8][8]/C1 # delete a single atom
|
||||
delete unitcells[9][7]/C1 # delete a single atom
|
||||
}
|
||||
|
||||
# Make two copies of the wall, and place them on either end of the nanotube
|
||||
|
||||
wall1 = new Wall.move(0, 0, 32.0)
|
||||
wall2 = new Wall.move(0, 0, 58.26)
|
||||
|
||||
|
||||
# WARNING: A reader has emailed me to point out that:
|
||||
# THIS IS NOT A REALISTIC MODEL OF A GRAPHENE-NANOTUBE JUNCTION.
|
||||
# A real junction would be curved and deformed near the boundary,
|
||||
# (not 90 degrees) and it would not be built entirely from hexagons.
|
||||
# (This is not a problem in this example because the carbon atoms
|
||||
# are immobilized.) If you want to simulate the behavior of
|
||||
# real graphene or nanotube junctions, you must be more careful.
|
||||
# To solve this problem:
|
||||
# Moltemplate allows you to move, customize or delete individual
|
||||
# atoms near the boundary. You can move atoms by overwriting their
|
||||
# coordinates using additional write("Data Atoms") statements (after
|
||||
# the walls and tube are created). You can also change their charge.
|
||||
# Alternately, you could start with the structure provided here, and
|
||||
# relax/minimize the coordinates of the carbon atoms using LAMMPS
|
||||
# before using it in other simulations.
|
||||
# Or you could do both (customization & minimization).
|
||||
@ -1,96 +0,0 @@
|
||||
import "graphene.lt"
|
||||
|
||||
# ------------------ nanotube ---------------
|
||||
|
||||
# Now use this to build a simple ("zigzag") nanotube where the long-axis of each
|
||||
# hexagon is aligned with the tube axis (along the Z direction). If the
|
||||
# cicumference of a "zigzag" nanotube contains N hexagons, then the radius of
|
||||
# the tube, R=(W/4)/tan((2*pi)/(4*N)), where W=2*d*sqrt(3)/2, and d = the carbon
|
||||
# bond length. If N=14 and d=1.42 Ansgroms then R=5.457193512764 Angstroms
|
||||
# In the Joly 2011 paper, the tube radii varied between 5.14 and 18.7 Angstroms.
|
||||
|
||||
|
||||
|
||||
|
||||
nanotube = new Graphene/2AtomCellAlignXZ.move(0, 5.457193512764, 0) # 5.45 = R
|
||||
[14].rot(25.7142857,0,0,1) #25.7=360/14
|
||||
[12].rot(12.8571429,0,0,1).move(0, 0, 2.13) #12.9=180/14
|
||||
#2.13= d*1.5
|
||||
|
||||
|
||||
# Note: The length is 12 hexegons, the circumference is
|
||||
# 14 hexegons (~=25.56 and 34.43 Angstroms, respectively).
|
||||
|
||||
|
||||
# Move all of the unit-cells in the nanotube between the two graphene sheets.
|
||||
|
||||
nanotube[*][*].move(0, 0, 33.42)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ---------- BUILDING CHIRAL NANOTUBES USING EXTERNAL SOFTWARE -------------
|
||||
#
|
||||
# The approach shown here works well for "zig-zag" nanotubes.
|
||||
# Nanotubes with other chiralities are more difficult to make this way
|
||||
# (because the tube axis is no longer perpendicular to graphene basis vectors).
|
||||
# For those nanotubes, I recommend using an external program to generate
|
||||
# a LAMMPS data file for the nanotube. If you want to combine the tube
|
||||
# with other molecules created by moltemplate, you can then import it into
|
||||
# moltemplate as a molecule object using the "ltemplify.py" utility. Details:
|
||||
#
|
||||
# --- VMD plugins (by Axel Kohlmeyer and Robert R. Johnson) ---
|
||||
#
|
||||
# The nanotube-builder for VMD can generate nanotubes (with smooth tips)
|
||||
# for any chirality. These tubes also have explicit bonds between carbons:
|
||||
# http://www.ks.uiuc.edu/Research/vmd/plugins/nanotube/
|
||||
#
|
||||
# The resulting nanotube can be converted to a data file using topotools:
|
||||
# https://sites.google.com/site/akohlmey/software/topotools
|
||||
# To do that, select the "Extensions"->"Tk Console" menu and enter
|
||||
#
|
||||
# topo writelammpsdata nanotube.data full
|
||||
#
|
||||
# --- ltemplify.py ---
|
||||
#
|
||||
# That data file can be converted to moltemplate format (an .LT file)
|
||||
# using the "ltemplify.py" utility.
|
||||
#
|
||||
# The first step is to create a short input script containing the atom_style
|
||||
# command (ltemplify.py will read this script. Presumably atom_style is "full").
|
||||
#
|
||||
# echo "atom_style full" > nanotube.in
|
||||
#
|
||||
# Then run ltemplify to convert nanotube.data into a moltemplate file:
|
||||
# ltemplify.py -name Nanotube nanotube.in nanotube.data > nanotube.lt
|
||||
#
|
||||
# You will need to edit the "nanotuble.lt" file to replace all of the
|
||||
# "@atom:type1" atoms types file to match the carbon atom types in the other lt
|
||||
# files (ie "@atom:../C"). If you don't plan on defining bonded interactions
|
||||
# between carbon atoms, then be sure to remove the write("Data Bonds") section
|
||||
# of the "nanotube.lt" file (if it is present).
|
||||
#
|
||||
# Finally make sure the "system.lt" contains these lines:
|
||||
#
|
||||
# import "nanotube.lt"
|
||||
# nanotube = new Nanotube.move(?,?,?)
|
||||
#
|
||||
# (Replace ?,?,? with the location where you want the nanotube to go.
|
||||
# You can also rotate it using .rot(angle,axisx,axisy,axiz).)
|
||||
#
|
||||
# ... and then run moltemplate the normal way
|
||||
#
|
||||
# Let me know if you run into trouble with this approach,
|
||||
# and I will make note of that in this file.
|
||||
#
|
||||
# --- links ---
|
||||
# Note: there are numerous programs for specifying the coordinates
|
||||
# of the atoms in a nanotube, some of which are below.
|
||||
# http://www.nanotube.msu.edu/tubeASP/
|
||||
# http://turin.nss.udel.edu/research/tubegenonline.html
|
||||
# http://www.ugr.es/~gmdm/java/contub/contub.html
|
||||
# (You can load coordinates into moltemplate using the "-xyz" or "-pdb"
|
||||
# arguments. However currently (2013-12-01), the file must contain coordinates
|
||||
# for all of the atoms in your sytem, not just the nanotube.)
|
||||
# -------------------------------------------------------------------------
|
||||
@ -1,52 +0,0 @@
|
||||
# file "spce.lt"
|
||||
#
|
||||
# H1 H2
|
||||
# \ /
|
||||
# O
|
||||
|
||||
SPCE {
|
||||
|
||||
write_once("In Init") {
|
||||
# -- Default styles (for solo "SPCE" water) --
|
||||
units real
|
||||
atom_style full
|
||||
# (Hybrid force fields were not necessary but are used for portability.)
|
||||
pair_style hybrid lj/charmm/coul/long 9.0 10.0 10.0
|
||||
bond_style hybrid harmonic
|
||||
angle_style hybrid harmonic
|
||||
kspace_style pppm 0.0001
|
||||
pair_modify mix arithmetic
|
||||
}
|
||||
|
||||
write("Data Atoms") {
|
||||
$atom:O $mol:. @atom:O -0.8476 0.0000000 0.00000 0.000000
|
||||
$atom:H1 $mol:. @atom:H 0.4238 0.8164904 0.00000 0.5773590
|
||||
$atom:H2 $mol:. @atom:H 0.4238 -0.8164904 0.00000 0.5773590
|
||||
}
|
||||
|
||||
write_once("Data Masses") {
|
||||
@atom:O 15.9994
|
||||
@atom:H 1.008
|
||||
}
|
||||
|
||||
write("Data Bonds") {
|
||||
$bond:OH1 @bond:OH $atom:O $atom:H1
|
||||
$bond:OH2 @bond:OH $atom:O $atom:H2
|
||||
}
|
||||
|
||||
write("Data Angles") {
|
||||
$angle:HOH @angle:HOH $atom:H1 $atom:O $atom:H2
|
||||
}
|
||||
|
||||
write_once("In Settings") {
|
||||
bond_coeff @bond:OH harmonic 1000.0 1.0
|
||||
angle_coeff @angle:HOH harmonic 1000.0 109.47
|
||||
pair_coeff @atom:O @atom:O lj/charmm/coul/long 0.1553 3.166
|
||||
pair_coeff @atom:H @atom:H lj/charmm/coul/long 0.0 2.058
|
||||
group spce type @atom:O @atom:H
|
||||
fix fShakeSPCE spce shake 0.0001 10 100 b @bond:OH a @angle:HOH
|
||||
# (Remember to "unfix" fShakeSPCE during minimization.)
|
||||
}
|
||||
|
||||
} # end of definition of "SPCE" water molecule type
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
# This is a small version of a carbon-nanotube, water capillary system. It was
|
||||
# inspired by this paper: Laurent Joly, J. Chem. Phys. 135(21):214705 (2011)
|
||||
|
||||
import "graphene_walls.lt"
|
||||
|
||||
import "nanotube.lt"
|
||||
|
||||
import "water_box.lt"
|
||||
|
||||
|
||||
# ------------ boundary conditions ------------
|
||||
|
||||
write_once("Data Boundary") {
|
||||
-15.98682895386 15.98682895386 xlo xhi
|
||||
-14.91 14.91 ylo yhi
|
||||
0.0 80.00 zlo zhi
|
||||
}
|
||||
|
||||
# ---------------------------------------------
|
||||
|
||||
|
||||
|
||||
write_once("In Init") {
|
||||
# -- override any earlier pair_style settings: --
|
||||
# If some of the junction carbon atoms have non-zero partial charge, try this
|
||||
#pair_style hybrid lj/charmm/coul/long 10.0 10.5 10.5
|
||||
|
||||
# If all graphened atoms have zero charge, you can use this:
|
||||
pair_style hybrid lj/charmm/coul/long 10.0 10.5 10.5 &
|
||||
lj/cut 10.0
|
||||
|
||||
# I was too lazy to figure out what these partial charges would be, so I set
|
||||
# them to zero, but a serious investigation into carbon-nanotube-graphene
|
||||
# junctions would adjust the charge and geometry of the boundary atoms.
|
||||
}
|
||||
|
||||
|
||||
write_once("In Settings") {
|
||||
# --- We must eventually specify the interactions between the atoms ---
|
||||
# --- in different molecule types (graphene-water interactions). ---
|
||||
# (See Laurent Joly, J. Chem. Phys. 135(21):214705 (2011) for details
|
||||
|
||||
pair_coeff @atom:Graphene/C @atom:SPCE/O lj/charmm/coul/long 0.114 3.28
|
||||
pair_coeff @atom:Graphene/C @atom:SPCE/H lj/charmm/coul/long 0.0 3.28
|
||||
}
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
import "spce.lt"
|
||||
|
||||
# --------------- water ------------------
|
||||
|
||||
# Create a rhombohedral box of water. (A rectangular box works also.)
|
||||
|
||||
wat = new SPCE [9].move(3.5526287, 0, 0 )
|
||||
[9].move(1.77631435, 3.3133, 0 )
|
||||
[6].move( 0, 0, 3.45)
|
||||
|
||||
# Optional: Center the water box at the origin. (Not really necessary.)
|
||||
|
||||
wat[*][*][*].move(-23.9802437, -14.90985, 11.47)
|
||||
|
||||
# --------------- Note: -----------------
|
||||
# The spacing between water molecules does not matter much as long as it is
|
||||
# reasonable. (I adjusted the spacing try to insure that the waters are spread
|
||||
# uniformly throughout the box. We do not want bubles to form if there are
|
||||
# gaps near the XY periodic boundaries.) We will have to equilibrate it later.
|
||||
|
||||
@ -1,102 +0,0 @@
|
||||
# THIS EXAMPLE HAS NOT BEEN RIGOROUSLY TESTED.
|
||||
# (This simulation may fail.
|
||||
# However the "run.in.nvt" example in this directory should work.)
|
||||
#
|
||||
# Requirements:
|
||||
# To run this system at constant pressure, it might help to compile LAMMPS with
|
||||
# the optional RIGID package, and use "fix rigid" on the carbon. (Optional.)
|
||||
# The use of fix rigid is controversial. This method is demonstrated below.
|
||||
|
||||
# ------------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
# ------------------------------- Atom Definition Section -------------------
|
||||
|
||||
read_data system.data
|
||||
|
||||
# ------------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
# ------------------------------- Run Section -------------------------------
|
||||
|
||||
|
||||
# Only the Cgraphene atoms are immobile.
|
||||
group mobile subtract all Cgraphene
|
||||
|
||||
|
||||
# Unfortunately you can not use the LAMMPS "minimize" command on this system
|
||||
# because there is no way to immobilize the carbon graphene & nanotube atoms
|
||||
# during minimization. Instead, we can use langevin dynamics with a large
|
||||
# damping parameter and a small timestep.
|
||||
|
||||
print "--------- beginning minimization (using fix langevin) ---------"
|
||||
|
||||
timestep 0.1
|
||||
fix fxlan mobile langevin 1.0 1.0 100.0 48279
|
||||
fix fxnve mobile nve # <-- needed by fix langevin (see lammps documentation)
|
||||
thermo 100
|
||||
run 2500
|
||||
|
||||
unfix fxlan
|
||||
unfix fxnve
|
||||
|
||||
# -- simulation protocol --
|
||||
|
||||
print "--------- beginning simulation (using fix nvt) ---------"
|
||||
|
||||
timestep 0.25
|
||||
dump 1 all custom 1000 traj_npt.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
thermo_style custom step temp pe etotal press vol epair ebond eangle edihed
|
||||
thermo 1000 # time interval for printing out "thermo" data
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ------------------------- NPT ---------------------------
|
||||
|
||||
# Set temp=300K, pressure=100bar, and equilibrate volume only in the z direction
|
||||
|
||||
fix fxMoveStuff mobile npt temp 300 300 100 z 100 100 1000.0 dilate mobile
|
||||
|
||||
# ------ QUESTIONABLE (see below): ------
|
||||
|
||||
fix Ffreezestuff Cgraphene rigid/npt single temp 300 300 100 z 100 100 1000.0 force * off off off torque * off off off dilate mobile
|
||||
|
||||
# -- Alternate npt rigid method --
|
||||
# I'm not sure which way is more correct, however
|
||||
# this also seems to behave in a reasonable-looking way:
|
||||
#fix Ffreezestuff Cgraphene rigid single force * off off off torque * off off off
|
||||
#
|
||||
# The use of either "fix rigid" or "fix rigid/npt" to immobilize
|
||||
# an object is somewhat controversial. Feel free to omit it.
|
||||
#(Neither Trung or Steve Plimpton use rigid or rigid/npt for immobilizing
|
||||
#molecules, but I noticed that at NPT, it does a better job of maintaining
|
||||
# the correct volume. However "fix rigid" has changed since then (2011),
|
||||
# so this may no longer be true. Please use this example with caution.)
|
||||
# ----------------------------------------
|
||||
|
||||
# IMPORTANT for NPT: You must use "neigh_modify" to turn off calculation of the
|
||||
# forces between immobilized atoms.
|
||||
neigh_modify exclude group Cgraphene Cgraphene
|
||||
|
||||
# The next two lines recalculate the temperature
|
||||
# using only the mobile degrees of freedom:
|
||||
|
||||
compute tempMobile mobile temp
|
||||
compute pressMobile all pressure tempMobile
|
||||
|
||||
thermo_style custom step c_tempMobile c_pressMobile temp press vol
|
||||
|
||||
fix_modify fxMoveStuff temp tempMobile
|
||||
|
||||
run 100000
|
||||
|
||||
write_data system_after_npt.data
|
||||
|
||||
# (The "write_restart" and "read_restart" commands were buggy in 2012,
|
||||
# but they should work also.)
|
||||
|
||||
@ -1,79 +0,0 @@
|
||||
# PREREQUISITES:
|
||||
#
|
||||
# You must use moltemplate.sh to create 3 files:
|
||||
# system.data system.in.init system.in.settings
|
||||
# (Follow the instructions in README_setup.sh, or run it using ./README_sh.)
|
||||
# (You do not need to run LAMMPS to equilibrate the system before
|
||||
# using this file.)
|
||||
|
||||
# ----------------------------- Initialization Section --------------------
|
||||
|
||||
include system.in.init
|
||||
|
||||
|
||||
# ----------------------------- Atom Definition Section -------------------
|
||||
|
||||
read_data system.data
|
||||
|
||||
|
||||
# ----------------------------- Settings Section --------------------------
|
||||
|
||||
include system.in.settings
|
||||
|
||||
|
||||
# ----------------------------- Run Section -------------------------------
|
||||
|
||||
|
||||
|
||||
# Optional: Improve efficiency by omitting the calcuation of interactions
|
||||
# between immobile atoms. (Note: This is not optional under NPT conditions.)
|
||||
neigh_modify exclude group Cgraphene Cgraphene
|
||||
|
||||
# Only the Cgraphene atoms are immobile.
|
||||
group mobile subtract all Cgraphene
|
||||
|
||||
|
||||
|
||||
# -- minimization protocol --
|
||||
|
||||
# Unfortunately you can not use the LAMMPS "minimize" command on this system
|
||||
# because there is no way to immobilize the carbon graphene & nanotube atoms
|
||||
# during minimization. Instead, we can use langevin dynamics with a large
|
||||
# damping parameter and a small timestep.
|
||||
|
||||
print "--------- beginning minimization (using fix langevin) ---------"
|
||||
|
||||
timestep 0.1
|
||||
fix fxlan mobile langevin 1.0 1.0 100.0 48279
|
||||
fix fxnve mobile nve # <-- needed by fix langevin (see lammps documentation)
|
||||
thermo 100
|
||||
run 2500
|
||||
|
||||
unfix fxlan
|
||||
unfix fxnve
|
||||
|
||||
# -- simulation protocol --
|
||||
|
||||
print "--------- beginning simulation (using fix nvt) ---------"
|
||||
|
||||
timestep 1.0
|
||||
dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz
|
||||
|
||||
thermo_style custom step temp pe etotal press vol epair #ebond eangle edihed
|
||||
thermo 500 # time interval for printing out "thermo" data
|
||||
|
||||
|
||||
# Integrate the equations of motion:
|
||||
fix fxMoveStuff mobile nvt temp 300.0 300.0 100.0
|
||||
|
||||
# The next two lines recalculate the temperature
|
||||
# using only the mobile degrees of freedom:
|
||||
|
||||
compute tempMobile mobile temp
|
||||
fix_modify fxMoveStuff temp tempMobile
|
||||
|
||||
restart 5000000 restart_nvt
|
||||
run 10000000
|
||||
|
||||
write_data system_after_nvt.data
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
This is a simple system of 260 water molecules.
|
||||
|
||||
In this example, the coordinates of the atoms are read from a PDB file
|
||||
instead of being specified manually (as well as the boundary information).
|
||||
|
||||
The PDB file was generated by the useful "solvate" utility which comes with VMD.
|
||||
(To generate this file yourself, run VMD, click on the "Extensions" menu,
|
||||
and select Modeling-->Add Solvation Box.
|
||||
In this example, I made a box whose x,y,z dimensions were 16,24,24.)
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
# --- Running LAMMPS ---
|
||||
# -- Prerequisites: --
|
||||
# The 2 files "run.in.npt", and "run.in.nvt" are LAMMPS
|
||||
# input scripts which link to the input scripts and data files
|
||||
# you hopefully have created earlier with moltemplate.sh:
|
||||
# system.in.init, system.in.settings, system.data
|
||||
# If not, carry out the instructions in "README_setup.sh".
|
||||
#
|
||||
# -- Instructions: --
|
||||
# If "lmp_linux" is the name of the command you use to invoke lammps,
|
||||
# then you would run lammps on these files this way:
|
||||
|
||||
|
||||
lmp_linux -i run.in.npt # minimization and simulation at constant pressure
|
||||
lmp_linux -i run.in.nvt # minimization and simulation at constant volume
|
||||
|
||||
#(Note: The constant volume simulation lacks pressure equilibration. These are
|
||||
# completely separate simulations. The results of the constant pressure
|
||||
# simulation are ignored when beginning the simulation at constant volume.
|
||||
# This can be fixed. Read "run.in.nvt" for equilibration instructions.)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# If you have compiled the MPI version of lammps, you can run lammps in parallel
|
||||
#mpirun -np 4 lmp_linux -i run.in.npt
|
||||
#mpirun -np 4 lmp_linux -i run.in.nvt
|
||||
# (assuming you have 4 processors available)
|
||||