git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@11696 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2014-04-04 16:22:53 +00:00
parent df57381665
commit 569259e7dc
426 changed files with 0 additions and 79570 deletions

View File

@ -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.)

View File

@ -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.)

View File

@ -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)

View File

@ -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 ../

View File

@ -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.)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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 ../

View File

@ -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.)

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 ../

View File

@ -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.)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -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

View File

@ -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)
#

View File

@ -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.
#

View File

@ -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"

View File

@ -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...).
-----------

View File

@ -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.)

View File

@ -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/

View File

@ -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.

View File

@ -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.)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -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.)

View File

@ -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)

View File

@ -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 ../

View File

@ -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.)

View File

@ -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)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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 ../

View File

@ -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.)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@ -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

View File

@ -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).

View File

@ -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
}

View File

@ -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

View File

@ -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

View File

@ -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).

View File

@ -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)

View File

@ -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 ../

View File

@ -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.)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View File

@ -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

View File

@ -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)

View File

@ -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).

View File

@ -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.)
# -------------------------------------------------------------------------

View File

@ -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

View File

@ -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
}

View File

@ -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.

View File

@ -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.)

View File

@ -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

View File

@ -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.)

View File

@ -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)

Some files were not shown because too many files have changed in this diff Show More