Merge branch 'master' into USER-DPD_kokkos as of patch 10Aug17
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 7.6 KiB |
|
@ -1,7 +1,7 @@
|
||||||
<!-- HTML_ONLY -->
|
<!-- HTML_ONLY -->
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<TITLE>LAMMPS Users Manual</TITLE>
|
<TITLE>LAMMPS Users Manual</TITLE>
|
||||||
<META NAME="docnumber" CONTENT="24 Jul 2017 version">
|
<META NAME="docnumber" CONTENT="10 Aug 2017 version">
|
||||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||||
</HEAD>
|
</HEAD>
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
<H1></H1>
|
<H1></H1>
|
||||||
|
|
||||||
LAMMPS Documentation :c,h3
|
LAMMPS Documentation :c,h3
|
||||||
24 Jul 2017 version :c,h4
|
10 Aug 2017 version :c,h4
|
||||||
|
|
||||||
Version info: :h4
|
Version info: :h4
|
||||||
|
|
||||||
|
|
|
@ -233,8 +233,8 @@ set any needed options for the package via "-pk" "command-line switch"_Section_s
|
||||||
use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_6 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu
|
use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_6 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu
|
||||||
:tb(c=2,s=|)
|
:tb(c=2,s=|)
|
||||||
|
|
||||||
Note that the first 4 steps can be done as a single command, using the
|
Note that the first 4 steps can be done as a single command with
|
||||||
src/Make.py tool. This tool is discussed in "Section
|
suitable make command invocations. This is discussed in "Section
|
||||||
4"_Section_packages.html of the manual, and its use is
|
4"_Section_packages.html of the manual, and its use is
|
||||||
illustrated in the individual accelerator sections. Typically these
|
illustrated in the individual accelerator sections. Typically these
|
||||||
steps only need to be done once, to create an executable that uses one
|
steps only need to be done once, to create an executable that uses one
|
||||||
|
|
|
@ -49,6 +49,7 @@ Lists of both kinds of directories are given below.
|
||||||
Lowercase directories :h4
|
Lowercase directories :h4
|
||||||
|
|
||||||
accelerate: run with various acceleration options (OpenMP, GPU, Phi)
|
accelerate: run with various acceleration options (OpenMP, GPU, Phi)
|
||||||
|
airebo: polyethylene with AIREBO potential
|
||||||
balance: dynamic load balancing, 2d system
|
balance: dynamic load balancing, 2d system
|
||||||
body: body particles, 2d system
|
body: body particles, 2d system
|
||||||
cmap: CMAP 5-body contributions to CHARMM force field
|
cmap: CMAP 5-body contributions to CHARMM force field
|
||||||
|
|
|
@ -25,6 +25,17 @@ There are two kinds of packages in LAMMPS, standard and user packages:
|
||||||
"Table of standard packages"_#table_standard
|
"Table of standard packages"_#table_standard
|
||||||
"Table of user packages"_#table_user :ul
|
"Table of user packages"_#table_user :ul
|
||||||
|
|
||||||
|
Either of these kinds of packages may work as is, may require some
|
||||||
|
additional code compiled located in the lib folder, or may require
|
||||||
|
an external library to be downloaded, compiled, installed, and LAMMPS
|
||||||
|
configured to know about its location and additional compiler flags.
|
||||||
|
You can often do the build of the internal or external libraries
|
||||||
|
in one step by typing "make lib-name args='...'" from the src dir,
|
||||||
|
with appropriate arguments included in args='...'. If you just type
|
||||||
|
"make lib-name" you should see a help message about supported flags
|
||||||
|
and some examples. For more details about this, please study the
|
||||||
|
tables below and the sections about the individual packages.
|
||||||
|
|
||||||
Standard packages are supported by the LAMMPS developers and are
|
Standard packages are supported by the LAMMPS developers and are
|
||||||
written in a syntax and style consistent with the rest of LAMMPS.
|
written in a syntax and style consistent with the rest of LAMMPS.
|
||||||
This means the developers will answer questions about them, debug and
|
This means the developers will answer questions about them, debug and
|
||||||
|
@ -34,7 +45,9 @@ LAMMPS.
|
||||||
User packages have been contributed by users, and begin with the
|
User packages have been contributed by users, and begin with the
|
||||||
"user" prefix. If they are a single command (single file), they are
|
"user" prefix. If they are a single command (single file), they are
|
||||||
typically in the user-misc package. User packages don't necessarily
|
typically in the user-misc package. User packages don't necessarily
|
||||||
meet the requirements of the standard packages. If you have problems
|
meet the requirements of the standard packages. This means the
|
||||||
|
developers will try to keep things working and usually can answer
|
||||||
|
technical questions about compiling the package. If you have problems
|
||||||
using a feature provided in a user package, you may need to contact
|
using a feature provided in a user package, you may need to contact
|
||||||
the contributor directly to get help. Information on how to submit
|
the contributor directly to get help. Information on how to submit
|
||||||
additions you make to LAMMPS as single files or as a standard or user
|
additions you make to LAMMPS as single files or as a standard or user
|
||||||
|
@ -78,10 +91,10 @@ Package, Description, Doc page, Example, Library
|
||||||
"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys
|
"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys
|
||||||
"CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, -
|
"CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, -
|
||||||
"DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, -
|
"DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, -
|
||||||
"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, WWW bench, int
|
"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int
|
||||||
"GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, -
|
"GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, -
|
||||||
"KIM"_#KIM, openKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
|
"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
|
||||||
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, WWW bench, -
|
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||||
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
|
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
|
||||||
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
|
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
|
||||||
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
|
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
|
||||||
|
@ -90,7 +103,7 @@ Package, Description, Doc page, Example, Library
|
||||||
"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
|
"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
|
||||||
"MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, -
|
"MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, -
|
||||||
"MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext
|
"MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext
|
||||||
"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, WWW bench, -
|
"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||||
"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, -
|
"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, -
|
||||||
"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int
|
"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int
|
||||||
"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys
|
"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys
|
||||||
|
@ -101,8 +114,7 @@ Package, Description, Doc page, Example, Library
|
||||||
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
|
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
|
||||||
"SNAP"_#SNAP, quantum-fitted potential, "pair snap"_pair_snap.html, snap, -
|
"SNAP"_#SNAP, quantum-fitted potential, "pair snap"_pair_snap.html, snap, -
|
||||||
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
|
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
|
||||||
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext
|
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)
|
||||||
:tb(ea=c,ca1=l)
|
|
||||||
|
|
||||||
[USER packages] :link(table_user),p
|
[USER packages] :link(table_user),p
|
||||||
|
|
||||||
|
@ -118,7 +130,7 @@ Package, Description, Doc page, Example, Library
|
||||||
"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, -
|
"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, -
|
||||||
"USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, -
|
"USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, -
|
||||||
"USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext
|
"USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext
|
||||||
"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, WWW bench, -
|
"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||||
"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, -
|
"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, -
|
||||||
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, -
|
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, -
|
||||||
"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
|
"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
|
||||||
|
@ -126,7 +138,7 @@ Package, Description, Doc page, Example, Library
|
||||||
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
|
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
|
||||||
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
|
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
|
||||||
"USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext
|
"USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext
|
||||||
"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, WWW bench, -
|
"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||||
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, -
|
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, -
|
||||||
"USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
|
"USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
|
||||||
"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -
|
"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -
|
||||||
|
@ -136,8 +148,7 @@ Package, Description, Doc page, Example, Library
|
||||||
"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, -
|
"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, -
|
||||||
"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, -
|
"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, -
|
||||||
"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, -
|
"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, -
|
||||||
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext
|
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l)
|
||||||
:tb(ea=c,ca1=l)
|
|
||||||
|
|
||||||
:line
|
:line
|
||||||
:line
|
:line
|
||||||
|
@ -364,9 +375,12 @@ GPU package :link(GPU),h4
|
||||||
[Contents:]
|
[Contents:]
|
||||||
|
|
||||||
Dozens of pair styles and a version of the PPPM long-range Coulombic
|
Dozens of pair styles and a version of the PPPM long-range Coulombic
|
||||||
solver optimized for NVIDIA GPUs. All such styles have a "gpu" as a
|
solver optimized for GPUs. All such styles have a "gpu" as a
|
||||||
suffix in their style name. "Section 5.3.1"_accelerate_gpu.html gives
|
suffix in their style name. The GPU code can be compiled with either
|
||||||
details of what hardware and Cuda software is required on your system,
|
CUDA or OpenCL, however the OpenCL variants are no longer actively
|
||||||
|
maintained and only the CUDA versions are regularly tested.
|
||||||
|
"Section 5.3.1"_accelerate_gpu.html gives details of what
|
||||||
|
hardware and GPU software is required on your system,
|
||||||
and details on how to build and use this package. Its styles can be
|
and details on how to build and use this package. Its styles can be
|
||||||
invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line
|
invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line
|
||||||
switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS
|
switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS
|
||||||
|
@ -378,32 +392,41 @@ package, which has GPU-enabled styles.
|
||||||
[Install or un-install:]
|
[Install or un-install:]
|
||||||
|
|
||||||
Before building LAMMPS with this package, you must first build the GPU
|
Before building LAMMPS with this package, you must first build the GPU
|
||||||
library in lib/gpu from a set of provided C and Cuda files. You can
|
library in lib/gpu from a set of provided C and CUDA files. You can
|
||||||
do this manually if you prefer; follow the instructions in
|
do this manually if you prefer; follow the instructions in
|
||||||
lib/gpu/README. You can also do it in one step from the lammps/src
|
lib/gpu/README. Please note, that the GPU library uses MPI calls, so
|
||||||
|
you have to make certain to use the same MPI library (or the STUBS
|
||||||
|
library) settings as the main LAMMPS code. That same applies to the
|
||||||
|
-DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or -DLAMMPS_SMALLSMALL define.
|
||||||
|
|
||||||
|
You can also do it in one step from the lammps/src
|
||||||
dir, using a command like these, which simply invoke the
|
dir, using a command like these, which simply invoke the
|
||||||
lib/gpu/Install.py script with the specified args:
|
lib/gpu/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-gpu # print help message
|
make lib-gpu # print help message
|
||||||
make lib-gpu args="-m" # build GPU library with default Makefile.linux
|
make lib-gpu args="-b" # build GPU library with default Makefile.linux
|
||||||
make lib-gpu args="-i xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
|
make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
|
||||||
make lib-gpu args="-i xk7 -p single -o xk7.single -m" # ditto, also build GPU library
|
make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi :pre
|
||||||
|
|
||||||
Note that this procedure starts with one of the existing
|
Note that this procedure through the '-m machine' flag starts with one of
|
||||||
Makefile.machine files in lib/gpu. It allows you to alter 4 important
|
the existing Makefile.machine files in lib/gpu. For your convenience,
|
||||||
settings in that Makefile, via the -h, -a, -p, -e switches,
|
machine makefiles for "mpi" and "serial" are provided, which have the
|
||||||
and save the new Makefile, if desired:
|
same settings as the corresponding machine makefiles in the main LAMMPS
|
||||||
|
source folder. In addition you can alter 4 important settings in that
|
||||||
|
Makefile, via the -h, -a, -p, -e switches, and also save a copy of the
|
||||||
|
new Makefile, if desired:
|
||||||
|
|
||||||
CUDA_HOME = where NVIDIA Cuda software is installed on your system
|
CUDA_HOME = where NVIDIA CUDA software is installed on your system
|
||||||
CUDA_ARCH = what GPU hardware you have (see help message for details)
|
CUDA_ARCH = what GPU hardware you have (see help message for details)
|
||||||
CUDA_PRECISION = precision (double, mixed, single)
|
CUDA_PRECISION = precision (double, mixed, single)
|
||||||
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
|
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
|
||||||
|
|
||||||
If the library build is successful, 2 files should be created:
|
If the library build is successful, at least 3 files should be created:
|
||||||
lib/gpu/libgpu.a and lib/gpu/Makefile.lammps. The latter has settings
|
lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps.
|
||||||
that enable LAMMPS to link with Cuda libraries. If the settings in
|
The latter has settings that enable LAMMPS to link with CUDA libraries.
|
||||||
Makefile.lammps for your machine are not correct, the LAMMPS build
|
If the settings in Makefile.lammps for your machine are not correct,
|
||||||
will fail.
|
the LAMMPS build will fail, and lib/gpu/Makefile.lammps may need to
|
||||||
|
be edited.
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
|
@ -499,11 +522,13 @@ in lib/kim/README. You can also do it in one step from the lammps/src
|
||||||
dir, using a command like these, which simply invoke the
|
dir, using a command like these, which simply invoke the
|
||||||
lib/kim/Install.py script with the specified args.
|
lib/kim/Install.py script with the specified args.
|
||||||
|
|
||||||
make lib-kim # print help message
|
make lib-kim # print help message
|
||||||
make lib-kim args="-b . none" # install KIM API lib with only example models
|
make lib-kim args="-b " # (re-)install KIM API lib with only example models
|
||||||
make lib-kim args="-b . Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model
|
make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model
|
||||||
make lib-kim args="-b . OpenKIM" # install KIM API lib with all models
|
make lib-kim args="-b -a everything" # install KIM API lib with all models
|
||||||
make lib-kim args="-a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver :pre
|
make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver
|
||||||
|
make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location
|
||||||
|
make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver :pre
|
||||||
|
|
||||||
Note that in LAMMPS lingo, a KIM model driver is a pair style
|
Note that in LAMMPS lingo, a KIM model driver is a pair style
|
||||||
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
|
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
|
||||||
|
@ -547,7 +572,7 @@ KOKKOS package :link(KOKKOS),h4
|
||||||
|
|
||||||
Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
|
Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
|
||||||
styles adapted to compile using the Kokkos library which can convert
|
styles adapted to compile using the Kokkos library which can convert
|
||||||
them to OpenMP or Cuda code so that they run efficiently on multicore
|
them to OpenMP or CUDA code so that they run efficiently on multicore
|
||||||
CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their
|
CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their
|
||||||
style name. "Section 5.3.3"_accelerate_kokkos.html gives details of
|
style name. "Section 5.3.3"_accelerate_kokkos.html gives details of
|
||||||
what hardware and software is required on your system, and how to
|
what hardware and software is required on your system, and how to
|
||||||
|
@ -577,28 +602,28 @@ files for examples.
|
||||||
For multicore CPUs using OpenMP:
|
For multicore CPUs using OpenMP:
|
||||||
|
|
||||||
KOKKOS_DEVICES = OpenMP
|
KOKKOS_DEVICES = OpenMP
|
||||||
KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc
|
KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc :pre
|
||||||
|
|
||||||
For Intel KNLs using OpenMP:
|
For Intel KNLs using OpenMP:
|
||||||
|
|
||||||
KOKKOS_DEVICES = OpenMP
|
KOKKOS_DEVICES = OpenMP
|
||||||
KOKKOS_ARCH = KNL
|
KOKKOS_ARCH = KNL :pre
|
||||||
|
|
||||||
For NVIDIA GPUs using Cuda:
|
For NVIDIA GPUs using CUDA:
|
||||||
|
|
||||||
KOKKOS_DEVICES = Cuda
|
KOKKOS_DEVICES = Cuda
|
||||||
KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc
|
KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc
|
||||||
KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc
|
KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc :pre
|
||||||
|
|
||||||
For GPUs, you also need these 2 lines in your Makefile.machine before
|
For GPUs, you also need these 2 lines in your Makefile.machine before
|
||||||
the CC line is defined, in this case for use with OpenMPI mpicxx. The
|
the CC line is defined, in this case for use with OpenMPI mpicxx. The
|
||||||
2 lines define a nvcc wrapper compiler, which will use nvcc for
|
2 lines define a nvcc wrapper compiler, which will use nvcc for
|
||||||
compiling Cuda files or use a C++ compiler for non-Kokkos, non-Cuda
|
compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA
|
||||||
files.
|
files.
|
||||||
|
|
||||||
KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
|
KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
|
||||||
export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
|
export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
|
||||||
CC = mpicxx
|
CC = mpicxx :pre
|
||||||
|
|
||||||
Once you have an appropriate Makefile.machine, you can
|
Once you have an appropriate Makefile.machine, you can
|
||||||
install/un-install the package and build LAMMPS in the usual manner.
|
install/un-install the package and build LAMMPS in the usual manner.
|
||||||
|
@ -734,6 +759,12 @@ MEAM package :link(MEAM),h4
|
||||||
|
|
||||||
A pair style for the modified embedded atom (MEAM) potential.
|
A pair style for the modified embedded atom (MEAM) potential.
|
||||||
|
|
||||||
|
Please note that the MEAM package has been superseded by the
|
||||||
|
"USER-MEAMC"_#USER-MEAMC package, which is a direct translation
|
||||||
|
of the MEAM package to C++. USER-MEAMC contains additional
|
||||||
|
optimizations making it run faster than MEAM on most machines,
|
||||||
|
while providing the identical features and USER interface.
|
||||||
|
|
||||||
[Author:] Greg Wagner (Northwestern U) while at Sandia.
|
[Author:] Greg Wagner (Northwestern U) while at Sandia.
|
||||||
|
|
||||||
[Install or un-install:]
|
[Install or un-install:]
|
||||||
|
@ -744,9 +775,10 @@ follow the instructions in lib/meam/README. You can also do it in one
|
||||||
step from the lammps/src dir, using a command like these, which simply
|
step from the lammps/src dir, using a command like these, which simply
|
||||||
invoke the lib/meam/Install.py script with the specified args:
|
invoke the lib/meam/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-meam # print help message
|
make lib-meam # print help message
|
||||||
make lib-meam args="-m gfortran" # build with GNU Fortran compiler
|
make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library
|
||||||
make lib-meam args="-m ifort" # build with Intel ifort compiler :pre
|
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
|
||||||
|
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
|
||||||
|
|
||||||
The build should produce two files: lib/meam/libmeam.a and
|
The build should produce two files: lib/meam/libmeam.a and
|
||||||
lib/meam/Makefile.lammps. The latter is copied from an existing
|
lib/meam/Makefile.lammps. The latter is copied from an existing
|
||||||
|
@ -789,6 +821,9 @@ A variety of compute, fix, pair, dump styles with specialized
|
||||||
capabilities that don't align with other packages. Do a directory
|
capabilities that don't align with other packages. Do a directory
|
||||||
listing, "ls src/MISC", to see the list of commands.
|
listing, "ls src/MISC", to see the list of commands.
|
||||||
|
|
||||||
|
NOTE: the MISC package contains styles that require using the
|
||||||
|
-restrict flag, when compiling with Intel compilers.
|
||||||
|
|
||||||
[Install or un-install:]
|
[Install or un-install:]
|
||||||
|
|
||||||
make yes-misc
|
make yes-misc
|
||||||
|
@ -902,9 +937,9 @@ University of Chicago.
|
||||||
|
|
||||||
Before building LAMMPS with this package, you must first download and
|
Before building LAMMPS with this package, you must first download and
|
||||||
build the MS-CG library. Building the MS-CG library and using it from
|
build the MS-CG library. Building the MS-CG library and using it from
|
||||||
LAMMPS requires a C++11 compatible compiler, and that LAPACK and GSL
|
LAMMPS requires a C++11 compatible compiler and that the GSL
|
||||||
(GNU Scientific Library) libraries be installed on your machine. See
|
(GNU Scientific Library) headers and libraries are installed on your
|
||||||
the lib/mscg/README and MSCG/Install files for more details.
|
machine. See the lib/mscg/README and MSCG/Install files for more details.
|
||||||
|
|
||||||
Assuming these libraries are in place, you can do the download and
|
Assuming these libraries are in place, you can do the download and
|
||||||
build of MS-CG manually if you prefer; follow the instructions in
|
build of MS-CG manually if you prefer; follow the instructions in
|
||||||
|
@ -912,15 +947,16 @@ lib/mscg/README. You can also do it in one step from the lammps/src
|
||||||
dir, using a command like these, which simply invoke the
|
dir, using a command like these, which simply invoke the
|
||||||
lib/mscg/Install.py script with the specified args:
|
lib/mscg/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-mscg # print help message
|
make lib-mscg # print help message
|
||||||
make lib-mscg args="-g -b -l" # download and build in default lib/mscg/MSCG-release-master
|
make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master
|
||||||
make lib-mscg args="-h . MSCG -g -b -l" # download and build in lib/mscg/MSCG
|
# with the settings compatible with "make serial"
|
||||||
make lib-mscg args="-h ~ MSCG -g -b -l" # download and build in ~/mscg :pre
|
make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master
|
||||||
|
# with the settings compatible with "make mpi"
|
||||||
|
make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release :pre
|
||||||
|
|
||||||
Note that the final -l switch is to create 2 symbolic (soft) links,
|
Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg
|
||||||
"includelink" and "liblink", in lib/mscg to point to the MS-CG src
|
to point to the MS-CG src/installation dir. When LAMMPS is built in src it will use these links.
|
||||||
dir. When LAMMPS builds it will use these links. You should not need
|
You should not need to edit the lib/mscg/Makefile.lammps file.
|
||||||
to edit the lib/mscg/Makefile.lammps file.
|
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
|
@ -966,11 +1002,11 @@ make no-opt
|
||||||
make machine :pre
|
make machine :pre
|
||||||
|
|
||||||
NOTE: The compile flag "-restrict" must be used to build LAMMPS with
|
NOTE: The compile flag "-restrict" must be used to build LAMMPS with
|
||||||
the OPT package. It should be added to the CCFLAGS line of your
|
the OPT package when using Intel compilers. It should be added to
|
||||||
Makefile.machine. See Makefile.opt in src/MAKE/OPTIONS for an
|
the CCFLAGS line of your Makefile.machine. See Makefile.opt in
|
||||||
example.
|
src/MAKE/OPTIONS for an example.
|
||||||
|
|
||||||
CCFLAGS: add -restrict :ul
|
CCFLAGS: add -restrict for Intel compilers :ul
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
|
|
||||||
|
@ -1039,9 +1075,10 @@ follow the instructions in lib/poems/README. You can also do it in
|
||||||
one step from the lammps/src dir, using a command like these, which
|
one step from the lammps/src dir, using a command like these, which
|
||||||
simply invoke the lib/poems/Install.py script with the specified args:
|
simply invoke the lib/poems/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-poems # print help message
|
make lib-poems # print help message
|
||||||
make lib-poems args="-m g++" # build with GNU g++ compiler
|
make lib-poems args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
|
||||||
make lib-poems args="-m icc" # build with Intel icc compiler :pre
|
make lib-poems args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
|
||||||
|
make lib-poems args="-m icc" # build with Intel icc compiler :pre
|
||||||
|
|
||||||
The build should produce two files: lib/poems/libpoems.a and
|
The build should produce two files: lib/poems/libpoems.a and
|
||||||
lib/poems/Makefile.lammps. The latter is copied from an existing
|
lib/poems/Makefile.lammps. The latter is copied from an existing
|
||||||
|
@ -1151,9 +1188,10 @@ follow the instructions in lib/reax/README. You can also do it in one
|
||||||
step from the lammps/src dir, using a command like these, which simply
|
step from the lammps/src dir, using a command like these, which simply
|
||||||
invoke the lib/reax/Install.py script with the specified args:
|
invoke the lib/reax/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-reax # print help message
|
make lib-reax # print help message
|
||||||
make lib-reax args="-m gfortran" # build with GNU Fortran compiler
|
make lib-reax args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
|
||||||
make lib-reax args="-m ifort" # build with Intel ifort compiler :pre
|
make lib-reax args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
||||||
|
make lib-reax args="-m ifort" # build with Intel ifort compiler :pre
|
||||||
|
|
||||||
The build should produce two files: lib/reax/libreax.a and
|
The build should produce two files: lib/reax/libreax.a and
|
||||||
lib/reax/Makefile.lammps. The latter is copied from an existing
|
lib/reax/Makefile.lammps. The latter is copied from an existing
|
||||||
|
@ -1370,15 +1408,15 @@ one step from the lammps/src dir, using a command like these, which
|
||||||
simply invoke the lib/voronoi/Install.py script with the specified
|
simply invoke the lib/voronoi/Install.py script with the specified
|
||||||
args:
|
args:
|
||||||
|
|
||||||
make lib-voronoi # print help message
|
make lib-voronoi # print help message
|
||||||
make lib-voronoi args="-g -b -l" # download and build in default lib/voronoi/voro++-0.4.6
|
make lib-voronoi args="-b" # download and build the default version in lib/voronoi/voro++-<version>
|
||||||
make lib-voronoi args="-h . voro++ -g -b -l" # download and build in lib/voronoi/voro++
|
make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++
|
||||||
make lib-voronoi args="-h ~ voro++ -g -b -l" # download and build in ~/voro++ :pre
|
make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6 :pre
|
||||||
|
|
||||||
Note that the final -l switch is to create 2 symbolic (soft) links,
|
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
|
||||||
"includelink" and "liblink", in lib/voronoi to point to the Voro++ src
|
created in lib/voronoi to point to the Voro++ src dir. When LAMMPS
|
||||||
dir. When LAMMPS builds it will use these links. You should not need
|
builds in src it will use these links. You should not need to edit
|
||||||
to edit the lib/voronoi/Makefile.lammps file.
|
the lib/voronoi/Makefile.lammps file.
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
|
@ -1420,7 +1458,8 @@ from the lammps/src dir, using a command like these, which simply
|
||||||
invoke the lib/atc/Install.py script with the specified args:
|
invoke the lib/atc/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-atc # print help message
|
make lib-atc # print help message
|
||||||
make lib-atc args="-m g++" # build with GNU g++ compiler
|
make lib-atc args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
|
||||||
|
make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
|
||||||
make lib-atc args="-m icc" # build with Intel icc compiler :pre
|
make lib-atc args="-m icc" # build with Intel icc compiler :pre
|
||||||
|
|
||||||
The build should produce two files: lib/atc/libatc.a and
|
The build should produce two files: lib/atc/libatc.a and
|
||||||
|
@ -1437,8 +1476,10 @@ can either exist on your system, or you can use the files provided in
|
||||||
lib/linalg. In the latter case you also need to build the library
|
lib/linalg. In the latter case you also need to build the library
|
||||||
in lib/linalg with a command like these:
|
in lib/linalg with a command like these:
|
||||||
|
|
||||||
make lib-linalg # print help message
|
make lib-linalg # print help message
|
||||||
make lib-atc args="-m gfortran" # build with GNU Fortran compiler
|
make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
|
||||||
|
make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
||||||
|
make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
|
@ -1478,9 +1519,10 @@ follow the instructions in lib/awpmd/README. You can also do it in
|
||||||
one step from the lammps/src dir, using a command like these, which
|
one step from the lammps/src dir, using a command like these, which
|
||||||
simply invoke the lib/awpmd/Install.py script with the specified args:
|
simply invoke the lib/awpmd/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-awpmd # print help message
|
make lib-awpmd # print help message
|
||||||
make lib-awpmd args="-m g++" # build with GNU g++ compiler
|
make lib-awpmd args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
|
||||||
make lib-awpmd args="-m icc" # build with Intel icc compiler :pre
|
make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
|
||||||
|
make lib-awpmd args="-m icc" # build with Intel icc compiler :pre
|
||||||
|
|
||||||
The build should produce two files: lib/awpmd/libawpmd.a and
|
The build should produce two files: lib/awpmd/libawpmd.a and
|
||||||
lib/awpmd/Makefile.lammps. The latter is copied from an existing
|
lib/awpmd/Makefile.lammps. The latter is copied from an existing
|
||||||
|
@ -1496,8 +1538,10 @@ these can either exist on your system, or you can use the files
|
||||||
provided in lib/linalg. In the latter case you also need to build the
|
provided in lib/linalg. In the latter case you also need to build the
|
||||||
library in lib/linalg with a command like these:
|
library in lib/linalg with a command like these:
|
||||||
|
|
||||||
make lib-linalg # print help message
|
make lib-linalg # print help message
|
||||||
make lib-atc args="-m gfortran" # build with GNU Fortran compiler
|
make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
|
||||||
|
make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
||||||
|
make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
|
@ -1590,9 +1634,11 @@ Restraints. A "fix colvars"_fix_colvars.html command is implemented
|
||||||
which wraps a COLVARS library, which implements these methods.
|
which wraps a COLVARS library, which implements these methods.
|
||||||
simulations.
|
simulations.
|
||||||
|
|
||||||
[Authors:] Axel Kohlmeyer (Temple U). The COLVARS library was written
|
[Authors:] The COLVARS library is written and maintained by
|
||||||
by Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA) and
|
Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA)
|
||||||
Jerome Henin (LISM, CNRS, Marseille, France).
|
and Jerome Henin (LISM, CNRS, Marseille, France), originally for
|
||||||
|
the NAMD MD code, but with portability in mind. Axel Kohlmeyer
|
||||||
|
(Temple U) provided the interface to LAMMPS.
|
||||||
|
|
||||||
[Install or un-install:]
|
[Install or un-install:]
|
||||||
|
|
||||||
|
@ -1604,7 +1650,9 @@ which simply invoke the lib/colvars/Install.py script with the
|
||||||
specified args:
|
specified args:
|
||||||
|
|
||||||
make lib-colvars # print help message
|
make lib-colvars # print help message
|
||||||
make lib-colvars args="-m g++" # build with GNU g++ compiler :pre
|
make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
|
||||||
|
make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
|
||||||
|
make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled :pre
|
||||||
|
|
||||||
The build should produce two files: lib/colvars/libcolvars.a and
|
The build should produce two files: lib/colvars/libcolvars.a and
|
||||||
lib/colvars/Makefile.lammps. The latter is copied from an existing
|
lib/colvars/Makefile.lammps. The latter is copied from an existing
|
||||||
|
@ -1892,7 +1940,12 @@ Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP
|
||||||
packages, which have styles optimized for CPUs and KNLs.
|
packages, which have styles optimized for CPUs and KNLs.
|
||||||
|
|
||||||
You need to have an Intel compiler, version 14 or higher to take full
|
You need to have an Intel compiler, version 14 or higher to take full
|
||||||
advantage of this package.
|
advantage of this package. While compilation with GNU compilers is
|
||||||
|
supported, performance will be suboptimal.
|
||||||
|
|
||||||
|
NOTE: the USER-INTEL package contains styles that require using the
|
||||||
|
-restrict flag, when compiling with Intel compilers.
|
||||||
|
|
||||||
|
|
||||||
[Author:] Mike Brown (Intel).
|
[Author:] Mike Brown (Intel).
|
||||||
|
|
||||||
|
@ -1909,17 +1962,17 @@ For CPUs:
|
||||||
|
|
||||||
OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
||||||
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
||||||
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
||||||
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
||||||
LIB = -ltbbmalloc -ltbbmalloc_proxy
|
LIB = -ltbbmalloc -ltbbmalloc_proxy :pre
|
||||||
|
|
||||||
For KNLs:
|
For KNLs:
|
||||||
|
|
||||||
OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
||||||
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
||||||
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
||||||
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
||||||
LIB = -ltbbmalloc
|
LIB = -ltbbmalloc :pre
|
||||||
|
|
||||||
Once you have an appropriate Makefile.machine, you can
|
Once you have an appropriate Makefile.machine, you can
|
||||||
install/un-install the package and build LAMMPS in the usual manner.
|
install/un-install the package and build LAMMPS in the usual manner.
|
||||||
|
@ -2224,11 +2277,15 @@ CPUs.
|
||||||
|
|
||||||
[Author:] Axel Kohlmeyer (Temple U).
|
[Author:] Axel Kohlmeyer (Temple U).
|
||||||
|
|
||||||
NOTE: The compile flags "-restrict" and "-fopenmp" must be used to
|
NOTE: To enable multi-threading support the compile flag "-fopenmp"
|
||||||
build LAMMPS with the USER-OMP package, as well as the link flag
|
and the link flag "-fopenmp" (for GNU compilers, you have to look up
|
||||||
"-fopenmp". They should be added to the CCFLAGS and LINKFLAGS lines
|
the equivalent flags for other compilers) must be used to build LAMMPS.
|
||||||
of your Makefile.machine. See src/MAKE/OPTIONS/Makefile.omp for an
|
When using Intel compilers, also the "-restrict" flag is required.
|
||||||
example.
|
The USER-OMP package can be compiled without enabling OpenMP; then
|
||||||
|
all code will be compiled as serial and the only improvement over the
|
||||||
|
regular styles are some data access optimization. These flags should
|
||||||
|
be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine.
|
||||||
|
See src/MAKE/OPTIONS/Makefile.omp for an example.
|
||||||
|
|
||||||
Once you have an appropriate Makefile.machine, you can
|
Once you have an appropriate Makefile.machine, you can
|
||||||
install/un-install the package and build LAMMPS in the usual manner:
|
install/un-install the package and build LAMMPS in the usual manner:
|
||||||
|
@ -2241,7 +2298,7 @@ make machine :pre
|
||||||
make no-user-omp
|
make no-user-omp
|
||||||
make machine :pre
|
make machine :pre
|
||||||
|
|
||||||
CCFLAGS: add -fopenmp and -restrict
|
CCFLAGS: add -fopenmp (and -restrict when using Intel compilers)
|
||||||
LINKFLAGS: add -fopenmp :ul
|
LINKFLAGS: add -fopenmp :ul
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
|
@ -2310,12 +2367,14 @@ without changes to LAMMPS itself.
|
||||||
|
|
||||||
Before building LAMMPS with this package, you must first build the
|
Before building LAMMPS with this package, you must first build the
|
||||||
QMMM library in lib/qmmm. You can do this manually if you prefer;
|
QMMM library in lib/qmmm. You can do this manually if you prefer;
|
||||||
follow the first two steps explained in lib/colvars/README. You can
|
follow the first two steps explained in lib/qmmm/README. You can
|
||||||
also do it in one step from the lammps/src dir, using a command like
|
also do it in one step from the lammps/src dir, using a command like
|
||||||
these, which simply invoke the lib/colvars/Install.py script with the
|
these, which simply invoke the lib/qmmm/Install.py script with the
|
||||||
specified args:
|
specified args:
|
||||||
|
|
||||||
make lib-qmmm # print help message
|
make lib-qmmm # print help message
|
||||||
|
make lib-qmmm args="-m serial" # build with GNU Fortran compiler (settings as in "make serial")
|
||||||
|
make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi")
|
||||||
make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre
|
make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre
|
||||||
|
|
||||||
The build should produce two files: lib/qmmm/libqmmm.a and
|
The build should produce two files: lib/qmmm/libqmmm.a and
|
||||||
|
@ -2492,15 +2551,13 @@ follow the instructions in lib/smd/README. You can also do it in one
|
||||||
step from the lammps/src dir, using a command like these, which simply
|
step from the lammps/src dir, using a command like these, which simply
|
||||||
invoke the lib/smd/Install.py script with the specified args:
|
invoke the lib/smd/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-smd # print help message
|
make lib-smd # print help message
|
||||||
make lib-smd args="-g -l" # download in default lib/smd/eigen-eigen-*
|
make lib-smd args="-b" # download and build in default lib/smd/eigen-eigen-...
|
||||||
make lib-smd args="-h . eigen -g -l" # download in lib/smd/eigen
|
make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3 :pre
|
||||||
make lib-smd args="-h ~ eigen -g -l" # download and build in ~/eigen :pre
|
|
||||||
|
|
||||||
Note that the final -l switch is to create a symbolic (soft) link
|
Note that a symbolic (soft) link named "includelink" is created in
|
||||||
named "includelink" in lib/smd to point to the Eigen dir. When LAMMPS
|
lib/smd to point to the Eigen dir. When LAMMPS builds it will use
|
||||||
builds it will use this link. You should not need to edit the
|
this link. You should not need to edit the lib/smd/Makefile.lammps file.
|
||||||
lib/smd/Makefile.lammps file.
|
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
|
|
|
@ -587,8 +587,7 @@ Typing "make clean-all" or "make clean-machine" will delete *.o object
|
||||||
files created when LAMMPS is built, for either all builds or for a
|
files created when LAMMPS is built, for either all builds or for a
|
||||||
particular machine.
|
particular machine.
|
||||||
|
|
||||||
Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or
|
Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
|
||||||
-DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
|
|
||||||
|
|
||||||
As explained above, any of these 3 settings can be specified on the
|
As explained above, any of these 3 settings can be specified on the
|
||||||
LMP_INC line in your low-level src/MAKE/Makefile.foo.
|
LMP_INC line in your low-level src/MAKE/Makefile.foo.
|
||||||
|
@ -659,7 +658,16 @@ utilities.
|
||||||
For Cygwin and the MinGW cross-compilers, suitable makefiles are
|
For Cygwin and the MinGW cross-compilers, suitable makefiles are
|
||||||
provided in src/MAKE/MACHINES. When using other compilers, like
|
provided in src/MAKE/MACHINES. When using other compilers, like
|
||||||
Visual C++ or Intel compilers for Windows, you may have to implement
|
Visual C++ or Intel compilers for Windows, you may have to implement
|
||||||
your own build system. Since none of the current LAMMPS core developers
|
your own build system. Due to differences between the Windows OS
|
||||||
|
and Windows system libraries to Unix-like environments like Linux
|
||||||
|
or MacOS, when compiling for Windows a few adjustments may be needed:
|
||||||
|
|
||||||
|
Do not set the -DLAMMPS_MEMALIGN define (see LMP_INC makefile variable)
|
||||||
|
Add -lwsock32 -lpsapi to the linker flags (see LIB makefile variable)
|
||||||
|
Try adding -static-libgcc or -static or both to the linker flags when your
|
||||||
|
LAMMPS executable complains about missing .dll files :ul
|
||||||
|
|
||||||
|
Since none of the current LAMMPS core developers
|
||||||
has significant experience building executables on Windows, we are
|
has significant experience building executables on Windows, we are
|
||||||
happy to distribute contributed instructions and modifications, but
|
happy to distribute contributed instructions and modifications, but
|
||||||
we cannot provide support for those.
|
we cannot provide support for those.
|
||||||
|
@ -909,7 +917,7 @@ src/MAKE/OPTIONS, which include the settings. Note that the
|
||||||
USER-INTEL and KOKKOS packages can use settings that build LAMMPS for
|
USER-INTEL and KOKKOS packages can use settings that build LAMMPS for
|
||||||
different hardware. The USER-INTEL package can be compiled for Intel
|
different hardware. The USER-INTEL package can be compiled for Intel
|
||||||
CPUs and KNLs; the KOKKOS package builds for CPUs (OpenMP), GPUs
|
CPUs and KNLs; the KOKKOS package builds for CPUs (OpenMP), GPUs
|
||||||
(Cuda), and Intel KNLs.
|
(CUDA), and Intel KNLs.
|
||||||
|
|
||||||
Makefile.intel_cpu
|
Makefile.intel_cpu
|
||||||
Makefile.intel_phi
|
Makefile.intel_phi
|
||||||
|
|
|
@ -62,7 +62,7 @@ respectively to your input script.
|
||||||
[Required hardware/software:]
|
[Required hardware/software:]
|
||||||
|
|
||||||
To use this package, you currently need to have an NVIDIA GPU and
|
To use this package, you currently need to have an NVIDIA GPU and
|
||||||
install the NVIDIA Cuda software on your system:
|
install the NVIDIA CUDA software on your system:
|
||||||
|
|
||||||
Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/0/information
|
Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/0/information
|
||||||
Go to http://www.nvidia.com/object/cuda_get.html
|
Go to http://www.nvidia.com/object/cuda_get.html
|
||||||
|
@ -74,13 +74,8 @@ Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) t
|
||||||
This requires two steps (a,b): build the GPU library, then build
|
This requires two steps (a,b): build the GPU library, then build
|
||||||
LAMMPS with the GPU package.
|
LAMMPS with the GPU package.
|
||||||
|
|
||||||
You can do both these steps in one line, using the src/Make.py script,
|
You can do both these steps in one line as described in
|
||||||
described in "Section 4"_Section_packages.html of the manual.
|
"Section 4"_Section_packages.html of the manual.
|
||||||
Type "Make.py -h" for help. If run from the src directory, this
|
|
||||||
command will create src/lmp_gpu using src/MAKE/Makefile.mpi as the
|
|
||||||
starting Makefile.machine:
|
|
||||||
|
|
||||||
Make.py -p gpu -gpu mode=single arch=31 -o gpu -a lib-gpu file mpi :pre
|
|
||||||
|
|
||||||
Or you can follow these two (a,b) steps:
|
Or you can follow these two (a,b) steps:
|
||||||
|
|
||||||
|
@ -90,7 +85,7 @@ The GPU library is in lammps/lib/gpu. Select a Makefile.machine (in
|
||||||
lib/gpu) appropriate for your system. You should pay special
|
lib/gpu) appropriate for your system. You should pay special
|
||||||
attention to 3 settings in this makefile.
|
attention to 3 settings in this makefile.
|
||||||
|
|
||||||
CUDA_HOME = needs to be where NVIDIA Cuda software is installed on your system
|
CUDA_HOME = needs to be where NVIDIA CUDA software is installed on your system
|
||||||
CUDA_ARCH = needs to be appropriate to your GPUs
|
CUDA_ARCH = needs to be appropriate to your GPUs
|
||||||
CUDA_PREC = precision (double, mixed, single) you desire :ul
|
CUDA_PREC = precision (double, mixed, single) you desire :ul
|
||||||
|
|
||||||
|
|
|
@ -225,11 +225,9 @@ source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh
|
||||||
# or psxevars.csh for C-shell
|
# or psxevars.csh for C-shell
|
||||||
make intel_cpu_intelmpi :pre
|
make intel_cpu_intelmpi :pre
|
||||||
|
|
||||||
Alternatively, the build can be accomplished with the src/Make.py
|
Alternatively this can be done as a single command with
|
||||||
script, described in "Section 4"_Section_packages.html of the
|
suitable make command invocations. This is discussed in "Section
|
||||||
manual. Type "Make.py -h" for help. For an example:
|
4"_Section_packages.html of the manual.
|
||||||
|
|
||||||
Make.py -v -p intel omp -intel cpu -a file intel_cpu_intelmpi :pre
|
|
||||||
|
|
||||||
Note that if you build with support for a Phi coprocessor, the same
|
Note that if you build with support for a Phi coprocessor, the same
|
||||||
binary can be used on nodes with or without coprocessors installed.
|
binary can be used on nodes with or without coprocessors installed.
|
||||||
|
@ -244,8 +242,7 @@ highly recommended for CCFLAGS and LINKFLAGS. LIB should include
|
||||||
is required for CCFLAGS and "-qoffload" is required for LINKFLAGS.
|
is required for CCFLAGS and "-qoffload" is required for LINKFLAGS.
|
||||||
Other recommended CCFLAG options for best performance are
|
Other recommended CCFLAG options for best performance are
|
||||||
"-O2 -fno-alias -ansi-alias -qoverride-limits fp-model fast=2
|
"-O2 -fno-alias -ansi-alias -qoverride-limits fp-model fast=2
|
||||||
-no-prec-div". The Make.py command will add all of these
|
-no-prec-div".
|
||||||
automatically.
|
|
||||||
|
|
||||||
NOTE: The vectorization and math capabilities can differ depending on
|
NOTE: The vectorization and math capabilities can differ depending on
|
||||||
the CPU. For Intel compilers, the "-x" flag specifies the type of
|
the CPU. For Intel compilers, the "-x" flag specifies the type of
|
||||||
|
|
|
@ -60,8 +60,7 @@ More details follow.
|
||||||
use a C++11 compatible compiler
|
use a C++11 compatible compiler
|
||||||
make yes-kokkos
|
make yes-kokkos
|
||||||
make mpi KOKKOS_DEVICES=OpenMP # build with the KOKKOS package
|
make mpi KOKKOS_DEVICES=OpenMP # build with the KOKKOS package
|
||||||
make kokkos_omp # or Makefile.kokkos_omp already has variable set
|
make kokkos_omp # or Makefile.kokkos_omp already has variable set :pre
|
||||||
Make.py -v -p kokkos -kokkos omp -o mpi -a file mpi # or one-line build via Make.py :pre
|
|
||||||
|
|
||||||
mpirun -np 16 lmp_mpi -k on -sf kk -in in.lj # 1 node, 16 MPI tasks/node, no threads
|
mpirun -np 16 lmp_mpi -k on -sf kk -in in.lj # 1 node, 16 MPI tasks/node, no threads
|
||||||
mpirun -np 2 -ppn 1 lmp_mpi -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI task/node, 16 threads/task
|
mpirun -np 2 -ppn 1 lmp_mpi -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI task/node, 16 threads/task
|
||||||
|
@ -82,8 +81,7 @@ use a C++11 compatible compiler
|
||||||
KOKKOS_DEVICES = Cuda, OpenMP
|
KOKKOS_DEVICES = Cuda, OpenMP
|
||||||
KOKKOS_ARCH = Kepler35
|
KOKKOS_ARCH = Kepler35
|
||||||
make yes-kokkos
|
make yes-kokkos
|
||||||
make machine
|
make machine :pre
|
||||||
Make.py -p kokkos -kokkos cuda arch=31 -o kokkos_cuda -a file kokkos_cuda :pre
|
|
||||||
|
|
||||||
mpirun -np 1 lmp_cuda -k on t 6 -sf kk -in in.lj # one MPI task, 6 threads on CPU
|
mpirun -np 1 lmp_cuda -k on t 6 -sf kk -in in.lj # one MPI task, 6 threads on CPU
|
||||||
mpirun -np 4 -ppn 1 lmp_cuda -k on t 6 -sf kk -in in.lj # ditto on 4 nodes :pre
|
mpirun -np 4 -ppn 1 lmp_cuda -k on t 6 -sf kk -in in.lj # ditto on 4 nodes :pre
|
||||||
|
@ -98,8 +96,7 @@ use a C++11 compatible compiler
|
||||||
KOKKOS_DEVICES = OpenMP
|
KOKKOS_DEVICES = OpenMP
|
||||||
KOKKOS_ARCH = KNC
|
KOKKOS_ARCH = KNC
|
||||||
make yes-kokkos
|
make yes-kokkos
|
||||||
make machine
|
make machine :pre
|
||||||
Make.py -p kokkos -kokkos phi -o kokkos_phi -a file mpi :pre
|
|
||||||
|
|
||||||
host=MIC, Intel Phi with 61 cores (240 threads/phi via 4x hardware threading):
|
host=MIC, Intel Phi with 61 cores (240 threads/phi via 4x hardware threading):
|
||||||
mpirun -np 1 lmp_g++ -k on t 240 -sf kk -in in.lj # 1 MPI task on 1 Phi, 1*240 = 240
|
mpirun -np 1 lmp_g++ -k on t 240 -sf kk -in in.lj # 1 MPI task on 1 Phi, 1*240 = 240
|
||||||
|
@ -116,7 +113,7 @@ To build with Kokkos support for CPUs, your compiler must support the
|
||||||
OpenMP interface. You should have one or more multi-core CPUs so that
|
OpenMP interface. You should have one or more multi-core CPUs so that
|
||||||
multiple threads can be launched by each MPI task running on a CPU.
|
multiple threads can be launched by each MPI task running on a CPU.
|
||||||
|
|
||||||
To build with Kokkos support for NVIDIA GPUs, NVIDIA Cuda software
|
To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA software
|
||||||
version 7.5 or later must be installed on your system. See the
|
version 7.5 or later must be installed on your system. See the
|
||||||
discussion for the "GPU"_accelerate_gpu.html package for details of
|
discussion for the "GPU"_accelerate_gpu.html package for details of
|
||||||
how to check and do this.
|
how to check and do this.
|
||||||
|
@ -135,9 +132,9 @@ mode like the USER-INTEL package supports.
|
||||||
You must choose at build time whether to build for CPUs (OpenMP),
|
You must choose at build time whether to build for CPUs (OpenMP),
|
||||||
GPUs, or Phi.
|
GPUs, or Phi.
|
||||||
|
|
||||||
You can do any of these in one line, using the src/Make.py script,
|
You can do any of these in one line, using the suitable make command
|
||||||
described in "Section 4"_Section_packages.html of the manual.
|
line flags as described in "Section 4"_Section_packages.html of the
|
||||||
Type "Make.py -h" for help. If run from the src directory, these
|
manual. If run from the src directory, these
|
||||||
commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda, and
|
commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda, and
|
||||||
lmp_kokkos_phi. Note that the OMP and PHI options use
|
lmp_kokkos_phi. Note that the OMP and PHI options use
|
||||||
src/MAKE/Makefile.mpi as the starting Makefile.machine. The CUDA
|
src/MAKE/Makefile.mpi as the starting Makefile.machine. The CUDA
|
||||||
|
|
|
@ -23,8 +23,7 @@ one or more 16-core nodes. More details follow.
|
||||||
use -fopenmp with CCFLAGS and LINKFLAGS in Makefile.machine
|
use -fopenmp with CCFLAGS and LINKFLAGS in Makefile.machine
|
||||||
make yes-user-omp
|
make yes-user-omp
|
||||||
make mpi # build with USER-OMP package, if settings added to Makefile.mpi
|
make mpi # build with USER-OMP package, if settings added to Makefile.mpi
|
||||||
make omp # or Makefile.omp already has settings
|
make omp # or Makefile.omp already has settings :pre
|
||||||
Make.py -v -p omp -o mpi -a file mpi # or one-line build via Make.py :pre
|
|
||||||
|
|
||||||
lmp_mpi -sf omp -pk omp 16 < in.script # 1 MPI task, 16 threads
|
lmp_mpi -sf omp -pk omp 16 < in.script # 1 MPI task, 16 threads
|
||||||
mpirun -np 4 lmp_mpi -sf omp -pk omp 4 -in in.script # 4 MPI tasks, 4 threads/task
|
mpirun -np 4 lmp_mpi -sf omp -pk omp 4 -in in.script # 4 MPI tasks, 4 threads/task
|
||||||
|
@ -40,14 +39,11 @@ each MPI task running on a CPU.
|
||||||
|
|
||||||
The lines above illustrate how to include/build with the USER-OMP
|
The lines above illustrate how to include/build with the USER-OMP
|
||||||
package in two steps, using the "make" command. Or how to do it with
|
package in two steps, using the "make" command. Or how to do it with
|
||||||
one command via the src/Make.py script, described in "Section
|
one command as described in "Section 4"_Section_packages.html of the manual.
|
||||||
4"_Section_packages.html of the manual. Type "Make.py -h" for
|
|
||||||
help.
|
|
||||||
|
|
||||||
Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must
|
Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must
|
||||||
include "-fopenmp". Likewise, if you use an Intel compiler, the
|
include "-fopenmp". Likewise, if you use an Intel compiler, the
|
||||||
CCFLAGS setting must include "-restrict". The Make.py command will
|
CCFLAGS setting must include "-restrict".
|
||||||
add these automatically.
|
|
||||||
|
|
||||||
[Run with the USER-OMP package from the command line:]
|
[Run with the USER-OMP package from the command line:]
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,7 @@ Here is a quick overview of how to use the OPT package. More details
|
||||||
follow.
|
follow.
|
||||||
|
|
||||||
make yes-opt
|
make yes-opt
|
||||||
make mpi # build with the OPT package
|
make mpi # build with the OPT package :pre
|
||||||
Make.py -v -p opt -o mpi -a file mpi # or one-line build via Make.py :pre
|
|
||||||
|
|
||||||
lmp_mpi -sf opt -in in.script # run in serial
|
lmp_mpi -sf opt -in in.script # run in serial
|
||||||
mpirun -np 4 lmp_mpi -sf opt -in in.script # run in parallel :pre
|
mpirun -np 4 lmp_mpi -sf opt -in in.script # run in parallel :pre
|
||||||
|
@ -35,13 +34,10 @@ None.
|
||||||
|
|
||||||
The lines above illustrate how to build LAMMPS with the OPT package in
|
The lines above illustrate how to build LAMMPS with the OPT package in
|
||||||
two steps, using the "make" command. Or how to do it with one command
|
two steps, using the "make" command. Or how to do it with one command
|
||||||
via the src/Make.py script, described in "Section
|
as described in "Section 4"_Section_packages.html of the manual.
|
||||||
4"_Section_packages.html of the manual. Type "Make.py -h" for
|
|
||||||
help.
|
|
||||||
|
|
||||||
Note that if you use an Intel compiler to build with the OPT package,
|
Note that if you use an Intel compiler to build with the OPT package,
|
||||||
the CCFLAGS setting in your Makefile.machine must include "-restrict".
|
the CCFLAGS setting in your Makefile.machine must include "-restrict".
|
||||||
The Make.py command will add this automatically.
|
|
||||||
|
|
||||||
[Run with the OPT package from the command line:]
|
[Run with the OPT package from the command line:]
|
||||||
|
|
||||||
|
|
|
@ -217,7 +217,7 @@ This compute is part of the VORONOI package. It is only enabled if
|
||||||
LAMMPS was built with that package. See the "Making
|
LAMMPS was built with that package. See the "Making
|
||||||
LAMMPS"_Section_start.html#start_3 section for more info.
|
LAMMPS"_Section_start.html#start_3 section for more info.
|
||||||
|
|
||||||
It also requiers you have a copy of the Voro++ library built and
|
It also requires you have a copy of the Voro++ library built and
|
||||||
installed on your system. See instructions on obtaining and
|
installed on your system. See instructions on obtaining and
|
||||||
installing the Voro++ software in the src/VORONOI/README file.
|
installing the Voro++ software in the src/VORONOI/README file.
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ equations, but is used in calculating the deviation from the Hugoniot.
|
||||||
The keyword {beta} is a scaling term that can be added to the MSST
|
The keyword {beta} is a scaling term that can be added to the MSST
|
||||||
ionic equations of motion to account for drift in the conserved
|
ionic equations of motion to account for drift in the conserved
|
||||||
quantity during long timescale simulations, similar to a Berendson
|
quantity during long timescale simulations, similar to a Berendson
|
||||||
thermostat. See "(Reed)"_#Reed and "(Goldman)"_#Goldman for more
|
thermostat. See "(Reed)"_#Reed and "(Goldman)"_#Goldman2 for more
|
||||||
details. The value of {beta} must be between 0.0 and 1.0 inclusive.
|
details. The value of {beta} must be between 0.0 and 1.0 inclusive.
|
||||||
A value of 0.0 means no contribution, a value of 1.0 means a full
|
A value of 0.0 means no contribution, a value of 1.0 means a full
|
||||||
contribution.
|
contribution.
|
||||||
|
@ -108,7 +108,7 @@ being driven by DFTB+, a density-functional tight-binding code. If the
|
||||||
keyword {dftb} is used with a value of {yes}, then the MSST equations
|
keyword {dftb} is used with a value of {yes}, then the MSST equations
|
||||||
are altered to account for the electron entropy contribution to the
|
are altered to account for the electron entropy contribution to the
|
||||||
Hugonio relations and total energy. See "(Reed2)"_#Reed2 and
|
Hugonio relations and total energy. See "(Reed2)"_#Reed2 and
|
||||||
"(Goldman)"_#Goldman for details on this contribution. In this case,
|
"(Goldman)"_#Goldman2 for details on this contribution. In this case,
|
||||||
you must define a "fix external"_fix_external.html command in your
|
you must define a "fix external"_fix_external.html command in your
|
||||||
input script, which is used to callback to DFTB+ during the LAMMPS
|
input script, which is used to callback to DFTB+ during the LAMMPS
|
||||||
timestepping. DFTB+ will communicate its info to LAMMPS via that fix.
|
timestepping. DFTB+ will communicate its info to LAMMPS via that fix.
|
||||||
|
@ -188,6 +188,6 @@ timestep.
|
||||||
:link(Reed2)
|
:link(Reed2)
|
||||||
[(Reed2)] Reed, J. Phys. Chem. C, 116, 2205 (2012).
|
[(Reed2)] Reed, J. Phys. Chem. C, 116, 2205 (2012).
|
||||||
|
|
||||||
:link(Goldman)
|
:link(Goldman2)
|
||||||
[(Goldman)] Goldman, Srinivasan, Hamel, Fried, Gaus, and Elstner,
|
[(Goldman)] Goldman, Srinivasan, Hamel, Fried, Gaus, and Elstner,
|
||||||
J. Phys. Chem. C, 117, 7885 (2013).
|
J. Phys. Chem. C, 117, 7885 (2013).
|
||||||
|
|
|
@ -78,7 +78,7 @@ especially when the temperature of the initial state is below the
|
||||||
classical limit or there is a great change in the zero point energies
|
classical limit or there is a great change in the zero point energies
|
||||||
between the initial and final states. Theoretical post processing
|
between the initial and final states. Theoretical post processing
|
||||||
quantum corrections of shock compressed water and methane have been
|
quantum corrections of shock compressed water and methane have been
|
||||||
reported as much as 30% of the temperatures "(Goldman)"_#Goldman. A
|
reported as much as 30% of the temperatures "(Goldman)"_#Goldman1. A
|
||||||
self-consistent method that couples the shock to a quantum thermal
|
self-consistent method that couples the shock to a quantum thermal
|
||||||
bath described by a colored noise Langevin thermostat has been
|
bath described by a colored noise Langevin thermostat has been
|
||||||
developed by Qi et al "(Qi)"_#Qi and applied to shocked methane. The
|
developed by Qi et al "(Qi)"_#Qi and applied to shocked methane. The
|
||||||
|
@ -212,7 +212,7 @@ T_init=300.0. e0, p0, and v0 are calculated on the first step.
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
:link(Goldman)
|
:link(Goldman1)
|
||||||
[(Goldman)] Goldman, Reed and Fried, J. Chem. Phys. 131, 204103 (2009)
|
[(Goldman)] Goldman, Reed and Fried, J. Chem. Phys. 131, 204103 (2009)
|
||||||
|
|
||||||
:link(Qi)
|
:link(Qi)
|
||||||
|
|
|
@ -109,7 +109,8 @@ atoms in the specified group. This can be useful for models where a
|
||||||
large portion of the simulation is particles that do not interact with
|
large portion of the simulation is particles that do not interact with
|
||||||
other particles or with each other via pairwise interactions. The
|
other particles or with each other via pairwise interactions. The
|
||||||
group specified with this option must also be specified via the
|
group specified with this option must also be specified via the
|
||||||
"atom_modify first"_atom_modify.html command.
|
"atom_modify first"_atom_modify.html command. Note that specifying
|
||||||
|
"all" as the group-ID effectively turns off the {include} option.
|
||||||
|
|
||||||
The {exclude} option turns off pairwise interactions between certain
|
The {exclude} option turns off pairwise interactions between certain
|
||||||
pairs of atoms, by not including them in the neighbor list. These are
|
pairs of atoms, by not including them in the neighbor list. These are
|
||||||
|
@ -213,5 +214,5 @@ space.
|
||||||
[Default:]
|
[Default:]
|
||||||
|
|
||||||
The option defaults are delay = 10, every = 1, check = yes, once = no,
|
The option defaults are delay = 10, every = 1, check = yes, once = no,
|
||||||
cluster = no, include = all, exclude = none, page = 100000, one =
|
cluster = no, include = all (same as no include option defined),
|
||||||
2000, and binsize = 0.0.
|
exclude = none, page = 100000, one = 2000, and binsize = 0.0.
|
||||||
|
|
|
@ -27,13 +27,34 @@ pair_coeff * * Ar Ar :pre
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|
||||||
This pair style is a wrapper on the "Knowledge Base for Interatomic
|
This pair style is a wrapper on the "Knowledge Base for Interatomic
|
||||||
Models (KIM)"_https://openkim.org repository of interatomic potentials,
|
Models (OpenKIM)"_https://openkim.org repository of interatomic
|
||||||
so that they can be used by LAMMPS scripts.
|
potentials, so that they can be used by LAMMPS scripts.
|
||||||
|
|
||||||
In KIM lingo, a potential is a "model" and a model contains both the
|
Note that in LAMMPS lingo, a KIM model driver is a pair style
|
||||||
analytic formulas that define the potential as well as the parameters
|
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
|
||||||
needed to run it for one or more materials, including coefficients and
|
element or alloy and set of parameters, e.g. EAM for Cu with a
|
||||||
cutoffs.
|
specific EAM potential file.
|
||||||
|
|
||||||
|
See the current list of "KIM model
|
||||||
|
drivers"_https://openkim.org/kim-items/model-drivers/alphabetical.
|
||||||
|
|
||||||
|
See the current list of all "KIM
|
||||||
|
models"_https://openkim.org/kim-items/models/by-model-drivers
|
||||||
|
|
||||||
|
See the list of "example KIM models"_https://openkim.org/kim-api which
|
||||||
|
are included in the KIM library by default, in the "What is in the KIM
|
||||||
|
API source package?" section.
|
||||||
|
|
||||||
|
To use this pair style, you must first download and install the KIM
|
||||||
|
API library from the "OpenKIM website"_https://openkim.org. The "KIM
|
||||||
|
section of Section packages"_Section_packages.html#KIM has
|
||||||
|
instructions on how to do this with a simple make command, when
|
||||||
|
building LAMMPS.
|
||||||
|
|
||||||
|
See the examples/kim dir for an input script that uses a KIM model
|
||||||
|
(potential) for Lennard-Jones.
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
The argument {virialmode} determines how the global virial is
|
The argument {virialmode} determines how the global virial is
|
||||||
calculated. If {KIMvirial} is specified, the KIM model performs the
|
calculated. If {KIMvirial} is specified, the KIM model performs the
|
||||||
|
|
|
@ -50,7 +50,7 @@ Intel(R) Xeon Phi(TM) coprocessors. :l
|
||||||
|
|
||||||
KOKKOS = a collection of atom, pair, and fix styles optimized to run
|
KOKKOS = a collection of atom, pair, and fix styles optimized to run
|
||||||
using the Kokkos library on various kinds of hardware, including GPUs
|
using the Kokkos library on various kinds of hardware, including GPUs
|
||||||
via Cuda and many-core chips via OpenMP or threading. :l
|
via CUDA and many-core chips via OpenMP or threading. :l
|
||||||
|
|
||||||
USER-OMP = a collection of pair, bond, angle, dihedral, improper,
|
USER-OMP = a collection of pair, bond, angle, dihedral, improper,
|
||||||
kspace, compute, and fix styles with support for OpenMP
|
kspace, compute, and fix styles with support for OpenMP
|
||||||
|
|
|
@ -0,0 +1,203 @@
|
||||||
|
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||||
|
|
||||||
|
:link(lws,http://lammps.sandia.gov)
|
||||||
|
:link(ld,Manual.html)
|
||||||
|
:link(lc,Section_commands.html#comm)
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
Using LAMMPS with Bash on Windows :h3
|
||||||
|
[written by Richard Berger]
|
||||||
|
|
||||||
|
:line
|
||||||
|
Starting with Windows 10 you can install Linux tools directly in Windows. This
|
||||||
|
allows you to compile LAMMPS following the same procedure as on a real Ubuntu
|
||||||
|
Linux installation. Software can be easily installed using the package manager
|
||||||
|
via apt-get and all files are accessible in both the Windows Explorer and your
|
||||||
|
Linux shell (bash). This avoids switching to a different operating system or
|
||||||
|
installing a virtual machine. Everything runs on Windows.
|
||||||
|
|
||||||
|
Installing Bash on Windows :h4
|
||||||
|
|
||||||
|
Prerequisites :h5
|
||||||
|
|
||||||
|
Windows 10 (64bit only)
|
||||||
|
Latest updates installed :ul
|
||||||
|
|
||||||
|
Enable developer mode :h5
|
||||||
|
You enable this feature by first opening Windows Settings and enabling
|
||||||
|
Developer mode. Go to the Windows settings and search for "developer". This
|
||||||
|
will allow you to install software which comes from outside of the Windows
|
||||||
|
Store. You might be prompted to reboot your compute. Please do so.
|
||||||
|
|
||||||
|
:image(JPG/bow_tutorial_01_small.png,JPG/bow_tutorial_01.png)
|
||||||
|
:image(JPG/bow_tutorial_02_small.png,JPG/bow_tutorial_02.png)
|
||||||
|
:image(JPG/bow_tutorial_03_small.png,JPG/bow_tutorial_03.png)
|
||||||
|
|
||||||
|
Install Windows Subsystem for Linux :h5
|
||||||
|
|
||||||
|
Next you must ensure that the Window Subsystem for Linux is installed. Again,
|
||||||
|
search for "enable windows features" in the Settings dialog. This opens a
|
||||||
|
dialog with a list of features you can install. Add a checkmark to Windows
|
||||||
|
Subsystem for Linux (Beta) and press OK.
|
||||||
|
|
||||||
|
:image(JPG/bow_tutorial_04_small.png,JPG/bow_tutorial_04.png)
|
||||||
|
:image(JPG/bow_tutorial_05.png,JPG/bow_tutorial_05.png)
|
||||||
|
|
||||||
|
Install Bash for Windows :h5
|
||||||
|
|
||||||
|
After installation completes, type "bash" in the Windows Start menu search.
|
||||||
|
Select the first found option. This will launch a command-line window which
|
||||||
|
will prompt you about installing Ubuntu on Windows. Confirm with "y" and press
|
||||||
|
enter. This will then download Ubuntu for Windows.
|
||||||
|
|
||||||
|
:image(JPG/bow_tutorial_06.png)
|
||||||
|
:image(JPG/bow_tutorial_07.png)
|
||||||
|
|
||||||
|
During installation, you will be asked for a new password. This will be used
|
||||||
|
for installing new software and running commands with sudo.
|
||||||
|
|
||||||
|
:image(JPG/bow_tutorial_08.png)
|
||||||
|
|
||||||
|
Type exit to close the command-line window.
|
||||||
|
|
||||||
|
Go to the Start menu and type "bash" again. This time you will see a "Bash on
|
||||||
|
Ubuntu on Windows" Icon. Start this program.
|
||||||
|
|
||||||
|
:image(JPG/bow_tutorial_09.png)
|
||||||
|
|
||||||
|
Congratulations, you have installed [Bash on Ubuntu on Windows].
|
||||||
|
|
||||||
|
:image(JPG/bow_tutorial_10.png)
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
Compiling LAMMPS in Bash on Windows :h4
|
||||||
|
|
||||||
|
The installation of LAMMPS in this environment is identical to working inside
|
||||||
|
of a real Ubuntu Linux installation. At the time writing, it uses Ubuntu 16.04.
|
||||||
|
|
||||||
|
Installing prerequisite packages :h5
|
||||||
|
|
||||||
|
First upgrade all existing packages using
|
||||||
|
|
||||||
|
sudo apt update
|
||||||
|
sudo apt upgrade -y :pre
|
||||||
|
|
||||||
|
Next install the following packages, which include compilers and libraries
|
||||||
|
needed for various LAMMPS features:
|
||||||
|
|
||||||
|
sudo apt install -y build-essential ccache gfortran openmpi-bin libopenmpi-dev libfftw3-dev libjpeg-dev libpng12-dev python-dev python-virtualenv libblas-dev liblapack-dev libhdf5-serial-dev hdf5-tools :pre
|
||||||
|
|
||||||
|
Files in Ubuntu on Windows :h5
|
||||||
|
|
||||||
|
When you launch "Bash on Ubuntu on Windows" you will start out in your Linux
|
||||||
|
user home directory /home/[username]. You can access your Windows user directory
|
||||||
|
using the /mnt/c/Users/[username] folder.
|
||||||
|
|
||||||
|
|
||||||
|
Download LAMMPS :h5
|
||||||
|
|
||||||
|
Obtain a copy of the LAMMPS code and go into it using "cd"
|
||||||
|
|
||||||
|
Option 1: Downloading LAMMPS tarball using wget :h6
|
||||||
|
|
||||||
|
wget http://lammps.sandia.gov/tars/lammps-stable.tar.gz
|
||||||
|
tar xvzf lammps-stable.tar.gz
|
||||||
|
cd lammps-31Mar17 :pre
|
||||||
|
|
||||||
|
Option 2: Obtaining LAMMPS code from GitHub :h6
|
||||||
|
|
||||||
|
git clone https://github.com/lammps/lammps.git
|
||||||
|
cd lammps :pre
|
||||||
|
|
||||||
|
Compiling LAMMPS :h5
|
||||||
|
|
||||||
|
At this point you can compile LAMMPS like on Ubuntu Linux.
|
||||||
|
|
||||||
|
Compiling serial version :h6
|
||||||
|
|
||||||
|
cd src/
|
||||||
|
make -j 4 serial :pre
|
||||||
|
|
||||||
|
This will create an executable called lmp_serial in the src/ directory
|
||||||
|
|
||||||
|
Compiling MPI version :h6
|
||||||
|
|
||||||
|
cd src/
|
||||||
|
make -j 4 mpi :pre
|
||||||
|
|
||||||
|
This will create an executable called lmp_mpi in the src/ directory
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
Finally, please note the absolute path of your src folder. You can get this using
|
||||||
|
|
||||||
|
pwd :pre
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
echo $PWD :pre
|
||||||
|
|
||||||
|
To run any examples you need the location of the executable. For now, let us
|
||||||
|
save this location in a temporary variable
|
||||||
|
|
||||||
|
LAMMPS_DIR=$PWD :pre
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
Running an example script :h5
|
||||||
|
|
||||||
|
Once compiled you can execute some of the LAMMPS examples. Switch into the
|
||||||
|
examples/melt folder
|
||||||
|
|
||||||
|
cd ../examples/melt :pre
|
||||||
|
|
||||||
|
The full path of the serial executable is $LAMMPS_DIR/lmp_serial, while the mpi
|
||||||
|
version is $LAMMPS_DIR/lmp_mpi. You can run the melt example with either
|
||||||
|
version as follows:
|
||||||
|
|
||||||
|
$LAMMPS_DIR/lmp_serial -in in.melt :pre
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
mpirun -np 4 $LAMMPS_DIR/lmp_mpi -in in.melt :pre
|
||||||
|
|
||||||
|
Note the use of our variable $LAMMPS_DIR, which expands into the full path of
|
||||||
|
the LAMMPS src folder we saved earlier.
|
||||||
|
|
||||||
|
Adding your executable directory to your PATH :h6
|
||||||
|
|
||||||
|
You can avoid having to type the full path of your LAMMPS binary by adding its
|
||||||
|
parent folder to the PATH environment variable as follows:
|
||||||
|
|
||||||
|
export PATH=$LAMMPS_DIR:$PATH :pre
|
||||||
|
|
||||||
|
Input scripts can then be run like this:
|
||||||
|
|
||||||
|
lmp_serial -in in.melt :pre
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
mpirun -np 4 lmp_mpi -in in.melt :pre
|
||||||
|
|
||||||
|
However, this PATH variable will not persist if you close your bash window.
|
||||||
|
To persist this setting edit the $HOME/.bashrc file using your favorite editor
|
||||||
|
and add this line
|
||||||
|
|
||||||
|
export PATH=/full/path/to/your/lammps/src:$PATH :pre
|
||||||
|
|
||||||
|
[Example:]
|
||||||
|
|
||||||
|
For an executable lmp_serial with a full path
|
||||||
|
|
||||||
|
/home/richard/lammps/src/lmp_serial :pre
|
||||||
|
|
||||||
|
the PATH variable should be
|
||||||
|
|
||||||
|
export PATH=/home/richard/lammps/src:$PATH :pre
|
||||||
|
|
||||||
|
NOTE: This should give you a jump start when trying to run LAMMPS on Windows.
|
||||||
|
To become effective in this environment I encourage you to look into Linux
|
||||||
|
tutorials explaining Bash and Basic Unix commands (e.g., "Linux
|
||||||
|
Journey"_https://linuxjourney.com)
|
|
@ -48,21 +48,17 @@ System-wide Installation :h3
|
||||||
Step 1: Building LAMMPS as a shared library :h4
|
Step 1: Building LAMMPS as a shared library :h4
|
||||||
|
|
||||||
To use LAMMPS inside of Python it has to be compiled as shared library. This
|
To use LAMMPS inside of Python it has to be compiled as shared library. This
|
||||||
library is then loaded by the Python interface. In this example, we use the
|
library is then loaded by the Python interface. In this example we enable the
|
||||||
Make.py utility to create a Makefile with C++ exceptions, PNG, JPEG and FFMPEG
|
MOLECULE package and compile LAMMPS with C++ exceptions, PNG, JPEG and FFMPEG
|
||||||
output support enabled. Finally, we also enable the MOLECULE package and compile
|
output support enabled.
|
||||||
using the generated {auto} Makefile.
|
|
||||||
|
|
||||||
cd $LAMMPS_DIR/src :pre
|
cd $LAMMPS_DIR/src :pre
|
||||||
|
|
||||||
# generate custom Makefile
|
|
||||||
python Make.py -jpg -png -s ffmpeg exceptions -m mpi -a file :pre
|
|
||||||
|
|
||||||
# add packages if necessary
|
# add packages if necessary
|
||||||
make yes-MOLECULE :pre
|
make yes-MOLECULE :pre
|
||||||
|
|
||||||
# compile shared library using Makefile
|
# compile shared library using Makefile
|
||||||
make mode=shlib auto :pre
|
make mpi mode=shlib LMP_INC="-DLAMMPS_PNG -DLAMMPS_JPEG -DLAMMPS_FFMPEG -DLAMMPS_EXCEPTIONS" JPG_LIB="-lpng -ljpeg" :pre
|
||||||
|
|
||||||
Step 2: Installing the LAMMPS Python package :h4
|
Step 2: Installing the LAMMPS Python package :h4
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ Tutorials :h1
|
||||||
tutorial_drude
|
tutorial_drude
|
||||||
tutorial_github
|
tutorial_github
|
||||||
tutorial_pylammps
|
tutorial_pylammps
|
||||||
|
tutorial_bash_on_windows
|
||||||
body
|
body
|
||||||
manifolds
|
manifolds
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ These are the sample problems and their output in the various
|
||||||
sub-directories:
|
sub-directories:
|
||||||
|
|
||||||
accelerate: use of all the various accelerator packages
|
accelerate: use of all the various accelerator packages
|
||||||
airebo: example for using AIREBO and AIREBO-M
|
airebo: polyethylene with AIREBO potential
|
||||||
balance: dynamic load balancing, 2d system
|
balance: dynamic load balancing, 2d system
|
||||||
body: body particles, 2d system
|
body: body particles, 2d system
|
||||||
cmap: CMAP 5-body contributions to CHARMM force field
|
cmap: CMAP 5-body contributions to CHARMM force field
|
||||||
|
|
|
@ -17,6 +17,6 @@ fix 1 all nve
|
||||||
thermo 10
|
thermo 10
|
||||||
timestep 0.001
|
timestep 0.001
|
||||||
|
|
||||||
dump 1 all custom 10 dump.gap id fx fy fz
|
#dump 1 all custom 10 dump.gap id fx fy fz
|
||||||
|
|
||||||
run 40
|
run 40
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
units metal
|
units metal
|
||||||
atom_style full
|
atom_style full
|
||||||
boundary p p p
|
boundary p p p
|
||||||
processors 1 1 1
|
|
||||||
timestep 0.0001 # 0.1 fs
|
timestep 0.0001 # 0.1 fs
|
||||||
|
|
||||||
read_data methane-box-8.data
|
read_data methane-box-8.data
|
||||||
|
@ -28,7 +27,7 @@ pair_modify pair lj/cut special lj/coul 0.0 0.0 0.0
|
||||||
|
|
||||||
# Intramolecular
|
# Intramolecular
|
||||||
# Tell QUIP to pretend this is silane (which is covered by the parameter file)
|
# Tell QUIP to pretend this is silane (which is covered by the parameter file)
|
||||||
pair_coeff * * quip ip.parms.SW.xml "IP SW" 14 1
|
pair_coeff * * quip sw_example.xml "IP SW" 14 1
|
||||||
bond_style none
|
bond_style none
|
||||||
angle_style none
|
angle_style none
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ read_data data_sw
|
||||||
pair_style quip
|
pair_style quip
|
||||||
pair_coeff * * sw_example.xml "IP SW" 14
|
pair_coeff * * sw_example.xml "IP SW" 14
|
||||||
|
|
||||||
|
velocity all create 10.0 355311
|
||||||
neighbor 0.3 bin
|
neighbor 0.3 bin
|
||||||
neigh_modify delay 10
|
neigh_modify delay 10
|
||||||
|
|
||||||
|
@ -17,6 +18,6 @@ fix 1 all nve
|
||||||
thermo 10
|
thermo 10
|
||||||
timestep 0.001
|
timestep 0.001
|
||||||
|
|
||||||
dump 1 all custom 10 dump.sw id fx fy fz
|
#dump 1 all custom 10 dump.sw id fx fy fz
|
||||||
|
|
||||||
run 1
|
run 100
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
LAMMPS (24 Jul 2017)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# Test of GAP potential for Si system
|
||||||
|
|
||||||
|
units metal
|
||||||
|
boundary p p p
|
||||||
|
|
||||||
|
atom_style atomic
|
||||||
|
|
||||||
|
read_data data_gap
|
||||||
|
orthogonal box = (0 0 0) to (10.9685 10.9685 10.9685)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
64 atoms
|
||||||
|
|
||||||
|
pair_style quip
|
||||||
|
pair_coeff * * gap_example.xml "Potential xml_label=GAP_2015_2_20_0_10_54_35_765" 14
|
||||||
|
|
||||||
|
neighbor 0.3 bin
|
||||||
|
neigh_modify delay 10
|
||||||
|
|
||||||
|
fix 1 all nve
|
||||||
|
thermo 10
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
#dump 1 all custom 10 dump.gap id fx fy fz
|
||||||
|
|
||||||
|
run 40
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 10 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 4.3
|
||||||
|
ghost atom cutoff = 4.3
|
||||||
|
binsize = 2.15, bins = 6 6 6
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair quip, perpetual
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 2.689 | 2.689 | 2.689 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 0 -10412.677 0 -10412.677 -107490.01
|
||||||
|
10 173.98393 -10414.096 0 -10412.679 -91270.969
|
||||||
|
20 417.38493 -10416.08 0 -10412.681 -42816.133
|
||||||
|
30 434.34789 -10416.217 0 -10412.68 2459.83
|
||||||
|
40 423.05899 -10416.124 0 -10412.679 22936.209
|
||||||
|
Loop time of 1.83555 on 1 procs for 40 steps with 64 atoms
|
||||||
|
|
||||||
|
Performance: 1.883 ns/day, 12.747 hours/ns, 21.792 timesteps/s
|
||||||
|
98.1% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 1.8349 | 1.8349 | 1.8349 | 0.0 | 99.96
|
||||||
|
Neigh | 0.00022817 | 0.00022817 | 0.00022817 | 0.0 | 0.01
|
||||||
|
Comm | 0.00013709 | 0.00013709 | 0.00013709 | 0.0 | 0.01
|
||||||
|
Output | 9.8228e-05 | 9.8228e-05 | 9.8228e-05 | 0.0 | 0.01
|
||||||
|
Modify | 8.6308e-05 | 8.6308e-05 | 8.6308e-05 | 0.0 | 0.00
|
||||||
|
Other | | 0.0001223 | | | 0.01
|
||||||
|
|
||||||
|
Nlocal: 64 ave 64 max 64 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 303 ave 303 max 303 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 0 ave 0 max 0 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
FullNghs: 1080 ave 1080 max 1080 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 1080
|
||||||
|
Ave neighs/atom = 16.875
|
||||||
|
Neighbor list builds = 2
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:01
|
|
@ -0,0 +1,76 @@
|
||||||
|
LAMMPS (24 Jul 2017)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# Test of GAP potential for Si system
|
||||||
|
|
||||||
|
units metal
|
||||||
|
boundary p p p
|
||||||
|
|
||||||
|
atom_style atomic
|
||||||
|
|
||||||
|
read_data data_gap
|
||||||
|
orthogonal box = (0 0 0) to (10.9685 10.9685 10.9685)
|
||||||
|
1 by 2 by 2 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
64 atoms
|
||||||
|
|
||||||
|
pair_style quip
|
||||||
|
pair_coeff * * gap_example.xml "Potential xml_label=GAP_2015_2_20_0_10_54_35_765" 14
|
||||||
|
|
||||||
|
neighbor 0.3 bin
|
||||||
|
neigh_modify delay 10
|
||||||
|
|
||||||
|
fix 1 all nve
|
||||||
|
thermo 10
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
#dump 1 all custom 10 dump.gap id fx fy fz
|
||||||
|
|
||||||
|
run 40
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 10 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 4.3
|
||||||
|
ghost atom cutoff = 4.3
|
||||||
|
binsize = 2.15, bins = 6 6 6
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair quip, perpetual
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 2.685 | 2.779 | 3.06 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 0 -10412.677 0 -10412.677 -107490.01
|
||||||
|
10 173.98393 -10414.096 0 -10412.679 -91270.969
|
||||||
|
20 417.38493 -10416.08 0 -10412.681 -42816.133
|
||||||
|
30 434.34789 -10416.217 0 -10412.68 2459.83
|
||||||
|
40 423.05899 -10416.124 0 -10412.679 22936.209
|
||||||
|
Loop time of 0.837345 on 4 procs for 40 steps with 64 atoms
|
||||||
|
|
||||||
|
Performance: 4.127 ns/day, 5.815 hours/ns, 47.770 timesteps/s
|
||||||
|
96.0% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.73144 | 0.79214 | 0.83586 | 4.3 | 94.60
|
||||||
|
Neigh | 5.7936e-05 | 6.5327e-05 | 7.1049e-05 | 0.0 | 0.01
|
||||||
|
Comm | 0.00085807 | 0.044631 | 0.10532 | 18.0 | 5.33
|
||||||
|
Output | 0.00013208 | 0.00013494 | 0.00013733 | 0.0 | 0.02
|
||||||
|
Modify | 6.0558e-05 | 7.8678e-05 | 9.5129e-05 | 0.0 | 0.01
|
||||||
|
Other | | 0.0002971 | | | 0.04
|
||||||
|
|
||||||
|
Nlocal: 16 ave 18 max 14 min
|
||||||
|
Histogram: 1 0 1 0 0 0 0 1 0 1
|
||||||
|
Nghost: 174 ave 182 max 167 min
|
||||||
|
Histogram: 1 0 0 0 2 0 0 0 0 1
|
||||||
|
Neighs: 0 ave 0 max 0 min
|
||||||
|
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||||
|
FullNghs: 270 ave 294 max 237 min
|
||||||
|
Histogram: 1 0 0 0 1 0 0 0 1 1
|
||||||
|
|
||||||
|
Total # of neighbors = 1080
|
||||||
|
Ave neighs/atom = 16.875
|
||||||
|
Neighbor list builds = 2
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:00
|
|
@ -0,0 +1,130 @@
|
||||||
|
LAMMPS (24 Jul 2017)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
boundary p p p
|
||||||
|
timestep 0.0001 # 0.1 fs
|
||||||
|
|
||||||
|
read_data methane-box-8.data
|
||||||
|
orthogonal box = (-0.499095 -0.270629 0.131683) to (8.4109 8.63937 9.04168)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
40 atoms
|
||||||
|
scanning bonds ...
|
||||||
|
4 = max bonds/atom
|
||||||
|
scanning angles ...
|
||||||
|
6 = max angles/atom
|
||||||
|
reading bonds ...
|
||||||
|
32 bonds
|
||||||
|
reading angles ...
|
||||||
|
48 angles
|
||||||
|
4 = max # of 1-2 neighbors
|
||||||
|
3 = max # of 1-3 neighbors
|
||||||
|
3 = max # of 1-4 neighbors
|
||||||
|
4 = max # of special neighbors
|
||||||
|
|
||||||
|
# DISCLAIMER: This potential mixes parameters from methane and silane
|
||||||
|
# potentials and is NOT intended to be a realistic representation of either
|
||||||
|
# system. It is meant to demonstrate the use of hybrid QUIP/LAMMPS potentials,
|
||||||
|
# including the use of separate 'special_bonds' settings.
|
||||||
|
|
||||||
|
pair_style hybrid/overlay lj/cut 8.0 quip
|
||||||
|
|
||||||
|
# exclusion setting for quip; cannot be exactly 1.0 1.0 1.0,
|
||||||
|
# since that would not flag 1-2, 1-3, and 1-4 pairs in lj/cut
|
||||||
|
special_bonds lj/coul 0.999999999 0.999999999 0.999999999
|
||||||
|
4 = max # of 1-2 neighbors
|
||||||
|
3 = max # of 1-3 neighbors
|
||||||
|
3 = max # of 1-4 neighbors
|
||||||
|
4 = max # of special neighbors
|
||||||
|
|
||||||
|
# Intermolecular: OPLS (JACS 118 (45), p. 11225 (1996))
|
||||||
|
# Coulomb interactions ommitted for simplicity
|
||||||
|
pair_coeff 1 1 lj/cut 0.0028619844 3.5 # CT
|
||||||
|
pair_coeff 2 2 lj/cut 0.0013009018 2.5 # HC
|
||||||
|
pair_coeff 1 2 lj/cut 0.0019295487 2.95
|
||||||
|
pair_modify shift no
|
||||||
|
# change exclusion settings for lj/cut only: exclude bonded pairs
|
||||||
|
pair_modify pair lj/cut special lj/coul 0.0 0.0 0.0
|
||||||
|
|
||||||
|
# Intramolecular
|
||||||
|
# Tell QUIP to pretend this is silane (which is covered by the parameter file)
|
||||||
|
pair_coeff * * quip sw_example.xml "IP SW" 14 1
|
||||||
|
bond_style none
|
||||||
|
angle_style none
|
||||||
|
|
||||||
|
fix 1 all nve
|
||||||
|
|
||||||
|
# Include diagnostics that allow us to compare to a pure QUIP run
|
||||||
|
compute equip all pair quip
|
||||||
|
compute evdw all pair lj/cut
|
||||||
|
compute vir all pressure NULL virial
|
||||||
|
|
||||||
|
thermo_style custom step epair ke etotal temp press c_vir c_evdw c_equip
|
||||||
|
thermo 1
|
||||||
|
|
||||||
|
# dump 1 all custom 1 dump.molecular id type x y z fx fy fz
|
||||||
|
# dump_modify 1 sort id
|
||||||
|
|
||||||
|
run 10
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 10 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 10
|
||||||
|
ghost atom cutoff = 10
|
||||||
|
binsize = 5, bins = 2 2 2
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||||
|
(1) pair lj/cut, perpetual, half/full from (2)
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: halffull/newton
|
||||||
|
stencil: none
|
||||||
|
bin: none
|
||||||
|
(2) pair quip, perpetual
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 8.288 | 8.288 | 8.288 Mbytes
|
||||||
|
Step E_pair KinEng TotEng Temp Press c_vir c_evdw c_equip
|
||||||
|
0 -5.3530213 0 -5.3530213 0 518847.56 518847.56 -0.10904079 -5.2439805
|
||||||
|
1 -5.9384459 0.58384822 -5.3545977 115.81657 517370.5 516488.87 -0.10783656 -5.8306093
|
||||||
|
2 -7.669616 2.3104051 -5.3592109 458.30954 512986.36 509497.58 -0.10422283 -7.5653932
|
||||||
|
3 -10.473314 5.1069211 -5.3663924 1013.0477 505833.04 498121.43 -0.098049469 -10.375264
|
||||||
|
4 -14.234705 8.859182 -5.3755227 1757.3747 496127.44 482749.79 -0.089147485 -14.145557
|
||||||
|
5 -18.806851 13.420941 -5.3859098 2662.28 484148.76 463882.72 -0.077305196 -18.729546
|
||||||
|
6 -24.021727 18.625147 -5.3965797 3694.6259 470219.95 442095.39 -0.06194509 -23.959782
|
||||||
|
7 -29.702647 24.295529 -5.4071176 4819.446 454683.57 417996.56 -0.042859727 -29.659787
|
||||||
|
8 -35.67405 30.257258 -5.4167913 6002.0599 437887.03 392197.62 -0.019248651 -35.654801
|
||||||
|
9 -41.771047 36.345757 -5.4252893 7209.8209 420163.51 365280.27 0.0096063065 -41.780653
|
||||||
|
10 -47.845522 42.413161 -5.4323614 8413.3973 401821.91 337776.7 0.044743702 -47.890266
|
||||||
|
Loop time of 0.0537777 on 1 procs for 10 steps with 40 atoms
|
||||||
|
|
||||||
|
Performance: 1.607 ns/day, 14.938 hours/ns, 185.951 timesteps/s
|
||||||
|
90.3% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.053478 | 0.053478 | 0.053478 | 0.0 | 99.44
|
||||||
|
Bond | 1.9073e-06 | 1.9073e-06 | 1.9073e-06 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 7.7724e-05 | 7.7724e-05 | 7.7724e-05 | 0.0 | 0.14
|
||||||
|
Output | 0.00018263 | 0.00018263 | 0.00018263 | 0.0 | 0.34
|
||||||
|
Modify | 1.5974e-05 | 1.5974e-05 | 1.5974e-05 | 0.0 | 0.03
|
||||||
|
Other | | 2.122e-05 | | | 0.04
|
||||||
|
|
||||||
|
Nlocal: 40 ave 40 max 40 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 1175 ave 1175 max 1175 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 4768 ave 4768 max 4768 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
FullNghs: 9536 ave 9536 max 9536 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 9536
|
||||||
|
Ave neighs/atom = 238.4
|
||||||
|
Ave special neighs/atom = 4
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:00
|
|
@ -0,0 +1,130 @@
|
||||||
|
LAMMPS (24 Jul 2017)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
boundary p p p
|
||||||
|
timestep 0.0001 # 0.1 fs
|
||||||
|
|
||||||
|
read_data methane-box-8.data
|
||||||
|
orthogonal box = (-0.499095 -0.270629 0.131683) to (8.4109 8.63937 9.04168)
|
||||||
|
1 by 2 by 2 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
40 atoms
|
||||||
|
scanning bonds ...
|
||||||
|
4 = max bonds/atom
|
||||||
|
scanning angles ...
|
||||||
|
6 = max angles/atom
|
||||||
|
reading bonds ...
|
||||||
|
32 bonds
|
||||||
|
reading angles ...
|
||||||
|
48 angles
|
||||||
|
4 = max # of 1-2 neighbors
|
||||||
|
3 = max # of 1-3 neighbors
|
||||||
|
3 = max # of 1-4 neighbors
|
||||||
|
4 = max # of special neighbors
|
||||||
|
|
||||||
|
# DISCLAIMER: This potential mixes parameters from methane and silane
|
||||||
|
# potentials and is NOT intended to be a realistic representation of either
|
||||||
|
# system. It is meant to demonstrate the use of hybrid QUIP/LAMMPS potentials,
|
||||||
|
# including the use of separate 'special_bonds' settings.
|
||||||
|
|
||||||
|
pair_style hybrid/overlay lj/cut 8.0 quip
|
||||||
|
|
||||||
|
# exclusion setting for quip; cannot be exactly 1.0 1.0 1.0,
|
||||||
|
# since that would not flag 1-2, 1-3, and 1-4 pairs in lj/cut
|
||||||
|
special_bonds lj/coul 0.999999999 0.999999999 0.999999999
|
||||||
|
4 = max # of 1-2 neighbors
|
||||||
|
3 = max # of 1-3 neighbors
|
||||||
|
3 = max # of 1-4 neighbors
|
||||||
|
4 = max # of special neighbors
|
||||||
|
|
||||||
|
# Intermolecular: OPLS (JACS 118 (45), p. 11225 (1996))
|
||||||
|
# Coulomb interactions ommitted for simplicity
|
||||||
|
pair_coeff 1 1 lj/cut 0.0028619844 3.5 # CT
|
||||||
|
pair_coeff 2 2 lj/cut 0.0013009018 2.5 # HC
|
||||||
|
pair_coeff 1 2 lj/cut 0.0019295487 2.95
|
||||||
|
pair_modify shift no
|
||||||
|
# change exclusion settings for lj/cut only: exclude bonded pairs
|
||||||
|
pair_modify pair lj/cut special lj/coul 0.0 0.0 0.0
|
||||||
|
|
||||||
|
# Intramolecular
|
||||||
|
# Tell QUIP to pretend this is silane (which is covered by the parameter file)
|
||||||
|
pair_coeff * * quip sw_example.xml "IP SW" 14 1
|
||||||
|
bond_style none
|
||||||
|
angle_style none
|
||||||
|
|
||||||
|
fix 1 all nve
|
||||||
|
|
||||||
|
# Include diagnostics that allow us to compare to a pure QUIP run
|
||||||
|
compute equip all pair quip
|
||||||
|
compute evdw all pair lj/cut
|
||||||
|
compute vir all pressure NULL virial
|
||||||
|
|
||||||
|
thermo_style custom step epair ke etotal temp press c_vir c_evdw c_equip
|
||||||
|
thermo 1
|
||||||
|
|
||||||
|
# dump 1 all custom 1 dump.molecular id type x y z fx fy fz
|
||||||
|
# dump_modify 1 sort id
|
||||||
|
|
||||||
|
run 10
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 10 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 10
|
||||||
|
ghost atom cutoff = 10
|
||||||
|
binsize = 5, bins = 2 2 2
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||||
|
(1) pair lj/cut, perpetual, half/full from (2)
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: halffull/newton
|
||||||
|
stencil: none
|
||||||
|
bin: none
|
||||||
|
(2) pair quip, perpetual
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 8.26 | 8.386 | 8.762 Mbytes
|
||||||
|
Step E_pair KinEng TotEng Temp Press c_vir c_evdw c_equip
|
||||||
|
0 -5.3530213 0 -5.3530213 0 518847.56 518847.56 -0.10904079 -5.2439805
|
||||||
|
1 -5.9384459 0.58384822 -5.3545977 115.81657 517370.5 516488.87 -0.10783656 -5.8306093
|
||||||
|
2 -7.669616 2.3104051 -5.3592109 458.30954 512986.36 509497.58 -0.10422283 -7.5653932
|
||||||
|
3 -10.473314 5.1069211 -5.3663924 1013.0477 505833.04 498121.43 -0.098049469 -10.375264
|
||||||
|
4 -14.234705 8.859182 -5.3755227 1757.3747 496127.44 482749.79 -0.089147485 -14.145557
|
||||||
|
5 -18.806851 13.420941 -5.3859098 2662.28 484148.76 463882.72 -0.077305196 -18.729546
|
||||||
|
6 -24.021727 18.625147 -5.3965797 3694.6259 470219.95 442095.39 -0.06194509 -23.959782
|
||||||
|
7 -29.702647 24.295529 -5.4071176 4819.446 454683.57 417996.56 -0.042859727 -29.659787
|
||||||
|
8 -35.67405 30.257258 -5.4167913 6002.0599 437887.03 392197.62 -0.019248651 -35.654801
|
||||||
|
9 -41.771047 36.345757 -5.4252893 7209.8209 420163.51 365280.27 0.0096063065 -41.780653
|
||||||
|
10 -47.845522 42.413161 -5.4323614 8413.3973 401821.91 337776.7 0.044743702 -47.890266
|
||||||
|
Loop time of 0.0506847 on 4 procs for 10 steps with 40 atoms
|
||||||
|
|
||||||
|
Performance: 1.705 ns/day, 14.079 hours/ns, 197.298 timesteps/s
|
||||||
|
94.4% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.04216 | 0.045656 | 0.049349 | 1.2 | 90.08
|
||||||
|
Bond | 1.9073e-06 | 2.4438e-06 | 2.861e-06 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0.00068545 | 0.004438 | 0.0079191 | 3.9 | 8.76
|
||||||
|
Output | 0.00048304 | 0.00053334 | 0.00060964 | 0.0 | 1.05
|
||||||
|
Modify | 1.1444e-05 | 1.4424e-05 | 1.9312e-05 | 0.0 | 0.03
|
||||||
|
Other | | 4.047e-05 | | | 0.08
|
||||||
|
|
||||||
|
Nlocal: 10 ave 15 max 6 min
|
||||||
|
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||||
|
Nghost: 878 ave 948 max 812 min
|
||||||
|
Histogram: 1 0 1 0 0 0 1 0 0 1
|
||||||
|
Neighs: 1192 ave 1764 max 731 min
|
||||||
|
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||||
|
FullNghs: 2384 ave 3527 max 1439 min
|
||||||
|
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 9536
|
||||||
|
Ave neighs/atom = 238.4
|
||||||
|
Ave special neighs/atom = 4
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:00
|
|
@ -0,0 +1,83 @@
|
||||||
|
LAMMPS (24 Jul 2017)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# Test of SW potential for Si system
|
||||||
|
|
||||||
|
units metal
|
||||||
|
boundary p p p
|
||||||
|
|
||||||
|
atom_style atomic
|
||||||
|
|
||||||
|
read_data data_sw
|
||||||
|
orthogonal box = (0 0 0) to (5.431 5.431 5.431)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
8 atoms
|
||||||
|
|
||||||
|
pair_style quip
|
||||||
|
pair_coeff * * sw_example.xml "IP SW" 14
|
||||||
|
|
||||||
|
velocity all create 10.0 355311
|
||||||
|
neighbor 0.3 bin
|
||||||
|
neigh_modify delay 10
|
||||||
|
|
||||||
|
fix 1 all nve
|
||||||
|
thermo 10
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
#dump 1 all custom 10 dump.sw id fx fy fz
|
||||||
|
|
||||||
|
run 100
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 10 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 4.2258
|
||||||
|
ghost atom cutoff = 4.2258
|
||||||
|
binsize = 2.1129, bins = 3 3 3
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair quip, perpetual
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 2.684 | 2.684 | 2.684 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 10 -34.68 0 -34.670952 32.206289
|
||||||
|
10 4.5659178 -34.675073 0 -34.670942 46.253731
|
||||||
|
20 1.606683 -34.672391 0 -34.670937 44.736892
|
||||||
|
30 6.7007748 -34.677011 0 -34.670948 16.403049
|
||||||
|
40 5.682757 -34.676087 0 -34.670945 18.696408
|
||||||
|
50 2.2140716 -34.672942 0 -34.670939 37.592282
|
||||||
|
60 5.0475382 -34.675512 0 -34.670944 37.331666
|
||||||
|
70 7.0990979 -34.677369 0 -34.670946 40.533757
|
||||||
|
80 5.7306189 -34.676128 0 -34.670943 47.748813
|
||||||
|
90 5.0895648 -34.675549 0 -34.670944 38.092721
|
||||||
|
100 4.1070919 -34.674659 0 -34.670943 28.737864
|
||||||
|
Loop time of 0.384233 on 1 procs for 100 steps with 8 atoms
|
||||||
|
|
||||||
|
Performance: 22.486 ns/day, 1.067 hours/ns, 260.259 timesteps/s
|
||||||
|
94.6% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.38365 | 0.38365 | 0.38365 | 0.0 | 99.85
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0.00017333 | 0.00017333 | 0.00017333 | 0.0 | 0.05
|
||||||
|
Output | 0.00014162 | 0.00014162 | 0.00014162 | 0.0 | 0.04
|
||||||
|
Modify | 7.081e-05 | 7.081e-05 | 7.081e-05 | 0.0 | 0.02
|
||||||
|
Other | | 0.0001957 | | | 0.05
|
||||||
|
|
||||||
|
Nlocal: 8 ave 8 max 8 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 162 ave 162 max 162 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 0 ave 0 max 0 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
FullNghs: 128 ave 128 max 128 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 128
|
||||||
|
Ave neighs/atom = 16
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:00
|
|
@ -0,0 +1,83 @@
|
||||||
|
LAMMPS (24 Jul 2017)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# Test of SW potential for Si system
|
||||||
|
|
||||||
|
units metal
|
||||||
|
boundary p p p
|
||||||
|
|
||||||
|
atom_style atomic
|
||||||
|
|
||||||
|
read_data data_sw
|
||||||
|
orthogonal box = (0 0 0) to (5.431 5.431 5.431)
|
||||||
|
1 by 2 by 2 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
8 atoms
|
||||||
|
|
||||||
|
pair_style quip
|
||||||
|
pair_coeff * * sw_example.xml "IP SW" 14
|
||||||
|
|
||||||
|
velocity all create 10.0 355311
|
||||||
|
neighbor 0.3 bin
|
||||||
|
neigh_modify delay 10
|
||||||
|
|
||||||
|
fix 1 all nve
|
||||||
|
thermo 10
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
#dump 1 all custom 10 dump.sw id fx fy fz
|
||||||
|
|
||||||
|
run 100
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 10 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 4.2258
|
||||||
|
ghost atom cutoff = 4.2258
|
||||||
|
binsize = 2.1129, bins = 3 3 3
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair quip, perpetual
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 2.698 | 2.698 | 2.698 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 10 -34.68 0 -34.670952 32.206289
|
||||||
|
10 4.5659178 -34.675073 0 -34.670942 46.253731
|
||||||
|
20 1.606683 -34.672391 0 -34.670937 44.736892
|
||||||
|
30 6.7007748 -34.677011 0 -34.670948 16.403049
|
||||||
|
40 5.682757 -34.676087 0 -34.670945 18.696408
|
||||||
|
50 2.2140716 -34.672942 0 -34.670939 37.592282
|
||||||
|
60 5.0475382 -34.675512 0 -34.670944 37.331666
|
||||||
|
70 7.0990979 -34.677369 0 -34.670946 40.533757
|
||||||
|
80 5.7306189 -34.676128 0 -34.670943 47.748813
|
||||||
|
90 5.0895648 -34.675549 0 -34.670944 38.092721
|
||||||
|
100 4.1070919 -34.674659 0 -34.670943 28.737864
|
||||||
|
Loop time of 0.423803 on 4 procs for 100 steps with 8 atoms
|
||||||
|
|
||||||
|
Performance: 20.387 ns/day, 1.177 hours/ns, 235.959 timesteps/s
|
||||||
|
90.6% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.39332 | 0.40011 | 0.40704 | 0.8 | 94.41
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0.015632 | 0.022605 | 0.029425 | 3.3 | 5.33
|
||||||
|
Output | 0.00025702 | 0.00028491 | 0.00035429 | 0.0 | 0.07
|
||||||
|
Modify | 7.3671e-05 | 8.1897e-05 | 8.9884e-05 | 0.0 | 0.02
|
||||||
|
Other | | 0.0007259 | | | 0.17
|
||||||
|
|
||||||
|
Nlocal: 2 ave 2 max 2 min
|
||||||
|
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 113 ave 113 max 113 min
|
||||||
|
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 0 ave 0 max 0 min
|
||||||
|
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||||
|
FullNghs: 32 ave 32 max 32 min
|
||||||
|
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 128
|
||||||
|
Ave neighs/atom = 16
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:00
|
|
@ -1 +1,3 @@
|
||||||
Makefile.lammps
|
Makefile.lammps
|
||||||
|
.depend
|
||||||
|
Makefile.auto
|
||||||
|
|
|
@ -4,24 +4,35 @@
|
||||||
# soft linked to by many of the lib/Install.py files
|
# soft linked to by many of the lib/Install.py files
|
||||||
# used to automate the steps described in the corresponding lib/README
|
# used to automate the steps described in the corresponding lib/README
|
||||||
|
|
||||||
import sys,commands,os
|
from __future__ import print_function
|
||||||
|
import sys,os,subprocess
|
||||||
|
|
||||||
# help message
|
# help message
|
||||||
|
|
||||||
help = """
|
help = """
|
||||||
Syntax: python Install.py -m machine -e suffix
|
Syntax from src dir: make lib-libname args="-m machine -e suffix"
|
||||||
specify -m and optionally -e, order does not matter
|
Syntax from lib dir: python Install.py -m machine -e suffix
|
||||||
|
|
||||||
|
libname = name of lib dir (e.g. atc, h5md, meam, poems, etc)
|
||||||
|
specify -m and optionally -e, order does not matter
|
||||||
|
|
||||||
-m = peform a clean followed by "make -f Makefile.machine"
|
-m = peform a clean followed by "make -f Makefile.machine"
|
||||||
machine = suffix of a lib/Makefile.* file
|
machine = suffix of a lib/Makefile.* file
|
||||||
-e = set EXTRAMAKE variable in Makefile.machine to Makefile.lammps.suffix
|
-e = set EXTRAMAKE variable in Makefile.machine to Makefile.lammps.suffix
|
||||||
does not alter existing Makefile.machine
|
does not alter existing Makefile.machine
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
make lib-poems args="-m serial" # build POEMS lib with same settings as in the serial Makefile in src
|
||||||
|
make lib-colvars args="-m mpi" # build USER-COLVARS lib with same settings as in the mpi Makefile in src
|
||||||
|
make lib-meam args="-m ifort" # build MEAM lib with custom Makefile.ifort (using Intel Fortran)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# print error message or help
|
# print error message or help
|
||||||
|
|
||||||
def error(str=None):
|
def error(str=None):
|
||||||
if not str: print help
|
if not str: print(help)
|
||||||
else: print "ERROR",str
|
else: print("ERROR",str)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
# parse args
|
# parse args
|
||||||
|
@ -38,12 +49,12 @@ while iarg < nargs:
|
||||||
if args[iarg] == "-m":
|
if args[iarg] == "-m":
|
||||||
if iarg+2 > nargs: error()
|
if iarg+2 > nargs: error()
|
||||||
machine = args[iarg+1]
|
machine = args[iarg+1]
|
||||||
iarg += 2
|
iarg += 2
|
||||||
elif args[iarg] == "-e":
|
elif args[iarg] == "-e":
|
||||||
if iarg+2 > nargs: error()
|
if iarg+2 > nargs: error()
|
||||||
extraflag = 1
|
extraflag = 1
|
||||||
suffix = args[iarg+1]
|
suffix = args[iarg+1]
|
||||||
iarg += 2
|
iarg += 2
|
||||||
else: error()
|
else: error()
|
||||||
|
|
||||||
# set lib from working dir
|
# set lib from working dir
|
||||||
|
@ -53,30 +64,38 @@ lib = os.path.basename(cwd)
|
||||||
|
|
||||||
# create Makefile.auto as copy of Makefile.machine
|
# create Makefile.auto as copy of Makefile.machine
|
||||||
# reset EXTRAMAKE if requested
|
# reset EXTRAMAKE if requested
|
||||||
|
|
||||||
if not os.path.exists("Makefile.%s" % machine):
|
if not os.path.exists("Makefile.%s" % machine):
|
||||||
error("lib/%s/Makefile.%s does not exist" % (lib,machine))
|
error("lib/%s/Makefile.%s does not exist" % (lib,machine))
|
||||||
|
|
||||||
lines = open("Makefile.%s" % machine,'r').readlines()
|
lines = open("Makefile.%s" % machine,'r').readlines()
|
||||||
fp = open("Makefile.auto",'w')
|
fp = open("Makefile.auto",'w')
|
||||||
|
|
||||||
|
has_extramake = False
|
||||||
for line in lines:
|
for line in lines:
|
||||||
words = line.split()
|
words = line.split()
|
||||||
if len(words) == 3 and extraflag and \
|
if len(words) == 3 and words[0] == "EXTRAMAKE" and words[1] == '=':
|
||||||
words[0] == "EXTRAMAKE" and words[1] == '=':
|
has_extramake = True
|
||||||
line = line.replace(words[2],"Makefile.lammps.%s" % suffix)
|
if extraflag:
|
||||||
print >>fp,line,
|
line = line.replace(words[2],"Makefile.lammps.%s" % suffix)
|
||||||
|
fp.write(line)
|
||||||
|
|
||||||
fp.close()
|
fp.close()
|
||||||
|
|
||||||
# make the library via Makefile.auto
|
# make the library via Makefile.auto optionally with parallel make
|
||||||
|
|
||||||
print "Building lib%s.a ..." % lib
|
try:
|
||||||
cmd = "make -f Makefile.auto clean; make -f Makefile.auto"
|
import multiprocessing
|
||||||
txt = commands.getoutput(cmd)
|
n_cpus = multiprocessing.cpu_count()
|
||||||
print txt
|
except:
|
||||||
|
n_cpus = 1
|
||||||
|
|
||||||
if os.path.exists("lib%s.a" % lib): print "Build was successful"
|
print("Building lib%s.a ..." % lib)
|
||||||
|
cmd = "make -f Makefile.auto clean; make -f Makefile.auto -j%d" % n_cpus
|
||||||
|
txt = subprocess.check_output(cmd,shell=True,stderr=subprocess.STDOUT)
|
||||||
|
print(txt.decode('UTF-8'))
|
||||||
|
|
||||||
|
if os.path.exists("lib%s.a" % lib): print("Build was successful")
|
||||||
else: error("Build of lib/%s/lib%s.a was NOT successful" % (lib,lib))
|
else: error("Build of lib/%s/lib%s.a was NOT successful" % (lib,lib))
|
||||||
if not os.path.exists("Makefile.lammps"):
|
if has_extramake and not os.path.exists("Makefile.lammps"):
|
||||||
print "lib/%s/Makefile.lammps was NOT created" % lib
|
print("lib/%s/Makefile.lammps was NOT created" % lib)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Install.py
|
../Install.py
|
|
@ -1,3 +1,4 @@
|
||||||
|
# library build -*- makefile -*-
|
||||||
SHELL = /bin/sh
|
SHELL = /bin/sh
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
# which file will be copied to Makefile.lammps
|
||||||
|
@ -5,6 +6,7 @@ SHELL = /bin/sh
|
||||||
EXTRAMAKE = Makefile.lammps.installed
|
EXTRAMAKE = Makefile.lammps.installed
|
||||||
|
|
||||||
# ------ FILES ------
|
# ------ FILES ------
|
||||||
|
|
||||||
SRC = $(wildcard *.cpp)
|
SRC = $(wildcard *.cpp)
|
||||||
INC = $(wildcard *.h)
|
INC = $(wildcard *.h)
|
||||||
|
|
||||||
|
@ -47,5 +49,9 @@ DEPENDS = $(OBJ:.o=.d)
|
||||||
|
|
||||||
# ------ CLEAN ------
|
# ------ CLEAN ------
|
||||||
|
|
||||||
|
.PHONY: clean lib
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm *.o *.d *~ $(LIB)
|
-rm *.o *.d *~ $(LIB)
|
||||||
|
|
||||||
|
sinclude $(DEPENDS)
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
# library build -*- makefile -*-
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
|
||||||
EXTRAMAKE = Makefile.lammps.linalg
|
|
||||||
|
|
||||||
# ------ FILES ------
|
|
||||||
|
|
||||||
SRC = $(wildcard *.cpp)
|
|
||||||
INC = $(wildcard *.h)
|
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
|
||||||
|
|
||||||
DIR = Obj_mingw32/
|
|
||||||
LIB = $(DIR)libatc.a
|
|
||||||
OBJ = $(SRC:%.cpp=$(DIR)%.o)
|
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
|
||||||
|
|
||||||
# include any MPI settings needed for the ATC library to build with
|
|
||||||
# the same MPI library that LAMMPS is built with
|
|
||||||
|
|
||||||
CC = i686-w64-mingw32-g++
|
|
||||||
CCFLAGS = -I../../src -I../../src/STUBS -DMPICH_IGNORE_CXX_SEEK \
|
|
||||||
-O3 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing \
|
|
||||||
-DLAMMPS_SMALLSMALL -Wno-uninitialized
|
|
||||||
ARCHIVE = i686-w64-mingw32-ar
|
|
||||||
ARCHFLAG = -rcs
|
|
||||||
DEPFLAGS = -M
|
|
||||||
LINK = $(CC)
|
|
||||||
LINKFLAGS = -O
|
|
||||||
USRLIB =
|
|
||||||
SYSLIB =
|
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
|
||||||
|
|
||||||
default: $(DIR) $(LIB) Makefile.lammps
|
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
mkdir $(DIR)
|
|
||||||
|
|
||||||
Makefile.lammps:
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
|
||||||
|
|
||||||
$(DIR)%.o:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) -c $< -o $@
|
|
||||||
$(DIR)%.d:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
|
||||||
|
|
||||||
# ------ DEPENDENCIES ------
|
|
||||||
|
|
||||||
DEPENDS = $(OBJ:.o=.d)
|
|
||||||
|
|
||||||
# ------ CLEAN ------
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm $(DIR)*.o $(DIR)*.d *~ $(LIB)
|
|
||||||
|
|
||||||
$(DEPENDS) : $(DIR)
|
|
||||||
sinclude $(DEPENDS)
|
|
|
@ -1,68 +0,0 @@
|
||||||
# library build -*- makefile -*-
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
|
||||||
EXTRAMAKE = Makefile.lammps.linalg
|
|
||||||
|
|
||||||
# ------ FILES ------
|
|
||||||
|
|
||||||
SRC = $(wildcard *.cpp)
|
|
||||||
INC = $(wildcard *.h)
|
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
|
||||||
|
|
||||||
DIR = Obj_mingw32-mpi/
|
|
||||||
LIB = $(DIR)libatc.a
|
|
||||||
OBJ = $(SRC:%.cpp=$(DIR)%.o)
|
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
|
||||||
|
|
||||||
# include any MPI settings needed for the ATC library to build with
|
|
||||||
# the same MPI library that LAMMPS is built with
|
|
||||||
|
|
||||||
CC = i686-w64-mingw32-g++
|
|
||||||
CCFLAGS = -I../../tools/mingw-cross/mpich2-win32/include/ \
|
|
||||||
-I../../src -DMPICH_IGNORE_CXX_SEEK \
|
|
||||||
-O3 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing \
|
|
||||||
-DLAMMPS_SMALLSMALL -Wno-uninitialized
|
|
||||||
ARCHIVE = i686-w64-mingw32-ar
|
|
||||||
ARCHFLAG = -rcs
|
|
||||||
DEPFLAGS = -M
|
|
||||||
LINK = $(CC)
|
|
||||||
LINKFLAGS = -O
|
|
||||||
USRLIB =
|
|
||||||
SYSLIB =
|
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
|
||||||
|
|
||||||
default: $(DIR) $(LIB) Makefile.lammps
|
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
mkdir $(DIR)
|
|
||||||
|
|
||||||
Makefile.lammps:
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
|
||||||
|
|
||||||
$(DIR)%.o:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) -c $< -o $@
|
|
||||||
$(DIR)%.d:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
|
||||||
|
|
||||||
# ------ DEPENDENCIES ------
|
|
||||||
|
|
||||||
DEPENDS = $(OBJ:.o=.d)
|
|
||||||
|
|
||||||
# ------ CLEAN ------
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm $(DIR)*.o $(DIR)*.d *~ $(LIB)
|
|
||||||
|
|
||||||
$(DEPENDS) : $(DIR)
|
|
||||||
sinclude $(DEPENDS)
|
|
|
@ -1,67 +0,0 @@
|
||||||
# library build -*- makefile -*-
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
|
||||||
EXTRAMAKE = Makefile.lammps.linalg
|
|
||||||
|
|
||||||
# ------ FILES ------
|
|
||||||
|
|
||||||
SRC = $(wildcard *.cpp)
|
|
||||||
INC = $(wildcard *.h)
|
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
|
||||||
|
|
||||||
DIR = Obj_mingw64/
|
|
||||||
LIB = $(DIR)libatc.a
|
|
||||||
OBJ = $(SRC:%.cpp=$(DIR)%.o)
|
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
|
||||||
|
|
||||||
# include any MPI settings needed for the ATC library to build with
|
|
||||||
# the same MPI library that LAMMPS is built with
|
|
||||||
|
|
||||||
CC = x86_64-w64-mingw32-g++
|
|
||||||
CCFLAGS = -I../../src -I../../src/STUBS -DMPICH_IGNORE_CXX_SEEK \
|
|
||||||
-O3 -march=core2 -mtune=core2 -mpc64 -msse2 \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing \
|
|
||||||
-DLAMMPS_SMALLBIG -Wno-uninitialized
|
|
||||||
ARCHIVE = x86_64-w64-mingw32-ar
|
|
||||||
ARCHFLAG = -rcs
|
|
||||||
DEPFLAGS = -M
|
|
||||||
LINK = $(CC)
|
|
||||||
LINKFLAGS = -O
|
|
||||||
USRLIB =
|
|
||||||
SYSLIB =
|
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
|
||||||
|
|
||||||
default: $(DIR) $(LIB) Makefile.lammps
|
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
mkdir $(DIR)
|
|
||||||
|
|
||||||
Makefile.lammps:
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
|
||||||
|
|
||||||
$(DIR)%.o:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) -c $< -o $@
|
|
||||||
$(DIR)%.d:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
|
||||||
|
|
||||||
# ------ DEPENDENCIES ------
|
|
||||||
|
|
||||||
DEPENDS = $(OBJ:.o=.d)
|
|
||||||
|
|
||||||
# ------ CLEAN ------
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm $(DIR)*.o $(DIR)*.d *~ $(LIB)
|
|
||||||
|
|
||||||
$(DEPENDS) : $(DIR)
|
|
||||||
sinclude $(DEPENDS)
|
|
|
@ -1,68 +0,0 @@
|
||||||
# library build -*- makefile -*-
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
|
||||||
EXTRAMAKE = Makefile.lammps.linalg
|
|
||||||
|
|
||||||
# ------ FILES ------
|
|
||||||
|
|
||||||
SRC = $(wildcard *.cpp)
|
|
||||||
INC = $(wildcard *.h)
|
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
|
||||||
|
|
||||||
DIR = Obj_mingw64-mpi/
|
|
||||||
LIB = $(DIR)libatc.a
|
|
||||||
OBJ = $(SRC:%.cpp=$(DIR)%.o)
|
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
|
||||||
|
|
||||||
# include any MPI settings needed for the ATC library to build with
|
|
||||||
# the same MPI library that LAMMPS is built with
|
|
||||||
|
|
||||||
CC = x86_64-w64-mingw32-g++
|
|
||||||
CCFLAGS = -I../../tools/mingw-cross/mpich2-win64/include/ \
|
|
||||||
-I../../src -DMPICH_IGNORE_CXX_SEEK \
|
|
||||||
-O3 -march=core2 -mtune=core2 -mpc64 -msse2 \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing \
|
|
||||||
-DLAMMPS_SMALLBIG -Wno-uninitialized
|
|
||||||
ARCHIVE = x86_64-w64-mingw32-ar
|
|
||||||
ARCHFLAG = -rcs
|
|
||||||
DEPFLAGS = -M
|
|
||||||
LINK = $(CC)
|
|
||||||
LINKFLAGS = -O
|
|
||||||
USRLIB =
|
|
||||||
SYSLIB =
|
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
|
||||||
|
|
||||||
default: $(DIR) $(LIB) Makefile.lammps
|
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
mkdir $(DIR)
|
|
||||||
|
|
||||||
Makefile.lammps:
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
|
||||||
|
|
||||||
$(DIR)%.o:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) -c $< -o $@
|
|
||||||
$(DIR)%.d:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
|
||||||
|
|
||||||
# ------ DEPENDENCIES ------
|
|
||||||
|
|
||||||
DEPENDS = $(OBJ:.o=.d)
|
|
||||||
|
|
||||||
# ------ CLEAN ------
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm $(DIR)*.o $(DIR)*.d *~ $(LIB)
|
|
||||||
|
|
||||||
$(DEPENDS) : $(DIR)
|
|
||||||
sinclude $(DEPENDS)
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
# library build -*- makefile -*-
|
||||||
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
# which file will be copied to Makefile.lammps
|
||||||
|
EXTRAMAKE = Makefile.lammps.linalg
|
||||||
|
|
||||||
|
# ------ FILES ------
|
||||||
|
|
||||||
|
SRC = $(wildcard *.cpp)
|
||||||
|
INC = $(wildcard *.h)
|
||||||
|
|
||||||
|
# ------ DEFINITIONS ------
|
||||||
|
|
||||||
|
LIB = libatc.a
|
||||||
|
OBJ = $(SRC:.cpp=.o)
|
||||||
|
|
||||||
|
default: lib
|
||||||
|
|
||||||
|
# ------ SETTINGS ------
|
||||||
|
|
||||||
|
.PHONY: clean lib depend
|
||||||
|
|
||||||
|
# include any MPI settings needed for the ATC library to build with
|
||||||
|
# must be the same MPI library that LAMMPS is built with
|
||||||
|
|
||||||
|
CC = mpicxx
|
||||||
|
CCFLAGS = -O3 -Wall -g -fPIC
|
||||||
|
CPPFLAGS = -I../../src -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1
|
||||||
|
ARCHIVE = ar
|
||||||
|
ARCHFLAG = -rc
|
||||||
|
# ------ MAKE PROCEDURE ------
|
||||||
|
|
||||||
|
lib: $(OBJ)
|
||||||
|
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
||||||
|
@cp $(EXTRAMAKE) Makefile.lammps
|
||||||
|
|
||||||
|
# ------ COMPILE RULES ------
|
||||||
|
|
||||||
|
%.o:%.cpp
|
||||||
|
$(CC) $(CPPFLAGS) $(CCFLAGS) -c $<
|
||||||
|
|
||||||
|
# ------ DEPENDENCIES ------
|
||||||
|
|
||||||
|
depend .depend : fastdep.exe $(SRC)
|
||||||
|
@./fastdep.exe $(INCFLAGS) -- $^ > .depend || exit 1
|
||||||
|
|
||||||
|
fastdep.exe: ../../src/DEPEND/fastdep.c
|
||||||
|
@cc -O -o $@ $<
|
||||||
|
|
||||||
|
# ------ CLEAN ------
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm -f *.o *~ .depend $(LIB) fastdep.exe
|
||||||
|
|
||||||
|
sinclude $(DEPENDS)
|
|
@ -1,39 +0,0 @@
|
||||||
# library build -*- makefile -*-
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
|
||||||
EXTRAMAKE = Makefile.lammps.installed
|
|
||||||
# ------ FILES ------
|
|
||||||
SRC = $(wildcard *.cpp)
|
|
||||||
INC = $(wildcard *.h)
|
|
||||||
# ------ DEFINITIONS ------
|
|
||||||
LIB = libatc.a
|
|
||||||
OBJ = $(SRC:.cpp=.o)
|
|
||||||
# ------ SETTINGS ------
|
|
||||||
|
|
||||||
# include any MPI settings needed for the ATC library to build with
|
|
||||||
# must be the same MPI library that LAMMPS is built with
|
|
||||||
|
|
||||||
CC = mpic++
|
|
||||||
CCFLAGS = -O3 -Wall -g -I../../src -fPIC -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1
|
|
||||||
ARCHIVE = ar
|
|
||||||
ARCHFLAG = -rc
|
|
||||||
DEPFLAGS = -M
|
|
||||||
LINK = $(CC)
|
|
||||||
LINKFLAGS = -O
|
|
||||||
# ------ MAKE PROCEDURE ------
|
|
||||||
lib: $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
# ------ COMPILE RULES ------
|
|
||||||
%.o:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) -c $<
|
|
||||||
%.d:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
|
||||||
# ------ DEPENDENCIES ------
|
|
||||||
DEPENDS = $(OBJ:.o=.d)
|
|
||||||
# ------ CLEAN ------
|
|
||||||
clean:
|
|
||||||
-rm *.o *.d *~ $(LIB)
|
|
||||||
|
|
||||||
sinclude $(DEPENDS)
|
|
|
@ -0,0 +1 @@
|
||||||
|
Makefile.mpi
|
|
@ -14,18 +14,20 @@ INC = $(wildcard *.h)
|
||||||
LIB = libatc.a
|
LIB = libatc.a
|
||||||
OBJ = $(SRC:.cpp=.o)
|
OBJ = $(SRC:.cpp=.o)
|
||||||
|
|
||||||
|
default: lib
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
# ------ SETTINGS ------
|
||||||
|
|
||||||
|
.PHONY: clean lib depend
|
||||||
|
|
||||||
# include any MPI settings needed for the ATC library to build with
|
# include any MPI settings needed for the ATC library to build with
|
||||||
# must be the same MPI library that LAMMPS is built with
|
# must be the same MPI library that LAMMPS is built with
|
||||||
|
|
||||||
CC = g++
|
CC = g++
|
||||||
CCFLAGS = -O -g -fPIC -I../../src -I../../src/STUBS
|
CCFLAGS = -O3 -g -fPIC
|
||||||
|
CPPFLAGS = -I../../src -I../../src/STUBS
|
||||||
ARCHIVE = ar
|
ARCHIVE = ar
|
||||||
ARCHFLAG = -rc
|
ARCHFLAG = -rc
|
||||||
DEPFLAGS = -M
|
|
||||||
LINK = $(CC)
|
|
||||||
LINKFLAGS = -O
|
|
||||||
# ------ MAKE PROCEDURE ------
|
# ------ MAKE PROCEDURE ------
|
||||||
|
|
||||||
lib: $(OBJ)
|
lib: $(OBJ)
|
||||||
|
@ -35,17 +37,19 @@ lib: $(OBJ)
|
||||||
# ------ COMPILE RULES ------
|
# ------ COMPILE RULES ------
|
||||||
|
|
||||||
%.o:%.cpp
|
%.o:%.cpp
|
||||||
$(CC) $(CCFLAGS) -c $<
|
$(CC) $(CPPFLAGS) $(CCFLAGS) -c $<
|
||||||
%.d:%.cpp
|
|
||||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
|
||||||
|
|
||||||
# ------ DEPENDENCIES ------
|
# ------ DEPENDENCIES ------
|
||||||
|
|
||||||
DEPENDS = $(OBJ:.o=.d)
|
depend .depend : fastdep.exe $(SRC)
|
||||||
|
@./fastdep.exe $(INCFLAGS) -- $^ > .depend || exit 1
|
||||||
|
|
||||||
|
fastdep.exe: ../../src/DEPEND/fastdep.c
|
||||||
|
@cc -O -o $@ $<
|
||||||
|
|
||||||
# ------ CLEAN ------
|
# ------ CLEAN ------
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm *.o *.d *~ $(LIB)
|
-rm -f *.o *~ .depend $(LIB) fastdep.exe
|
||||||
|
|
||||||
sinclude $(DEPENDS)
|
sinclude .depend
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Install.py
|
../Install.py
|
|
@ -1,13 +0,0 @@
|
||||||
# -*- makefile -*- wrapper for non-MPI libraries
|
|
||||||
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(MAKE) $(MFLAGS) mingw32-cross
|
|
||||||
rm -f Obj_mingw32-mpi
|
|
||||||
ln -s Obj_mingw32 Obj_mingw32-mpi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) $(MFLAGS) clean-mingw32-cross
|
|
||||||
rm -f Obj_mingw32-mpi
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
# -*- makefile -*- wrapper for non-MPI libraries
|
|
||||||
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(MAKE) $(MFLAGS) mingw64-cross
|
|
||||||
rm -f Obj_mingw64-mpi
|
|
||||||
ln -s Obj_mingw64 Obj_mingw64-mpi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) $(MFLAGS) clean-mingw64-cross
|
|
||||||
rm -f Obj_mingw64-mpi
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
# library build -*- makefile -*-
|
|
||||||
SHELL = /bin/sh
|
SHELL = /bin/sh
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
# which file will be copied to Makefile.lammps
|
||||||
|
@ -7,9 +6,10 @@ EXTRAMAKE = Makefile.lammps.linalg
|
||||||
|
|
||||||
# ------ FILES ------
|
# ------ FILES ------
|
||||||
|
|
||||||
SRC = logexc.cpp wpmd.cpp wpmd_split.cpp
|
SRC = \
|
||||||
vpath %.cpp ivutils/src
|
ivutils/src/logexc.cpp \
|
||||||
vpath %.cpp systems/interact/TCP
|
systems/interact/TCP/wpmd.cpp \
|
||||||
|
systems/interact/TCP/wpmd_split.cpp
|
||||||
|
|
||||||
INC = \
|
INC = \
|
||||||
cerf.h \
|
cerf.h \
|
||||||
|
@ -27,21 +27,21 @@ INC = \
|
||||||
wpmd_split.h
|
wpmd_split.h
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
# ------ DEFINITIONS ------
|
||||||
DIR = Obj_mingw64/
|
|
||||||
LIB = $(DIR)libawpmd.a
|
LIB = libawpmd.a
|
||||||
OBJ = $(SRC:%.cpp=$(DIR)%.o)
|
OBJ = $(SRC:.cpp=.o)
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
# ------ SETTINGS ------
|
||||||
|
|
||||||
# include any MPI settings needed for the ATC library to build with
|
# include any MPI settings needed for the ATC library to build with
|
||||||
# the same MPI library that LAMMPS is built with
|
# the same MPI library that LAMMPS is built with
|
||||||
|
|
||||||
CC = x86_64-w64-mingw32-g++
|
CC = mpicxx
|
||||||
CCFLAGS = -O3 -march=core2 -mtune=core2 -mpc64 -msse2 \
|
CCFLAGS = -O3 -fPIC -Isystems/interact/TCP/ -Isystems/interact -Iivutils/include \
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing \
|
-DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1
|
||||||
-Wall -W -Wno-uninitialized -Isystems/interact/TCP/ -Isystems/interact -Iivutils/include
|
|
||||||
ARCHIVE = x86_64-w64-mingw32-ar
|
ARCHIVE = ar
|
||||||
ARCHFLAG = -rscv
|
ARCHFLAG = -rc
|
||||||
DEPFLAGS = -M
|
DEPFLAGS = -M
|
||||||
#LINK =
|
#LINK =
|
||||||
#LINKFLAGS =
|
#LINKFLAGS =
|
||||||
|
@ -50,23 +50,15 @@ SYSLIB =
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
# ------ MAKE PROCEDURE ------
|
||||||
|
|
||||||
default: $(DIR) $(LIB) Makefile.lammps
|
lib: $(OBJ)
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
mkdir $(DIR)
|
|
||||||
|
|
||||||
Makefile.lammps:
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
@cp $(EXTRAMAKE) Makefile.lammps
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
# ------ COMPILE RULES ------
|
||||||
|
|
||||||
$(DIR)%.o:%.cpp
|
%.o:%.cpp
|
||||||
$(CC) $(CCFLAGS) -c $< -o $@
|
$(CC) $(CCFLAGS) -c $< -o $@
|
||||||
$(DIR)%.d:%.cpp
|
%.d:%.cpp
|
||||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
||||||
|
|
||||||
# ------ DEPENDENCIES ------
|
# ------ DEPENDENCIES ------
|
||||||
|
@ -76,4 +68,4 @@ DEPENDS = $(OBJ:.o=.d)
|
||||||
# ------ CLEAN ------
|
# ------ CLEAN ------
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm *.d *~ $(OBJ) $(LIB)
|
-rm -f *.d *~ $(OBJ) $(LIB)
|
|
@ -36,8 +36,10 @@ OBJ = $(SRC:.cpp=.o)
|
||||||
# include any MPI settings needed for the ATC library to build with
|
# include any MPI settings needed for the ATC library to build with
|
||||||
# the same MPI library that LAMMPS is built with
|
# the same MPI library that LAMMPS is built with
|
||||||
|
|
||||||
CC = mpic++
|
CC = mpicxx
|
||||||
CCFLAGS = -O -fPIC -Isystems/interact/TCP/ -Isystems/interact -Iivutils/include
|
CCFLAGS = -O3 -fPIC -Isystems/interact/TCP/ -Isystems/interact -Iivutils/include \
|
||||||
|
-DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1
|
||||||
|
|
||||||
ARCHIVE = ar
|
ARCHIVE = ar
|
||||||
ARCHFLAG = -rc
|
ARCHFLAG = -rc
|
||||||
DEPFLAGS = -M
|
DEPFLAGS = -M
|
||||||
|
@ -66,4 +68,4 @@ DEPENDS = $(OBJ:.o=.d)
|
||||||
# ------ CLEAN ------
|
# ------ CLEAN ------
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm *.d *~ $(OBJ) $(LIB)
|
-rm -f *.d *~ $(OBJ) $(LIB)
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
# library build -*- makefile -*-
|
|
||||||
SHELL = /bin/sh
|
SHELL = /bin/sh
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
# which file will be copied to Makefile.lammps
|
||||||
|
@ -7,9 +6,10 @@ EXTRAMAKE = Makefile.lammps.linalg
|
||||||
|
|
||||||
# ------ FILES ------
|
# ------ FILES ------
|
||||||
|
|
||||||
SRC = logexc.cpp wpmd.cpp wpmd_split.cpp
|
SRC = \
|
||||||
vpath %.cpp ivutils/src
|
ivutils/src/logexc.cpp \
|
||||||
vpath %.cpp systems/interact/TCP
|
systems/interact/TCP/wpmd.cpp \
|
||||||
|
systems/interact/TCP/wpmd_split.cpp
|
||||||
|
|
||||||
INC = \
|
INC = \
|
||||||
cerf.h \
|
cerf.h \
|
||||||
|
@ -27,22 +27,21 @@ INC = \
|
||||||
wpmd_split.h
|
wpmd_split.h
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
# ------ DEFINITIONS ------
|
||||||
DIR = Obj_mingw32/
|
|
||||||
LIB = $(DIR)libawpmd.a
|
LIB = libawpmd.a
|
||||||
OBJ = $(SRC:%.cpp=$(DIR)%.o)
|
OBJ = $(SRC:.cpp=.o)
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
# ------ SETTINGS ------
|
||||||
|
|
||||||
# include any MPI settings needed for the ATC library to build with
|
# include any MPI settings needed for the ATC library to build with
|
||||||
# the same MPI library that LAMMPS is built with
|
# the same MPI library that LAMMPS is built with
|
||||||
|
|
||||||
CC = i686-w64-mingw32-g++
|
CC = g++
|
||||||
CCFLAGS = -O2 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
|
CCFLAGS = -O3 -fPIC -Isystems/interact/TCP/ -Isystems/interact -Iivutils/include \
|
||||||
-finline-functions \
|
-I../../src/STUBS
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing \
|
|
||||||
-Wall -W -Wno-uninitialized -Isystems/interact/TCP/ -Isystems/interact -Iivutils/include
|
ARCHIVE = ar
|
||||||
ARCHIVE = i686-w64-mingw32-ar
|
ARCHFLAG = -rc
|
||||||
ARCHFLAG = -rscv
|
|
||||||
DEPFLAGS = -M
|
DEPFLAGS = -M
|
||||||
#LINK =
|
#LINK =
|
||||||
#LINKFLAGS =
|
#LINKFLAGS =
|
||||||
|
@ -51,23 +50,15 @@ SYSLIB =
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
# ------ MAKE PROCEDURE ------
|
||||||
|
|
||||||
default: $(DIR) $(LIB) Makefile.lammps
|
lib: $(OBJ)
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
mkdir $(DIR)
|
|
||||||
|
|
||||||
Makefile.lammps:
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
@cp $(EXTRAMAKE) Makefile.lammps
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
# ------ COMPILE RULES ------
|
||||||
|
|
||||||
$(DIR)%.o:%.cpp
|
%.o:%.cpp
|
||||||
$(CC) $(CCFLAGS) -c $< -o $@
|
$(CC) $(CCFLAGS) -c $< -o $@
|
||||||
$(DIR)%.d:%.cpp
|
%.d:%.cpp
|
||||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
||||||
|
|
||||||
# ------ DEPENDENCIES ------
|
# ------ DEPENDENCIES ------
|
||||||
|
@ -77,4 +68,4 @@ DEPENDS = $(OBJ:.o=.d)
|
||||||
# ------ CLEAN ------
|
# ------ CLEAN ------
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm *.d *~ $(OBJ) $(LIB)
|
-rm -f *.d *~ $(OBJ) $(LIB)
|
|
@ -13,7 +13,7 @@ Syntax from lib/colvars dir: python Install.py -m machine -e suffix
|
||||||
|
|
||||||
specify -m and optionally -e, order does not matter
|
specify -m and optionally -e, order does not matter
|
||||||
|
|
||||||
-m = peform a clean followed by "make -f Makefile.machine"
|
-m = delete all existing objects, followed by "make -f Makefile.machine"
|
||||||
machine = suffix of a lib/colvars/Makefile.* or of a
|
machine = suffix of a lib/colvars/Makefile.* or of a
|
||||||
src/MAKE/MACHINES/Makefile.* file
|
src/MAKE/MACHINES/Makefile.* file
|
||||||
-e = set EXTRAMAKE variable in Makefile.machine to Makefile.lammps.suffix
|
-e = set EXTRAMAKE variable in Makefile.machine to Makefile.lammps.suffix
|
||||||
|
@ -21,14 +21,14 @@ specify -m and optionally -e, order does not matter
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
make lib-colvars args="-m g++" # build COLVARS lib with GNU g++ compiler
|
make lib-colvars args="-m mpi" # build COLVARS lib with default mpi compiler wrapper
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# print error message or help
|
# print error message or help
|
||||||
|
|
||||||
def error(str=None):
|
def error(str=None):
|
||||||
if not str: print(help)
|
if not str: print(help)
|
||||||
else: print("ERROR"),str
|
else: print("ERROR",str)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
# parse args
|
# parse args
|
||||||
|
@ -122,7 +122,7 @@ for line in lines:
|
||||||
fp.write(line)
|
fp.write(line)
|
||||||
fp.close()
|
fp.close()
|
||||||
|
|
||||||
# make the library via Makefile.auto
|
# make the library via Makefile.auto optionally with parallel make
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
|
@ -132,9 +132,9 @@ except:
|
||||||
|
|
||||||
print("Building lib%s.a ..." % lib)
|
print("Building lib%s.a ..." % lib)
|
||||||
cmd = ["make -f Makefile.auto clean"]
|
cmd = ["make -f Makefile.auto clean"]
|
||||||
print(subprocess.check_output(cmd, shell=True).decode())
|
print(subprocess.check_output(cmd, shell=True).decode('UTF-8'))
|
||||||
cmd = ["make -f Makefile.auto -j%d" % n_cpus]
|
cmd = ["make -f Makefile.auto -j%d" % n_cpus]
|
||||||
print(subprocess.check_output(cmd, shell=True).decode())
|
print(subprocess.check_output(cmd, shell=True).decode('UTF-8'))
|
||||||
|
|
||||||
if os.path.exists("lib%s.a" % lib): print("Build was successful")
|
if os.path.exists("lib%s.a" % lib): print("Build was successful")
|
||||||
else: error("Build of lib/%s/lib%s.a was NOT successful" % (lib,lib))
|
else: error("Build of lib/%s/lib%s.a was NOT successful" % (lib,lib))
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
# -*- makefile -*- to build Colvars module with MinGW 32-bit
|
|
||||||
|
|
||||||
EXTRAMAKE = Makefile.lammps.empty
|
|
||||||
|
|
||||||
COLVARS_LIB = libcolvars.a
|
|
||||||
COLVARS_OBJ_DIR = Obj_mingw64/
|
|
||||||
|
|
||||||
CXX = i686-w64-mingw32-g++
|
|
||||||
CXXFLAGS = -O2 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
|
|
||||||
-fno-rtti -fno-exceptions -finline-functions \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing \
|
|
||||||
-Wall -W -Wno-uninitialized
|
|
||||||
AR = i686-w64-mingw32-ar
|
|
||||||
ARFLAGS = -rscv
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
.PHONY: default clean
|
|
||||||
|
|
||||||
default: $(COLVARS_OBJ_DIR) $(COLVARS_LIB) Makefile.lammps
|
|
||||||
|
|
||||||
include Makefile.common
|
|
||||||
|
|
||||||
$(COLVARS_OBJ_DIR):
|
|
||||||
mkdir $(COLVARS_OBJ_DIR)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm -f $(COLVARS_OBJS) $(COLVARS_LIB)
|
|
||||||
-rmdir $(COLVARS_OBJ_DIR)
|
|
||||||
|
|
||||||
Makefile.lammps:
|
|
||||||
-cp $(EXTRAMAKE) Makefile.lammps
|
|
|
@ -1,13 +0,0 @@
|
||||||
# -*- makefile -*- wrapper for non-MPI libraries
|
|
||||||
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(MAKE) $(MFLAGS) mingw32-cross
|
|
||||||
-rm -f Obj_mingw32-mpi
|
|
||||||
ln -s Obj_mingw32 Obj_mingw32-mpi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) $(MFLAGS) clean-mingw32-cross
|
|
||||||
-rm -f Obj_mingw32-mpi
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
# -*- makefile -*- to build Colvars module with MinGW 32-bit
|
|
||||||
|
|
||||||
EXTRAMAKE = Makefile.lammps.empty
|
|
||||||
|
|
||||||
COLVARS_LIB = libcolvars.a
|
|
||||||
COLVARS_OBJ_DIR = Obj_mingw32/
|
|
||||||
|
|
||||||
CXX = x86_64-w64-mingw32-g++
|
|
||||||
CXXFLAGS = -O2 -march=core2 -mtune=core2 -mpc64 -msse2 \
|
|
||||||
-fno-rtti -fno-exceptions -finline-functions \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing \
|
|
||||||
-Wall -W -Wno-uninitialized
|
|
||||||
AR = x86_64-w64-mingw32-ar
|
|
||||||
ARFLAGS = -rscv
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
.PHONY: default clean
|
|
||||||
|
|
||||||
default: $(COLVARS_OBJ_DIR) $(COLVARS_LIB) Makefile.lammps
|
|
||||||
|
|
||||||
include Makefile.common
|
|
||||||
|
|
||||||
$(COLVARS_OBJ_DIR):
|
|
||||||
mkdir $(COLVARS_OBJ_DIR)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm -f $(COLVARS_OBJS) $(COLVARS_LIB)
|
|
||||||
-rmdir $(COLVARS_OBJ_DIR)
|
|
||||||
|
|
||||||
Makefile.lammps:
|
|
||||||
-cp $(EXTRAMAKE) Makefile.lammps
|
|
|
@ -1,13 +0,0 @@
|
||||||
# -*- makefile -*- wrapper for non-MPI libraries
|
|
||||||
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(MAKE) $(MFLAGS) mingw64-cross
|
|
||||||
-rm -f Obj_mingw64-mpi
|
|
||||||
ln -s Obj_mingw64 Obj_mingw64-mpi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) $(MFLAGS) clean-mingw64-cross
|
|
||||||
-rm -f Obj_mingw64-mpi
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
# -*- makefile -*- to build Colvars module with default MPI compiler wrapper
|
||||||
|
|
||||||
|
EXTRAMAKE = Makefile.lammps.empty
|
||||||
|
|
||||||
|
COLVARS_LIB = libcolvars.a
|
||||||
|
COLVARS_OBJ_DIR =
|
||||||
|
|
||||||
|
CXX = mpicxx
|
||||||
|
CXXFLAGS = -O2 -g -Wall -fPIC -funroll-loops
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -rscv
|
||||||
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
.PHONY: default clean
|
||||||
|
|
||||||
|
default: $(COLVARS_LIB) Makefile.lammps
|
||||||
|
|
||||||
|
include Makefile.common
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm -f $(COLVARS_OBJS) $(COLVARS_LIB)
|
||||||
|
|
||||||
|
Makefile.lammps:
|
||||||
|
-cp $(EXTRAMAKE) Makefile.lammps
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
# -*- makefile -*- to build Colvars module with GNU compiler
|
||||||
|
|
||||||
|
EXTRAMAKE = Makefile.lammps.empty
|
||||||
|
|
||||||
|
COLVARS_LIB = libcolvars.a
|
||||||
|
COLVARS_OBJ_DIR =
|
||||||
|
|
||||||
|
CXX = g++
|
||||||
|
CXXFLAGS = -O2 -g -Wall -fPIC -funroll-loops
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -rscv
|
||||||
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
.PHONY: default clean
|
||||||
|
|
||||||
|
default: $(COLVARS_LIB) Makefile.lammps
|
||||||
|
|
||||||
|
include Makefile.common
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm -f $(COLVARS_OBJS) $(COLVARS_LIB)
|
||||||
|
|
||||||
|
Makefile.lammps:
|
||||||
|
-cp $(EXTRAMAKE) Makefile.lammps
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
obj
|
/obj
|
||||||
obj_ocl
|
/obj_ocl
|
||||||
ocl_get_devices
|
/ocl_get_devices
|
||||||
nvc_get_devices
|
/nvc_get_devices
|
||||||
|
/*.cubin
|
||||||
|
/*_cubin.h
|
||||||
|
|
|
@ -3,44 +3,57 @@
|
||||||
# Install.py tool to build the GPU library
|
# Install.py tool to build the GPU library
|
||||||
# used to automate the steps described in the README file in this dir
|
# used to automate the steps described in the README file in this dir
|
||||||
|
|
||||||
import sys,os,re,commands
|
from __future__ import print_function
|
||||||
|
import sys,os,subprocess
|
||||||
|
|
||||||
# help message
|
# help message
|
||||||
|
|
||||||
help = """
|
help = """
|
||||||
Syntax: python Install.py -i isuffix -h hdir -a arch -p precision -e esuffix -m -o osuffix
|
Syntax from src dir: make lib-gpu args="-m machine -h hdir -a arch -p precision -e esuffix -m -o osuffix"
|
||||||
specify one or more options, order does not matter
|
Syntax from lib dir: python Install.py -m machine -h hdir -a arch -p precision -e esuffix -m -o osuffix
|
||||||
copies an existing Makefile.isuffix in lib/gpu to Makefile.auto
|
|
||||||
optionally edits these variables in Makefile.auto:
|
|
||||||
CUDA_HOME, CUDA_ARCH, CUDA_PRECISION, EXTRAMAKE
|
|
||||||
optionally uses Makefile.auto to build the GPU library -> libgpu.a
|
|
||||||
and to copy a Makefile.lammps.esuffix -> Makefile.lammps
|
|
||||||
optionally copies Makefile.auto to a new Makefile.osuffix
|
|
||||||
|
|
||||||
-i = use Makefile.isuffix as starting point, copy to Makefile.auto
|
specify one or more options, order does not matter
|
||||||
default isuffix = linux
|
|
||||||
|
copies an existing Makefile.machine in lib/gpu to Makefile.auto
|
||||||
|
optionally edits these variables in Makefile.auto:
|
||||||
|
CUDA_HOME, CUDA_ARCH, CUDA_PRECISION, EXTRAMAKE
|
||||||
|
optionally uses Makefile.auto to build the GPU library -> libgpu.a
|
||||||
|
and to copy a Makefile.lammps.esuffix -> Makefile.lammps
|
||||||
|
optionally copies Makefile.auto to a new Makefile.osuffix
|
||||||
|
|
||||||
|
-m = use Makefile.machine as starting point, copy to Makefile.auto
|
||||||
|
default machine = linux
|
||||||
-h = set CUDA_HOME variable in Makefile.auto to hdir
|
-h = set CUDA_HOME variable in Makefile.auto to hdir
|
||||||
hdir = path to NVIDIA Cuda software, e.g. /usr/local/cuda
|
hdir = path to NVIDIA Cuda software, e.g. /usr/local/cuda
|
||||||
-a = set CUDA_ARCH variable in Makefile.auto to arch
|
-a = set CUDA_ARCH variable in Makefile.auto to arch
|
||||||
use arch = ?? for K40 (Tesla)
|
use arch = 20 for Tesla C2050/C2070 (Fermi) (deprecated as of CUDA 8.0)
|
||||||
use arch = 37 for dual K80 (Tesla)
|
or GeForce GTX 580 or similar
|
||||||
use arch = 60 for P100 (Pascal)
|
use arch = 30 for Tesla K10 (Kepler)
|
||||||
|
use arch = 35 for Tesla K40 (Kepler) or GeForce GTX Titan or similar
|
||||||
|
use arch = 37 for Tesla dual K80 (Kepler)
|
||||||
|
use arch = 60 for Tesla P100 (Pascal)
|
||||||
-p = set CUDA_PRECISION variable in Makefile.auto to precision
|
-p = set CUDA_PRECISION variable in Makefile.auto to precision
|
||||||
use precision = double or mixed or single
|
use precision = double or mixed or single
|
||||||
-e = set EXTRAMAKE variable in Makefile.auto to Makefile.lammps.esuffix
|
-e = set EXTRAMAKE variable in Makefile.auto to Makefile.lammps.esuffix
|
||||||
-m = make the GPU library using Makefile.auto
|
-b = make the GPU library using Makefile.auto
|
||||||
first performs a "make clean"
|
first performs a "make clean"
|
||||||
produces libgpu.a if successful
|
then produces libgpu.a if successful
|
||||||
also copies EXTRAMAKE file -> Makefile.lammps
|
also copies EXTRAMAKE file -> Makefile.lammps
|
||||||
-e can set which Makefile.lammps.esuffix file is copied
|
-e can set which Makefile.lammps.esuffix file is copied
|
||||||
-o = copy final Makefile.auto to Makefile.osuffix
|
-o = copy final Makefile.auto to Makefile.osuffix
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
make lib-gpu args="-b" # build GPU lib with default Makefile.linux
|
||||||
|
make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
|
||||||
|
make lib-gpu args="-m mpi -a 35 -p single -o mpi.mixed -b" # create new Makefile.mpi.mixed, also build GPU lib with these settings
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# print error message or help
|
# print error message or help
|
||||||
|
|
||||||
def error(str=None):
|
def error(str=None):
|
||||||
if not str: print help
|
if not str: print(help)
|
||||||
else: print "ERROR",str
|
else: print("ERROR",str)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
# parse args
|
# parse args
|
||||||
|
@ -56,7 +69,7 @@ outflag = 0
|
||||||
|
|
||||||
iarg = 0
|
iarg = 0
|
||||||
while iarg < nargs:
|
while iarg < nargs:
|
||||||
if args[iarg] == "-i":
|
if args[iarg] == "-m":
|
||||||
if iarg+2 > nargs: error()
|
if iarg+2 > nargs: error()
|
||||||
isuffix = args[iarg+1]
|
isuffix = args[iarg+1]
|
||||||
iarg += 2
|
iarg += 2
|
||||||
|
@ -80,7 +93,7 @@ while iarg < nargs:
|
||||||
eflag = 1
|
eflag = 1
|
||||||
lmpsuffix = args[iarg+1]
|
lmpsuffix = args[iarg+1]
|
||||||
iarg += 2
|
iarg += 2
|
||||||
elif args[iarg] == "-m":
|
elif args[iarg] == "-b":
|
||||||
makeflag = 1
|
makeflag = 1
|
||||||
iarg += 1
|
iarg += 1
|
||||||
elif args[iarg] == "-o":
|
elif args[iarg] == "-o":
|
||||||
|
@ -108,9 +121,9 @@ fp = open("Makefile.auto",'w')
|
||||||
for line in lines:
|
for line in lines:
|
||||||
words = line.split()
|
words = line.split()
|
||||||
if len(words) != 3:
|
if len(words) != 3:
|
||||||
print >>fp,line,
|
fp.write(line)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if hflag and words[0] == "CUDA_HOME" and words[1] == '=':
|
if hflag and words[0] == "CUDA_HOME" and words[1] == '=':
|
||||||
line = line.replace(words[2],hdir)
|
line = line.replace(words[2],hdir)
|
||||||
if aflag and words[0] == "CUDA_ARCH" and words[1] == '=':
|
if aflag and words[0] == "CUDA_ARCH" and words[1] == '=':
|
||||||
|
@ -119,20 +132,20 @@ for line in lines:
|
||||||
line = line.replace(words[2],precstr)
|
line = line.replace(words[2],precstr)
|
||||||
if eflag and words[0] == "EXTRAMAKE" and words[1] == '=':
|
if eflag and words[0] == "EXTRAMAKE" and words[1] == '=':
|
||||||
line = line.replace(words[2],"Makefile.lammps.%s" % lmpsuffix)
|
line = line.replace(words[2],"Makefile.lammps.%s" % lmpsuffix)
|
||||||
|
|
||||||
print >>fp,line,
|
|
||||||
|
|
||||||
|
fp.write(line)
|
||||||
fp.close()
|
fp.close()
|
||||||
|
|
||||||
# perform make
|
# perform make
|
||||||
# make operations copies EXTRAMAKE file to Makefile.lammps
|
# make operations copies EXTRAMAKE file to Makefile.lammps
|
||||||
|
|
||||||
if makeflag:
|
if makeflag:
|
||||||
print "Building libgpu.a ..."
|
print("Building libgpu.a ...")
|
||||||
cmd = "rm -f libgpu.a"
|
cmd = "rm -f libgpu.a"
|
||||||
commands.getoutput(cmd)
|
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
cmd = "make -f Makefile.auto clean; make -f Makefile.auto"
|
cmd = "make -f Makefile.auto clean; make -f Makefile.auto"
|
||||||
commands.getoutput(cmd)
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
print(txt.decode('UTF-8'))
|
||||||
if not os.path.exists("libgpu.a"):
|
if not os.path.exists("libgpu.a"):
|
||||||
error("Build of lib/gpu/libgpu.a was NOT successful")
|
error("Build of lib/gpu/libgpu.a was NOT successful")
|
||||||
if not os.path.exists("Makefile.lammps"):
|
if not os.path.exists("Makefile.lammps"):
|
||||||
|
@ -141,6 +154,6 @@ if makeflag:
|
||||||
# copy new Makefile.auto to Makefile.osuffix
|
# copy new Makefile.auto to Makefile.osuffix
|
||||||
|
|
||||||
if outflag:
|
if outflag:
|
||||||
print "Creating new Makefile.%s" % osuffix
|
print("Creating new Makefile.%s" % osuffix)
|
||||||
cmd = "cp Makefile.auto Makefile.%s" % osuffix
|
cmd = "cp Makefile.auto Makefile.%s" % osuffix
|
||||||
commands.getoutput(cmd)
|
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
|
|
@ -37,7 +37,7 @@ CUDA_INCLUDE = -I$(CUDA_HOME)/include
|
||||||
CUDA_LIB = -L$(CUDA_HOME)/lib64
|
CUDA_LIB = -L$(CUDA_HOME)/lib64
|
||||||
CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math $(LMP_INC)
|
CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math $(LMP_INC)
|
||||||
|
|
||||||
CUDR_CPP = mpic++ -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC
|
CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC
|
||||||
CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias
|
CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias
|
||||||
|
|
||||||
BIN_DIR = ./
|
BIN_DIR = ./
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
CUDA_HOME = ../../tools/mingw-cross/OpenCL
|
|
||||||
|
|
||||||
OCL_CPP = i686-w64-mingw32-g++ -O2 -march=i686 -mtune=generic -mfpmath=387 \
|
|
||||||
-mpc64 -DMPI_GERYON -DUCL_NO_EXIT -I../../src/STUBS \
|
|
||||||
-I$(CUDA_HOME)/include
|
|
||||||
OCL_LINK = -static -Wl,--enable-stdcall-fixup -L$(CUDA_HOME)/../Obj_mingw32 -Wl,-Bdynamic,-lOpenCL,-Bstatic -L../../src/STUBS -lmpi_mingw32
|
|
||||||
OCL_PREC = -D_SINGLE_DOUBLE
|
|
||||||
OCL_TUNE = -DFERMI_OCL
|
|
||||||
EXTRAMAKE = Makefile.lammps.mingw-cross
|
|
||||||
|
|
||||||
BIN_DIR = Obj_mingw32
|
|
||||||
OBJ_DIR = Obj_mingw32
|
|
||||||
LIB_DIR = Obj_mingw32
|
|
||||||
AR = i686-w64-mingw32-ar
|
|
||||||
BSH = /bin/sh
|
|
||||||
|
|
||||||
include Opencl.makefile
|
|
|
@ -1,19 +0,0 @@
|
||||||
CUDA_HOME = ../../tools/mingw-cross/OpenCL
|
|
||||||
|
|
||||||
OCL_CPP = i686-w64-mingw32-g++ -O2 -march=i686 -mtune=generic -mfpmath=387 \
|
|
||||||
-mpc64 -DMPI_GERYON -DUCL_NO_EXIT -I$(CUDA_HOME)/include \
|
|
||||||
-I../../tools/mingw-cross/mpich2-win32/include/ \
|
|
||||||
-DMPICH_IGNORE_CXX_SEEK
|
|
||||||
OCL_LINK = -static -Wl,--enable-stdcall-fixup -L$(CUDA_HOME)/../Obj_mingw32 -Wl,-Bdynamic,-lOpenCL,-Bstatic \
|
|
||||||
-L../../tools/mingw-cross/mpich2-win32/lib -lmpi
|
|
||||||
OCL_PREC = -D_SINGLE_DOUBLE
|
|
||||||
OCL_TUNE = -DFERMI_OCL
|
|
||||||
EXTRAMAKE = Makefile.lammps.mingw-cross
|
|
||||||
|
|
||||||
BIN_DIR = Obj_mingw32-mpi
|
|
||||||
OBJ_DIR = Obj_mingw32-mpi
|
|
||||||
LIB_DIR = Obj_mingw32-mpi
|
|
||||||
AR = i686-w64-mingw32-ar
|
|
||||||
BSH = /bin/sh
|
|
||||||
|
|
||||||
include Opencl.makefile
|
|
|
@ -1,18 +0,0 @@
|
||||||
CUDA_HOME = ../../tools/mingw-cross/OpenCL
|
|
||||||
|
|
||||||
OCL_CPP = x86_64-w64-mingw32-g++ -O3 -march=core2 -mtune=core2 -mpc64 \
|
|
||||||
-msse2 -DMPI_GERYON -DUCL_NO_EXIT -I../../src/STUBS \
|
|
||||||
-I$(CUDA_HOME)/include
|
|
||||||
OCL_LINK = -static -Wl,--enable-stdcall-fixup -L$(CUDA_HOME)/../Obj_mingw64 -Wl,-Bdynamic,-lOpenCL,-Bstatic \
|
|
||||||
-L../../src/STUBS -lmpi_mingw64
|
|
||||||
OCL_PREC = -D_SINGLE_DOUBLE
|
|
||||||
OCL_TUNE = -DFERMI_OCL
|
|
||||||
EXTRAMAKE = Makefile.lammps.mingw-cross
|
|
||||||
|
|
||||||
BIN_DIR = Obj_mingw64
|
|
||||||
OBJ_DIR = Obj_mingw64
|
|
||||||
LIB_DIR = Obj_mingw64
|
|
||||||
AR = x86_64-w64-mingw32-ar
|
|
||||||
BSH = /bin/sh
|
|
||||||
|
|
||||||
include Opencl.makefile
|
|
|
@ -1,20 +0,0 @@
|
||||||
CUDA_HOME = ../../tools/mingw-cross/OpenCL
|
|
||||||
|
|
||||||
OCL_CPP = x86_64-w64-mingw32-g++ -O3 -march=core2 -mtune=core2 -mpc64 \
|
|
||||||
-msse2 -DMPI_GERYON -DUCL_NO_EXIT -I$(CUDA_HOME)/include \
|
|
||||||
-I../../tools/mingw-cross/mpich2-win64/include/ \
|
|
||||||
-DMPICH_IGNORE_CXX_SEEK
|
|
||||||
|
|
||||||
OCL_LINK = -static -Wl,--enable-stdcall-fixup -L$(CUDA_HOME)/../Obj_mingw64 -Wl,-Bdynamic,-lOpenCL,-Bstatic \
|
|
||||||
-L../../tools/mingw-cross/mpich2-win64/lib -lmpi
|
|
||||||
OCL_PREC = -D_SINGLE_DOUBLE
|
|
||||||
OCL_TUNE = -DFERMI_OCL
|
|
||||||
EXTRAMAKE = Makefile.lammps.mingw-cross
|
|
||||||
|
|
||||||
BIN_DIR = Obj_mingw64-mpi
|
|
||||||
OBJ_DIR = Obj_mingw64-mpi
|
|
||||||
LIB_DIR = Obj_mingw64-mpi
|
|
||||||
AR = x86_64-w64-mingw32-ar
|
|
||||||
BSH = /bin/sh
|
|
||||||
|
|
||||||
include Opencl.makefile
|
|
|
@ -0,0 +1 @@
|
||||||
|
Makefile.linux
|
|
@ -1,5 +1,5 @@
|
||||||
# /* ----------------------------------------------------------------------
|
# /* ----------------------------------------------------------------------
|
||||||
# Generic Makefile for CUDA using MPI STUBS library
|
# Generic Linux Makefile for CUDA
|
||||||
# - Change CUDA_ARCH for your GPU
|
# - Change CUDA_ARCH for your GPU
|
||||||
# ------------------------------------------------------------------------- */
|
# ------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
@ -7,23 +7,38 @@
|
||||||
|
|
||||||
EXTRAMAKE = Makefile.lammps.standard
|
EXTRAMAKE = Makefile.lammps.standard
|
||||||
|
|
||||||
CUDA_HOME = $(HOME)/cuda
|
ifeq ($(CUDA_HOME),)
|
||||||
|
CUDA_HOME = /usr/local/cuda
|
||||||
|
endif
|
||||||
|
|
||||||
NVCC = nvcc
|
NVCC = nvcc
|
||||||
|
|
||||||
# Tesla CUDA
|
# Tesla CUDA
|
||||||
CUDA_ARCH = -arch=sm_20
|
CUDA_ARCH = -arch=sm_21
|
||||||
# newer CUDA
|
# newer CUDA
|
||||||
#CUDA_ARCH = -arch=sm_13
|
#CUDA_ARCH = -arch=sm_13
|
||||||
# older CUDA
|
# older CUDA
|
||||||
#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE
|
#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE
|
||||||
|
CUDA_ARCH = -arch=sm_35
|
||||||
|
|
||||||
|
# this setting should match LAMMPS Makefile
|
||||||
|
# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL
|
||||||
|
|
||||||
|
LMP_INC = -DLAMMPS_SMALLBIG
|
||||||
|
|
||||||
|
# precision for GPU calculations
|
||||||
|
# -D_SINGLE_SINGLE # Single precision for all calculations
|
||||||
|
# -D_DOUBLE_DOUBLE # Double precision for all calculations
|
||||||
|
# -D_SINGLE_DOUBLE # Accumulation of forces, etc. in double
|
||||||
|
|
||||||
CUDA_PRECISION = -D_SINGLE_DOUBLE
|
CUDA_PRECISION = -D_SINGLE_DOUBLE
|
||||||
CUDA_INCLUDE = -I$(CUDA_HOME)/include
|
|
||||||
CUDA_LIB = -L$(CUDA_HOME)/lib64 -L../../src/STUBS -lmpi
|
|
||||||
CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math
|
|
||||||
|
|
||||||
CUDR_CPP = g++ -DMPI_GERYON -DUCL_NO_EXIT -I../../src/STUBS
|
CUDA_INCLUDE = -I$(CUDA_HOME)/include
|
||||||
CUDR_OPTS = -O2
|
CUDA_LIB = -L$(CUDA_HOME)/lib64 -L../../src/STUBS -lmpi_stubs
|
||||||
|
CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math $(LMP_INC)
|
||||||
|
|
||||||
|
CUDR_CPP = g++ -DMPI_GERYON -DUCL_NO_EXIT -fPIC -I../../src/STUBS
|
||||||
|
CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias
|
||||||
|
|
||||||
BIN_DIR = ./
|
BIN_DIR = ./
|
||||||
OBJ_DIR = ./
|
OBJ_DIR = ./
|
||||||
|
@ -31,5 +46,7 @@ LIB_DIR = ./
|
||||||
AR = ar
|
AR = ar
|
||||||
BSH = /bin/sh
|
BSH = /bin/sh
|
||||||
|
|
||||||
|
CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini
|
||||||
|
|
||||||
include Nvidia.makefile
|
include Nvidia.makefile
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Install.py
|
../Install.py
|
|
@ -9,12 +9,14 @@ HDF5_PATH=/usr
|
||||||
INC=-I include
|
INC=-I include
|
||||||
AR=ar
|
AR=ar
|
||||||
ARFLAGS=rc
|
ARFLAGS=rc
|
||||||
LIB=libch5md.a
|
# need to build two libraries to not break compatibility and to support Install.py
|
||||||
|
LIB=libh5md.a libch5md.a
|
||||||
|
|
||||||
all: lib Makefile.lammps
|
all: lib Makefile.lammps
|
||||||
|
|
||||||
build:
|
build:
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
|
|
||||||
build/ch5md.o: src/ch5md.c | build
|
build/ch5md.o: src/ch5md.c | build
|
||||||
$(CC) $(INC) $(CFLAGS) -c $< -o $@
|
$(CC) $(INC) $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
@ -23,8 +25,11 @@ Makefile.lammps:
|
||||||
|
|
||||||
.PHONY: all lib clean
|
.PHONY: all lib clean
|
||||||
|
|
||||||
$(LIB): build/ch5md.o
|
libch5md.a : build/ch5md.o
|
||||||
$(AR) $(ARFLAGS) $(LIB) build/ch5md.o
|
$(AR) $(ARFLAGS) $@ build/ch5md.o
|
||||||
|
|
||||||
|
libh5md.a : build/ch5md.o
|
||||||
|
$(AR) $(ARFLAGS) $@ build/ch5md.o
|
||||||
|
|
||||||
lib: $(LIB)
|
lib: $(LIB)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Makefile.h5cc
|
|
@ -0,0 +1 @@
|
||||||
|
Makefile.h5cc
|
|
@ -1,2 +1,3 @@
|
||||||
/Makefile.KIM_DIR
|
/Makefile.KIM_DIR
|
||||||
/Makefile.KIM_Config
|
/Makefile.KIM_Config
|
||||||
|
/installed-kim-api-*
|
||||||
|
|
|
@ -1,150 +1,301 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# install.py tool to setup the kim-api library
|
# install.py tool to download, compile, and setup the kim-api library
|
||||||
# used to automate the steps described in the README file in this dir
|
# used to automate the steps described in the README file in this dir
|
||||||
|
|
||||||
import sys,os,re,urllib,commands
|
from __future__ import print_function
|
||||||
|
import sys,os,re,subprocess
|
||||||
|
|
||||||
help = """
|
help = """
|
||||||
Syntax: install.py -v version -c kim-dir -b kim-model-name -a kim-name
|
Syntax from src dir: make lib-kim args="-b -v version -a kim-name"
|
||||||
specify one or more options, order does not matter
|
or: make lib-kim args="-b -a everything"
|
||||||
-v = version of kim-api to download and work with
|
or: make lib-kim args="-n -a kim-name"
|
||||||
default = kim-api-v1.8.2 (current as of June 2017)
|
or: make lib-kim args="-p /usr/local/open-kim -a kim-name"
|
||||||
-c = create Makefile.KIM_DIR within lammps lib/kim to configure lammps
|
Syntax from lib dir: python Install.py -b -v version -a kim-name
|
||||||
for use with the kim-api library installed at "kim-dir" (absolute
|
or: python Install.py -b -a everything
|
||||||
path). default = this dir
|
or: python Install.py -n -a kim-name
|
||||||
-b = build kim-api and kim model where kim-model-name can be a specific
|
or: python Install.py -p /usr/local/open-kim -a kim-name
|
||||||
openkim.org model name (such as
|
|
||||||
"EAM_Dynamo_Ackland_W__MO_141627196590_002") or the keyword
|
specify one or more options, order does not matter
|
||||||
"OpenKIM" to install all compatible models from the openkim.org
|
|
||||||
site.
|
-v = version of KIM API library to use
|
||||||
-a = add kim-name openkim.org item (model driver or model) to existing
|
default = kim-api-v1.8.2 (current as of June 2017)
|
||||||
kim-api instalation.
|
-b = download and build base KIM API library with example Models
|
||||||
|
this will delete any previous installation in the current folder
|
||||||
|
-n = do NOT download and build base KIM API library.
|
||||||
|
Use an existing installation
|
||||||
|
-p = specify location of KIM API installation (implies -n)
|
||||||
|
-a = add single KIM model or model driver with kim-name
|
||||||
|
to existing KIM API lib (see example below).
|
||||||
|
If kim-name = everything, then rebuild KIM API library with
|
||||||
|
*all* available OpenKIM Models (make take a long time).
|
||||||
|
-vv = be more verbose about what is happening while the script runs
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
make lib-kim args="-b" # install KIM API lib with only example models
|
||||||
|
make lib-kim args="-a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # Ditto plus one model
|
||||||
|
make lib-kim args="-b -a everything" # install KIM API lib with all models
|
||||||
|
make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # only add one model or model driver
|
||||||
|
|
||||||
|
See the list of KIM model drivers here:
|
||||||
|
https://openkim.org/kim-items/model-drivers/alphabetical
|
||||||
|
|
||||||
|
See the list of all KIM models here:
|
||||||
|
https://openkim.org/kim-items/models/by-model-drivers
|
||||||
|
|
||||||
|
See the list of example KIM models included by default here:
|
||||||
|
https://openkim.org/kim-api
|
||||||
|
in the "What is in the KIM API source package?" section
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def error():
|
def error(str=None):
|
||||||
print help
|
if not str: print(help)
|
||||||
|
else: print("ERROR",str)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
# expand to full path name
|
||||||
|
# process leading '~' or relative path
|
||||||
|
|
||||||
|
def fullpath(path):
|
||||||
|
return os.path.abspath(os.path.expanduser(path))
|
||||||
|
|
||||||
|
def which(program):
|
||||||
|
def is_exe(fpath):
|
||||||
|
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
|
||||||
|
|
||||||
|
fpath, fname = os.path.split(program)
|
||||||
|
if fpath:
|
||||||
|
if is_exe(program):
|
||||||
|
return program
|
||||||
|
else:
|
||||||
|
for path in os.environ["PATH"].split(os.pathsep):
|
||||||
|
path = path.strip('"')
|
||||||
|
exe_file = os.path.join(path, program)
|
||||||
|
if is_exe(exe_file):
|
||||||
|
return exe_file
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
def geturl(url,fname):
|
||||||
|
if which('curl') != None:
|
||||||
|
cmd = 'curl -L -o "%s" %s' % (fname,url)
|
||||||
|
elif which('wget') != None:
|
||||||
|
cmd = 'wget -O "%s" %s' % (fname,url)
|
||||||
|
else: error("cannot find 'wget' or 'curl' to download source code")
|
||||||
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
return txt
|
||||||
|
|
||||||
# parse args
|
# parse args
|
||||||
|
|
||||||
args = sys.argv
|
args = sys.argv[1:]
|
||||||
|
nargs = len(args)
|
||||||
|
if nargs == 0: error()
|
||||||
|
|
||||||
thisdir = os.environ['PWD']
|
thisdir = os.environ['PWD']
|
||||||
dir = thisdir
|
|
||||||
version = "kim-api-v1.8.2"
|
version = "kim-api-v1.8.2"
|
||||||
|
|
||||||
dirflag = 0
|
buildflag = False
|
||||||
buildflag = 0
|
everythingflag = False
|
||||||
addflag = 0
|
addflag = False
|
||||||
|
verboseflag = False
|
||||||
|
pathflag = False
|
||||||
|
|
||||||
iarg = 1
|
iarg = 0
|
||||||
while iarg < len(args):
|
while iarg < len(args):
|
||||||
if args[iarg] == "-v":
|
if args[iarg] == "-v":
|
||||||
if iarg+2 > len(args): error()
|
if iarg+2 > len(args): error()
|
||||||
version = args[iarg+1]
|
version = args[iarg+1]
|
||||||
iarg += 2
|
iarg += 2
|
||||||
elif args[iarg] == "-c":
|
|
||||||
dirflag = 1
|
|
||||||
if iarg+2 > len(args): error()
|
|
||||||
dir = args[iarg+1]
|
|
||||||
iarg += 2
|
|
||||||
elif args[iarg] == "-b":
|
elif args[iarg] == "-b":
|
||||||
buildflag = 1
|
buildflag = True
|
||||||
|
iarg += 1
|
||||||
|
elif args[iarg] == "-n":
|
||||||
|
buildflag = False
|
||||||
|
iarg += 1
|
||||||
|
elif args[iarg] == "-p":
|
||||||
if iarg+2 > len(args): error()
|
if iarg+2 > len(args): error()
|
||||||
modelname = args[iarg+1]
|
kimdir = fullpath(args[iarg+1])
|
||||||
|
pathflag = True
|
||||||
|
buildflag = False
|
||||||
iarg += 2
|
iarg += 2
|
||||||
elif args[iarg] == "-a":
|
elif args[iarg] == "-a":
|
||||||
addflag = 1
|
addflag = True
|
||||||
if iarg+2 > len(args): error()
|
if iarg+2 > len(args): error()
|
||||||
addmodelname = args[iarg+1]
|
addmodelname = args[iarg+1]
|
||||||
|
if addmodelname == "everything":
|
||||||
|
buildflag = True
|
||||||
|
everythingflag = True
|
||||||
|
addflag = False
|
||||||
iarg += 2
|
iarg += 2
|
||||||
|
elif args[iarg] == "-vv":
|
||||||
|
verboseflag = True
|
||||||
|
iarg += 1
|
||||||
else: error()
|
else: error()
|
||||||
|
|
||||||
thisdir = os.path.abspath(thisdir)
|
thisdir = os.path.abspath(thisdir)
|
||||||
dir = os.path.abspath(dir)
|
|
||||||
url = "https://s3.openkim.org/kim-api/%s.tgz" % version
|
url = "https://s3.openkim.org/kim-api/%s.tgz" % version
|
||||||
|
|
||||||
# download and unpack tarball
|
# set KIM API directory
|
||||||
|
|
||||||
|
if pathflag:
|
||||||
|
if not os.path.isdir(kimdir):
|
||||||
|
print("\nkim-api is not installed at %s" % kimdir)
|
||||||
|
error()
|
||||||
|
|
||||||
if not os.path.isfile("%s/Makefile.KIM_DIR" % thisdir):
|
# configure LAMMPS to use existing kim-api installation
|
||||||
open("%s/Makefile.KIM_DIR" % thisdir, 'w').write("KIM_INSTALL_DIR=%s" % dir)
|
with open("%s/Makefile.KIM_DIR" % thisdir, 'w') as mkfile:
|
||||||
open("%s/Makefile.KIM_Config" % thisdir, 'w').write("include %s/lib/kim-api/Makefile.KIM_Config" % dir)
|
mkfile.write("KIM_INSTALL_DIR=%s\n\n" % kimdir)
|
||||||
print "Created %s/Makefile.KIM_DIR : using %s" % (thisdir,dir)
|
mkfile.write(".DUMMY: print_dir\n\n")
|
||||||
|
mkfile.write("print_dir:\n")
|
||||||
|
mkfile.write(" @printf $(KIM_INSTALL_DIR)\n")
|
||||||
|
|
||||||
|
with open("%s/Makefile.KIM_Config" % thisdir, 'w') as cfgfile:
|
||||||
|
cfgfile.write("include %s/lib/kim-api/Makefile.KIM_Config" % kimdir)
|
||||||
|
|
||||||
|
print("Created %s/Makefile.KIM_DIR\n using %s" % (thisdir,kimdir))
|
||||||
else:
|
else:
|
||||||
if dirflag == 1:
|
kimdir = os.path.join(os.path.abspath(thisdir), "installed-" + version)
|
||||||
open("%s/Makefile.KIM_DIR" % thisdir, 'w').write("KIM_INSTALL_DIR=%s" % dir)
|
|
||||||
open("%s/Makefile.KIM_Config" % thisdir, 'w').write("include %s/lib/kim-api/Makefile.KIM_Config" % dir)
|
|
||||||
print "Updated %s/Makefile.KIM_DIR : using %s" % (thisdir,dir)
|
|
||||||
|
|
||||||
|
# download KIM tarball, unpack, build KIM
|
||||||
|
if buildflag:
|
||||||
|
|
||||||
if buildflag == 1:
|
# check to see if an installed kim-api already exists and wipe it out.
|
||||||
# download kim-api
|
|
||||||
print "Downloading kim-api tarball ..."
|
if os.path.isdir(kimdir):
|
||||||
urllib.urlretrieve(url,"%s/%s.tgz" % (thisdir,version))
|
print("kim-api is already installed at %s.\nRemoving it for re-install" % kimdir)
|
||||||
print "Unpacking kim-api tarball ..."
|
cmd = 'rm -rf "%s"' % kimdir
|
||||||
cmd = "cd %s; rm -rf %s; tar zxvf %s.tgz" % (thisdir,version,version)
|
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
txt = commands.getstatusoutput(cmd)
|
|
||||||
if txt[0] != 0: error()
|
# configure LAMMPS to use kim-api to be installed
|
||||||
|
|
||||||
|
with open("%s/Makefile.KIM_DIR" % thisdir, 'w') as mkfile:
|
||||||
|
mkfile.write("KIM_INSTALL_DIR=%s\n\n" % kimdir)
|
||||||
|
mkfile.write(".DUMMY: print_dir\n\n")
|
||||||
|
mkfile.write("print_dir:\n")
|
||||||
|
mkfile.write(" @printf $(KIM_INSTALL_DIR)\n")
|
||||||
|
|
||||||
|
with open("%s/Makefile.KIM_Config" % thisdir, 'w') as cfgfile:
|
||||||
|
cfgfile.write("include %s/lib/kim-api/Makefile.KIM_Config" % kimdir)
|
||||||
|
|
||||||
|
print("Created %s/Makefile.KIM_DIR\n using %s" % (thisdir,kimdir))
|
||||||
|
|
||||||
|
# download entire kim-api tarball
|
||||||
|
|
||||||
|
print("Downloading kim-api tarball ...")
|
||||||
|
geturl(url,"%s/%s.tgz" % (thisdir,version))
|
||||||
|
print("Unpacking kim-api tarball ...")
|
||||||
|
cmd = 'cd "%s"; rm -rf "%s"; tar -xzvf %s.tgz' % (thisdir,version,version)
|
||||||
|
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
|
||||||
# configure kim-api
|
# configure kim-api
|
||||||
print "Configuring kim-api ..."
|
|
||||||
cmd = "cd %s/%s; ./configure --prefix='%s'" % (thisdir,version,dir)
|
print("Configuring kim-api ...")
|
||||||
txt = commands.getstatusoutput(cmd)
|
cmd = 'cd "%s/%s"; ./configure --prefix="%s"' % (thisdir,version,kimdir)
|
||||||
print txt[1]
|
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
if txt[0] != 0: error()
|
|
||||||
|
|
||||||
# build kim-api
|
# build kim-api
|
||||||
print "Configuring model : %s" % modelname
|
|
||||||
cmd = "cd %s/%s; make add-%s" % (thisdir,version,modelname)
|
print("Configuring example Models")
|
||||||
txt = commands.getstatusoutput(cmd)
|
cmd = 'cd "%s/%s"; make add-examples' % (thisdir,version)
|
||||||
print txt[1]
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
if txt[0] != 0: error()
|
if verboseflag: print (txt.decode("UTF-8"))
|
||||||
#
|
|
||||||
print "Building kim-api ..."
|
if everythingflag:
|
||||||
cmd = "cd %s/%s; make" % (thisdir,version)
|
print("Configuring all OpenKIM models, this will take a while ...")
|
||||||
txt = commands.getstatusoutput(cmd)
|
cmd = 'cd "%s/%s"; make add-OpenKIM' % (thisdir,version)
|
||||||
print txt[1]
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
if txt[0] != 0: error()
|
if verboseflag: print(txt.decode("UTF-8"))
|
||||||
|
|
||||||
|
print("Building kim-api ...")
|
||||||
|
cmd = 'cd "%s/%s"; make' % (thisdir,version)
|
||||||
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
if verboseflag: print(txt.decode("UTF-8"))
|
||||||
|
|
||||||
# install kim-api
|
# install kim-api
|
||||||
print "Installing kim-api ..."
|
|
||||||
cmd = "cd %s/%s; make install" % (thisdir,version)
|
print("Installing kim-api ...")
|
||||||
txt = commands.getstatusoutput(cmd)
|
cmd = 'cd "%s/%s"; make install' % (thisdir,version)
|
||||||
print txt[1]
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
if txt[0] != 0: error()
|
if verboseflag: print(txt.decode("UTF-8"))
|
||||||
#
|
|
||||||
cmd = "cd %s/%s; make install-set-default-to-v1" %(thisdir,version)
|
cmd = 'cd "%s/%s"; make install-set-default-to-v1' %(thisdir,version)
|
||||||
txt = commands.getstatusoutput(cmd)
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
print txt[1]
|
if verboseflag: print(txt.decode("UTF-8"))
|
||||||
if txt[0] != 0: error()
|
|
||||||
|
|
||||||
# remove source files
|
# remove source files
|
||||||
print "Removing kim-api source and build files ..."
|
|
||||||
cmd = "cd %s; rm -rf %s; rm -rf %s.tgz" % (thisdir,version,version)
|
|
||||||
txt = commands.getstatusoutput(cmd)
|
|
||||||
print txt[1]
|
|
||||||
if txt[0] != 0: error()
|
|
||||||
|
|
||||||
if addflag == 1:
|
print("Removing kim-api source and build files ...")
|
||||||
# download model
|
cmd = 'cd "%s"; rm -rf %s; rm -rf %s.tgz' % (thisdir,version,version)
|
||||||
|
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
|
||||||
|
# add a single model (and possibly its driver) to existing KIM installation
|
||||||
|
|
||||||
|
if addflag:
|
||||||
|
|
||||||
|
if not os.path.isdir(kimdir):
|
||||||
|
print("\nkim-api is not installed")
|
||||||
|
error()
|
||||||
|
|
||||||
|
# download single model
|
||||||
|
|
||||||
|
print("Downloading tarball for %s..." % addmodelname)
|
||||||
url = "https://openkim.org/download/%s.tgz" % addmodelname
|
url = "https://openkim.org/download/%s.tgz" % addmodelname
|
||||||
print "Downloading item tarball ..."
|
geturl(url,"%s/%s.tgz" % (thisdir,addmodelname))
|
||||||
urllib.urlretrieve(url,"%s/%s.tgz" % (thisdir,addmodelname))
|
|
||||||
print "Unpacking item tarball ..."
|
print("Unpacking item tarball ...")
|
||||||
cmd = "cd %s; tar zxvf %s.tgz" % (thisdir,addmodelname)
|
cmd = 'cd "%s"; tar -xzvf %s.tgz' % (thisdir,addmodelname)
|
||||||
txt = commands.getstatusoutput(cmd)
|
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
if txt[0] != 0: error()
|
|
||||||
#
|
print("Building item ...")
|
||||||
print "Building item ..."
|
cmd = 'cd "%s/%s"; make; make install' %(thisdir,addmodelname)
|
||||||
cmd = "cd %s/%s; make; make install" %(thisdir,addmodelname)
|
try:
|
||||||
txt = commands.getstatusoutput(cmd)
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
print txt[1]
|
except subprocess.CalledProcessError as e:
|
||||||
if txt[0] != 0: error()
|
|
||||||
#
|
# Error: but first, check to see if it needs a driver
|
||||||
print "Removing kim item source and build files ..."
|
firstRunOutput = e.output.decode("UTF-8")
|
||||||
cmd = "cd %s; rm -rf %s; rm -rf %s.tgz" %(thisdir,addmodelname,addmodelname)
|
|
||||||
txt = commands.getstatusoutput(cmd)
|
cmd = 'cd "%s/%s"; make kim-item-type' % (thisdir,addmodelname)
|
||||||
print txt[1]
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
if txt[0] != 0: error()
|
txt = txt.decode("UTF-8")
|
||||||
|
if txt == "ParameterizedModel":
|
||||||
|
|
||||||
|
# Get and install driver
|
||||||
|
|
||||||
|
cmd = 'cd "%s/%s"; make model-driver-name' % (thisdir,addmodelname)
|
||||||
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
adddrivername = txt.decode("UTF-8").strip()
|
||||||
|
print("First installing model driver: %s..." % adddrivername)
|
||||||
|
cmd = 'cd "%s"; python Install.py -n -a %s' % (thisdir,adddrivername)
|
||||||
|
try:
|
||||||
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
print(e.output)
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
if verboseflag: print(txt.decode("UTF-8"))
|
||||||
|
|
||||||
|
# now install the model that needed the driver
|
||||||
|
|
||||||
|
print("Now installing model : %s" % addmodelname)
|
||||||
|
cmd = 'cd "%s"; python Install.py -n -a %s' % (thisdir,addmodelname)
|
||||||
|
try:
|
||||||
|
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
print(e.output)
|
||||||
|
sys.exit()
|
||||||
|
print(txt.decode("UTF-8"))
|
||||||
|
sys.exit()
|
||||||
|
else:
|
||||||
|
print(firstRunOutput)
|
||||||
|
print("Error, unable to build and install OpenKIM item: %s" \
|
||||||
|
% addmodelname)
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
# success the first time
|
||||||
|
|
||||||
|
if verboseflag: print(txt.decode("UTF-8"))
|
||||||
|
print("Removing kim item source and build files ...")
|
||||||
|
cmd = 'cd "%s"; rm -rf %s; rm -rf %s.tgz' %(thisdir,addmodelname,addmodelname)
|
||||||
|
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||||
|
|
|
@ -8,14 +8,16 @@ James Sethna (Cornell U). Ryan Elliott is the main developer for the
|
||||||
KIM API and he also maintains the code that implements the pair_style
|
KIM API and he also maintains the code that implements the pair_style
|
||||||
kim command.
|
kim command.
|
||||||
|
|
||||||
To download, build, and install the KIM API on your system, follow
|
You can type "make lib-kim" from the src directory to see help on
|
||||||
these steps. You can use the install.py script to automate these steps.
|
how to download and build this library via make commands, or you can
|
||||||
|
do the same thing by typing "python Install.py" from within this
|
||||||
|
directory, or you can do it manually by following the instructions
|
||||||
|
below.
|
||||||
|
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
Instructions:
|
Instructions:
|
||||||
|
|
||||||
|
|
||||||
1. Configure lammps for use with the kim-api library installed in this directory
|
1. Configure lammps for use with the kim-api library installed in this directory
|
||||||
|
|
||||||
$ printf "KIM_INSTALL_DIR=${PWD}\n" > ./Makefile.KIM_DIR
|
$ printf "KIM_INSTALL_DIR=${PWD}\n" > ./Makefile.KIM_DIR
|
||||||
|
@ -65,7 +67,7 @@ $ rm -rf EAM_Johnson_NearestNeighbor_Cu__MO_887933271505_001.tgz
|
||||||
When these steps are complete you can build LAMMPS with the KIM
|
When these steps are complete you can build LAMMPS with the KIM
|
||||||
package installed:
|
package installed:
|
||||||
|
|
||||||
$ cd ../../src
|
$ cd lammpos/src
|
||||||
$ make yes-kim
|
$ make yes-kim
|
||||||
$ make g++ (or whatever target you wish)
|
$ make g++ (or whatever target you wish)
|
||||||
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
# install.py tool to do build of the linear algebra library
|
|
||||||
# used to automate the steps described in the README file in this dir
|
|
||||||
|
|
||||||
import sys,commands,os
|
|
||||||
|
|
||||||
# help message
|
|
||||||
|
|
||||||
help = """
|
|
||||||
Syntax: python Install.py -m machine
|
|
||||||
-m = peform a clean followed by "make -f Makefile.machine"
|
|
||||||
machine = suffix of a lib/Makefile.* file
|
|
||||||
"""
|
|
||||||
|
|
||||||
# print error message or help
|
|
||||||
|
|
||||||
def error(str=None):
|
|
||||||
if not str: print help
|
|
||||||
else: print "ERROR",str
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
# parse args
|
|
||||||
|
|
||||||
args = sys.argv[1:]
|
|
||||||
nargs = len(args)
|
|
||||||
if nargs == 0: error()
|
|
||||||
|
|
||||||
machine = None
|
|
||||||
|
|
||||||
iarg = 0
|
|
||||||
while iarg < nargs:
|
|
||||||
if args[iarg] == "-m":
|
|
||||||
if iarg+2 > nargs: error()
|
|
||||||
machine = args[iarg+1]
|
|
||||||
iarg += 2
|
|
||||||
else: error()
|
|
||||||
|
|
||||||
# set lib from working dir
|
|
||||||
|
|
||||||
cwd = os.getcwd()
|
|
||||||
lib = os.path.basename(cwd)
|
|
||||||
|
|
||||||
# make the library
|
|
||||||
|
|
||||||
print "Building lib%s.a ..." % lib
|
|
||||||
cmd = "make -f Makefile.%s clean; make -f Makefile.%s" % (machine,machine)
|
|
||||||
txt = commands.getoutput(cmd)
|
|
||||||
print txt
|
|
||||||
|
|
||||||
if os.path.exists("lib%s.a" % lib): print "Build was successful"
|
|
||||||
else: error("Build of lib/%s/lib%s.a was NOT successful" % (lib,lib))
|
|
|
@ -0,0 +1 @@
|
||||||
|
../Install.py
|
|
@ -18,10 +18,8 @@ OBJ = $(SRC:.f=.o)
|
||||||
# ------ SETTINGS ------
|
# ------ SETTINGS ------
|
||||||
|
|
||||||
FC = gfortran
|
FC = gfortran
|
||||||
FFLAGS = -O3 -fPIC -march=native -mpc64 \
|
FFLAGS = -O3 -fPIC -ffast-math -fstrict-aliasing -fno-second-underscore
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing -Wall -W -Wno-uninitialized -fno-second-underscore
|
FFLAGS0 = -O0 -fPIC -fno-second-underscore
|
||||||
FFLAGS0 = -O0 -fPIC -march=native -mpc64 \
|
|
||||||
-Wall -W -Wno-uninitialized -fno-second-underscore
|
|
||||||
ARCHIVE = ar
|
ARCHIVE = ar
|
||||||
AR = ar
|
AR = ar
|
||||||
ARCHFLAG = -rcs
|
ARCHFLAG = -rcs
|
||||||
|
@ -47,7 +45,7 @@ dlamch.o: dlamch.f
|
||||||
# ------ CLEAN ------
|
# ------ CLEAN ------
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm *.o *.mod *~ $(LIB)
|
-rm -f *.o *.mod *~ $(LIB)
|
||||||
|
|
||||||
tar:
|
tar:
|
||||||
-tar -czvf ../linalg.tar.gz $(FILES)
|
-tar -czvf ../linalg.tar.gz $(FILES)
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
# -*- makefile -*-
|
|
||||||
# *_________________________________________________________________________*
|
|
||||||
# * Minimal BLAS/LAPACK Library for use by other LAMMPS packages
|
|
||||||
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# ------ FILES ------
|
|
||||||
|
|
||||||
SRC = $(wildcard *.f)
|
|
||||||
|
|
||||||
FILES = $(SRC) Makefile.* README
|
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
|
||||||
|
|
||||||
DIR = Obj_mingw32/
|
|
||||||
LIB = $(DIR)liblinalg.a
|
|
||||||
OBJ = $(SRC:%.f=$(DIR)%.o)
|
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
|
||||||
|
|
||||||
FC = i686-w64-mingw32-gfortran
|
|
||||||
FFLAGS = -O3 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing -Wall -W \
|
|
||||||
-Wno-uninitialized -fno-second-underscore
|
|
||||||
FFLAGS0 = -O0 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
|
|
||||||
-Wall -W -Wno-uninitialized -fno-second-underscore
|
|
||||||
ARCHIVE = i686-w64-mingw32-ar
|
|
||||||
AR = i686-w64-mingw32-ar
|
|
||||||
ARCHFLAG = -rcs
|
|
||||||
USRLIB =
|
|
||||||
SYSLIB =
|
|
||||||
|
|
||||||
.PHONY: default clean tar
|
|
||||||
|
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .F .f .o
|
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
|
||||||
|
|
||||||
default: $(DIR) $(LIB)
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
mkdir $(DIR)
|
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
|
||||||
|
|
||||||
$(DIR)%.o:%.F
|
|
||||||
$(F90) $(F90FLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(DIR)%.o:%.f
|
|
||||||
$(FC) $(FFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(DIR)dlamch.o: dlamch.f
|
|
||||||
$(FC) $(FFLAGS0) -c $< -o $@
|
|
||||||
|
|
||||||
# ------ CLEAN ------
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm $(DIR)*.o $(DIR)*.mod *~ $(LIB)
|
|
||||||
-rmdir $(DIR)
|
|
||||||
|
|
||||||
tar:
|
|
||||||
-tar -czvf ../linalg.tar.gz $(FILES)
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
# -*- makefile -*- wrapper for non-MPI libraries
|
|
||||||
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(MAKE) $(MFLAGS) mingw32-cross
|
|
||||||
-rm -f Obj_mingw32-mpi
|
|
||||||
ln -s Obj_mingw32 Obj_mingw32-mpi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) $(MFLAGS) clean-mingw32-cross
|
|
||||||
-rm -f Obj_mingw32-mpi
|
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
# -*- makefile -*-
|
|
||||||
# *_________________________________________________________________________*
|
|
||||||
# * Minimal BLAS/LAPACK Library for use by other LAMMPS packages
|
|
||||||
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# ------ FILES ------
|
|
||||||
|
|
||||||
SRC = $(wildcard *.f)
|
|
||||||
|
|
||||||
FILES = $(SRC) Makefile.* README
|
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
|
||||||
|
|
||||||
DIR = Obj_mingw64/
|
|
||||||
LIB = $(DIR)liblinalg.a
|
|
||||||
OBJ = $(SRC:%.f=$(DIR)%.o)
|
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
|
||||||
|
|
||||||
FC = x86_64-w64-mingw32-gfortran
|
|
||||||
FFLAGS = -O3 -march=core2 -mtune=generic -msse2 -mpc64 \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing -Wall -W \
|
|
||||||
-Wno-uninitialized -fno-second-underscore
|
|
||||||
FFLAGS0 = -O0 -march=core2 -mtune=generic -msse2 -mpc64 \
|
|
||||||
-Wall -W -Wno-uninitialized -fno-second-underscore
|
|
||||||
ARCHIVE = x86_64-w64-mingw32-ar
|
|
||||||
AR = x86_64-w64-mingw32-ar
|
|
||||||
ARCHFLAG = -rcs
|
|
||||||
USRLIB =
|
|
||||||
SYSLIB =
|
|
||||||
|
|
||||||
.PHONY: default clean tar
|
|
||||||
|
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .F .f .o
|
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
|
||||||
|
|
||||||
default: $(DIR) $(LIB)
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
mkdir $(DIR)
|
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
|
||||||
|
|
||||||
$(DIR)%.o:%.F
|
|
||||||
$(F90) $(F90FLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(DIR)%.o:%.f
|
|
||||||
$(FC) $(FFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(DIR)dlamch.o: dlamch.f
|
|
||||||
$(FC) $(FFLAGS0) -c $< -o $@
|
|
||||||
|
|
||||||
# ------ CLEAN ------
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm $(DIR)*.o $(DIR)*.mod *~ $(LIB)
|
|
||||||
-rmdir $(DIR)
|
|
||||||
|
|
||||||
tar:
|
|
||||||
-tar -czvf ../linalg.tar.gz $(FILES)
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
# -*- makefile -*- wrapper for non-MPI libraries
|
|
||||||
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(MAKE) $(MFLAGS) mingw64-cross
|
|
||||||
-rm -f Obj_mingw64-mpi
|
|
||||||
ln -s Obj_mingw64 Obj_mingw64-mpi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) $(MFLAGS) clean-mingw64-cross
|
|
||||||
-rm -f Obj_mingw64-mpi
|
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
# -*- makefile -*-
|
||||||
|
# *_________________________________________________________________________*
|
||||||
|
# * Minimal BLAS/LAPACK Library for use by other LAMMPS packages
|
||||||
|
|
||||||
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
# ------ FILES ------
|
||||||
|
|
||||||
|
SRC = $(wildcard *.f)
|
||||||
|
|
||||||
|
FILES = $(SRC) Makefile.* README
|
||||||
|
|
||||||
|
# ------ DEFINITIONS ------
|
||||||
|
|
||||||
|
LIB = liblinalg.a
|
||||||
|
OBJ = $(SRC:.f=.o)
|
||||||
|
|
||||||
|
# ------ SETTINGS ------
|
||||||
|
|
||||||
|
FC = mpifort
|
||||||
|
FFLAGS = -O3 -fPIC
|
||||||
|
FFLAGS0 = -O0 -fPIC
|
||||||
|
ARCHIVE = ar
|
||||||
|
AR = ar
|
||||||
|
ARCHFLAG = -rcs
|
||||||
|
USRLIB =
|
||||||
|
SYSLIB =
|
||||||
|
|
||||||
|
# ------ MAKE PROCEDURE ------
|
||||||
|
|
||||||
|
lib: $(OBJ)
|
||||||
|
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
||||||
|
|
||||||
|
# ------ COMPILE RULES ------
|
||||||
|
|
||||||
|
%.o:%.F
|
||||||
|
$(F90) $(F90FLAGS) -c $<
|
||||||
|
|
||||||
|
%.o:%.f
|
||||||
|
$(FC) $(FFLAGS) -c $<
|
||||||
|
|
||||||
|
dlamch.o: dlamch.f
|
||||||
|
$(FC) $(FFLAGS0) -c $<
|
||||||
|
|
||||||
|
# ------ CLEAN ------
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm -f *.o *.mod *~ $(LIB)
|
||||||
|
|
||||||
|
tar:
|
||||||
|
-tar -czvf ../linalg.tar.gz $(FILES)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Makefile.gfortran
|
|
@ -1 +1 @@
|
||||||
Install.py
|
../Install.py
|
|
@ -1,5 +1,5 @@
|
||||||
# Settings that the LAMMPS build will import when this package library is used
|
# Settings that the LAMMPS build will import when this package library is used
|
||||||
|
|
||||||
colvars_SYSINC =
|
meam_SYSINC =
|
||||||
colvars_SYSLIB =
|
meam_SYSLIB =
|
||||||
colvars_SYSPATH =
|
meam_SYSPATH =
|
|
@ -1,69 +0,0 @@
|
||||||
# * -*- makefile -*-
|
|
||||||
# *_________________________________________________________________________*
|
|
||||||
# * MEAM: MODEFIED EMBEDDED ATOM METHOD *
|
|
||||||
# * DESCRIPTION: SEE READ-ME *
|
|
||||||
# * FILE NAME: Makefile *
|
|
||||||
# * AUTHORS: Greg Wagner, Sandia National Laboratories *
|
|
||||||
# * CONTACT: gjwagne@sandia.gov *
|
|
||||||
# *_________________________________________________________________________*/
|
|
||||||
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
|
||||||
|
|
||||||
EXTRAMAKE = Makefile.lammps.gfortran
|
|
||||||
|
|
||||||
# ------ FILES ------
|
|
||||||
|
|
||||||
SRC = meam_data.F meam_setup_done.F meam_setup_global.F meam_setup_param.F meam_dens_init.F meam_dens_final.F meam_force.F meam_cleanup.F
|
|
||||||
|
|
||||||
FILES = $(SRC) Makefile
|
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
|
||||||
|
|
||||||
DIR = Obj_mingw32/
|
|
||||||
LIB = $(DIR)libmeam.a
|
|
||||||
OBJ = $(SRC:%.F=$(DIR)%.o) $(DIR)fm_exp.o
|
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
|
||||||
|
|
||||||
F90 = i686-w64-mingw32-gfortran
|
|
||||||
F90FLAGS = -O3 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
|
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing -J$(DIR) \
|
|
||||||
-Wall -W -Wno-uninitialized -fno-second-underscore
|
|
||||||
#F90FLAGS = -O
|
|
||||||
ARCHIVE = i686-w64-mingw32-ar
|
|
||||||
ARCHFLAG = -rcs
|
|
||||||
LINK = i686-w64-mingw32-g++
|
|
||||||
LINKFLAGS = -O
|
|
||||||
USRLIB =
|
|
||||||
SYSLIB =
|
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
|
||||||
|
|
||||||
default: $(DIR) $(LIB)
|
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
-mkdir $(DIR)
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
|
||||||
|
|
||||||
$(DIR)%.o:%.F
|
|
||||||
$(F90) $(F90FLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(DIR)%.o:%.c
|
|
||||||
$(F90) $(F90FLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
include .depend
|
|
||||||
# ------ CLEAN ------
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm $(DIR)*.o $(DIR)*.mod *~ $(LIB)
|
|
||||||
-rmdir $(DIR)
|
|
||||||
|
|
||||||
tar:
|
|
||||||
-tar -cvf ../MEAM.tar $(FILES)
|
|
|
@ -1,13 +0,0 @@
|
||||||
# -*- makefile -*- wrapper for non-MPI libraries
|
|
||||||
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(MAKE) $(MFLAGS) mingw32-cross
|
|
||||||
-rm -f Obj_mingw32-mpi
|
|
||||||
ln -s Obj_mingw32 Obj_mingw32-mpi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) $(MFLAGS) clean-mingw32-cross
|
|
||||||
-rm -f Obj_mingw32-mpi
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
# -*- makefile -*- wrapper for non-MPI libraries
|
|
||||||
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(MAKE) $(MFLAGS) mingw64-cross
|
|
||||||
-rm -f Obj_mingw64-mpi
|
|
||||||
ln -s Obj_mingw64 Obj_mingw64-mpi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) $(MFLAGS) clean-mingw64-cross
|
|
||||||
-rm -f Obj_mingw64-mpi
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# * -*- makefile -*-
|
# *
|
||||||
# *_________________________________________________________________________*
|
# *_________________________________________________________________________*
|
||||||
# * MEAM: MODEFIED EMBEDDED ATOM METHOD *
|
# * MEAM: MODEFIED EMBEDDED ATOM METHOD *
|
||||||
# * DESCRIPTION: SEE READ-ME *
|
# * DESCRIPTION: SEE READ-ME *
|
||||||
|
@ -11,7 +11,7 @@ SHELL = /bin/sh
|
||||||
|
|
||||||
# which file will be copied to Makefile.lammps
|
# which file will be copied to Makefile.lammps
|
||||||
|
|
||||||
EXTRAMAKE = Makefile.lammps.gfortran
|
EXTRAMAKE = Makefile.lammps.empty
|
||||||
|
|
||||||
# ------ FILES ------
|
# ------ FILES ------
|
||||||
|
|
||||||
|
@ -21,49 +21,41 @@ FILES = $(SRC) Makefile
|
||||||
|
|
||||||
# ------ DEFINITIONS ------
|
# ------ DEFINITIONS ------
|
||||||
|
|
||||||
DIR = Obj_mingw64/
|
LIB = libmeam.a
|
||||||
LIB = $(DIR)libmeam.a
|
OBJ = $(SRC:.F=.o) fm_exp.o
|
||||||
OBJ = $(SRC:%.F=$(DIR)%.o) $(DIR)fm_exp.o
|
|
||||||
|
|
||||||
# ------ SETTINGS ------
|
# ------ SETTINGS ------
|
||||||
|
|
||||||
F90 = x86_64-w64-mingw32-gfortran
|
F90 = mpifort
|
||||||
F90FLAGS = -O3 -march=core2 -mtune=core2 -msse2 -mpc64 \
|
CC = mpicc
|
||||||
-ffast-math -funroll-loops -fstrict-aliasing -J$(DIR) \
|
F90FLAGS = -O3 -fPIC
|
||||||
-Wall -W -Wno-uninitialized -fno-second-underscore
|
|
||||||
#F90FLAGS = -O
|
#F90FLAGS = -O
|
||||||
ARCHIVE = x86_64-w64-mingw32-ar
|
ARCHIVE = ar
|
||||||
ARCHFLAG = -rcs
|
ARCHFLAG = -rc
|
||||||
LINK = x86_64-w64-mingw32-g++
|
LINK = mpicxx
|
||||||
LINKFLAGS = -O
|
LINKFLAGS = -O
|
||||||
USRLIB =
|
USRLIB =
|
||||||
SYSLIB =
|
SYSLIB =
|
||||||
|
|
||||||
# ------ MAKE PROCEDURE ------
|
# ------ MAKE PROCEDURE ------
|
||||||
|
|
||||||
default: $(DIR) $(LIB)
|
lib: $(OBJ)
|
||||||
|
|
||||||
$(DIR):
|
|
||||||
-mkdir $(DIR)
|
|
||||||
|
|
||||||
$(LIB): $(OBJ)
|
|
||||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
||||||
@cp $(EXTRAMAKE) Makefile.lammps
|
@cp $(EXTRAMAKE) Makefile.lammps
|
||||||
|
|
||||||
# ------ COMPILE RULES ------
|
# ------ COMPILE RULES ------
|
||||||
|
|
||||||
$(DIR)%.o:%.F
|
%.o:%.F
|
||||||
$(F90) $(F90FLAGS) -c $< -o $@
|
$(F90) $(F90FLAGS) -c $<
|
||||||
|
|
||||||
$(DIR)%.o:%.c
|
%.o:%.c
|
||||||
$(F90) $(F90FLAGS) -c $< -o $@
|
$(CC) $(F90FLAGS) -c $<
|
||||||
|
|
||||||
include .depend
|
include .depend
|
||||||
# ------ CLEAN ------
|
# ------ CLEAN ------
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm $(DIR)*.o $(DIR)*.mod *~ $(LIB)
|
-rm *.o *.mod *~ $(LIB)
|
||||||
-rmdir $(DIR)
|
|
||||||
|
|
||||||
tar:
|
tar:
|
||||||
-tar -cvf ../MEAM.tar $(FILES)
|
-tar -cvf ../MEAM.tar $(FILES)
|
|
@ -0,0 +1 @@
|
||||||
|
Makefile.gfortran
|