Building and Installing OpenMD on Windows

Now that Microsoft is embracing open source software, and making the Ubuntu subsystem available, it is very easy to install OpenMD on your Windows computer.

Installing Ubuntu for Windows 10

  1. Make sure your Windows 10 system is up-to-date. You must have a 64-bit Windows 10 Operating System version 16237.0 or higher, which you can see in Settings→System→About.
  2. Run the following code as an administrator in PowerShell:
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

    (Note that if you do not run the command as an administrator you will get an error trying to run this.)

  3. Restart your computer when prompted.
  4. Download the Ubuntu app from the Windows Store.
  5. Open the Ubuntu app and create your new UNIX username and password. (Note that it does not have to match your Windows username and/or password.)
  6. Update Ubuntu with the following commands:
    sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y
  7. From here you can proceed with installing the OpenMD prerequisites for a Linux machine. After these prerequisites are installed, you can build and install OpenMD normally.

Running Graphical Applications with X Server on Ubuntu for Windows 10

If you want to use a graphical application like jmol or xmgrace to interact with the data, you’re going to need a X Server. Without it, when you call one of these programs you will get the following error:

Can't open display
Failed initializing GUI, exiting

To run these graphical applications we need to install the X server and configure bash to use it.

  1. The X server we recommend and have tested is VcXsrv – a fully open source and up-to-date native X server.
  2. Download this application and proceed with the installation.
  3. Once this is installed, open the application and proceed with the default selections for the display settings. (Note that other settings may work well too, but the default settings are the only ones we’ve tested)
  4. The X icon will show up on the bottom of your screen in the system tray.
  5. To configure bash run the following command:
    echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
  6. Either restart the Ubuntu app or source the file with the following:
    . ~/.bashrc
  7. If you want to verify it worked download the x11 apps and run xeyes:
    sudo apt-get install x11-apps
    xeyes

Tags: , , ,

Building and equilibrating gold icosahedra in OpenMD

This example will walk you through how to build an icosahedral gold nanoparticle and equilibrate the system to 250K.

Here we will be building an icosahedra with 8 shells (layers of gold atoms). Icosahedra are experimentally interesting due to the 20 exposed (111) facets, which have a lower surface energy than exhibited by the spherical particles.

icosahedra

  1. To start the process, a metal file (gold.omd) is needed to describe the material composition of the particle. We will take the same file from Building and equilibrating a gold nanoparticle in OpenMD
    molecule{
      name = "Au";

      atom[0]{
        type = "Au";
        position(0.0, 0.0, 0.0);
      }
    }
    component{
      type = "Au";
      nMol = 1;
    }

    forceField = "SC";
    forceFieldFileName = "SuttonChen.QSC.frc";
  2. To create the particle coordinates, use the command:
    icosahedralBuilder -o file.omd --shell=8 --latticeConstant=4.08 --ico gold.omd

    where file.omd is the name of your icosahedra, 8 is the number of shells (in this example), 4.08 is the lattice constant in Angstroms for the metal (4.08 is the correct value for gold), and the skeletal OpenMD file above is called gold.omd

  3. To make sure this icosahedra is the right size for your purposes; use Dump2XYZ to create an xyz file:
    Dump2XYZ -i file.omd

    and view the file in VMD or Jmol (where you might want to measure the diameter of the particle).

  4.  To run the icosahedra in a Langevin Hull and heat the system, we’ll start by inserting the following excerpt after the forceFieldFileName in file.omd.
    ensemble = "LHull";
    targetTemp = 5;
    targetPressure = 1;
    viscosity = 0.1;
    dt = 4.0;
    runTime = 2E5;
    sampleTime = 2000.0;
    statusTime = 4;
    seed = 985456376;
    usePeriodicBoundaryConditions = "false";
    tauThermostat = 1E3;
    tauBarostat = 5E3;
  5. Before we can equilibrate the system, the atoms need initial velocities, which we can set using the thermalizer command.
    thermalizer -t 5 -o file-5K.omd file.omd

    where -t is followed by the desired temperature in Kelvin, and -o is followed by the output file name.

  6. To relax the particle at 5K, we’ll run the simulation described in file-5K.omd using the openmd command:
    openmd file-5K.omd
  7.  To ensure that the temperature of the system has reached 5K, we can use xmgrace to view the stat file:
    xmgrace -nxy file-5K.stat

    In a typical stat file, set 3 (the fourth column) contains the information about the temperature of the system. You can view only the temperature for the trajectory by double clicking any line and bringing up the Set Appearance box. All the sets are initially displayed; turn off the sets you don’t want to see by highlighting and right clicking the set to click the Hide option.

  8. The “end of run” file that has been relaxed can then be copied to a new simulation that will be heated to 100K.
    cp file-5K.eor file-100K.omd

    Then change the targetTemp from 5 to 100.

  9. We’ll continue the procedure of copying the .eor file to a new .omd file and increasing the temperature until we’ve reached 250K. Temperature increases of 50 – 100K and simulation times of 100 – 200 ps are reasonable. Heating the system in intervals is relatively effective in keeping the geometry of the particle stable.

Building and equilibrating a gold nanoparticle in OpenMD

In this example, we’ll build a gold nanoparticle and equilibrate it to a temperature of 300K. In future posts, we’ll add ligands and solvent to this structure. Here’s a sneak preview of the nanoparticle we’ll make here:
NP15_300K

  1. Start with an input .omd file for the metal of your choice. We’ll be creating gold.omd for this example.
    <OpenMD>
      <MetaData>
    molecule{
    name = "Au";

    atom[0]{
    type = "Au";
    position(0.0, 0.0, 0.0);
         }
    }

    component{
    type = "Au";
    nMol = 1;
    }

    forceField = "SC";
    forceFieldFileName = "SuttonChen.QSC.frc";
      </MetaData>
    </OpenMD>
  2. Now to build the nanoparticle. We’ll choose a radius of 15 Å and use the lattice constant of gold, 4.08 Å. We’ll call our initial structure NP15.omd.
    nanoparticleBuilder --latticeConstant=4.08 --radius=15 gold.omd -o NP15.omd
  3. To take a look at the structure we’ve just created, you can use the following command:
    Dump2XYZ -i NP15.omd

    to create a file called NP15.xyz, which can be viewed in VMD, Jmol, or any other chemical structure viewer.

  4. Add the following lines to the new NP15.omd file below the forceFieldFileName line. This sets some details for the simulation.
    ensemble = "LHull";
    targetTemp = 5;
    targetPressure = 1;
    viscosity = 0.1;
    dt = 4.0;
    runTime = 2E5;

    sampleTime = 2000.0;
    statusTime = 4;
    seed = 985456376;

    usePeriodicBoundaryConditions = "false";
    tauThermostat = 1E3;
    tauBarostat = 5E3;
  5. NanoparticleBuilder carves a nanoparticle of our chosen radius out of a perfect gold crystal. We need to give the atoms some initial velocities before we start equilibrating. We’ll start it out at 5K:
    thermalizer -t 5 NP15.omd -o NP15_5K.omd
  6. For the first step in the equilibration we need to let the gold lattice structurally relax. NP15_5K.omd can now be run:
    openmd NP15_5K.omd
  7. Running the simulation will create several new files. NP15_5K.dump contains the trajectory of the simulation. Statistics such as temperature, pressure, and energy will be recorded in the NP15_5K.stat file and can be viewed using:
    xmgrace -nxy NP15_5K.stat
  8. The end-of-run file NP15_5K.eor stores the last configuration of the simulation. We’ll copy it to a new .omd file.
    cp NP15_5K.eor NP15_100K.omd
  9. To continue with the equilibration we need to change the targetTemp of NP15_100K.omd. We’ll increase it to 100 and run the NP15_100K.omd file.
  10. We’ll continue the procedure of copying the .eor file to a new .omd file and increasing the temperature until we’ve reached 300K. Temperature increases of 50 – 100K and simulation times of 100 – 200 ps are reasonable.

Reproducibility in parallel OpenMD simulations

There’s an interesting issue with of how OpenMD distributes load on parallel (MPI) architectures.  At the very beginning of a parallel simulation, the molecules are distributed among the processors using a short Monte Carlo procedure to divide the labor.  This ensures that each processor has an approximately equal number of atoms to work with, and that the row- and column- distribution of atoms in the force decomposition is roughly equitable.  The Monte Carlo procedure involves the use of a pseudo-random number to make processor assignments. So, if you run the same parallel simulation multiple times, the distribution of atoms on the processors can change from run to run.  This shouldn’t be a problem if the MD algorithms are all working as they should, right?

However, one thing that many people forget is a specific limitation of floating point arithmetic.  Due to roundoff errors, the associative laws of algebra do not necessarily hold for floating-point numbers. For example, on a computer, the sum

(x+y)+z

can have a different answer than

x+(y+z)

when x = 1030y = -1030 and z = 1.  In the first case, the answer we get is 1, while roundoff might give us 0 for the second expression.   The addition-ordering roundoff issue can have effects on a simulation that are somewhat subtle.  If you add up the forces on an atom in a different order, the total force might change by a small amount (perhaps 1 part in 1010). When we use this force to move that atom, we’ll be off by a small amount (perhaps 1 part in 109). These small errors can start to make real differences in the microstate of a simulation (i.e. the configuration of the atoms), but shouldn’t alter the macrostate (i.e. the temperature, pressure, etc.).

That said, whenever there’s a random element to the order in which quantities are added up, we can get simulations that are not reproducible.  And non-reproducibility is, in general, not good.  So, how do we get around this issue in OpenMD?   We let the user introduce a static seed for the random number generator that ensures that we always start with exactly the same set of pseudo-random numbers.  If we seed the random number generator, then on the same number of processors, we’ll always get the same division of atoms, and we’ll get reproducible simulations.

To use this feature simply add a seed value to your <MetaData> section:

seed = 8675309;

This seed can be any large positive integer (an unsigned long int).

Once the seed is set, you can run on MPI clusters and be reasonably sure of getting reproducible simulations for runs with the same number of processors.  However, if you mix runs of different numbers of processors, then the roundoff issue will reappear.

Building and Installing OpenMD 3.0

OpenMD is written in C++. Compiling is the process of turning this C++ code into instructions that the computer’s processor can understand.

We’re going to assume here that you have already built and installed all of the prerequisites. If you haven’t done that, go install all of the required stuff and come back. We’ll wait.

Now that you’ve got all the stuff you need, you are ready to compile OpenMD on any unix-like operating system (including Mac OS).  We’re going to assume that you know how to use a command line interface and are comfortable with basic unix commands. The commands below are written assuming you are using bash (or the Bourne-Again SHell). Setting environment variables in csh or tcsh is just a little bit different.

Basic build procedure

The most important thing to do is to download the latest release of the OpenMD code:

curl -o OpenMD-3.0.tar.gz http://openmd.org/releases/OpenMD-3.0.tar.gz

The recommended way to build OpenMD is to use a separate source and build directory; for example, OpenMD-3.0 and build. The first step is to create these directories:

tar zxf OpenMD-3.0.tar.gz
mkdir build

Now you need to run cmake to configure the build. The following will configure the build to use all of the default options:

cd build
cmake ../OpenMD-3.0

If you need to specify a particular compiler, you can do that with environment variables before the cmake line:

export CXX=/opt/local/bin/mpicxx
cmake ../OpenMD-3.0

If you need to specify an option, use the -D switch to cmake. For example, the following line sets the value of CMAKE_INSTALL_PREFIX and CMAKE_BUILD_TYPE:

cmake ../OpenMD-3.0 -DCMAKE_INSTALL_PREFIX=~/Tools -DCMAKE_BUILD_TYPE=DEBUG

We will discuss various possible options later.

At this point, it would be a good idea to compile OpenMD:

make

Have a coffee while the magic happens. If you have a multi-processor machine and would prefer an espresso, try a parallel build instead:

make -j 4

And finally, as root (or using sudo) you should install it:

umask 0022; sudo make install

Local build

With the right sort of environment variable magic (see below), you can actually use OpenMD straight from the build folder. But life is a bit easier if you install it somewhere, either system-wide or locally.

By default, OpenMD is installed in /usr/local on a Unix-like system. This requires root access (or sudo). Even if you do have root access, you may not want to overwrite an existing installation or you may want to avoid conflicts with a version of OpenMD installed by your package manager.

The solution to all of these problems is to do a local install into a directory somewhere in your home folder. An additional advantage of a local install is that if you ever want to uninstall it, all you need to do is delete the installation directory; removing the files from a global install is more work.

To configure cmake to install into ~/Tools/openmd-install, for example, you would do the following:

cmake ../OpenMD-3.0 -DCMAKE_INSTALL_PREFIX=~/Tools/openmd-install

Then you can run make and make install without needing root access:

make &amp;&amp; make install

Troubleshooting build problems

  • CMake caches some variables from run-to-run. How can I wipe the cache to start from scratch?
    Delete CMakeCache.txt in the build directory. This is also a very useful file to look into if you have any problems.
  • What environment variables affect how OpenMD finds force field and data files?
    FORCE_PARAM_PATH – This environment variable is used by OpenMD to find the location of the data files used for force fields and atom sizes, etc. If you get errors about not being able to find some .txt files, then you should set this to the name of the folder containing files such as Amber.frc and element.txt. These are typically installed to /usr/local/openmd/forceFields
  • CMake honors user umask settings for creating directories.  To get predictable results please set umask explicitly before running the make install command.

Advanced build options

  • How do I do a debug build?
    -DCMAKE_BUILD_TYPE=Debug does a debug build (gcc -g).
    To revert to a regular build use -DCMAKE_BUILD_TYPE=Release.
  • How do I see what commands cmake is using to build?
    Run Make as follows:

    VERBOSE=1 make
  • How do I build the Doxygen documentation?If CMake found the “doxygen” program in your PATH, an optional build target called “doc” is created. If the Doxygen executable was not on the PATH, you will need to specify its location with -DDOXYGEN_EXECUTABLE=wherever. To build the documentation, type:
    make doc

Tags: , , ,

Simple liquid simulations using OpenMD

In this example, we’ll build a simulation of a simple liquid (methanol) starting with a structure file (in XYZ format). Getting your molecule of choice into OpenMD is never a black box procedure, and will almost always require some hand adjustment of the input files. Assuming you’ve gotten a version of OpenMD built and installed (along with all of the prerequisite software), we’ll walk you through building the liquid simulation in the steps below.

  1. Start with a good structure for your molecule. If you are familiar with Avogadro, build the methanol structure (CH3OH), set up the force field, and optimize the structure. Save the structure as methanol.xyz. Alternatively, download the methanol.xyz structure to your working directory.
  2. Use the atom2omd program to convert the structure into a format that can be read by OpenMD:
    atom2omd -ixyz methanol.xyz

    This command will create an incomplete OpenMD file called methanol.omd that must be edited before it can be used.

  3. OpenMD can use a number of force fields, but in this example, we’ll use the Amber force field. If you are using this force field and are starting from an XYZ file or non-standard PDB file, you must edit the atom types. In the methanol.omd file:
    • change the atom typing for the methyl carbon from C3 to CT
    • change the O3 to OH
    • The hydrogens on the carbon should also be changed from HC to H1
    • The hydroxyl hydrogen can be left alone.
  4. At this point it is also a good idea to change the name of the molecule to something descriptive (perhaps “methanol”). This should be done in two places; once in the molecule description and another time in the component block.
  5. Before the simulation can run, add a forceField line after the component block:
    forceField = "Amber";

    At this stage, you should be able to run OpenMD on the file to check to make sure your hand-crafted atom typing can be matched up with types known by the force field:

    openmd methanol.omd

    If there are any problems, correct any unknown atom types, and repeat until you get an error about the “Integrator Factory”.

  6. Next, we’ll build a lattice of methanol molecules using this initial structure as a starting point. The density of liquid methanol is roughly 0.7918 g cm-3, so we’ll build a simple box of methanol molecules using the command:
    simpleBuilder -o liquid.omd --density=0.7918 --nx=3 --ny=3 --nz=3 methanol.omd

    This command creates a new system, liquid.omd which contains 108 copies of the methanol molecule arranged in a simple FCC lattice. FCC has 4 molecules in the unit cell, so the total number of molecules = 4 * 3 * 3 * 3 = 108. The molecules are packed at a distance commensurate with their liquid state density.

  7. To visualize what the system looks like at this stage, you can run:
    Dump2XYZ -i liquid.omd

    to create a file called liquid.xyz. This file can be viewed in VMD, Jmol, or any other chemical structure viewer.

  8. Add the following lines below the forceField line of the liquid.omd file:
    ensemble = NVT;
    cutoffMethod = "shifted_force";
    electrostaticScreeningMethod = "damped";
    cutoffRadius = 9;
    dampingAlpha = 0.18;
    targetTemp = 300;
    tauThermostat = 1000;
    dt = 1.0;
    runTime = 1e3;
    tempSet = "false";
    sampleTime = 100;
    statusTime = 10;
  9. Initial configurations that are created from bare structures typically have no velocity information. To give an initial kick to the atoms (i.e. to sample the velocities from a Maxwell-Boltzmann distribution), you can use the following command:
    thermalizer -o warm.omd -t 300 liquid.omd

    This creates a new OpenMD file called warm.omd which has initial velocity information.

  10. At this stage, a simple simulation can be run:
    openmd warm.omd
  11. This should complete relatively quickly, and should create a warm.stat file as well as a warm.dump file containing the actual trajectory.
  12. To view the contents of the trajectory file, you’ll need to convert the dump file into something another program can visualize:
    Dump2XYZ -i warm.dump

    will create a new file warm.xyz that can be viewed in VMD and many other chemical structure viewers.

  13. The “End-of-Run” file warm.eor can be re-purposed as the starting point for a new simulation:
    cp warm.eor  equilibration.omd

    Edit the equilibration.omd file, and change parameters you’d like to change before running openmd on the new file.

Converting a protein structure for use with OpenMD

One of the major tasks facing a new user of OpenMD is getting their molecule of choice into a form that can be read by the program. This is never a black box procedure, and will almost always require some hand adjustment of the input files. Assuming you’ve gotten a version of OpenMD built and installed (along with all of the prerequisite software), we’ll try to walk you through the steps below.

  1. Start with a molecular structure in pdb or xyz formats. A good program for generating and optimizing starting structures is Avogadro, which is a wonderful open source molecular editor.
  2. Alternatively (and this is the route we’ll take here), you can download a protein structure directly from the Protein Data Bank. We’ve picked a short pentapeptide (the neurotransmitter met-enkephalin) to use as an example. The PDB-ID for this protein is 1PLW. Download the text version of the PDB file to your working directory.
  3. Use the atom2md program to convert the structure into a format that can be read by OpenMD:
    atom2md -ipdb 1PLW.pdb

    This command will create an incomplete OpenMD file called 1PLW.md that must be edited before it can be used.

  4. OpenMD can use the Amber force field for protein simulations. If you are using this force field, the N-terminal and C-terminal ends of the protein should be modified to use the correct atom types. This peptide has the sequence “Tyr-Gly-Gly-Phe-Met”, so Tyrosine is the N-terminal end and Methionine is the C-terminal end.

    In the MD file, the atom typing for the first residue must be changed from TYR-X to NTYR-X while for the last residue, it must be changed from MET-X to CMET-X. The special N- and C-terminal atom types usually only apply to the N, CA, C, O, OXT, HN, and HA base types. Other atom types can usually be left alone.

  5. Some PDB files specify more details on the atom name record than the Amber force field can use. In particular, the PHE-CD1 and PHE-CD2 types should be down-specified to PHE-CD. Similar down-specification can be done for PHE-CE1, PHE-CE2, PHE-HD1, PHE-HD2, PHE-HE1, PHE-HE2 atom types.
  6. At this point it is also a good idea to change the name of the molecule to something descriptive (perhaps “metenk”). This should be done in two places; once in the molecule description and another time in the component block.
  7. Before the simulation can run, add a forceField line after the component block:
    forceField = "Amber";

    At this stage, you should be able to run OpenMD on the file to check to make sure your hand-crafted atom typing can be matched up with types known by the force field:

    openmd 1PLW.md

    Correct any unknown atom types, and repeat until you get an error about the “Integrator Factory”.

  8. Add the following lines below the forceField line:
    ensemble = NVT;
    cutoffMethod = "shifted_force";
    electrostaticScreeningMethod = "damped";
    cutoffRadius = 10;
    dampingAlpha = 0.18;
    targetTemp = 300;
    tauThermostat = 1000;
    dt = 1.0;
    runTime = 1e3;
    tempSet = "false";
    sampleTime = 100;
    statusTime = 10;
  9. The default size for the periodic box or Hmat is typically a tight bounding box around the structure of the protein. Edit the Hmat line in the FrameData block to be at least twice the cutoff radius in each dimension. A good choice for a small bare protein might be:
            Hmat: {{ 30, 0, 0 }, { 0, 30, 0 }, { 0, 0, 30 }}

  10. Initial configurations that are created from crystal structures usually have no velocity information. To give an initial kick to the atoms (i.e. to sample the velocities from a Maxwell-Boltzmann distribution), you can use the following command:
    thermalizer -o warm.md -t 300 1PLW.md

    This creates a new OpenMD file called warm.md which has initial velocity information.

  11. At this stage, a simple simulation can be run:
    openmd warm.md

  12. This should complete relatively quickly, and should create a warm.stat file as well as a warm.dump file containing the actual trajectory.
  13. To view the contents of the trajectory file, you’ll need to convert the dump file into something another program can visualize:
    Dump2XYZ -i warm.dump

    will create a new file warm.xyz that can be viewed in VMD and many other chemical structure viewers.

  14. The “End-of-Run” file warm.eor can be re-purposed as the starting point for a new simulation:
    cp warm.eor  equilibration.md

    Edit the equilibration.md file, and change parameters you’d like to change before running openmd on the new file.

Building and Installing OpenMD 1.0

NOTE: As of OpenMD version 2.0, the build system has changed significantly. We have an updated set of instructions to build and install OpenMD 2.0.

We’re going to assume here that you have already built and installed all of the prerequisites. If you haven’t done that, go install all of the required stuff and come back. We’ll wait.

OK, now that you’ve got all the stuff you need, we’ll branch to the same three architectures and give the instructions separately:

On a Mac (OS X 10.5 or greater)

  1. Download the latest release of the OpenMD:
    curl -o openmd-1.1.5.tar.gz http://openmd.org/releases/openmd-1.1.5.tar.gz
  2. Unpack the file:
    tar -zxvf openmd-1.1.5.tar.gz
  3. Change into the OpenMD directory:
    cd openmd-1.1.5
  4. Set the compiler variables to your preferred compilers:
    export CC=/opt/local/bin/openmpicc
    export CXX=/opt/local/bin/openmpic++
    export FC=/opt/local/bin/openmpif90
    export MPICC=$CC
    export MPICXX=$CXX
    export MPIFC=$FC

    All of the previous lines assume you are using /bin/sh or /bin/bash as your shell. If you are a csh/tcsh person, those environment variable lines will look like this:

    setenv CC /opt/local/bin/openmpicc
    setenv CXX /opt/local/bin/openmpic++
    setenv FC /opt/local/bin/openmpif90
    setenv MPICC $CC
    setenv MPICXX $CXX
    setenv MPIFC $FC
  5. Run the configure script with all of the arguments set to point to the correct locations for the optional software:
    ./configure --with-openbabel=/opt/local --with-qhull=/opt/local \
    --with-fftw=/opt/local --prefix=/opt/local
  6. Make OpenMD:
    make

    (This would be a good time to grab coffee. Perhaps lunch. Or maybe a quick trip to the pub would be in order.)

  7. Install OpenMD:
    sudo make install
  8. That’s it! When these steps are complete, OpenMD has been installed in the directory /opt/local/openmd. All of the programs are installed in the bin subdirectory, and samples are in the samples subdirectory, and required data files are in the forceFields directory.

On Linux

  1. Download the latest release of the OpenMD:
    curl -o openmd-1.1.5.tar.gz http://openmd.org/releases/openmd-1.1.5.tar.gz
  2. Unpack the file:
    tar -zxvf openmd-1.1.5.tar.gz
  3. Change into the OpenMD directory:
    cd openmd-1.1.5
  4. Set the compiler variables to your preferred compilers:
    export CC=/usr/bin/openmpicc
    export CXX=/usr/bin/openmpic++
    export FC=/usr/bin/openmpif90
    export MPICC=$CC
    export MPICXX=$CXX
    export MPIFC=$FC

    All of the previous lines assume you are using /bin/sh or /bin/bash as your shell. If you are a csh/tcsh person, those environment variable lines will look like this:

    setenv CC /usr/bin/openmpicc
    setenv CXX /usr/bin/openmpic++
    setenv FC /usr/bin/openmpif90
    setenv MPICC $CC
    setenv MPICXX $CXX
    setenv MPIFC $FC
  5. Run the configure script with all of the arguments set to point to the correct locations for the optional software:
    ./configure --with-openbabel=/usr --with-qhull=/usr \
    --with-fftw=/usr --prefix=/opt/local
  6. Make OpenMD:
    make

    (This would be a good time to grab coffee. Perhaps lunch. Or maybe a quick trip to the pub would be in order.)

  7. Install OpenMD:
    sudo make install
  8. That’s it! When these steps are complete, OpenMD has been installed in the directory /opt/local/openmd. All of the programs are installed in the bin subdirectory, and samples are in the samples subdirectory, and required data files are in the forceFields directory.

On Windows

You’re largely on your own here, because we don’t have a windows machine on which to test OpenMD, but if you have cygwin installed, it should be quite similar build instructions to Linux.

Installing OpenMD prerequisites

To get OpenMD up and running, there are some required (and optional) software packages you should have to create a functioning build environment:

On a Mac (macOS Mojave or later)

  1. Install Xcode
  2. Install homebrew
  3. Open a Terminal window, and update your homebrew packages to the latest updates:
    brew update
    brew upgrade

    (Note that the brew command is usually located in /usr/local/bin)

  4. Install the relevant prerequisite packages:
    brew install cmake open-babel qhull zlib fftw open-mpi numpy scipy

    You can go have lunch or coffee while these are being built and installed.

  5. Install some optional software if you want to use and interact with the data produced by OpenMD:
    brew install grace brewsci/bio/jmol 
  6. Install some optional software if you want to develop or add to OpenMD:
    brew install antlr@2 gengetopt doxygen

On Linux

  1. Use yum, apt-get, or the package manager in your favorite distribution to install the following packages and all of their prerequisites. Package names depend on the Linux variant, so in Fedora (and Red Hat) the package names are:
    fftw
    fftw-devel
    cmake
    openbabel openbabel-devel openmpi3 openmpi3-devel
    python3-numpy
    python3-scipy qhull qhull-devel zlib zlib-devel

    In Ubuntu (and probably other Debian-based versions), the packages are:

    libfftw3-3
    libfftw3-dev
    cmake
    openbabel
    libopenbabel-dev
    openmpi-bin
    libopenmpi-dev
    python3-numpy
    python3-scipy qhull-bin libqhull-dev minizip zlib1g-dev
  2. Install some optional packages if you want to use and interact with the data produced by OpenMD:
    jmol
    grace
    
  3. Install some optional software if you want to develop or add to OpenMD:
    antlr
    gengetopt
    doxygen

On Windows

Building and installing OpenMD on Windows is now quite straightforward. All it takes is the installation of an Ubuntu subsystem on your Windows Machine. Once you have this, all the commands for the Linux build are exactly the same. Alternatively, CMake will generate a (mostly) working build of OpenMD 2.6 in Windows with the Visual Studio 2019 C++ compiler, but we don’t routinely test the code in this configuration. 

  1. Follow the steps to building and installing OpenMD on Windows. (Note that if you’re planning on using visualization software that relies on an X Server, you’ll need to follow the Windows-specific instructions for that as well.)
  2. Refer to the list of packages for linux above to get the correct packages installed.

Building from source

If you are building all of the prerequisites from source, you’ll need (in addition to a C++ compiler):

  1. CMake – This cross-platform build system is required for building OpenMD.  You need to install CMake 2.8.11 or newer. This is available as a binary package from the KitWare website; alternatively, it may be available through your package manager (on Linux). If necessary, you can also compile it yourself from the source code.
  2. python – An interpreted scripting language that some of the OpenMD utilities use to parse and process data files.
    You probably already have this.
  3. Open MPI – A very good implementation of the MPI-2 specification for parallel computing.
  4. qhull – A computational geometry toolbox for computing convex hulls and Delaunay triangulations. qhull is required for the LangevinHull integrator and for any of the tools that compute the Hull atoms or hull volumes of nanoparticles and clusters.
  5. openbabel – a chemical toolbox for converting between different data formats.  This is required for building the atom2omd program which helps prepare initial “metadata” or omd files for simulations.
  6. fftw – a library for computing discrete Fourier transforms. This is required for surface undulation spectra (Hxy in staticProps). Get version 3.
  7. zlib – required to support reading compressed trajectory files.

You’ll also likely want to download and compile the following useful tools for interacting with the data:

  1. Jmol
  2. xmgr
  3. grace
  4. NumPy
  5. SciPy
  6. vmd

If you are going to be extending or developing OpenMD, you’ll need the following tool:

  1. antlr – our tool for parsing meta-data files.  You’ll want version 2.7, not 3.
  2. gengetopt – a tool to generate C code to parse the command line arguments argc and argv that are part of every C or C++ program

Tags: , , ,

Simple One-component simulation: Lennard-Jones argon

This is a sample meta-data (MD) file which OpenMD can use to simulate a simple 500 atom Argon liquid using the Lennard-Jones force field. OpenMD meta-data files come in structured sections, which are delineated by opening and closing tags. The two major sections are the MetaData and Snapshot sections:

<OpenMD version=”1″>
<MetaData>
// first define an argon molecule (pretty simple, just one atom at the origin):
molecule{
name = “Ar”;

atom[0]{
type=”Ar”;
position( 0.0, 0.0, 0.0 );
}
}

// all MD files must include at least one component to simulate
component{
type = “Ar”;
nMol = 500;
}
// assignment statements:
forceField = “LJ”;    // basic Lennard-Jones force field
targetTemp = 178.5;  // corresponds to T* = 1.5
cutoffMethod = “shifted_force”;
cutoffRadius = 9.5;

ensemble = “NVE”;  // microcanonical ensemble
dt = 1.0;   // all times in OpenMD are measured in femtoseconds
runTime = 1e4;

sampleTime = 1000;
statusTime = 1;

// the following two statements will re-sample velocities from a Maxwell-Boltzmann
// distribution every 10 ps
thermalTime = 10000.0;
tempSet = “true”;

</MetaData>
<Snapshot>
<FrameData>
Time: 10000
Hmat: {{ 30.482111, 0, 0 }, { 0, 30.482111, 0 }, { 0, 0, 30.482111 }}
Thermostat: 0 , 0
Barostat: {{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }}
</FrameData>
<StuntDoubles>
0      pv         0         0         0   0 0 0
1      pv         6.096422         0         0   0 0 0
2      pv         12.192844         0         0   0 0 0
3      pv         18.289266         0         0   0 0 0
4      pv         24.385688         0         0   0 0 0
5      pv         0         6.096422         0   0 0 0
6      pv         6.096422         6.096422         0   0 0 0
7      pv         12.192844         6.096422         0   0 0 0
8      pv         18.289266         6.096422         0   0 0 0
9      pv         24.385688         6.096422         0   0 0 0
10      pv         0         12.192844         0   0 0 0
11      pv         6.096422         12.192844         0   0 0 0
12      pv         12.192844         12.192844         0   0 0 0
13      pv         18.289266         12.192844         0   0 0 0
14      pv         24.385688         12.192844         0   0 0 0
15      pv         0         18.289266         0   0 0 0
16      pv         6.096422         18.289266         0   0 0 0
17      pv         12.192844         18.289266         0   0 0 0
18      pv         18.289266         18.289266         0   0 0 0
19      pv         24.385688         18.289266         0   0 0 0
20      pv         0         24.385688         0   0 0 0
21      pv         6.096422         24.385688         0   0 0 0
22      pv         12.192844         24.385688         0   0 0 0
23      pv         18.289266         24.385688         0   0 0 0
24      pv         24.385688         24.385688         0   0 0 0
25      pv         0         0         6.096422   0 0 0
26      pv         6.096422         0         6.096422   0 0 0
27      pv         12.192844         0         6.096422   0 0 0
28      pv         18.289266         0         6.096422   0 0 0
29      pv         24.385688         0         6.096422   0 0 0
30      pv         0         6.096422         6.096422   0 0 0
31      pv         6.096422         6.096422         6.096422   0 0 0
32      pv         12.192844         6.096422         6.096422   0 0 0
33      pv         18.289266         6.096422         6.096422   0 0 0
34      pv         24.385688         6.096422         6.096422   0 0 0
35      pv         0         12.192844         6.096422   0 0 0
36      pv         6.096422         12.192844         6.096422   0 0 0
37      pv         12.192844         12.192844         6.096422   0 0 0
38      pv         18.289266         12.192844         6.096422   0 0 0
39      pv         24.385688         12.192844         6.096422   0 0 0
40      pv         0         18.289266         6.096422   0 0 0
41      pv         6.096422         18.289266         6.096422   0 0 0
42      pv         12.192844         18.289266         6.096422   0 0 0
43      pv         18.289266         18.289266         6.096422   0 0 0
44      pv         24.385688         18.289266         6.096422   0 0 0
45      pv         0         24.385688         6.096422   0 0 0
46      pv         6.096422         24.385688         6.096422   0 0 0
47      pv         12.192844         24.385688         6.096422   0 0 0
48      pv         18.289266         24.385688         6.096422   0 0 0
49      pv         24.385688         24.385688         6.096422   0 0 0
50      pv         0         0         12.192844   0 0 0
51      pv         6.096422         0         12.192844   0 0 0
52      pv         12.192844         0         12.192844   0 0 0
53      pv         18.289266         0         12.192844   0 0 0
54      pv         24.385688         0         12.192844   0 0 0
55      pv         0         6.096422         12.192844   0 0 0
56      pv         6.096422         6.096422         12.192844   0 0 0
57      pv         12.192844         6.096422         12.192844   0 0 0
58      pv         18.289266         6.096422         12.192844   0 0 0
59      pv         24.385688         6.096422         12.192844   0 0 0
60      pv         0         12.192844         12.192844   0 0 0
61      pv         6.096422         12.192844         12.192844   0 0 0
62      pv         12.192844         12.192844         12.192844   0 0 0
63      pv         18.289266         12.192844         12.192844   0 0 0
64      pv         24.385688         12.192844         12.192844   0 0 0
65      pv         0         18.289266         12.192844   0 0 0
66      pv         6.096422         18.289266         12.192844   0 0 0
67      pv         12.192844         18.289266         12.192844   0 0 0
68      pv         18.289266         18.289266         12.192844   0 0 0
69      pv         24.385688         18.289266         12.192844   0 0 0
70      pv         0         24.385688         12.192844   0 0 0
71      pv         6.096422         24.385688         12.192844   0 0 0
72      pv         12.192844         24.385688         12.192844   0 0 0
73      pv         18.289266         24.385688         12.192844   0 0 0
74      pv         24.385688         24.385688         12.192844   0 0 0
75      pv         0         0         18.289266   0 0 0
76      pv         6.096422         0         18.289266   0 0 0
77      pv         12.192844         0         18.289266   0 0 0
78      pv         18.289266         0         18.289266   0 0 0
79      pv         24.385688         0         18.289266   0 0 0
80      pv         0         6.096422         18.289266   0 0 0
81      pv         6.096422         6.096422         18.289266   0 0 0
82      pv         12.192844         6.096422         18.289266   0 0 0
83      pv         18.289266         6.096422         18.289266   0 0 0
84      pv         24.385688         6.096422         18.289266   0 0 0
85      pv         0         12.192844         18.289266   0 0 0
86      pv         6.096422         12.192844         18.289266   0 0 0
87      pv         12.192844         12.192844         18.289266   0 0 0
88      pv         18.289266         12.192844         18.289266   0 0 0
89      pv         24.385688         12.192844         18.289266   0 0 0
90      pv         0         18.289266         18.289266   0 0 0
91      pv         6.096422         18.289266         18.289266   0 0 0
92      pv         12.192844         18.289266         18.289266   0 0 0
93      pv         18.289266         18.289266         18.289266   0 0 0
94      pv         24.385688         18.289266         18.289266   0 0 0
95      pv         0         24.385688         18.289266   0 0 0
96      pv         6.096422         24.385688         18.289266   0 0 0
97      pv         12.192844         24.385688         18.289266   0 0 0
98      pv         18.289266         24.385688         18.289266   0 0 0
99      pv         24.385688         24.385688         18.289266   0 0 0
100      pv         0         0         24.385688   0 0 0
101      pv         6.096422         0         24.385688   0 0 0
102      pv         12.192844         0         24.385688   0 0 0
103      pv         18.289266         0         24.385688   0 0 0
104      pv         24.385688         0         24.385688   0 0 0
105      pv         0         6.096422         24.385688   0 0 0
106      pv         6.096422         6.096422         24.385688   0 0 0
107      pv         12.192844         6.096422         24.385688   0 0 0
108      pv         18.289266         6.096422         24.385688   0 0 0
109      pv         24.385688         6.096422         24.385688   0 0 0
110      pv         0         12.192844         24.385688   0 0 0
111      pv         6.096422         12.192844         24.385688   0 0 0
112      pv         12.192844         12.192844         24.385688   0 0 0
113      pv         18.289266         12.192844         24.385688   0 0 0
114      pv         24.385688         12.192844         24.385688   0 0 0
115      pv         0         18.289266         24.385688   0 0 0
116      pv         6.096422         18.289266         24.385688   0 0 0
117      pv         12.192844         18.289266         24.385688   0 0 0
118      pv         18.289266         18.289266         24.385688   0 0 0
119      pv         24.385688         18.289266         24.385688   0 0 0
120      pv         0         24.385688         24.385688   0 0 0
121      pv         6.096422         24.385688         24.385688   0 0 0
122      pv         12.192844         24.385688         24.385688   0 0 0
123      pv         18.289266         24.385688         24.385688   0 0 0
124      pv         24.385688         24.385688         24.385688   0 0 0
125      pv         3.048211         3.048211         0   0 0 0
126      pv         9.144633         3.048211         0   0 0 0
127      pv         15.241055         3.048211         0   0 0 0
128      pv         21.337477         3.048211         0   0 0 0
129      pv         27.433899         3.048211         0   0 0 0
130      pv         3.048211         9.144633         0   0 0 0
131      pv         9.144633         9.144633         0   0 0 0
132      pv         15.241055         9.144633         0   0 0 0
133      pv         21.337477         9.144633         0   0 0 0
134      pv         27.433899         9.144633         0   0 0 0
135      pv         3.048211         15.241055         0   0 0 0
136      pv         9.144633         15.241055         0   0 0 0
137      pv         15.241055         15.241055         0   0 0 0
138      pv         21.337477         15.241055         0   0 0 0
139      pv         27.433899         15.241055         0   0 0 0
140      pv         3.048211         21.337477         0   0 0 0
141      pv         9.144633         21.337477         0   0 0 0
142      pv         15.241055         21.337477         0   0 0 0
143      pv         21.337477         21.337477         0   0 0 0
144      pv         27.433899         21.337477         0   0 0 0
145      pv         3.048211         27.433899         0   0 0 0
146      pv         9.144633         27.433899         0   0 0 0
147      pv         15.241055         27.433899         0   0 0 0
148      pv         21.337477         27.433899         0   0 0 0
149      pv         27.433899         27.433899         0   0 0 0
150      pv         3.048211         3.048211         6.096422   0 0 0
151      pv         9.144633         3.048211         6.096422   0 0 0
152      pv         15.241055         3.048211         6.096422   0 0 0
153      pv         21.337477         3.048211         6.096422   0 0 0
154      pv         27.433899         3.048211         6.096422   0 0 0
155      pv         3.048211         9.144633         6.096422   0 0 0
156      pv         9.144633         9.144633         6.096422   0 0 0
157      pv         15.241055         9.144633         6.096422   0 0 0
158      pv         21.337477         9.144633         6.096422   0 0 0
159      pv         27.433899         9.144633         6.096422   0 0 0
160      pv         3.048211         15.241055         6.096422   0 0 0
161      pv         9.144633         15.241055         6.096422   0 0 0
162      pv         15.241055         15.241055         6.096422   0 0 0
163      pv         21.337477         15.241055         6.096422   0 0 0
164      pv         27.433899         15.241055         6.096422   0 0 0
165      pv         3.048211         21.337477         6.096422   0 0 0
166      pv         9.144633         21.337477         6.096422   0 0 0
167      pv         15.241055         21.337477         6.096422   0 0 0
168      pv         21.337477         21.337477         6.096422   0 0 0
169      pv         27.433899         21.337477         6.096422   0 0 0
170      pv         3.048211         27.433899         6.096422   0 0 0
171      pv         9.144633         27.433899         6.096422   0 0 0
172      pv         15.241055         27.433899         6.096422   0 0 0
173      pv         21.337477         27.433899         6.096422   0 0 0
174      pv         27.433899         27.433899         6.096422   0 0 0
175      pv         3.048211         3.048211         12.192844   0 0 0
176      pv         9.144633         3.048211         12.192844   0 0 0
177      pv         15.241055         3.048211         12.192844   0 0 0
178      pv         21.337477         3.048211         12.192844   0 0 0
179      pv         27.433899         3.048211         12.192844   0 0 0
180      pv         3.048211         9.144633         12.192844   0 0 0
181      pv         9.144633         9.144633         12.192844   0 0 0
182      pv         15.241055         9.144633         12.192844   0 0 0
183      pv         21.337477         9.144633         12.192844   0 0 0
184      pv         27.433899         9.144633         12.192844   0 0 0
185      pv         3.048211         15.241055         12.192844   0 0 0
186      pv         9.144633         15.241055         12.192844   0 0 0
187      pv         15.241055         15.241055         12.192844   0 0 0
188      pv         21.337477         15.241055         12.192844   0 0 0
189      pv         27.433899         15.241055         12.192844   0 0 0
190      pv         3.048211         21.337477         12.192844   0 0 0
191      pv         9.144633         21.337477         12.192844   0 0 0
192      pv         15.241055         21.337477         12.192844   0 0 0
193      pv         21.337477         21.337477         12.192844   0 0 0
194      pv         27.433899         21.337477         12.192844   0 0 0
195      pv         3.048211         27.433899         12.192844   0 0 0
196      pv         9.144633         27.433899         12.192844   0 0 0
197      pv         15.241055         27.433899         12.192844   0 0 0
198      pv         21.337477         27.433899         12.192844   0 0 0
199      pv         27.433899         27.433899         12.192844   0 0 0
200      pv         3.048211         3.048211         18.289266   0 0 0
201      pv         9.144633         3.048211         18.289266   0 0 0
202      pv         15.241055         3.048211         18.289266   0 0 0
203      pv         21.337477         3.048211         18.289266   0 0 0
204      pv         27.433899         3.048211         18.289266   0 0 0
205      pv         3.048211         9.144633         18.289266   0 0 0
206      pv         9.144633         9.144633         18.289266   0 0 0
207      pv         15.241055         9.144633         18.289266   0 0 0
208      pv         21.337477         9.144633         18.289266   0 0 0
209      pv         27.433899         9.144633         18.289266   0 0 0
210      pv         3.048211         15.241055         18.289266   0 0 0
211      pv         9.144633         15.241055         18.289266   0 0 0
212      pv         15.241055         15.241055         18.289266   0 0 0
213      pv         21.337477         15.241055         18.289266   0 0 0
214      pv         27.433899         15.241055         18.289266   0 0 0
215      pv         3.048211         21.337477         18.289266   0 0 0
216      pv         9.144633         21.337477         18.289266   0 0 0
217      pv         15.241055         21.337477         18.289266   0 0 0
218      pv         21.337477         21.337477         18.289266   0 0 0
219      pv         27.433899         21.337477         18.289266   0 0 0
220      pv         3.048211         27.433899         18.289266   0 0 0
221      pv         9.144633         27.433899         18.289266   0 0 0
222      pv         15.241055         27.433899         18.289266   0 0 0
223      pv         21.337477         27.433899         18.289266   0 0 0
224      pv         27.433899         27.433899         18.289266   0 0 0
225      pv         3.048211         3.048211         24.385688   0 0 0
226      pv         9.144633         3.048211         24.385688   0 0 0
227      pv         15.241055         3.048211         24.385688   0 0 0
228      pv         21.337477         3.048211         24.385688   0 0 0
229      pv         27.433899         3.048211         24.385688   0 0 0
230      pv         3.048211         9.144633         24.385688   0 0 0
231      pv         9.144633         9.144633         24.385688   0 0 0
232      pv         15.241055         9.144633         24.385688   0 0 0
233      pv         21.337477         9.144633         24.385688   0 0 0
234      pv         27.433899         9.144633         24.385688   0 0 0
235      pv         3.048211         15.241055         24.385688   0 0 0
236      pv         9.144633         15.241055         24.385688   0 0 0
237      pv         15.241055         15.241055         24.385688   0 0 0
238      pv         21.337477         15.241055         24.385688   0 0 0
239      pv         27.433899         15.241055         24.385688   0 0 0
240      pv         3.048211         21.337477         24.385688   0 0 0
241      pv         9.144633         21.337477         24.385688   0 0 0
242      pv         15.241055         21.337477         24.385688   0 0 0
243      pv         21.337477         21.337477         24.385688   0 0 0
244      pv         27.433899         21.337477         24.385688   0 0 0
245      pv         3.048211         27.433899         24.385688   0 0 0
246      pv         9.144633         27.433899         24.385688   0 0 0
247      pv         15.241055         27.433899         24.385688   0 0 0
248      pv         21.337477         27.433899         24.385688   0 0 0
249      pv         27.433899         27.433899         24.385688   0 0 0
250      pv         3.048211         0         3.048211   0 0 0
251      pv         9.144633         0         3.048211   0 0 0
252      pv         15.241055         0         3.048211   0 0 0
253      pv         21.337477         0         3.048211   0 0 0
254      pv         27.433899         0         3.048211   0 0 0
255      pv         3.048211         6.096422         3.048211   0 0 0
256      pv         9.144633         6.096422         3.048211   0 0 0
257      pv         15.241055         6.096422         3.048211   0 0 0
258      pv         21.337477         6.096422         3.048211   0 0 0
259      pv         27.433899         6.096422         3.048211   0 0 0
260      pv         3.048211         12.192844         3.048211   0 0 0
261      pv         9.144633         12.192844         3.048211   0 0 0
262      pv         15.241055         12.192844         3.048211   0 0 0
263      pv         21.337477         12.192844         3.048211   0 0 0
264      pv         27.433899         12.192844         3.048211   0 0 0
265      pv         3.048211         18.289266         3.048211   0 0 0
266      pv         9.144633         18.289266         3.048211   0 0 0
267      pv         15.241055         18.289266         3.048211   0 0 0
268      pv         21.337477         18.289266         3.048211   0 0 0
269      pv         27.433899         18.289266         3.048211   0 0 0
270      pv         3.048211         24.385688         3.048211   0 0 0
271      pv         9.144633         24.385688         3.048211   0 0 0
272      pv         15.241055         24.385688         3.048211   0 0 0
273      pv         21.337477         24.385688         3.048211   0 0 0
274      pv         27.433899         24.385688         3.048211   0 0 0
275      pv         3.048211         0         9.144633   0 0 0
276      pv         9.144633         0         9.144633   0 0 0
277      pv         15.241055         0         9.144633   0 0 0
278      pv         21.337477         0         9.144633   0 0 0
279      pv         27.433899         0         9.144633   0 0 0
280      pv         3.048211         6.096422         9.144633   0 0 0
281      pv         9.144633         6.096422         9.144633   0 0 0
282      pv         15.241055         6.096422         9.144633   0 0 0
283      pv         21.337477         6.096422         9.144633   0 0 0
284      pv         27.433899         6.096422         9.144633   0 0 0
285      pv         3.048211         12.192844         9.144633   0 0 0
286      pv         9.144633         12.192844         9.144633   0 0 0
287      pv         15.241055         12.192844         9.144633   0 0 0
288      pv         21.337477         12.192844         9.144633   0 0 0
289      pv         27.433899         12.192844         9.144633   0 0 0
290      pv         3.048211         18.289266         9.144633   0 0 0
291      pv         9.144633         18.289266         9.144633   0 0 0
292      pv         15.241055         18.289266         9.144633   0 0 0
293      pv         21.337477         18.289266         9.144633   0 0 0
294      pv         27.433899         18.289266         9.144633   0 0 0
295      pv         3.048211         24.385688         9.144633   0 0 0
296      pv         9.144633         24.385688         9.144633   0 0 0
297      pv         15.241055         24.385688         9.144633   0 0 0
298      pv         21.337477         24.385688         9.144633   0 0 0
299      pv         27.433899         24.385688         9.144633   0 0 0
300      pv         3.048211         0         15.241055   0 0 0
301      pv         9.144633         0         15.241055   0 0 0
302      pv         15.241055         0         15.241055   0 0 0
303      pv         21.337477         0         15.241055   0 0 0
304      pv         27.433899         0         15.241055   0 0 0
305      pv         3.048211         6.096422         15.241055   0 0 0
306      pv         9.144633         6.096422         15.241055   0 0 0
307      pv         15.241055         6.096422         15.241055   0 0 0
308      pv         21.337477         6.096422         15.241055   0 0 0
309      pv         27.433899         6.096422         15.241055   0 0 0
310      pv         3.048211         12.192844         15.241055   0 0 0
311      pv         9.144633         12.192844         15.241055   0 0 0
312      pv         15.241055         12.192844         15.241055   0 0 0
313      pv         21.337477         12.192844         15.241055   0 0 0
314      pv         27.433899         12.192844         15.241055   0 0 0
315      pv         3.048211         18.289266         15.241055   0 0 0
316      pv         9.144633         18.289266         15.241055   0 0 0
317      pv         15.241055         18.289266         15.241055   0 0 0
318      pv         21.337477         18.289266         15.241055   0 0 0
319      pv         27.433899         18.289266         15.241055   0 0 0
320      pv         3.048211         24.385688         15.241055   0 0 0
321      pv         9.144633         24.385688         15.241055   0 0 0
322      pv         15.241055         24.385688         15.241055   0 0 0
323      pv         21.337477         24.385688         15.241055   0 0 0
324      pv         27.433899         24.385688         15.241055   0 0 0
325      pv         3.048211         0         21.337477   0 0 0
326      pv         9.144633         0         21.337477   0 0 0
327      pv         15.241055         0         21.337477   0 0 0
328      pv         21.337477         0         21.337477   0 0 0
329      pv         27.433899         0         21.337477   0 0 0
330      pv         3.048211         6.096422         21.337477   0 0 0
331      pv         9.144633         6.096422         21.337477   0 0 0
332      pv         15.241055         6.096422         21.337477   0 0 0
333      pv         21.337477         6.096422         21.337477   0 0 0
334      pv         27.433899         6.096422         21.337477   0 0 0
335      pv         3.048211         12.192844         21.337477   0 0 0
336      pv         9.144633         12.192844         21.337477   0 0 0
337      pv         15.241055         12.192844         21.337477   0 0 0
338      pv         21.337477         12.192844         21.337477   0 0 0
339      pv         27.433899         12.192844         21.337477   0 0 0
340      pv         3.048211         18.289266         21.337477   0 0 0
341      pv         9.144633         18.289266         21.337477   0 0 0
342      pv         15.241055         18.289266         21.337477   0 0 0
343      pv         21.337477         18.289266         21.337477   0 0 0
344      pv         27.433899         18.289266         21.337477   0 0 0
345      pv         3.048211         24.385688         21.337477   0 0 0
346      pv         9.144633         24.385688         21.337477   0 0 0
347      pv         15.241055         24.385688         21.337477   0 0 0
348      pv         21.337477         24.385688         21.337477   0 0 0
349      pv         27.433899         24.385688         21.337477   0 0 0
350      pv         3.048211         0         27.433899   0 0 0
351      pv         9.144633         0         27.433899   0 0 0
352      pv         15.241055         0         27.433899   0 0 0
353      pv         21.337477         0         27.433899   0 0 0
354      pv         27.433899         0         27.433899   0 0 0
355      pv         3.048211         6.096422         27.433899   0 0 0
356      pv         9.144633         6.096422         27.433899   0 0 0
357      pv         15.241055         6.096422         27.433899   0 0 0
358      pv         21.337477         6.096422         27.433899   0 0 0
359      pv         27.433899         6.096422         27.433899   0 0 0
360      pv         3.048211         12.192844         27.433899   0 0 0
361      pv         9.144633         12.192844         27.433899   0 0 0
362      pv         15.241055         12.192844         27.433899   0 0 0
363      pv         21.337477         12.192844         27.433899   0 0 0
364      pv         27.433899         12.192844         27.433899   0 0 0
365      pv         3.048211         18.289266         27.433899   0 0 0
366      pv         9.144633         18.289266         27.433899   0 0 0
367      pv         15.241055         18.289266         27.433899   0 0 0
368      pv         21.337477         18.289266         27.433899   0 0 0
369      pv         27.433899         18.289266         27.433899   0 0 0
370      pv         3.048211         24.385688         27.433899   0 0 0
371      pv         9.144633         24.385688         27.433899   0 0 0
372      pv         15.241055         24.385688         27.433899   0 0 0
373      pv         21.337477         24.385688         27.433899   0 0 0
374      pv         27.433899         24.385688         27.433899   0 0 0
375      pv         0         3.048211         3.048211   0 0 0
376      pv         6.096422         3.048211         3.048211   0 0 0
377      pv         12.192844         3.048211         3.048211   0 0 0
378      pv         18.289266         3.048211         3.048211   0 0 0
379      pv         24.385688         3.048211         3.048211   0 0 0
380      pv         0         9.144633         3.048211   0 0 0
381      pv         6.096422         9.144633         3.048211   0 0 0
382      pv         12.192844         9.144633         3.048211   0 0 0
383      pv         18.289266         9.144633         3.048211   0 0 0
384      pv         24.385688         9.144633         3.048211   0 0 0
385      pv         0         15.241055         3.048211   0 0 0
386      pv         6.096422         15.241055         3.048211   0 0 0
387      pv         12.192844         15.241055         3.048211   0 0 0
388      pv         18.289266         15.241055         3.048211   0 0 0
389      pv         24.385688         15.241055         3.048211   0 0 0
390      pv         0         21.337477         3.048211   0 0 0
391      pv         6.096422         21.337477         3.048211   0 0 0
392      pv         12.192844         21.337477         3.048211   0 0 0
393      pv         18.289266         21.337477         3.048211   0 0 0
394      pv         24.385688         21.337477         3.048211   0 0 0
395      pv         0         27.433899         3.048211   0 0 0
396      pv         6.096422         27.433899         3.048211   0 0 0
397      pv         12.192844         27.433899         3.048211   0 0 0
398      pv         18.289266         27.433899         3.048211   0 0 0
399      pv         24.385688         27.433899         3.048211   0 0 0
400      pv         0         3.048211         9.144633   0 0 0
401      pv         6.096422         3.048211         9.144633   0 0 0
402      pv         12.192844         3.048211         9.144633   0 0 0
403      pv         18.289266         3.048211         9.144633   0 0 0
404      pv         24.385688         3.048211         9.144633   0 0 0
405      pv         0         9.144633         9.144633   0 0 0
406      pv         6.096422         9.144633         9.144633   0 0 0
407      pv         12.192844         9.144633         9.144633   0 0 0
408      pv         18.289266         9.144633         9.144633   0 0 0
409      pv         24.385688         9.144633         9.144633   0 0 0
410      pv         0         15.241055         9.144633   0 0 0
411      pv         6.096422         15.241055         9.144633   0 0 0
412      pv         12.192844         15.241055         9.144633   0 0 0
413      pv         18.289266         15.241055         9.144633   0 0 0
414      pv         24.385688         15.241055         9.144633   0 0 0
415      pv         0         21.337477         9.144633   0 0 0
416      pv         6.096422         21.337477         9.144633   0 0 0
417      pv         12.192844         21.337477         9.144633   0 0 0
418      pv         18.289266         21.337477         9.144633   0 0 0
419      pv         24.385688         21.337477         9.144633   0 0 0
420      pv         0         27.433899         9.144633   0 0 0
421      pv         6.096422         27.433899         9.144633   0 0 0
422      pv         12.192844         27.433899         9.144633   0 0 0
423      pv         18.289266         27.433899         9.144633   0 0 0
424      pv         24.385688         27.433899         9.144633   0 0 0
425      pv         0         3.048211         15.241055   0 0 0
426      pv         6.096422         3.048211         15.241055   0 0 0
427      pv         12.192844         3.048211         15.241055   0 0 0
428      pv         18.289266         3.048211         15.241055   0 0 0
429      pv         24.385688         3.048211         15.241055   0 0 0
430      pv         0         9.144633         15.241055   0 0 0
431      pv         6.096422         9.144633         15.241055   0 0 0
432      pv         12.192844         9.144633         15.241055   0 0 0
433      pv         18.289266         9.144633         15.241055   0 0 0
434      pv         24.385688         9.144633         15.241055   0 0 0
435      pv         0         15.241055         15.241055   0 0 0
436      pv         6.096422         15.241055         15.241055   0 0 0
437      pv         12.192844         15.241055         15.241055   0 0 0
438      pv         18.289266         15.241055         15.241055   0 0 0
439      pv         24.385688         15.241055         15.241055   0 0 0
440      pv         0         21.337477         15.241055   0 0 0
441      pv         6.096422         21.337477         15.241055   0 0 0
442      pv         12.192844         21.337477         15.241055   0 0 0
443      pv         18.289266         21.337477         15.241055   0 0 0
444      pv         24.385688         21.337477         15.241055   0 0 0
445      pv         0         27.433899         15.241055   0 0 0
446      pv         6.096422         27.433899         15.241055   0 0 0
447      pv         12.192844         27.433899         15.241055   0 0 0
448      pv         18.289266         27.433899         15.241055   0 0 0
449      pv         24.385688         27.433899         15.241055   0 0 0
450      pv         0         3.048211         21.337477   0 0 0
451      pv         6.096422          3.048211         21.337477   0 0 0
452      pv         12.192844         3.048211         21.337477   0 0 0
453      pv         18.289266         3.048211         21.337477   0 0 0
454      pv         24.385688         3.048211         21.337477   0 0 0
455      pv         0         9.144633         21.337477   0 0 0
456      pv         6.096422         9.144633         21.337477   0 0 0
457      pv         12.192844         9.144633         21.337477   0 0 0
458      pv         18.289266         9.144633         21.337477   0 0 0
459      pv         24.385688         9.144633         21.337477   0 0 0
460      pv         0         15.241055         21.337477   0 0 0
461      pv         6.096422         15.241055         21.337477   0 0 0
462      pv         12.192844         15.241055         21.337477   0 0 0
463      pv         18.289266         15.241055         21.337477   0 0 0
464      pv         24.385688         15.241055         21.337477   0 0 0
465      pv         0         21.337477         21.337477   0 0 0
466      pv         6.096422         21.337477         21.337477   0 0 0
467      pv         12.192844         21.337477         21.337477   0 0 0
468      pv         18.289266         21.337477         21.337477   0 0 0
469      pv         24.385688         21.337477         21.337477   0 0 0
470      pv         0         27.433899         21.337477   0 0 0
471      pv         6.096422         27.433899         21.337477   0 0 0
472      pv         12.192844         27.433899         21.337477   0 0 0
473      pv         18.289266         27.433899         21.337477   0 0 0
474      pv         24.385688         27.433899         21.337477   0 0 0
475      pv         0         3.048211         27.433899   0 0 0
476      pv         6.096422         3.048211         27.433899   0 0 0
477      pv         12.192844         3.048211         27.433899   0 0 0
478      pv         18.289266         3.048211         27.433899   0 0 0
479      pv         24.385688         3.048211         27.433899   0 0 0
480      pv         0         9.144633         27.433899   0 0 0
481      pv         6.096422         9.144633         27.433899   0 0 0
482      pv         12.192844         9.144633         27.433899   0 0 0
483      pv         18.289266         9.144633         27.433899   0 0 0
484      pv         24.385688         9.144633         27.433899   0 0 0
485      pv         0         15.241055         27.433899   0 0 0
486      pv         6.096422         15.241055         27.433899   0 0 0
487      pv         12.192844         15.241055         27.433899   0 0 0
488      pv         18.289266         15.241055         27.433899   0 0 0
489      pv         24.385688         15.241055         27.433899   0 0 0
490      pv         0         21.337477         27.433899   0 0 0
491      pv         6.096422         21.337477         27.433899   0 0 0
492      pv         12.192844         21.337477         27.433899   0 0 0
493      pv         18.289266         21.337477         27.433899   0 0 0
494      pv         24.385688         21.337477         27.433899   0 0 0
495      pv         0         27.433899         27.433899   0 0 0
496      pv         6.096422         27.433899         27.433899   0 0 0
497      pv         12.192844         27.433899         27.433899   0 0 0
498      pv         18.289266         27.433899         27.433899   0 0 0
499      pv         24.385688         27.433899         27.433899   0 0 0
</StuntDoubles>
</Snapshot>
</OpenMD>