1 |
< |
OOPSE |
1 |
> |
What is OpenMD? |
2 |
|
|
3 |
< |
OOPSE is an open-source Object-Oriented Parallel Simulation Engine. |
4 |
< |
It is primarily used to perform molecular dynamics simulations on |
5 |
< |
"strange" atom types that are not normally handled by other simulation |
6 |
< |
packages. This includes atoms with orientational degrees of freedom |
7 |
< |
(point dipoles, sticky atoms), as well as transition metals under the |
8 |
< |
Embedded Atom Method (EAM). |
3 |
> |
OpenMD is an open source molecular dynamics engine which is capable of |
4 |
> |
efficiently simulating liquids, proteins, nanoparticles, interfaces, |
5 |
> |
and other complex systems using atom types with orientational degrees |
6 |
> |
of freedom (e.g. "sticky" atoms, point dipoles, and coarse-grained |
7 |
> |
assemblies). Proteins, zeolites, lipids, transition metals (bulk, flat |
8 |
> |
interfaces, and nanoparticles) have all been simulated using force |
9 |
> |
fields included with the code. OpenMD works on parallel computers |
10 |
> |
using the Message Passing Interface (MPI), and comes with a number of |
11 |
> |
analysis and utility programs that are easy to use and modify. An |
12 |
> |
OpenMD simulation is specified using a very simple meta-data language |
13 |
> |
that is easy to learn. |
14 |
|
|
15 |
< |
Simulations are started in OOPSE using two files: |
15 |
> |
Simulations are started in OpenMD using a single Molecular Dynamics (.md) |
16 |
> |
file. These files must start with the <OpenMD> tag and must have two |
17 |
> |
sections: |
18 |
|
|
19 |
< |
1) a C-based meta-data (.md) file, and |
19 |
> |
1) a C-based <MetaData> section, and |
20 |
|
|
21 |
< |
2) a modified XYZ format for initial coordinate and velocity information. |
21 |
> |
2) a <Snapshot> block for initial coordinate and velocity information. |
22 |
|
|
23 |
< |
Detailed descriptions of the structures of these two files are |
24 |
< |
available in the "doc" directory. Sample simulations are |
25 |
< |
available in the "samples" directory. |
23 |
> |
Detailed descriptions of the structures of these files are available |
24 |
> |
in the "doc" directory. Sample simulations are available in the |
25 |
> |
"samples" directory. |
26 |
|
|
27 |
< |
What you need to compile and use OOPSE: |
27 |
> |
What you need to compile and use OpenMD: |
28 |
|
|
29 |
< |
1) Good C, C++ and Fortran95 compilers. We've built and tested OOPSE |
30 |
< |
on the following architecture & compiler combinations: |
29 |
> |
1) A good C++ compiler. We've built and tested OpenMD on the |
30 |
> |
following architecture & compiler combinations: |
31 |
|
|
32 |
< |
Architecture CC CXX F90 Notes |
33 |
< |
------------------------- ---- ----- ----- ---------------------- |
34 |
< |
ix86-pc-linux-gnu icc icpc ifort (Intel versions 7 & 8) |
35 |
< |
powerpc-apple-darwin7.4.0 xlc xlc++ xlf (IBM XL v. 6.0/8.1) |
36 |
< |
mips-sgi-irix6.5 cc CC f90 (MIPSpro 7.4) |
37 |
< |
sparc-sun-solaris2.8 cc CC f95 (Forte Developer 7) |
38 |
< |
|
32 |
< |
We've successfully compiled OOPSE with gcc and g++, as well as |
33 |
< |
pgcc and pgCC in linux environments. However, you will need to |
34 |
< |
use a Fortran *95* compler for the fortran side of OOPSE, and |
35 |
< |
pgf90 does not implement the required portions of the f95 |
36 |
< |
language. Fortran77 and Fortran90 (i.e. g77 and pgf90) are *not* |
37 |
< |
sufficient to compile the fortran portions of OOPSE. |
32 |
> |
Architecture CXX Notes |
33 |
> |
------------------------- ---- ---------------------- |
34 |
> |
Mac OS X 10.8 (intel) c++ (Apple clang version 4.1) |
35 |
> |
Mac OS X 10.8 (intel) g++ (GNU version 4.7) |
36 |
> |
Mac OS X 10.8 (intel) icpc (Intel version 12.1) |
37 |
> |
Linux (RHEL 5.9 - x86_64) icpc (Intel version 12.1) |
38 |
> |
Linux (RHEL 5.9 - x86_64) pgCC (Portland Group version 12.3) |
39 |
|
|
40 |
< |
2) The Scalable Parallel Random Number Generators Library (SPRNG). You |
41 |
< |
can obtain SPRNG here: http://sprng.cs.fsu.edu/ |
41 |
< |
SPRNG is a *requirement* for compiling OOPSE. |
40 |
> |
OpenMD uses features in the standard template library (STL). Most |
41 |
> |
(but not all) C++ compilers support these features. |
42 |
|
|
43 |
< |
3) MPI. We like MPICH. Other implementations might work, but we |
44 |
< |
haven't tried. You can get MPICH here: |
45 |
< |
http://www-unix.mcs.anl.gov/mpi/mpich/ |
46 |
< |
MPI is only required if you want a parallel version of OOPSE. |
43 |
> |
2) CMake, a cross-platform build system which is available at |
44 |
> |
http://www.cmake.org Most Linux and some Unix distributions |
45 |
> |
provide CMake as a standard package. If not, please download it, |
46 |
> |
and make sure you get a recent version. Mac OS X users can either |
47 |
> |
download the CMake installer or install it from the command line |
48 |
> |
using macports. |
49 |
|
|
50 |
< |
4) Assorted unix utilities (lexx, yacc, make) or their GNU |
51 |
< |
equivalents. The Gnu version of make is pretty much a requirement on |
52 |
< |
SGI machines. |
53 |
< |
|
50 |
> |
3) An implementation of MPI-2 is optional for the single processor |
51 |
> |
version of OpenMD, but is required if you want OpenMD to run in |
52 |
> |
parallel. We like OpenMPI. Other implementations of MPI-2 might |
53 |
> |
work, but we haven't tried. You can get Open MPI here: |
54 |
> |
http://www.open-mpi.org/ |
55 |
|
|
56 |
+ |
4) Other optional (but quite useful) libraries that will unlock some |
57 |
+ |
features of OpenMD: |
58 |
+ |
|
59 |
+ |
Open Babel: http://openbabel.org |
60 |
+ |
Qhull: http://www.qhull.org |
61 |
+ |
FFTW: http://www.fftw.org |
62 |
+ |
Doxygen: http://www.doxygen.org |
63 |
+ |
|
64 |
+ |
5) Some of the utility scripts depend on Python and Perl. These |
65 |
+ |
interpreters are common installations on most flavors of Unix and |
66 |
+ |
Mac OS X. |
67 |
+ |
|
68 |
|
INSTRUCTIONS |
69 |
|
|
70 |
|
1) Get, build, and test the required pieces above. |
71 |
< |
2) ./configure |
72 |
< |
3) make |
73 |
< |
4) make install |
71 |
> |
2) mkdir build |
72 |
> |
3) cd build |
73 |
> |
4) cmake .. |
74 |
> |
5) make |
75 |
> |
6) sudo make install |
76 |
|
|
77 |
< |
That's it. Documentation will be forthcoming after the paper is |
61 |
< |
published. |
62 |
< |
|
77 |
> |
That's it. |