diff --git a/doc/README b/doc/README
index 686a1802a4..fa40e35910 100644
--- a/doc/README
+++ b/doc/README
@@ -1,10 +1,46 @@
-Generation of LAMMPS Documentation
+LAMMPS Documentation
+
+Depending on how you obtained LAMMPS, this directory has 2 or 3
+sub-directories and optionally 2 PDF files:
+
+src content files for LAMMPS documentation
+html HTML version of the LAMMPS manual (see html/Manual.html)
+tools tools and settings for building the documentation
+Manual.pdf large PDF version of entire manual
+Developer.pdf small PDF with info about how LAMMPS is structured
+
+If you downloaded LAMMPS as a tarball from the web site, all these
+directories and files should be included.
+
+If you downloaded LAMMPS from the public SVN or Git repositories, then
+the HTML and PDF files are not included. Instead you need to create
+them, in one of three ways:
+
+(a) You can "fetch" the current HTML and PDF files from the LAMMPS web
+site. Just type "make fetch". This should create a html_www dir and
+Manual_www.pdf/Developer_www.pdf files. Note that if new LAMMPS
+features have been added more recently than the date of your version,
+the fetched documentation will include those changes (but your source
+code will not, unless you update your local repository).
+
+(b) You can build the HTML and PDF files yourself, by typing "make
+html" followed by "make pdf". Note that the PDF make requires the
+HTML files already exist. This requires various tools including
+Sphinx, which the build process will attempt to download and install
+on your system, if not already available. See more details below.
+
+(c) You can genererate an older, simpler, less-fancy style of HTML
+documentation by typing "make old". This will create an "old"
+directory. This can be useful if (b) does not work on your box for
+some reason, or you want to quickly view the HTML version of a doc
+page you have created or edited yourself within the src directory.
+E.g. if you are planning to submit a new feature to LAMMPS.
+
+----------------
The generation of all documentation is managed by the Makefile in this
dir.
-----------------
-
Options:
make html # generate HTML in html dir using Sphinx
@@ -51,3 +87,10 @@ Once Python 3 is installed, open a Terminal and type
pip3 install virtualenv
This will install virtualenv from the Python Package Index.
+
+----------------
+
+Installing prerequisites for PDF build
+
+
+
diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt
index 441e9cc8f0..f8f7644e5b 100644
--- a/doc/src/Manual.txt
+++ b/doc/src/Manual.txt
@@ -1,7 +1,7 @@
LAMMPS Users Manual
-
+
@@ -21,7 +21,7 @@
LAMMPS Documentation :c,h3
-21 Sep 2016 version :c,h4
+28 Sep 2016 version :c,h4
Version info: :h4
diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt
index bc0a591f53..6ec592faf1 100644
--- a/doc/src/Section_commands.txt
+++ b/doc/src/Section_commands.txt
@@ -501,6 +501,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
"bond/create"_fix_bond_create.html,
"bond/swap"_fix_bond_swap.html,
"box/relax"_fix_box_relax.html,
+"cmap"_fix_cmap.html,
"controller"_fix_controller.html,
"deform (k)"_fix_deform.html,
"deposit"_fix_deposit.html,
diff --git a/doc/src/Section_example.txt b/doc/src/Section_example.txt
index e42ad13c19..60a5ed1285 100644
--- a/doc/src/Section_example.txt
+++ b/doc/src/Section_example.txt
@@ -105,8 +105,8 @@ web site.
If you uncomment the "dump image"_dump_image.html line(s) in the input
script a series of JPG images will be produced by the run (assuming
-you built LAMMPS with JPG support; see "Section start
-2.2"_Section_start.html for details). These can be viewed
+you built LAMMPS with JPG support; see "Section
+2.2"_Section_start.html#start_2 for details). These can be viewed
individually or turned into a movie or animated by tools like
ImageMagick or QuickTime or various Windows-based tools. See the
"dump image"_dump_image.html doc page for more details. E.g. this
@@ -136,5 +136,5 @@ The USER directory has a large number of sub-directories which
correspond by name to a USER package. They contain scripts that
illustrate how to use the command(s) provided in that package. Many
of the sub-directories have their own README files which give further
-instructions. See the "Section packages"_Section_packages.html doc
+instructions. See the "Section 4"_Section_packages.html doc
page for more info on specific USER packages.
diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt
index 8d3c0ec8b3..8dbec55e77 100644
--- a/doc/src/Section_howto.txt
+++ b/doc/src/Section_howto.txt
@@ -2123,7 +2123,7 @@ thermo_style custom step temp press v_pxy v_pxz v_pyz v_v11 v_v22 v_v33
run 100000
variable v equal (v_v11+v_v22+v_v33)/3.0
variable ndens equal count(all)/vol
-print "average viscosity: $v \[Pa.s/] @ $T K, $\{ndens\} /A^3" :pre
+print "average viscosity: $v \[Pa.s\] @ $T K, $\{ndens\} /A^3" :pre
The fifth method is related to the above Green-Kubo method,
but uses the Einstein formulation, analogous to the Einstein
diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt
index 16f93ce45f..f9c94a5c90 100644
--- a/doc/src/Section_packages.txt
+++ b/doc/src/Section_packages.txt
@@ -71,16 +71,16 @@ Package, Description, Author(s), Doc page, Example, Library
"COMPRESS"_#COMPRESS, I/O compression, Axel Kohlmeyer (Temple U), "dump */gz"_dump.html, -, -
"CORESHELL"_#CORESHELL, adiabatic core/shell model, Hendrik Heenen (Technical U of Munich), "Section 6.6.25"_Section_howto.html#howto_25, coreshell, -
"DIPOLE"_#DIPOLE, point dipole particles, -, "pair_style dipole/cut"_pair_dipole.html, dipole, -
-"GPU"_#GPU, GPU-enabled styles, Mike Brown (ORNL), "Section accelerate"_accelerate_gpu.html, gpu, lib/gpu
+"GPU"_#GPU, GPU-enabled styles, Mike Brown (ORNL), "Section 5.3.1"_accelerate_gpu.html, gpu, lib/gpu
"GRANULAR"_#GRANULAR, granular systems, -, "Section 6.6.6"_Section_howto.html#howto_6, pour, -
"KIM"_#KIM, openKIM potentials, Smirichinski & Elliot & Tadmor (3), "pair_style kim"_pair_kim.html, kim, KIM
-"KOKKOS"_#KOKKOS, Kokkos-enabled styles, Trott & Moore (4), "Section 5"_accelerate_kokkos.html, kokkos, lib/kokkos
+"KOKKOS"_#KOKKOS, Kokkos-enabled styles, Trott & Moore (4), "Section 5.3.3"_accelerate_kokkos.html, kokkos, lib/kokkos
"KSPACE"_#KSPACE, long-range Coulombic solvers, -, "kspace_style"_kspace_style.html, peptide, -
"MANYBODY"_#MANYBODY, many-body potentials, -, "pair_style tersoff"_pair_tersoff.html, shear, -
"MEAM"_#MEAM, modified EAM potential, Greg Wagner (Sandia), "pair_style meam"_pair_meam.html, meam, lib/meam
"MC"_#MC, Monte Carlo options, -, "fix gcmc"_fix_gcmc.html, -, -
"MOLECULE"_#MOLECULE, molecular system force fields, -, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
-"OPT"_#OPT, optimized pair styles, Fischer & Richie & Natoli (2), "Section accelerate"_accelerate_opt.html, -, -
+"OPT"_#OPT, optimized pair styles, Fischer & Richie & Natoli (2), "Section 5.3.5"_accelerate_opt.html, -, -
"PERI"_#PERI, Peridynamics models, Mike Parks (Sandia), "pair_style peri"_pair_peri.html, peri, -
"POEMS"_#POEMS, coupled rigid body motion, Rudra Mukherjee (JPL), "fix poems"_fix_poems.html, rigid, lib/poems
"PYTHON"_#PYTHON, embed Python code in an input script, -, "python"_python.html, python, lib/python
@@ -126,7 +126,6 @@ of the LAMMPS distribution. See the lib/package/README file for info
on how to build the library. If it is not listed as lib/package, then
it is a third-party library not included in the LAMMPS distribution.
See details on all of this below for individual packages.
-p.s.: are we ever going to get commit messages from you? ;-)
:line
@@ -149,7 +148,7 @@ make machine :pre
Make.py -p ^asphere -a machine :pre
-Supporting info: "Section howto 6.14"_Section_howto.html#howto_14,
+Supporting info: "Section 6.14"_Section_howto.html#howto_14,
"pair_style gayberne"_pair_gayberne.html, "pair_style
resquared"_pair_resquared.html,
"doc/PDF/pair_gayberne_extra.pdf"_PDF/pair_gayberne_extra.pdf,
@@ -278,9 +277,8 @@ Contents: Compute and pair styles that implement the adiabatic
core/shell model for polarizability. The compute temp/cs command
measures the temperature of a system with core/shell particles. The
pair styles augment Born, Buckingham, and Lennard-Jones styles with
-core/shell capabilities. See "Section howto
-6.26"_Section_howto.html#howto_26 for an overview of how to use the
-package.
+core/shell capabilities. See "Section 6.26"_Section_howto.html#howto_26
+for an overview of how to use the package.
To install via make or Make.py:
@@ -296,8 +294,8 @@ make machine :pre
Make.py -p ^coreshell -a machine :pre
-Supporting info: "Section howto
-6.26"_Section_howto.html#howto_26, "compute temp/cs"_compute_temp_cs.html,
+Supporting info: "Section 6.26"_Section_howto.html#howto_26,
+"compute temp/cs"_compute_temp_cs.html,
"pair_style born/coul/long/cs"_pair_cs.html, "pair_style
buck/coul/long/cs"_pair_cs.html, pair_style
lj/cut/coul/long/cs"_pair_lj.html, examples/coreshell
@@ -334,7 +332,7 @@ GPU package :link(GPU),h5
Contents: Dozens of pair styles and a version of the PPPM long-range
Coulombic solver for NVIDIA GPUs. All of them have a "gpu" in their
-style name. "Section accelerate gpu"_accelerate_gpu.html gives
+style name. "Section 5.3.1"_accelerate_gpu.html gives
details of what hardware and Cuda software is required on your system,
and how to build and use this package. See the KOKKOS package, which
also has GPU-enabled styles.
@@ -379,10 +377,11 @@ make machine :pre
Make.py -p ^gpu -a machine :pre
-Supporting info: src/GPU/README, lib/gpu/README, "Section
-acclerate"_Section_accelerate.html, "Section accelerate
-gpu"_accelerate_gpu.html, Pair Styles section of "Section commands
-3.5"_Section_commands.html#cmd_5 for any pair style listed with a (g),
+Supporting info: src/GPU/README, lib/gpu/README,
+"Section 5.3"_Section_accelerate.html#acc_3,
+"Section 5.3.1"_accelerate_gpu.html,
+Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5
+for any pair style listed with a (g),
"kspace_style"_kspace_style.html, "package gpu"_package.html,
examples/accelerate, bench/FERMI, bench/KEPLER
@@ -408,7 +407,7 @@ make machine :pre
Make.py -p ^granular -a machine :pre
-Supporting info: "Section howto 6.6"_Section_howto.html#howto_6, "fix
+Supporting info: "Section 6.6"_Section_howto.html#howto_6, "fix
pour"_fix_pour.html, "fix wall/gran"_fix_wall_gran.html, "pair_style
gran/hooke"_pair_gran.html, "pair_style
gran/hertz/history"_pair_gran.html, examples/pour, bench/in.chute
@@ -452,7 +451,7 @@ Contents: Dozens of atom, pair, bond, angle, dihedral, improper styles
which run with the Kokkos library to provide optimization for
multicore CPUs (via OpenMP), NVIDIA GPUs, or the Intel Xeon Phi (in
native mode). All of them have a "kk" in their style name. "Section
-accelerate kokkos"_accelerate_kokkos.html gives details of what
+5.3.3"_accelerate_kokkos.html gives details of what
hardware and software is required on your system, and how to build and
use this package. See the GPU, OPT, USER-INTEL, USER-OMP packages,
which also provide optimizations for the same range of hardware.
@@ -472,9 +471,8 @@ the KOKKOS_ARCH setting in Makefile.kokkos_cuda), Or, as illustrated
below, you can use the Make.py script with its "-kokkos" option to
choose which hardware to build for. Type "python src/Make.py -h
-kokkos" to see the details. If these methods do not work on your
-system, you will need to read the "Section accelerate
-kokkos"_accelerate_kokkos.html doc page for details of what
-Makefile.machine settings are needed.
+system, you will need to read the "Section 5.3.3"_accelerate_kokkos.html
+doc page for details of what Makefile.machine settings are needed.
To install via make or Make.py for each of 3 hardware options:
@@ -494,11 +492,11 @@ make machine :pre
Make.py -p ^kokkos -a machine :pre
-Supporting info: src/KOKKOS/README, lib/kokkos/README, "Section
-acclerate"_Section_accelerate.html, "Section accelerate
-kokkos"_accelerate_kokkos.html, Pair Styles section of "Section
-commands 3.5"_Section_commands.html#cmd_5 for any pair style listed
-with a (k), "package kokkos"_package.html,
+Supporting info: src/KOKKOS/README, lib/kokkos/README,
+"Section 5.3"_Section_accelerate.html#acc_3,
+"Section 5.3.3"_accelerate_kokkos.html,
+Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5
+for any pair style listed with a (k), "package kokkos"_package.html,
examples/accelerate, bench/FERMI, bench/KEPLER
:line
@@ -513,7 +511,7 @@ particle-mesh (PPPM), and multilevel summation method (MSM) solvers.
Building with the KSPACE package requires a 1d FFT library be present
on your system for use by the PPPM solvers. This can be the KISS FFT
library provided with LAMMPS, or 3rd party libraries like FFTW or a
-vendor-supplied FFT library. See step 6 of "Section start
+vendor-supplied FFT library. See step 6 of "Section
2.2.2"_Section_start.html#start_2_2 of the manual for details of how
to select different FFT options in your machine Makefile. The Make.py
tool has an "-fft" option which can insert these settings into your
@@ -535,12 +533,13 @@ make machine :pre
Make.py -p ^kspace -a machine :pre
Supporting info: "kspace_style"_kspace_style.html,
-"doc/PDF/kspace.pdf"_PDF/kspace.pdf, "Section howto
-6.7"_Section_howto.html#howto_7, "Section howto
-6.8"_Section_howto.html#howto_8, "Section howto
-6.9"_Section_howto.html#howto_9, "pair_style coul"_pair_coul.html,
-other pair style command doc pages which have "long" or "msm" in their
-style name, examples/peptide, bench/in.rhodo
+"doc/PDF/kspace.pdf"_PDF/kspace.pdf,
+"Section 6.7"_Section_howto.html#howto_7,
+"Section 6.8"_Section_howto.html#howto_8,
+"Section 6.9"_Section_howto.html#howto_9,
+"pair_style coul"_pair_coul.html, other pair style command doc pages
+which have "long" or "msm" in their style name,
+examples/peptide, bench/in.rhodo
:line
@@ -567,7 +566,7 @@ Make.py -p ^manybody -a machine :pre
Supporting info:
-Examples: Pair Styles section of "Section commands
+Examples: Pair Styles section of "Section
3.5"_Section_commands.html#cmd_5, examples/comb, examples/eim,
examples/nb3d, examples/vashishta
@@ -699,9 +698,9 @@ Supporting info:"atom_style"_atom_style.html,
"dihedral_style"_dihedral_style.html,
"improper_style"_improper_style.html, "pair_style
hbond/dreiding/lj"_pair_hbond_dreiding.html, "pair_style
-lj/charmm/coul/charmm"_pair_charmm.html, "Section howto
-6.3"_Section_howto.html#howto_3, examples/micelle, examples/peptide,
-bench/in.chain, bench/in.rhodo
+lj/charmm/coul/charmm"_pair_charmm.html,
+"Section 6.3"_Section_howto.html#howto_3,
+examples/micelle, examples/peptide, bench/in.chain, bench/in.rhodo
:line
@@ -737,7 +736,7 @@ OPT package :link(OPT),h5
Contents: A handful of pair styles with an "opt" in their style name
which are optimized for improved CPU performance on single or multiple
cores. These include EAM, LJ, CHARMM, and Morse potentials. "Section
-accelerate opt"_accelerate_opt.html gives details of how to build and
+5.3.5"_accelerate_opt.html gives details of how to build and
use this package. See the KOKKOS, USER-INTEL, and USER-OMP packages,
which also have styles optimized for CPU performance.
@@ -762,10 +761,10 @@ make machine :pre
Make.py -p ^opt -a machine :pre
-Supporting info: "Section acclerate"_Section_accelerate.html, "Section
-accelerate opt"_accelerate_opt.html, Pair Styles section of "Section
-commands 3.5"_Section_commands.html#cmd_5 for any pair style listed
-with an (o), examples/accelerate, bench/KEPLER
+Supporting info: "Section 5.3"_Section_accelerate.html#acc_3,
+"Section 5.3.5"_accelerate_opt.html, Pair Styles section of
+"Section 3.5"_Section_commands.html#cmd_5 for any pair style
+listed with an (t), examples/accelerate, bench/KEPLER
:line
@@ -844,14 +843,14 @@ PYTHON package :link(PYTHON),h5
Contents: A "python"_python.html command which allow you to execute
Python code from a LAMMPS input script. The code can be in a separate
-file or embedded in the input script itself. See "Section python
-11.2"_Section_python.html" for an overview of using Python from
+file or embedded in the input script itself. See "Section
+11.2"_Section_python.html#py_2 for an overview of using Python from
LAMMPS and for other ways to use LAMMPS and Python together.
Building with the PYTHON package assumes you have a Python shared
library available on your system, which needs to be a Python 2
-version, 2.6 or later. Python 3 is not supported. The build uses the
-contents of the lib/python/Makefile.lammps file to find all the Python
+version, 2.6 or later. Python 3 is not yet supported. The build uses
+the contents of the lib/python/Makefile.lammps file to find all the Python
files required in the build/link process. See the lib/python/README
file if the settings in that file do not work on your system. Note
that the Make.py script has a "-python" option to allow an alternate
@@ -949,7 +948,7 @@ REPLICA package :link(REPLICA),h5
Contents: A collection of multi-replica methods that are used by
invoking multiple instances (replicas) of LAMMPS
simulations. Communication between individual replicas is performed in
-different ways by the different methods. See "Section howto
+different ways by the different methods. See "Section
6.5"_Section_howto.html#howto_5 for an overview of how to run
multi-replica simulations in LAMMPS. Multi-replica methods included
in the package are nudged elastic band (NEB), parallel replica
@@ -972,7 +971,7 @@ make machine :pre
Make.py -p ^replica -a machine :pre
-Supporting info: "Section howto 6.5"_Section_howto.html#howto_5,
+Supporting info: "Section 6.5"_Section_howto.html#howto_5,
"neb"_neb.html, "prd"_prd.html, "tad"_tad.html, "temper"_temper.html,
"run_style verlet/split"_run_style.html, examples/neb, examples/prd,
examples/tad
@@ -1147,13 +1146,13 @@ Package, Description, Author(s), Doc page, Example, Pic/movie, Library
"USER-EFF"_#USER-EFF, electron force field, Andres Jaramillo-Botero (Caltech), "pair_style eff/cut"_pair_eff.html, USER/eff, "eff"_eff, -
"USER-FEP"_#USER-FEP, free energy perturbation, Agilio Padua (U Blaise Pascal Clermont-Ferrand), "compute fep"_compute_fep.html, USER/fep, -, -
"USER-H5MD"_#USER-H5MD, dump output via HDF5, Pierre de Buyl (KU Leuven), "dump h5md"_dump_h5md.html, -, -, lib/h5md
-"USER-INTEL"_#USER-INTEL, Vectorized CPU and Intel(R) coprocessor styles, W. Michael Brown (Intel), "Section accelerate"_accelerate_intel.html, examples/intel, -, -
+"USER-INTEL"_#USER-INTEL, Vectorized CPU and Intel(R) coprocessor styles, W. Michael Brown (Intel), "Section 5.3.2"_accelerate_intel.html, examples/intel, -, -
"USER-LB"_#USER-LB, Lattice Boltzmann fluid, Colin Denniston (U Western Ontario), "fix lb/fluid"_fix_lb_fluid.html, USER/lb, -, -
"USER-MGPT"_#USER-MGPT, fast MGPT multi-ion potentials, Tomas Oppelstrup & John Moriarty (LLNL), "pair_style mgpt"_pair_mgpt.html, USER/mgpt, -, -
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER-MISC/README, -, -, -
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surface, Stefan Paquay (Eindhoven U of Technology), "fix manifoldforce"_fix_manifoldforce.html, USER/manifold, "manifold"_manifold, -
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_VMD molfile plug-ins, Axel Kohlmeyer (Temple U), "dump molfile"_dump_molfile.html, -, -, VMD-MOLFILE
-"USER-OMP"_#USER-OMP, OpenMP threaded styles, Axel Kohlmeyer (Temple U), "Section accelerate"_accelerate_omp.html, -, -, -
+"USER-OMP"_#USER-OMP, OpenMP threaded styles, Axel Kohlmeyer (Temple U), "Section 5.3.4"_accelerate_omp.html, -, -, -
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix, Ling-Ti Kong (Shanghai Jiao Tong U), "fix phonon"_fix_phonon.html, USER/phonon, -, -
"USER-QMMM"_#USER-QMMM, QM/MM coupling, Axel Kohlmeyer (Temple U), "fix qmmm"_fix_qmmm.html, USER/qmmm, -, lib/qmmm
"USER-QTB"_#USER-QTB, quantum nuclear effects, Yuan Shen (Stanford), "fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -, -
@@ -1352,12 +1351,12 @@ USER-DRUDE package :link(USER-DRUDE),h5
Contents: This package contains methods for simulating polarizable
systems using thermalized Drude oscillators. It has computes, fixes,
-and pair styles for this purpose. See "Section howto
+and pair styles for this purpose. See "Section
6.27"_Section_howto.html#howto_27 for an overview of how to use the
package. See src/USER-DRUDE/README for additional details. There are
auxiliary tools for using this package in tools/drude.
-Supporting info: "Section howto 6.27"_Section_howto.html#howto_27,
+Supporting info: "Section 6.27"_Section_howto.html#howto_27,
src/USER-DRUDE/README, "fix drude"_fix_drude.html, "fix
drude/transform/*"_fix_drude_transform.html, "compute
temp/drude"_compute_temp_drude.html, "pair thole"_pair_thole.html,
@@ -1431,7 +1430,7 @@ USER-INTEL package :link(USER-INTEL),h5
Contents: Dozens of pair, bond, angle, dihedral, and improper styles
that are optimized for Intel CPUs and the Intel Xeon Phi (in offload
mode). All of them have an "intel" in their style name. "Section
-accelerate intel"_accelerate_intel.html gives details of what hardware
+5.3.2"_accelerate_intel.html gives details of what hardware
and compilers are required on your system, and how to build and use
this package. Also see src/USER-INTEL/README for more details. See
the KOKKOS, OPT, and USER-OMP packages, which also have CPU and
@@ -1439,7 +1438,7 @@ Phi-enabled styles.
Supporting info: examples/accelerate, src/USER-INTEL/TEST
-"Section 5"_Section_accelerate.html#acc_3
+"Section 5.3"_Section_accelerate.html#acc_3
Author: Mike Brown at Intel (michael.w.brown at intel.com). Contact
him directly if you have questions.
@@ -1531,7 +1530,7 @@ More information about each feature can be found by reading its doc
page in the LAMMPS doc directory. The doc page which lists all LAMMPS
input script commands is as follows:
-"Section 3"_Section_commands.html#cmd_5
+"Section 3.5"_Section_commands.html#cmd_5
User-contributed features are listed at the bottom of the fix,
compute, pair, etc sections.
@@ -1608,7 +1607,7 @@ styles, and fix styles.
See this section of the manual to get started:
-"Section 5"_Section_accelerate.html#acc_3
+"Section 5.3"_Section_accelerate.html#acc_3
The person who created this package is Axel Kohlmeyer at Temple U
(akohlmey at gmail.com). Contact him directly if you have questions.
diff --git a/doc/src/Section_perf.txt b/doc/src/Section_perf.txt
index fc59dbe1dc..39fe734cce 100644
--- a/doc/src/Section_perf.txt
+++ b/doc/src/Section_perf.txt
@@ -51,7 +51,7 @@ of these 5 problems on 1 or 4 cores of Linux desktop. The bench/FERMI
and bench/KEPLER dirs have input files and scripts and instructions
for running the same (or similar) problems using OpenMP or GPU or Xeon
Phi acceleration options. See the README files in those dirs and the
-"Section accelerate"_Section_accelerate.html doc pages for
+"Section 5.3"_Section_accelerate.html#acc_3 doc pages for
instructions on how to build LAMMPS and run on that kind of hardware.
The bench/POTENTIALS directory has input files which correspond to the
diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt
index bdb44fcf12..30fcdd6eac 100644
--- a/doc/src/Section_start.txt
+++ b/doc/src/Section_start.txt
@@ -21,7 +21,6 @@ experienced users.
2.8 "Screen output"_#start_8
2.9 "Tips for users of previous versions"_#start_9 :all(b)
-:line
:line
2.1 What's in the LAMMPS distribution :h4,link(start_1)
@@ -70,12 +69,12 @@ launch a LAMMPS Windows executable on a Windows box.
This section has the following sub-sections:
-"Read this first"_#start_2_1
-"Steps to build a LAMMPS executable"_#start_2_2
-"Common errors that can occur when making LAMMPS"_#start_2_3
-"Additional build tips"_#start_2_4
-"Building for a Mac"_#start_2_5
-"Building for Windows"_#start_2_6 :ul
+2.2.1 "Read this first"_#start_2_1
+2.2.1 "Steps to build a LAMMPS executable"_#start_2_2
+2.2.3 "Common errors that can occur when making LAMMPS"_#start_2_3
+2.2.4 "Additional build tips"_#start_2_4
+2.2.5 "Building for a Mac"_#start_2_5
+2.2.6 "Building for Windows"_#start_2_6 :all(b)
:line
@@ -559,8 +558,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
particular machine.
- Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or
--DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
+Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
As explained above, any of these 3 settings can be specified on the
LMP_INC line in your low-level src/MAKE/Makefile.foo.
@@ -612,7 +610,7 @@ neighbor lists and would run very slowly in terms of CPU secs/timestep.
Building for a Mac :h5,link(start_2_5)
-OS X is BSD Unix, so it should just work. See the
+OS X is a derivative of BSD Unix, so it should just work. See the
src/MAKE/MACHINES/Makefile.mac and Makefile.mac_mpi files.
:line
@@ -637,9 +635,9 @@ happy to distribute contributed instructions and modifications, but
we cannot provide support for those.
With the so-called "Anniversary Update" to Windows 10, there is a
-Ubuntu subsystem available for Windows, that can be installed and
-then it can be used to compile/install LAMMPS as if you are running
-on a Ubuntu Linux system.
+Ubuntu Linux subsystem available for Windows, that can be installed
+and then used to compile/install LAMMPS as if you are running on a
+Ubuntu Linux system instead of Windows.
As an alternative, you can download "daily builds" (and some older
versions) of the installer packages from
@@ -654,10 +652,10 @@ many examples, but no source code.
This section has the following sub-sections:
-"Package basics"_#start_3_1
-"Including/excluding packages"_#start_3_2
-"Packages that require extra libraries"_#start_3_3
-"Packages that require Makefile.machine settings"_#start_3_4 :ul
+2.3.1 "Package basics"_#start_3_1
+2.3.2 "Including/excluding packages"_#start_3_2
+2.3.3 "Packages that require extra libraries"_#start_3_3
+2.3.4 "Packages that require Makefile.machine settings"_#start_3_4 :all(b)
Note that the following "Section 2.4"_#start_4 describes the Make.py
tool which can be used to install/un-install packages and build the
@@ -673,7 +671,7 @@ are always included, plus optional packages. Packages are groups of
files that enable a specific set of features. For example, force
fields for molecular systems or granular systems are in packages.
-"Section packages"_Section_packages.html in the manual has details
+"Section 4"_Section_packages.html in the manual has details
about all the packages, including specific instructions for building
LAMMPS with each package, which are covered in a more general manner
below.
@@ -727,15 +725,15 @@ before building LAMMPS. From the src directory, this is typically as
simple as:
make yes-colloid
-make g++ :pre
+make mpi :pre
or
make no-manybody
-make g++ :pre
+make mpi :pre
NOTE: You should NOT include/exclude packages and build LAMMPS in a
-single make command using multiple targets, e.g. make yes-colloid g++.
+single make command using multiple targets, e.g. make yes-colloid mpi.
This is because the make procedure creates a list of source files that
will be out-of-date for the build if the package configuration changes
within the same command.
@@ -826,7 +824,7 @@ where to find them.
For libraries with provided code, the sub-directory README file
(e.g. lib/atc/README) has instructions on how to build that library.
This information is also summarized in "Section
-packages"_Section_packages.html. Typically this is done by typing
+4"_Section_packages.html. Typically this is done by typing
something like:
make -f Makefile.g++ :pre
@@ -885,17 +883,17 @@ A few packages require specific settings in Makefile.machine, to
either build or use the package effectively. These are the
USER-INTEL, KOKKOS, USER-OMP, and OPT packages, used for accelerating
code performance on CPUs or other hardware, as discussed in "Section
-acclerate"_Section_accelerate.html.
+5.3"_Section_accelerate.html#acc_3.
A summary of what Makefile.machine changes are needed for each of
-these packages is given in "Section packages"_Section_packages.html.
+these packages is given in "Section 4"_Section_packages.html.
The details are given on the doc pages that describe each of these
accelerator packages in detail:
-"USER-INTEL package"_accelerate_intel.html
-"KOKKOS package"_accelerate_kokkos.html
-"USER-OMP package"_accelerate_omp.html
-"OPT package"_accelerate_opt.html :ul
+5.3.1 "USER-INTEL package"_accelerate_intel.html
+5.3.3 "KOKKOS package"_accelerate_kokkos.html
+5.3.4 "USER-OMP package"_accelerate_omp.html
+5.3.5 "OPT package"_accelerate_opt.html :all(b)
You can also look at the following machine Makefiles in
src/MAKE/OPTIONS, which include the changes. Note that the USER-INTEL
@@ -1367,7 +1365,7 @@ Note that the keywords do not use a leading minus sign. I.e. the
keyword is "t", not "-t". Also note that each of the keywords has a
default setting. Example of when to use these options and what
settings to use on different platforms is given in "Section
-5.8"_Section_accelerate.html#acc_3.
+5.3"_Section_accelerate.html#acc_3.
d or device
g or gpus
diff --git a/doc/src/Section_tools.txt b/doc/src/Section_tools.txt
index 891430d84b..f469390ced 100644
--- a/doc/src/Section_tools.txt
+++ b/doc/src/Section_tools.txt
@@ -107,9 +107,10 @@ The ch2lmp sub-directory contains tools for converting files
back-and-forth between the CHARMM MD code and LAMMPS.
They are intended to make it easy to use CHARMM as a builder and as a
-post-processor for LAMMPS. Using charmm2lammps.pl, you can convert an
-ensemble built in CHARMM into its LAMMPS equivalent. Using
-lammps2pdb.pl you can convert LAMMPS atom dumps into pdb files.
+post-processor for LAMMPS. Using charmm2lammps.pl, you can convert a
+PDB file with associated CHARMM info, including CHARMM force field
+data, into its LAMMPS equivalent. Using lammps2pdb.pl you can convert
+LAMMPS atom dumps into PDB files.
See the README file in the ch2lmp sub-directory for more information.
diff --git a/doc/src/accelerate_kokkos.txt b/doc/src/accelerate_kokkos.txt
index 8e9f191701..1a45c04a1b 100644
--- a/doc/src/accelerate_kokkos.txt
+++ b/doc/src/accelerate_kokkos.txt
@@ -156,19 +156,25 @@ CPU-only (run all-MPI or with OpenMP threading):
cd lammps/src
make yes-kokkos
-make g++ KOKKOS_DEVICES=OpenMP :pre
+make kokkos_omp :pre
-Intel Xeon Phi:
+CPU-only (only MPI, no threading):
cd lammps/src
make yes-kokkos
-make g++ KOKKOS_DEVICES=OpenMP KOKKOS_ARCH=KNC :pre
+make kokkos_mpi :pre
-CPUs and GPUs:
+Intel Xeon Phi (Intel Compiler, Intel MPI):
cd lammps/src
make yes-kokkos
-make cuda KOKKOS_DEVICES=Cuda :pre
+make kokkos_phi :pre
+
+CPUs and GPUs (with MPICH):
+
+cd lammps/src
+make yes-kokkos
+make kokkos_cuda_mpich :pre
These examples set the KOKKOS-specific OMP, MIC, CUDA variables on the
make command line which requires a GNU-compatible make command. Try
@@ -180,26 +186,6 @@ first two examples above, then you *must* perform a "make clean-all"
or "make clean-machine" before each build. This is to force all the
KOKKOS-dependent files to be re-compiled with the new options.
-You can also hardwire these make variables in the specified machine
-makefile, e.g. src/MAKE/Makefile.g++ in the first two examples above,
-with a line like:
-
-KOKKOS_ARCH = KNC :pre
-
-Note that if you build LAMMPS multiple times in this manner, using
-different KOKKOS options (defined in different machine makefiles), you
-do not have to worry about doing a "clean" in between. This is
-because the targets will be different.
-
-NOTE: The 3rd example above for a GPU, uses a different machine
-makefile, in this case src/MAKE/Makefile.cuda, which is included in
-the LAMMPS distribution. To build the KOKKOS package for a GPU, this
-makefile must use the NVIDA "nvcc" compiler. And it must have a
-KOKKOS_ARCH setting that is appropriate for your NVIDIA hardware and
-installed software. Typical values for KOKKOS_ARCH are given below,
-as well as other settings that must be included in the machine
-makefile, if you create your own.
-
NOTE: Currently, there are no precision options with the KOKKOS
package. All compilation and computation is performed in double
precision.
@@ -246,7 +232,7 @@ used if running with KOKKOS_DEVICES=Pthreads for pthreads. It is not
necessary for KOKKOS_DEVICES=OpenMP for OpenMP, because OpenMP
provides alternative methods via environment variables for binding
threads to hardware cores. More info on binding threads to cores is
-given in "this section"_Section_accelerate.html#acc_3.
+given in "Section 5.3"_Section_accelerate.html#acc_3.
KOKKOS_ARCH=KNC enables compiler switches needed when compling for an
Intel Phi processor.
diff --git a/doc/src/accelerate_omp.txt b/doc/src/accelerate_omp.txt
index 5654f53e8e..c8dd343861 100644
--- a/doc/src/accelerate_omp.txt
+++ b/doc/src/accelerate_omp.txt
@@ -7,7 +7,7 @@
:line
-"Return to Section accelerate overview"_Section_accelerate.html
+"Return to Section 5 overview"_Section_accelerate.html
5.3.4 USER-OMP package :h5
@@ -103,8 +103,8 @@ USER-OMP style (in serial or parallel) with a single thread per MPI
task, versus running standard LAMMPS with its standard un-accelerated
styles (in serial or all-MPI parallelization with 1 task/core). This
is because many of the USER-OMP styles contain similar optimizations
-to those used in the OPT package, described in "Section accelerate
-5.3.6"_accelerate_opt.html.
+to those used in the OPT package, described in "Section
+5.3.5"_accelerate_opt.html.
With multiple threads/task, the optimal choice of number of MPI
tasks/node and OpenMP threads/task can vary a lot and should always be
diff --git a/doc/src/balance.txt b/doc/src/balance.txt
index 8e8078a1ab..6df5bc762a 100644
--- a/doc/src/balance.txt
+++ b/doc/src/balance.txt
@@ -10,7 +10,7 @@ balance command :h3
[Syntax:]
-balance thresh style args ... keyword value ... :pre
+balance thresh style args ... keyword args ... :pre
thresh = imbalance threshhold that must be exceeded to perform a re-balance :ulb,l
one style/arg pair can be used (or multiple for {x},{y},{z}) :l
@@ -32,24 +32,24 @@ style = {x} or {y} or {z} or {shift} or {rcb} :l
Niter = # of times to iterate within each dimension of dimstr sequence
stopthresh = stop balancing when this imbalance threshhold is reached
{rcb} args = none :pre
-zero or more optional keywords with their respective arguments may be appended :l
-keyword = {out} or {weight} :l
- {out} arg = filename
- filename = write each processor's sub-domain to a file
- {weight} style args = use weighted atom counts to compute the per processor load
+zero or more keyword/arg pairs may be appended :l
+keyword = {weight} or {out} :l
+ {weight} style args = use weighted particle counts for the balancing
{style} = {group} or {neigh} or {time} or {var} or {store}
- {group} args = Ngroup groupID-1 weight-1 groupID-2 weight-2...
+ {group} args = Ngroup group1 weight1 group2 weight2 ...
Ngroup = number of groups with assigned weights
- groupID-1, groupID-2, ... = group names
- weight-1, weight-2, ... = corresponding weight factors
+ group1, group2, ... = group IDs
+ weight1, weight2, ... = corresponding weight factors
{neigh} factor = compute weight based on number of neighbors
factor = scaling factor (> 0)
{time} factor = compute weight based on time spend computing
factor = scaling factor (> 0)
{var} name = take weight from atom-style variable
- name = name of the atom style variable
- {store} name = store weight in custom atom property
- name = name of the atom property (without d_ prefix) :pre
+ name = name of the atom-style variable
+ {store} name = store weight in custom atom property defined by "fix property/atom"_fix_property_atom.html command
+ name = atom property name (without d_ prefix)
+ {out} arg = filename
+ filename = write each processor's sub-domain to a file :pre
:ule
[Examples:]
@@ -65,69 +65,35 @@ balance 1.0 shift x 20 1.0 out tmp.balance :pre
[Description:]
This command adjusts the size and shape of processor sub-domains
-within the simulation box, to attempt to balance the number of
-particles and thus indirectly the computational cost (load)
-more evenly across processors. The load balancing is "static"
-in the sense that this command performs the balancing once, before
-or between simulations.
-The processor sub-domains will then remain static during the
-subsequent run. To perform "dynamic" balancing, see the "fix
+within the simulation box, to attempt to balance the number of atoms
+or particles and thus indirectly the computational cost (load) more
+evenly across processors. The load balancing is "static" in the sense
+that this command performs the balancing once, before or between
+simulations. The processor sub-domains will then remain static during
+the subsequent run. To perform "dynamic" balancing, see the "fix
balance"_fix_balance.html command, which can adjust processor
sub-domain sizes and shapes on-the-fly during a "run"_run.html.
-With the optional {weight} keyword different weight factors can be
-assigned to particles according several styles and balancing will
-be performed on the weighted particle counts. Multiple weight
-styles may be given and they are processed in order by multiplying
-the existing weight factor, which defaults to 1.0 with the newly
-computed weight factor. The {store} weight style is an exception,
-as does not compute a weight, but instead stores the current
-accumulated weights in a custom per-atom property defined with
-"fix property/atom"_fix_property_atom.html.
-
-The {group} weight style assigns fixed weight factors according
-to which group atoms belong to. The {group} style keyword is
-followed by the number of groups with custom weights
-(default weight is 1.0) and pairs of group ID and the corresponding
-weight factor. The final weight for each atom is the product of
-all individual weight factors from the groups it belongs to.
-An atom with a total weight of 5 then be will be considered to
-have 5x the computational cost than an atom with the default weight
-of 1.0.
-
-The {neigh} weight style assigns weights computed from the number
-of neighbors divided by the avergage number of neighbors. The
-scaling factor argument determines the relative impact of this
-weight factor. This weight style will use the first suitable neighbor
-list that is internally available and by inactive and print a
-warning, if there is not suitable list available. This is typically
-the case before the first "run"_run.html or "minimize"_minimize.html
-command is issued.
-
-The {time} weight style allows to incorporate "timer data"_timer.html
-into the load balancing cost function. The required weight factor
-rgument (a number > 0) determines to which degree timing information
-is included. The timer information is taken from the preceding run.
-If no such information is available, e.g. at the beginning of an input,
-of when the "timer"_timer.html level is set to either {loop} or {off},
-this style is ignored.
-
-The {var} weight style allows to set per-atom weights from an
-atom-style "variable"_variable.html into the load balancing cost
-function.
-
Load-balancing is typically most useful if the particles in the
-simulation box have a spatially-varying density distribution or
-where the computational cost varies signficantly between different
-atoms. E.g. a model of a vapor/liquid interface, or a solid with
-an irregular-shaped geometry containing void regions, or
-"hybrid pair style simulations"_pair_hybrid.html which combine
-pair styles with different computational cost. In these cases, the
-LAMMPS default of dividing the simulation box volume into a
-regular-spaced grid of 3d bricks, with one equal-volume sub-domain
-per procesor, may assign numbers of particles per processor in a
-way that the computational effort varies significantly. This can
-lead to poor performance when the simulation is run in parallel.
+simulation box have a spatially-varying density distribution or when
+the computational cost varies signficantly between different
+particles. E.g. a model of a vapor/liquid interface, or a solid with
+an irregular-shaped geometry containing void regions, or "hybrid pair
+style simulations"_pair_hybrid.html which combine pair styles with
+different computational cost. In these cases, the LAMMPS default of
+dividing the simulation box volume into a regular-spaced grid of 3d
+bricks, with one equal-volume sub-domain per procesor, may assign
+numbers of particles per processor in a way that the computational
+effort varies significantly. This can lead to poor performance when
+the simulation is run in parallel.
+
+The balancing can be performed with or without per-particle weighting.
+With no weighting, the balancing attempts to assign an equal number of
+particles to each processor. With weighting, the balancing attempts
+to assign an equal aggregate computational weight to each processor,
+which typically inducces a diffrent number of atoms assigned to each
+processor. Details on the various weighting options and examples for
+how they can be used are "given below"_#weighted_balance.
Note that the "processors"_processors.html command allows some control
over how the box volume is split across processors. Specifically, for
@@ -140,9 +106,9 @@ sub-domains will still have the same shape and same volume.
The requested load-balancing operation is only performed if the
current "imbalance factor" in particles owned by each processor
exceeds the specified {thresh} parameter. The imbalance factor is
-defined as the maximum number of particles owned by any processor,
-divided by the average number of particles per processor. Thus an
-imbalance factor of 1.0 is perfect balance.
+defined as the maximum number of particles (or weight) owned by any
+processor, divided by the average number of particles (or weight) per
+processor. Thus an imbalance factor of 1.0 is perfect balance.
As an example, for 10000 particles running on 10 processors, if the
most heavily loaded processor has 1200 particles, then the factor is
@@ -196,11 +162,11 @@ The {x}, {y}, {z}, and {shift} styles are "grid" methods which produce
a logical 3d grid of processors. They operate by changing the cutting
planes (or lines) between processors in 3d (or 2d), to adjust the
volume (area in 2d) assigned to each processor, as in the following 2d
-diagram where processor sub-domains are shown and atoms are colored by
-the processor that owns them. The leftmost diagram is the default
-partitioning of the simulation box across processors (one sub-box for
-each of 16 processors); the middle diagram is after a "grid" method
-has been applied.
+diagram where processor sub-domains are shown and particles are
+colored by the processor that owns them. The leftmost diagram is the
+default partitioning of the simulation box across processors (one
+sub-box for each of 16 processors); the middle diagram is after a
+"grid" method has been applied.
:image(JPG/balance_uniform_small.jpg,JPG/balance_uniform.jpg),image(JPG/balance_nonuniform_small.jpg,JPG/balance_nonuniform.jpg),image(JPG/balance_rcb_small.jpg,JPG/balance_rcb.jpg)
:c
@@ -208,9 +174,8 @@ has been applied.
The {rcb} style is a "tiling" method which does not produce a logical
3d grid of processors. Rather it tiles the simulation domain with
rectangular sub-boxes of varying size and shape in an irregular
-fashion so as to have equal numbers of particles (or an equal
-load in case weighted load-balancing is requested) in each sub-box,
-as in the rightmost diagram above.
+fashion so as to have equal numbers of particles (or weight) in each
+sub-box, as in the rightmost diagram above.
The "grid" methods can be used with either of the
"comm_style"_comm_style.html command options, {brick} or {tiled}. The
@@ -325,21 +290,129 @@ the longest dimension, leaving one new box on either side of the cut.
All the processors are also partitioned into 2 groups, half assigned
to the box on the lower side of the cut, and half to the box on the
upper side. (If the processor count is odd, one side gets an extra
-processor.) The cut is positioned so that the number of atoms in the
-lower box is exactly the number that the processors assigned to that
-box should own for load balance to be perfect. This also makes load
-balance for the upper box perfect. The positioning is done
-iteratively, by a bisectioning method. Note that counting atoms on
-either side of the cut requires communication between all processors
-at each iteration.
+processor.) The cut is positioned so that the number of particles in
+the lower box is exactly the number that the processors assigned to
+that box should own for load balance to be perfect. This also makes
+load balance for the upper box perfect. The positioning is done
+iteratively, by a bisectioning method. Note that counting particles
+on either side of the cut requires communication between all
+processors at each iteration.
That is the procedure for the first cut. Subsequent cuts are made
recursively, in exactly the same manner. The subset of processors
assigned to each box make a new cut in the longest dimension of that
-box, splitting the box, the subset of processsors, and the atoms in
-the box in two. The recursion continues until every processor is
-assigned a sub-box of the entire simulation domain, and owns the atoms
-in that sub-box.
+box, splitting the box, the subset of processsors, and the particles
+in the box in two. The recursion continues until every processor is
+assigned a sub-box of the entire simulation domain, and owns the
+particles in that sub-box.
+
+:line
+
+This sub-section describes how to perform weighted load balancing
+using the {weight} keyword. :link(weighted_balance)
+
+By default, all particles have a weight of 1.0, which means each
+particle is assumed to require the same amount of computation during a
+timestep. There are, however, scenarios where this is not a good
+assumption. Measuring the computational cost for each particle
+accurately would be impractical and slow down the computation.
+Instead the {weight} keyword implements several ways to influence the
+per-particle weights empirically by properties readily available or
+using the user's knowledge of the system. Note that the absolute
+value of the weights are not important; their ratio is what is used to
+assign particles to processors. A particle with a weight of 2.5 is
+assumed to require 5x more computational than a particle with a weight
+of 0.5.
+
+Below is a list of possible weight options with a short description of
+their usage and some example scenarios where they might be applicable.
+It is possible to apply multiple weight flags and the weightins they
+induce will be combined through multiplication. Most of the time,
+however, it is sufficient to use just one method.
+
+The {group} weight style assigns weight factors to specified
+"groups"_group.html of particles. The {group} style keyword is
+followed by the number of groups, then pairs of group IDs and the
+corresponding weight factor. If a particle belongs to none of the
+specified groups, its weight is not changed. If it belongs to
+multiple groups, its weight is the product of the weight factors.
+
+This weight style is useful in combination with pair style
+"hybrid"_pair_hybrid.html, e.g. when combining a more costly manybody
+potential with a fast pair-wise potential. It is also useful when
+using "run_style respa"_run_style.html where some portions of the
+system have many bonded interactions and others none. It assumes that
+the computational cost for each group remains constant over time.
+This is a purely empirical weighting, so a series test runs to tune
+the assigned weight factors for optimal performance is recommended.
+
+The {neigh} weight style assigns a weight to each particle equal to
+its number of neighbors divided by the avergage number of neighbors
+for all particles. The {factor} setting is then appied as an overall
+scale factor to all the {neigh} weights which allows tuning of the
+impact of this style. A {factor} smaller than 1.0 (e.g. 0.8) often
+results in the best performance, since the number of neighbors is
+likely to overestimate the ideal weight.
+
+This weight style is useful for systems where there are different
+cutoffs used for different pairs of interations, or the density
+fluctuates, or a large number of particles are in the vicinity of a
+wall, or a combination of these effects. If a simulation uses
+multiple neighbor lists, this weight style will use the first suitable
+neighbor list it finds. It will not request or compute a new list. A
+warning will be issued if there is no suitable neighbor list available
+or if it is not current, e.g. if the balance command is used before a
+"run"_run.html or "minimize"_minimize.html command is used, in which
+case the neighbor list may not yet have been built. In this case no
+weights are computed. Inserting a "run 0 post no"_run.html command
+before issuing the {balance} command, may be a workaround for this
+case, as it will induce the neighbor list to be built.
+
+The {time} weight style uses "timer data"_timer.html to estimate a
+weight for each particle. It uses the same information as is used for
+the "MPI task timing breakdown"_Section_start.html#start_8, namely,
+the timings for sections {Pair}, {Bond}, {Kspace}, and {Neigh}. The
+time spent in these sections of the timestep are measured for each MPI
+rank, summed up, then converted into a cost for each MPI rank relative
+to the average cost over all MPI ranks for the same sections. That
+cost then evenly distributed over all the particles owned by that
+rank. Finally, the {factor} setting is then appied as an overall
+scale factor to all the {time} weights as a way to fine tune the
+impact of this weight style. Good {factor} values to use are
+typically between 0.5 and 1.2.
+
+For the {balance} command the timing data is taken from the preceding
+run command, i.e. the timings are for the entire previous run. For
+the {fix balance} command the timing data is for only the timesteps
+since the last balancing operation was performed. If timing
+information for the required sections is not available, e.g. at the
+beginning of a run, or when the "timer"_timer.html command is set to
+either {loop} or {off}, a warning is issued. In this case no weights
+are computed.
+
+This weight style is the most generic one, and should be tried first,
+if neither the {group} or {neigh} styles are easily applicable.
+However, since the computed cost function is averaged over all local
+particles this weight style may not be highly accurate. This style
+can also be effective as a secondary weight in combination with either
+{group} or {neigh} to offset some of inaccuracies in either of those
+heuristics.
+
+The {var} weight style assigns per-particle weights by evaluating an
+"atom-style variable"_variable.html specified by {name}. This is
+provided as a more flexible alternative to the {group} weight style,
+allowing definition of a more complex heuristics based on information
+(global and per atom) available inside of LAMMPS. For example,
+atom-style variables can reference the position of a particle, its
+velocity, the volume of its Voronoi cell, etc.
+
+The {store} weight style does not compute a weight factor. Instead it
+stores the current accumulated weights in a custom per-atom property
+specified by {name}. This must be a property defined as {d_name} via
+the "fix property/atom"_fix_property_atom.html command. Note that
+these custom per-atom properties can be output in a "dump"_dump.html
+file, so this is a way to examine, debug, or visualize the
+per-particle weights computed during the load-balancing operation.
:line
diff --git a/doc/src/compute_tally.txt b/doc/src/compute_tally.txt
index 74540ffaa4..95ef4a553b 100644
--- a/doc/src/compute_tally.txt
+++ b/doc/src/compute_tally.txt
@@ -35,7 +35,12 @@ group/group"_compute_group_group.html only that the data is
accumulated directly during the non-bonded force computation. The
computes {force/tally}, {pe/tally}, {stress/tally}, and
{heat/flux/tally} are primarily provided as example how to program
-additional, more sophisticated computes using the tally mechanism.
+additional, more sophisticated computes using the tally callback
+mechanism. Compute {pe/mol/tally} is one such style, that can
+- through using this mechanism - separately tally intermolecular
+and intramolecular energies. Something that would otherwise be
+impossible without integrating this as a core functionality into
+the based classes of LAMMPS.
:line
@@ -56,7 +61,7 @@ atom scalar (the contributions of the single atom to the global
scalar). Compute {pe/mol/tally} calculates a global 4-element vector
containing (in this order): {evdwl} and {ecoul} for intramolecular pairs
and {evdwl} and {ecoul} for intermolecular pairs. Since molecules are
-identified my their molecule IDs, the partitioning does not have to be
+identified by their molecule IDs, the partitioning does not have to be
related to molecules, but the energies are tallied into the respective
slots depending on whether the molecule IDs of a pair are the same or
different. Compute {force/tally} calculates a global scalar (the force
diff --git a/doc/src/dump.txt b/doc/src/dump.txt
index a29a8a8ef1..767e791d71 100644
--- a/doc/src/dump.txt
+++ b/doc/src/dump.txt
@@ -328,8 +328,8 @@ bonds and colors.
Note that {atom}, {custom}, {dcd}, {xtc}, and {xyz} style dump files
can be read directly by "VMD"_http://www.ks.uiuc.edu/Research/vmd, a
-popular molecular viewing program. See "Section
-tools"_Section_tools.html#vmd of the manual and the
+popular molecular viewing program. See
+"Section 9"_Section_tools.html#vmd of the manual and the
tools/lmp2vmd/README.txt file for more information about support in
VMD for reading and visualizing LAMMPS dump files.
@@ -390,7 +390,7 @@ Using MPI-IO requires two steps. First, build LAMMPS with its MPIIO
package installed, e.g.
make yes-mpiio # installs the MPIIO package
-make g++ # build LAMMPS for your platform :pre
+make mpi # build LAMMPS for your platform :pre
Second, use a dump filename which contains ".mpiio". Note that it
does not have to end in ".mpiio", just contain those characters.
@@ -531,7 +531,7 @@ so that each value is 0.0 to 1.0. If the simulation box is triclinic
(tilted), then all atom coords will still be between 0.0 and 1.0.
I.e. actual unscaled (x,y,z) = xs*A + ys*B + zs*C, where (A,B,C) are
the non-orthogonal vectors of the simulation box edges, as discussed
-in "Section howto 6.12"_Section_howto.html#howto_12.
+in "Section 6.12"_Section_howto.html#howto_12.
Use {xu}, {yu}, {zu} if you want the coordinates "unwrapped" by the
image flags for each atom. Unwrapped means that if the atom has
diff --git a/doc/src/dump_molfile.txt b/doc/src/dump_molfile.txt
index 5dd045ec2d..3494ba9a91 100644
--- a/doc/src/dump_molfile.txt
+++ b/doc/src/dump_molfile.txt
@@ -34,7 +34,7 @@ to one or more files every N timesteps in one of several formats.
Only information for atoms in the specified group is dumped. This
specific dump style uses molfile plugins that are bundled with the
"VMD"_http://www.ks.uiuc.edu/Research/vmd molecular visualization and
-analysis program. See "Section tools"_Section_tools.html#vmd of the
+analysis program. See "Section 9"_Section_tools.html#vmd of the
manual and the tools/lmp2vmd/README.txt file for more information
about support in VMD for reading and visualizing native LAMMPS dump
files.
diff --git a/doc/src/fix_balance.txt b/doc/src/fix_balance.txt
index 08b3480376..8473fa8152 100644
--- a/doc/src/fix_balance.txt
+++ b/doc/src/fix_balance.txt
@@ -10,7 +10,7 @@ fix balance command :h3
[Syntax:]
-fix ID group-ID balance Nfreq thresh style args keyword value ... :pre
+fix ID group-ID balance Nfreq thresh style args keyword args ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
balance = style name of this fix command :l
@@ -22,24 +22,24 @@ style = {shift} or {rcb} :l
Niter = # of times to iterate within each dimension of dimstr sequence
stopthresh = stop balancing when this imbalance threshhold is reached
{rcb} args = none :pre
-zero or more optional keywords with their respective arguments may be appended :l
-keyword = {out} or {weight} :l
- {out} arg = filename
- filename = write each processor's sub-domain to a file
- {weight} style args = use weighted atom counts to compute the per processor load
+zero or more keyword/arg pairs may be appended :l
+keyword = {weight} or {out} :l
+ {weight} style args = use weighted particle counts for the balancing
{style} = {group} or {neigh} or {time} or {var} or {store}
- {group} args = Ngroup groupID-1 weight-1 groupID-2 weight-2...
+ {group} args = Ngroup group1 weight1 group2 weight2 ...
Ngroup = number of groups with assigned weights
- groupID-1, groupID-2, ... = group names
- weight-1, weight-2, ... = corresponding weight factors
+ group1, group2, ... = group IDs
+ weight1, weight2, ... = corresponding weight factors
{neigh} factor = compute weight based on number of neighbors
factor = scaling factor (> 0)
{time} factor = compute weight based on time spend computing
factor = scaling factor (> 0)
{var} name = take weight from atom-style variable
- name = name of the atom style variable
- {store} name = store weight in custom atom property
- name = name of the atom property (without d_ prefix) :pre
+ name = name of the atom-style variable
+ {store} name = store weight in custom atom property defined by "fix property/atom"_fix_property_atom.html command
+ name = atom property name (without d_ prefix)
+ {out} arg = filename
+ filename = write each processor's sub-domain to a file, at each re-balancing :pre
:ule
[Examples:]
@@ -61,47 +61,6 @@ rebalancing is performed periodically during the simulation. To
perform "static" balancing, before or between runs, see the
"balance"_balance.html command.
-With the optional {weight} keyword different weight factors can be
-assigned to particles according several styles and balancing will
-be performed on the weighted particle counts. Multiple weight
-styles may be given and they are processed in order by multiplying
-the existing weight factor, which defaults to 1.0 with the newly
-computed weight factor. The {store} weight style is an exception,
-as does not compute a weight, but instead stores the current
-accumulated weights in a custom per-atom property defined with
-"fix property/atom"_fix_property_atom.html.
-
-The {group} weight style assigns fixed weight factors according
-to which group atoms belong to. The {group} style keyword is
-followed by the number of groups with custom weights
-(default weight is 1.0) and pairs of group ID and the corresponding
-weight factor. The final weight for each atom is the product of
-all individual weight factors from the groups it belongs to.
-An atom with a total weight of 5 then be will be considered to
-have 5x the computational cost than an atom with the default weight
-of 1.0.
-
-The {neigh} weight style assigns weights computed from the number
-of neighbors divided by the avergage number of neighbors. The
-scaling factor argument determines the relative impact of this
-weight factor. This weight style will use the first suitable neighbor
-list that is internally available and by inactive and print a
-warning, if there is not suitable list available. This is typically
-the case before the first "run"_run.html or "minimize"_minimize.html
-command is issued.
-
-The {time} weight style allows to incorporate "timer data"_timer.html
-into the load balancing cost function. The required weight factor
-rgument (a number > 0) determines to which degree timing information
-is included. The timer information is taken from the preceding run.
-If no such information is available, e.g. at the beginning of an input,
-of when the "timer"_timer.html level is set to either {loop} or {off},
-this style is ignored.
-
-The {var} weight style allows to set per-atom weights from an
-atom-style "variable"_variable.html into the load balancing cost
-function.
-
Load-balancing is typically most useful if the particles in the
simulation box have a spatially-varying density distribution or
where the computational cost varies signficantly between different
@@ -115,6 +74,20 @@ per procesor, may assign numbers of particles per processor in a
way that the computational effort varies significantly. This can
lead to poor performance when the simulation is run in parallel.
+The balancing can be performed with or without per-particle weighting.
+With no weighting, the balancing attempts to assign an equal number of
+particles to each processor. With weighting, the balancing attempts
+to assign an equal aggregate computational weight to each processor,
+which typically inducces a diffrent number of atoms assigned to each
+processor.
+
+NOTE: The weighting options listed above are documented with the
+"balance"_balance.html command in "this section of the balance
+command"_balance.html#weighted_balance doc page. That section
+describes the various weighting options and gives a few examples of
+how they can be used. The weighting options are the same for both the
+fix balance and "balance"_balance.html commands.
+
Note that the "processors"_processors.html command allows some control
over how the box volume is split across processors. Specifically, for
a Px by Py by Pz grid of processors, it allows choice of Px, Py, and
@@ -126,9 +99,9 @@ sub-domains will still have the same shape and same volume.
On a particular timestep, a load-balancing operation is only performed
if the current "imbalance factor" in particles owned by each processor
exceeds the specified {thresh} parameter. The imbalance factor is
-defined as the maximum number of particles owned by any processor,
-divided by the average number of particles per processor. Thus an
-imbalance factor of 1.0 is perfect balance.
+defined as the maximum number of particles (or weight) owned by any
+processor, divided by the average number of particles (or weight) per
+processor. Thus an imbalance factor of 1.0 is perfect balance.
As an example, for 10000 particles running on 10 processors, if the
most heavily loaded processor has 1200 particles, then the factor is
@@ -179,9 +152,8 @@ applied.
The {rcb} style is a "tiling" method which does not produce a logical
3d grid of processors. Rather it tiles the simulation domain with
rectangular sub-boxes of varying size and shape in an irregular
-fashion so as to have equal numbers of particles (or an equal
-load in case weighted load-balancing is requested) in each sub-box,
-as in the rightmost diagram above.
+fashion so as to have equal numbers of particles (or weight) in each
+sub-box, as in the rightmost diagram above.
The "grid" methods can be used with either of the
"comm_style"_comm_style.html command options, {brick} or {tiled}. The
@@ -202,10 +174,9 @@ from scratch.
:line
-The {group-ID} is currently ignored. Load-balancing will always affect
-all atoms. However the different impact of different groups of atoms in
-a simulation can be considered through the {group} weight style and
-assigning different weight factors != 1.0 to atoms in these groups.
+The {group-ID} is ignored. However the impact of balancing on
+different groups of atoms can be affected by using the {group} weight
+style as described below.
The {Nfreq} setting determines how often a rebalance is performed. If
{Nfreq} > 0, then rebalancing will occur every {Nfreq} steps. Each
@@ -311,10 +282,10 @@ in that sub-box.
:line
-The {out} keyword writes a text file to the specified {filename} with
-the results of each rebalancing operation. The file contains the
-bounds of the sub-domain for each processor after the balancing
-operation completes. The format of the file is compatible with the
+The {out} keyword writes text to the specified {filename} with the
+results of each rebalancing operation. The file contains the bounds
+of the sub-domain for each processor after the balancing operation
+completes. The format of the file is compatible with the
"Pizza.py"_pizza {mdump} tool which has support for manipulating and
visualizing mesh files. An example is shown here for a balancing by 4
processors for a 2d problem:
diff --git a/doc/src/fix_cmap.txt b/doc/src/fix_cmap.txt
new file mode 100644
index 0000000000..88d6aac83c
--- /dev/null
+++ b/doc/src/fix_cmap.txt
@@ -0,0 +1,132 @@
+"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
+
+fix cmap command :h3
+
+[Syntax:]
+
+fix ID group-ID cmap filename :pre
+
+ID, group-ID are documented in "fix"_fix.html command
+cmap = style name of this fix command
+filename = force-field file with CMAP coefficients :ul
+
+[Examples:]
+
+fix myCMAP all cmap ../potentials/cmap36.data
+read_data proteinX.data fix myCMAP crossterm CMAP
+fix_modify myCMAP energy yes :pre
+
+[Description:]
+
+This command enables CMAP crossterms to be added to simulations which
+use the CHARMM force field. These are relevant for any CHARMM model
+of a peptide or protein sequences that is 3 or more amino-acid
+residues long; see "(Buck)"_#Buck and "(Brooks)"_#Brooks for details,
+including the analytic energy expressions for CMAP interactions. The
+CMAP crossterms add additional potential energy contributions to pairs
+of overlapping phi-psi dihedrals of amino-acids, which are important
+to properly represent their conformational behavior.
+
+The examples/cmap directory has a sample input script and data file
+for a small peptide, that illustrates use of the fix cmap command.
+
+As in the example above, this fix should be used before reading a data
+file that contains a listing of CMAP interactions. The {filename}
+specified should contain the CMAP parameters for a particular version
+of the CHARMM force field. Two such files are including in the
+lammps/potentials directory: charmm22.cmap and charmm36.cmap.
+
+The data file read by the "read_data" must contain the topology of all
+the CMAP interactions, similar to the topology data for bonds, angles,
+dihedrals, etc. Specically it should have a line like this
+in its header section:
+
+N crossterms :pre
+
+where N is the number of CMAP crossterms. It should also have a section
+in the body of the data file like this with N lines:
+
+CMAP :pre
+
+ 1 1 8 10 12 18 20
+ 2 5 18 20 22 25 27
+ \[...\]
+ N 3 314 315 317 318 330 :pre
+
+The first column is an index from 1 to N to enumerate the CMAP terms;
+it is ignored by LAMMPS. The 2nd column is the "type" of the
+interaction; it is an index into the CMAP force field file. The
+remaining 5 columns are the atom IDs of the atoms in the two 4-atom
+dihedrals that overlap to create the CMAP 5-body interaction. Note
+that the "crossterm" and "CMAP" keywords for the header and body
+sections match those specified in the read_data command following the
+data file name; see the "read_data"_read_data.html doc page for
+more details.
+
+A data file containing CMAP crossterms can be generated from a PDB
+file using the charmm2lammps.pl script in the tools/ch2lmp directory
+of the LAMMPS distribution. The script must be invoked with the
+optional "-cmap" flag to do this; see the tools/ch2lmp/README file for
+more information.
+
+The potential energy associated with CMAP interactions can be output
+as described below. It can also be included in the total potential
+energy of the system, as output by the
+"thermo_style"_thermo_style.html command, if the "fix_modify
+energy"_fix_modify.html command is used, as in the example above. See
+the note below about how to include the CMAP energy when performing an
+"energy minimization"_minimize.html.
+
+:line
+
+[Restart, fix_modify, output, run start/stop, minimize info:]
+
+No information about this fix is written to "binary restart
+files"_restart.html.
+
+The "fix_modify"_fix_modify.html {energy} option is supported by this
+fix to add the potential "energy" of the CMAP interactions system's
+potential energy as part of "thermodynamic output"_thermo_style.html.
+
+This fix computes a global scalar which can be accessed by various
+"output commands"_Section_howto.html#howto_15. The scalar is the
+potential energy discussed above. The scalar value calculated by this
+fix is "extensive".
+
+No parameter of this fix can be used with the {start/stop} keywords of
+the "run"_run.html command.
+
+The forces due to this fix are imposed during an energy minimization,
+invoked by the "minimize"_minimize.html command.
+
+NOTE: If you want the potential energy associated with the CMAP terms
+forces to be included in the total potential energy of the system (the
+quantity being minimized), you MUST enable the
+"fix_modify"_fix_modify.html {energy} option for this fix.
+
+[Restrictions:]
+
+This fix can only be used if LAMMPS was built with the MOLECULE
+package (which it is by default). See the "Making
+LAMMPS"_Section_start.html#start_3 section for more info on packages.
+
+[Related commands:]
+
+"fix_modify"_fix_modify.html, "read_data"_read_data.html
+
+[Default:] none
+
+:line
+
+:link(Buck)
+[(Buck)] Buck, Bouguet-Bonnet, Pastor, MacKerell Jr., Biophys J, 90, L36
+(2006).
+
+:link(Brooks)
+[(Brooks)] Brooks, Brooks, MacKerell Jr., J Comput Chem, 30, 1545 (2009).
diff --git a/doc/src/fix_ti_spring.txt b/doc/src/fix_ti_spring.txt
index 3b69041c4a..64ffe2fc8a 100755
--- a/doc/src/fix_ti_spring.txt
+++ b/doc/src/fix_ti_spring.txt
@@ -99,8 +99,8 @@ center-of-mass fixed during the thermodynamic integration. A nonzero
total velocity will result in divergences during the integration due
to the fact that the atoms are 'attached' to their equilibrium
positions by the Einstein crystal. Check the option {zero} of "fix
-langevin"_fix_langevin_html and "velocity"_velocity.html. The use of
-the Nose-Hoover thermostat ("fix nvt"_fix_nvt.html) is {NOT}
+langevin"_fix_langevin.html and "velocity"_velocity.html. The use of
+the Nose-Hoover thermostat ("fix nvt"_fix_nh.html) is {NOT}
recommended due to its well documented issues with the canonical
sampling of harmonic degrees of freedom (notice that the {chain}
option will {NOT} solve this problem). The Langevin thermostat ("fix
diff --git a/doc/src/fixes.txt b/doc/src/fixes.txt
index f1a481fc3b..c8e989cc62 100644
--- a/doc/src/fixes.txt
+++ b/doc/src/fixes.txt
@@ -24,6 +24,7 @@ Fixes :h1
fix_bond_create
fix_bond_swap
fix_box_relax
+ fix_cmap
fix_colvars
fix_controller
fix_deform
@@ -138,7 +139,6 @@ Fixes :h1
fix_temp_rescale_eff
fix_tfmc
fix_thermal_conductivity
- fix_ti_rs
fix_ti_spring
fix_tmd
fix_ttm
diff --git a/doc/src/lammps.book b/doc/src/lammps.book
index 620eee483d..ba9dae4fb5 100644
--- a/doc/src/lammps.book
+++ b/doc/src/lammps.book
@@ -147,6 +147,7 @@ fix_bond_break.html
fix_bond_create.html
fix_bond_swap.html
fix_box_relax.html
+fix_cmap.html
fix_colvars.html
fix_controller.html
fix_deform.html
diff --git a/doc/src/neb.txt b/doc/src/neb.txt
index 027c3ae8c4..fb387da3c8 100644
--- a/doc/src/neb.txt
+++ b/doc/src/neb.txt
@@ -48,17 +48,14 @@ follows the discussion in these 3 papers: "(HenkelmanA)"_#HenkelmanA,
Each replica runs on a partition of one or more processors. Processor
partitions are defined at run-time using the -partition command-line
-switch; see "Section 2.7"_Section_start.html#start_7 of the
-manual. Note that if you have MPI installed, you can run a
-multi-replica simulation with more replicas (partitions) than you have
-physical processors, e.g you can run a 10-replica simulation on just
-one or two processors. You will simply not get the performance
-speed-up you would see with one or more physical processors per
-replica. See "this section"_Section_howto.html#howto_5 of the manual
-for further discussion.
-
-NOTE: The current NEB implementation in LAMMPS only allows there to be
-one processor per replica.
+switch; see "Section 2.7"_Section_start.html#start_7 of the manual.
+Note that if you have MPI installed, you can run a multi-replica
+simulation with more replicas (partitions) than you have physical
+processors, e.g you can run a 10-replica simulation on just one or two
+processors. You will simply not get the performance speed-up you
+would see with one or more physical processors per replica. See
+"Section 6.5"_Section_howto.html#howto_5 of the manual for further
+discussion.
NOTE: As explained below, a NEB calculation perfoms a damped dynamics
minimization across all the replicas. The mimimizer uses whatever
@@ -255,12 +252,6 @@ An atom map must be defined which it is not by default for "atom_style
atomic"_atom_style.html problems. The "atom_modify
map"_atom_modify.html command can be used to do this.
-The "atom_modify sort 0 0.0" command should be used to turn off atom
-sorting.
-
-NOTE: This sorting restriction will be removed in a future version of
-NEB in LAMMPS.
-
The minimizers in LAMMPS operate on all atoms in your system, even
non-NEB atoms, as defined above. To prevent non-NEB atoms from moving
during the minimization, you should use the "fix
diff --git a/doc/src/package.txt b/doc/src/package.txt
index e838ac1a77..de7e0f5c22 100644
--- a/doc/src/package.txt
+++ b/doc/src/package.txt
@@ -142,7 +142,7 @@ the style options are set, either to default values or to specified
settings. I.e. settings from previous invocations do not persist
across multiple invocations.
-See the "Section Accelerate"_Section_accelerate.html section of the
+See the "Section 5.3"_Section_accelerate.html#acc_3 section of the
manual for more details about using the various accelerator packages
for speeding up LAMMPS simulations.
diff --git a/doc/src/pair_gauss.txt b/doc/src/pair_gauss.txt
index 73b2bcd4bb..32fc5f6149 100644
--- a/doc/src/pair_gauss.txt
+++ b/doc/src/pair_gauss.txt
@@ -63,7 +63,7 @@ solvent simulations of salt ions "(Lenart)"_#Lenart and of surfactants
"(Jusufi)"_#Jusufi. In these instances the Gaussian potential mimics
the hydration barrier between a pair of particles. The hydration
barrier is located at r_mh and has a width of sigma_h. The prefactor
-determines the hight of the potential barrier.
+determines the height of the potential barrier.
The following coefficients must be defined for each pair of atom types
via the "pair_coeff"_pair_coeff.html command as in the example above,
@@ -73,9 +73,11 @@ commands:
H (energy * distance units)
r_mh (distance units)
-sigma_h (distance units) :ul
+sigma_h (distance units)
+cutoff (distance units) :ul
-The global cutoff (r_c) specified in the pair_style command is used.
+The last coefficient is optional. If not specified, the global cutoff
+is used.
:line
diff --git a/doc/src/prd.txt b/doc/src/prd.txt
index 84aacbfafe..832239de98 100644
--- a/doc/src/prd.txt
+++ b/doc/src/prd.txt
@@ -63,14 +63,14 @@ event to occur.
Each replica runs on a partition of one or more processors. Processor
partitions are defined at run-time using the -partition command-line
-switch; see "Section 2.7"_Section_start.html#start_7 of the
-manual. Note that if you have MPI installed, you can run a
-multi-replica simulation with more replicas (partitions) than you have
-physical processors, e.g you can run a 10-replica simulation on one or
-two processors. For PRD, this makes little sense, since this offers
-no effective parallel speed-up in searching for infrequent events. See
-"Section 6.5"_Section_howto.html#howto_5 of the manual for further
-discussion.
+switch; see "Section 2.7"_Section_start.html#start_7 of the manual.
+Note that if you have MPI installed, you can run a multi-replica
+simulation with more replicas (partitions) than you have physical
+processors, e.g you can run a 10-replica simulation on one or two
+processors. However for PRD, this makes little sense, since running a
+replica on virtual instead of physical processors,offers no effective
+parallel speed-up in searching for infrequent events. See "Section
+6.5"_Section_howto.html#howto_5 of the manual for further discussion.
When a PRD simulation is performed, it is assumed that each replica is
running the same model, though LAMMPS does not check for this.
@@ -163,7 +163,7 @@ runs for {N} timesteps. If the {time} value is {clock}, then the
simulation runs until {N} aggregate timesteps across all replicas have
elapsed. This aggregate time is the "clock" time defined below, which
typically advances nearly M times faster than the timestepping on a
-single replica.
+single replica, where M is the number of replicas.
:line
@@ -183,25 +183,26 @@ coincident events, and the replica number of the chosen event.
The timestep is the usual LAMMPS timestep, except that time does not
advance during dephasing or quenches, but only during dynamics. Note
-that are two kinds of dynamics in the PRD loop listed above. The
-first is when all replicas are performing independent dynamics,
-waiting for an event to occur. The second is when correlated events
-are being searched for and only one replica is running dynamics.
+that are two kinds of dynamics in the PRD loop listed above that
+contribute to this timestepping. The first is when all replicas are
+performing independent dynamics, waiting for an event to occur. The
+second is when correlated events are being searched for, but only one
+replica is running dynamics.
-The CPU time is the total processor time since the start of the PRD
-run.
+The CPU time is the total elapsed time on each processor, since the
+start of the PRD run.
The clock is the same as the timestep except that it advances by M
-steps every timestep during the first kind of dynamics when the M
+steps per timestep during the first kind of dynamics when the M
replicas are running independently. The clock advances by only 1 step
-per timestep during the second kind of dynamics, since only a single
+per timestep during the second kind of dynamics, when only a single
replica is checking for a correlated event. Thus "clock" time
-represents the aggregate time (in steps) that effectively elapses
+represents the aggregate time (in steps) that has effectively elapsed
during a PRD simulation on M replicas. If most of the PRD run is
spent in the second stage of the loop above, searching for infrequent
events, then the clock will advance nearly M times faster than it
would if a single replica was running. Note the clock time between
-events will be drawn from p(t).
+successive events should be drawn from p(t).
The event number is a counter that increments with each event, whether
it is uncorrelated or correlated.
@@ -212,14 +213,15 @@ replicas are running independently. The correlation flag will be 1
when a correlated event occurs during the third stage of the loop
listed above, i.e. when only one replica is running dynamics.
-When more than one replica detects an event at the end of the second
-stage, then one of them is chosen at random. The number of coincident
-events is the number of replicas that detected an event. Normally, we
-expect this value to be 1. If it is often greater than 1, then either
-the number of replicas is too large, or {t_event} is too large.
+When more than one replica detects an event at the end of the same
+event check (every {t_event} steps) during the the second stage, then
+one of them is chosen at random. The number of coincident events is
+the number of replicas that detected an event. Normally, this value
+should be 1. If it is often greater than 1, then either the number of
+replicas is too large, or {t_event} is too large.
-The replica number is the ID of the replica (from 0 to M-1) that
-found the event.
+The replica number is the ID of the replica (from 0 to M-1) in which
+the event occurred.
:line
@@ -286,7 +288,7 @@ This command can only be used if LAMMPS was built with the REPLICA
package. See the "Making LAMMPS"_Section_start.html#start_3 section
for more info on packages.
-{N} and {t_correlate} settings must be integer multiples of
+The {N} and {t_correlate} settings must be integer multiples of
{t_event}.
Runs restarted from restart file written during a PRD run will not
diff --git a/doc/src/python.txt b/doc/src/python.txt
index 8dfd638739..9d6dbdcb69 100644
--- a/doc/src/python.txt
+++ b/doc/src/python.txt
@@ -97,7 +97,7 @@ be passed to various commands as arguments, so that the variable is
evaluated during a simulation run.
A broader overview of how Python can be used with LAMMPS is
-given in "Section python"_Section_python.html. There is an
+given in "Section 11"_Section_python.html. There is an
examples/python directory which illustrates use of the python
command.
diff --git a/doc/src/read_restart.txt b/doc/src/read_restart.txt
index 0e50b4028c..1f15169774 100644
--- a/doc/src/read_restart.txt
+++ b/doc/src/read_restart.txt
@@ -124,7 +124,7 @@ MPI-IO requires two steps. First, build LAMMPS with its MPIIO package
installed, e.g.
make yes-mpiio # installs the MPIIO package
-make g++ # build LAMMPS for your platform :pre
+make mpi # build LAMMPS for your platform :pre
Second, use a restart filename which contains ".mpiio". Note that it
does not have to end in ".mpiio", just contain those characters.
diff --git a/doc/src/region.txt b/doc/src/region.txt
index 99417122ba..71dd8ee262 100644
--- a/doc/src/region.txt
+++ b/doc/src/region.txt
@@ -186,7 +186,7 @@ functions, and include "thermo_style"_thermo_style.html command
keywords for the simulation box parameters and timestep and elapsed
time. Thus it is easy to specify a time-dependent radius.
-See "Section_howto 12"_Section_howto.html#howto_12 of the doc pages
+See "Section 6.12"_Section_howto.html#howto_12 of the doc pages
for a geometric description of triclinic boxes, as defined by LAMMPS,
and how to transform these parameters to and from other commonly used
triclinic representations.
@@ -361,7 +361,7 @@ sub-regions can be defined with the {open} keyword.
Styles with a {kk} suffix are functionally the same as the
corresponding style without the suffix. They have been optimized to
run faster, depending on your available hardware, as discussed in
-"Section_accelerate"_Section_accelerate.html of the manual. The
+"Section 5"_Section_accelerate.html of the manual. The
accelerated styles take the same arguments and should produce the same
results, except for round-off and precision issues.
@@ -378,7 +378,7 @@ by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
-See "Section_accelerate"_Section_accelerate.html of the manual for
+See "Section 5"_Section_accelerate.html of the manual for
more instructions on how to use the accelerated styles effectively.
:line
diff --git a/doc/src/restart.txt b/doc/src/restart.txt
index 026f10a880..3154465f68 100644
--- a/doc/src/restart.txt
+++ b/doc/src/restart.txt
@@ -82,7 +82,7 @@ versions 2.0 and above. Using MPI-IO requires two steps. First,
build LAMMPS with its MPIIO package installed, e.g.
make yes-mpiio # installs the MPIIO package
-make g++ # build LAMMPS for your platform :pre
+make mpi # build LAMMPS for your platform :pre
Second, use a restart filename which contains ".mpiio". Note that it
does not have to end in ".mpiio", just contain those characters.
diff --git a/doc/src/variable.txt b/doc/src/variable.txt
index 924e546b9f..8f7f37dcae 100644
--- a/doc/src/variable.txt
+++ b/doc/src/variable.txt
@@ -1121,7 +1121,7 @@ with a leading $ sign (e.g. $x or $\{abc\}) versus with a leading "v_"
(e.g. v_x or v_abc). The former can be used in any input script
command, including a variable command. The input script parser
evaluates the reference variable immediately and substitutes its value
-into the command. As explained in "Section commands
+into the command. As explained in "Section
3.2"_Section_commands.html#cmd_2 for "Parsing rules", you can also use
un-named "immediate" variables for this purpose. For example, a
string like this $((xlo+xhi)/2+sqrt(v_area)) in an input script
diff --git a/doc/src/velocity.txt b/doc/src/velocity.txt
index df045332e1..70ddb559fa 100644
--- a/doc/src/velocity.txt
+++ b/doc/src/velocity.txt
@@ -139,7 +139,7 @@ if rot = yes, the angular momentum is zeroed.
If specified, the {temp} keyword is used by {create} and {scale} to
specify a "compute"_compute.html that calculates temperature in a
desired way, e.g. by first subtracting out a velocity bias, as
-discussed in "Section howto 16"_Section_howto.html#howto_15 of the doc
+discussed in "Section 6.16"_Section_howto.html#howto_16 of the doc
pages. If this keyword is not specified, {create} and {scale}
calculate temperature using a compute that is defined internally as
follows:
@@ -161,8 +161,8 @@ The {bias} keyword with a {yes} setting is used by {create} and
If the temperature compute also calculates a velocity bias, the the
bias is subtracted from atom velocities before the {create} and
{scale} operations are performed. After the operations, the bias is
-added back to the atom velocities. See "Section howto
-16"_Section_howto.html#howto_15 of the doc pages for more discussion
+added back to the atom velocities. See "Section
+6.16"_Section_howto.html#howto_16 of the doc pages for more discussion
of temperature computes with biases. Note that the velocity bias is
only applied to atoms in the temperature compute specified with the
{temp} keyword.
diff --git a/doc/src/write_restart.txt b/doc/src/write_restart.txt
index b324ea320e..8160eec3df 100644
--- a/doc/src/write_restart.txt
+++ b/doc/src/write_restart.txt
@@ -55,7 +55,7 @@ versions 2.0 and above. Using MPI-IO requires two steps. First,
build LAMMPS with its MPIIO package installed, e.g.
make yes-mpiio # installs the MPIIO package
-make g++ # build LAMMPS for your platform :pre
+make mpi # build LAMMPS for your platform :pre
Second, use a restart filename which contains ".mpiio". Note that it
does not have to end in ".mpiio", just contain those characters.
diff --git a/doc/utils/converters/lammpsdoc/lammps_filters.py b/doc/utils/converters/lammpsdoc/lammps_filters.py
index 2d2a00a4c7..11460185db 100644
--- a/doc/utils/converters/lammpsdoc/lammps_filters.py
+++ b/doc/utils/converters/lammpsdoc/lammps_filters.py
@@ -90,3 +90,24 @@ def promote_doc_keywords(content):
def filter_multiple_horizontal_rules(content):
return re.sub(r"----------[\s\n]+----------", '', content)
+
+
+def merge_preformatted_sections(content):
+ mergable_section_pattern = re.compile(r"\.\. parsed-literal::\n"
+ r"\n"
+ r"(?P(( [^\n]+\n)|(^\n))+)\n\s*"
+ r"^\.\. parsed-literal::\n"
+ r"\n"
+ r"(?P(( [^\n]+\n)|(^\n))+)\n", re.MULTILINE | re.DOTALL)
+
+ m = mergable_section_pattern.search(content)
+
+ while m:
+ content = mergable_section_pattern.sub(r".. parsed-literal::\n"
+ r"\n"
+ r"\g"
+ r"\g"
+ r"\n", content)
+ m = mergable_section_pattern.search(content)
+
+ return content
diff --git a/doc/utils/converters/lammpsdoc/txt2rst.py b/doc/utils/converters/lammpsdoc/txt2rst.py
index 0997af80cd..6949cb690e 100755
--- a/doc/utils/converters/lammpsdoc/txt2rst.py
+++ b/doc/utils/converters/lammpsdoc/txt2rst.py
@@ -73,10 +73,13 @@ class RSTMarkup(Markup):
def unescape_rst_chars(self, text):
text = text.replace('\\*', '*')
text = text.replace('\\^', '^')
- text = text.replace('\\_', '_')
+ text = self.unescape_underscore(text)
text = text.replace('\\|', '|')
return text
+ def unescape_underscore(self, text):
+ return text.replace('\\_', '_')
+
def inline_math(self, text):
start_pos = text.find("\\(")
end_pos = text.find("\\)")
@@ -136,6 +139,7 @@ class RSTFormatting(Formatting):
return content.strip()
def preformat(self, content):
+ content = self.markup.unescape_underscore(content)
if self.indent_level > 0:
return self.list_indent("\n.. parsed-literal::\n\n" + self.indent(content.rstrip()), self.indent_level)
return "\n.. parsed-literal::\n\n" + self.indent(content.rstrip())
@@ -355,6 +359,7 @@ class Txt2Rst(TxtParser):
self.document_filters.append(lammps_filters.detect_and_add_command_to_index)
self.document_filters.append(lammps_filters.filter_multiple_horizontal_rules)
self.document_filters.append(lammps_filters.promote_doc_keywords)
+ self.document_filters.append(lammps_filters.merge_preformatted_sections)
def is_ignored_textblock_begin(self, line):
return line.startswith('')
diff --git a/doc/utils/converters/tests/test_txt2rst.py b/doc/utils/converters/tests/test_txt2rst.py
index 904eeb4749..f74f8b70dd 100644
--- a/doc/utils/converters/tests/test_txt2rst.py
+++ b/doc/utils/converters/tests/test_txt2rst.py
@@ -169,6 +169,13 @@ class TestFormatting(unittest.TestCase):
" Hello\n"
" World\n\n", s)
+ def test_preformat_formatting_with_underscore(self):
+ s = self.txt2rst.convert("if MPI.COMM_WORLD.rank == 0:\n"
+ " print(\"Potential energy: \", L.eval(\"pe\")) :pre\n")
+ self.assertEqual("\n.. parsed-literal::\n\n"
+ " if MPI.COMM_WORLD.rank == 0:\n"
+ " print(\"Potential energy: \", L.eval(\"pe\"))\n\n", s)
+
def test_header_formatting(self):
s = self.txt2rst.convert("Level 1 :h1\n"
"Level 2 :h2\n"
diff --git a/examples/README b/examples/README
index 400d69aa2d..462fa93e12 100644
--- a/examples/README
+++ b/examples/README
@@ -61,6 +61,7 @@ sub-directories:
accelerate: use of all the various accelerator packages
balance: dynamic load balancing, 2d system
body: body particles, 2d system
+cmap: CMAP 5-body contributions to CHARMM force field
colloid: big colloid particles in a small particle solvent, 2d system
coreshell: adiabatic core/shell model
comb: models using the COMB potential
diff --git a/examples/balance/in.balance.clock.dynamic b/examples/balance/in.balance.clock.dynamic
new file mode 100644
index 0000000000..eed111fdf8
--- /dev/null
+++ b/examples/balance/in.balance.clock.dynamic
@@ -0,0 +1,55 @@
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+fix p all property/atom d_WEIGHT
+compute p all property/atom d_WEIGHT
+fix 0 all balance 50 1.0 shift x 10 1.0 &
+ weight time 1.0 weight store WEIGHT
+variable maximb equal f_0[1]
+variable iter equal f_0[2]
+variable prev equal f_0[3]
+variable final equal f_0
+
+#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}"
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+#dump id all custom 50 dump.lammpstrj id type x y z c_p
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 500
+run 500
+fix 0 all balance 50 1.0 shift x 5 1.0 &
+ weight neigh 0.5 weight time 0.66 weight store WEIGHT
+run 500
+run 500
+
diff --git a/examples/balance/in.balance.clock.static b/examples/balance/in.balance.clock.static
new file mode 100644
index 0000000000..6301e56fd0
--- /dev/null
+++ b/examples/balance/in.balance.clock.static
@@ -0,0 +1,48 @@
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+variable factor index 1.0
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+group fast type 1
+group slow type 2
+balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 250
+balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt
+run 250
+balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt
+run 250
diff --git a/examples/balance/in.balance.group.dynamic b/examples/balance/in.balance.group.dynamic
new file mode 100644
index 0000000000..3e2b44f897
--- /dev/null
+++ b/examples/balance/in.balance.group.dynamic
@@ -0,0 +1,47 @@
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+variable factor index 1.0
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+group fast type 1
+group slow type 2
+balance 1.0 shift x 5 1.1 &
+ weight group 2 fast 1.0 slow ${factor} # out weighted.txt
+fix 0 all balance 10 1.0 shift x 5 1.1 &
+ weight group 2 fast 1.0 slow ${factor}
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 250
diff --git a/examples/balance/in.balance.group.static b/examples/balance/in.balance.group.static
new file mode 100644
index 0000000000..92ff3e8cb4
--- /dev/null
+++ b/examples/balance/in.balance.group.static
@@ -0,0 +1,54 @@
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+variable factor index 1.0
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+balance 1.0 shift x 5 1.1 # out unweighted.txt
+
+balance 1.0 x uniform
+
+variable weight atom (type==1)*1.0+(type==2)*v_factor
+balance 1.0 shift x 5 1.1 weight var weight # out weighted_var.txt
+
+balance 1.0 x uniform
+
+group fast type 1
+group slow type 2
+balance 1.0 shift x 5 1.1 &
+ weight group 2 fast 1.0 slow ${factor} # out weighted_group.txt
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 250
diff --git a/examples/balance/in.balance.kspace b/examples/balance/in.balance.kspace
new file mode 100644
index 0000000000..5a2de11c70
--- /dev/null
+++ b/examples/balance/in.balance.kspace
@@ -0,0 +1,47 @@
+# 3d Lennard-Jones melt
+
+units lj
+#atom_style charge
+processors * 1 1
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+#set type 1:2 charge 0.0
+
+velocity all create 1.0 87287
+
+pair_style lj/long/coul/long long off 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+kspace_style pppm/disp 1.0e-4
+kspace_modify gewald/disp 0.1
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+group fast type 1
+group slow type 2
+fix 0 all balance 20 1.0 shift x 5 1.0 &
+ weight group 2 fast 1.0 slow 2.0 weight time 0.66
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 500
diff --git a/examples/balance/in.balance.neigh.dynamic b/examples/balance/in.balance.neigh.dynamic
new file mode 100644
index 0000000000..395f9f37eb
--- /dev/null
+++ b/examples/balance/in.balance.neigh.dynamic
@@ -0,0 +1,53 @@
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+fix p all property/atom d_WEIGHT
+fix 0 all balance 50 1.0 shift x 5 1.0 &
+ weight neigh 0.8 weight store WEIGHT
+compute p all property/atom d_WEIGHT
+variable maximb equal f_0[1]
+variable iter equal f_0[2]
+variable prev equal f_0[3]
+variable final equal f_0
+
+#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}"
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+#dump id all custom 50 dump.lammpstrj id type x y z c_p
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mp4 c_p type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3 amap 0.0 2.0 cf 0.1 3 min blue 0.5 green max red
+
+thermo 50
+run 500
+run 500
+run 500
+run 500
+
diff --git a/examples/balance/in.balance.neigh.rcb b/examples/balance/in.balance.neigh.rcb
new file mode 100644
index 0000000000..0b2ca59441
--- /dev/null
+++ b/examples/balance/in.balance.neigh.rcb
@@ -0,0 +1,53 @@
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+comm_style tiled
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+fix p all property/atom d_WEIGHT
+fix 0 all balance 50 1.0 rcb weight neigh 0.8 weight store WEIGHT
+compute p all property/atom d_WEIGHT
+variable maximb equal f_0[1]
+variable iter equal f_0[2]
+variable prev equal f_0[3]
+variable final equal f_0
+
+#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}"
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+#dump id all custom 50 dump.lammpstrj id type x y z c_p
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+
+run 250
+run 250
+
diff --git a/examples/balance/in.balance.neigh.static b/examples/balance/in.balance.neigh.static
new file mode 100644
index 0000000000..c3c061bcbe
--- /dev/null
+++ b/examples/balance/in.balance.neigh.static
@@ -0,0 +1,51 @@
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+variable factor index 1.0
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+balance 1.0 shift x 10 1.0 weight neigh 0.8 # out weighted_var.txt
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 250 post no
+balance 1.0 shift x 10 1.0 weight neigh 0.8
+run 250 post no
+balance 1.0 shift x 10 1.0 weight neigh 0.8
+run 250 post no
+balance 1.0 shift x 10 1.0 weight neigh 0.8 weight time 0.6
+run 250
+balance 1.0 shift x 10 1.0 weight neigh 0.8 weight time 0.6
+run 250
+
diff --git a/examples/balance/in.balance.var.dynamic b/examples/balance/in.balance.var.dynamic
new file mode 100644
index 0000000000..0c49106cdf
--- /dev/null
+++ b/examples/balance/in.balance.var.dynamic
@@ -0,0 +1,66 @@
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+lattice fcc 0.8442
+region box block 0 10 0 10 0 10
+create_box 3 box
+create_atoms 1 box
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+fix p all property/atom d_WEIGHT
+compute p all property/atom d_WEIGHT
+
+group fast type 1
+group slow type 2
+balance 1.0 shift x 10 1.0 &
+ weight group 2 fast 0.8 slow 2.5 weight store WEIGHT
+variable lastweight atom c_p
+
+fix 0 all balance 50 1.0 shift x 10 1.0 &
+ weight var lastweight weight time 0.5 weight store WEIGHT
+variable maximb equal f_0[1]
+variable iter equal f_0[2]
+variable prev equal f_0[3]
+variable final equal f_0
+
+#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}"
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+#dump id all custom 50 dump.lammpstrj id type x y z c_p
+
+#dump 2 all image 25 image.*.jpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type &
+# axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 500
+run 500
+
+balance 1.0 shift x 10 1.0 &
+ weight group 2 fast 0.8 slow 2.5 weight store WEIGHT
+
+fix 0 all balance 50 1.0 shift x 5 1.0 &
+ weight var lastweight weight neigh 0.5 weight store WEIGHT
+
+run 500
+run 500
diff --git a/examples/balance/log.15Feb16.balance.bond.fast.g++.1 b/examples/balance/log.15Feb16.balance.bond.fast.g++.1
deleted file mode 100644
index 3d87f5e0ed..0000000000
--- a/examples/balance/log.15Feb16.balance.bond.fast.g++.1
+++ /dev/null
@@ -1,225 +0,0 @@
-LAMMPS (15 Feb 2016)
-# 2d circle of particles inside a box with LJ walls
-
-variable b index 0
-
-variable x index 50
-variable y index 20
-variable d index 20
-variable v index 5
-variable w index 2
-
-units lj
-dimension 2
-atom_style bond
-boundary f f p
-
-lattice hex 0.85
-Lattice spacing in x,y,z = 1.16553 2.01877 1.16553
-region box block 0 $x 0 $y -0.5 0.5
-region box block 0 50 0 $y -0.5 0.5
-region box block 0 50 0 20 -0.5 0.5
-create_box 1 box bond/types 1 extra/bond/per/atom 6
-Created orthogonal box = (0 0 -0.582767) to (58.2767 40.3753 0.582767)
- 1 by 1 by 1 MPI processor grid
-region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 10
-create_atoms 1 region circle
-Created 361 atoms
-mass 1 1.0
-
-velocity all create 0.5 87287 loop geom
-velocity all set $v $w 0 sum yes
-velocity all set 5 $w 0 sum yes
-velocity all set 5 2 0 sum yes
-
-pair_style lj/cut 2.5
-pair_coeff 1 1 10.0 1.0 2.5
-
-bond_style harmonic
-bond_coeff 1 10.0 1.2
-
-# need to preserve 1-3, 1-4 pairwise interactions during hard collisions
-
-special_bonds lj/coul 0 1 1
- 0 = max # of 1-2 neighbors
- 1 = max # of special neighbors
-create_bonds all all 1 1.0 1.5
-Neighbor list info ...
- 2 neighbor list requests
- update every 1 steps, delay 10 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 2.8
- binsize = 1.4 -> bins = 42 29 1
-Added 1014 bonds, new total = 1014
- 6 = max # of 1-2 neighbors
- 6 = max # of special neighbors
-
-neighbor 0.3 bin
-neigh_modify delay 0 every 1 check yes
-
-fix 1 all nve
-
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi 50 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi 20 1 1 2.5
-
-comm_style tiled
-comm_modify cutoff 7.5
-fix 10 all balance 50 0.9 rcb
-
-#compute 1 all property/atom proc
-#variable p atom (c_1%10)+1
-#dump 2 all custom 50 tmp.dump id v_p x y z
-
-#dump 3 all image 50 image.*.jpg v_p type bond atom 0.25 # adiam 1.0 view 0 0 zoom 1.8 subbox yes 0.02
-#variable colors string # "red green blue yellow white # purple pink orange lime gray"
-#dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors}
-
-thermo_style custom step temp epair press f_10[3] f_10
-thermo 100
-
-run 10000
-Neighbor list info ...
- 1 neighbor list requests
- update every 1 steps, delay 0 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 7.5
- binsize = 1.4 -> bins = 42 29 1
-Memory usage per processor = 4.44301 Mbytes
-Step Temp E_pair Press 10[3] 10
- 0 25.701528 -2.2032569 3.1039469 1 1
- 100 27.623422 -6.228166 2.6542136 1 1
- 200 33.35302 -15.746749 3.2018248 1 1
- 300 39.17734 -24.1557 4.9116986 1 1
- 400 41.660701 -27.615203 8.6214678 1 1
- 500 37.154935 -24.096962 3.2656162 1 1
- 600 35.061294 -21.52655 2.3693223 1 1
- 700 37.204395 -22.313267 2.7108913 1 1
- 800 39.050704 -24.972147 5.5398741 1 1
- 900 38.37275 -24.777769 3.9291488 1 1
- 1000 39.147816 -26.003699 4.3586203 1 1
- 1100 36.084337 -24.88638 4.5496174 1 1
- 1200 32.404559 -20.810803 6.0760128 1 1
- 1300 32.625538 -19.709411 4.3718289 1 1
- 1400 32.246777 -18.785184 3.435959 1 1
- 1500 29.174368 -17.434726 2.2702916 1 1
- 1600 27.359273 -15.40756 1.033659 1 1
- 1700 26.046626 -14.318045 0.87714473 1 1
- 1800 24.540401 -13.017686 0.84464169 1 1
- 1900 26.259688 -12.777739 0.80954004 1 1
- 2000 27.491023 -13.363863 1.4519188 1 1
- 2100 27.839831 -13.709118 3.0184763 1 1
- 2200 26.669065 -12.710422 1.4560094 1 1
- 2300 26.86742 -12.730386 0.16986139 1 1
- 2400 26.375504 -12.476682 1.907352 1 1
- 2500 26.581263 -12.530908 1.5507765 1 1
- 2600 27.67091 -12.922702 2.0391206 1 1
- 2700 27.158784 -13.306789 3.7355268 1 1
- 2800 25.635671 -13.502047 2.9431633 1 1
- 2900 24.648357 -12.388002 0.44910075 1 1
- 3000 22.988768 -10.685349 0.37214853 1 1
- 3100 21.788719 -10.171928 -0.95734833 1 1
- 3200 22.707514 -9.6682633 -0.32868418 1 1
- 3300 22.907772 -10.612766 -0.024319089 1 1
- 3400 24.276426 -10.802246 0.44731188 1 1
- 3500 25.086959 -10.797849 2.3218091 1 1
- 3600 26.064365 -12.589537 1.2460738 1 1
- 3700 24.656426 -11.956895 0.57862216 1 1
- 3800 22.316856 -11.174148 -0.7567936 1 1
- 3900 22.590299 -9.5928781 0.4127727 1 1
- 4000 22.353461 -9.5887736 -0.34247396 1 1
- 4100 24.103395 -9.76584 0.98989862 1 1
- 4200 23.92261 -10.566828 -0.71536268 1 1
- 4300 24.44409 -11.358378 0.37166197 1 1
- 4400 24.772419 -11.324888 0.26732853 1 1
- 4500 23.150748 -11.309892 -0.43134573 1 1
- 4600 24.008361 -10.212365 0.43277527 1 1
- 4700 25.107401 -9.5753673 0.020406689 1 1
- 4800 23.658604 -8.9131426 0.46554745 1 1
- 4900 22.530251 -9.023311 -0.014405315 1 1
- 5000 23.110692 -9.6567397 0.9033234 1 1
- 5100 23.760144 -9.7623416 0.32059726 1 1
- 5200 25.048012 -9.6748253 0.66411561 1 1
- 5300 24.09835 -9.7867216 0.61128267 1 1
- 5400 22.984982 -9.9464053 0.28096544 1 1
- 5500 22.502003 -9.9294451 -0.53666181 1 1
- 5600 23.712298 -10.054318 0.64334761 1 1
- 5700 23.350796 -10.217344 2.1979894 1 1
- 5800 25.246549 -12.458753 0.055553025 1 1
- 5900 24.422272 -10.641177 0.82506839 1 1
- 6000 22.478315 -10.629525 -0.774321 1 1
- 6100 22.970846 -10.218868 0.59819592 1 1
- 6200 24.500063 -10.355481 0.55427078 1 1
- 6300 22.358071 -9.9041539 0.89500518 1 1
- 6400 23.924951 -11.121442 0.045999129 1 1
- 6500 24.83773 -10.464191 2.0048038 1 1
- 6600 24.752158 -9.9939162 0.53794465 1 1
- 6700 23.073765 -9.3662561 0.38618685 1 1
- 6800 21.940219 -8.4948475 -0.25184019 1 1
- 6900 22.23783 -8.8668868 0.0072863367 1 1
- 7000 25.667836 -10.473211 0.59852886 1 1
- 7100 23.352123 -9.0862268 0.85289283 1 1
- 7200 24.072107 -9.4020576 0.090222808 1 1
- 7300 22.806746 -8.4687857 -0.46892989 1 1
- 7400 24.798425 -9.1144357 -0.38738146 1 1
- 7500 24.748499 -9.1560558 0.94929896 1 1
- 7600 25.364753 -10.176533 0.2649225 1 1
- 7700 25.137988 -9.6617897 1.3920543 1 1
- 7800 25.502583 -10.320832 0.64812816 1 1
- 7900 24.5208 -9.9466543 -0.084071026 1 1
- 8000 24.653522 -10.312942 0.32535023 1 1
- 8100 23.129565 -9.6250435 0.016356303 1 1
- 8200 23.82421 -9.7608023 0.11631418 1 1
- 8300 25.081262 -9.3510452 0.92337854 1 1
- 8400 24.328205 -9.2875396 0.28266968 1 1
- 8500 25.041711 -11.254976 -0.21368615 1 1
- 8600 24.111473 -9.0389585 1.2102938 1 1
- 8700 23.50066 -9.0926498 0.78819229 1 1
- 8800 23.840962 -9.3434474 0.091313007 1 1
- 8900 23.081841 -9.0635966 0.56672001 1 1
- 9000 24.712103 -9.3243213 0.60301629 1 1
- 9100 24.457422 -9.439298 -0.60457515 1 1
- 9200 25.070662 -9.1945782 1.2399235 1 1
- 9300 25.019869 -8.7910068 0.42340497 1 1
- 9400 24.23662 -9.3111098 -0.75379175 1 1
- 9500 24.836827 -8.7324281 0.81857501 1 1
- 9600 24.901993 -8.6624128 0.84890877 1 1
- 9700 24.936686 -8.9869503 1.9627894 1 1
- 9800 25.393368 -9.8538595 0.45344428 1 1
- 9900 25.942336 -9.7854728 0.68352091 1 1
- 10000 24.636319 -9.3369442 0.62793231 1 1
-Loop time of 1.67474 on 1 procs for 10000 steps with 361 atoms
-
-Performance: 2579511.004 tau/day, 5971.090 timesteps/s
-99.8% CPU use with 1 MPI tasks x no OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 0.47884 | 0.47884 | 0.47884 | 0.0 | 28.59
-Bond | 0.24918 | 0.24918 | 0.24918 | 0.0 | 14.88
-Neigh | 0.82974 | 0.82974 | 0.82974 | 0.0 | 49.54
-Comm | 0.01265 | 0.01265 | 0.01265 | 0.0 | 0.76
-Output | 0.00085878 | 0.00085878 | 0.00085878 | 0.0 | 0.05
-Modify | 0.075636 | 0.075636 | 0.075636 | 0.0 | 4.52
-Other | | 0.02783 | | | 1.66
-
-Nlocal: 361 ave 361 max 361 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Nghost: 0 ave 0 max 0 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Neighs: 2421 ave 2421 max 2421 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-
-Total # of neighbors = 2421
-Ave neighs/atom = 6.70637
-Ave special neighs/atom = 5.61773
-Neighbor list builds = 4937
-Dangerous builds = 5
-Total wall time: 0:00:01
diff --git a/examples/balance/log.15Feb16.balance.bond.fast.g++.4 b/examples/balance/log.15Feb16.balance.bond.fast.g++.4
deleted file mode 100644
index cbc7bc0418..0000000000
--- a/examples/balance/log.15Feb16.balance.bond.fast.g++.4
+++ /dev/null
@@ -1,225 +0,0 @@
-LAMMPS (15 Feb 2016)
-# 2d circle of particles inside a box with LJ walls
-
-variable b index 0
-
-variable x index 50
-variable y index 20
-variable d index 20
-variable v index 5
-variable w index 2
-
-units lj
-dimension 2
-atom_style bond
-boundary f f p
-
-lattice hex 0.85
-Lattice spacing in x,y,z = 1.16553 2.01877 1.16553
-region box block 0 $x 0 $y -0.5 0.5
-region box block 0 50 0 $y -0.5 0.5
-region box block 0 50 0 20 -0.5 0.5
-create_box 1 box bond/types 1 extra/bond/per/atom 6
-Created orthogonal box = (0 0 -0.582767) to (58.2767 40.3753 0.582767)
- 2 by 2 by 1 MPI processor grid
-region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 10
-create_atoms 1 region circle
-Created 361 atoms
-mass 1 1.0
-
-velocity all create 0.5 87287 loop geom
-velocity all set $v $w 0 sum yes
-velocity all set 5 $w 0 sum yes
-velocity all set 5 2 0 sum yes
-
-pair_style lj/cut 2.5
-pair_coeff 1 1 10.0 1.0 2.5
-
-bond_style harmonic
-bond_coeff 1 10.0 1.2
-
-# need to preserve 1-3, 1-4 pairwise interactions during hard collisions
-
-special_bonds lj/coul 0 1 1
- 0 = max # of 1-2 neighbors
- 1 = max # of special neighbors
-create_bonds all all 1 1.0 1.5
-Neighbor list info ...
- 2 neighbor list requests
- update every 1 steps, delay 10 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 2.8
- binsize = 1.4 -> bins = 42 29 1
-Added 1014 bonds, new total = 1014
- 6 = max # of 1-2 neighbors
- 6 = max # of special neighbors
-
-neighbor 0.3 bin
-neigh_modify delay 0 every 1 check yes
-
-fix 1 all nve
-
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi 50 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi 20 1 1 2.5
-
-comm_style tiled
-comm_modify cutoff 7.5
-fix 10 all balance 50 0.9 rcb
-
-#compute 1 all property/atom proc
-#variable p atom (c_1%10)+1
-#dump 2 all custom 50 tmp.dump id v_p x y z
-
-#dump 3 all image 50 image.*.jpg v_p type bond atom 0.25 # adiam 1.0 view 0 0 zoom 1.8 subbox yes 0.02
-#variable colors string # "red green blue yellow white # purple pink orange lime gray"
-#dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors}
-
-thermo_style custom step temp epair press f_10[3] f_10
-thermo 100
-
-run 10000
-Neighbor list info ...
- 1 neighbor list requests
- update every 1 steps, delay 0 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 7.5
- binsize = 1.4 -> bins = 42 29 1
-Memory usage per processor = 4.49421 Mbytes
-Step Temp E_pair Press 10[3] 10
- 0 25.701528 -2.2032569 3.1039469 3.2354571 1.0526316
- 100 27.623422 -6.228166 2.6542136 1.2631579 1.0083102
- 200 33.35302 -15.746749 3.2018248 1.2963989 1.0193906
- 300 39.17734 -24.1557 4.9116986 1.2963989 1.0193906
- 400 41.660701 -27.615203 8.6214679 1.3518006 1.0083102
- 500 37.154928 -24.096947 3.2656178 1.3296399 1.0193906
- 600 35.059889 -21.524279 2.372849 1.3296399 1.0083102
- 700 36.70516 -21.98396 3.2995108 1.3296399 1.0083102
- 800 39.53521 -25.672748 4.3257712 1.3961219 1.0083102
- 900 38.566797 -24.778382 4.1874914 1.3739612 1.0083102
- 1000 37.506157 -25.381025 5.6634589 1.4182825 1.0193906
- 1100 34.186888 -23.460558 5.2123037 1.2963989 1.0083102
- 1200 33.302788 -22.509552 4.9394032 1.1745152 1.0193906
- 1300 33.271956 -22.831342 4.5519649 1.1966759 1.0083102
- 1400 30.344677 -20.654604 4.1641375 1.0969529 1.0193906
- 1500 27.292624 -18.180523 1.0686706 1.1412742 1.0083102
- 1600 26.787948 -15.907011 1.7236133 1.1745152 1.0193906
- 1700 25.708419 -15.568774 0.73006531 1.1080332 1.0193906
- 1800 26.523196 -14.641077 0.78443231 1.1301939 1.0083102
- 1900 25.151151 -13.927975 1.1760729 1.1080332 1.0193906
- 2000 27.637036 -15.055467 1.5903524 1.1301939 1.0083102
- 2100 27.642772 -14.038356 2.4101976 1.2077562 1.0083102
- 2200 27.178261 -13.277262 1.9252291 1.1745152 1.0193906
- 2300 25.615526 -12.67851 0.88527229 1.1634349 1.0083102
- 2400 24.918218 -13.029669 0.95714212 1.1966759 1.0193906
- 2500 27.302154 -13.02629 1.3556788 1.1080332 1.0193906
- 2600 26.798157 -13.78042 2.703198 1.1855956 1.0083102
- 2700 27.24573 -16.504845 3.1771274 1.1523546 1.0193906
- 2800 24.592313 -14.795322 1.6473982 1.0969529 1.0193906
- 2900 22.803769 -13.043913 0.71978239 1.0969529 1.0083102
- 3000 21.388681 -13.323114 -1.3437735 1.0858726 1.0083102
- 3100 21.929044 -11.627262 -0.38509856 1.1191136 1.0083102
- 3200 22.350115 -10.438826 0.7833392 1.0526316 1.0083102
- 3300 22.619011 -9.9110914 1.4143766 1.1191136 1.0193906
- 3400 24.251234 -11.712256 1.4299187 1.0969529 1.0193906
- 3500 25.633796 -12.609976 1.4809529 1.0969529 1.0083102
- 3600 23.070279 -11.178798 0.35315388 1.1191136 1.0083102
- 3700 22.635771 -10.360523 0.060253018 1.1412742 1.0193906
- 3800 20.746426 -9.7066538 0.24549731 1.0526316 1.0083102
- 3900 22.467121 -10.469368 0.9854352 1.0969529 1.0193906
- 4000 22.658639 -10.781605 0.014232783 1.1191136 1.0083102
- 4100 22.839698 -10.528796 1.3995223 1.0526316 1.0083102
- 4200 23.52621 -12.150065 0.74863439 1.0747922 1.0193906
- 4300 24.401948 -11.703236 0.25019621 1.0637119 1.0193906
- 4400 22.769001 -11.763045 -0.033044917 1.1412742 1.0083102
- 4500 22.170178 -11.572473 -0.40444128 1.0526316 1.0083102
- 4600 22.409231 -10.761099 -0.012942618 1.0747922 1.0083102
- 4700 22.953641 -10.999181 0.17199357 1.0637119 1.0083102
- 4800 22.746977 -10.69943 -0.050664647 1.0526316 1.0083102
- 4900 23.784023 -10.353932 0.55400224 1.0747922 1.0304709
- 5000 23.250563 -11.567067 -0.23735032 1.0637119 1.0083102
- 5100 22.521138 -10.661998 0.50094359 1.0747922 1.0083102
- 5200 21.318659 -9.5996948 0.75683786 1.0637119 1.0193906
- 5300 21.603355 -10.042239 -0.2376815 1.0637119 1.0083102
- 5400 21.350407 -10.181041 -0.87085628 1.1745152 1.0193906
- 5500 22.430002 -10.535576 0.47962005 1.1191136 1.0193906
- 5600 22.459036 -11.914086 0.47719353 1.0858726 1.0193906
- 5700 23.348257 -12.888911 0.55511547 1.0858726 1.0193906
- 5800 23.357742 -12.328566 0.734193 1.0526316 1.0193906
- 5900 24.002277 -11.439187 0.23688862 1.0858726 1.0193906
- 6000 22.398563 -10.682615 0.28777592 1.0747922 1.0193906
- 6100 22.23883 -10.838986 -0.17956279 1.1080332 1.0083102
- 6200 21.930735 -11.182485 0.044031465 1.0526316 1.0193906
- 6300 22.658226 -11.142419 0.060550217 1.0526316 1.0193906
- 6400 22.375935 -11.1764 -0.027267206 1.0526316 1.0193906
- 6500 21.553541 -9.9609653 1.0562139 1.0858726 1.0193906
- 6600 23.339323 -10.988956 0.19462502 1.0526316 1.0083102
- 6700 22.506968 -11.276791 0.50225378 1.0969529 1.0083102
- 6800 22.991741 -10.292043 1.3278137 1.0858726 1.0193906
- 6900 22.716461 -10.540264 1.090723 1.0304709 1.0083102
- 7000 20.88433 -10.566053 -0.47976012 1.0969529 1.0193906
- 7100 22.034864 -10.27774 0.24169213 1.0193906 1.0083102
- 7200 23.107403 -10.304771 0.39888005 1.0969529 1.0304709
- 7300 22.734104 -9.8038963 1.1986757 1.0858726 1.0083102
- 7400 23.566402 -10.560548 1.0213434 1.1080332 1.0193906
- 7500 23.651346 -10.596902 1.290057 1.0969529 1.0083102
- 7600 23.181407 -10.247073 0.80701327 1.0526316 1.0083102
- 7700 23.778698 -10.659208 0.54327672 1.0304709 1.0193906
- 7800 22.655159 -10.183303 0.81382393 1.0747922 1.0193906
- 7900 22.897008 -10.849819 0.56424197 1.0415512 1.0083102
- 8000 23.698074 -10.398048 0.42170034 1.0747922 1.0083102
- 8100 22.726563 -9.8563277 0.30293638 1.0193906 1.0193906
- 8200 23.424699 -10.687885 0.54222367 1.0415512 1.0083102
- 8300 22.921826 -10.919492 0.55264172 1.0747922 1.0083102
- 8400 23.220159 -9.7725217 1.2872547 1.1080332 1.0083102
- 8500 23.606204 -9.7070499 1.0340181 1.0747922 1.0193906
- 8600 23.008166 -10.451507 -0.42524326 1.0747922 1.0083102
- 8700 22.4959 -10.278782 0.19535494 1.0858726 1.0083102
- 8800 25.153658 -10.757 1.5966743 1.0193906 1.0193906
- 8900 23.206798 -10.486994 1.2031737 1.0637119 1.0083102
- 9000 22.726684 -10.406196 0.10165144 1.0858726 1.0304709
- 9100 22.504045 -9.638919 -0.80560991 1.0747922 1.0083102
- 9200 21.431928 -9.073801 0.3773795 1.0415512 1.0193906
- 9300 23.596502 -11.045041 -0.3135787 1.0858726 1.0083102
- 9400 25.308669 -11.931174 1.3143518 1.0526316 1.0193906
- 9500 24.394499 -10.661499 0.82236963 1.0969529 1.0193906
- 9600 21.987451 -9.5632699 0.30728292 1.0858726 1.0193906
- 9700 22.150748 -9.5707928 -0.1239396 1.0526316 1.0193906
- 9800 23.347328 -9.7899306 0.29737715 1.0193906 1.0083102
- 9900 20.310207 -9.4839992 -1.2980277 1.0193906 1.0193906
- 10000 22.978427 -9.9593786 -0.45943368 1.0526316 1.0083102
-Loop time of 0.815364 on 4 procs for 10000 steps with 361 atoms
-
-Performance: 5298244.819 tau/day, 12264.456 timesteps/s
-98.9% CPU use with 4 MPI tasks x no OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 0.12547 | 0.13632 | 0.14796 | 2.6 | 16.72
-Bond | 0.05547 | 0.06023 | 0.064582 | 1.7 | 7.39
-Neigh | 0.28201 | 0.28972 | 0.298 | 1.1 | 35.53
-Comm | 0.16858 | 0.19467 | 0.22096 | 4.3 | 23.88
-Output | 0.0017931 | 0.0019639 | 0.0023253 | 0.5 | 0.24
-Modify | 0.039718 | 0.040559 | 0.041364 | 0.4 | 4.97
-Other | | 0.09189 | | | 11.27
-
-Nlocal: 90.25 ave 91 max 90 min
-Histogram: 3 0 0 0 0 0 0 0 0 1
-Nghost: 195.25 ave 202 max 185 min
-Histogram: 1 0 0 0 0 1 0 0 1 1
-Neighs: 629.5 ave 731 max 543 min
-Histogram: 1 1 0 0 0 0 1 0 0 1
-
-Total # of neighbors = 2518
-Ave neighs/atom = 6.97507
-Ave special neighs/atom = 5.61773
-Neighbor list builds = 4874
-Dangerous builds = 0
-Total wall time: 0:00:00
diff --git a/examples/balance/log.15Feb16.balance.bond.slow.g++.1 b/examples/balance/log.15Feb16.balance.bond.slow.g++.1
deleted file mode 100644
index f794c76ffc..0000000000
--- a/examples/balance/log.15Feb16.balance.bond.slow.g++.1
+++ /dev/null
@@ -1,524 +0,0 @@
-LAMMPS (15 Feb 2016)
-# 2d circle of particles inside a box with LJ walls
-
-variable b index 0
-
-variable x index 50
-variable y index 20
-variable d index 20
-
-# careful not to slam into wall too hard
-
-variable v index 0.3
-variable w index 0.08
-
-units lj
-dimension 2
-atom_style bond
-boundary f f p
-
-lattice hex 0.85
-Lattice spacing in x,y,z = 1.16553 2.01877 1.16553
-region box block 0 $x 0 $y -0.5 0.5
-region box block 0 50 0 $y -0.5 0.5
-region box block 0 50 0 20 -0.5 0.5
-create_box 1 box bond/types 1 extra/bond/per/atom 6
-Created orthogonal box = (0 0 -0.582767) to (58.2767 40.3753 0.582767)
- 1 by 1 by 1 MPI processor grid
-region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 10
-create_atoms 1 region circle
-Created 361 atoms
-mass 1 1.0
-
-velocity all create 0.5 87287 loop geom
-velocity all set $v $w 0 sum yes
-velocity all set 0.3 $w 0 sum yes
-velocity all set 0.3 0.08 0 sum yes
-
-pair_style lj/cut 2.5
-pair_coeff 1 1 10.0 1.0 2.5
-
-bond_style harmonic
-bond_coeff 1 10.0 1.2
-
-create_bonds all all 1 1.0 1.5
-Neighbor list info ...
- 2 neighbor list requests
- update every 1 steps, delay 10 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 2.8
- binsize = 1.4 -> bins = 42 29 1
-Added 1014 bonds, new total = 1014
- 6 = max # of 1-2 neighbors
- 30 = max # of 1-3 neighbors
- 180 = max # of 1-4 neighbors
- 36 = max # of special neighbors
-
-neighbor 0.3 bin
-neigh_modify delay 0 every 1 check yes
-
-fix 1 all nve
-
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi 50 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi 20 1 1 2.5
-
-comm_style tiled
-fix 10 all balance 50 0.9 rcb
-
-#compute 1 all property/atom proc
-#variable p atom (c_1%10)+1
-#dump 2 all custom 50 tmp.dump id v_p x y z
-
-#dump 3 all image 200 image.*.jpg v_p type bond atom 0.25 # adiam 1.0 view 0 0 zoom 1.8 subbox yes 0.02
-#variable colors string # "red green blue yellow white # purple pink orange lime gray"
-#dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors}
-
-thermo_style custom step temp epair press f_10[3] f_10
-thermo 100
-
-run 40000
-Neighbor list info ...
- 1 neighbor list requests
- update every 1 steps, delay 0 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 2.8
- binsize = 1.4 -> bins = 42 29 1
-Memory usage per processor = 6.31529 Mbytes
-Step Temp E_pair Press 10[3] 10
- 0 0.57437856 0 0.26099453 1 1
- 100 0.29756515 0 0.10149401 1 1
- 200 0.35394813 0 0.075159099 1 1
- 300 0.39245849 0 0.033002384 1 1
- 400 0.34078347 0 -0.020825841 1 1
- 500 0.35201095 0 -0.062637506 1 1
- 600 0.34014717 0 -0.11122965 1 1
- 700 0.3323524 0 -0.11598015 1 1
- 800 0.35116047 0 -0.096162395 1 1
- 900 0.35695352 0 -0.01385176 1 1
- 1000 0.36986539 0 0.056772858 1 1
- 1100 0.34584644 0 0.084941323 1 1
- 1200 0.31921435 0 0.10545078 1 1
- 1300 0.32952819 0 0.124902 1 1
- 1400 0.34497365 0 0.12662081 1 1
- 1500 0.33429243 0 0.096230972 1 1
- 1600 0.33765387 0 0.025800542 1 1
- 1700 0.35134464 0 -0.04422593 1 1
- 1800 0.35003859 0 -0.096745576 1 1
- 1900 0.33839618 0 -0.095465943 1 1
- 2000 0.33732078 0 -0.094652802 1 1
- 2100 0.34552238 0 -0.076729261 1 1
- 2200 0.34893142 0 -0.036853228 1 1
- 2300 0.35379341 0 0.021124847 1 1
- 2400 0.34829744 0 0.09230184 1 1
- 2500 0.33038141 0 0.1399855 1 1
- 2600 0.30983019 0 0.12754742 1 1
- 2700 0.32992561 0 0.10485138 1 1
- 2800 0.34604747 0 0.066174138 1 1
- 2900 0.3444791 0 0.036590652 1 1
- 3000 0.34721342 0 -0.023793368 1 1
- 3100 0.33404314 0 -0.08374223 1 1
- 3200 0.33019355 0 -0.12715599 1 1
- 3300 0.33515177 0 -0.12217394 1 1
- 3400 0.33628481 0 -0.070877624 1 1
- 3500 0.34257038 0 -0.021612062 1 1
- 3600 0.32838009 0 0.030131228 1 1
- 3700 0.34462142 0 0.074586378 1 1
- 3800 0.30891825 0 0.10605673 1 1
- 3900 0.33847951 0 0.13956139 1 1
- 4000 0.32952079 0 0.12688129 1 1
- 4100 0.32646772 0 0.081089042 1 1
- 4200 0.35399503 0 0.013422873 1 1
- 4300 0.33154914 0 -0.050919508 1 1
- 4400 0.34113556 0 -0.083171 1 1
- 4500 0.32651708 0 -0.1063133 1 1
- 4600 0.34359609 0 -0.1076395 1 1
- 4700 0.34973537 0 -0.088231606 1 1
- 4800 0.35198515 0 -0.020901044 1 1
- 4900 0.35187284 0 0.043645941 1 1
- 5000 0.34887336 0 0.095698609 1 1
- 5100 0.30308163 0 0.11649328 1 1
- 5200 0.32401285 0 0.12072411 1 1
- 5300 0.33025072 0 0.10933161 1 1
- 5400 0.33288012 0 0.078356448 1 1
- 5500 0.35142492 0 0.036958063 1 1
- 5600 0.35125368 0 -0.041371343 1 1
- 5700 0.34547744 0 -0.096450846 1 1
- 5800 0.30939887 0 -0.12356656 1 1
- 5900 0.32315628 0 -0.11338676 1 1
- 6000 0.34117485 0 -0.066198961 1 1
- 6100 0.35298043 0 -0.016172816 1 1
- 6200 0.35130653 0 0.027660468 1 1
- 6300 0.35398766 0 0.087221238 1 1
- 6400 0.30963379 0 0.11990957 1 1
- 6500 0.3174541 0 0.14103528 1 1
- 6600 0.31989791 0 0.11575506 1 1
- 6700 0.33811477 0 0.060747353 1 1
- 6800 0.3424043 0 0.010357152 1 1
- 6900 0.34804319 0 -0.042621786 1 1
- 7000 0.35357865 0 -0.067248959 1 1
- 7100 0.33556885 0 -0.10983726 1 1
- 7200 0.33531101 0 -0.112179 1 1
- 7300 0.35742607 0 -0.078405267 1 1
- 7400 0.34577559 0 -0.01985432 1 1
- 7500 0.3498641 0 0.052289439 1 1
- 7600 0.33773715 0 0.092939035 1 1
- 7700 0.33093497 0 0.11924405 1 1
- 7800 0.31435814 0 0.12701724 1 1
- 7900 0.33132217 0 0.10793075 1 1
- 8000 0.33451798 0 0.077993125 1 1
- 8100 0.35188371 0 0.019929977 1 1
- 8200 0.33645742 0 -0.039302079 1 1
- 8300 0.3415632 0 -0.098067982 1 1
- 8400 0.30619282 0 -0.12952879 1 1
- 8500 0.34446484 0 -0.098084709 1 1
- 8600 0.33761673 0 -0.07069818 1 1
- 8700 0.34495452 0 -0.022458056 1 1
- 8800 0.33502983 0 0.027742411 1 1
- 8900 0.35418591 0 0.092390134 1 1
- 9000 0.31648387 0 0.12467398 1 1
- 9100 0.33994825 0 0.14460327 1 1
- 9200 0.33822571 0 0.11273284 1 1
- 9300 0.33260773 0 0.060063671 1 1
- 9400 0.36140305 0 0.021427642 1 1
- 9500 0.34273562 0 -0.034064202 1 1
- 9600 0.33867054 0 -0.089076906 1 1
- 9700 0.32088235 0 -0.12027075 1 1
- 9800 0.3320823 0 -0.11602794 1 1
- 9900 0.33916442 0 -0.080281044 1 1
- 10000 0.34852268 0 -0.01000914 1 1
- 10100 0.32955942 0 0.04258493 1 1
- 10200 0.34487898 0 0.086971308 1 1
- 10300 0.32325593 0 0.11558149 1 1
- 10400 0.30927871 0 0.12239437 1 1
- 10500 0.33176799 0 0.12285937 1 1
- 10600 0.35120027 0 0.084897432 1 1
- 10700 0.33129697 0 0.0053089279 1 1
- 10800 0.36028769 0 -0.04280715 1 1
- 10900 0.35552287 0 -0.084955999 1 1
- 11000 0.3406024 0 -0.096554577 1 1
- 11100 0.33041202 0 -0.10703492 1 1
- 11200 0.32442686 0 -0.084328121 1 1
- 11300 0.35952468 0 -0.020191965 1 1
- 11400 0.34610624 0 0.03440148 1 1
- 11500 0.3415612 0 0.1041929 1 1
- 11600 0.34040042 0 0.13215705 1 1
- 11700 0.33555094 0 0.12738686 1 1
- 11800 0.3458647 0 0.10963398 1 1
- 11900 0.33836678 0 0.067253864 1 1
- 12000 0.34853314 0 0.03201448 1 1
- 12100 0.34600048 0 -0.034833402 1 1
- 12200 0.33145631 0 -0.09865675 1 1
- 12300 0.32848884 0 -0.1248489 1 1
- 12400 0.3321344 0 -0.11266575 1 1
- 12500 0.32622305 0 -0.061634993 1 1
- 12600 0.36213537 0 -0.0090593315 1 1
- 12700 0.34673866 0 0.036734645 1 1
- 12800 0.34606618 0 0.086267678 1 1
- 12900 0.34271431 0 0.12415522 1 1
- 13000 0.31993287 0 0.13879926 1 1
- 13100 0.3422918 0 0.11978905 1 1
- 13200 0.33055236 0 0.062620483 1 1
- 13300 0.34652207 0 0.0043833459 1 1
- 13400 0.33574661 0 -0.04691024 1 1
- 13500 0.33940837 0 -0.074241604 1 1
- 13600 0.32093414 0 -0.1078027 1 1
- 13700 0.34336597 0 -0.10544097 1 1
- 13800 0.35806461 0 -0.072531559 1 1
- 13900 0.35209713 0 -0.018851408 1 1
- 14000 0.35702629 0 0.061046366 1 1
- 14100 0.33234093 0 0.094086465 1 1
- 14200 0.3459466 0 0.12186656 1 1
- 14300 0.3327428 0 0.11396572 1 1
- 14400 0.32409443 0 0.10658903 1 1
- 14500 0.35022184 0 0.083558031 1 1
- 14600 0.34823843 0 0.024605569 1 1
- 14700 0.35298973 0 -0.040418888 1 1
- 14800 0.33679845 0 -0.10067728 1 1
- 14900 0.32790966 0 -0.10925568 1 1
- 15000 0.34208495 0 -0.09568004 1 1
- 15100 0.33647529 0 -0.055652929 1 1
- 15200 0.35328398 0 -0.020236536 1 1
- 15300 0.34252669 0 0.026434179 1 1
- 15400 0.34409435 0 0.094410599 1 1
- 15500 0.32288994 0 0.12034455 1 1
- 15600 0.32109689 0 0.13645185 1 1
- 15700 0.33681572 0 0.098607746 1 1
- 15800 0.33635195 0 0.05570715 1 1
- 15900 0.34289757 0 0.013849092 1 1
- 16000 0.34225547 0 -0.035597548 1 1
- 16100 0.33660991 0 -0.076931881 1 1
- 16200 0.32802152 0 -0.12765884 1 1
- 16300 0.3469374 0 -0.10785455 1 1
- 16400 0.34053641 0 -0.070259853 1 1
- 16500 0.34610591 0 -0.014315306 1 1
- 16600 0.35109001 0 0.041251169 1 1
- 16700 0.34336905 0 0.077996627 1 1
- 16800 0.33277414 0 0.11053634 1 1
- 16900 0.32183338 0 0.11680626 1 1
- 17000 0.34044352 0 0.10806555 1 1
- 17100 0.32967873 0 0.067759786 1 1
- 17200 0.36172278 0 -0.0048631904 1 1
- 17300 0.35619435 0 -0.04215545 1 1
- 17400 0.34540936 0 -0.093994174 1 1
- 17500 0.33193585 0 -0.098831315 1 1
- 17600 0.3544756 0 -0.085660403 1 1
- 17700 0.34505209 0 -0.069640515 1 1
- 17800 0.36291124 0 -0.0063088133 1 1
- 17900 0.34255705 0 0.046794555 1 1
- 18000 0.34163238 0 0.11767705 1 1
- 18100 0.3466445 0 0.1351712 1 1
- 18200 0.33037668 0 0.12703659 1 1
- 18300 0.33677404 0 0.10956306 1 1
- 18400 0.34978954 0 0.087193072 1 1
- 18500 0.33354363 0 0.051095814 1 1
- 18600 0.34651729 0 0.0056245561 1 1
- 18700 0.32622232 0 -0.047319269 1 1
- 18800 0.32978847 0 -0.054929416 1 1
- 18900 0.34192451 0 -0.037252471 1 1
- 19000 0.34061294 0 -0.001167235 1 1
- 19100 0.34194478 0 0.016945224 1 1
- 19200 0.33321765 0 0.050665354 1 1
- 19300 0.33197783 0 0.080470585 1 1
- 19400 0.33284715 0 0.12423599 1 1
- 19500 0.33867856 0 0.12689524 1 1
- 19600 0.36092786 0 0.11417704 1 1
- 19700 0.34270183 0 0.069038291 1 1
- 19800 0.34880695 0 0.042483681 1 1
- 19900 0.33903644 0 0.034788638 1 1
- 20000 0.32590125 0 0.011383785 1 1
- 20100 0.30358859 0 0.0030743554 1 1
- 20200 0.31830224 0 0.017637826 1 1
- 20300 0.34195438 0 0.072811099 1 1
- 20400 0.31249563 0 0.10063541 1 1
- 20500 0.31544938 0 0.1405794 1 1
- 20600 0.30071644 0 0.12763486 1 1
- 20700 0.2890265 0 0.1136651 1 1
- 20800 0.28962296 0 0.094481978 1 1
- 20900 0.29447212 0 0.0967165 1 1
- 21000 0.31159961 0 0.067307231 1 1
- 21100 0.30490648 0 0.017689358 1 1
- 21200 0.30687262 0 -0.016055512 1 1
- 21300 0.30083286 0 -0.0014988997 1 1
- 21400 0.32070426 0 0.015960302 1 1
- 21500 0.31439311 0 0.038170385 1 1
- 21600 0.32617832 0 0.043263788 1 1
- 21700 0.35151793 0 0.066302727 1 1
- 21800 0.35912885 0 0.070099103 1 1
- 21900 0.32451958 0 0.068935768 1 1
- 22000 0.35219298 0 0.067161227 1 1
- 22100 0.34857705 0 0.032731746 1 1
- 22200 0.34750227 0 0.0056917695 1 1
- 22300 0.34766017 0 -0.0027090483 1 1
- 22400 0.33426062 0 -0.023196063 1 1
- 22500 0.34174625 0 -0.025019717 1 1
- 22600 0.3356145 0 -0.029707418 1 1
- 22700 0.3362653 0 -0.035815733 1 1
- 22800 0.33973405 0 -0.0024705835 1 1
- 22900 0.33813085 0 0.0077527467 1 1
- 23000 0.33339981 0 0.028340744 1 1
- 23100 0.34079832 0 0.018521302 1 1
- 23200 0.33074548 0 0.032378405 1 1
- 23300 0.32965664 0 0.035989589 1 1
- 23400 0.30927749 0 0.024581106 1 1
- 23500 0.32890632 0 0.01092479 1 1
- 23600 0.34137438 0 0.0094839745 1 1
- 23700 0.34512638 0 -0.012392771 1 1
- 23800 0.31781354 0 -0.012908449 1 1
- 23900 0.32405513 0 -0.015018071 1 1
- 24000 0.33549728 0 -0.012812915 1 1
- 24100 0.31368736 0 -0.020818372 1 1
- 24200 0.33533836 0 0.0056121057 1 1
- 24300 0.32530627 0 0.018183931 1 1
- 24400 0.31930662 0 0.027446878 1 1
- 24500 0.33540302 0 0.040307455 1 1
- 24600 0.34020431 0 0.027403921 1 1
- 24700 0.3291814 0 0.01204865 1 1
- 24800 0.31552604 0 0.019654111 1 1
- 24900 0.34727253 0 0.01670543 1 1
- 25000 0.35120105 0 0.0038617562 1 1
- 25100 0.32706871 0 -0.021196623 1 1
- 25200 0.32915282 0 -0.017146508 1 1
- 25300 0.32577518 0 -0.01312495 1 1
- 25400 0.33286855 0 0.0014726193 1 1
- 25500 0.33002601 0 0.0080974022 1 1
- 25600 0.34127655 0 0.014296091 1 1
- 25700 0.34048065 0 0.022513032 1 1
- 25800 0.33029079 0 0.038733531 1 1
- 25900 0.33031324 0 0.026156982 1 1
- 26000 0.32967371 0 0.028727383 1 1
- 26100 0.33775718 0 0.015607478 1 1
- 26200 0.35097144 0 0.012291703 1 1
- 26300 0.34303792 0 0.00094823191 1 1
- 26400 0.33632665 0 -0.0026904889 1 1
- 26500 0.33580127 0 -0.0074168555 1 1
- 26600 0.33063188 0 -0.020378601 1 1
- 26700 0.33581846 0 -0.00084397268 1 1
- 26800 0.32998532 0 0.015932208 1 1
- 26900 0.33825444 0 0.010428603 1 1
- 27000 0.32081518 0 0.019818223 1 1
- 27100 0.31448098 0 0.020093416 1 1
- 27200 0.32643684 0 0.021934917 1 1
- 27300 0.33289466 0 0.023713072 1 1
- 27400 0.32310744 0 0.024110945 1 1
- 27500 0.33115619 0 0.0025776713 1 1
- 27600 0.33295887 0 -0.010710764 1 1
- 27700 0.32968876 0 -0.0064595905 1 1
- 27800 0.34064581 0 -0.0086519116 1 1
- 27900 0.33559187 0 -0.0055753593 1 1
- 28000 0.32300727 0 -0.0004153384 1 1
- 28100 0.32147461 0 -0.0058543412 1 1
- 28200 0.35532383 0 0.013646951 1 1
- 28300 0.31507942 0 0.026532255 1 1
- 28400 0.32711006 0 0.033214981 1 1
- 28500 0.34472462 0 0.028050837 1 1
- 28600 0.33708059 0 0.019115676 1 1
- 28700 0.34478087 0 0.023743689 1 1
- 28800 0.34546686 0 0.0081772997 1 1
- 28900 0.34004886 0 0.017771865 1 1
- 29000 0.33604232 0 -0.010505671 1 1
- 29100 0.33541374 0 -0.016273261 1 1
- 29200 0.34347489 0 -0.010002306 1 1
- 29300 0.34083904 0 0.0089701784 1 1
- 29400 0.34846892 0 0.020765104 1 1
- 29500 0.3416255 0 0.022650856 1 1
- 29600 0.33725496 0 0.020693083 1 1
- 29700 0.34480638 0 0.024317128 1 1
- 29800 0.31459471 0 0.023097895 1 1
- 29900 0.33014448 0 0.03114046 1 1
- 30000 0.33741498 0 0.015624314 1 1
- 30100 0.32598657 0 -0.0018860541 1 1
- 30200 0.34855815 0 0.0017983372 1 1
- 30300 0.33375921 0 0.0010991235 1 1
- 30400 0.35008944 0 -0.0027316177 1 1
- 30500 0.33279729 0 -0.0035788551 1 1
- 30600 0.33868746 0 -0.0016249482 1 1
- 30700 0.33597034 0 -0.0014524001 1 1
- 30800 0.3227257 0 0.016353457 1 1
- 30900 0.32676516 0 0.027396654 1 1
- 31000 0.34083982 0 0.031606413 1 1
- 31100 0.32165238 0 0.013583368 1 1
- 31200 0.3428492 0 0.020486611 1 1
- 31300 0.32372541 0 0.01215566 1 1
- 31400 0.32734692 0 0.016229397 1 1
- 31500 0.33089262 0 0.0060426618 1 1
- 31600 0.34273493 0 -0.013456537 1 1
- 31700 0.32723905 0 -0.019243766 1 1
- 31800 0.33636488 0 0.0027814902 1 1
- 31900 0.32834805 0 0.00706877 1 1
- 32000 0.33995148 0 0.0018383309 1 1
- 32100 0.33412282 0 0.0076455933 1 1
- 32200 0.34334884 0 0.023586129 1 1
- 32300 0.32778925 0 0.020564321 1 1
- 32400 0.33163443 0 0.038878463 1 1
- 32500 0.32290345 0 0.022247461 1 1
- 32600 0.34113954 0 0.010966365 1 1
- 32700 0.33390633 0 0.0037777555 1 1
- 32800 0.34385341 0 0.010556575 1 1
- 32900 0.32137047 0 0.00022027143 1 1
- 33000 0.32079172 0 -0.017261272 1 1
- 33100 0.33570882 0 -0.0051942206 1 1
- 33200 0.34320894 0 -0.011515281 1 1
- 33300 0.32794746 0 -0.0018153673 1 1
- 33400 0.33060982 0 0.027118146 1 1
- 33500 0.33641809 0 0.02143035 1 1
- 33600 0.33643061 0 0.020833068 1 1
- 33700 0.3485949 0 0.030918751 1 1
- 33800 0.3283985 0 0.01947613 1 1
- 33900 0.31959761 0 0.021128147 1 1
- 34000 0.33897984 0 0.015270986 1 1
- 34100 0.32392267 0 0.0020130852 1 1
- 34200 0.33084514 0 -0.024316708 1 1
- 34300 0.3342259 0 -0.0059047764 1 1
- 34400 0.33385098 0 0.0063818721 1 1
- 34500 0.33255603 0 -0.01023837 1 1
- 34600 0.34766173 0 0.0056703013 1 1
- 34700 0.339822 0 0.0061648559 1 1
- 34800 0.33902329 0 0.030037037 1 1
- 34900 0.3216153 0 0.027996689 1 1
- 35000 0.32701056 0 0.024778517 1 1
- 35100 0.3124942 0 0.011316548 1 1
- 35200 0.34486416 0 0.011670127 1 1
- 35300 0.33275353 0 0.020491246 1 1
- 35400 0.33618763 0 0.014678874 1 1
- 35500 0.32352282 0 -0.018568683 1 1
- 35600 0.32617903 0 -0.012796912 1 1
- 35700 0.32378048 0 -0.021318585 1 1
- 35800 0.3371086 0 -0.0023678632 1 1
- 35900 0.33818476 0 0.011197742 1 1
- 36000 0.35142144 0 0.022520935 1 1
- 36100 0.35147297 0 0.020277852 1 1
- 36200 0.33489465 0 0.014564878 1 1
- 36300 0.33841515 0 0.036439962 1 1
- 36400 0.32301096 0 0.019966746 1 1
- 36500 0.35612028 0 0.036509556 1 1
- 36600 0.33841597 0 -0.0042180605 1 1
- 36700 0.34477654 0 -0.0052770853 1 1
- 36800 0.33804317 0 -0.013751733 1 1
- 36900 0.35003816 0 -0.0021184393 1 1
- 37000 0.32965041 0 -0.020900951 1 1
- 37100 0.34653095 0 -0.013667977 1 1
- 37200 0.35019871 0 -0.0071740923 1 1
- 37300 0.34859745 0 0.02006041 1 1
- 37400 0.35739859 0 0.020892822 1 1
- 37500 0.34128859 0 0.041072111 1 1
- 37600 0.33781905 0 0.023376738 1 1
- 37700 0.32961874 0 0.030953741 1 1
- 37800 0.343987 0 0.029579795 1 1
- 37900 0.33610448 0 0.036836828 1 1
- 38000 0.32757228 0 0.020902031 1 1
- 38100 0.32735808 0 0.019544751 1 1
- 38200 0.35646953 0 0.044607528 1 1
- 38300 0.32509773 0 0.03610738 1 1
- 38400 0.32111741 0 0.034474043 1 1
- 38500 0.30590608 0 0.053461212 1 1
- 38600 0.32322402 0 0.053453832 1 1
- 38700 0.33843057 0 0.076264534 1 1
- 38800 0.31350741 0 0.064733869 1 1
- 38900 0.31943061 0 0.067836769 1 1
- 39000 0.33775583 0 0.0788316 1 1
- 39100 0.34256036 0 0.075874935 1 1
- 39200 0.33128527 0 0.071610976 1 1
- 39300 0.34519653 0 0.046257301 1 1
- 39400 0.34351844 0 0.052422917 1 1
- 39500 0.35716037 0 0.048916058 1 1
- 39600 0.34000737 0 0.016149089 1 1
- 39700 0.34587892 0 0.021619621 1 1
- 39800 0.34878036 0 0.0092881327 1 1
- 39900 0.35225411 0 -0.011341599 1 1
- 40000 0.36309266 0 0.0050869295 1 1
-Loop time of 1.94553 on 1 procs for 40000 steps with 361 atoms
-
-Performance: 8881898.790 tau/day, 20559.951 timesteps/s
-100.0% CPU use with 1 MPI tasks x no OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 0.068658 | 0.068658 | 0.068658 | 0.0 | 3.53
-Bond | 0.9979 | 0.9979 | 0.9979 | 0.0 | 51.29
-Neigh | 0.50428 | 0.50428 | 0.50428 | 0.0 | 25.92
-Comm | 0.015341 | 0.015341 | 0.015341 | 0.0 | 0.79
-Output | 0.0029466 | 0.0029466 | 0.0029466 | 0.0 | 0.15
-Modify | 0.28324 | 0.28324 | 0.28324 | 0.0 | 14.56
-Other | | 0.07317 | | | 3.76
-
-Nlocal: 361 ave 361 max 361 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Nghost: 0 ave 0 max 0 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
-
-Total # of neighbors = 0
-Ave neighs/atom = 0
-Ave special neighs/atom = 31.0249
-Neighbor list builds = 3079
-Dangerous builds = 0
-Total wall time: 0:00:01
diff --git a/examples/balance/log.15Feb16.balance.g++.1 b/examples/balance/log.15Feb16.balance.g++.1
deleted file mode 100644
index d973de267e..0000000000
--- a/examples/balance/log.15Feb16.balance.g++.1
+++ /dev/null
@@ -1,202 +0,0 @@
-LAMMPS (15 Feb 2016)
-# 2d circle of particles inside a box with LJ walls
-
-variable b index 0
-
-variable x index 50
-variable y index 20
-variable d index 20
-variable v index 5
-variable w index 2
-
-units lj
-dimension 2
-atom_style atomic
-boundary f f p
-
-lattice hex 0.85
-Lattice spacing in x,y,z = 1.16553 2.01877 1.16553
-region box block 0 $x 0 $y -0.5 0.5
-region box block 0 50 0 $y -0.5 0.5
-region box block 0 50 0 20 -0.5 0.5
-create_box 1 box
-Created orthogonal box = (0 0 -0.582767) to (58.2767 40.3753 0.582767)
- 1 by 1 by 1 MPI processor grid
-region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 10
-create_atoms 1 region circle
-Created 361 atoms
-mass 1 1.0
-
-velocity all create 0.5 87287 loop geom
-velocity all set $v $w 0 sum yes
-velocity all set 5 $w 0 sum yes
-velocity all set 5 2 0 sum yes
-
-pair_style lj/cut 2.5
-pair_coeff 1 1 10.0 1.0 2.5
-
-neighbor 0.3 bin
-neigh_modify delay 0 every 1 check yes
-
-fix 1 all nve
-
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi 50 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi 20 1 1 2.5
-
-comm_style tiled
-fix 10 all balance 50 0.9 rcb
-
-#compute 1 all property/atom proc
-#variable p atom c_1%10
-#dump 2 all custom 50 tmp.dump id v_p x y z
-
-#dump 3 all image 50 image.*.jpg v_p type # adiam 1.0 view 0 0 zoom 1.8 subbox yes 0.02
-#variable colors string # "red green blue yellow white # purple pink orange lime gray"
-#dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors}
-
-thermo_style custom step temp epair press f_10[3] f_10
-thermo 100
-
-run 10000
-Neighbor list info ...
- 1 neighbor list requests
- update every 1 steps, delay 0 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 2.8
- binsize = 1.4 -> bins = 42 29 1
-Memory usage per processor = 2.47688 Mbytes
-Step Temp E_pair Press 10[3] 10
- 0 25.701528 -29.143179 -1.2407285 1 1
- 100 26.269576 -29.713313 7.9052334 1 1
- 200 26.368336 -29.809962 1.6412462 1 1
- 300 26.479082 -29.920083 2.3678653 1 1
- 400 26.522239 -29.965537 6.6787858 1 1
- 500 25.725591 -29.168034 0.67065285 1 1
- 600 26.247693 -29.692706 7.9887712 1 1
- 700 26.237368 -29.676926 1.5987214 1 1
- 800 25.889643 -29.431589 4.6160859 1 1
- 900 23.635295 -27.372963 9.029962 1 1
- 1000 22.571904 -25.87422 1.8936085 1 1
- 1100 17.493795 -21.447274 9.502619 1 1
- 1200 17.214459 -20.726964 6.3578933 1 1
- 1300 16.424366 -19.75746 3.9025348 1 1
- 1400 15.09282 -18.172384 1.7966088 1 1
- 1500 13.669129 -16.736191 1.3320876 1 1
- 1600 13.518191 -16.481254 2.2474968 1 1
- 1700 13.840191 -16.808798 1.848689 1 1
- 1800 12.705797 -15.654395 2.6658475 1 1
- 1900 12.560112 -15.376796 1.6651246 1 1
- 2000 12.11219 -14.943991 1.2347207 1 1
- 2100 11.681161 -14.453803 1.1856253 1 1
- 2200 11.380134 -14.15437 1.0983288 1 1
- 2300 11.404137 -14.206989 1.0886428 1 1
- 2400 11.267361 -14.00915 1.1353313 1 1
- 2500 11.086288 -13.866685 1.5189761 1 1
- 2600 11.241757 -14.031809 1.6088858 1 1
- 2700 10.741715 -13.522752 1.2648051 1 1
- 2800 10.594219 -13.461001 1.2068865 1 1
- 2900 10.497917 -13.243311 0.90549881 1 1
- 3000 9.8887944 -12.633322 1.2014467 1 1
- 3100 10.046064 -12.757462 0.72911664 1 1
- 3200 9.8202521 -12.544235 0.85793687 1 1
- 3300 9.9932983 -12.729524 1.3692879 1 1
- 3400 9.4389164 -12.132571 0.83559817 1 1
- 3500 9.4456791 -12.154808 1.2415677 1 1
- 3600 9.4291752 -12.13391 1.1892815 1 1
- 3700 9.2656145 -11.994284 0.93597208 1 1
- 3800 9.6833674 -12.407022 1.4696321 1 1
- 3900 9.2075262 -11.996657 1.0201833 1 1
- 4000 8.704708 -11.395839 1.5366945 1 1
- 4100 8.496226 -11.160512 0.98385093 1 1
- 4200 8.5566638 -11.241219 0.84428298 1 1
- 4300 8.3079987 -10.963542 0.96552044 1 1
- 4400 8.0878014 -10.695296 0.9598929 1 1
- 4500 7.8974753 -10.510996 0.67253552 1 1
- 4600 7.9008492 -10.511956 0.80200878 1 1
- 4700 7.8469401 -10.46341 0.91408186 1 1
- 4800 7.8237062 -10.478701 0.80709563 1 1
- 4900 7.9248576 -10.569715 0.93955604 1 1
- 5000 7.8285795 -10.450559 0.72760696 1 1
- 5100 7.8176003 -10.433727 1.0046395 1 1
- 5200 7.930586 -10.543139 1.1883254 1 1
- 5300 7.4014327 -10.200353 1.2717149 1 1
- 5400 7.3398704 -9.9377313 0.8277383 1 1
- 5500 7.9323894 -10.544566 0.58409181 1 1
- 5600 7.8256391 -10.452111 0.8371735 1 1
- 5700 7.5744223 -10.225985 0.56633204 1 1
- 5800 7.5149231 -10.128901 0.8877957 1 1
- 5900 7.2696456 -9.868796 1.0183026 1 1
- 6000 8.172964 -10.8046 0.82048799 1 1
- 6100 7.569911 -10.224271 0.85335085 1 1
- 6200 7.5498129 -10.158173 0.69550695 1 1
- 6300 7.0906227 -9.664124 0.38267058 1 1
- 6400 6.9720876 -9.556043 0.74772365 1 1
- 6500 7.2708269 -9.8393843 0.87493485 1 1
- 6600 7.0968522 -9.7557969 0.66499003 1 1
- 6700 7.1122649 -9.7305659 1.3152794 1 1
- 6800 6.9990684 -9.5808587 0.25569509 1 1
- 6900 7.2436468 -9.8205382 0.94441711 1 1
- 7000 7.0592104 -9.6306985 0.62683684 1 1
- 7100 6.7457928 -9.3199995 0.92851433 1 1
- 7200 7.0005278 -9.645515 0.79975493 1 1
- 7300 7.0106928 -9.5922649 0.78131757 1 1
- 7400 6.9425198 -9.5718261 0.3016744 1 1
- 7500 7.4193009 -9.9953487 0.55537513 1 1
- 7600 7.1870399 -9.7798145 0.94155142 1 1
- 7700 6.8261504 -9.3693292 0.78601298 1 1
- 7800 6.8794916 -9.4362689 0.9335562 1 1
- 7900 7.0068635 -9.5490666 0.53210657 1 1
- 8000 6.641609 -9.181226 0.80726821 1 1
- 8100 6.9290677 -9.4788963 1.1195905 1 1
- 8200 6.6497084 -9.197688 0.45616164 1 1
- 8300 6.6000864 -9.207368 0.46307403 1 1
- 8400 6.7434835 -9.3226196 0.78570419 1 1
- 8500 7.0766248 -9.5981608 0.48778261 1 1
- 8600 6.8206587 -9.3646115 0.76420951 1 1
- 8700 7.2009315 -9.7629817 0.69026433 1 1
- 8800 7.0581986 -9.636327 0.54467209 1 1
- 8900 7.2337543 -9.8210795 0.61604427 1 1
- 9000 6.7053026 -9.2552306 0.24196123 1 1
- 9100 6.7919694 -9.3561383 0.34320213 1 1
- 9200 6.8518231 -9.4142511 0.73735875 1 1
- 9300 6.5891178 -9.1414615 0.45262773 1 1
- 9400 6.4724853 -9.0217877 0.54837629 1 1
- 9500 6.3569528 -8.9201793 0.19617724 1 1
- 9600 6.3765498 -8.947548 0.85408461 1 1
- 9700 6.5652079 -9.1101844 0.74478711 1 1
- 9800 6.5099709 -9.0677449 0.69826809 1 1
- 9900 6.1773299 -8.7085595 0.69981004 1 1
- 10000 6.3999463 -8.9423632 0.42668066 1 1
-Loop time of 0.675636 on 1 procs for 10000 steps with 361 atoms
-
-Performance: 6393974.952 tau/day, 14800.868 timesteps/s
-99.7% CPU use with 1 MPI tasks x no OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 0.29845 | 0.29845 | 0.29845 | 0.0 | 44.17
-Neigh | 0.26869 | 0.26869 | 0.26869 | 0.0 | 39.77
-Comm | 0.006007 | 0.006007 | 0.006007 | 0.0 | 0.89
-Output | 0.00076938 | 0.00076938 | 0.00076938 | 0.0 | 0.11
-Modify | 0.077204 | 0.077204 | 0.077204 | 0.0 | 11.43
-Other | | 0.02452 | | | 3.63
-
-Nlocal: 361 ave 361 max 361 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Nghost: 0 ave 0 max 0 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Neighs: 1191 ave 1191 max 1191 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-
-Total # of neighbors = 1191
-Ave neighs/atom = 3.29917
-Neighbor list builds = 3609
-Dangerous builds = 0
-Total wall time: 0:00:00
diff --git a/examples/balance/log.15Feb16.balance.g++.4 b/examples/balance/log.15Feb16.balance.g++.4
deleted file mode 100644
index 33381520cd..0000000000
--- a/examples/balance/log.15Feb16.balance.g++.4
+++ /dev/null
@@ -1,202 +0,0 @@
-LAMMPS (15 Feb 2016)
-# 2d circle of particles inside a box with LJ walls
-
-variable b index 0
-
-variable x index 50
-variable y index 20
-variable d index 20
-variable v index 5
-variable w index 2
-
-units lj
-dimension 2
-atom_style atomic
-boundary f f p
-
-lattice hex 0.85
-Lattice spacing in x,y,z = 1.16553 2.01877 1.16553
-region box block 0 $x 0 $y -0.5 0.5
-region box block 0 50 0 $y -0.5 0.5
-region box block 0 50 0 20 -0.5 0.5
-create_box 1 box
-Created orthogonal box = (0 0 -0.582767) to (58.2767 40.3753 0.582767)
- 2 by 2 by 1 MPI processor grid
-region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 $(v_d/2)
-region circle sphere 11 6.7735026918962581988 0.0 10
-create_atoms 1 region circle
-Created 361 atoms
-mass 1 1.0
-
-velocity all create 0.5 87287 loop geom
-velocity all set $v $w 0 sum yes
-velocity all set 5 $w 0 sum yes
-velocity all set 5 2 0 sum yes
-
-pair_style lj/cut 2.5
-pair_coeff 1 1 10.0 1.0 2.5
-
-neighbor 0.3 bin
-neigh_modify delay 0 every 1 check yes
-
-fix 1 all nve
-
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5
-fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi 50 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5
-fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi 20 1 1 2.5
-
-comm_style tiled
-fix 10 all balance 50 0.9 rcb
-
-#compute 1 all property/atom proc
-#variable p atom c_1%10
-#dump 2 all custom 50 tmp.dump id v_p x y z
-
-#dump 3 all image 50 image.*.jpg v_p type # adiam 1.0 view 0 0 zoom 1.8 subbox yes 0.02
-#variable colors string # "red green blue yellow white # purple pink orange lime gray"
-#dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors}
-
-thermo_style custom step temp epair press f_10[3] f_10
-thermo 100
-
-run 10000
-Neighbor list info ...
- 1 neighbor list requests
- update every 1 steps, delay 0 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 2.8
- binsize = 1.4 -> bins = 42 29 1
-Memory usage per processor = 2.48839 Mbytes
-Step Temp E_pair Press 10[3] 10
- 0 25.701528 -29.143179 -1.2407285 3.2354571 1.0526316
- 100 26.269576 -29.713313 7.9052334 1.2742382 1.0304709
- 200 26.368336 -29.809962 1.6412462 1.2520776 1.0083102
- 300 26.479082 -29.920083 2.3678653 1.2299169 1.0193906
- 400 26.522239 -29.965537 6.6787858 1.1855956 1.0083102
- 500 25.725591 -29.168034 0.67065285 1.2520776 1.0083102
- 600 26.247693 -29.692706 7.9887712 1.3074792 1.0083102
- 700 26.237368 -29.676926 1.5987214 1.2409972 1.0083102
- 800 25.889643 -29.431589 4.6160859 1.2631579 1.0083102
- 900 23.635295 -27.372963 9.029962 1.1634349 1.0083102
- 1000 22.571904 -25.87422 1.8936085 1.1301939 1.0193906
- 1100 17.493795 -21.447274 9.502619 1.0858726 1.0193906
- 1200 17.214459 -20.726965 6.3578917 1.0304709 1.0193906
- 1300 16.424154 -19.757386 3.9027133 1.1191136 1.0083102
- 1400 15.04233 -18.126227 1.7539398 1.0858726 1.0193906
- 1500 13.749022 -16.839766 1.4654778 1.0747922 1.0083102
- 1600 13.888812 -16.855703 1.8972035 1.0858726 1.0304709
- 1700 13.647879 -16.652436 1.5110481 1.0526316 1.0304709
- 1800 12.61308 -15.580445 2.1861667 1.0083102 1.0083102
- 1900 12.700272 -15.594505 1.6395684 1.0304709 1.0083102
- 2000 12.204319 -15.16754 1.6302417 1.1080332 1.0083102
- 2100 11.921129 -14.774621 1.4311256 1.0858726 1.0083102
- 2200 11.959274 -14.797326 1.4920985 1.0415512 1.0083102
- 2300 11.633606 -14.455284 1.4447243 1.1412742 1.0193906
- 2400 12.180014 -14.719121 1.4582702 1.0304709 1.0083102
- 2500 11.779995 -14.293633 1.2961686 1.0304709 1.0083102
- 2600 11.86013 -14.272853 1.1970414 1.0415512 1.0193906
- 2700 11.360658 -13.772549 1.192957 1.0526316 1.0083102
- 2800 11.045632 -13.438591 1.2007074 1.0083102 1.0193906
- 2900 10.689472 -13.127138 0.94544611 1.0193906 1.0193906
- 3000 10.445298 -12.809325 1.3035047 1.0304709 1.0193906
- 3100 10.22325 -12.599858 1.7838342 1.0304709 1.0083102
- 3200 10.226845 -12.602391 0.91456469 1.0304709 1.0193906
- 3300 9.8906692 -12.204654 1.4538962 1.0415512 1.0193906
- 3400 9.0246858 -11.627057 1.1929498 1.0304709 1.0193906
- 3500 9.4549317 -11.747347 0.92966653 1.0193906 1.0193906
- 3600 9.2467281 -11.534358 0.94959796 1.0415512 1.0083102
- 3700 9.1099307 -11.381318 1.2963887 1.0193906 1.0083102
- 3800 9.2236074 -11.483205 1.3510186 1.1080332 1.0193906
- 3900 8.6105519 -10.877844 1.3591509 1.0304709 1.0083102
- 4000 8.588698 -10.846126 0.76473884 1.0415512 1.0083102
- 4100 8.5960453 -10.831229 0.93758423 1.0747922 1.0193906
- 4200 8.1049344 -10.436054 0.74947412 1.0526316 1.0083102
- 4300 8.2606129 -10.471049 0.64465155 1.0193906 1.0193906
- 4400 8.0777962 -10.288476 1.1145052 1.0193906 1.0083102
- 4500 7.9202904 -10.10427 0.49016698 1.0304709 1.0083102
- 4600 8.2366755 -10.434942 0.65930769 1.0193906 1.0083102
- 4700 7.9313531 -10.13685 1.097861 1.0304709 1.0083102
- 4800 7.8637296 -10.085957 0.56015483 1.0304709 1.0193906
- 4900 7.3410322 -9.5357686 0.89340163 1.0304709 1.0193906
- 5000 7.6647481 -9.8529515 0.8283225 1.0193906 1.0193906
- 5100 7.4114006 -9.5917802 0.64812231 1.0083102 1.0193906
- 5200 7.6261959 -9.8178843 0.90517452 1.0193906 1.0083102
- 5300 7.6501619 -9.8428477 1.028077 1.0304709 1.0083102
- 5400 7.4694373 -9.6434672 0.38259983 1.0193906 1.0083102
- 5500 7.3111918 -9.4803007 0.47921149 1.0193906 1.0193906
- 5600 7.2132446 -9.3694039 0.71282856 1.0193906 1.0083102
- 5700 6.8349744 -9.0018958 0.85688618 1.0193906 1.0083102
- 5800 7.1978042 -9.3667457 0.61717818 1.0304709 1.0193906
- 5900 7.1441033 -9.3263118 0.32840394 1.0193906 1.0083102
- 6000 7.0943691 -9.2621241 1.3099316 1.0083102 1.0083102
- 6100 6.9547586 -9.1026607 0.44492974 1.0193906 1.0083102
- 6200 7.0932682 -9.2934579 0.93444691 1.0415512 1.0083102
- 6300 7.0536275 -9.2562193 0.57578551 1.0193906 1.0193906
- 6400 6.8839921 -9.0513091 0.65690774 1.0193906 1.0083102
- 6500 6.7618431 -8.9037814 0.6011838 1.0304709 1.0193906
- 6600 6.6600729 -8.7979286 0.73495903 1.0193906 1.0193906
- 6700 6.6544136 -8.8089155 0.41206297 1.0304709 1.0193906
- 6800 6.7935502 -8.9405122 1.022055 1.0193906 1.0083102
- 6900 6.6603594 -8.8085894 0.4271189 1.0526316 1.0193906
- 7000 6.4894888 -8.6794785 0.64389173 1.0526316 1.0193906
- 7100 6.6252776 -8.776746 1.3915989 1.0193906 1.0193906
- 7200 6.6680717 -8.8468379 0.60275261 1.0193906 1.0193906
- 7300 6.697874 -8.8458161 0.50887488 1.0637119 1.0083102
- 7400 6.2112277 -8.340139 0.45211042 1.0415512 1.0193906
- 7500 6.4923853 -8.6255862 0.79982162 1.0083102 1.0193906
- 7600 6.2922271 -8.4027197 0.33603817 1.0304709 1.0083102
- 7700 6.5744688 -8.7079756 0.51620003 1.0415512 1.0083102
- 7800 6.6730316 -8.8278613 1.2334484 1.0304709 1.0083102
- 7900 6.3831791 -8.4878853 0.49555781 1.0415512 1.0193906
- 8000 6.690559 -8.7918607 0.88102021 1.0415512 1.0083102
- 8100 6.5390375 -8.6612074 0.45605815 1.0304709 1.0193906
- 8200 6.6957638 -8.8406262 0.45001955 1.0193906 1.0083102
- 8300 6.8684401 -9.0293678 0.64215355 1.0083102 1.0083102
- 8400 6.4416293 -8.5841829 0.53513285 1.0193906 1.0193906
- 8500 6.6854101 -8.8269391 0.81750487 1.0637119 1.0083102
- 8600 6.588469 -8.7315753 0.33201251 1.0083102 1.0083102
- 8700 6.2974312 -8.4104697 0.57054382 1.0083102 1.0083102
- 8800 6.4691853 -8.5985479 0.95554418 1.0415512 1.0083102
- 8900 6.7437807 -8.8949865 0.69067866 1.0415512 1.0083102
- 9000 6.5681473 -8.6984555 0.88464065 1.0193906 1.0083102
- 9100 6.6158471 -8.7398687 0.72347757 1.0193906 1.0083102
- 9200 6.4521137 -8.6048511 0.75093363 1.0193906 1.0193906
- 9300 6.4179685 -8.5582051 1.0072192 1.0083102 1.0083102
- 9400 6.580258 -8.7234535 0.56842466 1.0193906 1.0193906
- 9500 6.4125418 -8.56348 0.36394135 1.0304709 1.0193906
- 9600 6.6723409 -8.8402798 0.56711277 1.0304709 1.0193906
- 9700 6.4522736 -8.594767 0.43495668 1.0193906 1.0083102
- 9800 6.2127437 -8.3329761 0.68977311 1.0304709 1.0193906
- 9900 6.4360513 -8.5839262 1.1702062 1.0304709 1.0193906
- 10000 6.3393653 -8.4396274 0.46277884 1.0304709 1.0193906
-Loop time of 0.389322 on 4 procs for 10000 steps with 361 atoms
-
-Performance: 11096205.412 tau/day, 25685.661 timesteps/s
-98.7% CPU use with 4 MPI tasks x no OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 0.061902 | 0.074659 | 0.098288 | 5.1 | 19.18
-Neigh | 0.061993 | 0.067136 | 0.078793 | 2.6 | 17.24
-Comm | 0.10335 | 0.13334 | 0.15511 | 5.6 | 34.25
-Output | 0.0017662 | 0.0020409 | 0.0027893 | 1.0 | 0.52
-Modify | 0.037374 | 0.038055 | 0.038669 | 0.2 | 9.77
-Other | | 0.07409 | | | 19.03
-
-Nlocal: 90.25 ave 92 max 88 min
-Histogram: 1 0 0 0 0 1 0 1 0 1
-Nghost: 36 ave 38 max 34 min
-Histogram: 1 0 0 0 0 2 0 0 0 1
-Neighs: 276.75 ave 448 max 153 min
-Histogram: 2 0 0 0 0 0 1 0 0 1
-
-Total # of neighbors = 1107
-Ave neighs/atom = 3.06648
-Neighbor list builds = 3472
-Dangerous builds = 0
-Total wall time: 0:00:00
diff --git a/examples/balance/log.27Sep16.balance.bond.fast.g++.4 b/examples/balance/log.27Sep16.balance.bond.fast.g++.4
new file mode 100644
index 0000000000..be17588d59
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.bond.fast.g++.4
@@ -0,0 +1,225 @@
+LAMMPS (26 Sep 2016)
+# 2d circle of particles inside a box with LJ walls
+
+variable b index 0
+
+variable x index 50
+variable y index 20
+variable d index 20
+variable v index 5
+variable w index 2
+
+units lj
+dimension 2
+atom_style bond
+boundary f f p
+
+lattice hex 0.85
+Lattice spacing in x,y,z = 1.16553 2.01877 1.16553
+region box block 0 $x 0 $y -0.5 0.5
+region box block 0 50 0 $y -0.5 0.5
+region box block 0 50 0 20 -0.5 0.5
+create_box 1 box bond/types 1 extra/bond/per/atom 6
+Created orthogonal box = (0 0 -0.582767) to (58.2767 40.3753 0.582767)
+ 2 by 2 by 1 MPI processor grid
+region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
+region circle sphere 11 $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
+region circle sphere 11 6.7735026918962581988 0.0 $(v_d/2)
+region circle sphere 11 6.7735026918962581988 0.0 10
+create_atoms 1 region circle
+Created 361 atoms
+mass 1 1.0
+
+velocity all create 0.5 87287 loop geom
+velocity all set $v $w 0 sum yes
+velocity all set 5 $w 0 sum yes
+velocity all set 5 2 0 sum yes
+
+pair_style lj/cut 2.5
+pair_coeff 1 1 10.0 1.0 2.5
+
+bond_style harmonic
+bond_coeff 1 10.0 1.2
+
+# need to preserve 1-3, 1-4 pairwise interactions during hard collisions
+
+special_bonds lj/coul 0 1 1
+ 0 = max # of 1-2 neighbors
+ 1 = max # of special neighbors
+create_bonds all all 1 1.0 1.5
+Neighbor list info ...
+ 2 neighbor list requests
+ update every 1 steps, delay 10 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 2.8
+ ghost atom cutoff = 2.8
+ binsize = 1.4 -> bins = 42 29 1
+Added 1014 bonds, new total = 1014
+ 6 = max # of 1-2 neighbors
+ 6 = max # of special neighbors
+
+neighbor 0.3 bin
+neigh_modify delay 0 every 1 check yes
+
+fix 1 all nve
+
+fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5
+fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi 50 1 1 2.5
+fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5
+fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi 20 1 1 2.5
+
+comm_style tiled
+comm_modify cutoff 7.5
+fix 10 all balance 50 0.9 rcb
+
+#compute 1 all property/atom proc
+#variable p atom (c_1%10)+1
+#dump 2 all custom 50 tmp.dump id v_p x y z
+
+#dump 3 all image 50 image.*.jpg v_p type bond atom 0.25 # adiam 1.0 view 0 0 zoom 1.8 subbox yes 0.02
+#variable colors string # "red green blue yellow white # purple pink orange lime gray"
+#dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors}
+
+thermo_style custom step temp epair press f_10[3] f_10
+thermo 100
+
+run 10000
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 1 steps, delay 0 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 2.8
+ ghost atom cutoff = 7.5
+ binsize = 1.4 -> bins = 42 29 1
+Memory usage per processor = 4.49421 Mbytes
+Step Temp E_pair Press f_10[3] f_10
+ 0 25.701528 -2.2032569 3.1039469 3.2354571 1.0526316
+ 100 27.623422 -6.228166 2.6542136 1.2631579 1.0083102
+ 200 33.35302 -15.746749 3.2018248 1.2963989 1.0193906
+ 300 39.17734 -24.1557 4.9116986 1.2963989 1.0193906
+ 400 41.660701 -27.615203 8.6214679 1.3518006 1.0083102
+ 500 37.154928 -24.096947 3.2656178 1.3296399 1.0193906
+ 600 35.059889 -21.524278 2.3728491 1.3296399 1.0083102
+ 700 36.70511 -21.983922 3.299538 1.3296399 1.0083102
+ 800 39.54394 -25.667546 4.3058382 1.3961219 1.0083102
+ 900 37.868974 -24.379807 5.3176538 1.3518006 1.0083102
+ 1000 36.721328 -23.341363 5.8700266 1.3407202 1.0083102
+ 1100 35.646239 -23.3255 3.3762843 1.1855956 1.0083102
+ 1200 31.452912 -20.792985 5.4901357 1.1966759 1.0083102
+ 1300 32.276549 -21.245929 6.4153084 1.2077562 1.0193906
+ 1400 29.452751 -20.724401 2.174752 1.1855956 1.0083102
+ 1500 28.014757 -18.893532 1.7482766 1.1634349 1.0083102
+ 1600 26.222645 -16.78953 0.93944237 1.1966759 1.0304709
+ 1700 25.711888 -15.792639 0.20021405 1.0969529 1.0083102
+ 1800 24.412639 -13.217606 0.7091708 1.1966759 1.0083102
+ 1900 25.644324 -13.020594 1.3661224 1.1412742 1.0083102
+ 2000 24.556667 -13.580087 0.80121134 1.0637119 1.0083102
+ 2100 25.23657 -13.560862 1.2349706 1.1191136 1.0193906
+ 2200 26.456985 -13.804729 1.27046 1.1412742 1.0193906
+ 2300 26.416685 -13.212452 1.4096744 1.1412742 1.0083102
+ 2400 25.472914 -12.472527 1.5408641 1.1412742 1.0083102
+ 2500 25.216305 -12.597474 0.84328282 1.1412742 1.0083102
+ 2600 24.107024 -12.455199 1.5587978 1.2409972 1.0193906
+ 2700 26.840175 -15.533209 1.2944973 1.1745152 1.0083102
+ 2800 26.149759 -14.83948 4.0371126 1.0747922 1.0083102
+ 2900 24.651151 -14.934342 2.7634302 1.0747922 1.0193906
+ 3000 21.873123 -13.366381 -0.18605935 1.1301939 1.0083102
+ 3100 19.974658 -10.620844 -0.16366371 1.0637119 1.0193906
+ 3200 20.926558 -10.336663 -0.73116364 1.1080332 1.0083102
+ 3300 20.473772 -10.588752 -0.66017168 1.0858726 1.0304709
+ 3400 22.476649 -11.87982 1.0141731 1.0747922 1.0083102
+ 3500 24.02361 -12.532787 1.4116935 1.1191136 1.0083102
+ 3600 22.922792 -12.328391 -0.27783338 1.0969529 1.0083102
+ 3700 21.772971 -10.716922 0.95739835 1.1523546 1.0083102
+ 3800 21.597174 -10.839031 0.67958603 1.1191136 1.0193906
+ 3900 21.883448 -11.258422 -0.40592732 1.0637119 1.0193906
+ 4000 22.815486 -10.891868 1.6123322 1.1301939 1.0193906
+ 4100 23.276599 -11.400134 0.65653972 1.0415512 1.0193906
+ 4200 22.543441 -11.530245 0.074132899 1.1523546 1.0193906
+ 4300 22.863379 -10.809451 0.27552824 1.1412742 1.0193906
+ 4400 22.475073 -11.125735 1.7708547 1.1191136 1.0193906
+ 4500 23.500125 -11.680919 0.91347563 1.0858726 1.0083102
+ 4600 21.1812 -11.767353 0.095659263 1.1191136 1.0193906
+ 4700 22.950759 -12.108158 0.083009642 1.1966759 1.0083102
+ 4800 22.12306 -11.455893 0.47932308 1.1080332 1.0083102
+ 4900 23.297573 -11.823246 0.93733479 1.0969529 1.0083102
+ 5000 22.98743 -12.014836 0.36186604 1.1080332 1.0083102
+ 5100 23.081456 -11.54226 0.73473004 1.0747922 1.0193906
+ 5200 20.980311 -11.493036 -0.71555187 1.0637119 1.0193906
+ 5300 21.468406 -11.18497 0.54579843 1.0304709 1.0193906
+ 5400 22.75839 -10.856825 0.94407228 1.1191136 1.0083102
+ 5500 22.705652 -12.112469 0.4753399 1.1412742 1.0083102
+ 5600 22.391177 -12.530712 1.0180383 1.1412742 1.0083102
+ 5700 21.832834 -11.368512 0.88281166 1.0415512 1.0083102
+ 5800 22.850002 -11.948876 -0.46874747 1.0747922 1.0083102
+ 5900 21.135991 -12.358431 -0.48932559 1.0526316 1.0193906
+ 6000 22.071115 -11.433484 0.49653696 1.0747922 1.0304709
+ 6100 21.91427 -11.458553 -0.030708226 1.0637119 1.0193906
+ 6200 24.173206 -13.110269 -0.13661363 1.1412742 1.0083102
+ 6300 22.204413 -11.373556 1.6254012 1.0747922 1.0304709
+ 6400 23.259022 -11.634614 1.4472592 1.1412742 1.0193906
+ 6500 22.185287 -11.606998 0.66488201 1.0415512 1.0083102
+ 6600 21.329653 -10.989853 0.31700842 1.1301939 1.0083102
+ 6700 21.903749 -10.335477 1.3749575 1.0637119 1.0083102
+ 6800 21.188714 -10.545014 1.3448408 1.0415512 1.0083102
+ 6900 22.683005 -11.254371 0.5048545 1.1523546 1.0193906
+ 7000 21.224439 -9.7325551 0.71666112 1.0637119 1.0083102
+ 7100 21.712624 -10.594397 0.3657261 1.0858726 1.0193906
+ 7200 22.115857 -10.479237 0.95528164 1.0969529 1.0193906
+ 7300 22.075732 -11.255 -0.35340754 1.0526316 1.0193906
+ 7400 21.659767 -10.238454 -0.063639729 1.1523546 1.0083102
+ 7500 21.966354 -10.654264 0.36298903 1.0747922 1.0083102
+ 7600 21.541195 -11.151416 0.96453416 1.1080332 1.0193906
+ 7700 23.517228 -12.266781 0.49603585 1.1523546 1.0193906
+ 7800 21.665911 -11.832323 0.47104209 1.1080332 1.0083102
+ 7900 23.469372 -12.358423 -0.757413 1.0747922 1.0193906
+ 8000 21.699467 -11.462824 -0.73009236 1.0415512 1.0083102
+ 8100 21.583783 -10.21474 0.98837038 1.0969529 1.0193906
+ 8200 21.804998 -10.916922 -0.53268178 1.0858726 1.0083102
+ 8300 21.291145 -10.875356 0.81277146 1.0858726 1.0193906
+ 8400 21.939964 -10.726547 0.95830844 1.0415512 1.0193906
+ 8500 23.600157 -11.041255 -0.14583876 1.0747922 1.0083102
+ 8600 22.37787 -10.946852 1.0360646 1.0415512 1.0083102
+ 8700 23.591205 -11.524803 1.1877377 1.0526316 1.0304709
+ 8800 22.567007 -11.4629 0.4360461 1.0526316 1.0083102
+ 8900 22.11289 -11.772849 -0.019132631 1.0304709 1.0193906
+ 9000 22.814946 -11.705633 0.59029789 1.0747922 1.0083102
+ 9100 22.58487 -11.431283 0.9884223 1.1634349 1.0083102
+ 9200 23.283939 -11.825534 0.68358625 1.0637119 1.0083102
+ 9300 23.292444 -11.365494 0.78631005 1.0526316 1.0083102
+ 9400 21.748634 -10.16176 0.59185916 1.0969529 1.0083102
+ 9500 21.644797 -10.00944 1.1450108 1.0637119 1.0304709
+ 9600 23.01957 -10.683211 1.5735291 1.0637119 1.0193906
+ 9700 21.207989 -10.344668 0.34401867 1.0969529 1.0083102
+ 9800 22.035363 -10.849581 -0.14118639 1.0304709 1.0083102
+ 9900 21.839653 -10.008407 0.96570633 1.0526316 1.0193906
+ 10000 22.845561 -10.238723 0.74236932 1.0858726 1.0083102
+Loop time of 0.812716 on 4 procs for 10000 steps with 361 atoms
+
+Performance: 5315508.362 tau/day, 12304.418 timesteps/s
+98.9% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.12434 | 0.13482 | 0.14506 | 2.5 | 16.59
+Bond | 0.053339 | 0.058165 | 0.062916 | 1.9 | 7.16
+Neigh | 0.28554 | 0.29233 | 0.29933 | 0.9 | 35.97
+Comm | 0.16602 | 0.19226 | 0.21833 | 4.3 | 23.66
+Output | 0.0017536 | 0.0019155 | 0.0022504 | 0.4 | 0.24
+Modify | 0.040126 | 0.040341 | 0.04054 | 0.1 | 4.96
+Other | | 0.09288 | | | 11.43
+
+Nlocal: 90.25 ave 91 max 90 min
+Histogram: 3 0 0 0 0 0 0 0 0 1
+Nghost: 198.25 ave 206 max 191 min
+Histogram: 1 1 0 0 0 0 0 0 1 1
+Neighs: 667.75 ave 751 max 627 min
+Histogram: 2 0 1 0 0 0 0 0 0 1
+
+Total # of neighbors = 2671
+Ave neighs/atom = 7.39889
+Ave special neighs/atom = 5.61773
+Neighbor list builds = 4832
+Dangerous builds = 0
+Total wall time: 0:00:00
diff --git a/examples/balance/log.15Feb16.balance.bond.slow.g++.4 b/examples/balance/log.27Sep16.balance.bond.slow.g++.4
similarity index 97%
rename from examples/balance/log.15Feb16.balance.bond.slow.g++.4
rename to examples/balance/log.27Sep16.balance.bond.slow.g++.4
index f07d8e479e..ba2b2660ca 100644
--- a/examples/balance/log.15Feb16.balance.bond.slow.g++.4
+++ b/examples/balance/log.27Sep16.balance.bond.slow.g++.4
@@ -1,4 +1,4 @@
-LAMMPS (15 Feb 2016)
+LAMMPS (26 Sep 2016)
# 2d circle of particles inside a box with LJ walls
variable b index 0
@@ -91,7 +91,7 @@ Neighbor list info ...
ghost atom cutoff = 2.8
binsize = 1.4 -> bins = 42 29 1
Memory usage per processor = 6.41878 Mbytes
-Step Temp E_pair Press 10[3] 10
+Step Temp E_pair Press f_10[3] f_10
0 0.57437856 0 0.26099453 3.2354571 1.0526316
100 0.29756515 0 0.10149401 1.0193906 1.0083102
200 0.35394813 0 0.075159099 1.0304709 1.0083102
@@ -108,9 +108,9 @@ Step Temp E_pair Press 10[3] 10
1300 0.32952819 0 0.124902 1.0083102 1.0083102
1400 0.34497365 0 0.12662081 1.0193906 1.0083102
1500 0.33429243 0 0.096230972 1.0526316 1.0193906
- 1600 0.33765387 0 0.025800542 1.0304709 1.0083102
- 1700 0.35134464 0 -0.04422593 1.0415512 1.0193906
- 1800 0.35003859 0 -0.096745576 1.0304709 1.0193906
+ 1600 0.33765387 0 0.025800542 1.0304709 1.0193906
+ 1700 0.35134464 0 -0.04422593 1.0415512 1.0083102
+ 1800 0.35003859 0 -0.096745576 1.0304709 1.0083102
1900 0.33839618 0 -0.095465943 1.0193906 1.0083102
2000 0.33732078 0 -0.094652802 1.0083102 1.0083102
2100 0.34552238 0 -0.076729261 1.0304709 1.0083102
@@ -179,7 +179,7 @@ Step Temp E_pair Press 10[3] 10
8400 0.30619282 0 -0.12952879 1.0193906 1.0193906
8500 0.34446484 0 -0.098084709 1.0083102 1.0083102
8600 0.33761673 0 -0.07069818 1.0193906 1.0083102
- 8700 0.34495452 0 -0.022458056 1.0193906 1.0083102
+ 8700 0.34495452 0 -0.022458056 1.0193906 1.0193906
8800 0.33502983 0 0.027742411 1.0304709 1.0083102
8900 0.35418591 0 0.092390134 1.0083102 1.0193906
9000 0.31648387 0 0.12467398 1.0193906 1.0083102
@@ -192,12 +192,12 @@ Step Temp E_pair Press 10[3] 10
9700 0.32088235 0 -0.12027075 1.0193906 1.0083102
9800 0.3320823 0 -0.11602794 1.0415512 1.0083102
9900 0.33916442 0 -0.080281044 1.0083102 1.0083102
- 10000 0.34852268 0 -0.01000914 1.0193906 1.0193906
+ 10000 0.34852268 0 -0.01000914 1.0193906 1.0083102
10100 0.32955942 0 0.04258493 1.0083102 1.0083102
- 10200 0.34487898 0 0.086971308 1.0304709 1.0193906
+ 10200 0.34487898 0 0.086971308 1.0304709 1.0083102
10300 0.32325593 0 0.11558149 1.0304709 1.0193906
10400 0.30927871 0 0.12239437 1.0083102 1.0083102
- 10500 0.33176799 0 0.12285937 1.0193906 1.0193906
+ 10500 0.33176799 0 0.12285937 1.0193906 1.0083102
10600 0.35120027 0 0.084897432 1.0083102 1.0083102
10700 0.33129697 0 0.0053089279 1.0193906 1.0193906
10800 0.36028769 0 -0.04280715 1.0193906 1.0083102
@@ -214,7 +214,7 @@ Step Temp E_pair Press 10[3] 10
11900 0.33836678 0 0.067253864 1.0193906 1.0193906
12000 0.34853314 0 0.03201448 1.0193906 1.0083102
12100 0.34600048 0 -0.034833402 1.0304709 1.0083102
- 12200 0.33145631 0 -0.09865675 1.0193906 1.0193906
+ 12200 0.33145631 0 -0.09865675 1.0193906 1.0083102
12300 0.32848884 0 -0.1248489 1.0193906 1.0193906
12400 0.3321344 0 -0.11266575 1.0083102 1.0083102
12500 0.32622305 0 -0.061634993 1.0304709 1.0083102
@@ -225,11 +225,11 @@ Step Temp E_pair Press 10[3] 10
13000 0.31993287 0 0.13879926 1.0193906 1.0193906
13100 0.3422918 0 0.11978905 1.0083102 1.0083102
13200 0.33055236 0 0.062620483 1.0193906 1.0083102
- 13300 0.34652207 0 0.0043833459 1.0304709 1.0193906
+ 13300 0.34652207 0 0.0043833459 1.0304709 1.0083102
13400 0.33574661 0 -0.04691024 1.0304709 1.0083102
13500 0.33940837 0 -0.074241604 1.0304709 1.0083102
- 13600 0.32093414 0 -0.1078027 1.0193906 1.0083102
- 13700 0.34336597 0 -0.10544097 1.0193906 1.0083102
+ 13600 0.32093414 0 -0.1078027 1.0193906 1.0193906
+ 13700 0.34336597 0 -0.10544097 1.0193906 1.0193906
13800 0.35806461 0 -0.072531559 1.0193906 1.0083102
13900 0.35209713 0 -0.018851408 1.0083102 1.0083102
14000 0.35702629 0 0.061046366 1.0083102 1.0083102
@@ -243,13 +243,13 @@ Step Temp E_pair Press 10[3] 10
14800 0.33679845 0 -0.10067728 1.0193906 1.0193906
14900 0.32790966 0 -0.10925568 1.0193906 1.0083102
15000 0.34208495 0 -0.09568004 1.0193906 1.0083102
- 15100 0.33647529 0 -0.055652929 1.0083102 1.0193906
+ 15100 0.33647529 0 -0.055652929 1.0083102 1.0083102
15200 0.35328398 0 -0.020236536 1.0193906 1.0193906
15300 0.34252669 0 0.026434179 1.0083102 1.0193906
15400 0.34409435 0 0.094410599 1.0304709 1.0083102
15500 0.32288994 0 0.12034455 1.0415512 1.0193906
- 15600 0.32109689 0 0.13645185 1.0193906 1.0193906
- 15700 0.33681572 0 0.098607746 1.0415512 1.0083102
+ 15600 0.32109689 0 0.13645185 1.0193906 1.0083102
+ 15700 0.33681572 0 0.098607746 1.0415512 1.0193906
15800 0.33635195 0 0.05570715 1.0193906 1.0193906
15900 0.34289757 0 0.013849092 1.0304709 1.0083102
16000 0.34225547 0 -0.035597548 1.0304709 1.0083102
@@ -261,7 +261,7 @@ Step Temp E_pair Press 10[3] 10
16600 0.35109001 0 0.041251169 1.0304709 1.0083102
16700 0.34336905 0 0.077996627 1.0193906 1.0083102
16800 0.33277414 0 0.11053634 1.0083102 1.0083102
- 16900 0.32183338 0 0.11680626 1.0193906 1.0083102
+ 16900 0.32183338 0 0.11680626 1.0193906 1.0193906
17000 0.34044352 0 0.10806555 1.0193906 1.0083102
17100 0.32967873 0 0.067759786 1.0304709 1.0193906
17200 0.36172278 0 -0.0048631904 1.0304709 1.0083102
@@ -293,17 +293,17 @@ Step Temp E_pair Press 10[3] 10
19800 0.34880695 0 0.042483681 1.0193906 1.0083102
19900 0.33903644 0 0.034788638 1.0083102 1.0193906
20000 0.32590125 0 0.011383785 1.0193906 1.0083102
- 20100 0.30358859 0 0.0030743554 1.0526316 1.0083102
+ 20100 0.30358859 0 0.0030743554 1.0526316 1.0193906
20200 0.31830224 0 0.017637826 1.0193906 1.0193906
20300 0.34195438 0 0.072811099 1.0304709 1.0193906
20400 0.31249563 0 0.10063541 1.0415512 1.0083102
20500 0.31544938 0 0.1405794 1.0083102 1.0083102
20600 0.30071644 0 0.12763486 1.0193906 1.0193906
- 20700 0.2890265 0 0.1136651 1.0083102 1.0083102
+ 20700 0.2890265 0 0.1136651 1.0083102 1.0193906
20800 0.28962296 0 0.094481978 1.0193906 1.0083102
20900 0.29447212 0 0.0967165 1.0193906 1.0193906
- 21000 0.31159961 0 0.067307231 1.0083102 1.0193906
- 21100 0.30490648 0 0.017689358 1.0083102 1.0304709
+ 21000 0.31159961 0 0.067307231 1.0083102 1.0083102
+ 21100 0.30490648 0 0.017689358 1.0083102 1.0193906
21200 0.30687262 0 -0.016055512 1.0193906 1.0193906
21300 0.30083286 0 -0.0014988997 1.0193906 1.0083102
21400 0.32070426 0 0.015960302 1.0083102 1.0083102
@@ -314,7 +314,7 @@ Step Temp E_pair Press 10[3] 10
21900 0.32451958 0 0.068935768 1.0304709 1.0193906
22000 0.35219298 0 0.067161227 1.0193906 1.0193906
22100 0.34857705 0 0.032731746 1.0193906 1.0083102
- 22200 0.34750227 0 0.0056917695 1.0193906 1.0083102
+ 22200 0.34750227 0 0.0056917695 1.0193906 1.0193906
22300 0.34766017 0 -0.0027090483 1.0193906 1.0083102
22400 0.33426062 0 -0.023196063 1.0304709 1.0193906
22500 0.34174625 0 -0.025019717 1.0083102 1.0083102
@@ -328,11 +328,11 @@ Step Temp E_pair Press 10[3] 10
23300 0.32965664 0 0.035989589 1.0193906 1.0083102
23400 0.30927749 0 0.024581106 1.0193906 1.0083102
23500 0.32890632 0 0.01092479 1.0304709 1.0193906
- 23600 0.34137438 0 0.0094839745 1.0193906 1.0083102
+ 23600 0.34137438 0 0.0094839745 1.0193906 1.0193906
23700 0.34512638 0 -0.012392771 1.0304709 1.0193906
23800 0.31781354 0 -0.012908449 1.0193906 1.0193906
- 23900 0.32405513 0 -0.015018071 1.0415512 1.0193906
- 24000 0.33549728 0 -0.012812915 1.0193906 1.0083102
+ 23900 0.32405513 0 -0.015018071 1.0415512 1.0083102
+ 24000 0.33549728 0 -0.012812915 1.0193906 1.0193906
24100 0.31368736 0 -0.020818372 1.0304709 1.0193906
24200 0.33533836 0 0.0056121057 1.0083102 1.0193906
24300 0.32530627 0 0.018183931 1.0415512 1.0083102
@@ -352,12 +352,12 @@ Step Temp E_pair Press 10[3] 10
25700 0.34048065 0 0.022513032 1.0193906 1.0193906
25800 0.33029079 0 0.038733531 1.0193906 1.0083102
25900 0.33031324 0 0.026156982 1.0304709 1.0193906
- 26000 0.32967371 0 0.028727383 1.0083102 1.0083102
+ 26000 0.32967371 0 0.028727383 1.0083102 1.0193906
26100 0.33775718 0 0.015607478 1.0083102 1.0193906
26200 0.35097144 0 0.012291703 1.0083102 1.0083102
26300 0.34303792 0 0.00094823191 1.0083102 1.0193906
26400 0.33632665 0 -0.0026904889 1.0193906 1.0193906
- 26500 0.33580127 0 -0.0074168555 1.0193906 1.0193906
+ 26500 0.33580127 0 -0.0074168555 1.0193906 1.0083102
26600 0.33063188 0 -0.020378601 1.0083102 1.0193906
26700 0.33581846 0 -0.00084397268 1.0083102 1.0193906
26800 0.32998532 0 0.015932208 1.0304709 1.0193906
@@ -375,12 +375,12 @@ Step Temp E_pair Press 10[3] 10
28000 0.32300727 0 -0.0004153384 1.0304709 1.0083102
28100 0.32147461 0 -0.0058543412 1.0083102 1.0083102
28200 0.35532383 0 0.013646951 1.0304709 1.0083102
- 28300 0.31507942 0 0.026532255 1.0415512 1.0193906
+ 28300 0.31507942 0 0.026532255 1.0415512 1.0083102
28400 0.32711006 0 0.033214981 1.0193906 1.0083102
28500 0.34472462 0 0.028050837 1.0304709 1.0193906
28600 0.33708059 0 0.019115676 1.0083102 1.0083102
- 28700 0.34478087 0 0.023743689 1.0304709 1.0083102
- 28800 0.34546686 0 0.0081772997 1.0304709 1.0193906
+ 28700 0.34478087 0 0.023743689 1.0304709 1.0193906
+ 28800 0.34546686 0 0.0081772997 1.0304709 1.0083102
28900 0.34004886 0 0.017771865 1.0415512 1.0193906
29000 0.33604232 0 -0.010505671 1.0304709 1.0193906
29100 0.33541374 0 -0.016273261 1.0083102 1.0083102
@@ -411,14 +411,14 @@ Step Temp E_pair Press 10[3] 10
31600 0.34273493 0 -0.013456537 1.0083102 1.0083102
31700 0.32723905 0 -0.019243766 1.0193906 1.0083102
31800 0.33636488 0 0.0027814902 1.0083102 1.0083102
- 31900 0.32834805 0 0.00706877 1.0083102 1.0083102
+ 31900 0.32834805 0 0.00706877 1.0083102 1.0193906
32000 0.33995148 0 0.0018383309 1.0193906 1.0193906
32100 0.33412282 0 0.0076455933 1.0083102 1.0083102
32200 0.34334884 0 0.023586129 1.0083102 1.0083102
32300 0.32778925 0 0.020564321 1.0193906 1.0083102
32400 0.33163443 0 0.038878463 1.0193906 1.0083102
32500 0.32290345 0 0.022247461 1.0193906 1.0193906
- 32600 0.34113954 0 0.010966365 1.0304709 1.0083102
+ 32600 0.34113954 0 0.010966365 1.0304709 1.0193906
32700 0.33390633 0 0.0037777555 1.0193906 1.0083102
32800 0.34385341 0 0.010556575 1.0193906 1.0193906
32900 0.32137047 0 0.00022027143 1.0526316 1.0193906
@@ -443,15 +443,15 @@ Step Temp E_pair Press 10[3] 10
34800 0.33902329 0 0.030037037 1.0415512 1.0193906
34900 0.3216153 0 0.027996689 1.0304709 1.0083102
35000 0.32701056 0 0.024778517 1.0193906 1.0193906
- 35100 0.3124942 0 0.011316548 1.0193906 1.0304709
+ 35100 0.3124942 0 0.011316548 1.0193906 1.0193906
35200 0.34486416 0 0.011670127 1.0193906 1.0193906
35300 0.33275353 0 0.020491246 1.0193906 1.0193906
- 35400 0.33618763 0 0.014678874 1.0083102 1.0083102
+ 35400 0.33618763 0 0.014678874 1.0083102 1.0193906
35500 0.32352282 0 -0.018568683 1.0193906 1.0193906
35600 0.32617903 0 -0.012796912 1.0193906 1.0193906
35700 0.32378048 0 -0.021318585 1.0193906 1.0083102
35800 0.3371086 0 -0.0023678632 1.0193906 1.0193906
- 35900 0.33818476 0 0.011197742 1.0193906 1.0193906
+ 35900 0.33818476 0 0.011197742 1.0193906 1.0083102
36000 0.35142144 0 0.022520935 1.0083102 1.0193906
36100 0.35147297 0 0.020277852 1.0193906 1.0083102
36200 0.33489465 0 0.014564878 1.0415512 1.0083102
@@ -464,10 +464,10 @@ Step Temp E_pair Press 10[3] 10
36900 0.35003816 0 -0.0021184393 1.0083102 1.0193906
37000 0.32965041 0 -0.020900951 1.0193906 1.0083102
37100 0.34653095 0 -0.013667977 1.0193906 1.0083102
- 37200 0.35019871 0 -0.0071740923 1.0083102 1.0304709
+ 37200 0.35019871 0 -0.0071740923 1.0083102 1.0193906
37300 0.34859745 0 0.02006041 1.0304709 1.0083102
37400 0.35739859 0 0.020892822 1.0193906 1.0083102
- 37500 0.34128859 0 0.041072111 1.0193906 1.0193906
+ 37500 0.34128859 0 0.041072111 1.0193906 1.0083102
37600 0.33781905 0 0.023376738 1.0193906 1.0083102
37700 0.32961874 0 0.030953741 1.0193906 1.0083102
37800 0.343987 0 0.029579795 1.0083102 1.0083102
@@ -481,7 +481,7 @@ Step Temp E_pair Press 10[3] 10
38600 0.32322402 0 0.053453832 1.0193906 1.0304709
38700 0.33843057 0 0.076264534 1.0083102 1.0193906
38800 0.31350741 0 0.064733869 1.0415512 1.0083102
- 38900 0.31943061 0 0.067836769 1.0304709 1.0193906
+ 38900 0.31943061 0 0.067836769 1.0304709 1.0083102
39000 0.33775583 0 0.0788316 1.0193906 1.0193906
39100 0.34256036 0 0.075874935 1.0083102 1.0193906
39200 0.33128527 0 0.071610976 1.0193906 1.0083102
@@ -491,23 +491,23 @@ Step Temp E_pair Press 10[3] 10
39600 0.34000737 0 0.016149089 1.0304709 1.0083102
39700 0.34587892 0 0.021619621 1.0526316 1.0083102
39800 0.34878036 0 0.0092881327 1.0083102 1.0193906
- 39900 0.35225411 0 -0.011341599 1.0083102 1.0083102
+ 39900 0.35225411 0 -0.011341599 1.0083102 1.0193906
40000 0.36309266 0 0.0050869295 1.0304709 1.0083102
-Loop time of 1.06031 on 4 procs for 40000 steps with 361 atoms
+Loop time of 1.07961 on 4 procs for 40000 steps with 361 atoms
-Performance: 16297104.069 tau/day, 37724.778 timesteps/s
-99.2% CPU use with 4 MPI tasks x no OpenMP threads
+Performance: 16005824.195 tau/day, 37050.519 timesteps/s
+99.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
-Pair | 0.019866 | 0.021036 | 0.024189 | 1.3 | 1.98
-Bond | 0.21436 | 0.24183 | 0.27259 | 5.1 | 22.81
-Neigh | 0.16022 | 0.16068 | 0.16101 | 0.1 | 15.15
-Comm | 0.2742 | 0.31331 | 0.3498 | 5.6 | 29.55
-Output | 0.0070348 | 0.0075188 | 0.0087383 | 0.8 | 0.71
-Modify | 0.14238 | 0.14861 | 0.15484 | 1.3 | 14.02
-Other | | 0.1673 | | | 15.78
+Pair | 0.019289 | 0.021061 | 0.024797 | 1.5 | 1.95
+Bond | 0.21005 | 0.23732 | 0.26838 | 5.0 | 21.98
+Neigh | 0.15978 | 0.16143 | 0.16328 | 0.4 | 14.95
+Comm | 0.2817 | 0.32626 | 0.36457 | 5.8 | 30.22
+Output | 0.0069985 | 0.0075181 | 0.0087821 | 0.8 | 0.70
+Modify | 0.1463 | 0.15235 | 0.16128 | 1.5 | 14.11
+Other | | 0.1737 | | | 16.09
Nlocal: 90.25 ave 91 max 89 min
Histogram: 1 0 0 0 0 1 0 0 0 2
diff --git a/examples/balance/log.27Sep16.balance.clock.dynamic.g++.4 b/examples/balance/log.27Sep16.balance.clock.dynamic.g++.4
new file mode 100644
index 0000000000..330eef37b8
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.clock.dynamic.g++.4
@@ -0,0 +1,221 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 4 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+fix p all property/atom d_WEIGHT
+compute p all property/atom d_WEIGHT
+fix 0 all balance 50 1.0 shift x 10 1.0 weight time 1.0 weight store WEIGHT
+variable maximb equal f_0[1]
+variable iter equal f_0[2]
+variable prev equal f_0[3]
+variable final equal f_0
+
+#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}"
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+#dump id all custom 50 dump.lammpstrj id type x y z c_p
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 500
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+Memory usage per processor = 3.0442 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 0 1 -6.9453205 0 -5.4456955 -5.6812358 4738.2137
+ 50 0.48653399 -6.1788509 0 -5.4492324 -1.6017778 4738.2137
+ 100 0.53411175 -6.249885 0 -5.4489177 -1.9317606 4738.2137
+ 150 0.53646658 -6.2527206 0 -5.4482219 -1.9689568 4738.2137
+ 200 0.54551611 -6.2656326 0 -5.4475631 -2.0042104 4738.2137
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995 4738.2137
+ 300 0.5477618 -6.2678071 0 -5.4463698 -1.997842 4738.2137
+ 350 0.55600296 -6.2801497 0 -5.4463538 -2.0394056 4738.2137
+ 400 0.53241503 -6.2453665 0 -5.4469436 -1.878594 4738.2137
+ 450 0.5439158 -6.2623 0 -5.4466302 -1.9744161 4738.2137
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015 4738.2137
+Loop time of 2.31899 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 93143.824 tau/day, 215.611 timesteps/s
+99.4% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.1238 | 1.43 | 1.6724 | 19.4 | 61.66
+Neigh | 0.26414 | 0.3845 | 0.55604 | 20.2 | 16.58
+Comm | 0.36444 | 0.48475 | 0.61759 | 15.3 | 20.90
+Output | 0.00027871 | 0.00032145 | 0.00035334 | 0.2 | 0.01
+Modify | 0.0064867 | 0.0086303 | 0.011487 | 2.3 | 0.37
+Other | | 0.01078 | | | 0.46
+
+Nlocal: 1000 ave 1565 max 584 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Nghost: 8752 ave 9835 max 8078 min
+Histogram: 2 0 0 0 0 1 0 0 0 1
+Neighs: 149308 ave 161748 max 133300 min
+Histogram: 1 0 0 1 0 0 0 0 1 1
+
+Total # of neighbors = 597231
+Ave neighs/atom = 149.308
+Neighbor list builds = 50
+Dangerous builds = 0
+run 500
+Memory usage per processor = 3.06519 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015 4738.2137
+ 550 0.53879347 -6.2554274 0 -5.4474393 -1.9756834 4738.2137
+ 600 0.54275982 -6.2616799 0 -5.4477437 -1.9939993 4738.2137
+ 650 0.54526651 -6.265098 0 -5.4474027 -2.0303672 4738.2137
+ 700 0.54369381 -6.263201 0 -5.4478642 -1.9921967 4738.2137
+ 750 0.54452777 -6.2640839 0 -5.4474964 -1.9658675 4738.2137
+ 800 0.55061744 -6.2725556 0 -5.4468359 -2.0100922 4738.2137
+ 850 0.55371614 -6.2763992 0 -5.4460326 -2.0065329 4738.2137
+ 900 0.54756622 -6.2668303 0 -5.4456863 -1.9796122 4738.2137
+ 950 0.54791593 -6.2673161 0 -5.4456477 -1.9598278 4738.2137
+ 1000 0.54173198 -6.2586101 0 -5.4462153 -1.9007466 4738.2137
+Loop time of 2.32391 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 92946.753 tau/day, 215.155 timesteps/s
+99.4% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.1054 | 1.4081 | 1.6402 | 19.8 | 60.59
+Neigh | 0.28061 | 0.4047 | 0.57291 | 19.7 | 17.41
+Comm | 0.38485 | 0.4918 | 0.62503 | 15.5 | 21.16
+Output | 0.00028014 | 0.00031483 | 0.00032997 | 0.1 | 0.01
+Modify | 0.0064781 | 0.0084658 | 0.011106 | 2.2 | 0.36
+Other | | 0.01051 | | | 0.45
+
+Nlocal: 1000 ave 1560 max 593 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Nghost: 8716.25 ave 9788 max 8009 min
+Histogram: 2 0 0 0 0 1 0 0 0 1
+Neighs: 150170 ave 164293 max 129469 min
+Histogram: 1 0 0 0 1 0 0 0 0 2
+
+Total # of neighbors = 600678
+Ave neighs/atom = 150.169
+Neighbor list builds = 53
+Dangerous builds = 0
+fix 0 all balance 50 1.0 shift x 5 1.0 weight neigh 0.5 weight time 0.66 weight store WEIGHT
+run 500
+Memory usage per processor = 3.06519 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 1000 0.54173198 -6.2586101 0 -5.4462153 -1.9007466 4738.2137
+ 1050 0.54629742 -6.2657526 0 -5.4465113 -1.945821 4738.2137
+ 1100 0.55427881 -6.2781733 0 -5.446963 -2.0021027 4738.2137
+ 1150 0.54730654 -6.267257 0 -5.4465025 -1.9420678 4738.2137
+ 1200 0.5388281 -6.2547963 0 -5.4467562 -1.890178 4738.2137
+ 1250 0.54848768 -6.2694237 0 -5.4468979 -1.9636797 4738.2137
+ 1300 0.54134321 -6.2590728 0 -5.447261 -1.9170271 4738.2137
+ 1350 0.53564389 -6.2501521 0 -5.4468871 -1.8642306 4738.2137
+ 1400 0.53726924 -6.2518379 0 -5.4461355 -1.8544028 4738.2137
+ 1450 0.54525935 -6.2632653 0 -5.4455808 -1.9072158 4738.2137
+ 1500 0.54223346 -6.2591057 0 -5.4459588 -1.8866985 4738.2137
+Loop time of 2.13659 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 101095.806 tau/day, 234.018 timesteps/s
+99.6% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.3372 | 1.3773 | 1.4155 | 2.5 | 64.46
+Neigh | 0.22376 | 0.37791 | 0.57496 | 25.4 | 17.69
+Comm | 0.20357 | 0.36123 | 0.52777 | 25.5 | 16.91
+Output | 0.00029254 | 0.00034094 | 0.00039411 | 0.2 | 0.02
+Modify | 0.0056622 | 0.0082379 | 0.01147 | 2.9 | 0.39
+Other | | 0.01156 | | | 0.54
+
+Nlocal: 1000 ave 1629 max 525 min
+Histogram: 2 0 0 0 0 0 0 1 0 1
+Nghost: 8647.25 ave 9725 max 7935 min
+Histogram: 2 0 0 0 0 1 0 0 0 1
+Neighs: 150494 ave 161009 max 143434 min
+Histogram: 1 1 0 0 1 0 0 0 0 1
+
+Total # of neighbors = 601974
+Ave neighs/atom = 150.494
+Neighbor list builds = 51
+Dangerous builds = 0
+run 500
+Memory usage per processor = 3.06519 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 1500 0.54223346 -6.2591057 0 -5.4459588 -1.8866985 4738.2137
+ 1550 0.55327017 -6.2750125 0 -5.4453148 -1.9506584 4738.2137
+ 1600 0.54419003 -6.2612622 0 -5.4451812 -1.8559437 4738.2137
+ 1650 0.54710034 -6.2661978 0 -5.4457525 -1.8882831 4738.2137
+ 1700 0.53665689 -6.2504958 0 -5.4457117 -1.8068004 4738.2137
+ 1750 0.54864706 -6.2681124 0 -5.4453476 -1.8662646 4738.2137
+ 1800 0.54476202 -6.2615083 0 -5.4445696 -1.8352824 4738.2137
+ 1850 0.54142953 -6.2555505 0 -5.4436093 -1.8005654 4738.2137
+ 1900 0.53992431 -6.254135 0 -5.444451 -1.7768688 4738.2137
+ 1950 0.54665954 -6.2640971 0 -5.4443128 -1.7947032 4738.2137
+ 2000 0.54557798 -6.2625416 0 -5.4443793 -1.8072514 4738.2137
+Loop time of 2.17499 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 99310.978 tau/day, 229.887 timesteps/s
+99.6% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.3333 | 1.3705 | 1.397 | 2.0 | 63.01
+Neigh | 0.24071 | 0.41014 | 0.62928 | 26.6 | 18.86
+Comm | 0.19069 | 0.37486 | 0.53972 | 26.6 | 17.23
+Output | 0.00031614 | 0.00035483 | 0.00040388 | 0.2 | 0.02
+Modify | 0.0057304 | 0.0083074 | 0.01159 | 2.8 | 0.38
+Other | | 0.01083 | | | 0.50
+
+Nlocal: 1000 ave 1628 max 523 min
+Histogram: 2 0 0 0 0 0 0 1 0 1
+Nghost: 8641.5 ave 9769 max 7941 min
+Histogram: 2 0 0 0 1 0 0 0 0 1
+Neighs: 151654 ave 163181 max 145045 min
+Histogram: 2 0 0 0 1 0 0 0 0 1
+
+Total # of neighbors = 606616
+Ave neighs/atom = 151.654
+Neighbor list builds = 56
+Dangerous builds = 0
+
+Total wall time: 0:00:09
diff --git a/examples/balance/log.27Sep16.balance.clock.static.g++.4 b/examples/balance/log.27Sep16.balance.clock.static.g++.4
new file mode 100644
index 0000000000..da6e94fb75
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.clock.static.g++.4
@@ -0,0 +1,188 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+variable factor index 1.0
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 4 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+group fast type 1
+2600 atoms in group fast
+group slow type 2
+1400 atoms in group slow
+balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+ rebalancing time: 0.000447989 seconds
+ iteration count = 2
+ time weight factor: 1
+ initial/final max load/proc = 1200 1200
+ initial/final imbalance factor = 1.2 1.2
+ x cuts: 0 0.25 0.5 0.6875 1
+ y cuts: 0 1
+ z cuts: 0 1
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 250
+Memory usage per processor = 2.77892 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 1 -6.9453205 0 -5.4456955 -5.6812358
+ 50 0.48653399 -6.1788509 0 -5.4492324 -1.6017778
+ 100 0.53411175 -6.249885 0 -5.4489177 -1.9317606
+ 150 0.53646658 -6.2527206 0 -5.4482219 -1.9689568
+ 200 0.54551611 -6.2656326 0 -5.4475631 -2.0042104
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995
+Loop time of 1.42972 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 75539.346 tau/day, 174.860 timesteps/s
+98.9% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.34009 | 0.65732 | 1.1925 | 42.3 | 45.98
+Neigh | 0.1324 | 0.17067 | 0.19962 | 6.6 | 11.94
+Comm | 0.03502 | 0.5933 | 0.88766 | 45.1 | 41.50
+Output | 0.0001173 | 0.00012749 | 0.00013947 | 0.1 | 0.01
+Modify | 0.0024164 | 0.0032778 | 0.0040991 | 1.0 | 0.23
+Other | | 0.00502 | | | 0.35
+
+Nlocal: 1000 ave 1263 max 712 min
+Histogram: 1 0 0 0 1 0 1 0 0 1
+Nghost: 8711.5 ave 9045 max 8325 min
+Histogram: 1 0 0 0 0 1 1 0 0 1
+Neighs: 149325 ave 275165 max 77227 min
+Histogram: 2 0 0 0 1 0 0 0 0 1
+
+Total # of neighbors = 597299
+Ave neighs/atom = 149.325
+Neighbor list builds = 23
+Dangerous builds = 0
+balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt
+ rebalancing time: 0.000354052 seconds
+ iteration count = 4
+ time weight factor: 1
+ initial/final max load/proc = 1673.83 1097.18
+ initial/final imbalance factor = 1.67383 1.09718
+ x cuts: 0 0.296875 0.453125 0.605469 1
+ y cuts: 0 1
+ z cuts: 0 1
+run 250
+Memory usage per processor = 2.7999 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995
+ 300 0.5477618 -6.2678071 0 -5.4463698 -1.997842
+ 350 0.55600296 -6.2801497 0 -5.4463538 -2.0394056
+ 400 0.53241503 -6.2453665 0 -5.4469436 -1.878594
+ 450 0.5439158 -6.2623 0 -5.4466302 -1.9744161
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015
+Loop time of 1.10579 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 97667.971 tau/day, 226.083 timesteps/s
+99.2% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.47383 | 0.65917 | 0.86391 | 21.2 | 59.61
+Neigh | 0.12071 | 0.17144 | 0.23972 | 11.6 | 15.50
+Comm | 0.10061 | 0.26652 | 0.39924 | 24.8 | 24.10
+Output | 0.00012779 | 0.00014991 | 0.00018096 | 0.2 | 0.01
+Modify | 0.0021801 | 0.0032307 | 0.0047314 | 1.8 | 0.29
+Other | | 0.005272 | | | 0.48
+
+Nlocal: 1000 ave 1479 max 635 min
+Histogram: 1 1 0 0 0 0 1 0 0 1
+Nghost: 8759.5 ave 9918 max 7969 min
+Histogram: 2 0 0 0 0 1 0 0 0 1
+Neighs: 149356 ave 195930 max 110209 min
+Histogram: 2 0 0 0 0 0 0 1 0 1
+
+Total # of neighbors = 597424
+Ave neighs/atom = 149.356
+Neighbor list builds = 24
+Dangerous builds = 0
+balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt
+ rebalancing time: 0.000221968 seconds
+ iteration count = 4
+ time weight factor: 1
+ initial/final max load/proc = 1200.06 1176.79
+ initial/final imbalance factor = 1.20006 1.17679
+ x cuts: 0 0.306641 0.443359 0.595947 1
+ y cuts: 0 1
+ z cuts: 0 1
+run 250
+Memory usage per processor = 2.7999 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015
+ 550 0.53879347 -6.2554274 0 -5.4474393 -1.9756834
+ 600 0.54275982 -6.2616799 0 -5.4477437 -1.9939993
+ 650 0.54526651 -6.265098 0 -5.4474027 -2.0303672
+ 700 0.54369381 -6.263201 0 -5.4478642 -1.9921967
+ 750 0.54452777 -6.2640839 0 -5.4474964 -1.9658675
+Loop time of 1.10659 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 97597.325 tau/day, 225.920 timesteps/s
+99.5% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.59596 | 0.67205 | 0.81576 | 10.9 | 60.73
+Neigh | 0.098 | 0.18193 | 0.2707 | 16.7 | 16.44
+Comm | 0.15524 | 0.24375 | 0.40352 | 19.4 | 22.03
+Output | 0.00013709 | 0.00017041 | 0.00020695 | 0.2 | 0.02
+Modify | 0.0016487 | 0.0032793 | 0.0050011 | 2.4 | 0.30
+Other | | 0.005414 | | | 0.49
+
+Nlocal: 1000 ave 1580 max 493 min
+Histogram: 1 1 0 0 0 0 0 1 0 1
+Nghost: 8736.5 ave 9808 max 8009 min
+Histogram: 2 0 0 0 0 1 0 0 0 1
+Neighs: 149124 ave 178715 max 132100 min
+Histogram: 2 0 0 1 0 0 0 0 0 1
+
+Total # of neighbors = 596497
+Ave neighs/atom = 149.124
+Neighbor list builds = 25
+Dangerous builds = 0
+Total wall time: 0:00:03
diff --git a/examples/balance/log.27Sep16.balance.g++.4 b/examples/balance/log.27Sep16.balance.g++.4
new file mode 100644
index 0000000000..9db38f9817
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.g++.4
@@ -0,0 +1,202 @@
+LAMMPS (26 Sep 2016)
+# 2d circle of particles inside a box with LJ walls
+
+variable b index 0
+
+variable x index 50
+variable y index 20
+variable d index 20
+variable v index 5
+variable w index 2
+
+units lj
+dimension 2
+atom_style atomic
+boundary f f p
+
+lattice hex 0.85
+Lattice spacing in x,y,z = 1.16553 2.01877 1.16553
+region box block 0 $x 0 $y -0.5 0.5
+region box block 0 50 0 $y -0.5 0.5
+region box block 0 50 0 20 -0.5 0.5
+create_box 1 box
+Created orthogonal box = (0 0 -0.582767) to (58.2767 40.3753 0.582767)
+ 2 by 2 by 1 MPI processor grid
+region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
+region circle sphere 11 $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2)
+region circle sphere 11 6.7735026918962581988 0.0 $(v_d/2)
+region circle sphere 11 6.7735026918962581988 0.0 10
+create_atoms 1 region circle
+Created 361 atoms
+mass 1 1.0
+
+velocity all create 0.5 87287 loop geom
+velocity all set $v $w 0 sum yes
+velocity all set 5 $w 0 sum yes
+velocity all set 5 2 0 sum yes
+
+pair_style lj/cut 2.5
+pair_coeff 1 1 10.0 1.0 2.5
+
+neighbor 0.3 bin
+neigh_modify delay 0 every 1 check yes
+
+fix 1 all nve
+
+fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5
+fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi 50 1 1 2.5
+fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5
+fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi 20 1 1 2.5
+
+comm_style tiled
+fix 10 all balance 50 0.9 rcb
+
+#compute 1 all property/atom proc
+#variable p atom c_1%10
+#dump 2 all custom 50 tmp.dump id v_p x y z
+
+#dump 3 all image 50 image.*.jpg v_p type # adiam 1.0 view 0 0 zoom 1.8 subbox yes 0.02
+#variable colors string # "red green blue yellow white # purple pink orange lime gray"
+#dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors}
+
+thermo_style custom step temp epair press f_10[3] f_10
+thermo 100
+
+run 10000
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 1 steps, delay 0 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 2.8
+ ghost atom cutoff = 2.8
+ binsize = 1.4 -> bins = 42 29 1
+Memory usage per processor = 2.48839 Mbytes
+Step Temp E_pair Press f_10[3] f_10
+ 0 25.701528 -29.143179 -1.2407285 3.2354571 1.0526316
+ 100 26.269576 -29.713313 7.9052334 1.2742382 1.0304709
+ 200 26.368336 -29.809962 1.6412462 1.2520776 1.0083102
+ 300 26.479082 -29.920083 2.3678653 1.2299169 1.0193906
+ 400 26.522239 -29.965537 6.6787858 1.1855956 1.0193906
+ 500 25.725591 -29.168034 0.67065285 1.2520776 1.0083102
+ 600 26.247693 -29.692706 7.9887712 1.3074792 1.0083102
+ 700 26.237368 -29.676926 1.5987214 1.2409972 1.0083102
+ 800 25.889643 -29.431589 4.6160859 1.2631579 1.0083102
+ 900 23.635295 -27.372963 9.029962 1.1634349 1.0083102
+ 1000 22.571904 -25.87422 1.8936085 1.1301939 1.0193906
+ 1100 17.493795 -21.447274 9.502619 1.0858726 1.0193906
+ 1200 17.214459 -20.726965 6.3578917 1.0304709 1.0193906
+ 1300 16.424084 -19.757322 3.9028131 1.1191136 1.0083102
+ 1400 15.026954 -18.109911 1.7623684 1.0858726 1.0193906
+ 1500 13.640678 -16.740794 1.5347425 1.0858726 1.0193906
+ 1600 13.618211 -16.610276 1.9480883 1.0747922 1.0083102
+ 1700 13.266465 -16.300632 1.6890777 1.0637119 1.0193906
+ 1800 12.178444 -15.175544 2.1018989 1.0304709 1.0083102
+ 1900 12.131633 -15.075269 2.0174899 1.0526316 1.0193906
+ 2000 12.290785 -15.185923 1.8747772 1.0415512 1.0193906
+ 2100 12.02255 -14.947108 1.086185 1.0747922 1.0083102
+ 2200 11.733238 -14.620414 0.93934447 1.0526316 1.0193906
+ 2300 12.180779 -15.092283 1.1969416 1.0526316 1.0083102
+ 2400 11.721247 -14.503377 1.3759878 1.1080332 1.0083102
+ 2500 11.609116 -14.371603 2.0315139 1.0747922 1.0083102
+ 2600 11.712503 -14.494711 1.7236598 1.0415512 1.0193906
+ 2700 10.932816 -13.665751 1.2772732 1.0415512 1.0083102
+ 2800 10.418752 -13.183889 1.2940564 1.0415512 1.0193906
+ 2900 10.668297 -13.404525 0.90378659 1.0304709 1.0083102
+ 3000 10.562215 -13.581566 1.0507999 1.0083102 1.0193906
+ 3100 10.283188 -13.016565 1.0685664 1.0526316 1.0193906
+ 3200 10.424678 -13.136756 1.4038511 1.0193906 1.0083102
+ 3300 10.207304 -12.901323 1.3077174 1.0415512 1.0193906
+ 3400 10.143301 -12.802915 1.2776266 1.0415512 1.0193906
+ 3500 9.8449452 -12.507639 1.5455496 1.0637119 1.0083102
+ 3600 9.5629038 -12.204164 0.84971204 1.0304709 1.0083102
+ 3700 9.1851938 -11.809431 1.0102805 1.0304709 1.0193906
+ 3800 9.3305969 -11.989086 0.69923461 1.0193906 1.0083102
+ 3900 9.2415243 -11.880498 1.2471235 1.0637119 1.0193906
+ 4000 8.8240051 -11.417696 0.60781901 1.0304709 1.0083102
+ 4100 8.9126422 -11.503716 0.96900558 1.0083102 1.0083102
+ 4200 8.3738185 -10.93925 0.84927158 1.0193906 1.0083102
+ 4300 8.2401487 -10.90291 0.97775564 1.0083102 1.0083102
+ 4400 8.061288 -10.722169 1.4106859 1.0193906 1.0193906
+ 4500 7.8900038 -10.422818 0.67651486 1.0193906 1.0193906
+ 4600 7.8306694 -10.363812 0.83437455 1.0193906 1.0193906
+ 4700 8.1116499 -10.712008 0.58885383 1.0304709 1.0193906
+ 4800 8.0508103 -10.576232 0.52562827 1.0193906 1.0083102
+ 4900 7.8161815 -10.368333 0.89724847 1.0415512 1.0083102
+ 5000 7.4940002 -9.9763835 1.215446 1.0304709 1.0083102
+ 5100 7.9981403 -10.510786 1.0948502 1.0304709 1.0193906
+ 5200 7.7674668 -10.259031 0.81850586 1.0304709 1.0193906
+ 5300 7.9627913 -10.465018 0.75004253 1.0304709 1.0083102
+ 5400 7.8093696 -10.371624 0.75451812 1.0193906 1.0083102
+ 5500 8.1189569 -10.623288 0.91908416 1.0304709 1.0083102
+ 5600 7.5970957 -10.070305 0.84265844 1.0415512 1.0083102
+ 5700 7.4322203 -9.9176252 0.32608772 1.0304709 1.0083102
+ 5800 7.8210607 -10.311444 0.95696619 1.0304709 1.0083102
+ 5900 7.6181913 -10.111225 1.1341946 1.0193906 1.0083102
+ 6000 7.2217555 -9.7122281 0.75858423 1.0637119 1.0083102
+ 6100 7.3643302 -9.851242 0.5240439 1.0193906 1.0193906
+ 6200 7.0281589 -9.4834454 0.59523945 1.0526316 1.0193906
+ 6300 7.1383115 -9.6099868 0.87558078 1.0193906 1.0193906
+ 6400 7.2136999 -9.6965877 0.88426542 1.0304709 1.0083102
+ 6500 7.1710521 -9.7082917 1.2055959 1.0415512 1.0193906
+ 6600 7.4150515 -9.9376614 0.48201097 1.0304709 1.0083102
+ 6700 6.8701427 -9.3844769 0.72785561 1.0526316 1.0193906
+ 6800 6.8486978 -9.3256413 0.93231327 1.0193906 1.0083102
+ 6900 6.583533 -9.0068813 0.51281911 1.0193906 1.0193906
+ 7000 6.7199396 -9.1773668 0.12636874 1.0193906 1.0083102
+ 7100 6.5193695 -8.9553058 1.0423295 1.0083102 1.0193906
+ 7200 6.4868896 -8.9090695 0.49867926 1.0083102 1.0193906
+ 7300 6.2975635 -8.7775483 0.49072731 1.0415512 1.0083102
+ 7400 6.4966155 -8.9410837 0.52952897 1.0193906 1.0083102
+ 7500 6.7100139 -9.166691 0.82930078 1.0193906 1.0083102
+ 7600 6.3569418 -8.7843554 0.93473251 1.0193906 1.0083102
+ 7700 6.122789 -8.5434369 0.33725874 1.0526316 1.0083102
+ 7800 6.0249595 -8.4453069 0.52784464 1.0193906 1.0083102
+ 7900 6.6673238 -9.1166487 0.93753595 1.0193906 1.0083102
+ 8000 6.4177253 -8.8896071 0.57421674 1.0193906 1.0193906
+ 8100 5.965959 -8.3655023 0.42043964 1.0304709 1.0193906
+ 8200 6.3325216 -8.758339 0.76723151 1.0193906 1.0193906
+ 8300 6.4992751 -8.943922 0.86331769 1.0526316 1.0193906
+ 8400 6.1834495 -8.6059885 0.43133079 1.0415512 1.0193906
+ 8500 6.2567239 -8.6758815 0.8551113 1.0083102 1.0193906
+ 8600 6.1232623 -8.5905174 0.6014726 1.0304709 1.0083102
+ 8700 6.6650376 -9.0949995 0.46866086 1.0637119 1.0193906
+ 8800 6.6103957 -9.0116868 0.84371859 1.0083102 1.0193906
+ 8900 5.8867946 -8.3162884 0.64216189 1.0415512 1.0193906
+ 9000 5.685369 -8.0652138 0.32067903 1.0304709 1.0083102
+ 9100 6.2783881 -8.6826466 0.36419567 1.0415512 1.0304709
+ 9200 6.0162211 -8.4584809 0.58707128 1.0083102 1.0083102
+ 9300 5.9900511 -8.3949266 0.62037401 1.0304709 1.0193906
+ 9400 6.2686573 -8.6713334 0.81204427 1.0415512 1.0083102
+ 9500 6.0317917 -8.4325112 0.63221293 1.0304709 1.0193906
+ 9600 5.8217003 -8.256407 0.816143 1.0304709 1.0083102
+ 9700 5.6011023 -7.9966077 0.4114902 1.0304709 1.0193906
+ 9800 5.6339982 -8.0317639 0.32315576 1.0083102 1.0083102
+ 9900 5.8044743 -8.1942271 0.62892477 1.0193906 1.0083102
+ 10000 6.1722678 -8.5642925 0.80423557 1.0304709 1.0083102
+Loop time of 0.39332 on 4 procs for 10000 steps with 361 atoms
+
+Performance: 10983420.832 tau/day, 25424.585 timesteps/s
+98.9% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.067888 | 0.075593 | 0.091022 | 3.3 | 19.22
+Neigh | 0.071147 | 0.075568 | 0.085203 | 2.1 | 19.21
+Comm | 0.10841 | 0.12918 | 0.14463 | 4.0 | 32.84
+Output | 0.0017445 | 0.001877 | 0.0022032 | 0.4 | 0.48
+Modify | 0.038837 | 0.039568 | 0.040469 | 0.3 | 10.06
+Other | | 0.07153 | | | 18.19
+
+Nlocal: 90.25 ave 91 max 90 min
+Histogram: 3 0 0 0 0 0 0 0 0 1
+Nghost: 22.25 ave 27 max 16 min
+Histogram: 1 0 0 0 0 0 2 0 0 1
+Neighs: 268.25 ave 400 max 133 min
+Histogram: 1 0 1 0 0 0 0 1 0 1
+
+Total # of neighbors = 1073
+Ave neighs/atom = 2.9723
+Neighbor list builds = 3611
+Dangerous builds = 0
+Total wall time: 0:00:00
diff --git a/examples/balance/log.27Sep16.balance.group.dynamic.g++.4 b/examples/balance/log.27Sep16.balance.group.dynamic.g++.4
new file mode 100644
index 0000000000..39cd51fac8
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.group.dynamic.g++.4
@@ -0,0 +1,103 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+variable factor index 1.0
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 4 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+group fast type 1
+2600 atoms in group fast
+group slow type 2
+1400 atoms in group slow
+balance 1.0 shift x 5 1.1 weight group 2 fast 1.0 slow ${factor} # out weighted.txt
+balance 1.0 shift x 5 1.1 weight group 2 fast 1.0 slow 1.0
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+ rebalancing time: 0.000452042 seconds
+ iteration count = 2
+ group weights: fast=1 slow=1
+ initial/final max load/proc = 1200 1200
+ initial/final imbalance factor = 1.2 1.2
+ x cuts: 0 0.25 0.5 0.6875 1
+ y cuts: 0 1
+ z cuts: 0 1
+fix 0 all balance 10 1.0 shift x 5 1.1 weight group 2 fast 1.0 slow ${factor}
+fix 0 all balance 10 1.0 shift x 5 1.1 weight group 2 fast 1.0 slow 1.0
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 250
+Memory usage per processor = 2.9192 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 0 1 -6.9453205 0 -5.4456955 -5.6812358 4738.2137
+ 50 0.48653399 -6.1788509 0 -5.4492324 -1.6017778 4738.2137
+ 100 0.53411175 -6.249885 0 -5.4489177 -1.9317606 4738.2137
+ 150 0.53646658 -6.2527206 0 -5.4482219 -1.9689568 4738.2137
+ 200 0.54551611 -6.2656326 0 -5.4475631 -2.0042104 4738.2137
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995 4738.2137
+Loop time of 1.48606 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 72675.623 tau/day, 168.231 timesteps/s
+99.0% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.23243 | 0.67 | 1.2235 | 47.4 | 45.09
+Neigh | 0.17043 | 0.18781 | 0.21572 | 4.1 | 12.64
+Comm | 0.036635 | 0.61802 | 1.0727 | 51.6 | 41.59
+Output | 0.00011992 | 0.00013161 | 0.00015426 | 0.1 | 0.01
+Modify | 0.005506 | 0.0055596 | 0.0056329 | 0.1 | 0.37
+Other | | 0.004531 | | | 0.30
+
+Nlocal: 1000 ave 1001 max 999 min
+Histogram: 1 0 0 0 0 2 0 0 0 1
+Nghost: 8727 ave 8761 max 8674 min
+Histogram: 1 0 0 0 0 0 1 1 0 1
+Neighs: 149349 ave 260848 max 51191 min
+Histogram: 1 1 0 0 0 0 1 0 0 1
+
+Total # of neighbors = 597396
+Ave neighs/atom = 149.349
+Neighbor list builds = 25
+Dangerous builds = 0
+Total wall time: 0:00:01
diff --git a/examples/balance/log.27Sep16.balance.group.static.g++.4 b/examples/balance/log.27Sep16.balance.group.static.g++.4
new file mode 100644
index 0000000000..f6ce53a60a
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.group.static.g++.4
@@ -0,0 +1,139 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+variable factor index 1.0
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 4 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+balance 1.0 shift x 5 1.1 # out unweighted.txt
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+ rebalancing time: 0.000433922 seconds
+ iteration count = 2
+ initial/final max load/proc = 1200 1200
+ initial/final imbalance factor = 1.2 1.2
+ x cuts: 0 0.25 0.5 0.6875 1
+ y cuts: 0 1
+ z cuts: 0 1
+
+balance 1.0 x uniform
+ rebalancing time: 0.000152826 seconds
+ iteration count = 0
+ initial/final max load/proc = 1200 1200
+ initial/final imbalance factor = 1.2 1.2
+ x cuts: 0 0.25 0.5 0.75 1
+ y cuts: 0 1
+ z cuts: 0 1
+
+variable weight atom (type==1)*1.0+(type==2)*v_factor
+balance 1.0 shift x 5 1.1 weight var weight # out weighted_var.txt
+ rebalancing time: 0.000287056 seconds
+ iteration count = 2
+ weight variable: weight
+ initial/final max load/proc = 1200 1200
+ initial/final imbalance factor = 1.2 1.2
+ x cuts: 0 0.25 0.5 0.6875 1
+ y cuts: 0 1
+ z cuts: 0 1
+
+balance 1.0 x uniform
+ rebalancing time: 0.00011611 seconds
+ iteration count = 0
+ initial/final max load/proc = 1200 1200
+ initial/final imbalance factor = 1.2 1.2
+ x cuts: 0 0.25 0.5 0.75 1
+ y cuts: 0 1
+ z cuts: 0 1
+
+group fast type 1
+2600 atoms in group fast
+group slow type 2
+1400 atoms in group slow
+balance 1.0 shift x 5 1.1 weight group 2 fast 1.0 slow ${factor} # out weighted_group.txt
+balance 1.0 shift x 5 1.1 weight group 2 fast 1.0 slow 1.0
+ rebalancing time: 0.000248909 seconds
+ iteration count = 2
+ group weights: fast=1 slow=1
+ initial/final max load/proc = 1200 1200
+ initial/final imbalance factor = 1.2 1.2
+ x cuts: 0 0.25 0.5 0.6875 1
+ y cuts: 0 1
+ z cuts: 0 1
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 250
+Memory usage per processor = 2.77892 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 1 -6.9453205 0 -5.4456955 -5.6812358
+ 50 0.48653399 -6.1788509 0 -5.4492324 -1.6017778
+ 100 0.53411175 -6.249885 0 -5.4489177 -1.9317606
+ 150 0.53646658 -6.2527206 0 -5.4482219 -1.9689568
+ 200 0.54551611 -6.2656326 0 -5.4475631 -2.0042104
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995
+Loop time of 1.41033 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 76577.913 tau/day, 177.264 timesteps/s
+98.7% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.33785 | 0.6592 | 1.1713 | 41.7 | 46.74
+Neigh | 0.14133 | 0.17129 | 0.19681 | 5.6 | 12.15
+Comm | 0.039078 | 0.57085 | 0.87566 | 45.3 | 40.48
+Output | 0.00022721 | 0.00024492 | 0.00026417 | 0.1 | 0.02
+Modify | 0.0025113 | 0.0033261 | 0.0040808 | 1.0 | 0.24
+Other | | 0.005427 | | | 0.38
+
+Nlocal: 1000 ave 1263 max 712 min
+Histogram: 1 0 0 0 1 0 1 0 0 1
+Nghost: 8711.5 ave 9045 max 8325 min
+Histogram: 1 0 0 0 0 1 1 0 0 1
+Neighs: 149325 ave 275165 max 77227 min
+Histogram: 2 0 0 0 1 0 0 0 0 1
+
+Total # of neighbors = 597299
+Ave neighs/atom = 149.325
+Neighbor list builds = 23
+Dangerous builds = 0
+Total wall time: 0:00:01
diff --git a/examples/balance/log.27Sep16.balance.kspace.g++.4 b/examples/balance/log.27Sep16.balance.kspace.g++.4
new file mode 100644
index 0000000000..fae56f81b7
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.kspace.g++.4
@@ -0,0 +1,110 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+#atom_style charge
+processors * 1 1
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 4 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+#set type 1:2 charge 0.0
+
+velocity all create 1.0 87287
+
+pair_style lj/long/coul/long long off 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+kspace_style pppm/disp 1.0e-4
+kspace_modify gewald/disp 0.1
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+group fast type 1
+2600 atoms in group fast
+group slow type 2
+1400 atoms in group slow
+fix 0 all balance 20 1.0 shift x 5 1.0 weight group 2 fast 1.0 slow 2.0 weight time 0.66
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 500
+PPPMDisp initialization ...
+ Dispersion G vector (1/distance) = 0.1
+ Dispersion grid = 2 2 2
+ Dispersion stencil order = 5
+ Dispersion estimated absolute RMS force accuracy = 1.01251
+ Dispersion estimated absolute real space RMS force accuracy = 1.01251
+ Dispersion estimated absolute kspace RMS force accuracy = 7.29446e-07
+ Disperion estimated relative force accuracy = 1.01251
+ using double precision FFTs
+ 3d grid and FFT values/proc dispersion = 294 4
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+Memory usage per processor = 3.32692 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 0 1 52.148338 0 53.647963 94.09503 4738.2137
+ 50 17.850656 42.620113 0 69.389403 142.80556 4738.2137
+ 100 9.4607189 49.700118 0 63.887649 117.51739 4738.2137
+ 150 13.992056 47.731988 0 68.714825 140.56926 4738.2137
+ 200 11.617635 52.509395 0 69.931491 142.6933 4738.2137
+ 250 13.536262 48.330072 0 68.629389 133.91619 4738.2137
+ 300 12.619724 50.326376 0 69.25123 132.46494 4738.2137
+ 350 14.513005 50.110693 0 71.874758 143.39284 4738.2137
+ 400 12.429702 49.690909 0 68.3308 130.0808 4738.2137
+ 450 13.928225 50.969523 0 71.856637 144.44675 4738.2137
+ 500 13.286368 50.355522 0 70.280091 137.2389 4738.2137
+Loop time of 4.79482 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 45048.596 tau/day, 104.279 timesteps/s
+99.1% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.85927 | 1.571 | 2.2092 | 51.0 | 32.76
+Kspace | 0.61247 | 1.982 | 3.2697 | 85.3 | 41.34
+Neigh | 0.2976 | 0.98099 | 1.8525 | 68.1 | 20.46
+Comm | 0.090759 | 0.23335 | 0.34356 | 22.4 | 4.87
+Output | 0.00027442 | 0.00034857 | 0.0004065 | 0.3 | 0.01
+Modify | 0.013081 | 0.016089 | 0.0201 | 2.3 | 0.34
+Other | | 0.01104 | | | 0.23
+
+Nlocal: 1000 ave 1853 max 359 min
+Histogram: 2 0 0 0 0 0 0 1 0 1
+Nghost: 7773.5 ave 9196 max 6355 min
+Histogram: 2 0 0 0 0 0 0 0 0 2
+Neighs: 127368 ave 180948 max 71698 min
+Histogram: 2 0 0 0 0 0 0 0 0 2
+
+Total # of neighbors = 509471
+Ave neighs/atom = 127.368
+Neighbor list builds = 124
+Dangerous builds = 97
+Total wall time: 0:00:04
diff --git a/examples/balance/log.27Sep16.balance.neigh.dynamic.g++.4 b/examples/balance/log.27Sep16.balance.neigh.dynamic.g++.4
new file mode 100644
index 0000000000..68e05d454c
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.neigh.dynamic.g++.4
@@ -0,0 +1,221 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 4 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+fix p all property/atom d_WEIGHT
+fix 0 all balance 50 1.0 shift x 5 1.0 weight neigh 0.8 weight store WEIGHT
+compute p all property/atom d_WEIGHT
+variable maximb equal f_0[1]
+variable iter equal f_0[2]
+variable prev equal f_0[3]
+variable final equal f_0
+
+#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}"
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+#dump id all custom 50 dump.lammpstrj id type x y z c_p
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mp4 c_p type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3 amap 0.0 2.0 cf 0.1 3 min blue 0.5 green max red
+
+thermo 50
+run 500
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+WARNING: No suitable neighbor list found. Neighbor weighted balancing skipped (../imbalance_neigh.cpp:65)
+Memory usage per processor = 3.0442 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 0 1 -6.9453205 0 -5.4456955 -5.6812358 4738.2137
+ 50 0.48653399 -6.1788509 0 -5.4492324 -1.6017778 4738.2137
+ 100 0.53411175 -6.249885 0 -5.4489177 -1.9317606 4738.2137
+ 150 0.53646658 -6.2527206 0 -5.4482219 -1.9689568 4738.2137
+ 200 0.54551611 -6.2656326 0 -5.4475631 -2.0042104 4738.2137
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995 4738.2137
+ 300 0.5477618 -6.2678071 0 -5.4463698 -1.997842 4738.2137
+ 350 0.55600296 -6.2801497 0 -5.4463538 -2.0394056 4738.2137
+ 400 0.53241503 -6.2453665 0 -5.4469436 -1.878594 4738.2137
+ 450 0.5439158 -6.2623 0 -5.4466302 -1.9744161 4738.2137
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015 4738.2137
+Loop time of 2.27598 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 94904.173 tau/day, 219.686 timesteps/s
+99.4% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.1158 | 1.4132 | 1.6545 | 19.0 | 62.09
+Neigh | 0.25541 | 0.38197 | 0.55281 | 20.3 | 16.78
+Comm | 0.33626 | 0.46086 | 0.58471 | 14.7 | 20.25
+Output | 0.00030327 | 0.00033396 | 0.0003922 | 0.2 | 0.01
+Modify | 0.0061643 | 0.0082641 | 0.011169 | 2.4 | 0.36
+Other | | 0.01137 | | | 0.50
+
+Nlocal: 1000 ave 1551 max 604 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Nghost: 8754.75 ave 9849 max 8074 min
+Histogram: 2 0 0 0 0 1 0 0 0 1
+Neighs: 149308 ave 163995 max 129030 min
+Histogram: 1 0 0 1 0 0 0 0 0 2
+
+Total # of neighbors = 597231
+Ave neighs/atom = 149.308
+Neighbor list builds = 50
+Dangerous builds = 0
+run 500
+Memory usage per processor = 3.06519 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015 4738.2137
+ 550 0.53879347 -6.2554274 0 -5.4474393 -1.9756834 4738.2137
+ 600 0.54275982 -6.2616799 0 -5.4477437 -1.9939993 4738.2137
+ 650 0.54526651 -6.265098 0 -5.4474027 -2.0303672 4738.2137
+ 700 0.54369381 -6.263201 0 -5.4478642 -1.9921967 4738.2137
+ 750 0.54452777 -6.2640839 0 -5.4474964 -1.9658675 4738.2137
+ 800 0.55061744 -6.2725556 0 -5.4468359 -2.0100922 4738.2137
+ 850 0.55371614 -6.2763992 0 -5.4460326 -2.0065329 4738.2137
+ 900 0.54756622 -6.2668303 0 -5.4456863 -1.9796122 4738.2137
+ 950 0.54791593 -6.2673161 0 -5.4456477 -1.9598278 4738.2137
+ 1000 0.54173198 -6.2586101 0 -5.4462153 -1.9007466 4738.2137
+Loop time of 2.14853 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 100533.652 tau/day, 232.717 timesteps/s
+99.5% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.1688 | 1.3591 | 1.5126 | 13.1 | 63.26
+Neigh | 0.24981 | 0.38774 | 0.57835 | 22.5 | 18.05
+Comm | 0.36101 | 0.38157 | 0.41179 | 3.0 | 17.76
+Output | 0.00031686 | 0.00034499 | 0.00040627 | 0.2 | 0.02
+Modify | 0.0059092 | 0.0082516 | 0.011432 | 2.6 | 0.38
+Other | | 0.01149 | | | 0.53
+
+Nlocal: 1000 ave 1559 max 601 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Nghost: 8717.25 ave 9789 max 8011 min
+Histogram: 2 0 0 0 0 1 0 0 0 1
+Neighs: 150170 ave 165071 max 129263 min
+Histogram: 1 0 0 1 0 0 0 0 0 2
+
+Total # of neighbors = 600678
+Ave neighs/atom = 150.169
+Neighbor list builds = 53
+Dangerous builds = 0
+run 500
+Memory usage per processor = 3.06519 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 1000 0.54173198 -6.2586101 0 -5.4462153 -1.9007466 4738.2137
+ 1050 0.54629742 -6.2657526 0 -5.4465113 -1.945821 4738.2137
+ 1100 0.55427881 -6.2781733 0 -5.446963 -2.0021027 4738.2137
+ 1150 0.54730654 -6.267257 0 -5.4465025 -1.9420678 4738.2137
+ 1200 0.5388281 -6.2547963 0 -5.4467562 -1.890178 4738.2137
+ 1250 0.54848768 -6.2694237 0 -5.4468979 -1.9636797 4738.2137
+ 1300 0.54134321 -6.2590728 0 -5.447261 -1.9170271 4738.2137
+ 1350 0.53564389 -6.2501521 0 -5.4468871 -1.8642306 4738.2137
+ 1400 0.53726925 -6.2518379 0 -5.4461355 -1.8544028 4738.2137
+ 1450 0.54525935 -6.2632653 0 -5.4455808 -1.9072158 4738.2137
+ 1500 0.54223342 -6.2591056 0 -5.4459588 -1.886698 4738.2137
+Loop time of 2.13806 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 101026.160 tau/day, 233.857 timesteps/s
+99.5% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.1911 | 1.3674 | 1.5133 | 12.4 | 63.95
+Neigh | 0.2394 | 0.37334 | 0.55622 | 22.2 | 17.46
+Comm | 0.36084 | 0.37761 | 0.409 | 3.0 | 17.66
+Output | 0.00030899 | 0.00033534 | 0.00039768 | 0.2 | 0.02
+Modify | 0.0060141 | 0.0083458 | 0.011389 | 2.6 | 0.39
+Other | | 0.01105 | | | 0.52
+
+Nlocal: 1000 ave 1545 max 604 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Nghost: 8704 ave 9801 max 7983 min
+Histogram: 2 0 0 0 0 1 0 0 0 1
+Neighs: 150494 ave 165851 max 129789 min
+Histogram: 1 0 0 1 0 0 0 0 0 2
+
+Total # of neighbors = 601974
+Ave neighs/atom = 150.494
+Neighbor list builds = 51
+Dangerous builds = 0
+run 500
+Memory usage per processor = 3.06519 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 1500 0.54223342 -6.2591056 0 -5.4459588 -1.886698 4738.2137
+ 1550 0.55327017 -6.2750125 0 -5.4453147 -1.9506581 4738.2137
+ 1600 0.54419032 -6.2612626 0 -5.4451812 -1.8559458 4738.2137
+ 1650 0.54710059 -6.2661984 0 -5.4457527 -1.8882842 4738.2137
+ 1700 0.53665689 -6.2504959 0 -5.4457118 -1.8067985 4738.2137
+ 1750 0.54864916 -6.2681196 0 -5.4453516 -1.8662894 4738.2137
+ 1800 0.54476391 -6.2615108 0 -5.4445692 -1.8352746 4738.2137
+ 1850 0.54142945 -6.2555553 0 -5.4436142 -1.8005732 4738.2137
+ 1900 0.53992253 -6.2541407 0 -5.4444594 -1.7768992 4738.2137
+ 1950 0.54663678 -6.2640967 0 -5.4443465 -1.7945736 4738.2137
+ 2000 0.54563235 -6.2626431 0 -5.4443992 -1.807693 4738.2137
+Loop time of 2.18212 on 4 procs for 500 steps with 4000 atoms
+
+Performance: 98986.300 tau/day, 229.135 timesteps/s
+99.7% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.1776 | 1.3712 | 1.5256 | 13.4 | 62.84
+Neigh | 0.26314 | 0.4065 | 0.59956 | 22.6 | 18.63
+Comm | 0.36859 | 0.3845 | 0.41286 | 2.7 | 17.62
+Output | 0.00031281 | 0.00033575 | 0.00039792 | 0.2 | 0.02
+Modify | 0.0058827 | 0.0082896 | 0.011639 | 2.7 | 0.38
+Other | | 0.01133 | | | 0.52
+
+Nlocal: 1000 ave 1544 max 605 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Nghost: 8676.25 ave 9831 max 7985 min
+Histogram: 2 0 0 0 1 0 0 0 0 1
+Neighs: 151653 ave 166956 max 130753 min
+Histogram: 1 0 0 1 0 0 0 0 0 2
+
+Total # of neighbors = 606611
+Ave neighs/atom = 151.653
+Neighbor list builds = 56
+Dangerous builds = 0
+
+Total wall time: 0:00:08
diff --git a/examples/balance/log.27Sep16.balance.neigh.rcb.g++.4 b/examples/balance/log.27Sep16.balance.neigh.rcb.g++.4
new file mode 100644
index 0000000000..76a7b472a5
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.neigh.rcb.g++.4
@@ -0,0 +1,134 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 4 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+comm_style tiled
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+fix p all property/atom d_WEIGHT
+fix 0 all balance 50 1.0 rcb weight neigh 0.8 weight store WEIGHT
+compute p all property/atom d_WEIGHT
+variable maximb equal f_0[1]
+variable iter equal f_0[2]
+variable prev equal f_0[3]
+variable final equal f_0
+
+#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}"
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+#dump id all custom 50 dump.lammpstrj id type x y z c_p
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+
+run 250
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+WARNING: No suitable neighbor list found. Neighbor weighted balancing skipped (../imbalance_neigh.cpp:65)
+Memory usage per processor = 2.90262 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 0 1 -6.9453205 0 -5.4456955 -5.6812358 4738.2137
+ 50 0.48653399 -6.1788509 0 -5.4492324 -1.6017778 4738.2137
+ 100 0.53411175 -6.249885 0 -5.4489177 -1.9317606 4738.2137
+ 150 0.53646658 -6.2527206 0 -5.4482219 -1.9689568 4738.2137
+ 200 0.54551611 -6.2656326 0 -5.4475631 -2.0042104 4738.2137
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995 4738.2137
+Loop time of 0.943947 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 114413.252 tau/day, 264.845 timesteps/s
+99.4% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.64601 | 0.66027 | 0.67403 | 1.2 | 69.95
+Neigh | 0.18111 | 0.18828 | 0.1953 | 1.2 | 19.95
+Comm | 0.072217 | 0.084395 | 0.096822 | 3.4 | 8.94
+Output | 0.00016904 | 0.00018668 | 0.00020409 | 0.1 | 0.02
+Modify | 0.005301 | 0.0055165 | 0.0056343 | 0.2 | 0.58
+Other | | 0.005294 | | | 0.56
+
+Nlocal: 1000 ave 1004 max 996 min
+Histogram: 1 0 0 1 0 0 1 0 0 1
+Nghost: 7674 ave 7678 max 7668 min
+Histogram: 1 0 0 0 0 0 1 0 1 1
+Neighs: 149349 ave 150214 max 148735 min
+Histogram: 1 0 1 0 1 0 0 0 0 1
+
+Total # of neighbors = 597396
+Ave neighs/atom = 149.349
+Neighbor list builds = 25
+Dangerous builds = 0
+run 250
+Memory usage per processor = 2.9031 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995 4738.2137
+ 300 0.5477618 -6.2678071 0 -5.4463698 -1.997842 4738.2137
+ 350 0.55600296 -6.2801497 0 -5.4463538 -2.0394056 4738.2137
+ 400 0.53241503 -6.2453665 0 -5.4469436 -1.878594 4738.2137
+ 450 0.5439158 -6.2623 0 -5.4466302 -1.9744161 4738.2137
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015 4738.2137
+Loop time of 0.886707 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 121798.994 tau/day, 281.942 timesteps/s
+99.7% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.6277 | 0.63292 | 0.64433 | 0.8 | 71.38
+Neigh | 0.1778 | 0.17937 | 0.18309 | 0.5 | 20.23
+Comm | 0.05461 | 0.06445 | 0.070518 | 2.3 | 7.27
+Output | 0.00015926 | 0.00017142 | 0.00018311 | 0.1 | 0.02
+Modify | 0.0050013 | 0.0050754 | 0.0051844 | 0.1 | 0.57
+Other | | 0.004719 | | | 0.53
+
+Nlocal: 1000 ave 1008 max 990 min
+Histogram: 1 0 0 1 0 0 0 0 1 1
+Nghost: 7665.5 ave 7675 max 7650 min
+Histogram: 1 0 0 0 0 1 0 0 0 2
+Neighs: 149308 ave 149883 max 148467 min
+Histogram: 1 0 0 0 1 0 0 0 1 1
+
+Total # of neighbors = 597231
+Ave neighs/atom = 149.308
+Neighbor list builds = 25
+Dangerous builds = 0
+
+Total wall time: 0:00:01
diff --git a/examples/balance/log.27Sep16.balance.neigh.static.g++.4 b/examples/balance/log.27Sep16.balance.neigh.static.g++.4
new file mode 100644
index 0000000000..d082435361
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.neigh.static.g++.4
@@ -0,0 +1,207 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+variable factor index 1.0
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 4 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+
+balance 1.0 shift x 10 1.0 weight neigh 0.8 # out weighted_var.txt
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+WARNING: No suitable neighbor list found. Neighbor weighted balancing skipped (../imbalance_neigh.cpp:65)
+ rebalancing time: 0.00040102 seconds
+ iteration count = 3
+ neigh weight factor: 0.8
+ initial/final max load/proc = 1200 1000
+ initial/final imbalance factor = 1.2 1
+ x cuts: 0 0.25 0.5 0.71875 1
+ y cuts: 0 1
+ z cuts: 0 1
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 250 post no
+Memory usage per processor = 2.77892 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 1 -6.9453205 0 -5.4456955 -5.6812358
+ 50 0.48653399 -6.1788509 0 -5.4492324 -1.6017778
+ 100 0.53411175 -6.249885 0 -5.4489177 -1.9317606
+ 150 0.53646658 -6.2527206 0 -5.4482219 -1.9689568
+ 200 0.54551611 -6.2656326 0 -5.4475631 -2.0042104
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995
+Loop time of 1.42566 on 4 procs for 250 steps with 4000 atoms
+
+99.0% CPU use with 4 MPI tasks x no OpenMP threads
+balance 1.0 shift x 10 1.0 weight neigh 0.8
+ rebalancing time: 0.000426054 seconds
+ iteration count = 10
+ neigh weight factor: 0.8
+ initial/final max load/proc = 1687.06 1002.87
+ initial/final imbalance factor = 1.68662 1.0026
+ x cuts: 0 0.306885 0.452881 0.599335 1
+ y cuts: 0 1
+ z cuts: 0 1
+run 250 post no
+Memory usage per processor = 2.7999 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 250 0.54677719 -6.2671162 0 -5.4471555 -2.0015995
+ 300 0.5477618 -6.2678071 0 -5.4463698 -1.997842
+ 350 0.55600296 -6.2801497 0 -5.4463538 -2.0394056
+ 400 0.53241503 -6.2453665 0 -5.4469436 -1.878594
+ 450 0.5439158 -6.2623 0 -5.4466302 -1.9744161
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015
+Loop time of 1.02512 on 4 procs for 250 steps with 4000 atoms
+
+99.4% CPU use with 4 MPI tasks x no OpenMP threads
+balance 1.0 shift x 10 1.0 weight neigh 0.8
+ rebalancing time: 0.000252008 seconds
+ iteration count = 10
+ neigh weight factor: 0.8
+ initial/final max load/proc = 1054.41 1008.56
+ initial/final imbalance factor = 1.05567 1.00976
+ x cuts: 0 0.303588 0.449887 0.597189 1
+ y cuts: 0 1
+ z cuts: 0 1
+run 250 post no
+Memory usage per processor = 2.7999 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 500 0.55526241 -6.2793396 0 -5.4466542 -2.0595015
+ 550 0.53879347 -6.2554274 0 -5.4474393 -1.9756834
+ 600 0.54275982 -6.2616799 0 -5.4477437 -1.9939993
+ 650 0.54526651 -6.265098 0 -5.4474027 -2.0303672
+ 700 0.54369381 -6.263201 0 -5.4478642 -1.9921967
+ 750 0.54452777 -6.2640839 0 -5.4474964 -1.9658675
+Loop time of 1.03672 on 4 procs for 250 steps with 4000 atoms
+
+99.5% CPU use with 4 MPI tasks x no OpenMP threads
+balance 1.0 shift x 10 1.0 weight neigh 0.8 weight time 0.6
+ rebalancing time: 0.000267982 seconds
+ iteration count = 10
+ neigh weight factor: 0.8
+ time weight factor: 0.6
+ initial/final max load/proc = 1393.27 1116.61
+ initial/final imbalance factor = 1.25201 1.0034
+ x cuts: 0 0.337163 0.448601 0.555904 1
+ y cuts: 0 1
+ z cuts: 0 1
+run 250
+Memory usage per processor = 2.7999 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 750 0.54452777 -6.2640839 0 -5.4474964 -1.9658675
+ 800 0.55061744 -6.2725556 0 -5.4468359 -2.0100922
+ 850 0.55371614 -6.2763992 0 -5.4460326 -2.0065329
+ 900 0.54756622 -6.2668303 0 -5.4456863 -1.9796122
+ 950 0.54791593 -6.2673161 0 -5.4456477 -1.9598278
+ 1000 0.54173198 -6.2586101 0 -5.4462153 -1.9007466
+Loop time of 1.07042 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 100895.237 tau/day, 233.554 timesteps/s
+99.3% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.56894 | 0.64706 | 0.72522 | 8.1 | 60.45
+Neigh | 0.091286 | 0.17756 | 0.29256 | 20.9 | 16.59
+Comm | 0.042178 | 0.23721 | 0.40194 | 31.6 | 22.16
+Output | 0.00012493 | 0.0001505 | 0.00017571 | 0.1 | 0.01
+Modify | 0.0016253 | 0.0032219 | 0.0054028 | 2.9 | 0.30
+Other | | 0.005214 | | | 0.49
+
+Nlocal: 1000 ave 1695 max 489 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Nghost: 8733.5 ave 10199 max 7650 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Neighs: 150170 ave 166473 max 132232 min
+Histogram: 1 1 0 0 0 0 0 0 0 2
+
+Total # of neighbors = 600681
+Ave neighs/atom = 150.17
+Neighbor list builds = 25
+Dangerous builds = 0
+balance 1.0 shift x 10 1.0 weight neigh 0.8 weight time 0.6
+ rebalancing time: 0.000238895 seconds
+ iteration count = 10
+ neigh weight factor: 0.8
+ time weight factor: 0.6
+ initial/final max load/proc = 1167.62 1095.43
+ initial/final imbalance factor = 1.07395 1.00755
+ x cuts: 0 0.345978 0.449963 0.551398 1
+ y cuts: 0 1
+ z cuts: 0 1
+run 250
+Memory usage per processor = 2.7999 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 1000 0.54173198 -6.2586101 0 -5.4462153 -1.9007466
+ 1050 0.54629742 -6.2657526 0 -5.4465113 -1.945821
+ 1100 0.55427881 -6.2781733 0 -5.446963 -2.0021027
+ 1150 0.54730654 -6.267257 0 -5.4465025 -1.9420678
+ 1200 0.5388281 -6.2547963 0 -5.4467562 -1.890178
+ 1250 0.54848768 -6.2694237 0 -5.4468979 -1.9636797
+Loop time of 1.11596 on 4 procs for 250 steps with 4000 atoms
+
+Performance: 96777.859 tau/day, 224.023 timesteps/s
+99.4% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.56315 | 0.66085 | 0.76319 | 10.9 | 59.22
+Neigh | 0.085606 | 0.18033 | 0.29805 | 21.9 | 16.16
+Comm | 0.044225 | 0.2661 | 0.4596 | 35.4 | 23.84
+Output | 0.00015068 | 0.0001756 | 0.00020194 | 0.1 | 0.02
+Modify | 0.0015557 | 0.0032289 | 0.0054245 | 3.0 | 0.29
+Other | | 0.005279 | | | 0.47
+
+Nlocal: 1000 ave 1694 max 462 min
+Histogram: 2 0 0 0 0 0 0 1 0 1
+Nghost: 8755.25 ave 10227 max 7675 min
+Histogram: 2 0 0 0 0 0 1 0 0 1
+Neighs: 149995 ave 173733 max 125545 min
+Histogram: 2 0 0 0 0 0 0 0 0 2
+
+Total # of neighbors = 599979
+Ave neighs/atom = 149.995
+Neighbor list builds = 25
+Dangerous builds = 0
+
+Total wall time: 0:00:05
diff --git a/examples/balance/log.27Sep16.balance.var.dynamic.g++.2 b/examples/balance/log.27Sep16.balance.var.dynamic.g++.2
new file mode 100644
index 0000000000..776ff847a5
--- /dev/null
+++ b/examples/balance/log.27Sep16.balance.var.dynamic.g++.2
@@ -0,0 +1,250 @@
+LAMMPS (26 Sep 2016)
+# 3d Lennard-Jones melt
+
+units lj
+atom_style atomic
+processors * 1 1
+
+lattice fcc 0.8442
+Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
+region box block 0 10 0 10 0 10
+create_box 3 box
+Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
+ 2 by 1 by 1 MPI processor grid
+create_atoms 1 box
+Created 4000 atoms
+mass * 1.0
+
+region long block 3 6 0 10 0 10
+set region long type 2
+ 1400 settings made for type
+
+velocity all create 1.0 87287
+
+pair_style lj/cut 2.5
+pair_coeff * * 1.0 1.0 2.5
+pair_coeff * 2 1.0 1.0 5.0
+
+neighbor 0.3 bin
+neigh_modify every 2 delay 4 check yes
+fix p all property/atom d_WEIGHT
+compute p all property/atom d_WEIGHT
+
+group fast type 1
+2600 atoms in group fast
+group slow type 2
+1400 atoms in group slow
+balance 1.0 shift x 10 1.0 weight group 2 fast 0.8 slow 2.5 weight store WEIGHT
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 2 steps, delay 4 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 5.3
+ ghost atom cutoff = 5.3
+ binsize = 2.65 -> bins = 7 7 7
+ rebalancing time: 0.000465155 seconds
+ iteration count = 10
+ group weights: fast=0.8 slow=2.5
+ storing weight in atom property d_WEIGHT
+ initial/final max load/proc = 2960 3120
+ initial/final imbalance factor = 1.06093 1.11828
+ x cuts: 0 0.449707 1
+ y cuts: 0 1
+ z cuts: 0 1
+variable lastweight atom c_p
+
+fix 0 all balance 50 1.0 shift x 10 1.0 weight var lastweight weight time 0.5 weight store WEIGHT
+variable maximb equal f_0[1]
+variable iter equal f_0[2]
+variable prev equal f_0[3]
+variable final equal f_0
+
+#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}"
+
+fix 1 all nve
+
+#dump id all atom 50 dump.melt
+#dump id all custom 50 dump.lammpstrj id type x y z c_p
+
+#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 2 pad 3
+
+#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
+#dump_modify 3 pad 3
+
+thermo 50
+run 500
+Memory usage per processor = 3.23652 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 0 1 -6.9453205 0 -5.4456955 -5.6812358 4738.2137
+ 50 0.49578514 -6.1929216 0 -5.4494298 -1.6668039 4738.2137
+ 100 0.53275389 -6.2475932 0 -5.4486622 -1.9063885 4738.2137
+ 150 0.53316457 -6.2483202 0 -5.4487733 -1.9476162 4738.2137
+ 200 0.536665 -6.2530113 0 -5.448215 -1.933468 4738.2137
+ 250 0.55006273 -6.27163 0 -5.4467422 -2.0438847 4738.2137
+ 300 0.55111476 -6.2727642 0 -5.4462987 -2.0384873 4738.2137
+ 350 0.55211503 -6.274054 0 -5.4460885 -2.0116976 4738.2137
+ 400 0.54638463 -6.2661715 0 -5.4467995 -1.992248 4738.2137
+ 450 0.55885307 -6.2852263 0 -5.4471563 -2.0669747 4738.2137
+ 500 0.54587069 -6.2662849 0 -5.4476836 -2.0078802 4738.2137
+Loop time of 3.69088 on 2 procs for 500 steps with 4000 atoms
+
+Performance: 58522.605 tau/day, 135.469 timesteps/s
+99.7% CPU use with 2 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 2.3504 | 2.5517 | 2.7529 | 12.6 | 69.13
+Neigh | 0.64397 | 0.73493 | 0.82589 | 10.6 | 19.91
+Comm | 0.084433 | 0.37799 | 0.67156 | 47.7 | 10.24
+Output | 0.00024199 | 0.00026727 | 0.00029254 | 0.2 | 0.01
+Modify | 0.013371 | 0.014984 | 0.016598 | 1.3 | 0.41
+Other | | 0.01102 | | | 0.30
+
+Nlocal: 2000 ave 2358 max 1642 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+Nghost: 10463 ave 11178 max 9748 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+Neighs: 298070 ave 345748 max 250391 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+
+Total # of neighbors = 596139
+Ave neighs/atom = 149.035
+Neighbor list builds = 51
+Dangerous builds = 0
+run 500
+Memory usage per processor = 3.24081 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 500 0.54587069 -6.2662849 0 -5.4476836 -2.0078802 4738.2137
+ 550 0.54137926 -6.2592773 0 -5.4474115 -1.9770236 4738.2137
+ 600 0.54022886 -6.2573307 0 -5.44719 -1.9619637 4738.2137
+ 650 0.54709009 -6.2678862 0 -5.4474562 -1.9958342 4738.2137
+ 700 0.54590044 -6.2656903 0 -5.4470444 -1.9957108 4738.2137
+ 750 0.55098488 -6.2724831 0 -5.4462124 -2.0287523 4738.2137
+ 800 0.5520987 -6.2739184 0 -5.4459774 -2.0084991 4738.2137
+ 850 0.54963958 -6.2702473 0 -5.445994 -1.9740031 4738.2137
+ 900 0.54390586 -6.2615476 0 -5.4458927 -1.9400871 4738.2137
+ 950 0.54741732 -6.2665755 0 -5.4456548 -1.9466417 4738.2137
+ 1000 0.54200867 -6.2591246 0 -5.4463148 -1.8881624 4738.2137
+Loop time of 4.04546 on 2 procs for 500 steps with 4000 atoms
+
+Performance: 53393.133 tau/day, 123.595 timesteps/s
+99.4% CPU use with 2 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 2.0718 | 2.5709 | 3.0701 | 31.1 | 63.55
+Neigh | 0.58891 | 0.73311 | 0.87732 | 16.8 | 18.12
+Comm | 0.068946 | 0.71436 | 1.3598 | 76.4 | 17.66
+Output | 0.00024986 | 0.00027978 | 0.00030971 | 0.2 | 0.01
+Modify | 0.012742 | 0.015146 | 0.01755 | 2.0 | 0.37
+Other | | 0.01163 | | | 0.29
+
+Nlocal: 2000 ave 2384 max 1616 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+Nghost: 10412.5 ave 11172 max 9653 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+Neighs: 300836 ave 358757 max 242914 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+
+Total # of neighbors = 601671
+Ave neighs/atom = 150.418
+Neighbor list builds = 51
+Dangerous builds = 0
+
+balance 1.0 shift x 10 1.0 weight group 2 fast 0.8 slow 2.5 weight store WEIGHT
+ rebalancing time: 0.000392914 seconds
+ iteration count = 10
+ group weights: fast=0.8 slow=2.5
+ storing weight in atom property d_WEIGHT
+ initial/final max load/proc = 3464.4 2800.6
+ initial/final imbalance factor = 1.24172 1.0038
+ x cuts: 0 0.454927 1
+ y cuts: 0 1
+ z cuts: 0 1
+
+fix 0 all balance 50 1.0 shift x 5 1.0 weight var lastweight weight neigh 0.5 weight store WEIGHT
+
+run 500
+Memory usage per processor = 3.24081 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 1000 0.54200867 -6.2591246 0 -5.4463148 -1.8881624 4738.2137
+ 1050 0.54633412 -6.2656384 0 -5.4463421 -1.9012895 4738.2137
+ 1100 0.54325667 -6.2612166 0 -5.4465353 -1.8870463 4738.2137
+ 1150 0.55057583 -6.2719187 0 -5.4462614 -1.9575881 4738.2137
+ 1200 0.53728175 -6.251744 0 -5.4460228 -1.8124097 4738.2137
+ 1250 0.54077561 -6.2567544 0 -5.4457938 -1.8418134 4738.2137
+ 1300 0.54430333 -6.260995 0 -5.4447442 -1.856351 4738.2137
+ 1350 0.55097839 -6.2715909 0 -5.4453299 -1.9014337 4738.2137
+ 1400 0.53858139 -6.2526781 0 -5.445008 -1.7965773 4738.2137
+ 1450 0.54218439 -6.2574683 0 -5.444395 -1.7901189 4738.2137
+ 1500 0.54200616 -6.2571433 0 -5.4443373 -1.8000345 4738.2137
+Loop time of 3.50707 on 2 procs for 500 steps with 4000 atoms
+
+Performance: 61589.821 tau/day, 142.569 timesteps/s
+99.8% CPU use with 2 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 2.4976 | 2.5822 | 2.6669 | 5.3 | 73.63
+Neigh | 0.69706 | 0.73285 | 0.76865 | 4.2 | 20.90
+Comm | 0.11878 | 0.16671 | 0.21464 | 11.7 | 4.75
+Output | 0.00026321 | 0.00028443 | 0.00030565 | 0.1 | 0.01
+Modify | 0.013662 | 0.014432 | 0.015203 | 0.6 | 0.41
+Other | | 0.01054 | | | 0.30
+
+Nlocal: 2000 ave 2113 max 1887 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+Nghost: 10348.5 ave 10873 max 9824 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+Neighs: 302958 ave 314826 max 291091 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+
+Total # of neighbors = 605917
+Ave neighs/atom = 151.479
+Neighbor list builds = 51
+Dangerous builds = 0
+run 500
+Memory usage per processor = 3.24081 Mbytes
+Step Temp E_pair E_mol TotEng Press Volume
+ 1500 0.54200616 -6.2571433 0 -5.4443373 -1.8000345 4738.2137
+ 1550 0.5371361 -6.250403 0 -5.4449003 -1.7647032 4738.2137
+ 1600 0.54679572 -6.2646443 0 -5.4446558 -1.8115723 4738.2137
+ 1650 0.53806586 -6.2519009 0 -5.4450039 -1.7409151 4738.2137
+ 1700 0.53479442 -6.2469034 0 -5.4449123 -1.7162447 4738.2137
+ 1750 0.53714075 -6.2506513 0 -5.4451416 -1.7340207 4738.2137
+ 1800 0.52750518 -6.2358818 0 -5.4448219 -1.6875359 4738.2137
+ 1850 0.54585315 -6.2629365 0 -5.4443615 -1.7758587 4738.2137
+ 1900 0.53011039 -6.238762 0 -5.4437952 -1.6381988 4738.2137
+ 1950 0.54287744 -6.2583143 0 -5.4442018 -1.7367676 4738.2137
+ 2000 0.52770954 -6.2349628 0 -5.4435964 -1.5593554 4738.2137
+Loop time of 3.46214 on 2 procs for 500 steps with 4000 atoms
+
+Performance: 62389.230 tau/day, 144.420 timesteps/s
+99.9% CPU use with 2 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 2.5495 | 2.5809 | 2.6123 | 2.0 | 74.55
+Neigh | 0.68762 | 0.72466 | 0.7617 | 4.4 | 20.93
+Comm | 0.12518 | 0.13173 | 0.13829 | 1.8 | 3.80
+Output | 0.00024581 | 0.00026357 | 0.00028133 | 0.1 | 0.01
+Modify | 0.013486 | 0.014313 | 0.015139 | 0.7 | 0.41
+Other | | 0.01028 | | | 0.30
+
+Nlocal: 2000 ave 2135 max 1865 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+Nghost: 10311.5 ave 10838 max 9785 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+Neighs: 303996 ave 309135 max 298857 min
+Histogram: 1 0 0 0 0 0 0 0 0 1
+
+Total # of neighbors = 607992
+Ave neighs/atom = 151.998
+Neighbor list builds = 51
+Dangerous builds = 0
+Total wall time: 0:00:14
diff --git a/examples/cmap/charmm22.cmap b/examples/cmap/charmm22.cmap
new file mode 100644
index 0000000000..782dcc5dbf
--- /dev/null
+++ b/examples/cmap/charmm22.cmap
@@ -0,0 +1,1022 @@
+# Title: charmm correction map
+
+# alanine map, type 1
+
+# -180
+0.126790 0.768700 0.971260 1.250970 2.121010
+2.695430 2.064440 1.764790 0.755870 -0.713470
+0.976130 -2.475520 -5.455650 -5.096450 -5.305850
+-3.975630 -3.088580 -2.784200 -2.677120 -2.646060
+-2.335350 -2.010440 -1.608040 -0.482250
+
+# -165
+-0.802290 1.377090 1.577020 1.872290 2.398990
+2.461630 2.333840 1.904070 1.061460 0.518400
+-0.116320 -3.575440 -5.284480 -5.160310 -4.196010
+-3.276210 -2.715340 -1.806200 -1.101780 -1.210320
+-1.008810 -0.637100 -1.603360 -1.776870
+
+# -150
+-0.634810 1.156210 1.624350 2.047200 2.653910
+2.691410 2.296420 1.960450 1.324930 2.038290
+-1.151510 -3.148610 -4.058280 -4.531850 -3.796370
+-2.572090 -1.727250 -0.961410 -0.282910 -0.479120
+-1.039340 -1.618060 -1.725460 -1.376360
+
+# -135
+0.214000 1.521370 1.977440 2.377950 2.929470
+2.893410 2.435810 2.162970 1.761500 1.190090
+-1.218610 -2.108900 -2.976100 -3.405340 -2.768440
+-1.836030 -0.957950 0.021790 -0.032760 -0.665880
+-1.321170 -1.212320 -0.893170 -0.897040
+
+# -120
+0.873950 1.959160 2.508990 2.841100 3.698960
+3.309330 2.614300 2.481720 2.694660 1.082440
+-0.398320 -1.761800 -2.945110 -3.294690 -2.308300
+-0.855480 -0.087320 0.439040 0.691880 -0.586330
+-1.027210 -0.976640 -0.467580 0.104020
+
+# -105
+1.767380 2.286650 2.818030 3.065500 3.370620
+3.397440 2.730310 2.878790 2.542010 1.545240
+-0.092150 -1.694440 -2.812310 -2.802430 -1.856360
+-0.306240 -0.122440 0.444680 0.810150 -0.058630
+-0.270290 -0.178830 0.202360 0.493810
+
+# -90
+1.456010 2.743180 2.589450 3.046230 3.451510
+3.319160 3.052900 3.873720 2.420650 0.949100
+0.008370 -1.382980 -2.138930 -2.087380 -1.268300
+-0.494370 0.267580 0.908250 0.537520 0.306260
+0.069540 0.097460 0.263060 0.603220
+
+# -75
+1.396790 3.349090 2.180920 2.942960 3.814070
+3.675800 3.555310 3.887290 2.101260 -0.190940
+-0.732240 -1.382040 -0.673880 -0.817390 -0.826980
+-0.111800 0.053710 0.296400 0.692240 0.428960
+-0.036100 -0.033820 -0.194300 0.400210
+
+# -60
+0.246650 1.229980 1.716960 3.168570 4.208190
+4.366860 4.251080 3.348110 0.997540 -1.287540
+-1.179900 -0.684300 -0.853660 -1.158760 -0.347550
+0.114810 0.242800 0.322420 0.370140 -0.374950
+-0.676940 -1.323430 -1.366650 -0.218770
+
+# -45
+-1.196730 0.078060 2.347410 4.211350 5.376000
+5.364940 4.355200 2.436510 0.408470 -0.590840
+-0.435960 -0.501210 -0.822230 -0.607210 0.057910
+0.246580 -0.070570 0.379430 0.247770 -0.571680
+-1.282910 -1.715770 -1.839820 -1.987110
+
+# -30
+-1.174720 1.067030 4.180460 6.741610 6.070770
+4.781470 2.758340 1.295810 0.571150 -0.196480
+0.251860 -0.732140 1.289360 1.497590 1.890550
+2.198490 0.169290 0.534000 0.331780 -1.276320
+-2.550070 -3.312150 -3.136670 -2.642260
+
+# -15
+0.293590 5.588070 3.732620 3.217620 3.272450
+2.492320 1.563700 1.356760 0.831410 0.630170
+1.591970 0.821920 0.486070 0.715760 0.996020
+1.591580 -0.367400 0.181770 -0.613920 -2.267900
+-3.516460 -3.597700 -3.043340 -1.765020
+
+# 0
+2.832310 0.787990 0.323280 0.479230 0.628600
+0.976330 1.238750 1.671950 1.645480 2.520340
+1.606970 0.776350 0.119780 0.070390 0.121170
+-1.569230 -1.213010 -1.846360 -2.744510 -3.792530
+-3.934880 -3.615930 -2.675750 -0.924170
+
+# 15
+-0.778340 -1.912680 -2.052140 -1.846280 -1.047430
+0.183400 1.682950 2.223500 1.358370 2.448660
+1.436920 0.678570 -0.237060 -0.535320 -0.790380
+-2.182580 -3.251140 -4.195110 -4.269270 -3.908210
+-3.455620 -2.773970 1.755370 0.313410
+
+# 30
+-2.963810 -3.483730 -3.517080 -2.724860 -1.405510
+0.336200 1.428450 1.394630 0.970370 2.462720
+1.522430 0.553620 -0.407380 -1.482950 -3.613920
+-4.159810 -4.945580 -4.784040 -3.764540 -2.959140
+-1.963850 -1.071260 -1.599580 -2.445320
+
+# 45
+-4.029070 -3.932660 -3.558480 -2.513980 -1.037320
+0.362000 0.814380 0.754110 0.502370 1.903420
+0.770220 -0.416420 -3.286310 -3.875270 -4.907800
+-5.704430 -5.645660 -4.396040 -2.865450 -2.368170
+-2.860490 -3.416560 -3.666490 -3.859070
+
+# 60
+-3.338270 -2.960220 -2.311700 -1.272890 -0.246470
+0.722610 0.668070 0.438130 2.395330 1.632470
+-2.041450 -3.218100 -3.915080 -4.852510 -5.696500
+-6.314370 -5.683690 -4.170620 -3.141000 -3.508820
+-3.756430 -3.640810 -3.640430 -3.550690
+
+# 75
+-2.244860 -1.632100 -1.000640 -0.170440 0.526440
+0.823710 0.517140 -0.013120 -0.370910 -1.213720
+-2.305650 -3.420580 -4.484960 -5.693140 -6.199150
+-6.253870 -5.211310 -4.174380 -3.685150 -4.151360
+-4.161970 -3.725150 -3.715310 -2.606760
+
+# 90
+-1.720840 -1.177830 -0.428430 0.277730 0.807900
+0.803260 0.482510 -0.336900 -0.786270 -1.774070
+-2.793220 -3.828560 -5.211800 -6.636850 -6.989940
+-6.108800 -5.452410 -3.911450 -4.321000 -4.587240
+-4.102610 -3.772820 -3.157300 -2.648390
+
+# 105
+-1.850640 -1.092420 -0.445020 0.128490 1.005520
+0.884820 0.485850 -0.218470 -0.857670 -1.682330
+-3.014400 -4.481110 -6.053510 -6.865400 -6.871130
+-5.728240 -3.912230 -4.802110 -5.034640 -4.715990
+-4.601080 -4.086220 -3.274630 -2.410940
+
+# 120
+-1.969230 -1.116650 -0.540250 -0.150330 0.763520
+1.038890 0.758480 0.313530 -0.333050 -1.872770
+-3.366270 -5.008260 -6.124810 -7.034830 -6.724320
+-3.700200 -4.510620 -5.185650 -5.361620 -4.847490
+-4.444320 -4.004260 -3.415720 -2.751230
+
+# 135
+-2.111250 -1.168960 -0.322790 -0.006920 0.316660
+1.086270 0.939170 0.625340 -0.166360 -1.830310
+-3.469470 -4.946030 -6.112560 -1.915580 -4.047310
+-4.996740 -4.996730 -4.842690 -4.886620 -4.300540
+-4.494620 -4.442210 -4.163570 -3.183510
+
+# 150
+-1.757590 -0.403620 0.023920 0.362390 0.634520
+1.264920 1.361360 0.948420 -0.073680 -1.483560
+-3.152820 1.835120 -1.762860 -5.093660 -5.744830
+-5.390070 -4.783930 -4.190630 -4.115420 -4.042280
+-4.125570 -4.028550 -4.026100 -2.937910
+
+# 165
+-0.810590 -0.071500 0.378890 0.543310 1.277880
+1.641310 1.698840 1.519950 0.631950 -1.088670
+-2.736530 -0.735240 -4.563830 -6.408350 -5.889450
+-5.141750 -4.194970 -3.666490 -3.843450 -3.818830
+-3.826180 -3.596820 -2.994790 -2.231020
+
+# alanine before proline map, type 2
+
+# -180
+0.126790 0.768700 0.971260 1.250970 2.121010
+2.695430 2.064440 1.764790 0.755870 -0.713470
+0.976130 -2.475520 -5.455650 -5.096450 -5.305850
+-3.975630 -3.088580 -2.784200 -2.677120 -2.646060
+-2.335350 -2.010440 -1.608040 -0.482250
+
+# -165
+-0.802290 1.377090 1.577020 1.872290 2.398990
+2.461630 2.333840 1.904070 1.061460 0.518400
+-0.116320 -3.575440 -5.284480 -5.160310 -4.196010
+-3.276210 -2.715340 -1.806200 -1.101780 -1.210320
+-1.008810 -0.637100 -1.603360 -1.776870
+
+# -150
+-0.634810 1.156210 1.624350 2.047200 2.653910
+2.691410 2.296420 1.960450 1.324930 2.038290
+-1.151510 -3.148610 -4.058280 -4.531850 -3.796370
+-2.572090 -1.727250 -0.961410 -0.282910 -0.479120
+-1.039340 -1.618060 -1.725460 -1.376360
+
+# -135
+0.214000 1.521370 1.977440 2.377950 2.929470
+2.893410 2.435810 2.162970 1.761500 1.190090
+-1.218610 -2.108900 -2.976100 -3.405340 -2.768440
+-1.836030 -0.957950 0.021790 -0.032760 -0.665880
+-1.321170 -1.212320 -0.893170 -0.897040
+
+# -120
+0.873950 1.959160 2.508990 2.841100 3.698960
+3.309330 2.614300 2.481720 2.694660 1.082440
+-0.398320 -1.761800 -2.945110 -3.294690 -2.308300
+-0.855480 -0.087320 0.439040 0.691880 -0.586330
+-1.027210 -0.976640 -0.467580 0.104020
+
+# -105
+1.767380 2.286650 2.818030 3.065500 3.370620
+3.397440 2.730310 2.878790 2.542010 1.545240
+-0.092150 -1.694440 -2.812310 -2.802430 -1.856360
+-0.306240 -0.122440 0.444680 0.810150 -0.058630
+-0.270290 -0.178830 0.202360 0.493810
+
+# -90
+1.456010 2.743180 2.589450 3.046230 3.451510
+3.319160 3.052900 3.873720 2.420650 0.949100
+0.008370 -1.382980 -2.138930 -2.087380 -1.268300
+-0.494370 0.267580 0.908250 0.537520 0.306260
+0.069540 0.097460 0.263060 0.603220
+
+# -75
+1.396790 3.349090 2.180920 2.942960 3.814070
+3.675800 3.555310 3.887290 2.101260 -0.190940
+-0.732240 -1.382040 -0.673880 -0.817390 -0.826980
+-0.111800 0.053710 0.296400 0.692240 0.428960
+-0.036100 -0.033820 -0.194300 0.400210
+
+# -60
+0.246650 1.229980 1.716960 3.168570 4.208190
+4.366860 4.251080 3.348110 0.997540 -1.287540
+-1.179900 -0.684300 -0.853660 -1.158760 -0.347550
+0.114810 0.242800 0.322420 0.370140 -0.374950
+-0.676940 -1.323430 -1.366650 -0.218770
+
+# -45
+-1.196730 0.078060 2.347410 4.211350 5.376000
+5.364940 4.355200 2.436510 0.408470 -0.590840
+-0.435960 -0.501210 -0.822230 -0.607210 0.057910
+0.246580 -0.070570 0.379430 0.247770 -0.571680
+-1.282910 -1.715770 -1.839820 -1.987110
+
+# -30
+-1.174720 1.067030 4.180460 6.741610 6.070770
+4.781470 2.758340 1.295810 0.571150 -0.196480
+0.251860 -0.732140 1.289360 1.497590 1.890550
+2.198490 0.169290 0.534000 0.331780 -1.276320
+-2.550070 -3.312150 -3.136670 -2.642260
+
+# -15
+0.293590 5.588070 3.732620 3.217620 3.272450
+2.492320 1.563700 1.356760 0.831410 0.630170
+1.591970 0.821920 0.486070 0.715760 0.996020
+1.591580 -0.367400 0.181770 -0.613920 -2.267900
+-3.516460 -3.597700 -3.043340 -1.765020
+
+# 0
+2.832310 0.787990 0.323280 0.479230 0.628600
+0.976330 1.238750 1.671950 1.645480 2.520340
+1.606970 0.776350 0.119780 0.070390 0.121170
+-1.569230 -1.213010 -1.846360 -2.744510 -3.792530
+-3.934880 -3.615930 -2.675750 -0.924170
+
+# 15
+-0.778340 -1.912680 -2.052140 -1.846280 -1.047430
+0.183400 1.682950 2.223500 1.358370 2.448660
+1.436920 0.678570 -0.237060 -0.535320 -0.790380
+-2.182580 -3.251140 -4.195110 -4.269270 -3.908210
+-3.455620 -2.773970 1.755370 0.313410
+
+# 30
+-2.963810 -3.483730 -3.517080 -2.724860 -1.405510
+0.336200 1.428450 1.394630 0.970370 2.462720
+1.522430 0.553620 -0.407380 -1.482950 -3.613920
+-4.159810 -4.945580 -4.784040 -3.764540 -2.959140
+-1.963850 -1.071260 -1.599580 -2.445320
+
+# 45
+-4.029070 -3.932660 -3.558480 -2.513980 -1.037320
+0.362000 0.814380 0.754110 0.502370 1.903420
+0.770220 -0.416420 -3.286310 -3.875270 -4.907800
+-5.704430 -5.645660 -4.396040 -2.865450 -2.368170
+-2.860490 -3.416560 -3.666490 -3.859070
+
+# 60
+-3.338270 -2.960220 -2.311700 -1.272890 -0.246470
+0.722610 0.668070 0.438130 2.395330 1.632470
+-2.041450 -3.218100 -3.915080 -4.852510 -5.696500
+-6.314370 -5.683690 -4.170620 -3.141000 -3.508820
+-3.756430 -3.640810 -3.640430 -3.550690
+
+# 75
+-2.244860 -1.632100 -1.000640 -0.170440 0.526440
+0.823710 0.517140 -0.013120 -0.370910 -1.213720
+-2.305650 -3.420580 -4.484960 -5.693140 -6.199150
+-6.253870 -5.211310 -4.174380 -3.685150 -4.151360
+-4.161970 -3.725150 -3.715310 -2.606760
+
+# 90
+-1.720840 -1.177830 -0.428430 0.277730 0.807900
+0.803260 0.482510 -0.336900 -0.786270 -1.774070
+-2.793220 -3.828560 -5.211800 -6.636850 -6.989940
+-6.108800 -5.452410 -3.911450 -4.321000 -4.587240
+-4.102610 -3.772820 -3.157300 -2.648390
+
+# 105
+-1.850640 -1.092420 -0.445020 0.128490 1.005520
+0.884820 0.485850 -0.218470 -0.857670 -1.682330
+-3.014400 -4.481110 -6.053510 -6.865400 -6.871130
+-5.728240 -3.912230 -4.802110 -5.034640 -4.715990
+-4.601080 -4.086220 -3.274630 -2.410940
+
+# 120
+-1.969230 -1.116650 -0.540250 -0.150330 0.763520
+1.038890 0.758480 0.313530 -0.333050 -1.872770
+-3.366270 -5.008260 -6.124810 -7.034830 -6.724320
+-3.700200 -4.510620 -5.185650 -5.361620 -4.847490
+-4.444320 -4.004260 -3.415720 -2.751230
+
+# 135
+-2.111250 -1.168960 -0.322790 -0.006920 0.316660
+1.086270 0.939170 0.625340 -0.166360 -1.830310
+-3.469470 -4.946030 -6.112560 -1.915580 -4.047310
+-4.996740 -4.996730 -4.842690 -4.886620 -4.300540
+-4.494620 -4.442210 -4.163570 -3.183510
+
+# 150
+-1.757590 -0.403620 0.023920 0.362390 0.634520
+1.264920 1.361360 0.948420 -0.073680 -1.483560
+-3.152820 1.835120 -1.762860 -5.093660 -5.744830
+-5.390070 -4.783930 -4.190630 -4.115420 -4.042280
+-4.125570 -4.028550 -4.026100 -2.937910
+
+# 165
+-0.810590 -0.071500 0.378890 0.543310 1.277880
+1.641310 1.698840 1.519950 0.631950 -1.088670
+-2.736530 -0.735240 -4.563830 -6.408350 -5.889450
+-5.141750 -4.194970 -3.666490 -3.843450 -3.818830
+-3.826180 -3.596820 -2.994790 -2.231020
+
+# proline, type 3
+
+# -180.00
+-4.60660 -4.28920 -4.51420 -5.49210 -6.65460
+-7.18530 -7.63320 -8.41920 -9.12510 -8.97830
+-9.02750 -8.88890 -8.61060 -8.10240 -7.96680
+-7.98860 -7.96190 -7.56330 -7.73950 -8.31580
+-9.33380 -9.61880 -7.91860 -6.00570
+
+# -165.00
+-3.21030 -2.90350 -3.04340 -3.83720 -4.92360
+-5.41790 -5.78320 -6.62490 -7.17820 -7.59500
+-7.60980 -7.39440 -6.68190 -6.24950 -5.83810
+-5.90510 -5.57900 -4.89950 -5.18840 -6.13180
+-6.93510 -7.49160 -5.84410 -4.48890
+
+# -150.00
+-2.23750 -2.26520 -2.55120 -3.67610 -4.61620
+-5.01560 -5.36920 -5.93110 -6.16820 -6.48830
+-6.54220 -6.14310 -5.33350 -4.85090 -4.50790
+-4.44050 -4.34380 -4.13820 -4.35620 -5.24880
+-6.05280 -6.18610 -4.80390 -3.41730
+
+# -135.00
+-2.12830 -2.02010 -2.90220 -3.88240 -4.63610
+-5.02000 -5.46090 -5.79830 -5.63220 -6.41490
+-6.20330 -5.57550 -4.58160 -4.15850 -4.00710
+-3.95020 -3.76880 -4.09690 -4.52680 -5.33410
+-5.97380 -5.68710 -4.70040 -3.33790
+
+# -120.00
+-2.20610 -2.22370 -2.85110 -3.55370 -4.33320
+-4.57860 -4.95030 -5.23950 -5.37730 -6.14740
+-5.98660 -5.17760 -4.16090 -3.78450 -3.83210
+-3.86590 -4.21340 -4.26250 -4.16200 -4.62160
+-5.47440 -5.38280 -4.39100 -3.16760
+
+# -105.00
+-1.32980 -1.44660 -2.00420 -2.84440 -3.31580
+-3.15410 -2.83060 -3.04980 -4.04810 -5.02030
+-4.84090 -3.88520 -2.79540 -2.49190 -2.65990
+-3.34670 -3.60580 -3.76970 -4.07430 -4.21930
+-4.66740 -4.23940 -3.37160 -2.10050
+
+# -90.00
+-0.27400 -0.41780 -0.92340 -1.48470 -1.84370
+-1.42480 -1.14210 -1.83280 -2.97900 -3.57000
+-3.33310 -2.24200 -1.31350 -0.96640 0.38300
+-0.57540 -0.74080 -0.59130 -0.41960 -2.64120
+-3.25380 -2.85540 -2.09970 -0.95660
+
+# -75.00
+ 0.26880 0.18190 0.00300 -0.45390 -0.24210
+ 0.21240 0.33320 -0.95520 -2.17670 -2.66490
+-2.24910 -1.35480 -0.35030 1.84000 0.81880
+ 0.41530 0.58460 0.65350 0.54960 0.41300
+ 0.23350 -2.13490 -1.54900 -0.38340
+
+# -60.00
+-0.48820 -0.40730 -0.25210 -0.20490 0.53370
+ 1.05990 0.72540 -0.68300 -2.10190 -2.83530
+-2.55500 -1.33940 -0.24710 1.63190 1.10600
+ 1.16350 1.30720 1.49310 1.16160 0.99320
+-2.33360 -2.59380 -2.01110 -1.46840
+
+# -45.00
+-2.41010 -1.30740 -0.85960 -0.06830 0.20500
+ 0.00650 -0.59750 -2.39820 -3.98270 -4.46610
+-3.51230 -1.99330 0.96050 0.80870 0.64450
+ 0.82590 1.00550 1.28110 0.96670 -2.71140
+-4.18330 -4.83370 -4.49950 -3.47920
+
+# -30.00
+-3.46300 -2.06680 -0.84260 -0.70440 -1.85140
+-2.59990 -3.62600 -5.08050 -6.35480 -6.08340
+-4.78650 -1.24210 -0.81660 -0.60170 -0.50040
+-0.41020 -0.28450 -0.14620 -3.14950 -5.16280
+-6.81940 -7.52060 -7.12480 -5.49420
+
+# -15.00
+-2.70550 -1.11410 -0.82120 -3.80470 -4.50780
+-4.64960 -5.78530 -7.04450 -7.30810 -6.56450
+-3.47860 -2.68630 -1.78120 -1.48400 -1.45930
+-1.43060 -5.75320 -2.72500 -6.45790 -8.16530
+-9.86330 -9.80710 -8.62670 -6.49690
+
+# 0.00
+-2.73190 -3.83060 -5.26960 -5.91610 -6.71690
+-7.05420 -7.77520 -7.81220 -7.54160 -4.98400
+-5.05070 -4.28910 -3.78740 -3.64600 -3.91990
+-3.55740 -3.03470 -5.78910 -7.02720 -8.04090
+-8.60950 -8.27740 -7.10120 -5.12040
+
+# 15.00
+-3.17420 -4.66830 -6.17790 -7.26760 -8.22560
+-8.32120 -7.64880 -7.00240 -4.77210 -5.65380
+-5.36790 -4.43640 -4.37720 -4.45280 -4.47980
+-4.07260 -6.75420 -7.56910 -7.95830 -7.87760
+-7.88160 -7.29010 -7.15600 -5.19260
+
+# 30.00
+-2.96240 -4.87720 -6.64930 -7.95180 -8.47610
+-7.49950 -6.26260 -6.35040 -4.34190 -4.49790
+-4.27480 -1.75620 -3.89990 -3.81400 -3.99610
+-6.66430 -7.66400 -7.80660 -7.21980 -6.83750
+-6.88220 -7.10200 -5.10200 -2.38920
+
+# 45
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 60
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 75
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 90
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 105
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 120
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 135
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 150
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 165
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 2 adjacent prolines, type 4
+
+# -180.00
+-4.60660 -4.28920 -4.51420 -5.49210 -6.65460
+-7.18530 -7.63320 -8.41920 -9.12510 -8.97830
+-9.02750 -8.88890 -8.61060 -8.10240 -7.96680
+-7.98860 -7.96190 -7.56330 -7.73950 -8.31580
+-9.33380 -9.61880 -7.91860 -6.00570
+
+# -165.00
+-3.21030 -2.90350 -3.04340 -3.83720 -4.92360
+-5.41790 -5.78320 -6.62490 -7.17820 -7.59500
+-7.60980 -7.39440 -6.68190 -6.24950 -5.83810
+-5.90510 -5.57900 -4.89950 -5.18840 -6.13180
+-6.93510 -7.49160 -5.84410 -4.48890
+
+# -150.00
+-2.23750 -2.26520 -2.55120 -3.67610 -4.61620
+-5.01560 -5.36920 -5.93110 -6.16820 -6.48830
+-6.54220 -6.14310 -5.33350 -4.85090 -4.50790
+-4.44050 -4.34380 -4.13820 -4.35620 -5.24880
+-6.05280 -6.18610 -4.80390 -3.41730
+
+# -135.00
+-2.12830 -2.02010 -2.90220 -3.88240 -4.63610
+-5.02000 -5.46090 -5.79830 -5.63220 -6.41490
+-6.20330 -5.57550 -4.58160 -4.15850 -4.00710
+-3.95020 -3.76880 -4.09690 -4.52680 -5.33410
+-5.97380 -5.68710 -4.70040 -3.33790
+
+# -120.00
+-2.20610 -2.22370 -2.85110 -3.55370 -4.33320
+-4.57860 -4.95030 -5.23950 -5.37730 -6.14740
+-5.98660 -5.17760 -4.16090 -3.78450 -3.83210
+-3.86590 -4.21340 -4.26250 -4.16200 -4.62160
+-5.47440 -5.38280 -4.39100 -3.16760
+
+# -105.00
+-1.32980 -1.44660 -2.00420 -2.84440 -3.31580
+-3.15410 -2.83060 -3.04980 -4.04810 -5.02030
+-4.84090 -3.88520 -2.79540 -2.49190 -2.65990
+-3.34670 -3.60580 -3.76970 -4.07430 -4.21930
+-4.66740 -4.23940 -3.37160 -2.10050
+
+# -90.00
+-0.27400 -0.41780 -0.92340 -1.48470 -1.84370
+-1.42480 -1.14210 -1.83280 -2.97900 -3.57000
+-3.33310 -2.24200 -1.31350 -0.96640 0.38300
+-0.57540 -0.74080 -0.59130 -0.41960 -2.64120
+-3.25380 -2.85540 -2.09970 -0.95660
+
+# -75.00
+ 0.26880 0.18190 0.00300 -0.45390 -0.24210
+ 0.21240 0.33320 -0.95520 -2.17670 -2.66490
+-2.24910 -1.35480 -0.35030 1.84000 0.81880
+ 0.41530 0.58460 0.65350 0.54960 0.41300
+ 0.23350 -2.13490 -1.54900 -0.38340
+
+# -60.00
+-0.48820 -0.40730 -0.25210 -0.20490 0.53370
+ 1.05990 0.72540 -0.68300 -2.10190 -2.83530
+-2.55500 -1.33940 -0.24710 1.63190 1.10600
+ 1.16350 1.30720 1.49310 1.16160 0.99320
+-2.33360 -2.59380 -2.01110 -1.46840
+
+# -45.00
+-2.41010 -1.30740 -0.85960 -0.06830 0.20500
+ 0.00650 -0.59750 -2.39820 -3.98270 -4.46610
+-3.51230 -1.99330 0.96050 0.80870 0.64450
+ 0.82590 1.00550 1.28110 0.96670 -2.71140
+-4.18330 -4.83370 -4.49950 -3.47920
+
+# -30.00
+-3.46300 -2.06680 -0.84260 -0.70440 -1.85140
+-2.59990 -3.62600 -5.08050 -6.35480 -6.08340
+-4.78650 -1.24210 -0.81660 -0.60170 -0.50040
+-0.41020 -0.28450 -0.14620 -3.14950 -5.16280
+-6.81940 -7.52060 -7.12480 -5.49420
+
+# -15.00
+-2.70550 -1.11410 -0.82120 -3.80470 -4.50780
+-4.64960 -5.78530 -7.04450 -7.30810 -6.56450
+-3.47860 -2.68630 -1.78120 -1.48400 -1.45930
+-1.43060 -5.75320 -2.72500 -6.45790 -8.16530
+-9.86330 -9.80710 -8.62670 -6.49690
+
+# 0.00
+-2.73190 -3.83060 -5.26960 -5.91610 -6.71690
+-7.05420 -7.77520 -7.81220 -7.54160 -4.98400
+-5.05070 -4.28910 -3.78740 -3.64600 -3.91990
+-3.55740 -3.03470 -5.78910 -7.02720 -8.04090
+-8.60950 -8.27740 -7.10120 -5.12040
+
+# 15.00
+-3.17420 -4.66830 -6.17790 -7.26760 -8.22560
+-8.32120 -7.64880 -7.00240 -4.77210 -5.65380
+-5.36790 -4.43640 -4.37720 -4.45280 -4.47980
+-4.07260 -6.75420 -7.56910 -7.95830 -7.87760
+-7.88160 -7.29010 -7.15600 -5.19260
+
+# 30.00
+-2.96240 -4.87720 -6.64930 -7.95180 -8.47610
+-7.49950 -6.26260 -6.35040 -4.34190 -4.49790
+-4.27480 -1.75620 -3.89990 -3.81400 -3.99610
+-6.66430 -7.66400 -7.80660 -7.21980 -6.83750
+-6.88220 -7.10200 -5.10200 -2.38920
+
+# 45
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 60
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 75
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 90
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 105
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 120
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 135
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 150
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# 165
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000 0.000000
+0.000000 0.000000 0.000000 0.000000
+
+# glycine map, type 5
+
+# -180
+-0.549160 -0.535500 -0.588110 -0.754620 -0.679290
+-0.038150 0.298460 0.326040 -0.375610 -1.704360
+-3.061280 -3.956460 -3.576280 -1.038930 2.012450
+-1.714610 -0.377660 0.317310 0.294580 -0.042920
+-0.676620 -0.744600 -0.586590 -0.554770
+
+# -165
+-0.709450 -0.896700 -0.990850 -1.319240 -0.940260
+-0.126160 0.329180 0.258100 -0.534910 -1.715700
+-2.780320 -3.153350 -1.636020 1.822690 -2.675640
+-1.810120 -0.410680 0.180860 0.196710 -0.000430
+-0.271890 -0.462500 -0.348750 -0.477660
+
+# -150
+-1.224850 -1.482430 -1.665900 -1.656770 -1.119780
+-1.642540 -0.054220 -0.290670 -0.887080 -1.626260
+-2.165440 -1.546500 0.753400 -2.949180 -2.225630
+-1.664160 -0.628990 0.000490 0.033160 -0.092820
+-0.339050 -0.563330 -0.794980 -0.710760
+
+# -135
+-1.787640 -2.117750 -2.143020 -1.803720 -1.567160
+-0.886880 -0.801350 -0.851590 -1.020630 -1.337360
+-1.062570 0.338010 -4.372310 -2.435890 -2.220710
+-1.718060 -0.758950 -0.207560 0.100910 -0.055650
+-0.288370 -0.880610 -1.267450 -1.465530
+
+# -120
+-2.348270 -2.593790 -2.596140 -2.364070 -1.970070
+-1.705860 -1.435540 -1.289220 -1.358170 -0.975570
+-3.514390 -4.283210 -3.975820 -3.215190 -2.394430
+-1.455320 -0.553910 -0.158900 -0.173830 -0.297950
+-0.661220 -1.068330 -1.601800 -1.914850
+
+# -105
+-2.788800 -3.079570 -3.178150 -3.013710 -2.626630
+-2.266680 -1.951490 -1.681850 -1.195390 -2.567680
+-3.632800 -4.748210 -4.662850 -4.255190 -2.776760
+-1.695490 -0.893140 -0.633810 -0.467320 -0.540540
+-0.950190 -1.401500 -1.959970 -2.412680
+
+# -90
+-3.857170 -3.713610 -3.902110 -3.611370 -3.040850
+-2.406460 -1.975250 -1.452040 -0.971860 -2.808170
+-4.181160 -4.981430 -5.446890 -4.359900 -2.864390
+-1.898510 -1.139090 -0.971340 -1.065550 -1.020680
+-1.141350 -1.794480 -2.420970 -2.939990
+
+# -75
+-4.987770 -4.995210 -4.485310 -3.892550 -3.228630
+-2.345360 -1.664160 -1.105500 -1.945510 -3.715530
+-4.492140 -5.536170 -5.708500 -3.675410 -2.986660
+-1.859410 -0.756620 -1.269930 -1.312730 -1.607440
+-1.892510 -2.659400 -3.347950 -3.970600
+
+# -60
+-6.183650 -5.456080 -4.878940 -4.000820 -2.683230
+-2.067520 -1.094850 -1.119790 -2.962910 -3.687830
+-4.993340 -4.666260 -3.796280 -3.374140 -2.495430
+-1.453990 -0.877560 -1.002930 -1.337310 -2.431360
+-2.948140 -4.008100 -4.821040 -5.565810
+
+# -45
+-6.755760 -5.850030 -4.362190 -2.714090 -1.708710
+-0.526660 -0.536700 -2.037170 -3.892650 -4.558570
+-4.237410 -3.735160 -3.688580 -3.009910 -2.112940
+-1.455400 -0.925490 -1.121840 -1.561900 -2.751370
+-4.094860 -5.207530 -6.128530 -6.613030
+
+# -30
+-5.716250 -4.434060 -2.788600 -0.974400 -0.729200
+-0.904940 -1.833540 -3.017700 -3.313450 -3.336010
+-3.181640 -3.594720 -1.231370 -0.603790 0.128810
+-1.222610 -0.909150 -0.837700 -1.346820 -3.040880
+-4.731110 -5.844860 -6.428460 -6.424880
+
+# -15
+-3.991110 -2.046000 0.082550 -2.676110 -2.828500
+-2.596640 -2.843330 -3.011480 -2.312640 -2.405980
+-3.086210 -1.164620 -1.231660 -0.871900 -0.348980
+-1.735900 -0.914150 -0.484520 -1.818040 -3.602550
+-5.330320 -5.992270 -5.588080 -5.408360
+
+# 0
+-1.147060 -3.317730 -4.305100 -4.615200 -4.533780
+-3.622950 -2.832800 -1.872810 -1.144300 -1.994070
+-0.741980 -1.115010 -1.229250 -1.103680 -0.742430
+-1.973970 -1.070020 -1.802220 -2.712770 -3.624130
+-4.537100 -4.619970 -4.310890 -3.318290
+
+# 15
+-3.997710 -5.408360 -5.588080 -5.992270 -5.330320
+-3.602550 -1.818040 -0.484520 -0.914150 -1.735900
+-0.348980 -0.871900 -1.231660 -1.164620 -3.086210
+-2.405980 -2.312640 -3.011480 -2.843330 -2.596640
+-2.828500 -2.676110 0.082550 -2.046000
+
+# 30
+-5.710850 -6.424880 -6.428460 -5.844860 -4.731110
+-3.040880 -1.346820 -0.837700 -0.909150 -1.222610
+0.128810 -0.603790 -1.231370 -3.594720 -3.181640
+-3.336010 -3.313450 -3.017700 -1.833540 -0.904940
+-0.729200 -0.974400 -2.788600 -4.434060
+
+# 45
+-6.754940 -6.613030 -6.128530 -5.207530 -4.094860
+-2.751370 -1.561900 -1.121840 -0.925490 -1.455400
+-2.112940 -3.009910 -3.688580 -3.735160 -4.237410
+-4.558570 -3.892650 -2.037170 -0.536700 -0.526660
+-1.708710 -2.714090 -4.362190 -5.850030
+
+# 60
+-6.188070 -5.565810 -4.821040 -4.008100 -2.948140
+-2.431360 -1.337310 -1.002930 -0.877560 -1.453990
+-2.495430 -3.374140 -3.796280 -4.666260 -4.993340
+-3.687830 -2.962910 -1.119790 -1.094850 -2.067520
+-2.683230 -4.000820 -4.878940 -5.456080
+
+# 75
+-4.986080 -3.970600 -3.347950 -2.659400 -1.892510
+-1.607440 -1.312730 -1.269930 -0.756620 -1.859410
+-2.986660 -3.675410 -5.708500 -5.536170 -4.492140
+-3.715530 -1.945510 -1.105500 -1.664160 -2.345360
+-3.228630 -3.892550 -4.485310 -4.995210
+
+# 90
+-3.879190 -2.939990 -2.420970 -1.794480 -1.141350
+-1.020680 -1.065550 -0.971340 -1.139090 -1.898510
+-2.864390 -4.359900 -5.446890 -4.981430 -4.181160
+-2.808170 -0.971860 -1.452040 -1.975250 -2.406460
+-3.040850 -3.611370 -3.902110 -3.713610
+
+# 105
+-2.793280 -2.412680 -1.959970 -1.401500 -0.950190
+-0.540540 -0.467320 -0.633810 -0.893140 -1.695490
+-2.776760 -4.255190 -4.662850 -4.448210 -3.332800
+-2.567680 -1.195390 -1.681850 -1.951490 -2.266680
+-2.626630 -3.013710 -3.178150 -3.079570
+
+# 120
+-2.330190 -1.914850 -1.601800 -1.068330 -0.661220
+-0.297950 -0.173830 -0.158900 -0.553910 -1.455320
+-2.394430 -3.215190 -3.975820 -3.783210 -3.014390
+-0.975570 -1.358170 -1.289220 -1.435540 -1.705860
+-1.970070 -2.364070 -2.596140 -2.593790
+
+# 135
+-1.796120 -1.465530 -1.267450 -0.880610 -0.288370
+-0.055650 0.100910 -0.207560 -0.758950 -1.718060
+-2.220710 -2.435890 -4.372310 0.338010 -1.062570
+-1.337360 -1.020630 -0.851590 -0.801350 -0.886880
+-1.567160 -1.803720 -2.143020 -2.117750
+
+# 150
+-1.263610 -0.710760 -0.794980 -0.563330 -0.339050
+-0.092820 0.033160 0.000490 -0.628990 -1.664160
+-2.225630 -2.949180 0.753400 -1.546500 -2.165440
+-1.626260 -0.887080 -0.290670 -0.054220 -1.642540
+-1.119780 -1.656770 -1.665900 -1.482430
+
+# 165
+-0.684660 -0.477660 -0.348750 -0.462500 -0.271890
+-0.000430 0.196710 0.180860 -0.410680 -1.810120
+-2.675640 1.822690 -1.636020 -3.153350 -2.780320
+-1.715700 -0.534910 0.258100 0.329180 -0.126160
+-0.940260 -1.319240 -0.990850 -0.896700
+
+# glycine before proline map, type 6
+
+# -180
+-0.549160 -0.535500 -0.588110 -0.754620 -0.679290
+-0.038150 0.298460 0.326040 -0.375610 -1.704360
+-3.061280 -3.956460 -3.576280 -1.038930 2.012450
+-1.714610 -0.377660 0.317310 0.294580 -0.042920
+-0.676620 -0.744600 -0.586590 -0.554770
+
+# -165
+-0.709450 -0.896700 -0.990850 -1.319240 -0.940260
+-0.126160 0.329180 0.258100 -0.534910 -1.715700
+-2.780320 -3.153350 -1.636020 1.822690 -2.675640
+-1.810120 -0.410680 0.180860 0.196710 -0.000430
+-0.271890 -0.462500 -0.348750 -0.477660
+
+# -150
+-1.224850 -1.482430 -1.665900 -1.656770 -1.119780
+-1.642540 -0.054220 -0.290670 -0.887080 -1.626260
+-2.165440 -1.546500 0.753400 -2.949180 -2.225630
+-1.664160 -0.628990 0.000490 0.033160 -0.092820
+-0.339050 -0.563330 -0.794980 -0.710760
+
+# -135
+-1.787640 -2.117750 -2.143020 -1.803720 -1.567160
+-0.886880 -0.801350 -0.851590 -1.020630 -1.337360
+-1.062570 0.338010 -4.372310 -2.435890 -2.220710
+-1.718060 -0.758950 -0.207560 0.100910 -0.055650
+-0.288370 -0.880610 -1.267450 -1.465530
+
+# -120
+-2.348270 -2.593790 -2.596140 -2.364070 -1.970070
+-1.705860 -1.435540 -1.289220 -1.358170 -0.975570
+-3.514390 -4.283210 -3.975820 -3.215190 -2.394430
+-1.455320 -0.553910 -0.158900 -0.173830 -0.297950
+-0.661220 -1.068330 -1.601800 -1.914850
+
+# -105
+-2.788800 -3.079570 -3.178150 -3.013710 -2.626630
+-2.266680 -1.951490 -1.681850 -1.195390 -2.567680
+-3.632800 -4.748210 -4.662850 -4.255190 -2.776760
+-1.695490 -0.893140 -0.633810 -0.467320 -0.540540
+-0.950190 -1.401500 -1.959970 -2.412680
+
+# -90
+-3.857170 -3.713610 -3.902110 -3.611370 -3.040850
+-2.406460 -1.975250 -1.452040 -0.971860 -2.808170
+-4.181160 -4.981430 -5.446890 -4.359900 -2.864390
+-1.898510 -1.139090 -0.971340 -1.065550 -1.020680
+-1.141350 -1.794480 -2.420970 -2.939990
+
+# -75
+-4.987770 -4.995210 -4.485310 -3.892550 -3.228630
+-2.345360 -1.664160 -1.105500 -1.945510 -3.715530
+-4.492140 -5.536170 -5.708500 -3.675410 -2.986660
+-1.859410 -0.756620 -1.269930 -1.312730 -1.607440
+-1.892510 -2.659400 -3.347950 -3.970600
+
+# -60
+-6.183650 -5.456080 -4.878940 -4.000820 -2.683230
+-2.067520 -1.094850 -1.119790 -2.962910 -3.687830
+-4.993340 -4.666260 -3.796280 -3.374140 -2.495430
+-1.453990 -0.877560 -1.002930 -1.337310 -2.431360
+-2.948140 -4.008100 -4.821040 -5.565810
+
+# -45
+-6.755760 -5.850030 -4.362190 -2.714090 -1.708710
+-0.526660 -0.536700 -2.037170 -3.892650 -4.558570
+-4.237410 -3.735160 -3.688580 -3.009910 -2.112940
+-1.455400 -0.925490 -1.121840 -1.561900 -2.751370
+-4.094860 -5.207530 -6.128530 -6.613030
+
+# -30
+-5.716250 -4.434060 -2.788600 -0.974400 -0.729200
+-0.904940 -1.833540 -3.017700 -3.313450 -3.336010
+-3.181640 -3.594720 -1.231370 -0.603790 0.128810
+-1.222610 -0.909150 -0.837700 -1.346820 -3.040880
+-4.731110 -5.844860 -6.428460 -6.424880
+
+# -15
+-3.991110 -2.046000 0.082550 -2.676110 -2.828500
+-2.596640 -2.843330 -3.011480 -2.312640 -2.405980
+-3.086210 -1.164620 -1.231660 -0.871900 -0.348980
+-1.735900 -0.914150 -0.484520 -1.818040 -3.602550
+-5.330320 -5.992270 -5.588080 -5.408360
+
+# 0
+-1.147060 -3.317730 -4.305100 -4.615200 -4.533780
+-3.622950 -2.832800 -1.872810 -1.144300 -1.994070
+-0.741980 -1.115010 -1.229250 -1.103680 -0.742430
+-1.973970 -1.070020 -1.802220 -2.712770 -3.624130
+-4.537100 -4.619970 -4.310890 -3.318290
+
+# 15
+-3.997710 -5.408360 -5.588080 -5.992270 -5.330320
+-3.602550 -1.818040 -0.484520 -0.914150 -1.735900
+-0.348980 -0.871900 -1.231660 -1.164620 -3.086210
+-2.405980 -2.312640 -3.011480 -2.843330 -2.596640
+-2.828500 -2.676110 0.082550 -2.046000
+
+# 30
+-5.710850 -6.424880 -6.428460 -5.844860 -4.731110
+-3.040880 -1.346820 -0.837700 -0.909150 -1.222610
+0.128810 -0.603790 -1.231370 -3.594720 -3.181640
+-3.336010 -3.313450 -3.017700 -1.833540 -0.904940
+-0.729200 -0.974400 -2.788600 -4.434060
+
+# 45
+-6.754940 -6.613030 -6.128530 -5.207530 -4.094860
+-2.751370 -1.561900 -1.121840 -0.925490 -1.455400
+-2.112940 -3.009910 -3.688580 -3.735160 -4.237410
+-4.558570 -3.892650 -2.037170 -0.536700 -0.526660
+-1.708710 -2.714090 -4.362190 -5.850030
+
+# 60
+-6.188070 -5.565810 -4.821040 -4.008100 -2.948140
+-2.431360 -1.337310 -1.002930 -0.877560 -1.453990
+-2.495430 -3.374140 -3.796280 -4.666260 -4.993340
+-3.687830 -2.962910 -1.119790 -1.094850 -2.067520
+-2.683230 -4.000820 -4.878940 -5.456080
+
+# 75
+-4.986080 -3.970600 -3.347950 -2.659400 -1.892510
+-1.607440 -1.312730 -1.269930 -0.756620 -1.859410
+-2.986660 -3.675410 -5.708500 -5.536170 -4.492140
+-3.715530 -1.945510 -1.105500 -1.664160 -2.345360
+-3.228630 -3.892550 -4.485310 -4.995210
+
+# 90
+-3.879190 -2.939990 -2.420970 -1.794480 -1.141350
+-1.020680 -1.065550 -0.971340 -1.139090 -1.898510
+-2.864390 -4.359900 -5.446890 -4.981430 -4.181160
+-2.808170 -0.971860 -1.452040 -1.975250 -2.406460
+-3.040850 -3.611370 -3.902110 -3.713610
+
+# 105
+-2.793280 -2.412680 -1.959970 -1.401500 -0.950190
+-0.540540 -0.467320 -0.633810 -0.893140 -1.695490
+-2.776760 -4.255190 -4.662850 -4.448210 -3.332800
+-2.567680 -1.195390 -1.681850 -1.951490 -2.266680
+-2.626630 -3.013710 -3.178150 -3.079570
+
+# 120
+-2.330190 -1.914850 -1.601800 -1.068330 -0.661220
+-0.297950 -0.173830 -0.158900 -0.553910 -1.455320
+-2.394430 -3.215190 -3.975820 -3.783210 -3.014390
+-0.975570 -1.358170 -1.289220 -1.435540 -1.705860
+-1.970070 -2.364070 -2.596140 -2.593790
+
+# 135
+-1.796120 -1.465530 -1.267450 -0.880610 -0.288370
+-0.055650 0.100910 -0.207560 -0.758950 -1.718060
+-2.220710 -2.435890 -4.372310 0.338010 -1.062570
+-1.337360 -1.020630 -0.851590 -0.801350 -0.886880
+-1.567160 -1.803720 -2.143020 -2.117750
+
+# 150
+-1.263610 -0.710760 -0.794980 -0.563330 -0.339050
+-0.092820 0.033160 0.000490 -0.628990 -1.664160
+-2.225630 -2.949180 0.753400 -1.546500 -2.165440
+-1.626260 -0.887080 -0.290670 -0.054220 -1.642540
+-1.119780 -1.656770 -1.665900 -1.482430
+
+# 165
+-0.684660 -0.477660 -0.348750 -0.462500 -0.271890
+-0.000430 0.196710 0.180860 -0.410680 -1.810120
+-2.675640 1.822690 -1.636020 -3.153350 -2.780320
+-1.715700 -0.534910 0.258100 0.329180 -0.126160
+-0.940260 -1.319240 -0.990850 -0.896700
+
diff --git a/examples/cmap/gagg.data b/examples/cmap/gagg.data
new file mode 100644
index 0000000000..fd2aa193c4
--- /dev/null
+++ b/examples/cmap/gagg.data
@@ -0,0 +1,380 @@
+Created by charmm2lammps v1.8.2.6 beta on Sun Mar 20 00:26:35 EDT 2016
+
+ 34 atoms
+ 33 bonds
+ 57 angles
+ 75 dihedrals
+ 7 impropers
+ 2 crossterms
+
+ 13 atom types
+ 15 bond types
+ 30 angle types
+ 42 dihedral types
+ 5 improper types
+
+ -34.414709 45.585291 xlo xhi
+ -36.134827 43.865173 ylo yhi
+ -39.349142 40.650858 zlo zhi
+
+Masses
+
+ 1 1.008 # H
+ 2 1.008 # HC
+ 3 1.008 # HA
+ 4 1.008 # HB
+ 5 12.011 # C
+ 6 12.011 # CT1
+ 7 12.011 # CT2
+ 8 12.011 # CT3
+ 9 12.011 # CC
+ 10 14.007 # NH1
+ 11 14.007 # NH3
+ 12 15.999 # O
+ 13 15.999 # OC
+
+Pair Coeffs
+
+ 1 0.046 0.400013524445 0.046 0.400013524445 # H
+ 2 0.046 0.400013524445 0.046 0.400013524445 # HC
+ 3 0.022 2.35197261589 0.022 2.35197261589 # HA
+ 4 0.022 2.35197261589 0.022 2.35197261589 # HB
+ 5 0.11 3.56359487256 0.11 3.56359487256 # C
+ 6 0.02 4.05358916754 0.01 3.38541512893 # CT1
+ 7 0.055 3.87540942391 0.01 3.38541512893 # CT2
+ 8 0.08 3.67050271874 0.01 3.38541512893 # CT3
+ 9 0.07 3.56359487256 0.07 3.56359487256 # CC
+ 10 0.2 3.29632525712 0.2 2.76178602624 # NH1
+ 11 0.2 3.29632525712 0.2 3.29632525712 # NH3
+ 12 0.12 3.02905564168 0.12 2.49451641079 # O
+ 13 0.12 3.02905564168 0.12 3.02905564168 # OC
+
+Atoms
+
+ 1 1 11 -0.3 0.0088076654 -0.0395361015 -0.0125765907 # NH3
+ 2 1 2 0.33 -0.3781208354 -1.0038773849 -0.01724272 # HC
+ 3 1 2 0.33 -0.3448285543 0.4901827566 -0.8403800387 # HC
+ 4 1 2 0.33 -0.3306420078 0.4732826156 0.8294424358 # HC
+ 5 1 7 0.13 1.526230489 -0.0164860529 -0.0402820599 # CT2
+ 6 1 4 0.09 1.8596639218 -0.5263587482 -0.9333647137 # HB
+ 7 1 4 0.09 1.8904342902 -0.4510777655 0.8809945249 # HB
+ 8 1 5 0.51 2.0135471936 1.4020233344 -0.1137107587 # C
+ 9 1 12 -0.51 1.1818164992 2.2781068718 -0.313197467 # O
+ 10 2 10 -0.47 3.3194424268 1.666672014 0.0713249543 # NH1
+ 11 2 1 0.31 4.0409429153 0.9783582555 0.1693897169 # H
+ 12 2 6 0.07 3.8529467728 3.0161771739 0.0690818527 # CT1
+ 13 2 4 0.09 3.5315723829 3.5134434764 -0.8378950509 # HB
+ 14 2 8 -0.27 3.3981217437 3.8178727883 1.3071600161 # CT3
+ 15 2 3 0.09 2.2921877645 3.9163330652 1.3111957959 # HA
+ 16 2 3 0.09 3.7142964083 3.3104118688 2.2424399743 # HA
+ 17 2 3 0.09 3.8238672849 4.8446179852 1.2978564897 # HA
+ 18 2 5 0.51 5.3731873136 2.946062408 0.0042414688 # C
+ 19 2 12 -0.51 5.9268816775 1.8488403755 0.0011766847 # O
+ 20 3 10 -0.47 6.0445386951 4.1111769168 -0.0636349698 # NH1
+ 21 3 1 0.31 5.5768514013 4.9972489389 -0.0653583036 # H
+ 22 3 7 -0.02 7.4911642129 4.2772062416 -0.0346088891 # CT2
+ 23 3 4 0.09 7.9218377956 3.8786283786 -0.9407244447 # HB
+ 24 3 4 0.09 7.8877470687 3.8607990619 0.8803359097 # HB
+ 25 3 5 0.51 7.7351287723 5.7597169026 -0.0088736611 # C
+ 26 3 12 -0.51 6.7657462979 6.5189223559 0.005150418 # O
+ 27 4 10 -0.47 9.0014031015 6.1940849758 -0.0045995102 # NH1
+ 28 4 1 0.31 9.8272711181 5.6225413025 -0.008448093 # H
+ 29 4 7 -0.02 9.4067557288 7.5845263022 0.0016383819 # CT2
+ 30 4 4 0.09 9.0736276253 8.0578903151 0.9119901724 # HB
+ 31 4 4 0.09 9.0736165596 8.064051906 -0.9055419386 # HB
+ 32 4 9 0.34 10.9382207556 7.612479283 0.0008762597 # CC
+ 33 4 13 -0.67 11.5487033003 6.5062943609 -0.0007524693 # OC
+ 34 4 13 -0.67 11.5055524841 8.734223435 0.0013684148 # OC
+
+Bond Coeffs
+
+ 1 250 1.49 # C CT1
+ 2 250 1.49 # C CT2
+ 3 370 1.345 # C NH1
+ 4 620 1.23 # C O
+ 5 200 1.522 # CC CT2
+ 6 525 1.26 # CC OC
+ 7 222.5 1.538 # CT1 CT3
+ 8 330 1.08 # CT1 HB
+ 9 320 1.43 # CT1 NH1
+ 10 330 1.08 # CT2 HB
+ 11 320 1.43 # CT2 NH1
+ 12 200 1.48 # CT2 NH3
+ 13 322 1.111 # CT3 HA
+ 14 440 0.997 # H NH1
+ 15 403 1.04 # HC NH3
+
+Bonds
+
+ 1 15 2 1 # HC NH3
+ 2 15 3 1 # HC NH3
+ 3 15 4 1 # HC NH3
+ 4 12 1 5 # CT2 NH3
+ 5 2 8 5 # C CT2
+ 6 3 8 10 # C NH1
+ 7 10 5 6 # CT2 HB
+ 8 10 5 7 # CT2 HB
+ 9 4 9 8 # C O
+ 10 7 14 12 # CT1 CT3
+ 11 14 10 11 # H NH1
+ 12 9 10 12 # CT1 NH1
+ 13 1 18 12 # C CT1
+ 14 3 18 20 # C NH1
+ 15 8 12 13 # CT1 HB
+ 16 13 14 15 # CT3 HA
+ 17 13 14 16 # CT3 HA
+ 18 13 14 17 # CT3 HA
+ 19 4 19 18 # C O
+ 20 14 20 21 # H NH1
+ 21 11 20 22 # CT2 NH1
+ 22 2 25 22 # C CT2
+ 23 3 25 27 # C NH1
+ 24 10 22 23 # CT2 HB
+ 25 10 22 24 # CT2 HB
+ 26 4 26 25 # C O
+ 27 14 27 28 # H NH1
+ 28 11 27 29 # CT2 NH1
+ 29 5 32 29 # CC CT2
+ 30 10 29 30 # CT2 HB
+ 31 10 29 31 # CT2 HB
+ 32 6 32 34 # CC OC
+ 33 6 32 33 # CC OC
+
+Angle Coeffs
+
+ 1 52 108 0 0 # C CT1 CT3
+ 2 50 109.5 0 0 # C CT1 HB
+ 3 50 107 0 0 # C CT1 NH1
+ 4 50 109.5 0 0 # C CT2 HB
+ 5 50 107 0 0 # C CT2 NH1
+ 6 43.7 110 0 0 # C CT2 NH3
+ 7 50 120 0 0 # C NH1 CT1
+ 8 50 120 0 0 # C NH1 CT2
+ 9 34 123 0 0 # C NH1 H
+ 10 50 109.5 0 0 # CC CT2 HB
+ 11 50 107 0 0 # CC CT2 NH1
+ 12 80 116.5 0 0 # CT1 C NH1
+ 13 80 121 0 0 # CT1 C O
+ 14 33.43 110.1 22.53 2.179 # CT1 CT3 HA
+ 15 35 117 0 0 # CT1 NH1 H
+ 16 80 116.5 0 0 # CT2 C NH1
+ 17 80 121 0 0 # CT2 C O
+ 18 40 118 50 2.388 # CT2 CC OC
+ 19 35 117 0 0 # CT2 NH1 H
+ 20 30 109.5 20 2.074 # CT2 NH3 HC
+ 21 35 111 0 0 # CT3 CT1 HB
+ 22 70 113.5 0 0 # CT3 CT1 NH1
+ 23 35.5 108.4 5.4 1.802 # HA CT3 HA
+ 24 48 108 0 0 # HB CT1 NH1
+ 25 36 115 0 0 # HB CT2 HB
+ 26 48 108 0 0 # HB CT2 NH1
+ 27 51.5 107.5 0 0 # HB CT2 NH3
+ 28 44 109.5 0 0 # HC NH3 HC
+ 29 80 122.5 0 0 # NH1 C O
+ 30 100 124 70 2.225 # OC CC OC
+
+Angles
+
+ 1 28 2 1 3 # HC NH3 HC
+ 2 28 2 1 4 # HC NH3 HC
+ 3 20 2 1 5 # CT2 NH3 HC
+ 4 28 3 1 4 # HC NH3 HC
+ 5 20 3 1 5 # CT2 NH3 HC
+ 6 20 4 1 5 # CT2 NH3 HC
+ 7 27 1 5 6 # HB CT2 NH3
+ 8 27 1 5 7 # HB CT2 NH3
+ 9 6 1 5 8 # C CT2 NH3
+ 10 25 6 5 7 # HB CT2 HB
+ 11 4 6 5 8 # C CT2 HB
+ 12 4 7 5 8 # C CT2 HB
+ 13 17 5 8 9 # CT2 C O
+ 14 16 5 8 10 # CT2 C NH1
+ 15 29 9 8 10 # NH1 C O
+ 16 9 8 10 11 # C NH1 H
+ 17 7 8 10 12 # C NH1 CT1
+ 18 15 11 10 12 # CT1 NH1 H
+ 19 24 10 12 13 # HB CT1 NH1
+ 20 22 10 12 14 # CT3 CT1 NH1
+ 21 3 10 12 18 # C CT1 NH1
+ 22 21 13 12 14 # CT3 CT1 HB
+ 23 2 13 12 18 # C CT1 HB
+ 24 1 14 12 18 # C CT1 CT3
+ 25 14 12 14 15 # CT1 CT3 HA
+ 26 14 12 14 16 # CT1 CT3 HA
+ 27 14 12 14 17 # CT1 CT3 HA
+ 28 23 15 14 16 # HA CT3 HA
+ 29 23 15 14 17 # HA CT3 HA
+ 30 23 16 14 17 # HA CT3 HA
+ 31 13 12 18 19 # CT1 C O
+ 32 12 12 18 20 # CT1 C NH1
+ 33 29 19 18 20 # NH1 C O
+ 34 9 18 20 21 # C NH1 H
+ 35 8 18 20 22 # C NH1 CT2
+ 36 19 21 20 22 # CT2 NH1 H
+ 37 26 20 22 23 # HB CT2 NH1
+ 38 26 20 22 24 # HB CT2 NH1
+ 39 5 20 22 25 # C CT2 NH1
+ 40 25 23 22 24 # HB CT2 HB
+ 41 4 23 22 25 # C CT2 HB
+ 42 4 24 22 25 # C CT2 HB
+ 43 17 22 25 26 # CT2 C O
+ 44 16 22 25 27 # CT2 C NH1
+ 45 29 26 25 27 # NH1 C O
+ 46 9 25 27 28 # C NH1 H
+ 47 8 25 27 29 # C NH1 CT2
+ 48 19 28 27 29 # CT2 NH1 H
+ 49 26 27 29 30 # HB CT2 NH1
+ 50 26 27 29 31 # HB CT2 NH1
+ 51 11 27 29 32 # CC CT2 NH1
+ 52 25 30 29 31 # HB CT2 HB
+ 53 10 30 29 32 # CC CT2 HB
+ 54 10 31 29 32 # CC CT2 HB
+ 55 18 29 32 33 # CT2 CC OC
+ 56 18 29 32 34 # CT2 CC OC
+ 57 30 33 32 34 # OC CC OC
+
+Dihedral Coeffs
+
+ 1 0.2 3 0 1 # C CT1 CT3 HA
+ 2 0.2 1 180 1 # C CT1 NH1 C
+ 3 0 1 0 1 # C CT1 NH1 H
+ 4 0.2 1 180 1 # C CT2 NH1 C
+ 5 0 1 0 1 # C CT2 NH1 H
+ 6 0.1 3 0 1 # C CT2 NH3 HC
+ 7 1.8 1 0 1 # C NH1 CT1 CT3
+ 8 0 1 0 1 # C NH1 CT1 HB
+ 9 0.2 1 180 1 # C NH1 CT2 CC
+ 10 0 1 0 1 # C NH1 CT2 HB
+ 11 0 1 0 1 # CC CT2 NH1 H
+ 12 1.6 1 0 1 # CT1 C NH1 CT2
+ 13 2.5 2 180 0 # CT1 C NH1 CT2
+ 14 2.5 2 180 1 # CT1 C NH1 H
+ 15 1.6 1 0 1 # CT1 NH1 C CT2
+ 16 2.5 2 180 0 # CT1 NH1 C CT2
+ 17 2.5 2 180 1 # CT1 NH1 C O
+ 18 1.6 1 0 1 # CT2 C NH1 CT2
+ 19 2.5 2 180 0 # CT2 C NH1 CT2
+ 20 2.5 2 180 1 # CT2 C NH1 H
+ 21 2.5 2 180 1 # CT2 NH1 C O
+ 22 0 1 0 1 # CT3 CT1 C NH1
+ 23 1.4 1 0 1 # CT3 CT1 C O
+ 24 0 1 0 1 # CT3 CT1 NH1 H
+ 25 2.5 2 180 1 # H NH1 C O
+ 26 0 1 0 1 # H NH1 CT1 HB
+ 27 0 1 0 1 # H NH1 CT2 HB
+ 28 0.2 3 0 1 # HA CT3 CT1 HB
+ 29 0.2 3 0 1 # HA CT3 CT1 NH1
+ 30 0 1 0 1 # HB CT1 C NH1
+ 31 0 1 0 1 # HB CT1 C O
+ 32 0 1 0 1 # HB CT2 C NH1
+ 33 0 1 0 1 # HB CT2 C O
+ 34 0.05 6 180 1 # HB CT2 CC OC
+ 35 0.1 3 0 1 # HB CT2 NH3 HC
+ 36 0.6 1 0 1 # NH1 C CT1 NH1
+ 37 0.6 1 0 1 # NH1 C CT2 NH1
+ 38 0.4 1 0 1 # NH1 C CT2 NH3
+ 39 0 1 0 1 # NH1 CT1 C O
+ 40 0 1 0 1 # NH1 CT2 C O
+ 41 0.05 6 180 1 # NH1 CT2 CC OC
+ 42 0 1 0 1 # NH3 CT2 C O
+
+Dihedrals
+
+ 1 42 1 5 8 9 # NH3 CT2 C O
+ 2 38 1 5 8 10 # NH1 C CT2 NH3
+ 3 35 2 1 5 6 # HB CT2 NH3 HC
+ 4 35 2 1 5 7 # HB CT2 NH3 HC
+ 5 6 2 1 5 8 # C CT2 NH3 HC
+ 6 35 3 1 5 6 # HB CT2 NH3 HC
+ 7 35 3 1 5 7 # HB CT2 NH3 HC
+ 8 6 3 1 5 8 # C CT2 NH3 HC
+ 9 35 4 1 5 6 # HB CT2 NH3 HC
+ 10 35 4 1 5 7 # HB CT2 NH3 HC
+ 11 6 4 1 5 8 # C CT2 NH3 HC
+ 12 20 5 8 10 11 # CT2 C NH1 H
+ 13 15 5 8 10 12 # CT1 NH1 C CT2
+ 14 16 5 8 10 12 # CT1 NH1 C CT2
+ 15 33 6 5 8 9 # HB CT2 C O
+ 16 32 6 5 8 10 # HB CT2 C NH1
+ 17 33 7 5 8 9 # HB CT2 C O
+ 18 32 7 5 8 10 # HB CT2 C NH1
+ 19 8 8 10 12 13 # C NH1 CT1 HB
+ 20 7 8 10 12 14 # C NH1 CT1 CT3
+ 21 2 8 10 12 18 # C CT1 NH1 C
+ 22 25 9 8 10 11 # H NH1 C O
+ 23 17 9 8 10 12 # CT1 NH1 C O
+ 24 29 10 12 14 15 # HA CT3 CT1 NH1
+ 25 29 10 12 14 16 # HA CT3 CT1 NH1
+ 26 29 10 12 14 17 # HA CT3 CT1 NH1
+ 27 39 10 12 18 19 # NH1 CT1 C O
+ 28 36 10 12 18 20 # NH1 C CT1 NH1
+ 29 26 11 10 12 13 # H NH1 CT1 HB
+ 30 24 11 10 12 14 # CT3 CT1 NH1 H
+ 31 3 11 10 12 18 # C CT1 NH1 H
+ 32 14 12 18 20 21 # CT1 C NH1 H
+ 33 12 12 18 20 22 # CT1 C NH1 CT2
+ 34 13 12 18 20 22 # CT1 C NH1 CT2
+ 35 28 13 12 14 15 # HA CT3 CT1 HB
+ 36 28 13 12 14 16 # HA CT3 CT1 HB
+ 37 28 13 12 14 17 # HA CT3 CT1 HB
+ 38 31 13 12 18 19 # HB CT1 C O
+ 39 30 13 12 18 20 # HB CT1 C NH1
+ 40 23 14 12 18 19 # CT3 CT1 C O
+ 41 22 14 12 18 20 # CT3 CT1 C NH1
+ 42 1 15 14 12 18 # C CT1 CT3 HA
+ 43 1 16 14 12 18 # C CT1 CT3 HA
+ 44 1 17 14 12 18 # C CT1 CT3 HA
+ 45 10 18 20 22 23 # C NH1 CT2 HB
+ 46 10 18 20 22 24 # C NH1 CT2 HB
+ 47 4 18 20 22 25 # C CT2 NH1 C
+ 48 25 19 18 20 21 # H NH1 C O
+ 49 21 19 18 20 22 # CT2 NH1 C O
+ 50 40 20 22 25 26 # NH1 CT2 C O
+ 51 37 20 22 25 27 # NH1 C CT2 NH1
+ 52 27 21 20 22 23 # H NH1 CT2 HB
+ 53 27 21 20 22 24 # H NH1 CT2 HB
+ 54 5 21 20 22 25 # C CT2 NH1 H
+ 55 20 22 25 27 28 # CT2 C NH1 H
+ 56 18 22 25 27 29 # CT2 C NH1 CT2
+ 57 19 22 25 27 29 # CT2 C NH1 CT2
+ 58 33 23 22 25 26 # HB CT2 C O
+ 59 32 23 22 25 27 # HB CT2 C NH1
+ 60 33 24 22 25 26 # HB CT2 C O
+ 61 32 24 22 25 27 # HB CT2 C NH1
+ 62 10 25 27 29 30 # C NH1 CT2 HB
+ 63 10 25 27 29 31 # C NH1 CT2 HB
+ 64 9 25 27 29 32 # C NH1 CT2 CC
+ 65 25 26 25 27 28 # H NH1 C O
+ 66 21 26 25 27 29 # CT2 NH1 C O
+ 67 41 27 29 32 33 # NH1 CT2 CC OC
+ 68 41 27 29 32 34 # NH1 CT2 CC OC
+ 69 27 28 27 29 30 # H NH1 CT2 HB
+ 70 27 28 27 29 31 # H NH1 CT2 HB
+ 71 11 28 27 29 32 # CC CT2 NH1 H
+ 72 34 30 29 32 33 # HB CT2 CC OC
+ 73 34 30 29 32 34 # HB CT2 CC OC
+ 74 34 31 29 32 33 # HB CT2 CC OC
+ 75 34 31 29 32 34 # HB CT2 CC OC
+
+Improper Coeffs
+
+ 1 120 0 # C CT1 NH1 O
+ 2 120 0 # C CT2 NH1 O
+ 3 96 0 # CC CT2 OC OC
+ 4 20 0 # H CT1 C NH1
+ 5 20 0 # H CT2 C NH1
+
+Impropers
+
+ 1 2 8 5 10 9 # C CT2 NH1 O
+ 2 4 10 8 12 11 # H CT1 C NH1
+ 3 1 18 12 20 19 # C CT1 NH1 O
+ 4 5 20 18 22 21 # H CT2 C NH1
+ 5 2 25 22 27 26 # C CT2 NH1 O
+ 6 5 27 25 29 28 # H CT2 C NH1
+ 7 3 32 29 34 33 # CC CT2 OC OC
+
+CMAP
+
+ 1 1 8 10 12 18 20
+ 2 5 18 20 22 25 27
diff --git a/examples/cmap/in.cmap b/examples/cmap/in.cmap
new file mode 100644
index 0000000000..d2b2714b82
--- /dev/null
+++ b/examples/cmap/in.cmap
@@ -0,0 +1,36 @@
+# Created by charmm2lammps v1.8.2.6 beta on Thu Mar 3 20:56:57 EST 2016
+
+units real
+neigh_modify delay 2 every 1
+#newton off
+
+boundary p p p
+
+atom_style full
+bond_style harmonic
+angle_style charmm
+dihedral_style charmm
+improper_style harmonic
+
+pair_style lj/charmm/coul/charmm 8 12
+#pair_style lj/charmmfsw/coul/charmmfsh 8 12
+pair_modify mix arithmetic
+
+fix cmap all cmap charmm22.cmap
+fix_modify cmap energy yes
+
+read_data gagg.data fix cmap crossterm CMAP
+
+special_bonds charmm
+fix 1 all nve
+
+#fix 1 all nvt temp 300 300 100.0
+#fix 2 all shake 1e-9 500 0 m 1.0
+
+velocity all create 0.0 12345678 dist uniform
+
+thermo 1000
+thermo_style custom step ecoul evdwl ebond eangle edihed f_cmap eimp
+timestep 2.0
+
+run 100000
diff --git a/examples/cmap/log.23Sep16.cmap.g++.1 b/examples/cmap/log.23Sep16.cmap.g++.1
new file mode 100644
index 0000000000..fe6caed913
--- /dev/null
+++ b/examples/cmap/log.23Sep16.cmap.g++.1
@@ -0,0 +1,200 @@
+LAMMPS (21 Sep 2016)
+# Created by charmm2lammps v1.8.2.6 beta on Thu Mar 3 20:56:57 EST 2016
+
+units real
+neigh_modify delay 2 every 1
+#newton off
+
+boundary p p p
+
+atom_style full
+bond_style harmonic
+angle_style charmm
+dihedral_style charmm
+improper_style harmonic
+
+pair_style lj/charmm/coul/charmm 8 12
+#pair_style lj/charmmfsw/coul/charmmfsh 8 12
+pair_modify mix arithmetic
+
+fix cmap all cmap charmm22.cmap
+fix_modify cmap energy yes
+
+read_data gagg.data fix cmap crossterm CMAP
+ orthogonal box = (-34.4147 -36.1348 -39.3491) to (45.5853 43.8652 40.6509)
+ 1 by 1 by 1 MPI processor grid
+ reading atoms ...
+ 34 atoms
+ scanning bonds ...
+ 4 = max bonds/atom
+ scanning angles ...
+ 6 = max angles/atom
+ scanning dihedrals ...
+ 12 = max dihedrals/atom
+ scanning impropers ...
+ 1 = max impropers/atom
+ reading bonds ...
+ 33 bonds
+ reading angles ...
+ 57 angles
+ reading dihedrals ...
+ 75 dihedrals
+ reading impropers ...
+ 7 impropers
+ 4 = max # of 1-2 neighbors
+ 7 = max # of 1-3 neighbors
+ 13 = max # of 1-4 neighbors
+ 16 = max # of special neighbors
+
+special_bonds charmm
+fix 1 all nve
+
+#fix 1 all nvt temp 300 300 100.0
+#fix 2 all shake 1e-9 500 0 m 1.0
+
+velocity all create 0.0 12345678 dist uniform
+
+thermo 1000
+thermo_style custom step ecoul evdwl ebond eangle edihed f_cmap eimp
+timestep 2.0
+
+run 100000
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 1 steps, delay 2 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 14
+ ghost atom cutoff = 14
+ binsize = 7 -> bins = 12 12 12
+Memory usage per processor = 14.6355 Mbytes
+Step E_coul E_vdwl E_bond E_angle E_dihed f_cmap E_impro
+ 0 26.542777 -0.93822087 1.2470497 4.8441789 4.5432816 -1.473352 0.10453023
+ 1000 28.673005 -0.47724367 0.80029132 3.151679 4.4684446 -2.3928648 0.18604953
+ 2000 27.67955 -1.170342 0.72018905 4.0400131 4.4713764 -2.5490207 0.21834436
+ 3000 29.256656 -0.35856055 0.73303546 3.7411606 4.4710568 -2.8939692 0.37728884
+ 4000 30.097549 -1.1353905 0.79007053 3.0688444 4.4091469 -2.3383587 0.20743631
+ 5000 28.357525 -1.0723742 0.9180297 3.6579424 4.8792664 -2.3185572 0.088366962
+ 6000 29.214175 -0.95299225 0.81926009 3.6805429 4.6742897 -2.9343577 0.26697813
+ 7000 27.018614 -0.52423475 0.72502764 3.8840137 4.7780956 -2.3916009 0.24952584
+ 8000 29.682167 -1.0939711 0.76111486 3.1090116 4.9359719 -2.5662984 0.1411154
+ 9000 27.909695 -0.80905986 0.78952533 4.203187 4.1301204 -2.000402 0.088859259
+ 10000 27.480298 -0.86273377 1.1293962 4.3857421 4.899282 -3.3895621 0.12126215
+ 11000 28.303203 -1.0221152 0.62762348 4.055414 4.5863024 -2.5842816 0.17996907
+ 12000 28.311127 -0.94227367 0.91859012 3.6673926 4.7018632 -3.902715 0.30065704
+ 13000 30.818607 -1.5220116 0.95710386 3.3364371 4.543427 -3.0423067 0.16712905
+ 14000 27.643736 -1.0144117 0.95806952 4.1046912 4.800236 -4.0534389 0.29293405
+ 15000 27.660491 -1.0390086 0.78061056 4.1139174 4.7197202 -2.3670379 0.22126985
+ 16000 27.845157 -0.63654502 0.78007478 3.9365994 4.949418 -3.1470214 0.22335355
+ 17000 28.44772 -1.0255112 0.70402007 4.0573343 4.2887527 -2.2099596 0.048050962
+ 18000 27.128323 -0.96218536 1.1327159 4.3222585 4.326607 -2.2881766 0.13491257
+ 19000 27.337633 -0.78999574 0.80152298 4.2239689 4.7073478 -2.2924164 0.12710292
+ 20000 27.780537 -0.46458072 0.79707671 3.7232618 4.943417 -2.5290628 0.26191223
+ 21000 26.435484 -0.7803224 1.0753217 4.4196051 5.9945933 -2.3340925 0.16448475
+ 22000 28.619429 -1.1623149 0.9401731 3.8508844 5.1636737 -2.5551846 0.25318434
+ 23000 28.399338 -0.79700962 0.85575503 4.488526 4.5975422 -2.5663549 0.13601693
+ 24000 29.645532 -1.158744 0.83180313 3.8193399 4.60319 -2.6847864 0.24260466
+ 25000 28.695339 -1.4802204 0.76583757 3.6786272 4.8959496 -2.3627896 0.080867326
+ 26000 28.149711 -1.029689 0.79383806 3.7885067 4.3345813 -2.1041553 0.14598209
+ 27000 29.580373 -1.0525813 1.0262723 3.7767318 4.6119758 -2.2802386 0.088556038
+ 28000 28.44308 -0.93411225 0.8794395 3.948079 4.780246 -2.1814583 0.14340149
+ 29000 29.335621 -1.6087988 0.71803091 3.7819186 4.6688385 -2.4282242 0.16061111
+ 30000 28.706138 -1.3938241 0.67713818 4.031275 4.4756505 -2.1807056 0.11461356
+ 31000 27.451944 0.010297225 0.65064883 3.6402029 4.3607811 -2.5511516 0.12637237
+ 32000 27.070878 -1.103158 1.1932199 5.1329709 4.5201653 -2.2224479 0.11215427
+ 33000 29.889976 -1.6228316 0.69407996 3.5361991 4.3502767 -1.9847454 0.09089949
+ 34000 28.223151 -0.927208 1.043253 3.4650939 5.1028142 -2.8127219 0.10648823
+ 35000 27.985986 -0.48153861 0.63878449 3.3724641 4.9551679 -2.6565919 0.12123115
+ 36000 28.580688 -1.4500694 1.055762 4.0490064 4.423782 -2.3103578 0.072747638
+ 37000 29.192947 -0.49678176 1.1146731 2.9233947 4.5738603 -2.4376144 0.22874047
+ 38000 26.954594 -0.53812359 0.79230685 4.3356989 5.0284656 -2.3791255 0.0486081
+ 39000 27.567555 -0.57870028 0.73614374 4.191991 4.9209556 -2.6122044 0.08635571
+ 40000 28.494172 -0.79057135 0.79072816 4.1893209 4.4826919 -2.4179635 0.14612898
+ 41000 28.44904 -1.1002948 0.93405654 4.3586358 4.4338415 -2.2950944 0.15705834
+ 42000 28.95725 -1.0297067 1.1632348 4.274711 4.9979487 -2.7611464 0.15944725
+ 43000 28.640394 -0.70938882 0.68100893 3.1844315 5.1817454 -2.2837487 0.14189233
+ 44000 27.997558 -1.0115099 0.59125208 4.0883422 4.6033907 -2.2775964 0.094273258
+ 45000 27.67163 -0.67992747 1.1225552 3.9020703 4.8171056 -2.1952679 0.041418433
+ 46000 28.822607 -0.6687953 0.74160059 3.3193715 4.5546965 -2.3024572 0.047569065
+ 47000 29.20147 -1.4456785 0.79223353 3.8288813 4.5811826 -2.5154936 0.061230141
+ 48000 27.843026 -1.0222301 0.87322137 4.3432743 4.4266307 -2.1414153 0.06802794
+ 49000 28.199573 -1.1887794 1.2781088 4.0779644 4.5881353 -2.319775 0.094803547
+ 50000 28.759212 -1.354416 0.68534569 3.8394841 4.2308134 -2.1281844 0.1395951
+ 51000 27.876455 -1.5705462 0.76557156 4.5335223 4.523708 -2.203702 0.14679803
+ 52000 27.930587 -1.2277489 0.96071516 3.960953 5.1152188 -2.4101451 0.060949521
+ 53000 27.031236 -1.4746477 1.2341141 5.0540975 4.3656865 -2.1288513 0.092725656
+ 54000 28.809394 -1.1162427 0.94350207 3.4013958 4.4755547 -2.3342811 0.18855912
+ 55000 28.948415 -1.1560418 0.6260139 3.5386373 4.5244978 -2.340212 0.17474657
+ 56000 28.048368 -0.95784532 0.76432571 4.1404665 4.4570033 -2.0899628 0.045693628
+ 57000 28.707642 -1.366574 0.9907873 3.729903 4.3131997 -2.2777698 0.065420213
+ 58000 26.361663 -1.0424403 1.0452563 5.0977108 4.7035231 -2.3101244 0.13671642
+ 59000 29.218218 -1.2210564 0.62435875 3.4236327 4.5481681 -2.1575943 0.037984042
+ 60000 27.655546 -1.1053224 0.86323501 3.7641375 4.8946898 -2.2422249 0.077725979
+ 61000 27.252108 -1.3744824 1.1150806 5.0444848 4.4878135 -2.2743829 0.058331257
+ 62000 27.163469 -1.1715781 0.72099321 4.5295501 4.9509918 -2.2993961 0.050401105
+ 63000 29.581575 -1.2238537 0.86303245 3.1194038 5.2218965 -2.5002427 0.055032632
+ 64000 27.897822 -1.1011516 0.74540883 4.2869228 4.3394269 -2.2552393 0.1403321
+ 65000 27.083245 -1.0633392 0.92771724 5.0805224 4.2747962 -2.2388039 0.064196692
+ 66000 29.072723 -1.5514209 0.89798805 4.2600224 4.4261812 -2.3524752 0.15067414
+ 67000 27.308181 -0.72224802 0.97109517 4.5074578 4.4559352 -2.1381121 0.089297603
+ 68000 27.505686 -0.43855431 0.80785812 4.1917251 5.0157721 -2.3382145 0.11105164
+ 69000 29.041681 -0.64735378 0.89874684 3.3891579 4.3753361 -2.2320941 0.14716747
+ 70000 29.735756 -1.7061457 0.9206878 3.5767878 4.3851664 -2.2516304 0.097196062
+ 71000 28.224352 -0.92217702 0.86093586 3.9507157 4.5596589 -2.2173397 0.089116669
+ 72000 29.282336 -1.056142 0.65185725 3.8735742 4.4839333 -2.4314756 0.071909704
+ 73000 26.257283 -0.64273826 0.98300685 5.063943 5.045958 -2.5544375 0.2180275
+ 74000 28.825119 -0.97736616 0.87201848 3.55875 4.3653309 -2.2303567 0.098963875
+ 75000 29.239507 -0.96508809 0.74517323 3.4306236 4.7651921 -2.6077732 0.17883654
+ 76000 27.349841 -0.50990238 1.1183613 4.4252451 4.4097775 -2.4125794 0.18483606
+ 77000 28.130197 -1.4081219 0.94921357 4.2572132 4.5162849 -2.4013797 0.073744606
+ 78000 28.235774 -0.9214321 0.6324981 3.8697686 4.8092154 -2.2272847 0.092108346
+ 79000 26.732846 -0.55949486 1.0989617 5.0088609 4.4930687 -2.277945 0.03855146
+ 80000 28.529208 -0.94244671 0.79407482 3.961106 4.3930011 -2.3127726 0.091124948
+ 81000 29.603852 -1.6116062 1.060847 3.7824932 4.151001 -1.9139868 0.19875986
+ 82000 28.232876 -1.1833011 1.0182713 3.4195758 5.1394333 -2.4632697 0.28501012
+ 83000 29.565482 -1.3479552 0.99056973 3.7851802 4.4781011 -2.7872481 0.2031991
+ 84000 28.780274 -1.3073882 1.0512637 4.004638 4.502282 -2.3789146 0.015656202
+ 85000 27.262312 -1.1305346 1.203524 4.7938623 4.1747105 -2.0952844 0.054240361
+ 86000 28.157348 -1.0662817 0.81163796 3.9912709 4.8320213 -2.255237 0.14698333
+ 87000 28.445543 -1.3365026 0.78156195 4.4767689 4.4457575 -2.5008786 0.13879386
+ 88000 27.656717 -1.1490599 0.87974869 4.4629952 4.7023033 -2.3258145 0.081904139
+ 89000 28.838821 -1.020709 0.85587929 3.7110705 4.4938307 -2.4914483 0.11447952
+ 90000 27.356497 -0.59107077 0.81879666 4.5209332 4.4703836 -2.3806717 0.071307775
+ 91000 27.780445 -0.80564513 0.94752313 3.8468943 4.2924253 -2.1011134 0.1118672
+ 92000 28.555276 -1.3514732 0.80826674 3.9590742 4.5775954 -2.4891232 0.054254978
+ 93000 28.747267 -1.2133243 0.75507246 4.1319789 4.9048611 -2.4913887 0.13045693
+ 94000 27.479343 -0.69973695 0.99696121 3.5966229 4.549025 -2.4155312 0.41745762
+ 95000 27.726945 -1.1905026 1.1120842 4.7433275 4.5386861 -2.7947142 0.33671682
+ 96000 28.021114 -1.0341645 0.6663033 4.2397505 4.6203984 -1.9904034 0.10972565
+ 97000 28.382022 -1.3916008 1.180588 4.0729621 4.6741792 -2.554927 0.13462346
+ 98000 27.895969 -0.7496449 1.3072185 4.2611888 4.3726077 -2.1320701 0.15376665
+ 99000 28.517889 -1.2183957 1.279778 3.957647 4.2638434 -2.2888407 0.042705003
+ 100000 28.109211 -1.2538948 0.83671785 4.3734766 4.544545 -2.3076497 0.042189096
+Loop time of 2.96683 on 1 procs for 100000 steps with 34 atoms
+
+Performance: 5824.390 ns/day, 0.004 hours/ns, 33705.963 timesteps/s
+100.0% CPU use with 1 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.98759 | 0.98759 | 0.98759 | 0.0 | 33.29
+Bond | 1.6463 | 1.6463 | 1.6463 | 0.0 | 55.49
+Neigh | 0.007688 | 0.007688 | 0.007688 | 0.0 | 0.26
+Comm | 0.012214 | 0.012214 | 0.012214 | 0.0 | 0.41
+Output | 0.0010295 | 0.0010295 | 0.0010295 | 0.0 | 0.03
+Modify | 0.25684 | 0.25684 | 0.25684 | 0.0 | 8.66
+Other | | 0.05519 | | | 1.86
+
+Nlocal: 34 ave 34 max 34 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Nghost: 0 ave 0 max 0 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Neighs: 395 ave 395 max 395 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+
+Total # of neighbors = 395
+Ave neighs/atom = 11.6176
+Ave special neighs/atom = 9.52941
+Neighbor list builds = 237
+Dangerous builds = 0
+Total wall time: 0:00:02
diff --git a/examples/cmap/log.23Sep16.cmap.g++.4 b/examples/cmap/log.23Sep16.cmap.g++.4
new file mode 100644
index 0000000000..2d3efa66c6
--- /dev/null
+++ b/examples/cmap/log.23Sep16.cmap.g++.4
@@ -0,0 +1,200 @@
+LAMMPS (21 Sep 2016)
+# Created by charmm2lammps v1.8.2.6 beta on Thu Mar 3 20:56:57 EST 2016
+
+units real
+neigh_modify delay 2 every 1
+#newton off
+
+boundary p p p
+
+atom_style full
+bond_style harmonic
+angle_style charmm
+dihedral_style charmm
+improper_style harmonic
+
+pair_style lj/charmm/coul/charmm 8 12
+#pair_style lj/charmmfsw/coul/charmmfsh 8 12
+pair_modify mix arithmetic
+
+fix cmap all cmap charmm22.cmap
+fix_modify cmap energy yes
+
+read_data gagg.data fix cmap crossterm CMAP
+ orthogonal box = (-34.4147 -36.1348 -39.3491) to (45.5853 43.8652 40.6509)
+ 1 by 2 by 2 MPI processor grid
+ reading atoms ...
+ 34 atoms
+ scanning bonds ...
+ 4 = max bonds/atom
+ scanning angles ...
+ 6 = max angles/atom
+ scanning dihedrals ...
+ 12 = max dihedrals/atom
+ scanning impropers ...
+ 1 = max impropers/atom
+ reading bonds ...
+ 33 bonds
+ reading angles ...
+ 57 angles
+ reading dihedrals ...
+ 75 dihedrals
+ reading impropers ...
+ 7 impropers
+ 4 = max # of 1-2 neighbors
+ 7 = max # of 1-3 neighbors
+ 13 = max # of 1-4 neighbors
+ 16 = max # of special neighbors
+
+special_bonds charmm
+fix 1 all nve
+
+#fix 1 all nvt temp 300 300 100.0
+#fix 2 all shake 1e-9 500 0 m 1.0
+
+velocity all create 0.0 12345678 dist uniform
+
+thermo 1000
+thermo_style custom step ecoul evdwl ebond eangle edihed f_cmap eimp
+timestep 2.0
+
+run 100000
+Neighbor list info ...
+ 1 neighbor list requests
+ update every 1 steps, delay 2 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 14
+ ghost atom cutoff = 14
+ binsize = 7 -> bins = 12 12 12
+Memory usage per processor = 15.9307 Mbytes
+Step E_coul E_vdwl E_bond E_angle E_dihed f_cmap E_impro
+ 0 26.542777 -0.93822087 1.2470497 4.8441789 4.5432816 -1.473352 0.10453023
+ 1000 28.673005 -0.47724367 0.80029132 3.151679 4.4684446 -2.3928648 0.18604953
+ 2000 27.67955 -1.170342 0.72018905 4.0400131 4.4713764 -2.5490207 0.21834436
+ 3000 29.256656 -0.35856055 0.73303546 3.7411606 4.4710568 -2.8939692 0.37728884
+ 4000 30.097549 -1.1353905 0.79007053 3.0688444 4.4091469 -2.3383587 0.20743631
+ 5000 28.357525 -1.0723742 0.9180297 3.6579424 4.8792663 -2.3185572 0.088366962
+ 6000 29.214175 -0.95299239 0.81926011 3.6805428 4.6742897 -2.9343578 0.26697816
+ 7000 27.018614 -0.52423469 0.72502751 3.8840141 4.7780958 -2.3916014 0.24952572
+ 8000 29.682494 -1.0940368 0.76113051 3.1089345 4.9357863 -2.5662256 0.14112613
+ 9000 27.853918 -0.7913741 0.79503268 4.2177256 4.146792 -2.00475 0.090585666
+ 10000 27.13754 -0.80551128 1.1325023 4.4718283 5.2460631 -3.4947725 0.11893125
+ 11000 28.277434 -1.4897448 0.90075953 4.1895717 4.3594269 -1.9553119 0.090222212
+ 12000 28.630973 -1.222206 0.67796385 3.3905661 4.9691334 -2.9052721 0.13897658
+ 13000 28.593007 -0.95684026 0.75585196 3.7242568 4.7417932 -2.3893117 0.2074121
+ 14000 26.147115 -0.6026921 0.93591488 5.1292829 4.9821952 -2.2571835 0.11872421
+ 15000 26.29432 -0.82424162 1.048979 4.5569495 5.1189308 -2.9750422 0.16195676
+ 16000 29.189992 -0.80998247 0.74093508 3.8299275 4.4536688 -2.5497538 0.19155639
+ 17000 25.878012 -0.3519646 1.0988924 4.7359591 5.3923098 -2.7211029 0.13405223
+ 18000 27.726135 -0.28229987 0.63072344 4.1777888 4.7237271 -2.2177157 0.15939372
+ 19000 27.153504 -0.66477422 0.77910129 4.2036117 5.113851 -2.3494315 0.094793307
+ 20000 28.044833 -1.2835827 0.88745367 3.9955526 4.5077788 -3.0116467 0.17197859
+ 21000 27.205696 -0.74090037 1.0023251 4.3421733 4.912671 -2.3473271 0.26089356
+ 22000 27.385785 -0.93740972 0.84554838 4.562743 4.883866 -2.2110955 0.11573301
+ 23000 27.05534 -0.95605442 0.96719024 3.9277618 5.0359014 -2.6135949 0.21368061
+ 24000 28.273378 -0.97543103 0.8983443 4.2067985 4.4782971 -2.4230505 0.30311692
+ 25000 27.477789 -0.20383849 0.8380706 3.8037992 4.8312504 -2.5831791 0.093843746
+ 26000 30.344199 -1.9773473 0.92882437 3.7821405 4.5176677 -2.3020968 0.2194307
+ 27000 27.32767 -0.9803839 0.92988865 3.7611603 5.0328211 -2.4647656 0.18213622
+ 28000 27.34208 -1.037938 0.74488346 4.1727342 4.7056812 -2.2718346 0.17741362
+ 29000 27.682777 -0.51006495 0.57074224 4.7332237 4.7080462 -2.0491512 0.2130517
+ 30000 24.925731 0.13670248 0.84976065 4.4143762 6.0677158 -3.5479173 0.28059419
+ 31000 28.623419 -0.90725708 1.0710501 3.6930688 4.6639301 -2.2225373 0.20988139
+ 32000 27.732286 -1.1948367 0.89230134 4.4398373 4.8923907 -3.5849327 0.49167488
+ 33000 28.800772 -1.5319589 0.93455495 4.1634728 4.6107706 -2.3503486 0.22636535
+ 34000 27.374398 -1.0957453 0.89450276 3.9829508 4.991786 -2.3548834 0.15869465
+ 35000 28.38753 -0.89261166 0.90000776 3.536864 4.4293294 -2.4218118 0.10640557
+ 36000 27.713974 0.088038031 0.85190574 3.8969601 4.6256355 -2.7935475 0.34671662
+ 37000 29.13007 -1.378597 0.74412556 3.131538 4.6458653 -2.9373734 0.38035616
+ 38000 28.556573 -1.4055344 1.139984 4.0035753 4.2938358 -2.489329 0.25338326
+ 39000 26.447036 -1.1829705 0.87032438 5.0804461 4.5772023 -2.7346466 0.32165802
+ 40000 27.991454 -0.64295679 0.61020872 4.165871 4.4623087 -2.2244194 0.13826991
+ 41000 29.483296 -1.2400745 0.66926627 3.3473666 4.5766617 -2.3051145 0.12171554
+ 42000 26.948627 -1.2162288 1.1440628 4.3993073 5.1176533 -2.4734485 0.15497709
+ 43000 28.04459 -0.26543193 0.83647367 3.5160747 4.6964397 -2.2805068 0.12618821
+ 44000 28.213608 -1.216128 0.9132792 4.0206483 4.9483599 -2.3387049 0.10132022
+ 45000 28.283506 -1.0390766 0.86113772 4.504509 4.7209088 -2.3043085 0.14588362
+ 46000 27.433853 -0.57912107 0.78448334 4.5998579 5.1181394 -2.6165094 0.18722528
+ 47000 27.552939 -1.1128925 0.80087638 4.3448001 4.8062869 -2.4296883 0.2702479
+ 48000 28.874034 -1.3242519 0.71770727 3.5648565 4.4671824 -2.2608958 0.16115978
+ 49000 29.216186 -1.2210307 0.76937497 3.9260628 4.7550577 -2.7316081 0.085505664
+ 50000 28.065856 -1.1545547 0.86953819 4.4137666 4.732157 -2.4450867 0.23320539
+ 51000 26.308975 -0.99728352 0.90408444 4.2400186 5.6340425 -2.2090554 0.079882158
+ 52000 28.517571 -1.5027398 0.83520278 3.8176552 4.3001251 -2.0731682 0.1665375
+ 53000 28.77579 -1.3564268 0.97253881 3.6866407 4.8532347 -2.5330776 0.17668411
+ 54000 29.135315 -1.0994106 0.67605671 3.6819254 4.3134408 -1.9796929 0.076951331
+ 55000 26.168938 -0.76247492 0.88784685 4.6533473 6.0484793 -2.1334561 0.036876985
+ 56000 27.471775 -0.68648837 1.0576168 4.0354311 4.4767052 -2.2368959 0.24950568
+ 57000 29.787083 -1.4914384 1.0702944 3.5388133 4.5173097 -2.6694464 0.27937092
+ 58000 28.705448 -1.3016617 0.63337853 3.9552713 4.4119825 -1.8774657 0.17540021
+ 59000 29.130155 -0.91647363 0.84384883 3.1076903 4.5346348 -2.3457338 0.16674486
+ 60000 26.874199 -0.81598034 1.3432151 5.1322624 4.9545484 -2.9566615 0.25950486
+ 61000 27.401306 -0.82895856 1.1636949 4.020154 4.5745928 -2.601466 0.18061051
+ 62000 28.930313 -1.5231967 0.85173243 4.3517328 4.4878662 -2.5859205 0.1755493
+ 63000 26.56874 0.026147233 0.60836216 4.4231618 4.4390677 -2.1721849 0.08594237
+ 64000 26.729023 -0.76953985 0.76734633 4.5104288 5.0886456 -2.2118551 0.11339216
+ 65000 28.900471 -1.3901477 0.86194657 4.2774976 4.498325 -2.3672362 0.20668335
+ 66000 26.884253 -0.21198879 0.98509625 4.0843117 4.4344172 -2.3289416 0.23631017
+ 67000 27.210888 -0.84075559 1.0396559 4.7253607 4.4314589 -2.2985702 0.19326507
+ 68000 28.042102 -1.1898715 1.053534 3.8748712 4.4358449 -2.3998723 0.2431659
+ 69000 28.939141 -1.6968936 0.98155912 4.0460838 5.0075204 -2.5547087 0.28645131
+ 70000 27.15577 -0.85202797 1.1469079 4.7645212 4.6133209 -2.3410451 0.086576572
+ 71000 25.507417 -0.27780727 0.95157881 4.8759406 4.853401 -2.9598705 0.41011008
+ 72000 29.804703 -1.4847015 0.96345767 3.6797304 4.3678377 -2.4594626 0.14480206
+ 73000 28.602798 -1.4906143 0.72497266 4.2442974 4.5360598 -2.3621638 0.14385651
+ 74000 28.4928 -0.91319873 1.0377472 3.8033127 4.3991601 -2.4051911 0.095567428
+ 75000 26.38168 -0.70733237 1.1557817 5.697939 4.5935618 -2.4285007 0.058980519
+ 76000 27.16626 -0.83631031 0.84844246 4.7460887 4.5801472 -2.1260014 0.12845946
+ 77000 29.040661 -1.3089499 0.80285084 4.664804 4.5215895 -2.6861939 0.13215598
+ 78000 27.477871 -1.0600977 0.88595045 4.6264017 5.4095605 -2.474411 0.10987174
+ 79000 26.151797 -0.55779685 0.91382436 4.99964 4.9184022 -2.2547241 0.22854038
+ 80000 28.14523 -0.54460026 0.8982411 3.5374555 4.3785673 -2.3196807 0.088567964
+ 81000 29.029941 -1.6467789 0.79042284 3.7269899 4.7407998 -2.3795824 0.1408727
+ 82000 27.920287 -0.72798032 1.0076975 3.4449461 4.5621371 -2.8239074 0.25103454
+ 83000 29.131054 -1.114367 0.76887285 3.459639 4.5163922 -2.607825 0.19991648
+ 84000 28.249768 -0.69944068 1.0510846 4.0436296 4.6430538 -2.4213355 0.077299966
+ 85000 28.06888 -0.62132922 0.91829312 4.1294147 4.3099557 -2.354063 0.15866186
+ 86000 28.664264 -1.1022906 0.87831695 4.5773522 4.6045802 -2.9206875 0.33950063
+ 87000 27.960967 -1.2852756 0.77694253 3.9011301 4.9114139 -3.2374868 0.3068138
+ 88000 27.190678 -1.2803268 1.1545301 4.5769709 5.2404761 -2.3825838 0.10356039
+ 89000 26.792931 -0.44516641 1.0236244 4.2007253 4.7098685 -2.3608551 0.034447062
+ 90000 27.173991 -0.87185611 1.065719 4.1953618 4.6856408 -2.6539232 0.16957757
+ 91000 28.626528 -1.239257 0.89524651 4.7048012 4.6344201 -2.7367901 0.43534143
+ 92000 27.661812 -1.109044 0.92817391 5.0294489 4.3890711 -2.4108669 0.12570139
+ 93000 28.156793 -1.0820907 0.92812693 4.938385 4.4901426 -2.4023366 0.30135781
+ 94000 28.842149 -1.3524969 1.1451109 4.3125908 4.6959035 -2.6747199 0.2254607
+ 95000 27.862247 -1.2119045 1.0218976 4.2614082 4.4931316 -2.6902934 0.16345201
+ 96000 27.084973 -0.93738328 1.3984324 4.5647189 4.4232205 -2.2834097 0.11217888
+ 97000 27.587078 -0.89397255 0.78218462 3.8944421 4.3981479 -2.4205318 0.16570942
+ 98000 27.981746 -1.2380545 0.84847869 4.311441 4.7340377 -2.4270441 0.023565612
+ 99000 27.476625 -0.8569146 0.82550381 4.1656963 4.4064921 -2.4169708 0.160814
+ 100000 26.121325 -0.63610855 1.0803389 4.9257118 4.7073263 -2.4010334 0.066303044
+Loop time of 2.60487 on 4 procs for 100000 steps with 34 atoms
+
+Performance: 6633.735 ns/day, 0.004 hours/ns, 38389.667 timesteps/s
+99.1% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.066848 | 0.26055 | 0.6843 | 48.6 | 10.00
+Bond | 0.067332 | 0.45486 | 0.93545 | 55.1 | 17.46
+Neigh | 0.0078266 | 0.007863 | 0.0078835 | 0.0 | 0.30
+Comm | 0.41829 | 1.3207 | 1.8951 | 50.8 | 50.70
+Output | 0.0033038 | 0.0036355 | 0.0040481 | 0.4 | 0.14
+Modify | 0.040861 | 0.15162 | 0.27091 | 27.3 | 5.82
+Other | | 0.4057 | | | 15.57
+
+Nlocal: 8.5 ave 15 max 2 min
+Histogram: 1 1 0 0 0 0 0 0 1 1
+Nghost: 25.5 ave 32 max 19 min
+Histogram: 1 1 0 0 0 0 0 0 1 1
+Neighs: 98.75 ave 257 max 18 min
+Histogram: 1 1 1 0 0 0 0 0 0 1
+
+Total # of neighbors = 395
+Ave neighs/atom = 11.6176
+Ave special neighs/atom = 9.52941
+Neighbor list builds = 294
+Dangerous builds = 0
+Total wall time: 0:00:02
diff --git a/examples/neb/README b/examples/neb/README
index 137c42a068..130d0fd2e3 100644
--- a/examples/neb/README
+++ b/examples/neb/README
@@ -1,12 +1,18 @@
Run these examples as:
-mpirun -np 4 lmp_linux -partition 4x1 -in in.neb.hop1
-mpirun -np 4 lmp_linux -partition 4x1 -in in.neb.hop2
-mpirun -np 3 lmp_linux -partition 3x1 -in in.neb.sivac
+mpirun -np 4 lmp_g++ -partition 4x1 -in in.neb.hop1
+mpirun -np 4 lmp_g++ -partition 4x1 -in in.neb.hop2
+mpirun -np 3 lmp_g++ -partition 3x1 -in in.neb.sivac
-Create dump files to do visualization from via Python tools:
-(see lammps/tools/README and lammps/tools/python/README
-for more info on these Python scripts)
+mpirun -np 8 lmp_g++ -partition 4x2 -in in.neb.hop1
+mpirun -np 8 lmp_g++ -partition 4x2 -in in.neb.hop2
+mpirun -np 6 lmp_g++ -partition 3x2 -in in.neb.sivac
+mpirun -np 9 lmp_g++ -partition 3x3 -in in.neb.sivac
+
+If you uncomment the dump command lines in the input scripts, you can
+create dump files to do visualization from via Python tools: (see
+lammps/tools/README and lammps/tools/python/README for more info on
+these Python scripts)
python ~/lammps/tools/python/neb_combine.py -o dump.hop1.combine
-b dump.nonneb.1
diff --git a/examples/neb/in.neb.hop1 b/examples/neb/in.neb.hop1
index a5dea35721..9a3d7579f3 100644
--- a/examples/neb/in.neb.hop1
+++ b/examples/neb/in.neb.hop1
@@ -14,10 +14,13 @@ variable u uloop 20
lattice hex 0.9
region box block 0 20 0 10 -0.25 0.25
-create_box 3 box
-create_atoms 1 box
-mass * 1.0
+#create_box 3 box
+#create_atoms 1 box
+#mass * 1.0
+#write_data initial.hop1
+
+read_data initial.hop1
# LJ potentials
diff --git a/examples/neb/in.neb.hop2 b/examples/neb/in.neb.hop2
index 1ce1f6f82d..3eb16248e1 100644
--- a/examples/neb/in.neb.hop2
+++ b/examples/neb/in.neb.hop2
@@ -15,11 +15,14 @@ variable u uloop 20
lattice hex 0.9
region box block 0 20 0 11 -0.25 0.25
region box1 block 0 20 0 10 -0.25 0.25
-create_box 3 box
-create_atoms 1 region box1
-create_atoms 1 single 11.5 10.5 0
-mass * 1.0
+#create_box 3 box
+#create_atoms 1 region box1
+#create_atoms 1 single 11.5 10.5 0
+#mass * 1.0
+#write_data initial.hop2
+
+read_data initial.hop2
# LJ potentials
diff --git a/examples/neb/in.neb.sivac b/examples/neb/in.neb.sivac
index baf87bf215..566a380627 100644
--- a/examples/neb/in.neb.sivac
+++ b/examples/neb/in.neb.sivac
@@ -30,17 +30,20 @@ lattice custom $a &
region myreg block 0 4 &
0 4 &
0 4
-create_box 1 myreg
-create_atoms 1 region myreg
-mass 1 28.06
+#create_box 1 myreg
+#create_atoms 1 region myreg
+#mass 1 28.06
+#write_data initial.sivac
-group Si type 1
+read_data initial.sivac
# make a vacancy
+group Si type 1
+
group del id 300
-delete_atoms group del
+delete_atoms group del compress no
group vacneigh id 174 175 301 304 306 331 337
# choose potential
@@ -54,7 +57,7 @@ variable u uloop 20
# only output atoms near vacancy
-dump events vacneigh custom 1000 dump.neb.sivac.$u id type x y z
+#dump events vacneigh custom 1000 dump.neb.sivac.$u id type x y z
# initial minimization to relax vacancy
@@ -72,5 +75,4 @@ thermo 100
timestep 0.01
min_style quickmin
-neb 0.0 0.01 50 100 10 final final.sivac
-
+neb 0.0 0.01 100 100 10 final final.sivac
diff --git a/examples/neb/initial.hop1 b/examples/neb/initial.hop1
new file mode 100644
index 0000000000..228708c314
--- /dev/null
+++ b/examples/neb/initial.hop1
@@ -0,0 +1,860 @@
+LAMMPS data file via write_data, version 27 Sep 2016, timestep = 0
+
+420 atoms
+3 atom types
+
+0.0000000000000000e+00 2.2653923264628304e+01 xlo xhi
+-1.9618873042551413e-03 1.9620834929855668e+01 ylo yhi
+-2.8317404080785380e-01 2.8317404080785380e-01 zlo zhi
+
+Masses
+
+1 1
+2 1
+3 1
+
+Atoms # atomic
+
+1 1 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+2 1 5.6634808161570760e-01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+3 1 1.1326961632314152e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+4 1 1.6990442448471228e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+5 1 2.2653923264628304e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+6 1 2.8317404080785380e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+7 1 3.3980884896942456e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+8 1 3.9644365713099532e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+9 1 4.5307846529256608e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+10 1 5.0971327345413684e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+11 1 5.6634808161570760e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+12 1 6.2298288977727836e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+13 1 6.7961769793884912e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+14 1 7.3625250610041988e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+15 1 7.9288731426199064e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+16 1 8.4952212242356140e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+17 1 9.0615693058513216e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+18 1 9.6279173874670292e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+19 1 1.0194265469082737e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+20 1 1.0760613550698444e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+21 1 1.1326961632314152e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+22 1 1.1893309713929860e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+23 1 1.2459657795545567e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+24 1 1.3026005877161275e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+25 1 1.3592353958776982e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+26 1 1.4158702040392690e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+27 1 1.4725050122008398e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+28 1 1.5291398203624105e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+29 1 1.5857746285239813e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+30 1 1.6424094366855520e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+31 1 1.6990442448471228e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+32 1 1.7556790530086936e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+33 1 1.8123138611702643e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+34 1 1.8689486693318351e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+35 1 1.9255834774934058e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+36 1 1.9822182856549766e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+37 1 2.0388530938165474e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+38 1 2.0954879019781181e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+39 1 2.1521227101396889e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+40 1 2.2087575183012596e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+41 1 0.0000000000000000e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+42 1 5.6634808161570760e-01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+43 1 1.1326961632314152e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+44 1 1.6990442448471228e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+45 1 2.2653923264628304e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+46 1 2.8317404080785380e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+47 1 3.3980884896942456e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+48 1 3.9644365713099532e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+49 1 4.5307846529256608e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+50 1 5.0971327345413684e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+51 1 5.6634808161570760e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+52 1 6.2298288977727836e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+53 1 6.7961769793884912e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+54 1 7.3625250610041988e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+55 1 7.9288731426199064e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+56 1 8.4952212242356140e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+57 1 9.0615693058513216e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+58 1 9.6279173874670292e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+59 1 1.0194265469082737e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+60 1 1.0760613550698444e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+61 1 1.1326961632314152e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+62 1 1.1893309713929860e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+63 1 1.2459657795545567e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+64 1 1.3026005877161275e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+65 1 1.3592353958776982e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+66 1 1.4158702040392690e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+67 1 1.4725050122008398e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+68 1 1.5291398203624105e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+69 1 1.5857746285239813e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+70 1 1.6424094366855520e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+71 1 1.6990442448471228e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+72 1 1.7556790530086936e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+73 1 1.8123138611702643e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+74 1 1.8689486693318351e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+75 1 1.9255834774934058e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+76 1 1.9822182856549766e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+77 1 2.0388530938165474e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+78 1 2.0954879019781181e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+79 1 2.1521227101396889e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+80 1 2.2087575183012596e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+81 1 0.0000000000000000e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+82 1 5.6634808161570760e-01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+83 1 1.1326961632314152e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+84 1 1.6990442448471228e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+85 1 2.2653923264628304e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+86 1 2.8317404080785380e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+87 1 3.3980884896942456e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+88 1 3.9644365713099532e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+89 1 4.5307846529256608e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+90 1 5.0971327345413684e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+91 1 5.6634808161570760e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+92 1 6.2298288977727836e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+93 1 6.7961769793884912e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+94 1 7.3625250610041988e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+95 1 7.9288731426199064e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+96 1 8.4952212242356140e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+97 1 9.0615693058513216e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+98 1 9.6279173874670292e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+99 1 1.0194265469082737e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+100 1 1.0760613550698444e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+101 1 1.1326961632314152e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+102 1 1.1893309713929860e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+103 1 1.2459657795545567e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+104 1 1.3026005877161275e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+105 1 1.3592353958776982e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+106 1 1.4158702040392690e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+107 1 1.4725050122008398e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+108 1 1.5291398203624105e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+109 1 1.5857746285239813e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+110 1 1.6424094366855520e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+111 1 1.6990442448471228e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+112 1 1.7556790530086936e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+113 1 1.8123138611702643e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+114 1 1.8689486693318351e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+115 1 1.9255834774934058e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+116 1 1.9822182856549766e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+117 1 2.0388530938165474e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+118 1 2.0954879019781181e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+119 1 2.1521227101396889e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+120 1 2.2087575183012596e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+121 1 0.0000000000000000e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+122 1 5.6634808161570760e-01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+123 1 1.1326961632314152e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+124 1 1.6990442448471228e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+125 1 2.2653923264628304e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+126 1 2.8317404080785380e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+127 1 3.3980884896942456e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+128 1 3.9644365713099532e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+129 1 4.5307846529256608e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+130 1 5.0971327345413684e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+131 1 5.6634808161570760e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+132 1 6.2298288977727836e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+133 1 6.7961769793884912e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+134 1 7.3625250610041988e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+135 1 7.9288731426199064e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+136 1 8.4952212242356140e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+137 1 9.0615693058513216e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+138 1 9.6279173874670292e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+139 1 1.0194265469082737e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+140 1 1.0760613550698444e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+141 1 1.1326961632314152e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+142 1 1.1893309713929860e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+143 1 1.2459657795545567e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+144 1 1.3026005877161275e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+145 1 1.3592353958776982e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+146 1 1.4158702040392690e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+147 1 1.4725050122008398e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+148 1 1.5291398203624105e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+149 1 1.5857746285239813e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+150 1 1.6424094366855520e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+151 1 1.6990442448471228e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+152 1 1.7556790530086936e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+153 1 1.8123138611702643e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+154 1 1.8689486693318351e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+155 1 1.9255834774934058e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+156 1 1.9822182856549766e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+157 1 2.0388530938165474e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+158 1 2.0954879019781181e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+159 1 2.1521227101396889e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+160 1 2.2087575183012596e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+161 1 0.0000000000000000e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+162 1 5.6634808161570760e-01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+163 1 1.1326961632314152e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+164 1 1.6990442448471228e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+165 1 2.2653923264628304e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+166 1 2.8317404080785380e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+167 1 3.3980884896942456e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+168 1 3.9644365713099532e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+169 1 4.5307846529256608e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+170 1 5.0971327345413684e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+171 1 5.6634808161570760e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+172 1 6.2298288977727836e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+173 1 6.7961769793884912e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+174 1 7.3625250610041988e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+175 1 7.9288731426199064e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+176 1 8.4952212242356140e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+177 1 9.0615693058513216e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+178 1 9.6279173874670292e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+179 1 1.0194265469082737e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+180 1 1.0760613550698444e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+181 1 1.1326961632314152e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+182 1 1.1893309713929860e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+183 1 1.2459657795545567e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+184 1 1.3026005877161275e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+185 1 1.3592353958776982e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+186 1 1.4158702040392690e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+187 1 1.4725050122008398e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+188 1 1.5291398203624105e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+189 1 1.5857746285239813e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+190 1 1.6424094366855520e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+191 1 1.6990442448471228e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+192 1 1.7556790530086936e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+193 1 1.8123138611702643e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+194 1 1.8689486693318351e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+195 1 1.9255834774934058e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+196 1 1.9822182856549766e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+197 1 2.0388530938165474e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+198 1 2.0954879019781181e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+199 1 2.1521227101396889e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+200 1 2.2087575183012596e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+201 1 0.0000000000000000e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+202 1 5.6634808161570760e-01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+203 1 1.1326961632314152e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+204 1 1.6990442448471228e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+205 1 2.2653923264628304e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+206 1 2.8317404080785380e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+207 1 3.3980884896942456e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+208 1 3.9644365713099532e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+209 1 4.5307846529256608e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+210 1 5.0971327345413684e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+211 1 5.6634808161570760e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+212 1 6.2298288977727836e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+213 1 6.7961769793884912e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+214 1 7.3625250610041988e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+215 1 7.9288731426199064e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+216 1 8.4952212242356140e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+217 1 9.0615693058513216e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+218 1 9.6279173874670292e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+219 1 1.0194265469082737e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+220 1 1.0760613550698444e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+221 1 1.1326961632314152e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+222 1 1.1893309713929860e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+223 1 1.2459657795545567e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+224 1 1.3026005877161275e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+225 1 1.3592353958776982e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+226 1 1.4158702040392690e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+227 1 1.4725050122008398e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+228 1 1.5291398203624105e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+229 1 1.5857746285239813e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+230 1 1.6424094366855520e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+231 1 1.6990442448471228e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+232 1 1.7556790530086936e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+233 1 1.8123138611702643e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+234 1 1.8689486693318351e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+235 1 1.9255834774934058e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+236 1 1.9822182856549766e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+237 1 2.0388530938165474e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+238 1 2.0954879019781181e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+239 1 2.1521227101396889e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+240 1 2.2087575183012596e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+241 1 0.0000000000000000e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+242 1 5.6634808161570760e-01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+243 1 1.1326961632314152e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+244 1 1.6990442448471228e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+245 1 2.2653923264628304e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+246 1 2.8317404080785380e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+247 1 3.3980884896942456e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+248 1 3.9644365713099532e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+249 1 4.5307846529256608e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+250 1 5.0971327345413684e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+251 1 5.6634808161570760e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+252 1 6.2298288977727836e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+253 1 6.7961769793884912e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+254 1 7.3625250610041988e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+255 1 7.9288731426199064e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+256 1 8.4952212242356140e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+257 1 9.0615693058513216e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+258 1 9.6279173874670292e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+259 1 1.0194265469082737e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+260 1 1.0760613550698444e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+261 1 1.1326961632314152e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+262 1 1.1893309713929860e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+263 1 1.2459657795545567e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+264 1 1.3026005877161275e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+265 1 1.3592353958776982e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+266 1 1.4158702040392690e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+267 1 1.4725050122008398e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+268 1 1.5291398203624105e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+269 1 1.5857746285239813e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+270 1 1.6424094366855520e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+271 1 1.6990442448471228e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+272 1 1.7556790530086936e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+273 1 1.8123138611702643e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+274 1 1.8689486693318351e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+275 1 1.9255834774934058e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+276 1 1.9822182856549766e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+277 1 2.0388530938165474e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+278 1 2.0954879019781181e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+279 1 2.1521227101396889e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+280 1 2.2087575183012596e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+281 1 0.0000000000000000e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+282 1 5.6634808161570760e-01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+283 1 1.1326961632314152e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+284 1 1.6990442448471228e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+285 1 2.2653923264628304e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+286 1 2.8317404080785380e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+287 1 3.3980884896942456e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+288 1 3.9644365713099532e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+289 1 4.5307846529256608e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+290 1 5.0971327345413684e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+291 1 5.6634808161570760e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+292 1 6.2298288977727836e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+293 1 6.7961769793884912e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+294 1 7.3625250610041988e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+295 1 7.9288731426199064e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+296 1 8.4952212242356140e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+297 1 9.0615693058513216e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+298 1 9.6279173874670292e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+299 1 1.0194265469082737e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+300 1 1.0760613550698444e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+301 1 1.1326961632314152e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+302 1 1.1893309713929860e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+303 1 1.2459657795545567e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+304 1 1.3026005877161275e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+305 1 1.3592353958776982e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+306 1 1.4158702040392690e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+307 1 1.4725050122008398e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+308 1 1.5291398203624105e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+309 1 1.5857746285239813e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+310 1 1.6424094366855520e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+311 1 1.6990442448471228e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+312 1 1.7556790530086936e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+313 1 1.8123138611702643e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+314 1 1.8689486693318351e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+315 1 1.9255834774934058e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+316 1 1.9822182856549766e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+317 1 2.0388530938165474e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+318 1 2.0954879019781181e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+319 1 2.1521227101396889e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+320 1 2.2087575183012596e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+321 1 0.0000000000000000e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+322 1 5.6634808161570760e-01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+323 1 1.1326961632314152e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+324 1 1.6990442448471228e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+325 1 2.2653923264628304e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+326 1 2.8317404080785380e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+327 1 3.3980884896942456e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+328 1 3.9644365713099532e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+329 1 4.5307846529256608e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+330 1 5.0971327345413684e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+331 1 5.6634808161570760e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+332 1 6.2298288977727836e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+333 1 6.7961769793884912e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+334 1 7.3625250610041988e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+335 1 7.9288731426199064e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+336 1 8.4952212242356140e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+337 1 9.0615693058513216e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+338 1 9.6279173874670292e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+339 1 1.0194265469082737e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+340 1 1.0760613550698444e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+341 1 1.1326961632314152e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+342 1 1.1893309713929860e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+343 1 1.2459657795545567e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+344 1 1.3026005877161275e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+345 1 1.3592353958776982e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+346 1 1.4158702040392690e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+347 1 1.4725050122008398e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+348 1 1.5291398203624105e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+349 1 1.5857746285239813e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+350 1 1.6424094366855520e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+351 1 1.6990442448471228e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+352 1 1.7556790530086936e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+353 1 1.8123138611702643e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+354 1 1.8689486693318351e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+355 1 1.9255834774934058e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+356 1 1.9822182856549766e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+357 1 2.0388530938165474e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+358 1 2.0954879019781181e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+359 1 2.1521227101396889e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+360 1 2.2087575183012596e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+361 1 0.0000000000000000e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+362 1 5.6634808161570760e-01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+363 1 1.1326961632314152e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+364 1 1.6990442448471228e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+365 1 2.2653923264628304e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+366 1 2.8317404080785380e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+367 1 3.3980884896942456e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+368 1 3.9644365713099532e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+369 1 4.5307846529256608e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+370 1 5.0971327345413684e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+371 1 5.6634808161570760e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+372 1 6.2298288977727836e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+373 1 6.7961769793884912e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+374 1 7.3625250610041988e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+375 1 7.9288731426199064e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+376 1 8.4952212242356140e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+377 1 9.0615693058513216e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+378 1 9.6279173874670292e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+379 1 1.0194265469082737e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+380 1 1.0760613550698444e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+381 1 1.1326961632314152e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+382 1 1.1893309713929860e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+383 1 1.2459657795545567e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+384 1 1.3026005877161275e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+385 1 1.3592353958776982e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+386 1 1.4158702040392690e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+387 1 1.4725050122008398e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+388 1 1.5291398203624105e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+389 1 1.5857746285239813e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+390 1 1.6424094366855520e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+391 1 1.6990442448471228e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+392 1 1.7556790530086936e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+393 1 1.8123138611702643e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+394 1 1.8689486693318351e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+395 1 1.9255834774934058e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+396 1 1.9822182856549766e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+397 1 2.0388530938165474e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+398 1 2.0954879019781181e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+399 1 2.1521227101396889e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+400 1 2.2087575183012596e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+401 1 0.0000000000000000e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+402 1 1.1326961632314152e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+403 1 2.2653923264628304e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+404 1 3.3980884896942456e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+405 1 4.5307846529256608e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+406 1 5.6634808161570760e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+407 1 6.7961769793884912e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+408 1 7.9288731426199064e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+409 1 9.0615693058513216e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+410 1 1.0194265469082737e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+411 1 1.1326961632314152e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+412 1 1.2459657795545567e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+413 1 1.3592353958776982e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+414 1 1.4725050122008398e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+415 1 1.5857746285239813e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+416 1 1.6990442448471228e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+417 1 1.8123138611702643e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+418 1 1.9255834774934058e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+419 1 2.0388530938165474e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+420 1 2.1521227101396889e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+
+Velocities
+
+1 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+2 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+3 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+4 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+5 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+6 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+7 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+8 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+9 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+10 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+11 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+12 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+13 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+14 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+15 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+16 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+17 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+21 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+22 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+23 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+24 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+25 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+26 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+27 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+28 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+29 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+30 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+31 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+32 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+33 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+34 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+35 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+36 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+37 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+38 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+39 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+40 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+41 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+42 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+43 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+44 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+45 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+46 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+47 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+48 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+49 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+50 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+51 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+52 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+53 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+54 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+55 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+56 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+57 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+58 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+59 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+60 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+61 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+62 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+63 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+64 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+65 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+66 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+67 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+68 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+69 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+70 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+71 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+72 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+73 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+74 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+75 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+76 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+77 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+78 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+79 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+80 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+81 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+82 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+83 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+84 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+85 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+86 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+87 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+88 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+89 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+90 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+91 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+92 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+93 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+94 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+95 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+96 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+97 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+98 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+99 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+100 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+101 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+102 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+103 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+104 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+105 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+106 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+107 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+108 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+109 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+110 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+111 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+112 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+113 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+114 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+115 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+116 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+117 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+118 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+119 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+120 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+121 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+122 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+123 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+124 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+125 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+126 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+127 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+128 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+129 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+130 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+131 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+132 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+133 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+134 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+135 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+136 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+137 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+138 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+139 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+140 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+141 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+142 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+143 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+144 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+145 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+146 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+147 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+148 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+149 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+150 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+151 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+152 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+153 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+154 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+155 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+156 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+157 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+158 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+159 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+160 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+161 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+162 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+163 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+164 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+165 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+166 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+167 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+168 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+169 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+170 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+171 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+172 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+173 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+174 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+175 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+176 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+177 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+178 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+179 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+180 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+181 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+182 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+183 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+184 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+185 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+186 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+187 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+188 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+189 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+190 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+191 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+192 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+193 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+194 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+195 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+196 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+197 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+198 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+199 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+200 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+201 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+202 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+203 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+204 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+205 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+206 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+207 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+208 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+209 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+210 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+211 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+213 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+214 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+215 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+216 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+217 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+218 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+219 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+220 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+221 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+222 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+223 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+224 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+225 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+226 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+227 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+228 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+229 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+230 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+231 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+232 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+233 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+234 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+235 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+236 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+237 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+238 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+239 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+240 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+241 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+242 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+243 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+244 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+245 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+246 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+247 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+248 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+249 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+250 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+251 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+252 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+253 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+254 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+255 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+256 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+257 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+258 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+259 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+260 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+261 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+262 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+263 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+264 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+265 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+266 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+267 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+268 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+269 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+270 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+271 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+272 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+273 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+274 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+275 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+276 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+277 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+278 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+279 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+280 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+281 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+282 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+283 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+284 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+285 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+286 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+287 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+288 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+289 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+290 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+291 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+292 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+293 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+294 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+295 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+296 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+297 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+298 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+299 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+300 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+301 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+302 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+303 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+304 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+305 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+306 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+307 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+308 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+309 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+310 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+311 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+312 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+313 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+314 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+315 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+316 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+317 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+318 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+319 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+320 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+321 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+322 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+323 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+324 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+325 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+326 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+327 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+328 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+329 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+330 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+331 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+332 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+333 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+334 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+335 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+336 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+337 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+338 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+339 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+340 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+341 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+342 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+343 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+344 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+345 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+346 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+347 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+348 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+349 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+350 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+351 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+352 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+353 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+354 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+355 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+356 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+357 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+358 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+359 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+360 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+361 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+362 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+363 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+364 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+365 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+366 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+367 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+368 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+369 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+370 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+371 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+372 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+373 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+374 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+375 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+376 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+377 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+378 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+379 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+380 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+381 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+382 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+383 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+384 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+385 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+386 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+387 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+388 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+389 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+390 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+391 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+392 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+393 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+394 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+395 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+396 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+397 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+398 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+399 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+400 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+401 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+402 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+403 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+404 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+405 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+406 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+407 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+408 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+409 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+410 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+411 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+412 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+413 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+414 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+415 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+416 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+417 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+418 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+419 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+420 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
diff --git a/examples/neb/initial.hop2 b/examples/neb/initial.hop2
new file mode 100644
index 0000000000..5683b18309
--- /dev/null
+++ b/examples/neb/initial.hop2
@@ -0,0 +1,862 @@
+LAMMPS data file via write_data, version 27 Sep 2016, timestep = 0
+
+421 atoms
+3 atom types
+
+0.0000000000000000e+00 2.2653923264628304e+01 xlo xhi
+-2.1580760346806556e-03 2.0601974770713667e+01 ylo yhi
+-2.8317404080785380e-01 2.8317404080785380e-01 zlo zhi
+
+Masses
+
+1 1
+2 1
+3 1
+
+Atoms # atomic
+
+1 1 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+2 1 5.6634808161570760e-01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+3 1 1.1326961632314152e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+4 1 1.6990442448471228e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+5 1 2.2653923264628304e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+6 1 2.8317404080785380e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+7 1 3.3980884896942456e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+8 1 3.9644365713099532e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+9 1 4.5307846529256608e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+10 1 5.0971327345413684e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+11 1 5.6634808161570760e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+12 1 6.2298288977727836e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+13 1 6.7961769793884912e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+14 1 7.3625250610041988e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+15 1 7.9288731426199064e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+16 1 8.4952212242356140e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+17 1 9.0615693058513216e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+18 1 9.6279173874670292e+00 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+19 1 1.0194265469082737e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+20 1 1.0760613550698444e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+21 1 1.1326961632314152e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+22 1 1.1893309713929860e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+23 1 1.2459657795545567e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+24 1 1.3026005877161275e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+25 1 1.3592353958776982e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+26 1 1.4158702040392690e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+27 1 1.4725050122008398e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+28 1 1.5291398203624105e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+29 1 1.5857746285239813e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+30 1 1.6424094366855520e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+31 1 1.6990442448471228e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+32 1 1.7556790530086936e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+33 1 1.8123138611702643e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+34 1 1.8689486693318351e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+35 1 1.9255834774934058e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+36 1 1.9822182856549766e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+37 1 2.0388530938165474e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+38 1 2.0954879019781181e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+39 1 2.1521227101396889e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+40 1 2.2087575183012596e+01 9.8094365212757073e-01 0.0000000000000000e+00 0 0 0
+41 1 0.0000000000000000e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+42 1 5.6634808161570760e-01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+43 1 1.1326961632314152e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+44 1 1.6990442448471228e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+45 1 2.2653923264628304e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+46 1 2.8317404080785380e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+47 1 3.3980884896942456e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+48 1 3.9644365713099532e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+49 1 4.5307846529256608e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+50 1 5.0971327345413684e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+51 1 5.6634808161570760e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+52 1 6.2298288977727836e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+53 1 6.7961769793884912e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+54 1 7.3625250610041988e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+55 1 7.9288731426199064e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+56 1 8.4952212242356140e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+57 1 9.0615693058513216e+00 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+58 1 9.6279173874670292e+00 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+59 1 1.0194265469082737e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+60 1 1.0760613550698444e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+61 1 1.1326961632314152e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+62 1 1.1893309713929860e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+63 1 1.2459657795545567e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+64 1 1.3026005877161275e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+65 1 1.3592353958776982e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+66 1 1.4158702040392690e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+67 1 1.4725050122008398e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+68 1 1.5291398203624105e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+69 1 1.5857746285239813e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+70 1 1.6424094366855520e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+71 1 1.6990442448471228e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+72 1 1.7556790530086936e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+73 1 1.8123138611702643e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+74 1 1.8689486693318351e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+75 1 1.9255834774934058e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+76 1 1.9822182856549766e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+77 1 2.0388530938165474e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+78 1 2.0954879019781181e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+79 1 2.1521227101396889e+01 1.9618873042551415e+00 0.0000000000000000e+00 0 0 0
+80 1 2.2087575183012596e+01 2.9428309563827124e+00 0.0000000000000000e+00 0 0 0
+81 1 0.0000000000000000e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+82 1 5.6634808161570760e-01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+83 1 1.1326961632314152e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+84 1 1.6990442448471228e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+85 1 2.2653923264628304e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+86 1 2.8317404080785380e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+87 1 3.3980884896942456e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+88 1 3.9644365713099532e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+89 1 4.5307846529256608e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+90 1 5.0971327345413684e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+91 1 5.6634808161570760e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+92 1 6.2298288977727836e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+93 1 6.7961769793884912e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+94 1 7.3625250610041988e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+95 1 7.9288731426199064e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+96 1 8.4952212242356140e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+97 1 9.0615693058513216e+00 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+98 1 9.6279173874670292e+00 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+99 1 1.0194265469082737e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+100 1 1.0760613550698444e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+101 1 1.1326961632314152e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+102 1 1.1893309713929860e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+103 1 1.2459657795545567e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+104 1 1.3026005877161275e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+105 1 1.3592353958776982e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+106 1 1.4158702040392690e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+107 1 1.4725050122008398e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+108 1 1.5291398203624105e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+109 1 1.5857746285239813e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+110 1 1.6424094366855520e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+111 1 1.6990442448471228e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+112 1 1.7556790530086936e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+113 1 1.8123138611702643e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+114 1 1.8689486693318351e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+115 1 1.9255834774934058e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+116 1 1.9822182856549766e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+117 1 2.0388530938165474e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+118 1 2.0954879019781181e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+119 1 2.1521227101396889e+01 3.9237746085102829e+00 0.0000000000000000e+00 0 0 0
+120 1 2.2087575183012596e+01 4.9047182606378534e+00 0.0000000000000000e+00 0 0 0
+121 1 0.0000000000000000e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+122 1 5.6634808161570760e-01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+123 1 1.1326961632314152e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+124 1 1.6990442448471228e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+125 1 2.2653923264628304e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+126 1 2.8317404080785380e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+127 1 3.3980884896942456e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+128 1 3.9644365713099532e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+129 1 4.5307846529256608e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+130 1 5.0971327345413684e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+131 1 5.6634808161570760e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+132 1 6.2298288977727836e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+133 1 6.7961769793884912e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+134 1 7.3625250610041988e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+135 1 7.9288731426199064e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+136 1 8.4952212242356140e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+137 1 9.0615693058513216e+00 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+138 1 9.6279173874670292e+00 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+139 1 1.0194265469082737e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+140 1 1.0760613550698444e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+141 1 1.1326961632314152e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+142 1 1.1893309713929860e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+143 1 1.2459657795545567e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+144 1 1.3026005877161275e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+145 1 1.3592353958776982e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+146 1 1.4158702040392690e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+147 1 1.4725050122008398e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+148 1 1.5291398203624105e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+149 1 1.5857746285239813e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+150 1 1.6424094366855520e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+151 1 1.6990442448471228e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+152 1 1.7556790530086936e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+153 1 1.8123138611702643e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+154 1 1.8689486693318351e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+155 1 1.9255834774934058e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+156 1 1.9822182856549766e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+157 1 2.0388530938165474e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+158 1 2.0954879019781181e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+159 1 2.1521227101396889e+01 5.8856619127654248e+00 0.0000000000000000e+00 0 0 0
+160 1 2.2087575183012596e+01 6.8666055648929953e+00 0.0000000000000000e+00 0 0 0
+161 1 0.0000000000000000e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+162 1 5.6634808161570760e-01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+163 1 1.1326961632314152e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+164 1 1.6990442448471228e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+165 1 2.2653923264628304e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+166 1 2.8317404080785380e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+167 1 3.3980884896942456e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+168 1 3.9644365713099532e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+169 1 4.5307846529256608e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+170 1 5.0971327345413684e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+171 1 5.6634808161570760e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+172 1 6.2298288977727836e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+173 1 6.7961769793884912e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+174 1 7.3625250610041988e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+175 1 7.9288731426199064e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+176 1 8.4952212242356140e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+177 1 9.0615693058513216e+00 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+178 1 9.6279173874670292e+00 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+179 1 1.0194265469082737e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+180 1 1.0760613550698444e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+181 1 1.1326961632314152e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+182 1 1.1893309713929860e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+183 1 1.2459657795545567e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+184 1 1.3026005877161275e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+185 1 1.3592353958776982e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+186 1 1.4158702040392690e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+187 1 1.4725050122008398e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+188 1 1.5291398203624105e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+189 1 1.5857746285239813e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+190 1 1.6424094366855520e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+191 1 1.6990442448471228e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+192 1 1.7556790530086936e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+193 1 1.8123138611702643e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+194 1 1.8689486693318351e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+195 1 1.9255834774934058e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+196 1 1.9822182856549766e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+197 1 2.0388530938165474e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+198 1 2.0954879019781181e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+199 1 2.1521227101396889e+01 7.8475492170205658e+00 0.0000000000000000e+00 0 0 0
+200 1 2.2087575183012596e+01 8.8284928691481355e+00 0.0000000000000000e+00 0 0 0
+201 1 0.0000000000000000e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+202 1 5.6634808161570760e-01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+203 1 1.1326961632314152e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+204 1 1.6990442448471228e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+205 1 2.2653923264628304e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+206 1 2.8317404080785380e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+207 1 3.3980884896942456e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+208 1 3.9644365713099532e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+209 1 4.5307846529256608e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+210 1 5.0971327345413684e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+211 1 5.6634808161570760e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+212 1 6.2298288977727836e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+213 1 6.7961769793884912e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+214 1 7.3625250610041988e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+215 1 7.9288731426199064e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+216 1 8.4952212242356140e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+217 1 9.0615693058513216e+00 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+218 1 9.6279173874670292e+00 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+219 1 1.0194265469082737e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+220 1 1.0760613550698444e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+221 1 1.1326961632314152e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+222 1 1.1893309713929860e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+223 1 1.2459657795545567e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+224 1 1.3026005877161275e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+225 1 1.3592353958776982e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+226 1 1.4158702040392690e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+227 1 1.4725050122008398e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+228 1 1.5291398203624105e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+229 1 1.5857746285239813e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+230 1 1.6424094366855520e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+231 1 1.6990442448471228e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+232 1 1.7556790530086936e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+233 1 1.8123138611702643e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+234 1 1.8689486693318351e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+235 1 1.9255834774934058e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+236 1 1.9822182856549766e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+237 1 2.0388530938165474e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+238 1 2.0954879019781181e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+239 1 2.1521227101396889e+01 9.8094365212757069e+00 0.0000000000000000e+00 0 0 0
+240 1 2.2087575183012596e+01 1.0790380173403278e+01 0.0000000000000000e+00 0 0 0
+241 1 0.0000000000000000e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+242 1 5.6634808161570760e-01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+243 1 1.1326961632314152e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+244 1 1.6990442448471228e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+245 1 2.2653923264628304e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+246 1 2.8317404080785380e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+247 1 3.3980884896942456e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+248 1 3.9644365713099532e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+249 1 4.5307846529256608e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+250 1 5.0971327345413684e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+251 1 5.6634808161570760e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+252 1 6.2298288977727836e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+253 1 6.7961769793884912e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+254 1 7.3625250610041988e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+255 1 7.9288731426199064e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+256 1 8.4952212242356140e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+257 1 9.0615693058513216e+00 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+258 1 9.6279173874670292e+00 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+259 1 1.0194265469082737e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+260 1 1.0760613550698444e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+261 1 1.1326961632314152e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+262 1 1.1893309713929860e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+263 1 1.2459657795545567e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+264 1 1.3026005877161275e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+265 1 1.3592353958776982e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+266 1 1.4158702040392690e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+267 1 1.4725050122008398e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+268 1 1.5291398203624105e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+269 1 1.5857746285239813e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+270 1 1.6424094366855520e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+271 1 1.6990442448471228e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+272 1 1.7556790530086936e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+273 1 1.8123138611702643e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+274 1 1.8689486693318351e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+275 1 1.9255834774934058e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+276 1 1.9822182856549766e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+277 1 2.0388530938165474e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+278 1 2.0954879019781181e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+279 1 2.1521227101396889e+01 1.1771323825530850e+01 0.0000000000000000e+00 0 0 0
+280 1 2.2087575183012596e+01 1.2752267477658419e+01 0.0000000000000000e+00 0 0 0
+281 1 0.0000000000000000e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+282 1 5.6634808161570760e-01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+283 1 1.1326961632314152e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+284 1 1.6990442448471228e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+285 1 2.2653923264628304e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+286 1 2.8317404080785380e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+287 1 3.3980884896942456e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+288 1 3.9644365713099532e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+289 1 4.5307846529256608e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+290 1 5.0971327345413684e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+291 1 5.6634808161570760e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+292 1 6.2298288977727836e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+293 1 6.7961769793884912e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+294 1 7.3625250610041988e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+295 1 7.9288731426199064e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+296 1 8.4952212242356140e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+297 1 9.0615693058513216e+00 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+298 1 9.6279173874670292e+00 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+299 1 1.0194265469082737e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+300 1 1.0760613550698444e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+301 1 1.1326961632314152e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+302 1 1.1893309713929860e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+303 1 1.2459657795545567e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+304 1 1.3026005877161275e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+305 1 1.3592353958776982e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+306 1 1.4158702040392690e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+307 1 1.4725050122008398e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+308 1 1.5291398203624105e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+309 1 1.5857746285239813e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+310 1 1.6424094366855520e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+311 1 1.6990442448471228e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+312 1 1.7556790530086936e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+313 1 1.8123138611702643e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+314 1 1.8689486693318351e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+315 1 1.9255834774934058e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+316 1 1.9822182856549766e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+317 1 2.0388530938165474e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+318 1 2.0954879019781181e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+319 1 2.1521227101396889e+01 1.3733211129785991e+01 0.0000000000000000e+00 0 0 0
+320 1 2.2087575183012596e+01 1.4714154781913560e+01 0.0000000000000000e+00 0 0 0
+321 1 0.0000000000000000e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+322 1 5.6634808161570760e-01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+323 1 1.1326961632314152e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+324 1 1.6990442448471228e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+325 1 2.2653923264628304e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+326 1 2.8317404080785380e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+327 1 3.3980884896942456e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+328 1 3.9644365713099532e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+329 1 4.5307846529256608e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+330 1 5.0971327345413684e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+331 1 5.6634808161570760e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+332 1 6.2298288977727836e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+333 1 6.7961769793884912e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+334 1 7.3625250610041988e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+335 1 7.9288731426199064e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+336 1 8.4952212242356140e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+337 1 9.0615693058513216e+00 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+338 1 9.6279173874670292e+00 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+339 1 1.0194265469082737e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+340 1 1.0760613550698444e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+341 1 1.1326961632314152e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+342 1 1.1893309713929860e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+343 1 1.2459657795545567e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+344 1 1.3026005877161275e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+345 1 1.3592353958776982e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+346 1 1.4158702040392690e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+347 1 1.4725050122008398e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+348 1 1.5291398203624105e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+349 1 1.5857746285239813e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+350 1 1.6424094366855520e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+351 1 1.6990442448471228e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+352 1 1.7556790530086936e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+353 1 1.8123138611702643e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+354 1 1.8689486693318351e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+355 1 1.9255834774934058e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+356 1 1.9822182856549766e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+357 1 2.0388530938165474e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+358 1 2.0954879019781181e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+359 1 2.1521227101396889e+01 1.5695098434041132e+01 0.0000000000000000e+00 0 0 0
+360 1 2.2087575183012596e+01 1.6676042086168703e+01 0.0000000000000000e+00 0 0 0
+361 1 0.0000000000000000e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+362 1 5.6634808161570760e-01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+363 1 1.1326961632314152e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+364 1 1.6990442448471228e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+365 1 2.2653923264628304e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+366 1 2.8317404080785380e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+367 1 3.3980884896942456e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+368 1 3.9644365713099532e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+369 1 4.5307846529256608e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+370 1 5.0971327345413684e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+371 1 5.6634808161570760e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+372 1 6.2298288977727836e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+373 1 6.7961769793884912e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+374 1 7.3625250610041988e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+375 1 7.9288731426199064e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+376 1 8.4952212242356140e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+377 1 9.0615693058513216e+00 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+378 1 9.6279173874670292e+00 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+379 1 1.0194265469082737e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+380 1 1.0760613550698444e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+381 1 1.1326961632314152e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+382 1 1.1893309713929860e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+383 1 1.2459657795545567e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+384 1 1.3026005877161275e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+385 1 1.3592353958776982e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+386 1 1.4158702040392690e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+387 1 1.4725050122008398e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+388 1 1.5291398203624105e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+389 1 1.5857746285239813e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+390 1 1.6424094366855520e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+391 1 1.6990442448471228e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+392 1 1.7556790530086936e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+393 1 1.8123138611702643e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+394 1 1.8689486693318351e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+395 1 1.9255834774934058e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+396 1 1.9822182856549766e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+397 1 2.0388530938165474e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+398 1 2.0954879019781181e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+399 1 2.1521227101396889e+01 1.7656985738296271e+01 0.0000000000000000e+00 0 0 0
+400 1 2.2087575183012596e+01 1.8637929390423842e+01 0.0000000000000000e+00 0 0 0
+401 1 0.0000000000000000e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+402 1 1.1326961632314152e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+403 1 2.2653923264628304e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+404 1 3.3980884896942456e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+405 1 4.5307846529256608e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+406 1 5.6634808161570760e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+407 1 6.7961769793884912e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+408 1 7.9288731426199064e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+409 1 9.0615693058513216e+00 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+410 1 1.0194265469082737e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+411 1 1.1326961632314152e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+412 1 1.2459657795545567e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+413 1 1.3592353958776982e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+414 1 1.4725050122008398e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+415 1 1.5857746285239813e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+416 1 1.6990442448471228e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+417 1 1.8123138611702643e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+418 1 1.9255834774934058e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+419 1 2.0388530938165474e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+420 1 2.1521227101396889e+01 1.9618873042551414e+01 0.0000000000000000e+00 0 0 0
+421 1 1.3026005877161275e+01 2.0599816694678985e+01 0.0000000000000000e+00 0 0 0
+
+Velocities
+
+1 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+2 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+3 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+4 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+5 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+6 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+7 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+8 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+9 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+10 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+11 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+12 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+13 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+14 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+15 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+16 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+17 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+21 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+22 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+23 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+24 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+25 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+26 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+27 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+28 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+29 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+30 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+31 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+32 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+33 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+34 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+35 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+36 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+37 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+38 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+39 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+40 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+41 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+42 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+43 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+44 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+45 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+46 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+47 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+48 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+49 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+50 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+51 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+52 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+53 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+54 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+55 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+56 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+57 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+58 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+59 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+60 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+61 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+62 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+63 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+64 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+65 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+66 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+67 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+68 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+69 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+70 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+71 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+72 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+73 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+74 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+75 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+76 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+77 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+78 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+79 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+80 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+81 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+82 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+83 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+84 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+85 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+86 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+87 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+88 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+89 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+90 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+91 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+92 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+93 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+94 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+95 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+96 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+97 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+98 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+99 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+100 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+101 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+102 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+103 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+104 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+105 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+106 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+107 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+108 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+109 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+110 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+111 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+112 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+113 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+114 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+115 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+116 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+117 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+118 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+119 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+120 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+121 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+122 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+123 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+124 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+125 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+126 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+127 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+128 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+129 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+130 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+131 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+132 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+133 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+134 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+135 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+136 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+137 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+138 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+139 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+140 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+141 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+142 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+143 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+144 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+145 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+146 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+147 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+148 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+149 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+150 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+151 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+152 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+153 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+154 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+155 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+156 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+157 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+158 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+159 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+160 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+161 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+162 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+163 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+164 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+165 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+166 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+167 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+168 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+169 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+170 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+171 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+172 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+173 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+174 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+175 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+176 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+177 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+178 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+179 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+180 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+181 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+182 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+183 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+184 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+185 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+186 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+187 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+188 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+189 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+190 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+191 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+192 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+193 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+194 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+195 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+196 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+197 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+198 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+199 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+200 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+201 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+202 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+203 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+204 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+205 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+206 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+207 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+208 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+209 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+210 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+211 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+213 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+214 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+215 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+216 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+217 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+218 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+219 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+220 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+221 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+222 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+223 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+224 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+225 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+226 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+227 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+228 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+229 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+230 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+231 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+232 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+233 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+234 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+235 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+236 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+237 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+238 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+239 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+240 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+241 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+242 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+243 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+244 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+245 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+246 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+247 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+248 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+249 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+250 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+251 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+252 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+253 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+254 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+255 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+256 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+257 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+258 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+259 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+260 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+261 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+262 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+263 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+264 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+265 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+266 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+267 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+268 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+269 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+270 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+271 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+272 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+273 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+274 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+275 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+276 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+277 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+278 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+279 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+280 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+281 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+282 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+283 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+284 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+285 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+286 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+287 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+288 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+289 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+290 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+291 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+292 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+293 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+294 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+295 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+296 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+297 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+298 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+299 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+300 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+301 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+302 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+303 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+304 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+305 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+306 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+307 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+308 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+309 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+310 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+311 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+312 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+313 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+314 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+315 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+316 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+317 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+318 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+319 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+320 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+321 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+322 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+323 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+324 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+325 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+326 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+327 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+328 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+329 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+330 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+331 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+332 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+333 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+334 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+335 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+336 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+337 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+338 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+339 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+340 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+341 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+342 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+343 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+344 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+345 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+346 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+347 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+348 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+349 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+350 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+351 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+352 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+353 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+354 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+355 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+356 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+357 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+358 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+359 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+360 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+361 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+362 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+363 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+364 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+365 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+366 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+367 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+368 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+369 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+370 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+371 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+372 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+373 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+374 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+375 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+376 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+377 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+378 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+379 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+380 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+381 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+382 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+383 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+384 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+385 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+386 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+387 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+388 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+389 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+390 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+391 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+392 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+393 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+394 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+395 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+396 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+397 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+398 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+399 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+400 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+401 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+402 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+403 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+404 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+405 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+406 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+407 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+408 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+409 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+410 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+411 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+412 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+413 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+414 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+415 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+416 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+417 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+418 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+419 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+420 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+421 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
diff --git a/examples/neb/initial.sivac b/examples/neb/initial.sivac
new file mode 100644
index 0000000000..5664b6c39a
--- /dev/null
+++ b/examples/neb/initial.sivac
@@ -0,0 +1,1042 @@
+LAMMPS data file via write_data, version 27 Sep 2016, timestep = 0
+
+512 atoms
+1 atom types
+
+0.0000000000000000e+00 2.1724000000000000e+01 xlo xhi
+0.0000000000000000e+00 2.1724000000000000e+01 ylo yhi
+0.0000000000000000e+00 2.1724000000000000e+01 zlo zhi
+
+Masses
+
+1 28.06
+
+Atoms # atomic
+
+1 1 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+2 1 0.0000000000000000e+00 2.7155000000000000e+00 2.7155000000000000e+00 0 0 0
+3 1 2.7155000000000000e+00 0.0000000000000000e+00 2.7155000000000000e+00 0 0 0
+4 1 2.7155000000000000e+00 2.7155000000000000e+00 0.0000000000000000e+00 0 0 0
+5 1 1.3577500000000000e+00 1.3577500000000000e+00 1.3577500000000000e+00 0 0 0
+6 1 1.3577500000000000e+00 4.0732499999999998e+00 4.0732499999999998e+00 0 0 0
+7 1 4.0732499999999998e+00 1.3577500000000000e+00 4.0732499999999998e+00 0 0 0
+8 1 4.0732499999999998e+00 4.0732499999999998e+00 1.3577500000000000e+00 0 0 0
+9 1 5.4310000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+10 1 5.4310000000000000e+00 2.7155000000000000e+00 2.7155000000000000e+00 0 0 0
+11 1 8.1464999999999996e+00 0.0000000000000000e+00 2.7155000000000000e+00 0 0 0
+12 1 8.1464999999999996e+00 2.7155000000000000e+00 0.0000000000000000e+00 0 0 0
+13 1 6.7887500000000003e+00 1.3577500000000000e+00 1.3577500000000000e+00 0 0 0
+14 1 6.7887500000000003e+00 4.0732499999999998e+00 4.0732499999999998e+00 0 0 0
+15 1 9.5042500000000008e+00 1.3577500000000000e+00 4.0732499999999998e+00 0 0 0
+16 1 9.5042500000000008e+00 4.0732499999999998e+00 1.3577500000000000e+00 0 0 0
+17 1 1.0862000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+18 1 1.0862000000000000e+01 2.7155000000000000e+00 2.7155000000000000e+00 0 0 0
+19 1 1.3577500000000001e+01 0.0000000000000000e+00 2.7155000000000000e+00 0 0 0
+20 1 1.3577500000000001e+01 2.7155000000000000e+00 0.0000000000000000e+00 0 0 0
+21 1 1.2219749999999999e+01 1.3577500000000000e+00 1.3577500000000000e+00 0 0 0
+22 1 1.2219749999999999e+01 4.0732499999999998e+00 4.0732499999999998e+00 0 0 0
+23 1 1.4935250000000000e+01 1.3577500000000000e+00 4.0732499999999998e+00 0 0 0
+24 1 1.4935250000000000e+01 4.0732499999999998e+00 1.3577500000000000e+00 0 0 0
+25 1 1.6292999999999999e+01 0.0000000000000000e+00 0.0000000000000000e+00 0 0 0
+26 1 1.6292999999999999e+01 2.7155000000000000e+00 2.7155000000000000e+00 0 0 0
+27 1 1.9008500000000002e+01 0.0000000000000000e+00 2.7155000000000000e+00 0 0 0
+28 1 1.9008500000000002e+01 2.7155000000000000e+00 0.0000000000000000e+00 0 0 0
+29 1 1.7650749999999999e+01 1.3577500000000000e+00 1.3577500000000000e+00 0 0 0
+30 1 1.7650749999999999e+01 4.0732499999999998e+00 4.0732499999999998e+00 0 0 0
+31 1 2.0366250000000001e+01 1.3577500000000000e+00 4.0732499999999998e+00 0 0 0
+32 1 2.0366250000000001e+01 4.0732499999999998e+00 1.3577500000000000e+00 0 0 0
+33 1 0.0000000000000000e+00 5.4310000000000000e+00 0.0000000000000000e+00 0 0 0
+34 1 0.0000000000000000e+00 8.1464999999999996e+00 2.7155000000000000e+00 0 0 0
+35 1 2.7155000000000000e+00 5.4310000000000000e+00 2.7155000000000000e+00 0 0 0
+36 1 2.7155000000000000e+00 8.1464999999999996e+00 0.0000000000000000e+00 0 0 0
+37 1 1.3577500000000000e+00 6.7887500000000003e+00 1.3577500000000000e+00 0 0 0
+38 1 1.3577500000000000e+00 9.5042500000000008e+00 4.0732499999999998e+00 0 0 0
+39 1 4.0732499999999998e+00 6.7887500000000003e+00 4.0732499999999998e+00 0 0 0
+40 1 4.0732499999999998e+00 9.5042500000000008e+00 1.3577500000000000e+00 0 0 0
+41 1 5.4310000000000000e+00 5.4310000000000000e+00 0.0000000000000000e+00 0 0 0
+42 1 5.4310000000000000e+00 8.1464999999999996e+00 2.7155000000000000e+00 0 0 0
+43 1 8.1464999999999996e+00 5.4310000000000000e+00 2.7155000000000000e+00 0 0 0
+44 1 8.1464999999999996e+00 8.1464999999999996e+00 0.0000000000000000e+00 0 0 0
+45 1 6.7887500000000003e+00 6.7887500000000003e+00 1.3577500000000000e+00 0 0 0
+46 1 6.7887500000000003e+00 9.5042500000000008e+00 4.0732499999999998e+00 0 0 0
+47 1 9.5042500000000008e+00 6.7887500000000003e+00 4.0732499999999998e+00 0 0 0
+48 1 9.5042500000000008e+00 9.5042500000000008e+00 1.3577500000000000e+00 0 0 0
+49 1 1.0862000000000000e+01 5.4310000000000000e+00 0.0000000000000000e+00 0 0 0
+50 1 1.0862000000000000e+01 8.1464999999999996e+00 2.7155000000000000e+00 0 0 0
+51 1 1.3577500000000001e+01 5.4310000000000000e+00 2.7155000000000000e+00 0 0 0
+52 1 1.3577500000000001e+01 8.1464999999999996e+00 0.0000000000000000e+00 0 0 0
+53 1 1.2219749999999999e+01 6.7887500000000003e+00 1.3577500000000000e+00 0 0 0
+54 1 1.2219749999999999e+01 9.5042500000000008e+00 4.0732499999999998e+00 0 0 0
+55 1 1.4935250000000000e+01 6.7887500000000003e+00 4.0732499999999998e+00 0 0 0
+56 1 1.4935250000000000e+01 9.5042500000000008e+00 1.3577500000000000e+00 0 0 0
+57 1 1.6292999999999999e+01 5.4310000000000000e+00 0.0000000000000000e+00 0 0 0
+58 1 1.6292999999999999e+01 8.1464999999999996e+00 2.7155000000000000e+00 0 0 0
+59 1 1.9008500000000002e+01 5.4310000000000000e+00 2.7155000000000000e+00 0 0 0
+60 1 1.9008500000000002e+01 8.1464999999999996e+00 0.0000000000000000e+00 0 0 0
+61 1 1.7650749999999999e+01 6.7887500000000003e+00 1.3577500000000000e+00 0 0 0
+62 1 1.7650749999999999e+01 9.5042500000000008e+00 4.0732499999999998e+00 0 0 0
+63 1 2.0366250000000001e+01 6.7887500000000003e+00 4.0732499999999998e+00 0 0 0
+64 1 2.0366250000000001e+01 9.5042500000000008e+00 1.3577500000000000e+00 0 0 0
+65 1 0.0000000000000000e+00 1.0862000000000000e+01 0.0000000000000000e+00 0 0 0
+66 1 0.0000000000000000e+00 1.3577500000000001e+01 2.7155000000000000e+00 0 0 0
+67 1 2.7155000000000000e+00 1.0862000000000000e+01 2.7155000000000000e+00 0 0 0
+68 1 2.7155000000000000e+00 1.3577500000000001e+01 0.0000000000000000e+00 0 0 0
+69 1 1.3577500000000000e+00 1.2219749999999999e+01 1.3577500000000000e+00 0 0 0
+70 1 1.3577500000000000e+00 1.4935250000000000e+01 4.0732499999999998e+00 0 0 0
+71 1 4.0732499999999998e+00 1.2219749999999999e+01 4.0732499999999998e+00 0 0 0
+72 1 4.0732499999999998e+00 1.4935250000000000e+01 1.3577500000000000e+00 0 0 0
+73 1 5.4310000000000000e+00 1.0862000000000000e+01 0.0000000000000000e+00 0 0 0
+74 1 5.4310000000000000e+00 1.3577500000000001e+01 2.7155000000000000e+00 0 0 0
+75 1 8.1464999999999996e+00 1.0862000000000000e+01 2.7155000000000000e+00 0 0 0
+76 1 8.1464999999999996e+00 1.3577500000000001e+01 0.0000000000000000e+00 0 0 0
+77 1 6.7887500000000003e+00 1.2219749999999999e+01 1.3577500000000000e+00 0 0 0
+78 1 6.7887500000000003e+00 1.4935250000000000e+01 4.0732499999999998e+00 0 0 0
+79 1 9.5042500000000008e+00 1.2219749999999999e+01 4.0732499999999998e+00 0 0 0
+80 1 9.5042500000000008e+00 1.4935250000000000e+01 1.3577500000000000e+00 0 0 0
+81 1 1.0862000000000000e+01 1.0862000000000000e+01 0.0000000000000000e+00 0 0 0
+82 1 1.0862000000000000e+01 1.3577500000000001e+01 2.7155000000000000e+00 0 0 0
+83 1 1.3577500000000001e+01 1.0862000000000000e+01 2.7155000000000000e+00 0 0 0
+84 1 1.3577500000000001e+01 1.3577500000000001e+01 0.0000000000000000e+00 0 0 0
+85 1 1.2219749999999999e+01 1.2219749999999999e+01 1.3577500000000000e+00 0 0 0
+86 1 1.2219749999999999e+01 1.4935250000000000e+01 4.0732499999999998e+00 0 0 0
+87 1 1.4935250000000000e+01 1.2219749999999999e+01 4.0732499999999998e+00 0 0 0
+88 1 1.4935250000000000e+01 1.4935250000000000e+01 1.3577500000000000e+00 0 0 0
+89 1 1.6292999999999999e+01 1.0862000000000000e+01 0.0000000000000000e+00 0 0 0
+90 1 1.6292999999999999e+01 1.3577500000000001e+01 2.7155000000000000e+00 0 0 0
+91 1 1.9008500000000002e+01 1.0862000000000000e+01 2.7155000000000000e+00 0 0 0
+92 1 1.9008500000000002e+01 1.3577500000000001e+01 0.0000000000000000e+00 0 0 0
+93 1 1.7650749999999999e+01 1.2219749999999999e+01 1.3577500000000000e+00 0 0 0
+94 1 1.7650749999999999e+01 1.4935250000000000e+01 4.0732499999999998e+00 0 0 0
+95 1 2.0366250000000001e+01 1.2219749999999999e+01 4.0732499999999998e+00 0 0 0
+96 1 2.0366250000000001e+01 1.4935250000000000e+01 1.3577500000000000e+00 0 0 0
+97 1 0.0000000000000000e+00 1.6292999999999999e+01 0.0000000000000000e+00 0 0 0
+98 1 0.0000000000000000e+00 1.9008500000000002e+01 2.7155000000000000e+00 0 0 0
+99 1 2.7155000000000000e+00 1.6292999999999999e+01 2.7155000000000000e+00 0 0 0
+100 1 2.7155000000000000e+00 1.9008500000000002e+01 0.0000000000000000e+00 0 0 0
+101 1 1.3577500000000000e+00 1.7650749999999999e+01 1.3577500000000000e+00 0 0 0
+102 1 1.3577500000000000e+00 2.0366250000000001e+01 4.0732499999999998e+00 0 0 0
+103 1 4.0732499999999998e+00 1.7650749999999999e+01 4.0732499999999998e+00 0 0 0
+104 1 4.0732499999999998e+00 2.0366250000000001e+01 1.3577500000000000e+00 0 0 0
+105 1 5.4310000000000000e+00 1.6292999999999999e+01 0.0000000000000000e+00 0 0 0
+106 1 5.4310000000000000e+00 1.9008500000000002e+01 2.7155000000000000e+00 0 0 0
+107 1 8.1464999999999996e+00 1.6292999999999999e+01 2.7155000000000000e+00 0 0 0
+108 1 8.1464999999999996e+00 1.9008500000000002e+01 0.0000000000000000e+00 0 0 0
+109 1 6.7887500000000003e+00 1.7650749999999999e+01 1.3577500000000000e+00 0 0 0
+110 1 6.7887500000000003e+00 2.0366250000000001e+01 4.0732499999999998e+00 0 0 0
+111 1 9.5042500000000008e+00 1.7650749999999999e+01 4.0732499999999998e+00 0 0 0
+112 1 9.5042500000000008e+00 2.0366250000000001e+01 1.3577500000000000e+00 0 0 0
+113 1 1.0862000000000000e+01 1.6292999999999999e+01 0.0000000000000000e+00 0 0 0
+114 1 1.0862000000000000e+01 1.9008500000000002e+01 2.7155000000000000e+00 0 0 0
+115 1 1.3577500000000001e+01 1.6292999999999999e+01 2.7155000000000000e+00 0 0 0
+116 1 1.3577500000000001e+01 1.9008500000000002e+01 0.0000000000000000e+00 0 0 0
+117 1 1.2219749999999999e+01 1.7650749999999999e+01 1.3577500000000000e+00 0 0 0
+118 1 1.2219749999999999e+01 2.0366250000000001e+01 4.0732499999999998e+00 0 0 0
+119 1 1.4935250000000000e+01 1.7650749999999999e+01 4.0732499999999998e+00 0 0 0
+120 1 1.4935250000000000e+01 2.0366250000000001e+01 1.3577500000000000e+00 0 0 0
+121 1 1.6292999999999999e+01 1.6292999999999999e+01 0.0000000000000000e+00 0 0 0
+122 1 1.6292999999999999e+01 1.9008500000000002e+01 2.7155000000000000e+00 0 0 0
+123 1 1.9008500000000002e+01 1.6292999999999999e+01 2.7155000000000000e+00 0 0 0
+124 1 1.9008500000000002e+01 1.9008500000000002e+01 0.0000000000000000e+00 0 0 0
+125 1 1.7650749999999999e+01 1.7650749999999999e+01 1.3577500000000000e+00 0 0 0
+126 1 1.7650749999999999e+01 2.0366250000000001e+01 4.0732499999999998e+00 0 0 0
+127 1 2.0366250000000001e+01 1.7650749999999999e+01 4.0732499999999998e+00 0 0 0
+128 1 2.0366250000000001e+01 2.0366250000000001e+01 1.3577500000000000e+00 0 0 0
+129 1 0.0000000000000000e+00 0.0000000000000000e+00 5.4310000000000000e+00 0 0 0
+130 1 0.0000000000000000e+00 2.7155000000000000e+00 8.1464999999999996e+00 0 0 0
+131 1 2.7155000000000000e+00 0.0000000000000000e+00 8.1464999999999996e+00 0 0 0
+132 1 2.7155000000000000e+00 2.7155000000000000e+00 5.4310000000000000e+00 0 0 0
+133 1 1.3577500000000000e+00 1.3577500000000000e+00 6.7887500000000003e+00 0 0 0
+134 1 1.3577500000000000e+00 4.0732499999999998e+00 9.5042500000000008e+00 0 0 0
+135 1 4.0732499999999998e+00 1.3577500000000000e+00 9.5042500000000008e+00 0 0 0
+136 1 4.0732499999999998e+00 4.0732499999999998e+00 6.7887500000000003e+00 0 0 0
+137 1 5.4310000000000000e+00 0.0000000000000000e+00 5.4310000000000000e+00 0 0 0
+138 1 5.4310000000000000e+00 2.7155000000000000e+00 8.1464999999999996e+00 0 0 0
+139 1 8.1464999999999996e+00 0.0000000000000000e+00 8.1464999999999996e+00 0 0 0
+140 1 8.1464999999999996e+00 2.7155000000000000e+00 5.4310000000000000e+00 0 0 0
+141 1 6.7887500000000003e+00 1.3577500000000000e+00 6.7887500000000003e+00 0 0 0
+142 1 6.7887500000000003e+00 4.0732499999999998e+00 9.5042500000000008e+00 0 0 0
+143 1 9.5042500000000008e+00 1.3577500000000000e+00 9.5042500000000008e+00 0 0 0
+144 1 9.5042500000000008e+00 4.0732499999999998e+00 6.7887500000000003e+00 0 0 0
+145 1 1.0862000000000000e+01 0.0000000000000000e+00 5.4310000000000000e+00 0 0 0
+146 1 1.0862000000000000e+01 2.7155000000000000e+00 8.1464999999999996e+00 0 0 0
+147 1 1.3577500000000001e+01 0.0000000000000000e+00 8.1464999999999996e+00 0 0 0
+148 1 1.3577500000000001e+01 2.7155000000000000e+00 5.4310000000000000e+00 0 0 0
+149 1 1.2219749999999999e+01 1.3577500000000000e+00 6.7887500000000003e+00 0 0 0
+150 1 1.2219749999999999e+01 4.0732499999999998e+00 9.5042500000000008e+00 0 0 0
+151 1 1.4935250000000000e+01 1.3577500000000000e+00 9.5042500000000008e+00 0 0 0
+152 1 1.4935250000000000e+01 4.0732499999999998e+00 6.7887500000000003e+00 0 0 0
+153 1 1.6292999999999999e+01 0.0000000000000000e+00 5.4310000000000000e+00 0 0 0
+154 1 1.6292999999999999e+01 2.7155000000000000e+00 8.1464999999999996e+00 0 0 0
+155 1 1.9008500000000002e+01 0.0000000000000000e+00 8.1464999999999996e+00 0 0 0
+156 1 1.9008500000000002e+01 2.7155000000000000e+00 5.4310000000000000e+00 0 0 0
+157 1 1.7650749999999999e+01 1.3577500000000000e+00 6.7887500000000003e+00 0 0 0
+158 1 1.7650749999999999e+01 4.0732499999999998e+00 9.5042500000000008e+00 0 0 0
+159 1 2.0366250000000001e+01 1.3577500000000000e+00 9.5042500000000008e+00 0 0 0
+160 1 2.0366250000000001e+01 4.0732499999999998e+00 6.7887500000000003e+00 0 0 0
+161 1 0.0000000000000000e+00 5.4310000000000000e+00 5.4310000000000000e+00 0 0 0
+162 1 0.0000000000000000e+00 8.1464999999999996e+00 8.1464999999999996e+00 0 0 0
+163 1 2.7155000000000000e+00 5.4310000000000000e+00 8.1464999999999996e+00 0 0 0
+164 1 2.7155000000000000e+00 8.1464999999999996e+00 5.4310000000000000e+00 0 0 0
+165 1 1.3577500000000000e+00 6.7887500000000003e+00 6.7887500000000003e+00 0 0 0
+166 1 1.3577500000000000e+00 9.5042500000000008e+00 9.5042500000000008e+00 0 0 0
+167 1 4.0732499999999998e+00 6.7887500000000003e+00 9.5042500000000008e+00 0 0 0
+168 1 4.0732499999999998e+00 9.5042500000000008e+00 6.7887500000000003e+00 0 0 0
+169 1 5.4310000000000000e+00 5.4310000000000000e+00 5.4310000000000000e+00 0 0 0
+170 1 5.4310000000000000e+00 8.1464999999999996e+00 8.1464999999999996e+00 0 0 0
+171 1 8.1464999999999996e+00 5.4310000000000000e+00 8.1464999999999996e+00 0 0 0
+172 1 8.1464999999999996e+00 8.1464999999999996e+00 5.4310000000000000e+00 0 0 0
+173 1 6.7887500000000003e+00 6.7887500000000003e+00 6.7887500000000003e+00 0 0 0
+174 1 6.7887500000000003e+00 9.5042500000000008e+00 9.5042500000000008e+00 0 0 0
+175 1 9.5042500000000008e+00 6.7887500000000003e+00 9.5042500000000008e+00 0 0 0
+176 1 9.5042500000000008e+00 9.5042500000000008e+00 6.7887500000000003e+00 0 0 0
+177 1 1.0862000000000000e+01 5.4310000000000000e+00 5.4310000000000000e+00 0 0 0
+178 1 1.0862000000000000e+01 8.1464999999999996e+00 8.1464999999999996e+00 0 0 0
+179 1 1.3577500000000001e+01 5.4310000000000000e+00 8.1464999999999996e+00 0 0 0
+180 1 1.3577500000000001e+01 8.1464999999999996e+00 5.4310000000000000e+00 0 0 0
+181 1 1.2219749999999999e+01 6.7887500000000003e+00 6.7887500000000003e+00 0 0 0
+182 1 1.2219749999999999e+01 9.5042500000000008e+00 9.5042500000000008e+00 0 0 0
+183 1 1.4935250000000000e+01 6.7887500000000003e+00 9.5042500000000008e+00 0 0 0
+184 1 1.4935250000000000e+01 9.5042500000000008e+00 6.7887500000000003e+00 0 0 0
+185 1 1.6292999999999999e+01 5.4310000000000000e+00 5.4310000000000000e+00 0 0 0
+186 1 1.6292999999999999e+01 8.1464999999999996e+00 8.1464999999999996e+00 0 0 0
+187 1 1.9008500000000002e+01 5.4310000000000000e+00 8.1464999999999996e+00 0 0 0
+188 1 1.9008500000000002e+01 8.1464999999999996e+00 5.4310000000000000e+00 0 0 0
+189 1 1.7650749999999999e+01 6.7887500000000003e+00 6.7887500000000003e+00 0 0 0
+190 1 1.7650749999999999e+01 9.5042500000000008e+00 9.5042500000000008e+00 0 0 0
+191 1 2.0366250000000001e+01 6.7887500000000003e+00 9.5042500000000008e+00 0 0 0
+192 1 2.0366250000000001e+01 9.5042500000000008e+00 6.7887500000000003e+00 0 0 0
+193 1 0.0000000000000000e+00 1.0862000000000000e+01 5.4310000000000000e+00 0 0 0
+194 1 0.0000000000000000e+00 1.3577500000000001e+01 8.1464999999999996e+00 0 0 0
+195 1 2.7155000000000000e+00 1.0862000000000000e+01 8.1464999999999996e+00 0 0 0
+196 1 2.7155000000000000e+00 1.3577500000000001e+01 5.4310000000000000e+00 0 0 0
+197 1 1.3577500000000000e+00 1.2219749999999999e+01 6.7887500000000003e+00 0 0 0
+198 1 1.3577500000000000e+00 1.4935250000000000e+01 9.5042500000000008e+00 0 0 0
+199 1 4.0732499999999998e+00 1.2219749999999999e+01 9.5042500000000008e+00 0 0 0
+200 1 4.0732499999999998e+00 1.4935250000000000e+01 6.7887500000000003e+00 0 0 0
+201 1 5.4310000000000000e+00 1.0862000000000000e+01 5.4310000000000000e+00 0 0 0
+202 1 5.4310000000000000e+00 1.3577500000000001e+01 8.1464999999999996e+00 0 0 0
+203 1 8.1464999999999996e+00 1.0862000000000000e+01 8.1464999999999996e+00 0 0 0
+204 1 8.1464999999999996e+00 1.3577500000000001e+01 5.4310000000000000e+00 0 0 0
+205 1 6.7887500000000003e+00 1.2219749999999999e+01 6.7887500000000003e+00 0 0 0
+206 1 6.7887500000000003e+00 1.4935250000000000e+01 9.5042500000000008e+00 0 0 0
+207 1 9.5042500000000008e+00 1.2219749999999999e+01 9.5042500000000008e+00 0 0 0
+208 1 9.5042500000000008e+00 1.4935250000000000e+01 6.7887500000000003e+00 0 0 0
+209 1 1.0862000000000000e+01 1.0862000000000000e+01 5.4310000000000000e+00 0 0 0
+210 1 1.0862000000000000e+01 1.3577500000000001e+01 8.1464999999999996e+00 0 0 0
+211 1 1.3577500000000001e+01 1.0862000000000000e+01 8.1464999999999996e+00 0 0 0
+212 1 1.3577500000000001e+01 1.3577500000000001e+01 5.4310000000000000e+00 0 0 0
+213 1 1.2219749999999999e+01 1.2219749999999999e+01 6.7887500000000003e+00 0 0 0
+214 1 1.2219749999999999e+01 1.4935250000000000e+01 9.5042500000000008e+00 0 0 0
+215 1 1.4935250000000000e+01 1.2219749999999999e+01 9.5042500000000008e+00 0 0 0
+216 1 1.4935250000000000e+01 1.4935250000000000e+01 6.7887500000000003e+00 0 0 0
+217 1 1.6292999999999999e+01 1.0862000000000000e+01 5.4310000000000000e+00 0 0 0
+218 1 1.6292999999999999e+01 1.3577500000000001e+01 8.1464999999999996e+00 0 0 0
+219 1 1.9008500000000002e+01 1.0862000000000000e+01 8.1464999999999996e+00 0 0 0
+220 1 1.9008500000000002e+01 1.3577500000000001e+01 5.4310000000000000e+00 0 0 0
+221 1 1.7650749999999999e+01 1.2219749999999999e+01 6.7887500000000003e+00 0 0 0
+222 1 1.7650749999999999e+01 1.4935250000000000e+01 9.5042500000000008e+00 0 0 0
+223 1 2.0366250000000001e+01 1.2219749999999999e+01 9.5042500000000008e+00 0 0 0
+224 1 2.0366250000000001e+01 1.4935250000000000e+01 6.7887500000000003e+00 0 0 0
+225 1 0.0000000000000000e+00 1.6292999999999999e+01 5.4310000000000000e+00 0 0 0
+226 1 0.0000000000000000e+00 1.9008500000000002e+01 8.1464999999999996e+00 0 0 0
+227 1 2.7155000000000000e+00 1.6292999999999999e+01 8.1464999999999996e+00 0 0 0
+228 1 2.7155000000000000e+00 1.9008500000000002e+01 5.4310000000000000e+00 0 0 0
+229 1 1.3577500000000000e+00 1.7650749999999999e+01 6.7887500000000003e+00 0 0 0
+230 1 1.3577500000000000e+00 2.0366250000000001e+01 9.5042500000000008e+00 0 0 0
+231 1 4.0732499999999998e+00 1.7650749999999999e+01 9.5042500000000008e+00 0 0 0
+232 1 4.0732499999999998e+00 2.0366250000000001e+01 6.7887500000000003e+00 0 0 0
+233 1 5.4310000000000000e+00 1.6292999999999999e+01 5.4310000000000000e+00 0 0 0
+234 1 5.4310000000000000e+00 1.9008500000000002e+01 8.1464999999999996e+00 0 0 0
+235 1 8.1464999999999996e+00 1.6292999999999999e+01 8.1464999999999996e+00 0 0 0
+236 1 8.1464999999999996e+00 1.9008500000000002e+01 5.4310000000000000e+00 0 0 0
+237 1 6.7887500000000003e+00 1.7650749999999999e+01 6.7887500000000003e+00 0 0 0
+238 1 6.7887500000000003e+00 2.0366250000000001e+01 9.5042500000000008e+00 0 0 0
+239 1 9.5042500000000008e+00 1.7650749999999999e+01 9.5042500000000008e+00 0 0 0
+240 1 9.5042500000000008e+00 2.0366250000000001e+01 6.7887500000000003e+00 0 0 0
+241 1 1.0862000000000000e+01 1.6292999999999999e+01 5.4310000000000000e+00 0 0 0
+242 1 1.0862000000000000e+01 1.9008500000000002e+01 8.1464999999999996e+00 0 0 0
+243 1 1.3577500000000001e+01 1.6292999999999999e+01 8.1464999999999996e+00 0 0 0
+244 1 1.3577500000000001e+01 1.9008500000000002e+01 5.4310000000000000e+00 0 0 0
+245 1 1.2219749999999999e+01 1.7650749999999999e+01 6.7887500000000003e+00 0 0 0
+246 1 1.2219749999999999e+01 2.0366250000000001e+01 9.5042500000000008e+00 0 0 0
+247 1 1.4935250000000000e+01 1.7650749999999999e+01 9.5042500000000008e+00 0 0 0
+248 1 1.4935250000000000e+01 2.0366250000000001e+01 6.7887500000000003e+00 0 0 0
+249 1 1.6292999999999999e+01 1.6292999999999999e+01 5.4310000000000000e+00 0 0 0
+250 1 1.6292999999999999e+01 1.9008500000000002e+01 8.1464999999999996e+00 0 0 0
+251 1 1.9008500000000002e+01 1.6292999999999999e+01 8.1464999999999996e+00 0 0 0
+252 1 1.9008500000000002e+01 1.9008500000000002e+01 5.4310000000000000e+00 0 0 0
+253 1 1.7650749999999999e+01 1.7650749999999999e+01 6.7887500000000003e+00 0 0 0
+254 1 1.7650749999999999e+01 2.0366250000000001e+01 9.5042500000000008e+00 0 0 0
+255 1 2.0366250000000001e+01 1.7650749999999999e+01 9.5042500000000008e+00 0 0 0
+256 1 2.0366250000000001e+01 2.0366250000000001e+01 6.7887500000000003e+00 0 0 0
+257 1 0.0000000000000000e+00 0.0000000000000000e+00 1.0862000000000000e+01 0 0 0
+258 1 0.0000000000000000e+00 2.7155000000000000e+00 1.3577500000000001e+01 0 0 0
+259 1 2.7155000000000000e+00 0.0000000000000000e+00 1.3577500000000001e+01 0 0 0
+260 1 2.7155000000000000e+00 2.7155000000000000e+00 1.0862000000000000e+01 0 0 0
+261 1 1.3577500000000000e+00 1.3577500000000000e+00 1.2219749999999999e+01 0 0 0
+262 1 1.3577500000000000e+00 4.0732499999999998e+00 1.4935250000000000e+01 0 0 0
+263 1 4.0732499999999998e+00 1.3577500000000000e+00 1.4935250000000000e+01 0 0 0
+264 1 4.0732499999999998e+00 4.0732499999999998e+00 1.2219749999999999e+01 0 0 0
+265 1 5.4310000000000000e+00 0.0000000000000000e+00 1.0862000000000000e+01 0 0 0
+266 1 5.4310000000000000e+00 2.7155000000000000e+00 1.3577500000000001e+01 0 0 0
+267 1 8.1464999999999996e+00 0.0000000000000000e+00 1.3577500000000001e+01 0 0 0
+268 1 8.1464999999999996e+00 2.7155000000000000e+00 1.0862000000000000e+01 0 0 0
+269 1 6.7887500000000003e+00 1.3577500000000000e+00 1.2219749999999999e+01 0 0 0
+270 1 6.7887500000000003e+00 4.0732499999999998e+00 1.4935250000000000e+01 0 0 0
+271 1 9.5042500000000008e+00 1.3577500000000000e+00 1.4935250000000000e+01 0 0 0
+272 1 9.5042500000000008e+00 4.0732499999999998e+00 1.2219749999999999e+01 0 0 0
+273 1 1.0862000000000000e+01 0.0000000000000000e+00 1.0862000000000000e+01 0 0 0
+274 1 1.0862000000000000e+01 2.7155000000000000e+00 1.3577500000000001e+01 0 0 0
+275 1 1.3577500000000001e+01 0.0000000000000000e+00 1.3577500000000001e+01 0 0 0
+276 1 1.3577500000000001e+01 2.7155000000000000e+00 1.0862000000000000e+01 0 0 0
+277 1 1.2219749999999999e+01 1.3577500000000000e+00 1.2219749999999999e+01 0 0 0
+278 1 1.2219749999999999e+01 4.0732499999999998e+00 1.4935250000000000e+01 0 0 0
+279 1 1.4935250000000000e+01 1.3577500000000000e+00 1.4935250000000000e+01 0 0 0
+280 1 1.4935250000000000e+01 4.0732499999999998e+00 1.2219749999999999e+01 0 0 0
+281 1 1.6292999999999999e+01 0.0000000000000000e+00 1.0862000000000000e+01 0 0 0
+282 1 1.6292999999999999e+01 2.7155000000000000e+00 1.3577500000000001e+01 0 0 0
+283 1 1.9008500000000002e+01 0.0000000000000000e+00 1.3577500000000001e+01 0 0 0
+284 1 1.9008500000000002e+01 2.7155000000000000e+00 1.0862000000000000e+01 0 0 0
+285 1 1.7650749999999999e+01 1.3577500000000000e+00 1.2219749999999999e+01 0 0 0
+286 1 1.7650749999999999e+01 4.0732499999999998e+00 1.4935250000000000e+01 0 0 0
+287 1 2.0366250000000001e+01 1.3577500000000000e+00 1.4935250000000000e+01 0 0 0
+288 1 2.0366250000000001e+01 4.0732499999999998e+00 1.2219749999999999e+01 0 0 0
+289 1 0.0000000000000000e+00 5.4310000000000000e+00 1.0862000000000000e+01 0 0 0
+290 1 0.0000000000000000e+00 8.1464999999999996e+00 1.3577500000000001e+01 0 0 0
+291 1 2.7155000000000000e+00 5.4310000000000000e+00 1.3577500000000001e+01 0 0 0
+292 1 2.7155000000000000e+00 8.1464999999999996e+00 1.0862000000000000e+01 0 0 0
+293 1 1.3577500000000000e+00 6.7887500000000003e+00 1.2219749999999999e+01 0 0 0
+294 1 1.3577500000000000e+00 9.5042500000000008e+00 1.4935250000000000e+01 0 0 0
+295 1 4.0732499999999998e+00 6.7887500000000003e+00 1.4935250000000000e+01 0 0 0
+296 1 4.0732499999999998e+00 9.5042500000000008e+00 1.2219749999999999e+01 0 0 0
+297 1 5.4310000000000000e+00 5.4310000000000000e+00 1.0862000000000000e+01 0 0 0
+298 1 5.4310000000000000e+00 8.1464999999999996e+00 1.3577500000000001e+01 0 0 0
+299 1 8.1464999999999996e+00 5.4310000000000000e+00 1.3577500000000001e+01 0 0 0
+300 1 8.1464999999999996e+00 8.1464999999999996e+00 1.0862000000000000e+01 0 0 0
+301 1 6.7887500000000003e+00 6.7887500000000003e+00 1.2219749999999999e+01 0 0 0
+302 1 6.7887500000000003e+00 9.5042500000000008e+00 1.4935250000000000e+01 0 0 0
+303 1 9.5042500000000008e+00 6.7887500000000003e+00 1.4935250000000000e+01 0 0 0
+304 1 9.5042500000000008e+00 9.5042500000000008e+00 1.2219749999999999e+01 0 0 0
+305 1 1.0862000000000000e+01 5.4310000000000000e+00 1.0862000000000000e+01 0 0 0
+306 1 1.0862000000000000e+01 8.1464999999999996e+00 1.3577500000000001e+01 0 0 0
+307 1 1.3577500000000001e+01 5.4310000000000000e+00 1.3577500000000001e+01 0 0 0
+308 1 1.3577500000000001e+01 8.1464999999999996e+00 1.0862000000000000e+01 0 0 0
+309 1 1.2219749999999999e+01 6.7887500000000003e+00 1.2219749999999999e+01 0 0 0
+310 1 1.2219749999999999e+01 9.5042500000000008e+00 1.4935250000000000e+01 0 0 0
+311 1 1.4935250000000000e+01 6.7887500000000003e+00 1.4935250000000000e+01 0 0 0
+312 1 1.4935250000000000e+01 9.5042500000000008e+00 1.2219749999999999e+01 0 0 0
+313 1 1.6292999999999999e+01 5.4310000000000000e+00 1.0862000000000000e+01 0 0 0
+314 1 1.6292999999999999e+01 8.1464999999999996e+00 1.3577500000000001e+01 0 0 0
+315 1 1.9008500000000002e+01 5.4310000000000000e+00 1.3577500000000001e+01 0 0 0
+316 1 1.9008500000000002e+01 8.1464999999999996e+00 1.0862000000000000e+01 0 0 0
+317 1 1.7650749999999999e+01 6.7887500000000003e+00 1.2219749999999999e+01 0 0 0
+318 1 1.7650749999999999e+01 9.5042500000000008e+00 1.4935250000000000e+01 0 0 0
+319 1 2.0366250000000001e+01 6.7887500000000003e+00 1.4935250000000000e+01 0 0 0
+320 1 2.0366250000000001e+01 9.5042500000000008e+00 1.2219749999999999e+01 0 0 0
+321 1 0.0000000000000000e+00 1.0862000000000000e+01 1.0862000000000000e+01 0 0 0
+322 1 0.0000000000000000e+00 1.3577500000000001e+01 1.3577500000000001e+01 0 0 0
+323 1 2.7155000000000000e+00 1.0862000000000000e+01 1.3577500000000001e+01 0 0 0
+324 1 2.7155000000000000e+00 1.3577500000000001e+01 1.0862000000000000e+01 0 0 0
+325 1 1.3577500000000000e+00 1.2219749999999999e+01 1.2219749999999999e+01 0 0 0
+326 1 1.3577500000000000e+00 1.4935250000000000e+01 1.4935250000000000e+01 0 0 0
+327 1 4.0732499999999998e+00 1.2219749999999999e+01 1.4935250000000000e+01 0 0 0
+328 1 4.0732499999999998e+00 1.4935250000000000e+01 1.2219749999999999e+01 0 0 0
+329 1 5.4310000000000000e+00 1.0862000000000000e+01 1.0862000000000000e+01 0 0 0
+330 1 5.4310000000000000e+00 1.3577500000000001e+01 1.3577500000000001e+01 0 0 0
+331 1 8.1464999999999996e+00 1.0862000000000000e+01 1.3577500000000001e+01 0 0 0
+332 1 8.1464999999999996e+00 1.3577500000000001e+01 1.0862000000000000e+01 0 0 0
+333 1 6.7887500000000003e+00 1.2219749999999999e+01 1.2219749999999999e+01 0 0 0
+334 1 6.7887500000000003e+00 1.4935250000000000e+01 1.4935250000000000e+01 0 0 0
+335 1 9.5042500000000008e+00 1.2219749999999999e+01 1.4935250000000000e+01 0 0 0
+336 1 9.5042500000000008e+00 1.4935250000000000e+01 1.2219749999999999e+01 0 0 0
+337 1 1.0862000000000000e+01 1.0862000000000000e+01 1.0862000000000000e+01 0 0 0
+338 1 1.0862000000000000e+01 1.3577500000000001e+01 1.3577500000000001e+01 0 0 0
+339 1 1.3577500000000001e+01 1.0862000000000000e+01 1.3577500000000001e+01 0 0 0
+340 1 1.3577500000000001e+01 1.3577500000000001e+01 1.0862000000000000e+01 0 0 0
+341 1 1.2219749999999999e+01 1.2219749999999999e+01 1.2219749999999999e+01 0 0 0
+342 1 1.2219749999999999e+01 1.4935250000000000e+01 1.4935250000000000e+01 0 0 0
+343 1 1.4935250000000000e+01 1.2219749999999999e+01 1.4935250000000000e+01 0 0 0
+344 1 1.4935250000000000e+01 1.4935250000000000e+01 1.2219749999999999e+01 0 0 0
+345 1 1.6292999999999999e+01 1.0862000000000000e+01 1.0862000000000000e+01 0 0 0
+346 1 1.6292999999999999e+01 1.3577500000000001e+01 1.3577500000000001e+01 0 0 0
+347 1 1.9008500000000002e+01 1.0862000000000000e+01 1.3577500000000001e+01 0 0 0
+348 1 1.9008500000000002e+01 1.3577500000000001e+01 1.0862000000000000e+01 0 0 0
+349 1 1.7650749999999999e+01 1.2219749999999999e+01 1.2219749999999999e+01 0 0 0
+350 1 1.7650749999999999e+01 1.4935250000000000e+01 1.4935250000000000e+01 0 0 0
+351 1 2.0366250000000001e+01 1.2219749999999999e+01 1.4935250000000000e+01 0 0 0
+352 1 2.0366250000000001e+01 1.4935250000000000e+01 1.2219749999999999e+01 0 0 0
+353 1 0.0000000000000000e+00 1.6292999999999999e+01 1.0862000000000000e+01 0 0 0
+354 1 0.0000000000000000e+00 1.9008500000000002e+01 1.3577500000000001e+01 0 0 0
+355 1 2.7155000000000000e+00 1.6292999999999999e+01 1.3577500000000001e+01 0 0 0
+356 1 2.7155000000000000e+00 1.9008500000000002e+01 1.0862000000000000e+01 0 0 0
+357 1 1.3577500000000000e+00 1.7650749999999999e+01 1.2219749999999999e+01 0 0 0
+358 1 1.3577500000000000e+00 2.0366250000000001e+01 1.4935250000000000e+01 0 0 0
+359 1 4.0732499999999998e+00 1.7650749999999999e+01 1.4935250000000000e+01 0 0 0
+360 1 4.0732499999999998e+00 2.0366250000000001e+01 1.2219749999999999e+01 0 0 0
+361 1 5.4310000000000000e+00 1.6292999999999999e+01 1.0862000000000000e+01 0 0 0
+362 1 5.4310000000000000e+00 1.9008500000000002e+01 1.3577500000000001e+01 0 0 0
+363 1 8.1464999999999996e+00 1.6292999999999999e+01 1.3577500000000001e+01 0 0 0
+364 1 8.1464999999999996e+00 1.9008500000000002e+01 1.0862000000000000e+01 0 0 0
+365 1 6.7887500000000003e+00 1.7650749999999999e+01 1.2219749999999999e+01 0 0 0
+366 1 6.7887500000000003e+00 2.0366250000000001e+01 1.4935250000000000e+01 0 0 0
+367 1 9.5042500000000008e+00 1.7650749999999999e+01 1.4935250000000000e+01 0 0 0
+368 1 9.5042500000000008e+00 2.0366250000000001e+01 1.2219749999999999e+01 0 0 0
+369 1 1.0862000000000000e+01 1.6292999999999999e+01 1.0862000000000000e+01 0 0 0
+370 1 1.0862000000000000e+01 1.9008500000000002e+01 1.3577500000000001e+01 0 0 0
+371 1 1.3577500000000001e+01 1.6292999999999999e+01 1.3577500000000001e+01 0 0 0
+372 1 1.3577500000000001e+01 1.9008500000000002e+01 1.0862000000000000e+01 0 0 0
+373 1 1.2219749999999999e+01 1.7650749999999999e+01 1.2219749999999999e+01 0 0 0
+374 1 1.2219749999999999e+01 2.0366250000000001e+01 1.4935250000000000e+01 0 0 0
+375 1 1.4935250000000000e+01 1.7650749999999999e+01 1.4935250000000000e+01 0 0 0
+376 1 1.4935250000000000e+01 2.0366250000000001e+01 1.2219749999999999e+01 0 0 0
+377 1 1.6292999999999999e+01 1.6292999999999999e+01 1.0862000000000000e+01 0 0 0
+378 1 1.6292999999999999e+01 1.9008500000000002e+01 1.3577500000000001e+01 0 0 0
+379 1 1.9008500000000002e+01 1.6292999999999999e+01 1.3577500000000001e+01 0 0 0
+380 1 1.9008500000000002e+01 1.9008500000000002e+01 1.0862000000000000e+01 0 0 0
+381 1 1.7650749999999999e+01 1.7650749999999999e+01 1.2219749999999999e+01 0 0 0
+382 1 1.7650749999999999e+01 2.0366250000000001e+01 1.4935250000000000e+01 0 0 0
+383 1 2.0366250000000001e+01 1.7650749999999999e+01 1.4935250000000000e+01 0 0 0
+384 1 2.0366250000000001e+01 2.0366250000000001e+01 1.2219749999999999e+01 0 0 0
+385 1 0.0000000000000000e+00 0.0000000000000000e+00 1.6292999999999999e+01 0 0 0
+386 1 0.0000000000000000e+00 2.7155000000000000e+00 1.9008500000000002e+01 0 0 0
+387 1 2.7155000000000000e+00 0.0000000000000000e+00 1.9008500000000002e+01 0 0 0
+388 1 2.7155000000000000e+00 2.7155000000000000e+00 1.6292999999999999e+01 0 0 0
+389 1 1.3577500000000000e+00 1.3577500000000000e+00 1.7650749999999999e+01 0 0 0
+390 1 1.3577500000000000e+00 4.0732499999999998e+00 2.0366250000000001e+01 0 0 0
+391 1 4.0732499999999998e+00 1.3577500000000000e+00 2.0366250000000001e+01 0 0 0
+392 1 4.0732499999999998e+00 4.0732499999999998e+00 1.7650749999999999e+01 0 0 0
+393 1 5.4310000000000000e+00 0.0000000000000000e+00 1.6292999999999999e+01 0 0 0
+394 1 5.4310000000000000e+00 2.7155000000000000e+00 1.9008500000000002e+01 0 0 0
+395 1 8.1464999999999996e+00 0.0000000000000000e+00 1.9008500000000002e+01 0 0 0
+396 1 8.1464999999999996e+00 2.7155000000000000e+00 1.6292999999999999e+01 0 0 0
+397 1 6.7887500000000003e+00 1.3577500000000000e+00 1.7650749999999999e+01 0 0 0
+398 1 6.7887500000000003e+00 4.0732499999999998e+00 2.0366250000000001e+01 0 0 0
+399 1 9.5042500000000008e+00 1.3577500000000000e+00 2.0366250000000001e+01 0 0 0
+400 1 9.5042500000000008e+00 4.0732499999999998e+00 1.7650749999999999e+01 0 0 0
+401 1 1.0862000000000000e+01 0.0000000000000000e+00 1.6292999999999999e+01 0 0 0
+402 1 1.0862000000000000e+01 2.7155000000000000e+00 1.9008500000000002e+01 0 0 0
+403 1 1.3577500000000001e+01 0.0000000000000000e+00 1.9008500000000002e+01 0 0 0
+404 1 1.3577500000000001e+01 2.7155000000000000e+00 1.6292999999999999e+01 0 0 0
+405 1 1.2219749999999999e+01 1.3577500000000000e+00 1.7650749999999999e+01 0 0 0
+406 1 1.2219749999999999e+01 4.0732499999999998e+00 2.0366250000000001e+01 0 0 0
+407 1 1.4935250000000000e+01 1.3577500000000000e+00 2.0366250000000001e+01 0 0 0
+408 1 1.4935250000000000e+01 4.0732499999999998e+00 1.7650749999999999e+01 0 0 0
+409 1 1.6292999999999999e+01 0.0000000000000000e+00 1.6292999999999999e+01 0 0 0
+410 1 1.6292999999999999e+01 2.7155000000000000e+00 1.9008500000000002e+01 0 0 0
+411 1 1.9008500000000002e+01 0.0000000000000000e+00 1.9008500000000002e+01 0 0 0
+412 1 1.9008500000000002e+01 2.7155000000000000e+00 1.6292999999999999e+01 0 0 0
+413 1 1.7650749999999999e+01 1.3577500000000000e+00 1.7650749999999999e+01 0 0 0
+414 1 1.7650749999999999e+01 4.0732499999999998e+00 2.0366250000000001e+01 0 0 0
+415 1 2.0366250000000001e+01 1.3577500000000000e+00 2.0366250000000001e+01 0 0 0
+416 1 2.0366250000000001e+01 4.0732499999999998e+00 1.7650749999999999e+01 0 0 0
+417 1 0.0000000000000000e+00 5.4310000000000000e+00 1.6292999999999999e+01 0 0 0
+418 1 0.0000000000000000e+00 8.1464999999999996e+00 1.9008500000000002e+01 0 0 0
+419 1 2.7155000000000000e+00 5.4310000000000000e+00 1.9008500000000002e+01 0 0 0
+420 1 2.7155000000000000e+00 8.1464999999999996e+00 1.6292999999999999e+01 0 0 0
+421 1 1.3577500000000000e+00 6.7887500000000003e+00 1.7650749999999999e+01 0 0 0
+422 1 1.3577500000000000e+00 9.5042500000000008e+00 2.0366250000000001e+01 0 0 0
+423 1 4.0732499999999998e+00 6.7887500000000003e+00 2.0366250000000001e+01 0 0 0
+424 1 4.0732499999999998e+00 9.5042500000000008e+00 1.7650749999999999e+01 0 0 0
+425 1 5.4310000000000000e+00 5.4310000000000000e+00 1.6292999999999999e+01 0 0 0
+426 1 5.4310000000000000e+00 8.1464999999999996e+00 1.9008500000000002e+01 0 0 0
+427 1 8.1464999999999996e+00 5.4310000000000000e+00 1.9008500000000002e+01 0 0 0
+428 1 8.1464999999999996e+00 8.1464999999999996e+00 1.6292999999999999e+01 0 0 0
+429 1 6.7887500000000003e+00 6.7887500000000003e+00 1.7650749999999999e+01 0 0 0
+430 1 6.7887500000000003e+00 9.5042500000000008e+00 2.0366250000000001e+01 0 0 0
+431 1 9.5042500000000008e+00 6.7887500000000003e+00 2.0366250000000001e+01 0 0 0
+432 1 9.5042500000000008e+00 9.5042500000000008e+00 1.7650749999999999e+01 0 0 0
+433 1 1.0862000000000000e+01 5.4310000000000000e+00 1.6292999999999999e+01 0 0 0
+434 1 1.0862000000000000e+01 8.1464999999999996e+00 1.9008500000000002e+01 0 0 0
+435 1 1.3577500000000001e+01 5.4310000000000000e+00 1.9008500000000002e+01 0 0 0
+436 1 1.3577500000000001e+01 8.1464999999999996e+00 1.6292999999999999e+01 0 0 0
+437 1 1.2219749999999999e+01 6.7887500000000003e+00 1.7650749999999999e+01 0 0 0
+438 1 1.2219749999999999e+01 9.5042500000000008e+00 2.0366250000000001e+01 0 0 0
+439 1 1.4935250000000000e+01 6.7887500000000003e+00 2.0366250000000001e+01 0 0 0
+440 1 1.4935250000000000e+01 9.5042500000000008e+00 1.7650749999999999e+01 0 0 0
+441 1 1.6292999999999999e+01 5.4310000000000000e+00 1.6292999999999999e+01 0 0 0
+442 1 1.6292999999999999e+01 8.1464999999999996e+00 1.9008500000000002e+01 0 0 0
+443 1 1.9008500000000002e+01 5.4310000000000000e+00 1.9008500000000002e+01 0 0 0
+444 1 1.9008500000000002e+01 8.1464999999999996e+00 1.6292999999999999e+01 0 0 0
+445 1 1.7650749999999999e+01 6.7887500000000003e+00 1.7650749999999999e+01 0 0 0
+446 1 1.7650749999999999e+01 9.5042500000000008e+00 2.0366250000000001e+01 0 0 0
+447 1 2.0366250000000001e+01 6.7887500000000003e+00 2.0366250000000001e+01 0 0 0
+448 1 2.0366250000000001e+01 9.5042500000000008e+00 1.7650749999999999e+01 0 0 0
+449 1 0.0000000000000000e+00 1.0862000000000000e+01 1.6292999999999999e+01 0 0 0
+450 1 0.0000000000000000e+00 1.3577500000000001e+01 1.9008500000000002e+01 0 0 0
+451 1 2.7155000000000000e+00 1.0862000000000000e+01 1.9008500000000002e+01 0 0 0
+452 1 2.7155000000000000e+00 1.3577500000000001e+01 1.6292999999999999e+01 0 0 0
+453 1 1.3577500000000000e+00 1.2219749999999999e+01 1.7650749999999999e+01 0 0 0
+454 1 1.3577500000000000e+00 1.4935250000000000e+01 2.0366250000000001e+01 0 0 0
+455 1 4.0732499999999998e+00 1.2219749999999999e+01 2.0366250000000001e+01 0 0 0
+456 1 4.0732499999999998e+00 1.4935250000000000e+01 1.7650749999999999e+01 0 0 0
+457 1 5.4310000000000000e+00 1.0862000000000000e+01 1.6292999999999999e+01 0 0 0
+458 1 5.4310000000000000e+00 1.3577500000000001e+01 1.9008500000000002e+01 0 0 0
+459 1 8.1464999999999996e+00 1.0862000000000000e+01 1.9008500000000002e+01 0 0 0
+460 1 8.1464999999999996e+00 1.3577500000000001e+01 1.6292999999999999e+01 0 0 0
+461 1 6.7887500000000003e+00 1.2219749999999999e+01 1.7650749999999999e+01 0 0 0
+462 1 6.7887500000000003e+00 1.4935250000000000e+01 2.0366250000000001e+01 0 0 0
+463 1 9.5042500000000008e+00 1.2219749999999999e+01 2.0366250000000001e+01 0 0 0
+464 1 9.5042500000000008e+00 1.4935250000000000e+01 1.7650749999999999e+01 0 0 0
+465 1 1.0862000000000000e+01 1.0862000000000000e+01 1.6292999999999999e+01 0 0 0
+466 1 1.0862000000000000e+01 1.3577500000000001e+01 1.9008500000000002e+01 0 0 0
+467 1 1.3577500000000001e+01 1.0862000000000000e+01 1.9008500000000002e+01 0 0 0
+468 1 1.3577500000000001e+01 1.3577500000000001e+01 1.6292999999999999e+01 0 0 0
+469 1 1.2219749999999999e+01 1.2219749999999999e+01 1.7650749999999999e+01 0 0 0
+470 1 1.2219749999999999e+01 1.4935250000000000e+01 2.0366250000000001e+01 0 0 0
+471 1 1.4935250000000000e+01 1.2219749999999999e+01 2.0366250000000001e+01 0 0 0
+472 1 1.4935250000000000e+01 1.4935250000000000e+01 1.7650749999999999e+01 0 0 0
+473 1 1.6292999999999999e+01 1.0862000000000000e+01 1.6292999999999999e+01 0 0 0
+474 1 1.6292999999999999e+01 1.3577500000000001e+01 1.9008500000000002e+01 0 0 0
+475 1 1.9008500000000002e+01 1.0862000000000000e+01 1.9008500000000002e+01 0 0 0
+476 1 1.9008500000000002e+01 1.3577500000000001e+01 1.6292999999999999e+01 0 0 0
+477 1 1.7650749999999999e+01 1.2219749999999999e+01 1.7650749999999999e+01 0 0 0
+478 1 1.7650749999999999e+01 1.4935250000000000e+01 2.0366250000000001e+01 0 0 0
+479 1 2.0366250000000001e+01 1.2219749999999999e+01 2.0366250000000001e+01 0 0 0
+480 1 2.0366250000000001e+01 1.4935250000000000e+01 1.7650749999999999e+01 0 0 0
+481 1 0.0000000000000000e+00 1.6292999999999999e+01 1.6292999999999999e+01 0 0 0
+482 1 0.0000000000000000e+00 1.9008500000000002e+01 1.9008500000000002e+01 0 0 0
+483 1 2.7155000000000000e+00 1.6292999999999999e+01 1.9008500000000002e+01 0 0 0
+484 1 2.7155000000000000e+00 1.9008500000000002e+01 1.6292999999999999e+01 0 0 0
+485 1 1.3577500000000000e+00 1.7650749999999999e+01 1.7650749999999999e+01 0 0 0
+486 1 1.3577500000000000e+00 2.0366250000000001e+01 2.0366250000000001e+01 0 0 0
+487 1 4.0732499999999998e+00 1.7650749999999999e+01 2.0366250000000001e+01 0 0 0
+488 1 4.0732499999999998e+00 2.0366250000000001e+01 1.7650749999999999e+01 0 0 0
+489 1 5.4310000000000000e+00 1.6292999999999999e+01 1.6292999999999999e+01 0 0 0
+490 1 5.4310000000000000e+00 1.9008500000000002e+01 1.9008500000000002e+01 0 0 0
+491 1 8.1464999999999996e+00 1.6292999999999999e+01 1.9008500000000002e+01 0 0 0
+492 1 8.1464999999999996e+00 1.9008500000000002e+01 1.6292999999999999e+01 0 0 0
+493 1 6.7887500000000003e+00 1.7650749999999999e+01 1.7650749999999999e+01 0 0 0
+494 1 6.7887500000000003e+00 2.0366250000000001e+01 2.0366250000000001e+01 0 0 0
+495 1 9.5042500000000008e+00 1.7650749999999999e+01 2.0366250000000001e+01 0 0 0
+496 1 9.5042500000000008e+00 2.0366250000000001e+01 1.7650749999999999e+01 0 0 0
+497 1 1.0862000000000000e+01 1.6292999999999999e+01 1.6292999999999999e+01 0 0 0
+498 1 1.0862000000000000e+01 1.9008500000000002e+01 1.9008500000000002e+01 0 0 0
+499 1 1.3577500000000001e+01 1.6292999999999999e+01 1.9008500000000002e+01 0 0 0
+500 1 1.3577500000000001e+01 1.9008500000000002e+01 1.6292999999999999e+01 0 0 0
+501 1 1.2219749999999999e+01 1.7650749999999999e+01 1.7650749999999999e+01 0 0 0
+502 1 1.2219749999999999e+01 2.0366250000000001e+01 2.0366250000000001e+01 0 0 0
+503 1 1.4935250000000000e+01 1.7650749999999999e+01 2.0366250000000001e+01 0 0 0
+504 1 1.4935250000000000e+01 2.0366250000000001e+01 1.7650749999999999e+01 0 0 0
+505 1 1.6292999999999999e+01 1.6292999999999999e+01 1.6292999999999999e+01 0 0 0
+506 1 1.6292999999999999e+01 1.9008500000000002e+01 1.9008500000000002e+01 0 0 0
+507 1 1.9008500000000002e+01 1.6292999999999999e+01 1.9008500000000002e+01 0 0 0
+508 1 1.9008500000000002e+01 1.9008500000000002e+01 1.6292999999999999e+01 0 0 0
+509 1 1.7650749999999999e+01 1.7650749999999999e+01 1.7650749999999999e+01 0 0 0
+510 1 1.7650749999999999e+01 2.0366250000000001e+01 2.0366250000000001e+01 0 0 0
+511 1 2.0366250000000001e+01 1.7650749999999999e+01 2.0366250000000001e+01 0 0 0
+512 1 2.0366250000000001e+01 2.0366250000000001e+01 1.7650749999999999e+01 0 0 0
+
+Velocities
+
+1 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+2 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+3 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+4 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+5 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+6 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+7 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+8 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+9 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+10 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+11 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+12 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+13 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+14 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+15 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+16 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+17 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+21 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+22 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+23 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+24 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+25 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+26 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+27 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+28 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+29 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+30 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+31 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+32 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+33 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+34 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+35 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+36 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+37 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+38 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+39 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+40 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+41 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+42 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+43 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+44 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+45 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+46 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+47 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+48 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+49 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+50 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+51 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+52 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+53 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+54 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+55 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+56 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+57 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+58 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+59 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+60 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+61 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+62 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+63 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+64 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+65 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+66 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+67 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+68 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+69 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+70 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+71 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+72 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+73 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+74 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+75 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+76 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+77 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+78 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+79 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+80 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+81 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+82 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+83 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+84 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+85 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+86 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+87 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+88 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+89 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+90 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+91 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+92 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+93 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+94 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+95 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+96 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+97 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+98 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+99 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+100 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+101 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+102 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+103 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+104 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+105 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+106 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+107 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+108 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+109 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+110 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+111 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+112 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+113 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+114 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+115 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+116 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+117 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+118 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+119 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+120 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+121 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+122 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+123 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+124 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+125 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+126 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+127 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+128 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+129 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+130 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+131 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+132 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+133 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+134 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+135 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+136 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+137 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+138 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+139 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+140 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+141 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+142 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+143 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+144 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+145 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+146 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+147 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+148 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+149 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+150 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+151 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+152 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+153 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+154 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+155 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+156 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+157 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+158 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+159 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+160 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+161 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+162 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+163 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+164 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+165 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+166 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+167 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+168 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+169 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+170 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+171 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+172 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+173 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+174 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+175 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+176 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+177 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+178 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+179 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+180 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+181 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+182 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+183 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+184 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+185 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+186 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+187 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+188 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+189 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+190 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+191 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+192 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+193 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+194 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+195 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+196 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+197 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+198 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+199 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+200 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+201 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+202 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+203 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+204 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+205 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+206 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+207 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+208 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+209 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+210 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+211 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+213 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+214 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+215 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+216 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+217 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+218 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+219 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+220 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+221 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+222 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+223 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+224 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+225 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+226 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+227 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+228 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+229 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+230 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+231 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+232 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+233 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+234 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+235 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+236 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+237 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+238 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+239 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+240 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+241 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+242 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+243 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+244 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+245 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+246 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+247 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+248 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+249 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+250 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+251 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+252 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+253 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+254 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+255 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+256 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+257 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+258 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+259 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+260 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+261 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+262 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+263 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+264 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+265 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+266 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+267 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+268 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+269 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+270 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+271 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+272 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+273 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+274 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+275 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+276 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+277 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+278 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+279 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+280 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+281 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+282 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+283 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+284 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+285 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+286 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+287 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+288 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+289 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+290 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+291 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+292 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+293 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+294 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+295 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+296 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+297 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+298 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+299 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+300 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+301 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+302 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+303 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+304 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+305 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+306 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+307 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+308 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+309 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+310 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+311 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+312 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+313 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+314 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+315 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+316 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+317 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+318 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+319 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+320 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+321 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+322 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+323 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+324 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+325 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+326 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+327 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+328 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+329 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+330 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+331 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+332 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+333 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+334 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+335 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+336 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+337 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+338 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+339 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+340 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+341 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+342 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+343 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+344 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+345 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+346 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+347 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+348 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+349 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+350 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+351 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+352 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+353 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+354 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+355 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+356 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+357 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+358 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+359 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+360 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+361 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+362 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+363 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+364 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+365 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+366 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+367 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+368 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+369 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+370 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+371 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+372 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+373 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+374 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+375 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+376 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+377 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+378 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+379 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+380 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+381 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+382 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+383 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+384 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+385 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+386 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+387 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+388 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+389 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+390 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+391 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+392 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+393 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+394 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+395 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+396 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+397 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+398 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+399 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+400 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+401 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+402 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+403 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+404 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+405 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+406 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+407 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+408 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+409 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+410 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+411 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+412 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+413 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+414 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+415 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+416 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+417 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+418 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+419 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+420 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+421 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+422 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+423 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+424 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+425 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+426 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+427 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+428 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+429 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+430 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+431 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+432 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+433 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+434 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+435 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+436 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+437 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+438 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+439 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+440 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+441 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+442 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+443 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+444 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+445 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+446 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+447 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+448 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+449 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+450 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+451 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+452 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+453 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+454 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+455 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+456 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+457 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+458 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+459 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+460 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+461 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+462 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+463 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+464 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+465 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+466 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+467 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+468 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+469 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+470 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+471 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+472 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+473 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+474 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+475 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+476 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+477 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+478 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+479 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+480 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+481 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+482 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+483 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+484 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+485 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+486 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+487 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+488 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+489 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+490 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+491 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+492 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+493 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+494 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+495 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+496 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+497 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+498 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+499 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+500 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+501 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+502 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+503 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+504 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+505 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+506 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+507 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+508 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+509 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+510 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+511 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
+512 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
diff --git a/examples/neb/log.15Feb16.neb.hop1.g++.4 b/examples/neb/log.28Sep16.neb.hop1.g++.4
similarity index 98%
rename from examples/neb/log.15Feb16.neb.hop1.g++.4
rename to examples/neb/log.28Sep16.neb.hop1.g++.4
index c6d97c389a..61809ea123 100644
--- a/examples/neb/log.15Feb16.neb.hop1.g++.4
+++ b/examples/neb/log.28Sep16.neb.hop1.g++.4
@@ -1,4 +1,4 @@
-LAMMPS (15 Feb 2016)
+LAMMPS (27 Sep 2016)
Running on 4 partitions of processors
Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
0 4327.2753 2746.3378 0.3387091 5.0075576 4514.5424 0.42933428 0.42323635 1.8941131 0 -3.0535948 0.33333333 -2.6242605 0.66666667 -2.7623811 1 -3.0474969
diff --git a/examples/neb/log.28Sep16.neb.hop1.g++.8 b/examples/neb/log.28Sep16.neb.hop1.g++.8
new file mode 100644
index 0000000000..4ad460e8c6
--- /dev/null
+++ b/examples/neb/log.28Sep16.neb.hop1.g++.8
@@ -0,0 +1,10 @@
+LAMMPS (27 Sep 2016)
+Running on 4 partitions of processors
+Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
+0 4327.2753 2746.3378 0.3387091 5.0075576 4514.5424 0.42933428 0.42323635 1.8941131 0 -3.0535948 0.33333333 -2.6242605 0.66666667 -2.7623811 1 -3.0474969
+100 0.10482171 0.085218406 0.014588234 0.066178435 0.19602242 0.0070900401 0.0022691875 2.3031875 0 -3.0535967 0.31839181 -3.0473647 0.639876 -3.0465067 1 -3.0487759
+111 0.096708718 0.078036984 0.013922966 0.054175505 0.20234693 0.0070871172 0.0022668002 2.3052946 0 -3.0535968 0.31853431 -3.0473633 0.64178873 -3.0465096 1 -3.0487764
+Climbing replica = 3
+Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
+111 0.20234693 0.17770387 0.013922966 0.054175505 0.20234693 0.0070871172 0.0022668002 2.3052946 0 -3.0535968 0.31853431 -3.0473633 0.64178873 -3.0465096 1 -3.0487764
+178 0.09975409 0.093814031 0.010577358 0.024247224 0.09975409 0.0071042931 0.0022851195 2.312004 0 -3.0535969 0.31607934 -3.0473923 0.618931 -3.0464926 1 -3.0487777
diff --git a/examples/neb/log.15Feb16.neb.hop2.g++.4 b/examples/neb/log.28Sep16.neb.hop2.g++.4
similarity index 99%
rename from examples/neb/log.15Feb16.neb.hop2.g++.4
rename to examples/neb/log.28Sep16.neb.hop2.g++.4
index 5ff6468fa4..418717387b 100644
--- a/examples/neb/log.15Feb16.neb.hop2.g++.4
+++ b/examples/neb/log.28Sep16.neb.hop2.g++.4
@@ -1,4 +1,4 @@
-LAMMPS (15 Feb 2016)
+LAMMPS (27 Sep 2016)
Running on 4 partitions of processors
Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
0 14.104748 10.419633 0.24852044 5.0039071 8.2116049 0.0018276223 0.00064050211 0.98401186 0 -3.0514921 0.33333333 -3.0496673 0.66666667 -3.0496645 1 -3.050305
diff --git a/examples/neb/log.28Sep16.neb.hop2.g++.8 b/examples/neb/log.28Sep16.neb.hop2.g++.8
new file mode 100644
index 0000000000..418717387b
--- /dev/null
+++ b/examples/neb/log.28Sep16.neb.hop2.g++.8
@@ -0,0 +1,18 @@
+LAMMPS (27 Sep 2016)
+Running on 4 partitions of processors
+Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
+0 14.104748 10.419633 0.24852044 5.0039071 8.2116049 0.0018276223 0.00064050211 0.98401186 0 -3.0514921 0.33333333 -3.0496673 0.66666667 -3.0496645 1 -3.050305
+100 0.24646695 0.10792196 0.01781018 0.098854684 0.63725646 0.001516756 0.0015151635 1.165391 0 -3.0514939 0.2890334 -3.0503533 0.59718494 -3.0499771 1 -3.0514923
+200 0.061777741 0.050288749 0.012466513 0.020420207 0.88741041 0.0014465772 0.0014462528 1.1692938 0 -3.0514941 0.29975094 -3.0503052 0.62768286 -3.0500476 1 -3.0514938
+300 0.056346766 0.030000618 0.0093152917 0.013765031 1.0101529 0.0014069751 0.0014068154 1.1699608 0 -3.0514942 0.30992449 -3.0502613 0.64174291 -3.0500873 1 -3.0514941
+400 0.025589489 0.015671005 0.0061287063 0.008588518 1.1136424 0.001370987 0.0013709154 1.1704204 0 -3.0514943 0.32016645 -3.0502198 0.65324019 -3.0501233 1 -3.0514943
+500 0.014778626 0.0092108366 0.0042668521 0.0059963914 1.1636579 0.0013527466 0.0013527072 1.1706283 0 -3.0514944 0.32550275 -3.0501993 0.65875414 -3.0501416 1 -3.0514943
+600 0.08786211 0.020876327 0.0031421548 0.0051657363 1.1898894 0.0013430848 0.0013430599 1.1707681 0 -3.0514944 0.32831927 -3.0501889 0.66160681 -3.0501513 1 -3.0514944
+633 0.0098132678 0.0055392541 0.0030063464 0.0043091323 1.1924486 0.0013420127 0.0013419893 1.1707818 0 -3.0514944 0.32862625 -3.0501878 0.66191769 -3.0501524 1 -3.0514944
+Climbing replica = 3
+Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
+633 1.1924486 1.1648685 0.0030063464 0.0043091323 1.1924486 0.0013420127 0.0013419893 1.1707818 0 -3.0514944 0.32862625 -3.0501878 0.66191769 -3.0501524 1 -3.0514944
+733 0.095331134 0.089136608 0.0021551441 0.0031844438 0.043042998 0.0016022317 0.0016022168 1.170789 0 -3.0514944 0.29157063 -3.0503375 0.50358402 -3.0498922 1 -3.0514944
+833 0.10539135 0.030724373 0.0013749699 0.002221013 0.10539135 0.0016019798 0.001601971 1.1732118 0 -3.0514944 0.26249002 -3.0504848 0.50415223 -3.0498924 1 -3.0514944
+933 0.01883894 0.011496399 0.0011058925 0.0018178041 0.014621806 0.0016018934 0.0016018865 1.173866 0 -3.0514944 0.25788763 -3.0505113 0.50466375 -3.0498925 1 -3.0514944
+996 0.0082457876 0.0036336551 0.00077325986 0.0013910671 0.0068823708 0.0016018293 0.0016018244 1.174511 0 -3.0514944 0.2544553 -3.0505324 0.50520462 -3.0498926 1 -3.0514944
diff --git a/examples/neb/log.28Sep16.neb.sivac.g++.3 b/examples/neb/log.28Sep16.neb.sivac.g++.3
new file mode 100644
index 0000000000..e9406754d6
--- /dev/null
+++ b/examples/neb/log.28Sep16.neb.sivac.g++.3
@@ -0,0 +1,14 @@
+LAMMPS (27 Sep 2016)
+Running on 3 partitions of processors
+Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
+0 7.5525391 1.6345605 0.16683659 7.5525391 7.5525391 1.5383951 0 1.6207355 0 -2213.3343 0.5 -2212.4096 1 -2211.7959
+10 0.27332818 0.040944923 0.039164338 0.27332818 0.17804882 0.51235911 0.497084 1.6790474 0 -2213.3364 0.49024121 -2212.824 1 -2213.3211
+20 0.1820396 0.018049916 0.024428411 0.1820396 0.08601739 0.51038174 0.5080746 1.7224961 0 -2213.337 0.49199582 -2212.8266 1 -2213.3347
+30 0.043288796 0.0068108825 0.017372479 0.043288796 0.049466709 0.51032316 0.5095943 1.7304745 0 -2213.3371 0.49553568 -2212.8268 1 -2213.3364
+40 0.0421393 0.0037035761 0.01173707 0.0421393 0.026104735 0.51022733 0.5100163 1.7366752 0 -2213.3373 0.49838067 -2212.8271 1 -2213.3371
+50 0.025897844 0.0022804241 0.0081056535 0.025897844 0.016908913 0.5101712 0.51008591 1.739143 0 -2213.3373 0.49923344 -2212.8272 1 -2213.3373
+59 0.00962839 0.0012946076 0.005657505 0.009365729 0.012040803 0.51014185 0.51010207 1.7404554 0 -2213.3374 0.49955698 -2212.8272 1 -2213.3373
+Climbing replica = 2
+Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
+59 0.012040803 0.0031505502 0.005657505 0.009365729 0.012040803 0.51014185 0.51010207 1.7404554 0 -2213.3374 0.49955698 -2212.8272 1 -2213.3373
+63 0.009152118 0.0016692472 0.0049645771 0.0081967836 0.009152118 0.51013743 0.51010776 1.7409028 0 -2213.3374 0.50022239 -2212.8272 1 -2213.3373
diff --git a/examples/neb/log.28Sep16.neb.sivac.g++.6 b/examples/neb/log.28Sep16.neb.sivac.g++.6
new file mode 100644
index 0000000000..eac33a8863
--- /dev/null
+++ b/examples/neb/log.28Sep16.neb.sivac.g++.6
@@ -0,0 +1,14 @@
+LAMMPS (27 Sep 2016)
+Running on 3 partitions of processors
+Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
+0 7.5525391 1.6345605 0.16683659 7.5525391 7.5525391 1.5383951 0 1.6207355 0 -2213.3343 0.5 -2212.4096 1 -2211.7959
+10 0.27332818 0.040944923 0.039164338 0.27332818 0.17804882 0.51235911 0.497084 1.6790474 0 -2213.3364 0.49024121 -2212.824 1 -2213.3211
+20 0.1820396 0.018049916 0.024428411 0.1820396 0.08601739 0.51038174 0.5080746 1.7224961 0 -2213.337 0.49199582 -2212.8266 1 -2213.3347
+30 0.043288796 0.0068108825 0.017372479 0.043288796 0.049466709 0.51032316 0.5095943 1.7304745 0 -2213.3371 0.49553568 -2212.8268 1 -2213.3364
+40 0.042139305 0.0037035764 0.01173707 0.042139305 0.026104735 0.51022733 0.5100163 1.7366752 0 -2213.3373 0.49838067 -2212.8271 1 -2213.3371
+50 0.025899631 0.0022805513 0.0081057075 0.025899631 0.016908929 0.5101712 0.51008591 1.739143 0 -2213.3373 0.49923345 -2212.8272 1 -2213.3373
+59 0.0096285044 0.0012946258 0.0056576061 0.0093678253 0.012040919 0.51014185 0.51010207 1.7404554 0 -2213.3374 0.49955698 -2212.8272 1 -2213.3373
+Climbing replica = 2
+Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
+59 0.012040919 0.0031505771 0.0056576061 0.0093678253 0.012040919 0.51014185 0.51010207 1.7404554 0 -2213.3374 0.49955698 -2212.8272 1 -2213.3373
+63 0.0091523813 0.0016692845 0.0049647607 0.0081998372 0.0091523813 0.51013743 0.51010775 1.7409028 0 -2213.3374 0.50022236 -2212.8272 1 -2213.3373
diff --git a/examples/neb/log.15Feb16.neb.sivac.g++.3 b/examples/neb/log.28Sep16.neb.sivac.g++.9
similarity index 60%
rename from examples/neb/log.15Feb16.neb.sivac.g++.3
rename to examples/neb/log.28Sep16.neb.sivac.g++.9
index dbc2f08929..1b7f46b656 100644
--- a/examples/neb/log.15Feb16.neb.sivac.g++.3
+++ b/examples/neb/log.28Sep16.neb.sivac.g++.9
@@ -1,4 +1,4 @@
-LAMMPS (15 Feb 2016)
+LAMMPS (27 Sep 2016)
Running on 3 partitions of processors
Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
0 7.5525391 1.6345605 0.16683659 7.5525391 7.5525391 1.5383951 0 1.6207355 0 -2213.3343 0.5 -2212.4096 1 -2211.7959
@@ -6,9 +6,9 @@ Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 P
20 0.1820396 0.018049916 0.024428411 0.1820396 0.08601739 0.51038174 0.5080746 1.7224961 0 -2213.337 0.49199582 -2212.8266 1 -2213.3347
30 0.043288796 0.0068108825 0.017372479 0.043288796 0.049466709 0.51032316 0.5095943 1.7304745 0 -2213.3371 0.49553568 -2212.8268 1 -2213.3364
40 0.042139318 0.0037035773 0.011737071 0.042139318 0.026104737 0.51022733 0.5100163 1.7366752 0 -2213.3373 0.49838067 -2212.8271 1 -2213.3371
-50 0.025904252 0.0022808801 0.008105847 0.025904252 0.016908971 0.5101712 0.51008591 1.7391431 0 -2213.3373 0.49923347 -2212.8272 1 -2213.3373
+50 0.025904121 0.0022808707 0.0081058431 0.025904121 0.016908969 0.5101712 0.51008591 1.7391431 0 -2213.3373 0.49923346 -2212.8272 1 -2213.3373
+59 0.0096287928 0.0012946716 0.005657861 0.0093731008 0.01204121 0.51014185 0.51010207 1.7404554 0 -2213.3374 0.49955696 -2212.8272 1 -2213.3373
Climbing replica = 2
Step MaxReplicaForce MaxAtomForce GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... RDN PEN
-50 0.025904252 0.0044134315 0.008105847 0.025904252 0.016908971 0.5101712 0.51008591 1.7391431 0 -2213.3373 0.49923347 -2212.8272 1 -2213.3373
-60 0.011518317 0.0013089596 0.0054472815 0.011518317 0.0091629734 0.51014415 0.51010903 1.7406815 0 -2213.3374 0.50065207 -2212.8272 1 -2213.3373
-61 0.0089525108 0.0012703829 0.0052524345 0.0088142351 0.0089525108 0.51014321 0.51010962 1.7407173 0 -2213.3374 0.50065779 -2212.8272 1 -2213.3373
+59 0.01204121 0.0031506449 0.005657861 0.0093731008 0.01204121 0.51014185 0.51010207 1.7404554 0 -2213.3374 0.49955696 -2212.8272 1 -2213.3373
+63 0.0091530442 0.0016693787 0.0049652227 0.0082075097 0.0091530442 0.51013743 0.51010775 1.7409027 0 -2213.3374 0.50022228 -2212.8272 1 -2213.3373
diff --git a/examples/snap/Ta06A_pot.snap b/examples/snap/Ta06A_pot.snap
index edcc002524..7c86c24641 100644
--- a/examples/snap/Ta06A_pot.snap
+++ b/examples/snap/Ta06A_pot.snap
@@ -9,9 +9,9 @@ variable zblz equal 73
# Specify hybrid with SNAP, ZBL
-pair_style hybrid/overlay &
-zbl ${zblcutinner} ${zblcutouter} &
-snap
+pair_style hybrid/overlay snap &
+zbl ${zblcutinner} ${zblcutouter}
+
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff * * snap Ta06A.snapcoeff Ta Ta06A.snapparam Ta
diff --git a/python/examples/ipython/interface_usage.ipynb b/python/examples/ipython/interface_usage.ipynb
index f0e4126d94..e716db7a9e 100644
--- a/python/examples/ipython/interface_usage.ipynb
+++ b/python/examples/ipython/interface_usage.ipynb
@@ -26,10 +26,10 @@
"metadata": {},
"source": [
"1. Download the latest version of LAMMPS into a folder (we will calls this `$LAMMPS_DIR` from now on)\n",
- "2. Compile LAMMPS as a shared library and enable PNG support\n",
+ "2. Compile LAMMPS as a shared library and enable exceptions and PNG support\n",
" ```bash\n",
" cd $LAMMPS_DIR/src\n",
- " python2 Make.py -m mpi -png -a file\n",
+ " python Make.py -m mpi -png -s exceptions -a file\n",
" make mode=shlib auto\n",
" ```\n",
"\n",
@@ -66,10 +66,8 @@
},
{
"cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"from lammps import IPyLammps"
@@ -77,81 +75,18 @@
},
{
"cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "LAMMPS output is captured by PyLammps wrapper\n"
- ]
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L = IPyLammps()"
]
},
{
"cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Neighbor list info ...',\n",
- " ' 1 neighbor list requests',\n",
- " ' update every 20 steps, delay 0 steps, check no',\n",
- " ' max neighbors/atom: 2000, page size: 100000',\n",
- " ' master list distance cutoff = 2.8',\n",
- " ' ghost atom cutoff = 2.8',\n",
- " ' binsize = 1.4, bins = 5 5 5',\n",
- " 'Setting up Verlet run ...',\n",
- " ' Unit style : lj',\n",
- " ' Current step : 0',\n",
- " ' Time step : 0.005',\n",
- " 'Memory usage per processor = 2.04486 Mbytes',\n",
- " 'Step Temp E_pair E_mol TotEng Press ',\n",
- " ' 0 1.44 -6.7733681 0 -4.6218056 -5.0244179 ',\n",
- " ' 10 1.1298532 -6.3095502 0 -4.6213906 -2.6058175 ',\n",
- " 'Loop time of 0.002206 on 1 procs for 10 steps with 256 atoms',\n",
- " '',\n",
- " 'Performance: 1958295.528 tau/day, 4533.091 timesteps/s',\n",
- " '0.0% CPU use with 1 MPI tasks x no OpenMP threads',\n",
- " '',\n",
- " 'MPI task timing breakdown:',\n",
- " 'Section | min time | avg time | max time |%varavg| %total',\n",
- " '---------------------------------------------------------------',\n",
- " 'Pair | 0.00203 | 0.00203 | 0.00203 | 0.0 | 92.02',\n",
- " 'Neigh | 0 | 0 | 0 | 0.0 | 0.00',\n",
- " 'Comm | 0.000101 | 0.000101 | 0.000101 | 0.0 | 4.58',\n",
- " 'Output | 7.9998e-06 | 7.9998e-06 | 7.9998e-06 | 0.0 | 0.36',\n",
- " 'Modify | 4.6e-05 | 4.6e-05 | 4.6e-05 | 0.0 | 2.09',\n",
- " 'Other | | 2.1e-05 | | | 0.95',\n",
- " '',\n",
- " 'Nlocal: 256 ave 256 max 256 min',\n",
- " 'Histogram: 1 0 0 0 0 0 0 0 0 0',\n",
- " 'Nghost: 1431 ave 1431 max 1431 min',\n",
- " 'Histogram: 1 0 0 0 0 0 0 0 0 0',\n",
- " 'Neighs: 9984 ave 9984 max 9984 min',\n",
- " 'Histogram: 1 0 0 0 0 0 0 0 0 0',\n",
- " '',\n",
- " 'Total # of neighbors = 9984',\n",
- " 'Ave neighs/atom = 39',\n",
- " 'Neighbor list builds = 0',\n",
- " 'Dangerous builds not checked']"
- ]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"# 3d Lennard-Jones melt\n",
"\n",
@@ -182,23 +117,9 @@
},
{
"cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "image/png": "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\n6P8HQDginrFaGAAAAAAASUVORK5CYII=\n",
- "text/plain": [
- ""
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.image(zoom=1)"
]
@@ -212,156 +133,63 @@
},
{
"cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "System(zlo=0.0, xlo=0.0, atom_map='array', atom_style='atomic', dimensions=3, units='lj', yhi=6.71838, style='lj/cut', orthogonal_box=[6.71838, 6.71838, 6.71838], ntypes=1, boundaries='p,p p,p p,p', ylo=0.0, xhi=6.71838, zhi=6.71838, kspace_style='none', natoms=256)"
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.system"
]
},
{
"cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "256"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.system.natoms"
]
},
{
"cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Communication(comm_layout='uniform', nthreads=1, proc_grid=[1, 1, 1], mpi_version='MPI v3.0', ghost_velocity=False, nprocs=1, comm_style='brick')"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.communication"
]
},
{
"cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[{'group': 'all', 'name': '1', 'style': 'nve'}]"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.fixes"
]
},
{
"cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[{'group': 'all', 'name': 'thermo_temp', 'style': 'temp'},\n",
- " {'group': 'all', 'name': 'thermo_press', 'style': 'pressure'},\n",
- " {'group': 'all', 'name': 'thermo_pe', 'style': 'pe'}]"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.computes"
]
},
{
"cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[]"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.dumps"
]
},
{
"cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[{'name': 'all', 'type': 'static'}]"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.groups"
]
@@ -375,10 +203,8 @@
},
{
"cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.variable(\"a index 2\")"
@@ -386,33 +212,17 @@
},
{
"cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'a': ,\n",
- " 'fx': }"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables"
]
},
{
"cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.variable(\"t equal temp\")"
@@ -420,46 +230,18 @@
},
{
"cell_type": "code",
- "execution_count": 15,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'a': ,\n",
- " 'fx': ,\n",
- " 't': }"
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables"
]
},
{
"cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "2.0"
- ]
- },
- "execution_count": 16,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"import sys\n",
"\n",
@@ -477,54 +259,26 @@
},
{
"cell_type": "code",
- "execution_count": 17,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1.12985322128803"
- ]
- },
- "execution_count": 17,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['t'].value"
]
},
{
"cell_type": "code",
- "execution_count": 18,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0.564926610644015"
- ]
- },
- "execution_count": 18,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.eval(\"v_t/2.0\")"
]
},
{
"cell_type": "code",
- "execution_count": 19,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.variable(\"b index a b c\")"
@@ -532,76 +286,35 @@
},
{
"cell_type": "code",
- "execution_count": 20,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'a'"
- ]
- },
- "execution_count": 20,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['b'].value"
]
},
{
"cell_type": "code",
- "execution_count": 21,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0.0"
- ]
- },
- "execution_count": 21,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.eval(\"v_b\")"
]
},
{
"cell_type": "code",
- "execution_count": 22,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['a', 'b', 'c']"
- ]
- },
- "execution_count": 22,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['b'].definition"
]
},
{
"cell_type": "code",
- "execution_count": 23,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.variable(\"i loop 10\")"
@@ -609,44 +322,18 @@
},
{
"cell_type": "code",
- "execution_count": 24,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1.0"
- ]
- },
- "execution_count": 24,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['i'].value"
]
},
{
"cell_type": "code",
- "execution_count": 25,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "2.0"
- ]
- },
- "execution_count": 25,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.next(\"i\")\n",
"L.variables['i'].value"
@@ -654,22 +341,9 @@
},
{
"cell_type": "code",
- "execution_count": 26,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1.6881595982135622"
- ]
- },
- "execution_count": 26,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.eval(\"ke\")"
]
@@ -683,288 +357,130 @@
},
{
"cell_type": "code",
- "execution_count": 27,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 27,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0]"
]
},
{
"cell_type": "code",
- "execution_count": 28,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['charge',\n",
- " 'force',\n",
- " 'id',\n",
- " 'index',\n",
- " 'lmp',\n",
- " 'mass',\n",
- " 'mol',\n",
- " 'position',\n",
- " 'type',\n",
- " 'velocity']"
- ]
- },
- "execution_count": 28,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"[x for x in dir(L.atoms[0]) if not x.startswith('__')]"
]
},
{
"cell_type": "code",
- "execution_count": 29,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(-0.01214313575723994, -0.030471417344883317, -0.09285770282156164)"
- ]
- },
- "execution_count": 29,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].position"
]
},
{
"cell_type": "code",
- "execution_count": 30,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1"
- ]
- },
- "execution_count": 30,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].id"
]
},
{
"cell_type": "code",
- "execution_count": 31,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(-0.2400638079872712, -0.5469382338431744, -1.6999922351145154)"
- ]
- },
- "execution_count": 31,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].velocity"
]
},
{
"cell_type": "code",
- "execution_count": 32,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(-0.255291613596607, 4.609419196795491, 11.488556813439391)"
- ]
- },
- "execution_count": 32,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].force"
]
},
{
"cell_type": "code",
- "execution_count": 33,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1"
- ]
- },
- "execution_count": 33,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].type"
]
},
{
- "cell_type": "markdown",
- "metadata": {
- "collapsed": false
- },
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['fx'].value"
]
},
{
"cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
+ "metadata": {},
"source": [
"## Accessing thermo data"
]
},
{
"cell_type": "code",
- "execution_count": 34,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[Run(thermo=ThermoData(Step=[0.0, 10.0], TotEng=[-4.6218056, -4.6213906], Temp=[1.44, 1.1298532], E_mol=[0.0, 0.0], E_pair=[-6.7733681, -6.3095502], Press=[-5.0244179, -2.6058175]))]"
- ]
- },
- "execution_count": 34,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.runs"
]
},
{
"cell_type": "code",
- "execution_count": 35,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Run(thermo=ThermoData(Step=[0.0, 10.0], TotEng=[-4.6218056, -4.6213906], Temp=[1.44, 1.1298532], E_mol=[0.0, 0.0], E_pair=[-6.7733681, -6.3095502], Press=[-5.0244179, -2.6058175]))"
- ]
- },
- "execution_count": 35,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.runs[0]"
]
},
{
"cell_type": "code",
- "execution_count": 36,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "ThermoData(Step=[0.0, 10.0], TotEng=[-4.6218056, -4.6213906], Temp=[1.44, 1.1298532], E_mol=[0.0, 0.0], E_pair=[-6.7733681, -6.3095502], Press=[-5.0244179, -2.6058175])"
- ]
- },
- "execution_count": 36,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.runs[0].thermo"
]
},
{
"cell_type": "code",
- "execution_count": 37,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[1.44, 1.1298532]"
- ]
- },
- "execution_count": 37,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.runs[0].thermo.Temp"
]
},
{
"cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
+ "metadata": {},
"source": [
"## Saving session to as LAMMPS input file"
]
},
{
"cell_type": "code",
- "execution_count": 38,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.write_script(\"in.output\")"
@@ -973,9 +489,7 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {
- "collapsed": true
- },
+ "metadata": {},
"outputs": [],
"source": []
}
@@ -995,8 +509,7 @@
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.5.2"
+ "pygments_lexer": "ipython3"
}
},
"nbformat": 4,
diff --git a/python/examples/ipython/interface_usage_bonds.ipynb b/python/examples/ipython/interface_usage_bonds.ipynb
index 509385e78c..f6a4adcb3b 100644
--- a/python/examples/ipython/interface_usage_bonds.ipynb
+++ b/python/examples/ipython/interface_usage_bonds.ipynb
@@ -26,11 +26,11 @@
"metadata": {},
"source": [
"1. Download the latest version of LAMMPS into a folder (we will calls this `$LAMMPS_DIR` from now on)\n",
- "2. Compile LAMMPS as a shared library and enable PNG support\n",
+ "2. Compile LAMMPS as a shared library and enable exceptions and PNG support\n",
" ```bash\n",
" cd $LAMMPS_DIR/src\n",
" make yes-molecule\n",
- " python2 Make.py -m mpi -png -a file\n",
+ " python Make.py -m mpi -png -s exceptions -a file\n",
" make mode=shlib auto\n",
" ```\n",
"\n",
@@ -67,10 +67,8 @@
},
{
"cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"from lammps import IPyLammps"
@@ -78,29 +76,17 @@
},
{
"cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "LAMMPS output is captured by PyLammps wrapper\n"
- ]
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L = IPyLammps()"
]
},
{
"cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"# 2d circle of particles inside a box with LJ walls\n",
@@ -150,46 +136,18 @@
},
{
"cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAAG3RFWHRTb2Z0d2FyZQBMQU1NUFMg\nMTUgSnVsIDIwMTZ/hHVIAAAgAElEQVR42uzdeXxV5dn/+8+99jxmJCGQhDCHeVJEaJ0VEcQJnAfU\nFgW1DhUrTuBQa61trWOd6tBqHSoOiKKWIsgoyDyEkBESApmTPSR7Z+99nz8WK8Y+zznn9zu1v2N9\nrverf/Xq3uteezX5srKva91Ka40QQoj/eQz5CIQQQgJACCGEBIAQQggJACGEEBIAQgghJACEEEJI\nAAghhJAAEEIIIQEghBBCAkAIIYQEgBBCCAkAIYQQEgBCCCEkAIQQQkgACCGEkAAQQgghASCEEEIC\nQAghhASAEEIICQAhhBASAEIIISQAhBBCSAAIIYSQABBCCAkAIYQQEgBCCCEkAIQQQkgACCGEkAAQ\nQgghASCEEEICQAghhASAEEIICQAhhBASAEIIISQAhBBCSAAIIYSQABBCCCEBIIQQQgJACCGEBIAQ\nQggJACGEEBIAQgghJACEEEJIAAghhJAAEEIIIQEghBBCAkAIISQAhBBCSAAIIYSQABBCCCEBIIQQ\nQgJACCGEBIAQQggJACGEEBIAQgghJACEEEJIAAghhJAAEEIIIQEghBBCAkAIIYQEgBBCCAkAIYQQ\nEgBCCCEkAIQQQkgACCGEkAAQQgghASCEEEICQAghhASAEEIICQAhhBASAEIIIQEghBBCAkAIIYQE\ngBBCCAkAIYQQEgBCCCEkAIQQQkgACCGEkAAQQgghASCEEEICQAghhASAEEIICQAhhBASAEIIISQA\nhBBCSAAIIYSQABBCCCEBIIQQQgJACCGEBIAQQggJACGEEBIAQggh/hv27+qNmpvtmZmBVKpDPlMh\nhPj3OXgwvmyZnj9ff18CoLzcNnDgIsg3jHfk8gghxL9Pv34bhgxpvfBC9fbb/2oGfDcB4HK5IAsi\nEJPLI4QQ/z6dnToaJTPzO3ir7yYA2tuT8DUkI5GtDQ1xuUJCCPHvUFR0SnNzPBJBqe9NAPS0a1e0\nuloukxBCfMduuOEWKPsO39D+71hlSQmbN8vFEkKI78yyZenf+Xva/01rXb9eywUTQojvSnNzxnf+\nnjIHIIQQ/0NJAAghhASAEEIICQAhhBASAEIIISQAhBBCSAAIIYSQABBCCCEBIIQQQgJACCGEBIAQ\nQggJACGEEBIAQgghJACEEEJIAAghhJAAEEIIIQEghBBCAkAIIYQEgBBCCAkAIYQQEgBCCCEkAIQQ\nQkgACCGEkAAQQgghASCEEBIAQgghJACEEEJIAAghhJAAEEIIIQEghBBCAkAIIYQEgBBCCAkAIYQQ\nEgBCCCEkAIQQQkgACCGEkAAQQgghASCEEEICQAghhASAEEIICQAhhBASAEIIISQAhBBCSAAIIYSQ\nABBCCCEBIIQQQgJACCGEBIAQQkgAyEcghBASAEIIISQAhBBCSAAIIYSQABBCCCEBIIQQQgJACCGE\nBIAQQggJACGEEBIAQgghJACEEEJIAAghhJAAEEIIIQEghBBCAkAIIYQEgBBCCAkAIYQQEgBCCCEk\nAIQQQkgACCGEkAAQQgghASCEEEICQAghhASAEEJIAAghhJAAEEIIIQEghBBCAkAIIYQEgBBCCAkA\nIYQQEgBCCCEkAIQQQkgACCGEkAAQQgghASCEEEICQAghhASAEEIICQAhhBASAEIIISQAhBBCSAAI\nIYSQABBCCCEBIIQQQgJACCGEBIAQQggJACGEEBIAQgghASCEEEICQAghhASAEEIICQAhhBASAEII\nISQAhBBCSAAIIYSQABBCCCEBIIQQQgJACCGEBIAQQggJACGEEBIAQgghJACEEEJIAAghhJAAEEII\nIQEghBBCAuA/yVal4i5X0uWqUOpNpf6pGnI48HgOGcYnSl38X6pCCCEB8B9s3KBBzp//3DZt2oBg\ncDA81PO3fHZ2YP58LrmkT07OAKVOkg9LCCEB8INRarczfTo33sikSfj9hlI+YNSoo/857jhuvpnT\nTycz01DKBZfLTYAQ4t/PLh/B/wFtQEkJr7zC2rWtoVCT1q2A03m0XFfHG2+wb59ubGzUugXc8pEJ\nISQAfhh2J5MZa9b02bGjORwuj0T2QzO8umWLWR3rcg2qq4vEYpXt7fu1roYu+ciEEBIAPwz/gEgk\nkhWJxOEIlEIc7rKqt8Ziuw8f1tAIpdAB1fKRCSEkAH4YXjvlFO68c/YZZwBRsMGvDSMjlXpca7Kz\nWbfuvKFDndAODnjW6fxbPC4fmhDi302+BP63KzcMnnqKxYsvAj/coNSHY8YUZ2ZONcsvvMBvf3uL\nUplwPnw4eHDfPn2Og3Ple2AhhATA/xl7lMLr7XQ6dyn11Ld/+W5WKul2J93uCqXe+C+/l6NOp9nC\n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\nHRoaGvvQQ2zaxJ49+4eGmmHAKzUnEmUbN9LYyP79td4+ALcE5Gdm+n7+c9raWltbP3A4n8+X/8tf\nEo0O7N/fmEiMLPXEYqX33ktGBpWVB6JR996cbqkhFpv46KO89hr79tUMDjaP6GoVEVEAfKhNEOzs\nnLZ5M9a2OU6ttY1wBG7o6wNOhcMvvxwyptNx6pPJ3TDklSpg6O23MwOBXq+Ff9grRcBXU5NXXz/o\ntfCnHgWc298/qaMjnky2xOM1cBgGvepSKHrxRR+0O06ttbUjzuQk6NmxI83n63KchvefyUxwdu/O\n3rev33EOemfyiN7+i4gC4KPdY+1lxsyMRt19AE2QGHFb/AuNqYjFUvsAktAKG60FTjfmUDw+Nh4f\n9oYJ+uAJ74H/ZcyERMLdB9ANw96N4XBb+KNRAx3QCg487JUuNmZOLObuA3CHCargLWuB84ypd5zU\nPgAHOuFZ74HXGJMbj0ehGfphQD9XEVEAfBwPWJtrzHjIhgBsHfHe+S/WhoyZAWMgDbphl1d9wVqg\n1JhMSIco7BjxwJXWFhkzBjIhCdtHlO61dqIxOZANvvcf7mFrM42ZAlkQgi0jSk9Y6zOmFDLBnW57\na0T1VmuLjRkDGeDAK3r7LyIKgI+p88NfMT96/cC7H16t+/BS84eX+j+8lPzIM6nRi76IfCS1gYqI\nKABEREQBICIiCgAREVEAiIiIAkBERBQAIiKiABAREQWAiIgoAERERAEgIiIKABERUQCIiIgCQERE\nFAAiIqIAEBGRo++TWgjT1qZoERE5aoLBrGMjANasWaiflojIZ+4vgHPOOVffVhGRT0Ddv2IAdHTE\n4R2wxgSOHHlZPyURkU9IR4fT08NR2fl9dAJg/fpkR8c7oRADA1pELiLyCWpvZ88eurqOwlMZa4/O\nS/bixWbcOIaG9NMREfkEWUsyybPPHoWX7qMWACIicmxRs6aIiAJAREQUACIiogAQEREFgIiIKABE\nREQBICIiCgAREVEAiIiIAkBERBQAIiKiABAREQWAiIgoAERERAEgIiIKABERUQCIiIgCQEREFAAi\nIqIAEBERBYCIiCgAREREASAiIgoAEREFgIiIKABEREQBICIiCgAREVEAiIiIAkBERBQAIiKiABAR\nEQWAiIgoAERERAEgIiIKABERUQCIiIgCQEREFAAiIqIAEBERBYCIiCgAREREASAiIgoAERFRAIiI\niAJAREQUACIiCgB9C0REFAAiIqIAEBERBYCIiCgAREREASAiIgoAERFRAIiIiAJAREQUACIiogAQ\nEREFgIiIKABEREQBICIiCgAREVEAiIiIAkBERBQAIiKiABAREQWAiIgoAERERAEgIiIKABERUQCI\niCgAREREASAiIgoAERFRAIiIiAJAREQUACIiogAQEREFgIiIKABEREQBICIiCgAREVEAiIiIAkBE\nRBQAIiKiABAREQWAiIgoAERERAEgIiIKABERUQCIiIgCQEREFAAiIpLyvwqOPC0KOsgdAAAAAElF\nTkSuQmCC\n",
- "text/plain": [
- ""
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.image(zoom=1.8)"
]
},
{
"cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAAG3RFWHRTb2Z0d2FyZQBMQU1NUFMg\nMTUgSnVsIDIwMTZ/hHVIAAAgAElEQVR42uzdd5xV1b34/c86bc70XphKGXoVEUXFht1YsBC7QdRo\noikGa4ixF9SoUSMKdkFFBAVBQIpU6XWG6b2XM+WcOf3svZ4/TvCXW/Lce58n3puf9/t+5b/Bk5l9\n9mt/zll77bWU1hohhBD/+1jkEAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGE\nBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARA\nCCGEBEAIIYQEQAghhARACCGEBEAIISQAQgghJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQAQggh\nJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQA\nQgghJABCCCEkAEIIISQAQgghJABCCCEBEEIIIQEQQgghARBCCCEBEEIIIQEQQgghARBCCCEBEEII\nIQEQQgghARBCCCEBEEIIIQEQQgghARBCCCEBEEIIIQEQQgghARBCCCEBEEIIIQEQQgghARBCCCEB\nEEIIIQEQQgghARBCCCEBEEIIIQEQQgghARBCCAmAEEIICYAQQggJgBBCCAmAEEIICYAQQggJgBBC\nCAmAEEIICYAQQggJgBBCCAmAEEIICYAQQggJgBBCCAmAEEIICYAQQggJgBBCCAmAEEIICYAQQggJ\ngBBCCAmAEEIICYAQQggJgBBCiH+H7R/1Qj09trS0RNP0yzEVQogfTlNTaPVq/Ytf6H+WANTUWIcN\n+yPkWyyfydsjhBA/nKKiXSNG9M2apZYu/f/bgH9MAGJiYiAdvBCUt0cIIX44gYD2+UhL+we81D8m\nAG63AfvB8HoPdnWF5B0SQogfwuDB5/T0hLxelPqnCcDfKinxNTTI2ySEEP9gv/zlb6D6H/iCth/i\ntywvZ98+ebOEEOIfZvXqlH/4a9p+oN/1u++0vGFCCPGP0tOT+g9/TXkOQAgh/peSAAghhARACCGE\nBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARA\nCCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIISQAQggh\nJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQA\nQgghJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQAQgghJABCCCEkAEIIISQAQgghJABCCCEBkEMg\nhBASACGEEBIAIYQQEgAhhBASACGEEBIAIYQQEgAhhBASACGEEBIAIYQQEgAhhBASACGEEBIAIYQQ\nEgAhhBASACGEEBIAIYQQEgAhhBASACGEEBIAIYQQEgAhhBASACGEEBIAIYQQEgAhhBASACGEEBIA\nIYSQAAghhJAACCGEkAAIIYSQAAghhJAACCGEkAAIIYSQAAghhJAACCGEkAAIIYSQAAghhJAACCGE\nkAAIIYSQAAghhJAACCGEkAAIIYSQAAghhJAACCGEkAAIIYSQAAghhJAACCGEkAAIIYSQAAghhJAA\nCCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAgh\nhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQEQAghhARACCGEBEAIIYQE\nQAghhARACCEkAEIIISQAQgghJABCCCEkAEIIIX5cbHIIxH9ol1ImHIJfaC1HQwj5BiD+VyhXioyM\nU8aMOTUl5UKl3lNKjokQEgDxY9NssXRZrYeUeuVvrvLDkpKYN4/nnuPEE9Pt9myYLQ0QQgIgflQy\nM/Ovuipz6tQJsbEnw0NKERtLQYE9NZW8PKxWTNOnVBBi5VgJ8WMh9wAEVVbr8Dvv5L77+OgjS329\n0+/PBH75S3p6aj/9dOirr2K1BktLG0KhVpDP/0JIAMSPR8Bioa+PnTspLw8EAv3gharXX28PhepM\ns3PXLodSrnC4Xutj4JfjJYQEQPy32aIUcAh+/Xcm4XRZrQoaTHMDPPBfn6hTGYnkr1+fevCgt7v7\nmMdTB93wcCDQD3EwIRyOAw/UA3CTvB9CSADEf5PU1DNHjKC9Pd/tflep2f/y+n5EqQmDB2defz1l\nZfElJQPB4N1KvfZvGrBSqVa48++04TsIdnen9fQEtG7XuhR8EAefRf/9E0+wcePULVtiYNuECa3l\n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\n",
- "text/plain": [
- ""
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.thermo_style(\"custom step temp epair press\")\n",
"L.thermo(100)\n",
@@ -206,202 +164,81 @@
},
{
"cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "System(ntypes=1, nimpropertypes=0, nbonds=1014, nangles=0, orthogonal_box=[58.2767, 40.3753, 1.16553], ndihedrals=0, yhi=40.3753, atom_style='bond', bond_style='harmonic', zlo=-0.582767, improper_style='none', xlo=0.0, style='lj/cut', xhi=58.2767, kspace_style='none', zhi=0.582767, nbondtypes=1, angle_style='none', dihedral_style='none', dimensions=2, natoms=361, boundaries='f,f f,f p,p', ylo=0.0, nimpropers=0, nangletypes=0, molecule_type='standard', atom_map='array', units='lj')"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.system"
]
},
{
"cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "361"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.system.natoms"
]
},
{
"cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1014"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.system.nbonds"
]
},
{
"cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.system.nbondtypes"
]
},
{
"cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Communication(comm_style='brick', comm_layout='uniform', proc_grid=[1, 1, 1], nthreads=1, mpi_version='MPI v3.0', nprocs=1, ghost_velocity=False)"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.communication"
]
},
{
"cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[{'group': 'all', 'name': '1', 'style': 'nve'},\n",
- " {'group': 'all', 'name': '2', 'style': 'wall/lj93'},\n",
- " {'group': 'all', 'name': '3', 'style': 'wall/lj93'}]"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.fixes"
]
},
{
"cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[{'group': 'all', 'name': 'thermo_temp', 'style': 'temp'},\n",
- " {'group': 'all', 'name': 'thermo_press', 'style': 'pressure'},\n",
- " {'group': 'all', 'name': 'thermo_pe', 'style': 'pe'}]"
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.computes"
]
},
{
"cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[]"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.dumps"
]
},
{
"cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[{'name': 'all', 'type': 'static'}]"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.groups"
]
@@ -415,10 +252,8 @@
},
{
"cell_type": "code",
- "execution_count": 15,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.variable(\"a index 2\")"
@@ -426,32 +261,17 @@
},
{
"cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'a': }"
- ]
- },
- "execution_count": 16,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables"
]
},
{
"cell_type": "code",
- "execution_count": 17,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.variable(\"t equal temp\")"
@@ -459,45 +279,18 @@
},
{
"cell_type": "code",
- "execution_count": 18,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'a': ,\n",
- " 't': }"
- ]
- },
- "execution_count": 18,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables"
]
},
{
"cell_type": "code",
- "execution_count": 19,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "2.0"
- ]
- },
- "execution_count": 19,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"import sys\n",
"\n",
@@ -515,54 +308,26 @@
},
{
"cell_type": "code",
- "execution_count": 20,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0.363092663783386"
- ]
- },
- "execution_count": 20,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['t'].value"
]
},
{
"cell_type": "code",
- "execution_count": 21,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0.181546331891693"
- ]
- },
- "execution_count": 21,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.eval(\"v_t/2.0\")"
]
},
{
"cell_type": "code",
- "execution_count": 22,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.variable(\"b index a b c\")"
@@ -570,76 +335,35 @@
},
{
"cell_type": "code",
- "execution_count": 23,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'a'"
- ]
- },
- "execution_count": 23,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['b'].value"
]
},
{
"cell_type": "code",
- "execution_count": 24,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0.0"
- ]
- },
- "execution_count": 24,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.eval(\"v_b\")"
]
},
{
"cell_type": "code",
- "execution_count": 25,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['a', 'b', 'c']"
- ]
- },
- "execution_count": 25,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['b'].definition"
]
},
{
"cell_type": "code",
- "execution_count": 26,
- "metadata": {
- "collapsed": false
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"L.variable(\"i loop 10\")"
@@ -647,44 +371,18 @@
},
{
"cell_type": "code",
- "execution_count": 27,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1.0"
- ]
- },
- "execution_count": 27,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.variables['i'].value"
]
},
{
"cell_type": "code",
- "execution_count": 28,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "2.0"
- ]
- },
- "execution_count": 28,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.next(\"i\")\n",
"L.variables['i'].value"
@@ -692,22 +390,9 @@
},
{
"cell_type": "code",
- "execution_count": 29,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0.3620868669308006"
- ]
- },
- "execution_count": 29,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.eval(\"ke\")"
]
@@ -721,163 +406,63 @@
},
{
"cell_type": "code",
- "execution_count": 30,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 30,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0]"
]
},
{
"cell_type": "code",
- "execution_count": 31,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['charge',\n",
- " 'force',\n",
- " 'id',\n",
- " 'index',\n",
- " 'lmp',\n",
- " 'mass',\n",
- " 'mol',\n",
- " 'position',\n",
- " 'type',\n",
- " 'velocity']"
- ]
- },
- "execution_count": 31,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"[x for x in dir(L.atoms[0]) if not x.startswith('__')]"
]
},
{
"cell_type": "code",
- "execution_count": 32,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(14.081609521719168, 0.920541427075243, 0.0)"
- ]
- },
- "execution_count": 32,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].position"
]
},
{
"cell_type": "code",
- "execution_count": 33,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1"
- ]
- },
- "execution_count": 33,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].id"
]
},
{
"cell_type": "code",
- "execution_count": 34,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(-0.08810676648167072, -0.8755151505832499, 0.0)"
- ]
- },
- "execution_count": 34,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].velocity"
]
},
{
"cell_type": "code",
- "execution_count": 35,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(0.809523377179948, -1.4360462290451692, 0.0)"
- ]
- },
- "execution_count": 35,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].force"
]
},
{
"cell_type": "code",
- "execution_count": 36,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1"
- ]
- },
- "execution_count": 36,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.atoms[0].type"
]
@@ -885,9 +470,7 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {
- "collapsed": true
- },
+ "metadata": {},
"outputs": [],
"source": []
}
@@ -907,8 +490,7 @@
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.5.2"
+ "pygments_lexer": "ipython3"
}
},
"nbformat": 4,
diff --git a/python/examples/ipython/simple.ipynb b/python/examples/ipython/simple.ipynb
index 752bf93af8..8382884325 100644
--- a/python/examples/ipython/simple.ipynb
+++ b/python/examples/ipython/simple.ipynb
@@ -26,10 +26,10 @@
"metadata": {},
"source": [
"1. Download the latest version of LAMMPS into a folder (we will calls this `$LAMMPS_DIR` from now on)\n",
- "2. Compile LAMMPS as a shared library and enable PNG support\n",
+ "2. Compile LAMMPS as a shared library and enable exceptions and PNG support\n",
" ```bash\n",
" cd $LAMMPS_DIR/src\n",
- " python2 Make.py -m mpi -png -a file\n",
+ " python Make.py -m mpi -png -s exceptions -a file\n",
" make mode=shlib auto\n",
" ```\n",
"\n",
@@ -66,10 +66,8 @@
},
{
"cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": true
- },
+ "execution_count": null,
+ "metadata": {},
"outputs": [],
"source": [
"from lammps import IPyLammps"
@@ -77,81 +75,18 @@
},
{
"cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "LAMMPS output is captured by PyLammps wrapper\n"
- ]
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L = IPyLammps()"
]
},
{
"cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Neighbor list info ...',\n",
- " ' 1 neighbor list requests',\n",
- " ' update every 20 steps, delay 0 steps, check no',\n",
- " ' max neighbors/atom: 2000, page size: 100000',\n",
- " ' master list distance cutoff = 2.8',\n",
- " ' ghost atom cutoff = 2.8',\n",
- " ' binsize = 1.4, bins = 5 5 5',\n",
- " 'Setting up Verlet run ...',\n",
- " ' Unit style : lj',\n",
- " ' Current step : 0',\n",
- " ' Time step : 0.005',\n",
- " 'Memory usage per processor = 2.04486 Mbytes',\n",
- " 'Step Temp E_pair E_mol TotEng Press ',\n",
- " ' 0 1.44 -6.7733681 0 -4.6218056 -5.0244179 ',\n",
- " ' 10 1.1298532 -6.3095502 0 -4.6213906 -2.6058175 ',\n",
- " 'Loop time of 0.001143 on 1 procs for 10 steps with 256 atoms',\n",
- " '',\n",
- " 'Performance: 3779527.555 tau/day, 8748.906 timesteps/s',\n",
- " '291.6% CPU use with 1 MPI tasks x no OpenMP threads',\n",
- " '',\n",
- " 'MPI task timing breakdown:',\n",
- " 'Section | min time | avg time | max time |%varavg| %total',\n",
- " '---------------------------------------------------------------',\n",
- " 'Pair | 0.001048 | 0.001048 | 0.001048 | 0.0 | 91.69',\n",
- " 'Neigh | 0 | 0 | 0 | 0.0 | 0.00',\n",
- " 'Comm | 5.3e-05 | 5.3e-05 | 5.3e-05 | 0.0 | 4.64',\n",
- " 'Output | 6e-06 | 6e-06 | 6e-06 | 0.0 | 0.52',\n",
- " 'Modify | 2.1e-05 | 2.1e-05 | 2.1e-05 | 0.0 | 1.84',\n",
- " 'Other | | 1.5e-05 | | | 1.31',\n",
- " '',\n",
- " 'Nlocal: 256 ave 256 max 256 min',\n",
- " 'Histogram: 1 0 0 0 0 0 0 0 0 0',\n",
- " 'Nghost: 1431 ave 1431 max 1431 min',\n",
- " 'Histogram: 1 0 0 0 0 0 0 0 0 0',\n",
- " 'Neighs: 9984 ave 9984 max 9984 min',\n",
- " 'Histogram: 1 0 0 0 0 0 0 0 0 0',\n",
- " '',\n",
- " 'Total # of neighbors = 9984',\n",
- " 'Ave neighs/atom = 39',\n",
- " 'Neighbor list builds = 0',\n",
- " 'Dangerous builds not checked']"
- ]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"import math\n",
"\n",
@@ -186,23 +121,9 @@
},
{
"cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "image/png": "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\n6P8HQDginrFaGAAAAAAASUVORK5CYII=\n",
- "text/plain": [
- ""
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"L.image(zoom=1.0)"
]
@@ -223,8 +144,7 @@
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.5.2"
+ "pygments_lexer": "ipython3"
}
},
"nbformat": 4,
diff --git a/python/lammps.py b/python/lammps.py
index a659a892e7..37ebfaaa88 100644
--- a/python/lammps.py
+++ b/python/lammps.py
@@ -28,6 +28,15 @@ import os
import select
import re
+
+class MPIAbortException(Exception):
+ def __init__(self, message):
+ self.message = message
+
+ def __str__(self):
+ return repr(self.message)
+
+
class lammps(object):
# detect if Python is using version of mpi4py that can pass a communicator
@@ -43,6 +52,7 @@ class lammps(object):
# create instance of LAMMPS
def __init__(self,name="",cmdargs=None,ptr=None,comm=None):
+ self.comm = comm
# determine module location
@@ -150,10 +160,14 @@ class lammps(object):
if cmd: cmd = cmd.encode()
self.lib.lammps_command(self.lmp,cmd)
- if self.lib.lammps_has_error(self.lmp):
+ if self.uses_exceptions and self.lib.lammps_has_error(self.lmp):
sb = create_string_buffer(100)
- self.lib.lammps_get_last_error_message(self.lmp, sb, 100)
- raise Exception(sb.value.decode().strip())
+ error_type = self.lib.lammps_get_last_error_message(self.lmp, sb, 100)
+ error_msg = sb.value.decode().strip()
+
+ if error_type == 2:
+ raise MPIAbortException(error_msg)
+ raise Exception(error_msg)
def extract_global(self,name,type):
if name: name = name.encode()
@@ -286,6 +300,14 @@ class lammps(object):
if name: name = name.encode()
self.lib.lammps_scatter_atoms(self.lmp,name,type,count,data)
+ @property
+ def uses_exceptions(self):
+ try:
+ if self.lib.lammps_has_error:
+ return True
+ except(AttributeError):
+ return False
+
# -------------------------------------------------------------------------
# -------------------------------------------------------------------------
# -------------------------------------------------------------------------
diff --git a/src/GPU/pair_eam_alloy_gpu.h b/src/GPU/pair_eam_alloy_gpu.h
index eb1ff404b0..14d9a95c30 100644
--- a/src/GPU/pair_eam_alloy_gpu.h
+++ b/src/GPU/pair_eam_alloy_gpu.h
@@ -33,6 +33,7 @@ public:
void init_style();
double single(int, int, int, int, double, double, double, double &);
double memory_usage();
+ void *extract(const char *, int &) { return NULL; }
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
diff --git a/src/GPU/pair_eam_fs_gpu.h b/src/GPU/pair_eam_fs_gpu.h
index 03c6d189b2..70edf2164e 100644
--- a/src/GPU/pair_eam_fs_gpu.h
+++ b/src/GPU/pair_eam_fs_gpu.h
@@ -33,6 +33,7 @@ public:
void init_style();
double single(int, int, int, int, double, double, double, double &);
double memory_usage();
+ void *extract(const char *, int &) { return NULL; }
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
diff --git a/src/GPU/pair_eam_gpu.h b/src/GPU/pair_eam_gpu.h
index ccc6b6f8c6..2c4731d9cf 100644
--- a/src/GPU/pair_eam_gpu.h
+++ b/src/GPU/pair_eam_gpu.h
@@ -34,6 +34,7 @@ class PairEAMGPU : public PairEAM {
void init_style();
double single(int, int, int, int, double, double, double, double &);
double memory_usage();
+ void *extract(const char *, int &) { return NULL; }
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
diff --git a/src/KOKKOS/pair_eam_alloy_kokkos.h b/src/KOKKOS/pair_eam_alloy_kokkos.h
index 6d6f1926e5..391349d9cb 100644
--- a/src/KOKKOS/pair_eam_alloy_kokkos.h
+++ b/src/KOKKOS/pair_eam_alloy_kokkos.h
@@ -61,6 +61,7 @@ class PairEAMAlloyKokkos : public PairEAM {
virtual ~PairEAMAlloyKokkos();
virtual void compute(int, int);
void init_style();
+ void *extract(const char *, int &) { return NULL; }
void coeff(int, char **);
KOKKOS_INLINE_FUNCTION
diff --git a/src/KOKKOS/pair_eam_fs_kokkos.h b/src/KOKKOS/pair_eam_fs_kokkos.h
index 6049c3eaaf..c3b0f32457 100644
--- a/src/KOKKOS/pair_eam_fs_kokkos.h
+++ b/src/KOKKOS/pair_eam_fs_kokkos.h
@@ -61,6 +61,7 @@ class PairEAMFSKokkos : public PairEAM {
virtual ~PairEAMFSKokkos();
virtual void compute(int, int);
void init_style();
+ void *extract(const char *, int &) { return NULL; }
void coeff(int, char **);
KOKKOS_INLINE_FUNCTION
diff --git a/src/KOKKOS/pair_eam_kokkos.h b/src/KOKKOS/pair_eam_kokkos.h
index 89d1d61b6b..f933a4a0d7 100644
--- a/src/KOKKOS/pair_eam_kokkos.h
+++ b/src/KOKKOS/pair_eam_kokkos.h
@@ -59,6 +59,7 @@ class PairEAMKokkos : public PairEAM {
virtual ~PairEAMKokkos();
virtual void compute(int, int);
void init_style();
+ void *extract(const char *, int &) { return NULL; }
KOKKOS_INLINE_FUNCTION
void operator()(TagPairEAMPackForwardComm, const int&) const;
diff --git a/src/MANYBODY/pair_eam.cpp b/src/MANYBODY/pair_eam.cpp
index e2f2436a33..53fbef60e8 100644
--- a/src/MANYBODY/pair_eam.cpp
+++ b/src/MANYBODY/pair_eam.cpp
@@ -54,6 +54,7 @@ PairEAM::PairEAM(LAMMPS *lmp) : Pair(lmp)
frho = NULL;
rhor = NULL;
z2r = NULL;
+ scale = NULL;
frho_spline = NULL;
rhor_spline = NULL;
@@ -232,6 +233,7 @@ void PairEAM::compute(int eflag, int vflag)
if (eflag) {
phi = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
if (rho[i] > rhomax) phi += fp[i] * (rho[i]-rhomax);
+ phi *= scale[type[i]][type[i]];
if (eflag_global) eng_vdwl += phi;
if (eflag_atom) eatom[i] += phi;
}
@@ -306,7 +308,7 @@ void PairEAM::compute(int eflag, int vflag)
f[j][2] -= delz*fpair;
}
- if (eflag) evdwl = phi;
+ if (eflag) evdwl = scale[itype][jtype]*phi;
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,0.0,fpair,delx,dely,delz);
}
diff --git a/src/MANYBODY/pair_eam.h b/src/MANYBODY/pair_eam.h
index 040497fceb..f0e9d77cee 100644
--- a/src/MANYBODY/pair_eam.h
+++ b/src/MANYBODY/pair_eam.h
@@ -54,7 +54,7 @@ class PairEAM : public Pair {
void init_style();
double init_one(int, int);
double single(int, int, int, int, double, double, double, double &);
- void *extract(const char *, int &);
+ virtual void *extract(const char *, int &);
virtual int pack_forward_comm(int, int *, double *, int, int *);
virtual void unpack_forward_comm(int, int, double *);
diff --git a/src/MOLECULE/fix_cmap.cpp b/src/MOLECULE/fix_cmap.cpp
new file mode 100644
index 0000000000..39081168d8
--- /dev/null
+++ b/src/MOLECULE/fix_cmap.cpp
@@ -0,0 +1,1432 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------
+ Implementation of the CHARMM CMAP; adds an extra energy term for the
+ peptide backbone dihedrals. The tools/ch2lmp.pl conversion script, which
+ generates an extra section in the LAMMPS data file, is needed in order to
+ generate the info used by this fix style.
+
+ Contributing authors:
+ Xiaohu Hu, CMB/ORNL (hux2@ornl.gov)
+ David Hyde-Volpe, Tigran Abramyan, and Robert A. Latour (Clemson University)
+ Chris Lorenz (Kings College-London)
+
+ References:
+ - MacKerell et al., J. Am. Chem. Soc. 126(2004):698-699.
+ - MacKerell et al., J. Comput. Chem. 25(2004):1400-1415.
+ -------------------------------------------------------------------------*/
+
+#include "mpi.h"
+#include "math.h"
+#include "stdlib.h"
+#include "string.h"
+#include "stdio.h"
+#include "fix_cmap.h"
+#include "atom.h"
+#include "atom_vec.h"
+#include "update.h"
+#include "respa.h"
+#include "modify.h"
+#include "domain.h"
+#include "force.h"
+#include "group.h"
+#include "comm.h"
+#include "math_const.h"
+#include "memory.h"
+#include "error.h"
+
+using namespace LAMMPS_NS;
+using namespace FixConst;
+using namespace MathConst;
+
+#define MAXLINE 256
+#define LISTDELTA 10000
+#define LB_FACTOR 1.5
+
+#define CMAPMAX 6 // max # of CMAP terms stored by one atom
+#define CMAPDIM 24 // grid map dimension is 24 x 24
+#define CMAPXMIN -360.0
+#define CMAPXMIN2 -180.0
+#define CMAPDX 15.0 // 360/CMAPDIM
+
+/* ---------------------------------------------------------------------- */
+
+FixCMAP::FixCMAP(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
+{
+ if (narg != 4) error->all(FLERR,"Illegal fix cmap command");
+
+ restart_global = 1;
+ restart_peratom = 1;
+ peatom_flag = 1;
+ virial_flag = 1;
+ peratom_freq = 1;
+ scalar_flag = 1;
+ global_freq = 1;
+ extscalar = 1;
+ extvector = 1;
+ wd_header = 1;
+ wd_section = 1;
+
+ MPI_Comm_rank(world,&me);
+ MPI_Comm_size(world,&nprocs);
+
+ // allocate memory for CMAP data
+
+ memory->create(g_axis,CMAPDIM,"cmap:g_axis");
+ memory->create(cmapgrid,6,CMAPDIM,CMAPDIM,"cmap:grid");
+ memory->create(d1cmapgrid,6,CMAPDIM,CMAPDIM,"cmap:d1grid");
+ memory->create(d2cmapgrid,6,CMAPDIM,CMAPDIM,"cmap:d2grid");
+ memory->create(d12cmapgrid,6,CMAPDIM,CMAPDIM,"cmap:d12grid");
+
+ // read, initialize, broadcast cmapgrid
+
+ if (me == 0) read_grid_map(arg[3]);
+ MPI_Bcast(&cmapgrid[0][0][0],6*CMAPDIM*CMAPDIM,MPI_DOUBLE,0,world);
+
+ // perform initial allocation of atom-based arrays
+ // register with Atom class
+
+ num_crossterm = NULL;
+ crossterm_type = NULL;
+ crossterm_atom1 = NULL;
+ crossterm_atom2 = NULL;
+ crossterm_atom3 = NULL;
+ crossterm_atom4 = NULL;
+ crossterm_atom5 = NULL;
+
+ nmax_previous = 0;
+ grow_arrays(atom->nmax);
+ atom->add_callback(0);
+ atom->add_callback(1);
+
+ // local list of crossterms
+
+ ncmap = 0;
+ maxcrossterm = 0;
+ crosstermlist = NULL;
+}
+
+/* --------------------------------------------------------------------- */
+
+FixCMAP::~FixCMAP()
+{
+ // unregister callbacks to this fix from Atom class
+
+ atom->delete_callback(id,0);
+ atom->delete_callback(id,1);
+
+ memory->destroy(g_axis);
+ memory->destroy(cmapgrid);
+ memory->destroy(d1cmapgrid);
+ memory->destroy(d2cmapgrid);
+ memory->destroy(d12cmapgrid);
+
+ memory->destroy(crosstermlist);
+
+ memory->destroy(num_crossterm);
+ memory->destroy(crossterm_type);
+ memory->destroy(crossterm_atom1);
+ memory->destroy(crossterm_atom2);
+ memory->destroy(crossterm_atom3);
+ memory->destroy(crossterm_atom4);
+ memory->destroy(crossterm_atom5);
+}
+
+/* ---------------------------------------------------------------------- */
+
+int FixCMAP::setmask()
+{
+ int mask = 0;
+ mask |= PRE_NEIGHBOR;
+ mask |= PRE_REVERSE;
+ mask |= POST_FORCE;
+ mask |= THERMO_ENERGY;
+ mask |= POST_FORCE_RESPA;
+ mask |= MIN_POST_FORCE;
+ return mask;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void FixCMAP::init()
+{
+ int i;
+ double angle;
+
+ i = 0;
+ angle = -180.0;
+ while (angle < 180.0) {
+ g_axis[i] = angle;
+ angle += CMAPDX;
+ i++;
+ }
+
+ // pre-compute the derivatives of the maps
+
+ for (i = 0; i < 6; i++)
+ set_map_derivatives(cmapgrid[i],d1cmapgrid[i],d2cmapgrid[i],d12cmapgrid[i]);
+
+ // define newton_bond here in case restart file was read (not data file)
+
+ newton_bond = force->newton_bond;
+}
+
+/* --------------------------------------------------------------------- */
+
+void FixCMAP::setup(int vflag)
+{
+ pre_neighbor();
+
+ if (strstr(update->integrate_style,"verlet"))
+ post_force(vflag);
+ else {
+ ((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
+ post_force_respa(vflag,nlevels_respa-1,0);
+ ((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
+ }
+}
+
+/* --------------------------------------------------------------------- */
+
+void FixCMAP::setup_pre_neighbor()
+{
+ pre_neighbor();
+}
+
+/* --------------------------------------------------------------------- */
+
+void FixCMAP::min_setup(int vflag)
+{
+ pre_neighbor();
+ post_force(vflag);
+}
+
+/* ----------------------------------------------------------------------
+ store local neighbor list as if newton_bond = OFF, even if actually ON
+------------------------------------------------------------------------- */
+
+void FixCMAP::pre_neighbor()
+{
+ int i,m,itype,atom1,atom2,atom3,atom4,atom5;
+
+ // guesstimate initial length of local crossterm list
+ // if ncmap was not set (due to read_restart, no read_data),
+ // then list will grow by LISTDELTA chunks
+
+ if (maxcrossterm == 0) {
+ if (nprocs == 1) maxcrossterm = ncmap;
+ else maxcrossterm = static_cast (LB_FACTOR*ncmap/nprocs);
+ memory->create(crosstermlist,maxcrossterm,6,"cmap:crosstermlist");
+ }
+
+ int nlocal = atom->nlocal;
+
+ ncrosstermlist = 0;
+
+ for (i = 0; i < nlocal; i++) {
+ for (m = 0; m < num_crossterm[i]; m++) {
+ atom1 = atom->map(crossterm_atom1[i][m]);
+ atom2 = atom->map(crossterm_atom2[i][m]);
+ atom3 = atom->map(crossterm_atom3[i][m]);
+ atom4 = atom->map(crossterm_atom4[i][m]);
+ atom5 = atom->map(crossterm_atom5[i][m]);
+
+ if (atom1 == -1 || atom2 == -1 || atom3 == -1 ||
+ atom4 == -1 || atom5 == -1) {
+ char str[128];
+ sprintf(str,"CMAP atoms "
+ TAGINT_FORMAT " " TAGINT_FORMAT " " TAGINT_FORMAT " "
+ TAGINT_FORMAT " " TAGINT_FORMAT
+ " missing on proc %d at step " BIGINT_FORMAT,
+ crossterm_atom1[i][m],crossterm_atom2[i][m],
+ crossterm_atom3[i][m],crossterm_atom4[i][m],
+ crossterm_atom5[i][m],me,update->ntimestep);
+ error->one(FLERR,str);
+ }
+ atom1 = domain->closest_image(i,atom1);
+ atom2 = domain->closest_image(i,atom2);
+ atom3 = domain->closest_image(i,atom3);
+ atom4 = domain->closest_image(i,atom4);
+ atom5 = domain->closest_image(i,atom5);
+
+ if (i <= atom1 && i <= atom2 && i <= atom3 &&
+ i <= atom4 && i <= atom5) {
+ if (ncrosstermlist == maxcrossterm) {
+ maxcrossterm += LISTDELTA;
+ memory->grow(crosstermlist,maxcrossterm,6,"cmap:crosstermlist");
+ }
+ crosstermlist[ncrosstermlist][0] = atom1;
+ crosstermlist[ncrosstermlist][1] = atom2;
+ crosstermlist[ncrosstermlist][2] = atom3;
+ crosstermlist[ncrosstermlist][3] = atom4;
+ crosstermlist[ncrosstermlist][4] = atom5;
+ crosstermlist[ncrosstermlist][5] = crossterm_type[i][m];
+ ncrosstermlist++;
+ }
+ }
+ }
+}
+
+/* ----------------------------------------------------------------------
+ store eflag, so can use it in post_force to tally per-atom energies
+------------------------------------------------------------------------- */
+
+void FixCMAP::pre_reverse(int eflag, int vflag)
+{
+ eflag_caller = eflag;
+}
+
+/* ----------------------------------------------------------------------
+ compute CMAP terms as if newton_bond = OFF, even if actually ON
+------------------------------------------------------------------------- */
+
+void FixCMAP::post_force(int vflag)
+{
+ int n,i1,i2,i3,i4,i5,type,nlist;
+ int li1, li2, mli1,mli2,mli11,mli21,t1,li3,li4,mli3,mli4,mli31,mli41;
+ int list[5];
+ // vectors needed to calculate the cross-term dihedral angles
+ double vb21x,vb21y,vb21z,vb32x,vb32y,vb32z,vb34x,vb34y,vb34z;
+ double vb23x,vb23y,vb23z;
+ double vb43x,vb43y,vb43z,vb45x,vb45y,vb45z,a1x,a1y,a1z,b1x,b1y,b1z;
+ double a2x,a2y,a2z,b2x,b2y,b2z,r32,a1sq,b1sq,a2sq,b2sq,dpr21r32,dpr34r32;
+ double dpr32r43,dpr45r43,r43,vb12x,vb12y,vb12z,vb54x,vb54y,vb54z;
+ // cross-term dihedral angles
+ double phi,psi,phi1,psi1;
+ double f1[3],f2[3],f3[3],f4[3],f5[3],vcmap[6];
+ double gs[4],d1gs[4],d2gs[4],d12gs[4];
+ double engfraction;
+ // vectors needed for the gradient/force calculation
+ double dphidr1x,dphidr1y,dphidr1z,dphidr2x,dphidr2y,dphidr2z;
+ double dphidr3x,dphidr3y,dphidr3z,dphidr4x,dphidr4y,dphidr4z;
+ double dpsidr1x,dpsidr1y,dpsidr1z,dpsidr2x,dpsidr2y,dpsidr2z;
+ double dpsidr3x,dpsidr3y,dpsidr3z,dpsidr4x,dpsidr4y,dpsidr4z;
+
+ // Definition of cross-term dihedrals
+
+ // phi dihedral
+ // |--------------------|
+ // a1-----a2-----a3-----a4-----a5 cross-term atoms
+ // C N CA C N cross-term atom types
+ // |--------------------|
+ // psi dihedral
+
+ double **x = atom->x;
+ double **f = atom->f;
+ int nlocal = atom->nlocal;
+
+ ecmap = 0.0;
+ int eflag = eflag_caller;
+ if (eflag || vflag) ev_setup(eflag,vflag);
+ else evflag = 0;
+
+ for (n = 0; n < ncrosstermlist; n++) {
+ i1 = crosstermlist[n][0];
+ i2 = crosstermlist[n][1];
+ i3 = crosstermlist[n][2];
+ i4 = crosstermlist[n][3];
+ i5 = crosstermlist[n][4];
+
+ type = crosstermlist[n][5];
+ if (type == 0) continue;
+
+ // calculate bond vectors for both dihedrals
+
+ // phi
+ // vb21 = r2 - r1
+
+ vb21x = x[i2][0] - x[i1][0];
+ vb21y = x[i2][1] - x[i1][1];
+ vb21z = x[i2][2] - x[i1][2];
+ vb12x = -1.0*vb21x;
+ vb12y = -1.0*vb21y;
+ vb12z = -1.0*vb21z;
+ vb32x = x[i3][0] - x[i2][0];
+ vb32y = x[i3][1] - x[i2][1];
+ vb32z = x[i3][2] - x[i2][2];
+ vb23x = -1.0*vb32x;
+ vb23y = -1.0*vb32y;
+ vb23z = -1.0*vb32z;
+
+ vb34x = x[i3][0] - x[i4][0];
+ vb34y = x[i3][1] - x[i4][1];
+ vb34z = x[i3][2] - x[i4][2];
+
+ // psi
+ // bond vectors same as for phi: vb32
+
+ vb43x = -1.0*vb34x;
+ vb43y = -1.0*vb34y;
+ vb43z = -1.0*vb34z;
+
+ vb45x = x[i4][0] - x[i5][0];
+ vb45y = x[i4][1] - x[i5][1];
+ vb45z = x[i4][2] - x[i5][2];
+ vb54x = -1.0*vb45x;
+ vb54y = -1.0*vb45y;
+ vb54z = -1.0*vb45z;
+
+ // calculate normal vectors for planes that define the dihedral angles
+
+ a1x = vb12y*vb23z - vb12z*vb23y;
+ a1y = vb12z*vb23x - vb12x*vb23z;
+ a1z = vb12x*vb23y - vb12y*vb23x;
+
+ b1x = vb43y*vb23z - vb43z*vb23y;
+ b1y = vb43z*vb23x - vb43x*vb23z;
+ b1z = vb43x*vb23y - vb43y*vb23x;
+
+ a2x = vb23y*vb34z - vb23z*vb34y;
+ a2y = vb23z*vb34x - vb23x*vb34z;
+ a2z = vb23x*vb34y - vb23y*vb34x;
+
+ b2x = vb45y*vb43z - vb45z*vb43y;
+ b2y = vb45z*vb43x - vb45x*vb43z;
+ b2z = vb45x*vb43y - vb45y*vb43x;
+
+ // calculate terms used later in calculations
+
+ r32 = sqrt(vb32x*vb32x + vb32y*vb32y + vb32z*vb32z);
+ a1sq = a1x*a1x + a1y*a1y + a1z*a1z;
+ b1sq = b1x*b1x + b1y*b1y + b1z*b1z;
+
+ r43 = sqrt(vb43x*vb43x + vb43y*vb43y + vb43z*vb43z);
+ a2sq = a2x*a2x + a2y*a2y + a2z*a2z;
+ b2sq = b2x*b2x + b2y*b2y + b2z*b2z;
+ //if (a1sq<0.0001 || b1sq<0.0001 || a2sq<0.0001 || b2sq<0.0001)
+ // printf("a1sq b1sq a2sq b2sq: %f %f %f %f \n",a1sq,b1sq,a2sq,b2sq);
+ if (a1sq<0.0001 || b1sq<0.0001 || a2sq<0.0001 || b2sq<0.0001) continue;
+ dpr21r32 = vb21x*vb32x + vb21y*vb32y + vb21z*vb32z;
+ dpr34r32 = vb34x*vb32x + vb34y*vb32y + vb34z*vb32z;
+ dpr32r43 = vb32x*vb43x + vb32y*vb43y + vb32z*vb43z;
+ dpr45r43 = vb45x*vb43x + vb45y*vb43y + vb45z*vb43z;
+
+ // calculate the backbone dihedral angles as VMD and GROMACS
+
+ phi = dihedral_angle_atan2(vb21x,vb21y,vb21z,a1x,a1y,a1z,b1x,b1y,b1z,r32);
+ psi = dihedral_angle_atan2(vb32x,vb32y,vb32z,a2x,a2y,a2z,b2x,b2y,b2z,r43);
+
+ if (phi == 180.0) phi= -180.0;
+ if (psi == 180.0) psi= -180.0;
+
+ phi1 = phi;
+ if (phi1 < 0.0) phi1 += 360.0;
+ psi1 = psi;
+ if (psi1 < 0.0) psi1 += 360.0;
+
+ // find the neighbor grid point index
+
+ li1 = int(((phi1+CMAPXMIN2)/CMAPDX)+((CMAPDIM*1.0)/2.0));
+ li2 = int(((psi1+CMAPXMIN2)/CMAPDX)+((CMAPDIM*1.0)/2.0));
+
+ li3 = int((phi-CMAPXMIN2)/CMAPDX);
+ li4 = int((psi-CMAPXMIN2)/CMAPDX);
+ mli3 = li3 % CMAPDIM;
+ mli4 = li4 % CMAPDIM;
+ mli31 = (li3+1) % CMAPDIM;
+ mli41 = (li4+1) %CMAPDIM;
+ mli1 = li1 % CMAPDIM;
+ mli2 = li2 % CMAPDIM;
+ mli11 = (li1+1) % CMAPDIM;
+ mli21 = (li2+1) %CMAPDIM;
+ t1 = type-1;
+ if (t1 < 0 || t1 > 5) error->all(FLERR,"Invalid CMAP crossterm_type");
+
+ // determine the values and derivatives for the grid square points
+
+ gs[0] = cmapgrid[t1][mli3][mli4];
+ gs[1] = cmapgrid[t1][mli31][mli4];
+ gs[2] = cmapgrid[t1][mli31][mli41];
+ gs[3] = cmapgrid[t1][mli3][mli41];
+ d1gs[0] = d1cmapgrid[t1][mli1][mli2];
+ d1gs[1] = d1cmapgrid[t1][mli11][mli2];
+ d1gs[2] = d1cmapgrid[t1][mli11][mli21];
+ d1gs[3] = d1cmapgrid[t1][mli1][mli21];
+
+ d2gs[0] = d2cmapgrid[t1][mli1][mli2];
+ d2gs[1] = d2cmapgrid[t1][mli11][mli2];
+ d2gs[2] = d2cmapgrid[t1][mli11][mli21];
+ d2gs[3] = d2cmapgrid[t1][mli1][mli21];
+
+ d12gs[0] = d12cmapgrid[t1][mli1][mli2];
+ d12gs[1] = d12cmapgrid[t1][mli11][mli2];
+ d12gs[2] = d12cmapgrid[t1][mli11][mli21];
+ d12gs[3] = d12cmapgrid[t1][mli1][mli21];
+
+ // calculate the cmap energy and the gradient (dE/dphi,dE/dpsi)
+
+ bc_interpol(phi,psi,li3,li4,gs,d1gs,d2gs,d12gs);
+
+ // sum up cmap energy contributions
+
+ engfraction = 0.2 * E;
+ if (i1 < nlocal) ecmap += engfraction;
+ if (i2 < nlocal) ecmap += engfraction;
+ if (i3 < nlocal) ecmap += engfraction;
+ if (i4 < nlocal) ecmap += engfraction;
+ if (i5 < nlocal) ecmap += engfraction;
+
+ // calculate the derivatives dphi/dr_i
+
+ dphidr1x = 1.0*r32/a1sq*a1x;
+ dphidr1y = 1.0*r32/a1sq*a1y;
+ dphidr1z = 1.0*r32/a1sq*a1z;
+
+ dphidr2x = -1.0*r32/a1sq*a1x - dpr21r32/a1sq/r32*a1x +
+ dpr34r32/b1sq/r32*b1x;
+ dphidr2y = -1.0*r32/a1sq*a1y - dpr21r32/a1sq/r32*a1y +
+ dpr34r32/b1sq/r32*b1y;
+ dphidr2z = -1.0*r32/a1sq*a1z - dpr21r32/a1sq/r32*a1z +
+ dpr34r32/b1sq/r32*b1z;
+
+ dphidr3x = dpr34r32/b1sq/r32*b1x - dpr21r32/a1sq/r32*a1x - r32/b1sq*b1x;
+ dphidr3y = dpr34r32/b1sq/r32*b1y - dpr21r32/a1sq/r32*a1y - r32/b1sq*b1y;
+ dphidr3z = dpr34r32/b1sq/r32*b1z - dpr21r32/a1sq/r32*a1z - r32/b1sq*b1z;
+
+ dphidr4x = r32/b1sq*b1x;
+ dphidr4y = r32/b1sq*b1y;
+ dphidr4z = r32/b1sq*b1z;
+
+ // calculate the derivatives dpsi/dr_i
+
+ dpsidr1x = 1.0*r43/a2sq*a2x;
+ dpsidr1y = 1.0*r43/a2sq*a2y;
+ dpsidr1z = 1.0*r43/a2sq*a2z;
+
+ dpsidr2x = r43/a2sq*a2x + dpr32r43/a2sq/r43*a2x - dpr45r43/b2sq/r43*b2x;
+ dpsidr2y = r43/a2sq*a2y + dpr32r43/a2sq/r43*a2y - dpr45r43/b2sq/r43*b2y;
+ dpsidr2z = r43/a2sq*a2z + dpr32r43/a2sq/r43*a2z - dpr45r43/b2sq/r43*b2z;
+
+ dpsidr3x = dpr45r43/b2sq/r43*b2x - dpr32r43/a2sq/r43*a2x - r43/b2sq*b2x;
+ dpsidr3y = dpr45r43/b2sq/r43*b2y - dpr32r43/a2sq/r43*a2y - r43/b2sq*b2y;
+ dpsidr3z = dpr45r43/b2sq/r43*b2z - dpr32r43/a2sq/r43*a2z - r43/b2sq*b2z;
+
+ dpsidr4x = r43/b2sq*b2x;
+ dpsidr4y = r43/b2sq*b2y;
+ dpsidr4z = r43/b2sq*b2z;
+
+ // calculate forces on cross-term atoms: F = -(dE/dPhi)*(dPhi/dr)
+
+ f1[0] = dEdPhi*dphidr1x;
+ f1[1] = dEdPhi*dphidr1y;
+ f1[2] = dEdPhi*dphidr1z;
+ f2[0] = dEdPhi*dphidr2x + dEdPsi*dpsidr1x;
+ f2[1] = dEdPhi*dphidr2y + dEdPsi*dpsidr1y;
+ f2[2] = dEdPhi*dphidr2z + dEdPsi*dpsidr1z;
+ f3[0] = -dEdPhi*dphidr3x - dEdPsi*dpsidr2x;
+ f3[1] = -dEdPhi*dphidr3y - dEdPsi*dpsidr2y;
+ f3[2] = -dEdPhi*dphidr3z - dEdPsi*dpsidr2z;
+ f4[0] = -dEdPhi*dphidr4x - dEdPsi*dpsidr3x;
+ f4[1] = -dEdPhi*dphidr4y - dEdPsi*dpsidr3y;
+ f4[2] = -dEdPhi*dphidr4z - dEdPsi*dpsidr3z;
+ f5[0] = -dEdPsi*dpsidr4x;
+ f5[1] = -dEdPsi*dpsidr4y;
+ f5[2] = -dEdPsi*dpsidr4z;
+
+ // apply force to each of the 5 atoms
+
+ if (i1 < nlocal) {
+ f[i1][0] += f1[0];
+ f[i1][1] += f1[1];
+ f[i1][2] += f1[2];
+ }
+ if (i2 < nlocal) {
+ f[i2][0] += f2[0];
+ f[i2][1] += f2[1];
+ f[i2][2] += f2[2];
+ }
+ if (i3 < nlocal) {
+ f[i3][0] += f3[0];
+ f[i3][1] += f3[1];
+ f[i3][2] += f3[2];
+ }
+ if (i4 < nlocal) {
+ f[i4][0] += f4[0];
+ f[i4][1] += f4[1];
+ f[i4][2] += f4[2];
+ }
+ if (i5 < nlocal) {
+ f[i5][0] += f5[0];
+ f[i5][1] += f5[1];
+ f[i5][2] += f5[2];
+ }
+
+ // tally energy and/or virial
+
+ if (evflag) {
+ nlist = 0;
+ if (i1 < nlocal) list[nlist++] = i1;
+ if (i2 < nlocal) list[nlist++] = i2;
+ if (i3 < nlocal) list[nlist++] = i3;
+ if (i4 < nlocal) list[nlist++] = i4;
+ if (i5 < nlocal) list[nlist++] = i5;
+ vcmap[0] = (vb12x*f1[0])+(vb32x*f3[0])+((vb43x+vb32x)*f4[0])+
+ ((vb54x+vb43x+vb32x)*f5[0]);
+ vcmap[1] = (vb12y*f1[1])+(vb32y*f3[1])+((vb43y+vb32y)*f4[1])+
+ ((vb54y+vb43y+vb32y)*f5[1]);
+ vcmap[2] = (vb12z*f1[2])+(vb32z*f3[2])+((vb43z+vb32z)*f4[2])+
+ ((vb54z+vb43z+vb32z)*f5[2]);
+ vcmap[3] = (vb12x*f1[1])+(vb32x*f3[1])+((vb43x+vb32x)*f4[1])+
+ ((vb54x+vb43x+vb32x)*f5[1]);
+ vcmap[4] = (vb12x*f1[2])+(vb32x*f3[2])+((vb43x+vb32x)*f4[2])+
+ ((vb54x+vb43x+vb32x)*f5[2]);
+ vcmap[5] = (vb12y*f1[2])+(vb32y*f3[2])+((vb43y+vb32y)*f4[2])+
+ ((vb54y+vb43y+vb32y)*f5[2]);
+ ev_tally(nlist,list,5.0,E,vcmap);
+ //ev_tally(5,list,nlocal,newton_bond,E,vcmap);
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void FixCMAP::post_force_respa(int vflag, int ilevel, int iloop)
+{
+ if (ilevel == nlevels_respa-1) post_force(vflag);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void FixCMAP::min_post_force(int vflag)
+{
+ post_force(vflag);
+}
+
+/* ----------------------------------------------------------------------
+ energy of CMAP term
+------------------------------------------------------------------------- */
+
+double FixCMAP::compute_scalar()
+{
+ double all;
+ MPI_Allreduce(&ecmap,&all,1,MPI_DOUBLE,MPI_SUM,world);
+ return all;
+}
+
+// ----------------------------------------------------------------------
+// ----------------------------------------------------------------------
+// methods to read CMAP potential file, perform interpolation
+// ----------------------------------------------------------------------
+// ----------------------------------------------------------------------
+
+void FixCMAP::read_grid_map(char *cmapfile)
+{
+ char line[MAXLINE];
+ char *chunk;
+ int i1, i2, i3, i4, i5, i6, j1, j2, j3, j4, j5, j6, counter;
+
+ FILE *fp = fopen(cmapfile,"r");
+ if (fp == NULL) {
+ char str[128];
+ sprintf(str,"Cannot open fix cmap file %s",cmapfile);
+ error->one(FLERR,str);
+ }
+
+ for (int ix1 = 0; ix1 < 6; ix1++)
+ for (int ix2 = 0; ix2 < CMAPDIM; ix2++)
+ for (int ix3 = 0; ix3 < CMAPDIM; ix3++)
+ cmapgrid[ix1][ix2][ix3] = 0.0;
+
+ counter = 0;
+ i1 = i2 = i3 = i4 = i5 = i6 = 0;
+ j1 = j2 = j3 = j4 = j5 = j6 = 0;
+
+ while (fgets(line,MAXLINE,fp) != NULL) {
+ if (line == "" || line[0] == '#') { ;; }
+
+ // read in the cmap grid point values
+ // NOTE: The order to read the 6 grid maps is HARD-CODED, thus errors
+ // will occur if content of the file "cmap.data" is altered
+ //
+ // Reading order of the maps:
+ // 1. Alanine map
+ // 2. Alanine before proline map
+ // 3. Proline map
+ // 4. Two adjacent prolines map
+ // 5. Glycine map
+ // 6. Glycine before proline map
+
+ else {
+ chunk = strtok(line, " \r\n");
+ while (chunk != NULL) {
+
+ // alanine map
+
+ if (counter < CMAPDIM*CMAPDIM) {
+ cmapgrid[0][i1][j1] = atof(chunk);
+ chunk = strtok(NULL, " \r\n");
+ j1++;
+ if (j1 == CMAPDIM) {
+ j1 = 0;
+ i1++;
+ }
+ counter++;
+ }
+
+ // alanine-proline map
+
+ else if (counter >= CMAPDIM*CMAPDIM &&
+ counter < 2*CMAPDIM*CMAPDIM) {
+ cmapgrid[1][i2][j2]= atof(chunk);
+ chunk = strtok(NULL, " \r\n");
+ j2++;
+ if (j2 == CMAPDIM) {
+ j2 = 0;
+ i2++;
+ }
+ counter++;
+ }
+
+ // proline map
+
+ else if (counter >= 2*CMAPDIM*CMAPDIM &&
+ counter < 3*CMAPDIM*CMAPDIM) {
+ cmapgrid[2][i3][j3] = atof(chunk);
+ chunk = strtok(NULL, " \r\n");
+ j3++;
+ if (j3 == CMAPDIM) {
+ j3 = 0;
+ i3++;
+ }
+ counter++;
+ }
+
+ // 2 adjacent prolines map
+
+ else if (counter >= 3*CMAPDIM*CMAPDIM &&
+ counter < 4*CMAPDIM*CMAPDIM) {
+ cmapgrid[3][i4][j4] = atof(chunk);
+ chunk = strtok(NULL, " \r\n");
+ j4++;
+ if (j4 == CMAPDIM) {
+ j4 = 0;
+ i4++;
+ }
+ counter++;
+ }
+
+ // glycine map
+
+ else if (counter >= 4*CMAPDIM*CMAPDIM &&
+ counter < 5*CMAPDIM*CMAPDIM) {
+ cmapgrid[4][i5][j5] = atof(chunk);
+ chunk = strtok(NULL, " \r\n");
+ j5++;
+ if (j5 == CMAPDIM) {
+ j5 = 0;
+ i5++;
+ }
+ counter++;
+ }
+
+ // glycine-proline map
+
+ else if (counter >= 5*CMAPDIM*CMAPDIM &&
+ counter < 6*CMAPDIM*CMAPDIM) {
+ cmapgrid[5][i6][j6] = atof(chunk);
+ chunk = strtok(NULL, " \r\n");
+ j6++;
+ if (j6 == CMAPDIM) {
+ j6 = 0;
+ i6++;
+ }
+ counter++;
+ }
+
+ else break;
+ }
+ }
+ }
+
+ fclose(fp);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void FixCMAP::spline(double *y, double *ddy, int n)
+{
+ // create the 2nd dervatives of a taublated function y_i(x_i)
+ // at the tabulated points
+
+ int i, j;
+ double p, *u;
+
+ memory->create(u,n-1,"cmap:u");
+
+ ddy[0] = u[0] = 0.0;
+
+ for (i = 1; i <= n-2; i++) {
+ p = 1.0/(ddy[i-1]+4.0);
+ ddy[i] = -p;
+ u[i] = ((((6.0*y[i+1])-(12.0*y[i])+(6.0*y[i-1]))/(CMAPDX*CMAPDX))-u[i-1])*p;
+ }
+
+ ddy[n-1] = 0.0;
+
+ for (j = n-2; j >= 0; j--)
+ ddy[j] = ddy[j]*ddy[j+1] + u[j];
+
+ memory->destroy(u);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void FixCMAP::spl_interpolate(double x, double *y, double *ddy, double &yo,
+ double &dyo)
+{
+ // perform a 1D cubic spline interpolation
+
+ int ix;
+ double a,b,a1,b1,a2,b2;
+
+ ix = int((x-CMAPXMIN)/CMAPDX-(1./2.));
+
+ a = (CMAPXMIN+(ix*1.0)*CMAPDX-x)/CMAPDX;
+ b = (x-CMAPXMIN-(((ix-1)*1.0)*CMAPDX))/CMAPDX;
+
+ a1 = a*a*a-a;
+ b1 = b*b*b-b;
+
+ a2 = 3.0*a*a-1.0;
+ b2 = 3.0*b*b-1.0;
+ yo = a*y[ix]+b*y[ix+1]+(a1*ddy[ix]+b1*ddy[ix+1])*(CMAPDX*CMAPDX)/6.0;
+ dyo = (y[ix+1]-y[ix])/CMAPDX-a2/6.0*CMAPDX*ddy[ix]+b2/6.0*CMAPDX*ddy[ix+1];
+}
+
+/* ---------------------------------------------------------------------- */
+
+void FixCMAP::set_map_derivatives(double **map, double **d1yo, double **d2yo,
+ double **d12yo)
+{
+ // precompute the gradient and cross-derivatives of the map grid points.
+ // use the bicubic spline to calculate the derivatives
+
+ int i, j, k, ii, jj, xm, p;
+ double phi, psi, y, d1y, d2y, d12y, tyyk,tdyk;
+ double *tmp_y, *tmp_dy, *tmp_ddy, **tmap, **tddmap;
+ int ix;
+ double a,b,a1,b1,a2,b2;
+
+ xm = CMAPDIM/2;
+ p = CMAPDIM;
+
+ y = 0.;
+ d1y = 0.;
+ d2y = 0.;
+ d12y = 0.;
+
+ memory->create(tmp_y,CMAPDIM*2,"cmap:tmp_y");
+ memory->create(tmp_dy,CMAPDIM*2,"cmap:tmp_dy");
+ memory->create(tmp_ddy,CMAPDIM*2,"cmap:tmp_ddy");
+ memory->create(tmap,CMAPDIM*2,CMAPDIM*2,"cmap:tmap");
+ memory->create(tddmap,CMAPDIM*2,CMAPDIM*2,"cmap:tddmap");
+
+ // periodically expand the original map
+ // use the expanded map for bicubic spline interpolation,
+ // which is used to obtain the derivatives
+ // actual interpolation is done with bicubic interpolation
+
+ for (i = 0; i < CMAPDIM*2; i++) {
+ ii = ((i+CMAPDIM-xm)%CMAPDIM);
+ for (j = 0; j < CMAPDIM*2; j++) {
+ jj = ((j+CMAPDIM-xm)%CMAPDIM);
+ tmap[i][j] = map[ii][jj];
+ }
+ }
+
+ for (i = 0; i < CMAPDIM*2; i++)
+ spline(tmap[i], tddmap[i], CMAPDIM*2);
+
+ for (i = xm; i < CMAPDIM+xm; i++) {
+ phi = (i-xm)*CMAPDX-180.0;
+ for (j = xm; j < CMAPDIM+xm; j++) {
+ psi = (j-xm)*CMAPDX-180.0;
+ ix = int((psi-CMAPXMIN)/CMAPDX);
+ a = (CMAPXMIN+((ix+1)*1.0)*CMAPDX-psi)/CMAPDX;
+ b = (psi-CMAPXMIN-((ix)*1.0)*CMAPDX)/CMAPDX;
+ a1 = a*a*a-a;
+ b1 = b*b*b-b;
+ a2 = 3.0*a*a-1.0;
+ b2 = 3.0*b*b-1.0;
+ for (k = 0; k < CMAPDIM*2; k++) {
+ tyyk = tmp_y[k];
+ tdyk = tmp_dy[k];
+ tyyk = a*tmap[k][ix]+b*tmap[k][ix+1]+
+ (a1*tddmap[k][ix]+b1*tddmap[k][ix+1])*(CMAPDX*CMAPDX)/6.0;
+ tdyk = (tmap[k][ix+1]-tmap[k][ix])/CMAPDX-
+ (a2/6.0*CMAPDX*tddmap[k][ix])+(b2/6.0*CMAPDX*tddmap[k][ix+1]);
+ tmp_y[k] = tyyk;
+ tmp_dy[k] = tdyk;
+ }
+
+ spline(tmp_y,tmp_ddy,CMAPDIM+xm+xm);
+ ix = int((phi-CMAPXMIN)/CMAPDX);
+ a = (CMAPXMIN+((ix+1)*1.0)*CMAPDX-phi)/CMAPDX;
+ b = (phi-CMAPXMIN-(ix*1.0)*CMAPDX)/CMAPDX;
+ a1 = a*a*a-a;
+ b1 = b*b*b-b;
+ a2 = 3.0*a*a-1.0;
+ b2 = 3.0*b*b-1.0;
+ y = a*tmp_y[ix]+b*tmp_y[ix+1]+
+ (a1*tmp_ddy[ix]+b1*tmp_ddy[ix+1])*(CMAPDX*CMAPDX)/6.0;
+ d1y = (tmp_y[ix+1]-tmp_y[ix])/CMAPDX-
+ a2/6.0*CMAPDX*tmp_ddy[ix]+b2/6.0*CMAPDX*tmp_ddy[ix+1];
+ spline(tmp_dy,tmp_ddy,CMAPDIM+xm+xm);
+ ix = int((phi-CMAPXMIN)/CMAPDX);
+ a = (CMAPXMIN+((ix+1)*1.0)*CMAPDX-phi)/CMAPDX;
+ b = (phi-CMAPXMIN-(ix*1.0)*CMAPDX)/CMAPDX;
+ a1 = a*a*a-a;
+ b1 = b*b*b-b;
+ a2 = 3.0*a*a-1.0;
+ b2 = 3.0*b*b-1.0;
+ d2y = a*tmp_dy[ix]+b*tmp_dy[ix+1]+
+ (a1*tmp_ddy[ix]+b1*tmp_ddy[ix+1])*(CMAPDX*CMAPDX)/6.0;
+ d12y = (tmp_dy[ix+1]-tmp_dy[ix])/CMAPDX-
+ a2/6.0*CMAPDX*tmp_ddy[ix]+b2/6.0*CMAPDX*tmp_ddy[ix+1];
+ d1yo[i%p][j%p] = d1y;
+ d2yo[i%p][j%p] = d2y;
+ d12yo[i%p][j%p] = d12y;
+ }
+ }
+
+ memory->destroy(tmp_y);
+ memory->destroy(tmp_dy);
+ memory->destroy(tmp_ddy);
+ memory->destroy(tmap);
+ memory->destroy(tddmap);
+}
+
+/* ---------------------------------------------------------------------- */
+
+double FixCMAP::dihedral_angle_atan2(double fx, double fy, double fz,
+ double ax, double ay, double az,
+ double bx, double by, double bz,
+ double absg)
+{
+ // calculate the dihedral angle
+
+ double angle, arg1, arg2;
+
+ arg1 = absg*(fx*bx+fy*by+fz*bz);
+ arg2 = ax*bx+ay*by+az*bz;
+
+ if (arg1 == 0 && arg2 == 0)
+ error->all(FLERR,"CMAP: atan2 function cannot take 2 zero arguments");
+ else {
+ angle = atan2(arg1,arg2);
+ angle = angle*180.0/MY_PI;
+ }
+
+ return angle;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void FixCMAP::bc_coeff(double *gs, double *d1gs, double *d2gs, double *d12gs)
+{
+ // calculate the bicubic interpolation coefficients c_ij
+
+ static int wt[16][16] =
+ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ -3, 0, 0, 3, 0, 0, 0, 0,-2, 0, 0,-1, 0, 0, 0, 0,
+ 2, 0, 0,-2, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0,-3, 0, 0, 3, 0, 0, 0, 0,-2, 0, 0,-1,
+ 0, 0, 0, 0, 2, 0, 0,-2, 0, 0, 0, 0, 1, 0, 0, 1,
+ -3, 3, 0, 0,-2,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,-3, 3, 0, 0,-2,-1, 0, 0,
+ 9,-9, 9,-9, 6, 3,-3,-6, 6,-6,-3, 3, 4, 2, 1, 2,
+ -6, 6,-6, 6,-4,-2, 2, 4,-3, 3, 3,-3,-2,-1,-1,-2,
+ 2,-2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 1, 1, 0, 0,
+ -6, 6,-6, 6,-3,-3, 3, 3,-4, 4, 2,-2,-2,-2,-1,-1,
+ 4,-4, 4,-4, 2, 2,-2,-2, 2,-2,-2, 2, 1, 1, 1, 1
+ };
+
+ int i, j, k, l, in;
+ double xx, x[16];
+
+ for (i = 0; i < 4; i++) {
+ x[i] = gs[i];
+ x[i+4] = d1gs[i]*CMAPDX;
+ x[i+8] = d2gs[i]*CMAPDX;
+ x[i+12] = d12gs[i]*CMAPDX*CMAPDX;
+ }
+
+ in = 0;
+ for (i = 0; i < 4; i++) {
+ for (j = 0; j < 4; j++) {
+ xx = 0.0;
+ for (k = 0; k < 16; k++) xx += wt[in][k]*x[k];
+ in++;
+ cij[i][j] = xx;
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void FixCMAP::bc_interpol(double x1, double x2, int low1, int low2, double *gs,
+ double *d1gs, double *d2gs, double *d12gs)
+{
+ // for a given point of interest and its corresponding grid square values,
+ // gradients and cross-derivatives
+ // calculate the interpolated value of the point of interest (POI)
+
+ int i, p=12;
+ double t, u, fac, gs1l, gs2l, gs1u, gs2u;
+
+ // set the interpolation coefficients
+
+ bc_coeff(gs,d1gs,d2gs,d12gs);
+
+ gs1l = g_axis[low1];
+ gs2l = g_axis[low2];
+
+ t = (x1-gs1l)/CMAPDX;
+ u = (x2-gs2l)/CMAPDX;
+
+ E = dEdPhi = dEdPsi = 0.0;
+
+ for (i = 3; i >= 0; i--) {
+ E = t*E + ((cij[i][3]*u+cij[i][2])*u+cij[i][1])*u+cij[i][0];
+ dEdPhi = u*dEdPhi + (3.0*cij[3][i]*t+2.0*cij[2][i])*t+cij[1][i];
+ dEdPsi = t*dEdPsi + (3.0*cij[i][3]*u+2.0*cij[i][2])*u+cij[i][1];
+ }
+
+ dEdPhi *= (180.0/MY_PI/CMAPDX);
+ dEdPsi *= (180.0/MY_PI/CMAPDX);
+}
+
+// ----------------------------------------------------------------------
+// ----------------------------------------------------------------------
+// methods to read and write data file
+// ----------------------------------------------------------------------
+// ----------------------------------------------------------------------
+
+void FixCMAP::read_data_header(char *line)
+{
+ if (strstr(line,"crossterms")) {
+ sscanf(line,BIGINT_FORMAT,&ncmap);
+ } else error->all(FLERR,"Invalid read data header line for fix cmap");
+
+ // didn't set in constructor b/c this fix could be defined
+ // before newton command
+
+ newton_bond = force->newton_bond;
+}
+
+/* ----------------------------------------------------------------------
+ unpack N lines in buf from section of data file labeled by keyword
+ id_offset is applied to atomID fields if multiple data files are read
+ store CMAP interactions as if newton_bond = OFF, even if actually ON
+------------------------------------------------------------------------- */
+
+void FixCMAP::read_data_section(char *keyword, int n, char *buf,
+ tagint id_offset)
+{
+ int m,tmp,itype;
+ tagint atom1,atom2,atom3,atom4,atom5;
+ char *next;
+
+ next = strchr(buf,'\n');
+ *next = '\0';
+ int nwords = atom->count_words(buf);
+ *next = '\n';
+
+ if (nwords != 7) {
+ char str[128];
+ sprintf(str,"Incorrect %s format in data file",keyword);
+ error->all(FLERR,str);
+ }
+
+ // loop over lines of CMAP crossterms
+ // tokenize the line into values
+ // add crossterm to one of my atoms, depending on newton_bond
+
+ for (int i = 0; i < n; i++) {
+ next = strchr(buf,'\n');
+ *next = '\0';
+ sscanf(buf,"%d %d " TAGINT_FORMAT " " TAGINT_FORMAT " " TAGINT_FORMAT
+ " " TAGINT_FORMAT " " TAGINT_FORMAT,
+ &tmp,&itype,&atom1,&atom2,&atom3,&atom4,&atom5);
+
+ atom1 += id_offset;
+ atom2 += id_offset;
+ atom3 += id_offset;
+ atom4 += id_offset;
+ atom5 += id_offset;
+
+ if ((m = atom->map(atom1)) >= 0) {
+ if (num_crossterm[m] == CMAPMAX)
+ error->one(FLERR,"Too many CMAP crossterms for one atom");
+ crossterm_type[m][num_crossterm[m]] = itype;
+ crossterm_atom1[m][num_crossterm[m]] = atom1;
+ crossterm_atom2[m][num_crossterm[m]] = atom2;
+ crossterm_atom3[m][num_crossterm[m]] = atom3;
+ crossterm_atom4[m][num_crossterm[m]] = atom4;
+ crossterm_atom5[m][num_crossterm[m]] = atom5;
+ num_crossterm[m]++;
+ }
+
+ if ((m = atom->map(atom2)) >= 0) {
+ if (num_crossterm[m] == CMAPMAX)
+ error->one(FLERR,"Too many CMAP crossterms for one atom");
+ crossterm_type[m][num_crossterm[m]] = itype;
+ crossterm_atom1[m][num_crossterm[m]] = atom1;
+ crossterm_atom2[m][num_crossterm[m]] = atom2;
+ crossterm_atom3[m][num_crossterm[m]] = atom3;
+ crossterm_atom4[m][num_crossterm[m]] = atom4;
+ crossterm_atom5[m][num_crossterm[m]] = atom5;
+ num_crossterm[m]++;
+ }
+
+ if ((m = atom->map(atom3)) >= 0) {
+ if (num_crossterm[m] == CMAPMAX)
+ error->one(FLERR,"Too many CMAP crossterms for one atom");
+ crossterm_type[m][num_crossterm[m]] = itype;
+ crossterm_atom1[m][num_crossterm[m]] = atom1;
+ crossterm_atom2[m][num_crossterm[m]] = atom2;
+ crossterm_atom3[m][num_crossterm[m]] = atom3;
+ crossterm_atom4[m][num_crossterm[m]] = atom4;
+ crossterm_atom5[m][num_crossterm[m]] = atom5;
+ num_crossterm[m]++;
+ }
+
+ if ((m = atom->map(atom4)) >= 0) {
+ if (num_crossterm[m] == CMAPMAX)
+ error->one(FLERR,"Too many CMAP crossterms for one atom");
+ crossterm_type[m][num_crossterm[m]] = itype;
+ crossterm_atom1[m][num_crossterm[m]] = atom1;
+ crossterm_atom2[m][num_crossterm[m]] = atom2;
+ crossterm_atom3[m][num_crossterm[m]] = atom3;
+ crossterm_atom4[m][num_crossterm[m]] = atom4;
+ crossterm_atom5[m][num_crossterm[m]] = atom5;
+ num_crossterm[m]++;
+ }
+
+ if ((m = atom->map(atom5)) >= 0) {
+ if (num_crossterm[m] == CMAPMAX)
+ error->one(FLERR,"Too many CMAP crossterms for one atom");
+ crossterm_type[m][num_crossterm[m]] = itype;
+ crossterm_atom1[m][num_crossterm[m]] = atom1;
+ crossterm_atom2[m][num_crossterm[m]] = atom2;
+ crossterm_atom3[m][num_crossterm[m]] = atom3;
+ crossterm_atom4[m][num_crossterm[m]] = atom4;
+ crossterm_atom5[m][num_crossterm[m]] = atom5;
+ num_crossterm[m]++;
+ }
+
+ buf = next + 1;
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+bigint FixCMAP::read_data_skip_lines(char *keyword)
+{
+ return ncmap;
+}
+
+/* ----------------------------------------------------------------------
+ write Mth header line to file
+ only called by proc 0
+------------------------------------------------------------------------- */
+
+void FixCMAP::write_data_header(FILE *fp, int mth)
+{
+ fprintf(fp,BIGINT_FORMAT " cmap crossterms\n",ncmap);
+}
+
+/* ----------------------------------------------------------------------
+ return size I own for Mth data section
+ # of data sections = 1 for this fix
+ nx = # of crossterms owned by my local atoms
+ if newton_bond off, atom only owns crossterm if it is atom3
+ ny = columns = type + 5 atom IDs
+------------------------------------------------------------------------- */
+
+void FixCMAP::write_data_section_size(int mth, int &nx, int &ny)
+{
+ int i,m;
+
+ tagint *tag = atom->tag;
+ int nlocal = atom->nlocal;
+
+ nx = 0;
+ for (i = 0; i < nlocal; i++)
+ for (m = 0; m < num_crossterm[i]; m++)
+ if (crossterm_atom3[i][m] == tag[i]) nx++;
+
+ ny = 6;
+}
+
+/* ----------------------------------------------------------------------
+ pack values for Mth data section into 2d buf
+ buf allocated by caller as owned crossterms by 6
+------------------------------------------------------------------------- */
+
+void FixCMAP::write_data_section_pack(int mth, double **buf)
+{
+ int i,m;
+
+ // 1st column = CMAP type
+ // 2nd-6th columns = 5 atom IDs
+
+ tagint *tag = atom->tag;
+ int nlocal = atom->nlocal;
+
+ int n = 0;
+ for (i = 0; i < nlocal; i++) {
+ for (m = 0; m < num_crossterm[i]; m++) {
+ if (crossterm_atom3[i][m] != tag[i]) continue;
+ buf[n][0] = ubuf(crossterm_type[i][m]).d;
+ buf[n][1] = ubuf(crossterm_atom1[i][m]).d;
+ buf[n][2] = ubuf(crossterm_atom2[i][m]).d;
+ buf[n][3] = ubuf(crossterm_atom3[i][m]).d;
+ buf[n][4] = ubuf(crossterm_atom4[i][m]).d;
+ buf[n][5] = ubuf(crossterm_atom5[i][m]).d;
+ n++;
+ }
+ }
+}
+
+/* ----------------------------------------------------------------------
+ write section keyword for Mth data section to file
+ use Molecules or Charges if that is only field, else use fix ID
+ only called by proc 0
+------------------------------------------------------------------------- */
+
+void FixCMAP::write_data_section_keyword(int mth, FILE *fp)
+{
+ fprintf(fp,"\nCMAP\n\n");
+}
+
+/* ----------------------------------------------------------------------
+ write N lines from buf to file
+ convert buf fields to int or double depending on styles
+ index can be used to prepend global numbering
+ only called by proc 0
+------------------------------------------------------------------------- */
+
+void FixCMAP::write_data_section(int mth, FILE *fp,
+ int n, double **buf, int index)
+{
+ for (int i = 0; i < n; i++)
+ fprintf(fp,"%d %d " TAGINT_FORMAT " " TAGINT_FORMAT
+ " " TAGINT_FORMAT " " TAGINT_FORMAT " " TAGINT_FORMAT "\n",
+ index+i,(int) ubuf(buf[i][0]).i,(tagint) ubuf(buf[i][1]).i,
+ (tagint) ubuf(buf[i][2]).i,(tagint) ubuf(buf[i][3]).i,
+ (tagint) ubuf(buf[i][4]).i,(tagint) ubuf(buf[i][5]).i);
+}
+
+// ----------------------------------------------------------------------
+// ----------------------------------------------------------------------
+// methods for restart and communication
+// ----------------------------------------------------------------------
+// ----------------------------------------------------------------------
+
+/* ----------------------------------------------------------------------
+ pack entire state of Fix into one write
+------------------------------------------------------------------------- */
+
+void FixCMAP::write_restart(FILE *fp)
+{
+ if (comm->me == 0) {
+ int size = sizeof(bigint);
+ fwrite(&size,sizeof(int),1,fp);
+ fwrite(&ncmap,sizeof(bigint),1,fp);
+ }
+}
+
+/* ----------------------------------------------------------------------
+ use state info from restart file to restart the Fix
+------------------------------------------------------------------------- */
+
+void FixCMAP::restart(char *buf)
+{
+ ncmap = *((bigint *) buf);
+}
+
+/* ----------------------------------------------------------------------
+ pack values in local atom-based arrays for restart file
+------------------------------------------------------------------------- */
+
+int FixCMAP::pack_restart(int i, double *buf)
+{
+ int n = 1;
+ for (int m = 0; m < num_crossterm[i]; m++) {
+ buf[n++] = ubuf(MAX(crossterm_type[i][m],-crossterm_type[i][m])).d;
+ buf[n++] = ubuf(crossterm_atom1[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom2[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom3[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom4[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom5[i][m]).d;
+ }
+ buf[0] = n;
+
+ return n;
+}
+
+/* ----------------------------------------------------------------------
+ unpack values from atom->extra array to restart the fix
+------------------------------------------------------------------------- */
+
+void FixCMAP::unpack_restart(int nlocal, int nth)
+{
+ double **extra = atom->extra;
+
+ // skip to Nth set of extra values
+
+ int n = 0;
+ for (int i = 0; i < nth; i++) n += static_cast (extra[nlocal][n]);
+
+ int count = static_cast (extra[nlocal][n++]);
+ num_crossterm[nlocal] = (count-1)/6;
+
+ for (int m = 0; m < num_crossterm[nlocal]; m++) {
+ crossterm_type[nlocal][m] = (int) ubuf(extra[nlocal][n++]).i;
+ crossterm_atom1[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i;
+ crossterm_atom2[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i;
+ crossterm_atom3[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i;
+ crossterm_atom4[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i;
+ crossterm_atom5[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i;
+ }
+}
+
+/* ----------------------------------------------------------------------
+ maxsize of any atom's restart data
+------------------------------------------------------------------------- */
+
+int FixCMAP::maxsize_restart()
+{
+ return 1 + CMAPMAX*6;
+}
+
+/* ----------------------------------------------------------------------
+ size of atom nlocal's restart data
+------------------------------------------------------------------------- */
+
+int FixCMAP::size_restart(int nlocal)
+{
+ return 1 + num_crossterm[nlocal]*6;
+}
+
+/* ----------------------------------------------------------------------
+ allocate atom-based array
+------------------------------------------------------------------------- */
+
+void FixCMAP::grow_arrays(int nmax)
+{
+ num_crossterm = memory->grow(num_crossterm,nmax,"cmap:num_crossterm");
+ crossterm_type = memory->grow(crossterm_type,nmax,CMAPMAX,
+ "cmap:crossterm_type");
+ crossterm_atom1 = memory->grow(crossterm_atom1,nmax,CMAPMAX,
+ "cmap:crossterm_atom1");
+ crossterm_atom2 = memory->grow(crossterm_atom2,nmax,CMAPMAX,
+ "cmap:crossterm_atom2");
+ crossterm_atom3 = memory->grow(crossterm_atom3,nmax,CMAPMAX,
+ "cmap:crossterm_atom3");
+ crossterm_atom4 = memory->grow(crossterm_atom4,nmax,CMAPMAX,
+ "cmap:crossterm_atom4");
+ crossterm_atom5 = memory->grow(crossterm_atom5,nmax,CMAPMAX,
+ "cmap:crossterm_atom5");
+
+ // must initialize num_crossterm to 0 for added atoms
+ // may never be set for some atoms when data file is read
+
+ for (int i = nmax_previous; i < nmax; i++) num_crossterm[i] = 0;
+ nmax_previous = nmax;
+}
+
+/* ----------------------------------------------------------------------
+ copy values within local atom-based array
+------------------------------------------------------------------------- */
+
+void FixCMAP::copy_arrays(int i, int j, int delflag)
+{
+ num_crossterm[j] = num_crossterm[i];
+
+ for (int k = 0; k < num_crossterm[j]; k++){
+ crossterm_type[j][k] = crossterm_type[i][k];
+ crossterm_atom1[j][k] = crossterm_atom1[i][k];
+ crossterm_atom2[j][k] = crossterm_atom2[i][k];
+ crossterm_atom3[j][k] = crossterm_atom3[i][k];
+ crossterm_atom4[j][k] = crossterm_atom4[i][k];
+ crossterm_atom5[j][k] = crossterm_atom5[i][k];
+ }
+}
+
+/* ----------------------------------------------------------------------
+ initialize one atom's array values, called when atom is created
+------------------------------------------------------------------------- */
+
+void FixCMAP::set_arrays(int i)
+{
+ num_crossterm[i] = 0;
+}
+
+/* ----------------------------------------------------------------------
+ pack values in local atom-based array for exchange with another proc
+------------------------------------------------------------------------- */
+
+int FixCMAP::pack_exchange(int i, double *buf)
+{
+ int n = 0;
+ buf[n++] = ubuf(num_crossterm[i]).d;
+ for (int m = 0; m < num_crossterm[i]; m++) {
+ buf[n++] = ubuf(crossterm_type[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom1[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom2[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom3[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom4[i][m]).d;
+ buf[n++] = ubuf(crossterm_atom5[i][m]).d;
+ }
+ return n;
+}
+
+/* ----------------------------------------------------------------------
+ unpack values in local atom-based array from exchange with another proc
+------------------------------------------------------------------------- */
+
+int FixCMAP::unpack_exchange(int nlocal, double *buf)
+{
+ int n = 0;
+ num_crossterm[nlocal] = (int) ubuf(buf[n++]).i;
+ for (int m = 0; m < num_crossterm[nlocal]; m++) {
+ crossterm_type[nlocal][m] = (int) ubuf(buf[n++]).i;
+ crossterm_atom1[nlocal][m] = (tagint) ubuf(buf[n++]).i;
+ crossterm_atom2[nlocal][m] = (tagint) ubuf(buf[n++]).i;
+ crossterm_atom3[nlocal][m] = (tagint) ubuf(buf[n++]).i;
+ crossterm_atom4[nlocal][m] = (tagint) ubuf(buf[n++]).i;
+ crossterm_atom5[nlocal][m] = (tagint) ubuf(buf[n++]).i;
+ }
+ return n;
+}
+
+/* ----------------------------------------------------------------------
+ memory usage of local atom-based arrays
+------------------------------------------------------------------------- */
+
+double FixCMAP::memory_usage()
+{
+ int nmax = atom->nmax;
+ double bytes = nmax * sizeof(int); // num_crossterm
+ bytes += nmax*CMAPMAX * sizeof(int); // crossterm_type
+ bytes += 5*nmax*CMAPMAX * sizeof(int); // crossterm_atom 12345
+ bytes += maxcrossterm*6 * sizeof(int); // crosstermlist
+ return bytes;
+}
diff --git a/src/MOLECULE/fix_cmap.h b/src/MOLECULE/fix_cmap.h
new file mode 100644
index 0000000000..213d881e23
--- /dev/null
+++ b/src/MOLECULE/fix_cmap.h
@@ -0,0 +1,129 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+#ifdef FIX_CLASS
+
+FixStyle(cmap,FixCMAP)
+
+#else
+
+#ifndef LMP_FIX_CMAP_H
+#define LMP_FIX_CMAP_H
+
+#include "fix.h"
+namespace LAMMPS_NS {
+
+class FixCMAP : public Fix {
+ public:
+ FixCMAP(class LAMMPS *, int, char **);
+ ~FixCMAP();
+ int setmask();
+ void init();
+ void setup(int);
+ void setup_pre_neighbor();
+ void min_setup(int);
+ void pre_neighbor();
+ void pre_reverse(int, int);
+ void post_force(int);
+ void post_force_respa(int, int, int);
+ void min_post_force(int);
+ double compute_scalar();
+
+ void read_data_header(char *);
+ void read_data_section(char *, int, char *, tagint);
+ bigint read_data_skip_lines(char *);
+ void write_data_header(FILE *, int);
+ void write_data_section_size(int, int &, int &);
+ void write_data_section_pack(int, double **);
+ void write_data_section_keyword(int, FILE *);
+ void write_data_section(int, FILE *, int, double **, int);
+
+ void write_restart(FILE *);
+ void restart(char *);
+ int pack_restart(int, double *);
+ void unpack_restart(int, int);
+ int size_restart(int);
+ int maxsize_restart();
+
+ void grow_arrays(int);
+ void copy_arrays(int, int, int);
+ void set_arrays(int);
+ int pack_exchange(int, double *);
+ int unpack_exchange(int, double *);
+
+ double memory_usage();
+
+ private:
+ int nprocs,me;
+ int newton_bond,eflag_caller;
+ int ctype,nlevels_respa;
+ int ncrosstermtypes,crossterm_per_atom,maxcrossterm;
+ int ncrosstermlist;
+ bigint ncmap;
+
+ int **crosstermlist;
+
+ int nmax_previous;
+ int *num_crossterm;
+ int **crossterm_type;
+ tagint **crossterm_atom1,**crossterm_atom2,**crossterm_atom3;
+ tagint **crossterm_atom4,**crossterm_atom5;
+
+ double E,dEdPhi,dEdPsi;
+ double ecmap;
+ double fcmap[4],cij[4][4];
+ double *g_axis;
+
+ // CMAP grid points obtained from external file
+
+ double ***cmapgrid;
+
+ // partial derivatives and cross-derivatives of the grid data
+
+ double ***d1cmapgrid,***d2cmapgrid,***d12cmapgrid;
+
+ // read map grid data
+
+ void read_grid_map(char *);
+
+ // read in CMAP cross terms from LAMMPS data file
+
+ void read_cmap_data(int, char *);
+
+ // pre-compute the partial and cross-derivatives of map grid points
+
+ void set_map_derivatives(double **, double **, double **, double **);
+
+ // cubic spline interpolation functions for derivatives of map grid points
+
+ void spline(double *, double *, int);
+ void spl_interpolate(double, double *, double *, double &, double &);
+
+ // calculate dihedral angles
+
+ double dihedral_angle_atan2(double, double, double, double, double, double,
+ double, double, double, double);
+
+ // calculate bicubic interpolation coefficient matrix c_ij
+
+ void bc_coeff(double *, double *, double *, double *);
+
+ // perform bicubic interpolation at point of interest
+
+ void bc_interpol(double, double, int, int, double *, double *, double *,
+ double *);
+};
+}
+
+#endif
+#endif
diff --git a/src/OPT/pair_eam_opt.cpp b/src/OPT/pair_eam_opt.cpp
index 66b2e7283c..e970f90ae8 100644
--- a/src/OPT/pair_eam_opt.cpp
+++ b/src/OPT/pair_eam_opt.cpp
@@ -247,6 +247,7 @@ void PairEAMOpt::eval()
if (EFLAG) {
double phi = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
if (rho[i] > rhomax) phi += fp[i] * (rho[i]-rhomax);
+ phi *= scale[type[i]][type[i]];
if (eflag_global) eng_vdwl += phi;
if (eflag_atom) eatom[i] += phi;
}
@@ -273,6 +274,7 @@ void PairEAMOpt::eval()
double tmpfz = 0.0;
fast_gamma_t* _noalias tabssi = &tabss[itype1*ntypes*nr];
+ double* _noalias scale_i = scale[itype1+1]+1;
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
@@ -316,12 +318,13 @@ void PairEAMOpt::eval()
// psip needs both fp[i] and fp[j] terms since r_ij appears in two
// terms of embed eng: Fi(sum rho_ij) and Fj(sum rho_ji)
// hence embed' = Fi(sum rho_ij) rhojp + Fj(sum rho_ji) rhoip
+ // scale factor can be applied by thermodynamic integration
double recip = 1.0/r;
double phi = z2*recip;
double phip = z2p*recip - phi*recip;
double psip = fp[i]*rhojp + fp[j]*rhoip + phip;
- double fpair = -psip*recip;
+ double fpair = -scale_i[jtype]*psip*recip;
tmpfx += delx*fpair;
tmpfy += dely*fpair;
@@ -332,7 +335,7 @@ void PairEAMOpt::eval()
ff[j].z -= delz*fpair;
}
- if (EFLAG) evdwl = phi;
+ if (EFLAG) evdwl = scale_i[jtype]*phi;
if (EVFLAG) ev_tally(i,j,nlocal,NEWTON_PAIR,
evdwl,0.0,fpair,delx,dely,delz);
diff --git a/src/REPLICA/fix_neb.cpp b/src/REPLICA/fix_neb.cpp
index c66fa2dd04..5b426465e3 100644
--- a/src/REPLICA/fix_neb.cpp
+++ b/src/REPLICA/fix_neb.cpp
@@ -18,10 +18,12 @@
#include "fix_neb.h"
#include "universe.h"
#include "update.h"
+#include "atom.h"
#include "domain.h"
+#include "comm.h"
#include "modify.h"
#include "compute.h"
-#include "atom.h"
+#include "group.h"
#include "memory.h"
#include "error.h"
#include "force.h"
@@ -29,6 +31,8 @@
using namespace LAMMPS_NS;
using namespace FixConst;
+enum{SINGLE_PROC_DIRECT,SINGLE_PROC_MAP,MULTI_PROC};
+
/* ---------------------------------------------------------------------- */
FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) :
@@ -41,8 +45,13 @@ FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) :
// nreplica = number of partitions
// ireplica = which world I am in universe
+ // nprocs_universe = # of procs in all replicase
// procprev,procnext = root proc in adjacent replicas
+ me = comm->me;
+ nprocs = comm->nprocs;
+
+ nprocs_universe = universe->nprocs;
nreplica = universe->nworlds;
ireplica = universe->iworld;
@@ -67,7 +76,17 @@ FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) :
modify->add_compute(3,newarg);
delete [] newarg;
+ // initialize local storage
+
+ maxlocal = 0;
+ ntotal = 0;
+
xprev = xnext = tangent = NULL;
+ xsend = xrecv = NULL;
+ tagsend = tagrecv = NULL;
+ xsendall = xrecvall = NULL;
+ tagsendall = tagrecvall = NULL;
+ counts = displacements = NULL;
}
/* ---------------------------------------------------------------------- */
@@ -80,6 +99,19 @@ FixNEB::~FixNEB()
memory->destroy(xprev);
memory->destroy(xnext);
memory->destroy(tangent);
+
+ memory->destroy(xsend);
+ memory->destroy(xrecv);
+ memory->destroy(tagsend);
+ memory->destroy(tagrecv);
+
+ memory->destroy(xsendall);
+ memory->destroy(xrecvall);
+ memory->destroy(tagsendall);
+ memory->destroy(tagrecvall);
+
+ memory->destroy(counts);
+ memory->destroy(displacements);
}
/* ---------------------------------------------------------------------- */
@@ -104,15 +136,35 @@ void FixNEB::init()
rclimber = -1;
- // setup xprev and xnext arrays
+ // nebatoms = # of atoms in fix group = atoms with inter-replica forces
- memory->destroy(xprev);
- memory->destroy(xnext);
- memory->destroy(tangent);
- nebatoms = atom->nlocal;
- memory->create(xprev,nebatoms,3,"neb:xprev");
- memory->create(xnext,nebatoms,3,"neb:xnext");
- memory->create(tangent,nebatoms,3,"neb:tangent");
+ bigint count = group->count(igroup);
+ if (count > MAXSMALLINT) error->all(FLERR,"Too many active NEB atoms");
+ nebatoms = count;
+
+ // comm style for inter-replica exchange of coords
+
+ if (nreplica == nprocs_universe &&
+ nebatoms == atom->natoms && atom->sortfreq == 0)
+ cmode = SINGLE_PROC_DIRECT;
+ else if (nreplica == nprocs_universe) cmode = SINGLE_PROC_MAP;
+ else cmode = MULTI_PROC;
+
+ // ntotal = total # of atoms in system, NEB atoms or not
+
+ if (atom->natoms > MAXSMALLINT) error->all(FLERR,"Too many atoms for NEB");
+ ntotal = atom->natoms;
+
+ if (atom->nlocal > maxlocal) reallocate();
+
+ if (MULTI_PROC && counts == NULL) {
+ memory->create(xsendall,ntotal,3,"neb:xsendall");
+ memory->create(xrecvall,ntotal,3,"neb:xrecvall");
+ memory->create(tagsendall,ntotal,"neb:tagsendall");
+ memory->create(tagrecvall,ntotal,"neb:tagrecvall");
+ memory->create(counts,nprocs,"neb:counts");
+ memory->create(displacements,nprocs,"neb:displacements");
+ }
}
/* ---------------------------------------------------------------------- */
@@ -133,40 +185,31 @@ void FixNEB::min_post_force(int vflag)
double vprev,vnext,vmax,vmin;
double delx,dely,delz;
double delta1[3],delta2[3];
- MPI_Request request;
// veng = PE of this replica
// vprev,vnext = PEs of adjacent replicas
+ // only proc 0 in each replica communicates
vprev = vnext = veng = pe->compute_scalar();
- if (ireplica < nreplica-1) MPI_Send(&veng,1,MPI_DOUBLE,procnext,0,uworld);
- if (ireplica > 0) MPI_Recv(&vprev,1,MPI_DOUBLE,procprev,0,uworld,MPI_STATUS_IGNORE);
+ if (ireplica < nreplica-1 && me == 0)
+ MPI_Send(&veng,1,MPI_DOUBLE,procnext,0,uworld);
+ if (ireplica > 0 && me == 0)
+ MPI_Recv(&vprev,1,MPI_DOUBLE,procprev,0,uworld,MPI_STATUS_IGNORE);
- if (ireplica > 0) MPI_Send(&veng,1,MPI_DOUBLE,procprev,0,uworld);
- if (ireplica < nreplica-1)
+ if (ireplica > 0 && me == 0)
+ MPI_Send(&veng,1,MPI_DOUBLE,procprev,0,uworld);
+ if (ireplica < nreplica-1 && me == 0)
MPI_Recv(&vnext,1,MPI_DOUBLE,procnext,0,uworld,MPI_STATUS_IGNORE);
- // xprev,xnext = atom coords of adjacent replicas
- // assume order of atoms in all replicas is the same
- // check that number of atoms hasn't changed
+ if (cmode == MULTI_PROC) {
+ MPI_Bcast(&vprev,1,MPI_DOUBLE,0,world);
+ MPI_Bcast(&vnext,1,MPI_DOUBLE,0,world);
+ }
- double **x = atom->x;
- int *mask = atom->mask;
- int nlocal = atom->nlocal;
- if (nlocal != nebatoms) error->one(FLERR,"Atom count changed in fix neb");
+ // communicate atoms to/from adjacent replicas to fill xprev,xnext
- if (ireplica > 0)
- MPI_Irecv(xprev[0],3*nlocal,MPI_DOUBLE,procprev,0,uworld,&request);
- if (ireplica < nreplica-1)
- MPI_Send(x[0],3*nlocal,MPI_DOUBLE,procnext,0,uworld);
- if (ireplica > 0) MPI_Wait(&request,MPI_STATUS_IGNORE);
-
- if (ireplica < nreplica-1)
- MPI_Irecv(xnext[0],3*nlocal,MPI_DOUBLE,procnext,0,uworld,&request);
- if (ireplica > 0)
- MPI_Send(x[0],3*nlocal,MPI_DOUBLE,procprev,0,uworld);
- if (ireplica < nreplica-1) MPI_Wait(&request,MPI_STATUS_IGNORE);
+ inter_replica_comm();
// trigger potential energy computation on next timestep
@@ -175,11 +218,13 @@ void FixNEB::min_post_force(int vflag)
// compute norm of GradV for log output
double **f = atom->f;
+ int nlocal = atom->nlocal;
+
double fsq = 0.0;
for (int i = 0; i < nlocal; i++)
fsq += f[i][0]*f[i][0] + f[i][1]*f[i][1] + f[i][2]*f[i][2];
- MPI_Allreduce(&fsq,&gradvnorm,1,MPI_DOUBLE,MPI_MAX,world);
+ MPI_Allreduce(&fsq,&gradvnorm,1,MPI_DOUBLE,MPI_SUM,world);
gradvnorm = sqrt(gradvnorm);
// first or last replica has no change to forces, just return
@@ -195,6 +240,9 @@ void FixNEB::min_post_force(int vflag)
// depending on relative PEs of 3 replicas
// see Henkelman & Jonsson 2000 paper, eqs 8-11
+ double **x = atom->x;
+ int *mask = atom->mask;
+
if (vnext > veng && veng > vprev) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
@@ -260,9 +308,15 @@ void FixNEB::min_post_force(int vflag)
nlen += delx*delx + dely*dely + delz*delz;
}
- tlen = sqrt(tlen);
- plen = sqrt(plen);
- nlen = sqrt(nlen);
+ double lenall;
+ MPI_Allreduce(&tlen,&lenall,1,MPI_DOUBLE,MPI_SUM,world);
+ tlen = sqrt(lenall);
+
+ MPI_Allreduce(&plen,&lenall,1,MPI_DOUBLE,MPI_SUM,world);
+ plen = sqrt(lenall);
+
+ MPI_Allreduce(&nlen,&lenall,1,MPI_DOUBLE,MPI_SUM,world);
+ nlen = sqrt(lenall);
// normalize tangent vector
@@ -295,9 +349,12 @@ void FixNEB::min_post_force(int vflag)
f[i][2]*tangent[i][2];
}
+ double dotall;
+ MPI_Allreduce(&dot,&dotall,1,MPI_DOUBLE,MPI_SUM,world);
+
double prefactor;
- if (ireplica == rclimber) prefactor = -2.0*dot;
- else prefactor = -dot + kspring*(nlen-plen);
+ if (ireplica == rclimber) prefactor = -2.0*dotall;
+ else prefactor = -dotall + kspring*(nlen-plen);
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
@@ -306,3 +363,222 @@ void FixNEB::min_post_force(int vflag)
f[i][2] += prefactor*tangent[i][2];
}
}
+
+/* ----------------------------------------------------------------------
+ send/recv NEB atoms to/from adjacent replicas
+ received atoms matching my local atoms are stored in xprev,xnext
+ replicas 0 and N-1 send but do not receive any atoms
+------------------------------------------------------------------------- */
+
+void FixNEB::inter_replica_comm()
+{
+ int i,m;
+ MPI_Request request;
+ MPI_Request requests[2];
+ MPI_Status statuses[2];
+
+ // reallocate memory if necessary
+
+ if (atom->nlocal > maxlocal) reallocate();
+
+ double **x = atom->x;
+ tagint *tag = atom->tag;
+ int *mask = atom->mask;
+ int nlocal = atom->nlocal;
+
+ // -----------------------------------------------------
+ // 3 cases: two for single proc per replica
+ // one for multiple procs per replica
+ // -----------------------------------------------------
+
+ // single proc per replica
+ // all atoms are NEB atoms and no atom sorting is enabled
+ // direct comm of x -> xprev and x -> xnext
+
+ if (cmode == SINGLE_PROC_DIRECT) {
+ if (ireplica > 0)
+ MPI_Irecv(xprev[0],3*nlocal,MPI_DOUBLE,procprev,0,uworld,&request);
+ if (ireplica < nreplica-1)
+ MPI_Send(x[0],3*nlocal,MPI_DOUBLE,procnext,0,uworld);
+ if (ireplica > 0) MPI_Wait(&request,MPI_STATUS_IGNORE);
+
+ if (ireplica < nreplica-1)
+ MPI_Irecv(xnext[0],3*nlocal,MPI_DOUBLE,procnext,0,uworld,&request);
+ if (ireplica > 0)
+ MPI_Send(x[0],3*nlocal,MPI_DOUBLE,procprev,0,uworld);
+ if (ireplica < nreplica-1) MPI_Wait(&request,MPI_STATUS_IGNORE);
+
+ return;
+ }
+
+ // single proc per replica
+ // but only some atoms are NEB atoms or atom sorting is enabled
+ // send atom IDs and coords of only NEB atoms to prev/next proc
+ // recv proc uses atom->map() to match received coords to owned atoms
+
+ if (cmode == SINGLE_PROC_MAP) {
+ m = 0;
+ for (i = 0; i < nlocal; i++)
+ if (mask[i] & groupbit) {
+ tagsend[m] = tag[i];
+ xsend[m][0] = x[i][0];
+ xsend[m][1] = x[i][1];
+ xsend[m][2] = x[i][2];
+ m++;
+ }
+
+ if (ireplica > 0) {
+ MPI_Irecv(xrecv[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld,&requests[0]);
+ MPI_Irecv(tagrecv,nebatoms,MPI_LMP_TAGINT,procprev,0,uworld,&requests[1]);
+ }
+ if (ireplica < nreplica-1) {
+ MPI_Send(xsend[0],3*nebatoms,MPI_DOUBLE,procnext,0,uworld);
+ MPI_Send(tagsend,nebatoms,MPI_LMP_TAGINT,procnext,0,uworld);
+ }
+
+ if (ireplica > 0) {
+ MPI_Waitall(2,requests,statuses);
+ for (i = 0; i < nebatoms; i++) {
+ m = atom->map(tagrecv[i]);
+ xprev[m][0] = xrecv[i][0];
+ xprev[m][1] = xrecv[i][1];
+ xprev[m][2] = xrecv[i][2];
+ }
+ }
+
+ if (ireplica < nreplica-1) {
+ MPI_Irecv(xrecv[0],3*nebatoms,MPI_DOUBLE,procnext,0,uworld,&requests[0]);
+ MPI_Irecv(tagrecv,nebatoms,MPI_LMP_TAGINT,procnext,0,uworld,&requests[1]);
+ }
+ if (ireplica > 0) {
+ MPI_Send(xsend[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld);
+ MPI_Send(tagsend,nebatoms,MPI_LMP_TAGINT,procprev,0,uworld);
+ }
+
+ if (ireplica < nreplica-1) {
+ MPI_Waitall(2,requests,statuses);
+ for (i = 0; i < nebatoms; i++) {
+ m = atom->map(tagrecv[i]);
+ xnext[m][0] = xrecv[i][0];
+ xnext[m][1] = xrecv[i][1];
+ xnext[m][2] = xrecv[i][2];
+ }
+ }
+
+ return;
+ }
+
+ // multiple procs per replica
+ // MPI_Gather all coords and atom IDs to root proc of each replica
+ // send to root of adjacent replicas
+ // bcast within each replica
+ // each proc extracts info for atoms it owns via atom->map()
+
+ m = 0;
+ for (i = 0; i < nlocal; i++)
+ if (mask[i] & groupbit) {
+ tagsend[m] = tag[i];
+ xsend[m][0] = x[i][0];
+ xsend[m][1] = x[i][1];
+ xsend[m][2] = x[i][2];
+ m++;
+ }
+
+ MPI_Gather(&m,1,MPI_INT,counts,1,MPI_INT,0,world);
+ displacements[0] = 0;
+ for (i = 0; i < nprocs-1; i++)
+ displacements[i+1] = displacements[i] + counts[i];
+ MPI_Gatherv(tagsend,m,MPI_LMP_TAGINT,
+ tagsendall,counts,displacements,MPI_LMP_TAGINT,0,world);
+ for (i = 0; i < nprocs; i++) counts[i] *= 3;
+ for (i = 0; i < nprocs-1; i++)
+ displacements[i+1] = displacements[i] + counts[i];
+ if (xsend)
+ MPI_Gatherv(xsend[0],3*m,MPI_DOUBLE,
+ xsendall[0],counts,displacements,MPI_DOUBLE,0,world);
+ else
+ MPI_Gatherv(NULL,3*m,MPI_DOUBLE,
+ xsendall[0],counts,displacements,MPI_DOUBLE,0,world);
+
+ if (ireplica > 0 && me == 0) {
+ MPI_Irecv(xrecvall[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld,&requests[0]);
+ MPI_Irecv(tagrecvall,nebatoms,MPI_LMP_TAGINT,procprev,0,uworld,
+ &requests[1]);
+ }
+ if (ireplica < nreplica-1 && me == 0) {
+ MPI_Send(xsendall[0],3*nebatoms,MPI_DOUBLE,procnext,0,uworld);
+ MPI_Send(tagsendall,nebatoms,MPI_LMP_TAGINT,procnext,0,uworld);
+ }
+
+ if (ireplica > 0) {
+ if (me == 0) MPI_Waitall(2,requests,statuses);
+
+ MPI_Bcast(tagrecvall,nebatoms,MPI_INT,0,world);
+ MPI_Bcast(xrecvall[0],3*nebatoms,MPI_DOUBLE,0,world);
+
+ for (i = 0; i < nebatoms; i++) {
+ m = atom->map(tagrecvall[i]);
+ if (m < 0 || m >= nlocal) continue;
+ xprev[m][0] = xrecvall[i][0];
+ xprev[m][1] = xrecvall[i][1];
+ xprev[m][2] = xrecvall[i][2];
+ }
+ }
+
+ if (ireplica < nreplica-1 && me == 0) {
+ MPI_Irecv(xrecvall[0],3*nebatoms,MPI_DOUBLE,procnext,0,uworld,&requests[0]);
+ MPI_Irecv(tagrecvall,nebatoms,MPI_LMP_TAGINT,procnext,0,uworld,
+ &requests[1]);
+ }
+ if (ireplica > 0 && me == 0) {
+ MPI_Send(xsendall[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld);
+ MPI_Send(tagsendall,nebatoms,MPI_LMP_TAGINT,procprev,0,uworld);
+ }
+
+ if (ireplica < nreplica-1) {
+ if (me == 0) MPI_Waitall(2,requests,statuses);
+
+ MPI_Bcast(tagrecvall,nebatoms,MPI_INT,0,world);
+ MPI_Bcast(xrecvall[0],3*nebatoms,MPI_DOUBLE,0,world);
+
+ for (i = 0; i < nebatoms; i++) {
+ m = atom->map(tagrecvall[i]);
+ if (m < 0 || m >= nlocal) continue;
+ xnext[m][0] = xrecvall[i][0];
+ xnext[m][1] = xrecvall[i][1];
+ xnext[m][2] = xrecvall[i][2];
+ }
+ }
+}
+
+/* ----------------------------------------------------------------------
+ reallocate xprev,xnext,tangent arrays if necessary
+ reallocate communication arrays if necessary
+------------------------------------------------------------------------- */
+
+void FixNEB::reallocate()
+{
+ memory->destroy(xprev);
+ memory->destroy(xnext);
+ memory->destroy(tangent);
+
+ if (cmode != SINGLE_PROC_DIRECT) {
+ memory->destroy(xsend);
+ memory->destroy(xrecv);
+ memory->destroy(tagsend);
+ memory->destroy(tagrecv);
+ }
+
+ maxlocal = atom->nmax;
+
+ memory->create(xprev,maxlocal,3,"neb:xprev");
+ memory->create(xnext,maxlocal,3,"neb:xnext");
+ memory->create(tangent,maxlocal,3,"neb:tangent");
+
+ if (cmode != SINGLE_PROC_DIRECT) {
+ memory->create(xsend,maxlocal,3,"neb:xsend");
+ memory->create(xrecv,maxlocal,3,"neb:xrecv");
+ memory->create(tagsend,maxlocal,"neb:tagsend");
+ memory->create(tagrecv,maxlocal,"neb:tagrecv");
+ }
+}
diff --git a/src/REPLICA/fix_neb.h b/src/REPLICA/fix_neb.h
index 39bb5dc81f..4026f84f15 100644
--- a/src/REPLICA/fix_neb.h
+++ b/src/REPLICA/fix_neb.h
@@ -38,17 +38,34 @@ class FixNEB : public Fix {
void min_post_force(int);
private:
+ int me,nprocs,nprocs_universe;
double kspring;
int ireplica,nreplica;
int procnext,procprev;
+ int cmode;
MPI_Comm uworld;
char *id_pe;
class Compute *pe;
- int nebatoms;
- double **xprev,**xnext;
- double **tangent;
+ int nebatoms; // # of active NEB atoms
+ int ntotal; // total # of atoms, NEB or not
+ int maxlocal; // size of xprev,xnext,tangent arrays
+
+ double **xprev,**xnext; // coords of my owned atoms in neighbor replicas
+ double **tangent; // work vector for inter-replica forces
+
+ double **xsend,**xrecv; // coords to send/recv to/from other replica
+ tagint *tagsend,*tagrecv; // ditto for atom IDs
+
+ // info gathered from all procs in my replica
+ double **xsendall,**xrecvall; // coords to send/recv to/from other replica
+ tagint *tagsendall,*tagrecvall; // ditto for atom IDs
+
+ int *counts,*displacements; // used for MPI_Gather
+
+ void inter_replica_comm();
+ void reallocate();
};
}
diff --git a/src/REPLICA/neb.cpp b/src/REPLICA/neb.cpp
index 1521598812..03bd0b61e1 100644
--- a/src/REPLICA/neb.cpp
+++ b/src/REPLICA/neb.cpp
@@ -137,10 +137,6 @@ void NEB::command(int narg, char **arg)
// error checks
if (nreplica == 1) error->all(FLERR,"Cannot use NEB with a single replica");
- if (nreplica != universe->nprocs)
- error->all(FLERR,"Can only use NEB with 1-processor replicas");
- if (atom->sortfreq > 0)
- error->all(FLERR,"Cannot use NEB with atom_modify sort enabled");
if (atom->map_style == 0)
error->all(FLERR,"Cannot use NEB unless atom map exists");
@@ -228,7 +224,7 @@ void NEB::run()
// perform regular NEB for n1steps or until replicas converge
// retrieve PE values from fix NEB and print every nevery iterations
- // break induced if converged
+ // break out of while loop early if converged
// damped dynamic min styles insure all replicas converge together
timer->init();
@@ -531,7 +527,7 @@ void NEB::open(char *file)
/* ----------------------------------------------------------------------
query fix NEB for info on each replica
- proc 0 prints current NEB status
+ universe proc 0 prints current NEB status
------------------------------------------------------------------------- */
void NEB::print_status()
@@ -552,6 +548,7 @@ void NEB::print_status()
if (output->thermo->normflag) one[0] /= atom->natoms;
if (me == 0)
MPI_Allgather(one,nall,MPI_DOUBLE,&all[0][0],nall,MPI_DOUBLE,roots);
+ MPI_Bcast(&all[0][0],nall*nreplica,MPI_DOUBLE,0,world);
rdist[0] = 0.0;
for (int i = 1; i < nreplica; i++)
diff --git a/src/REPLICA/prd.cpp b/src/REPLICA/prd.cpp
index fcdfa67ccc..9f13951f54 100644
--- a/src/REPLICA/prd.cpp
+++ b/src/REPLICA/prd.cpp
@@ -765,10 +765,10 @@ void PRD::log_event()
/* ----------------------------------------------------------------------
communicate atom coords and image flags in ireplica to all other replicas
- one proc per replica:
+ if one proc per replica:
direct overwrite via bcast
- else atoms could be stored in different order or on different procs:
- collect to root proc of event replica
+ else atoms could be stored in different order on a proc or on different procs:
+ gather to root proc of event replica
bcast to roots of other replicas
bcast within each replica
each proc extracts info for atoms it owns using atom IDs
diff --git a/src/USER-MISC/pair_cdeam.h b/src/USER-MISC/pair_cdeam.h
index 1ae81af93e..934b7601a4 100644
--- a/src/USER-MISC/pair_cdeam.h
+++ b/src/USER-MISC/pair_cdeam.h
@@ -49,6 +49,8 @@ public:
/// Reports the memory usage of this pair style to LAMMPS.
double memory_usage();
+ void *extract(const char *, int &) { return NULL; }
+
/// Parses the coefficients of the h polynomial from the end of the EAM file.
void read_h_coeff(char* filename);
diff --git a/src/USER-OMP/pair_eam_omp.cpp b/src/USER-OMP/pair_eam_omp.cpp
index 6b4ac4363e..9c28477af0 100644
--- a/src/USER-OMP/pair_eam_omp.cpp
+++ b/src/USER-OMP/pair_eam_omp.cpp
@@ -203,7 +203,7 @@ void PairEAMOMP::eval(int iifrom, int iito, ThrData * const thr)
if (EFLAG) {
phi = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
if (rho[i] > rhomax) phi += fp[i] * (rho[i]-rhomax);
- e_tally_thr(this, i, i, nlocal, NEWTON_PAIR, phi, 0.0, thr);
+ e_tally_thr(this, i, i, nlocal, NEWTON_PAIR, scale[type[i]][type[i]]*phi, 0.0, thr);
}
}
@@ -230,6 +230,7 @@ void PairEAMOMP::eval(int iifrom, int iito, ThrData * const thr)
ztmp = x[i].z;
itype = type[i];
fxtmp = fytmp = fztmp = 0.0;
+ const double * _noalias const scale_i = scale[itype];
jlist = firstneigh[i];
jnum = numneigh[i];
@@ -274,7 +275,7 @@ void PairEAMOMP::eval(int iifrom, int iito, ThrData * const thr)
phi = z2*recip;
phip = z2p*recip - phi*recip;
psip = fp[i]*rhojp + fp[j]*rhoip + phip;
- fpair = -psip*recip;
+ fpair = -scale_i[jtype]*psip*recip;
fxtmp += delx*fpair;
fytmp += dely*fpair;
@@ -285,7 +286,7 @@ void PairEAMOMP::eval(int iifrom, int iito, ThrData * const thr)
f[j].z -= delz*fpair;
}
- if (EFLAG) evdwl = phi;
+ if (EFLAG) evdwl = scale_i[jtype]*phi;
if (EVFLAG) ev_tally_thr(this, i,j,nlocal,NEWTON_PAIR,
evdwl,0.0,fpair,delx,dely,delz,thr);
}
diff --git a/src/balance.cpp b/src/balance.cpp
index 9733ff4f42..70693f7488 100644
--- a/src/balance.cpp
+++ b/src/balance.cpp
@@ -11,6 +11,11 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
+/* ----------------------------------------------------------------------
+ Contributing authors, for weighted balancing:
+ Axel Kohlmeyer (Temple U), Iain Bethune (EPCC)
+------------------------------------------------------------------------- */
+
//#define BALANCE_DEBUG 1
#include
@@ -24,20 +29,19 @@
#include "irregular.h"
#include "domain.h"
#include "force.h"
-#include "modify.h"
#include "update.h"
-#include "memory.h"
-#include "error.h"
#include "group.h"
-#include "timer.h"
-
+#include "modify.h"
+#include "fix_store.h"
+#include "imbalance.h"
#include "imbalance_group.h"
#include "imbalance_time.h"
#include "imbalance_neigh.h"
#include "imbalance_store.h"
#include "imbalance_var.h"
-
-#include "fix_store.h"
+#include "timer.h"
+#include "memory.h"
+#include "error.h"
using namespace LAMMPS_NS;
@@ -53,28 +57,26 @@ Balance::Balance(LAMMPS *lmp) : Pointers(lmp)
MPI_Comm_rank(world,&me);
MPI_Comm_size(world,&nprocs);
- memory->create(proccount,nprocs,"balance:proccount");
- memory->create(allproccount,nprocs,"balance:allproccount");
-
user_xsplit = user_ysplit = user_zsplit = NULL;
shift_allocate = 0;
+ proccost = allproccost = NULL;
rcb = NULL;
+ nimbalance = 0;
+ imbalances = NULL;
+ fixstore = NULL;
+
fp = NULL;
firststep = 1;
-
- nimbalance = 0;
- imbalance = NULL;
- imb_fix = NULL;
}
/* ---------------------------------------------------------------------- */
Balance::~Balance()
{
- memory->destroy(proccount);
- memory->destroy(allproccount);
+ memory->destroy(proccost);
+ memory->destroy(allproccost);
delete [] user_xsplit;
delete [] user_ysplit;
@@ -82,10 +84,10 @@ Balance::~Balance()
if (shift_allocate) {
delete [] bdim;
- delete [] count;
+ delete [] onecost;
+ delete [] allcost;
delete [] sum;
delete [] target;
- delete [] onecount;
delete [] lo;
delete [] hi;
delete [] losum;
@@ -93,11 +95,14 @@ Balance::~Balance()
}
delete rcb;
- for (int i = 0; i < nimbalance; ++i)
- delete imbalance[i];
- delete [] imbalance;
- if (imb_fix) modify->delete_fix(imb_fix->id);
- imb_fix = NULL;
+
+ for (int i = 0; i < nimbalance; i++) delete imbalances[i];
+ delete [] imbalances;
+
+ // check nfix in case all fixes have already been deleted
+
+ if (fixstore && modify->nfix) modify->delete_fix(fixstore->id);
+ fixstore = NULL;
if (fp) fclose(fp);
}
@@ -108,14 +113,12 @@ Balance::~Balance()
void Balance::command(int narg, char **arg)
{
- double start_time = MPI_Wtime();
-
if (domain->box_exist == 0)
error->all(FLERR,"Balance command before simulation box is defined");
if (me == 0 && screen) fprintf(screen,"Balancing ...\n");
- // parse arguments
+ // parse required arguments
if (narg < 2) error->all(FLERR,"Illegal balance command");
@@ -209,58 +212,7 @@ void Balance::command(int narg, char **arg)
} else break;
}
- // process optional keywords
-
- // get max number of imbalance weight flags/classes
- nimbalance = 0;
- for (int i=iarg; i < narg; ++i)
- if (strcmp(arg[i],"weight") == 0) ++nimbalance;
- if (nimbalance) imbalance = new Imbalance*[nimbalance];
-
- nimbalance = outflag = 0;
- imb_fix = NULL;
- while (iarg < narg) {
- if (strcmp(arg[iarg],"out") == 0) {
- if (iarg+2 > narg) error->all(FLERR,"Illegal balance command");
- if (outflag) error->all(FLERR,"Illegal balance command");
- outflag = 1;
- if (me == 0) {
- fp = fopen(arg[iarg+1],"w");
- if (fp == NULL) error->one(FLERR,"Cannot open balance output file");
- }
- iarg += 2;
- } else if (strcmp(arg[iarg],"weight") == 0) {
- Imbalance *imb;
- int nopt = 0;
- if (strcmp(arg[iarg+1],"group") == 0) {
- imb = new ImbalanceGroup(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else if (strcmp(arg[iarg+1],"time") == 0) {
- imb = new ImbalanceTime(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else if (strcmp(arg[iarg+1],"neigh") == 0) {
- imb = new ImbalanceNeigh(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else if (strcmp(arg[iarg+1],"var") == 0) {
- imb = new ImbalanceVar(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else if (strcmp(arg[iarg+1],"store") == 0) {
- imb = new ImbalanceStore(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else {
- error->all(FLERR,"Unknown balance weight method");
- }
- ++nimbalance;
- iarg += 2+nopt;
- } else error->all(FLERR,"Illegal balance command");
- }
-
- // error check
+ // error checks
if (style == XYZ) {
if (zflag != NONE && dimension == 2)
@@ -296,10 +248,18 @@ void Balance::command(int narg, char **arg)
if (style == BISECTION && comm->style == 0)
error->all(FLERR,"Balance rcb cannot be used with comm_style brick");
- // insure atoms are in current box & update box via shrink-wrap
+ // process remaining optional args
+
+ options(iarg,narg,arg);
+ if (wtflag) weight_storage(NULL);
+
+ // insure particles are in current box & update box via shrink-wrap
// init entire system since comm->setup is done
// comm::init needs neighbor::init needs pair::init needs kspace::init, etc
+ MPI_Barrier(world);
+ double start_time = MPI_Wtime();
+
lmp->init();
if (domain->triclinic) domain->x2lamda(atom->nlocal);
@@ -309,33 +269,12 @@ void Balance::command(int narg, char **arg)
comm->exchange();
if (domain->triclinic) domain->lamda2x(atom->nlocal);
- // compute and apply imbalance weights for local atoms
- if (nimbalance > 0) {
-
- // add fix property/atom, for storing weights with atoms, if needed.
- char *fixargs[6];
-
- fixargs[0] = (char *) "IMBALANCE_WEIGHTS";
- fixargs[1] = (char *) "all";
- fixargs[2] = (char *) "STORE";
- fixargs[3] = (char *) "peratom";
- fixargs[4] = (char *) "1";
- fixargs[5] = (char *) "1";
-
- modify->add_fix(6,fixargs);
- imb_fix = (FixStore *) modify->fix[modify->nfix-1];
-
- double * const weight = imb_fix->vstore;
- for (int i = 0; i < atom->nlocal; ++i)
- weight[i] = 1.0;
- for (int n = 0; n < nimbalance; ++n)
- imbalance[n]->compute(weight);
- }
-
// imbinit = initial imbalance
- int maxinit;
- double imbinit = imbalance_nlocal(maxinit);
+ double maxinit;
+ init_imbalance();
+ set_weights();
+ double imbinit = imbalance_factor(maxinit);
// no load-balance if imbalance doesn't exceed threshhold
// unless switching from tiled to non tiled layout, then force rebalance
@@ -346,11 +285,11 @@ void Balance::command(int narg, char **arg)
// debug output of initial state
#ifdef BALANCE_DEBUG
- if (outflag) dumpout(update->ntimestep,fp);
+ if (outflag) dumpout(update->ntimestep);
#endif
int niter = 0;
-
+
// perform load-balance
// style XYZ = explicit setting of cutting planes of logical 3d grid
@@ -410,20 +349,22 @@ void Balance::command(int narg, char **arg)
if (domain->triclinic) domain->set_lamda_box();
domain->set_local_box();
- // move atoms to new processors via irregular()
+ // move particles to new processors via irregular()
if (domain->triclinic) domain->x2lamda(atom->nlocal);
Irregular *irregular = new Irregular(lmp);
+ if (wtflag) fixstore->disable = 0;
if (style == BISECTION) irregular->migrate_atoms(1,1,rcb->sendproc);
else irregular->migrate_atoms(1);
+ if (wtflag) fixstore->disable = 1;
delete irregular;
if (domain->triclinic) domain->lamda2x(atom->nlocal);
// output of final result
- if (outflag) dumpout(update->ntimestep,fp);
+ if (outflag) dumpout(update->ntimestep);
- // check if any atoms were lost
+ // check if any particles were lost
bigint natoms;
bigint nblocal = atom->nlocal;
@@ -435,18 +376,21 @@ void Balance::command(int narg, char **arg)
error->all(FLERR,str);
}
- // imbfinal = final imbalance based on final (weighted) nlocal
+ // imbfinal = final imbalance
- int maxfinal;
- double imbfinal = imbalance_nlocal(maxfinal);
+ double maxfinal;
+ double imbfinal = imbalance_factor(maxfinal);
+
+ // stats output
+
+ double stop_time = MPI_Wtime();
if (me == 0) {
- double stop_time = MPI_Wtime();
if (screen) {
fprintf(screen," rebalancing time: %g seconds\n",stop_time-start_time);
fprintf(screen," iteration count = %d\n",niter);
- for (int i = 0; i < nimbalance; ++i) imbalance[i]->info(screen);
- fprintf(screen," initial/final max load/proc = %d %d\n",
+ for (int i = 0; i < nimbalance; ++i) imbalances[i]->info(screen);
+ fprintf(screen," initial/final max load/proc = %g %g\n",
maxinit,maxfinal);
fprintf(screen," initial/final imbalance factor = %g %g\n",
imbinit,imbfinal);
@@ -454,8 +398,8 @@ void Balance::command(int narg, char **arg)
if (logfile) {
fprintf(logfile," rebalancing time: %g seconds\n",stop_time-start_time);
fprintf(logfile," iteration count = %d\n",niter);
- for (int i = 0; i < nimbalance; ++i) imbalance[i]->info(logfile);
- fprintf(logfile," initial/final max load/proc = %d %d\n",
+ for (int i = 0; i < nimbalance; ++i) imbalances[i]->info(logfile);
+ fprintf(logfile," initial/final max load/proc = %g %g\n",
maxinit,maxfinal);
fprintf(logfile," initial/final imbalance factor = %g %g\n",
imbinit,imbfinal);
@@ -497,99 +441,162 @@ void Balance::command(int narg, char **arg)
}
/* ----------------------------------------------------------------------
- calculate imbalance based on (weighted) local atom counts
- return max = max atom per proc
- return imbalance factor = max atom per proc / ave atom per proc
+ process optional command args for Balance and FixBalance
------------------------------------------------------------------------- */
-double Balance::imbalance_nlocal(int &maxcost)
+void Balance::options(int iarg, int narg, char **arg)
{
- // Compute the cost function of local atoms
- const int nlocal = atom->nlocal;
- int intcost, sumcost;
- intcost = sumcost = maxcost = 0;
+ // count max number of weight settings
- if (imb_fix) {
- const double * const weight = imb_fix->vstore;
- double cost = 0.0;
- for (int i=0; i < nlocal; ++i)
- cost += weight[i];
+ nimbalance = 0;
+ for (int i = iarg; i < narg; i++)
+ if (strcmp(arg[i],"weight") == 0) nimbalance++;
+ if (nimbalance) imbalances = new Imbalance*[nimbalance];
+ nimbalance = 0;
- intcost = (int)cost;
- } else {
- intcost = nlocal;
+ wtflag = 0;
+ varflag = 0;
+ outflag = 0;
+ int outarg = 0;
+ fp = NULL;
+
+ while (iarg < narg) {
+ if (strcmp(arg[iarg],"weight") == 0) {
+ wtflag = 1;
+ Imbalance *imb;
+ int nopt = 0;
+ if (strcmp(arg[iarg+1],"group") == 0) {
+ imb = new ImbalanceGroup(lmp);
+ nopt = imb->options(narg-iarg,arg+iarg+2);
+ imbalances[nimbalance++] = imb;
+ } else if (strcmp(arg[iarg+1],"time") == 0) {
+ imb = new ImbalanceTime(lmp);
+ nopt = imb->options(narg-iarg,arg+iarg+2);
+ imbalances[nimbalance++] = imb;
+ } else if (strcmp(arg[iarg+1],"neigh") == 0) {
+ imb = new ImbalanceNeigh(lmp);
+ nopt = imb->options(narg-iarg,arg+iarg+2);
+ imbalances[nimbalance++] = imb;
+ } else if (strcmp(arg[iarg+1],"var") == 0) {
+ varflag = 1;
+ imb = new ImbalanceVar(lmp);
+ nopt = imb->options(narg-iarg,arg+iarg+2);
+ imbalances[nimbalance++] = imb;
+ } else if (strcmp(arg[iarg+1],"store") == 0) {
+ imb = new ImbalanceStore(lmp);
+ nopt = imb->options(narg-iarg,arg+iarg+2);
+ imbalances[nimbalance++] = imb;
+ } else {
+ error->all(FLERR,"Unknown (fix) balance weight method");
+ }
+ iarg += 2+nopt;
+
+ } else if (strcmp(arg[iarg],"out") == 0) {
+ if (iarg+2 > narg) error->all(FLERR,"Illegal (fix) balance command");
+ outflag = 1;
+ outarg = iarg+1;
+ iarg += 2;
+ } else error->all(FLERR,"Illegal (fix) balance command");
}
- MPI_Allreduce(&intcost,&maxcost,1,MPI_INT,MPI_MAX,world);
- MPI_Allreduce(&intcost,&sumcost,1,MPI_INT,MPI_SUM,world);
+ // output file
- double imbalance = 1.0;
- if (maxcost > 0 && sumcost > 0)
- imbalance = maxcost / (static_cast(sumcost)/nprocs);
-
- return imbalance;
+ if (outflag && comm->me == 0) {
+ fp = fopen(arg[outarg],"w");
+ if (fp == NULL) error->one(FLERR,"Cannot open (fix) balance output file");
+ }
}
/* ----------------------------------------------------------------------
- calculate imbalance based on processor splits in 3 dims
- atoms must be in lamda coords (0-1) before called
- map atoms to 3d grid of procs
- return max = max atom per proc
- return imbalance factor = max atom per proc / ave atom per proc
+ allocate per-particle weight storage via FixStore
+ use prefix to distinguish Balance vs FixBalance storage
+ fix could already be allocated if fix balance is re-specified
------------------------------------------------------------------------- */
-double Balance::imbalance_splits(int &max, const double *weight)
+void Balance::weight_storage(char *prefix)
{
- double *xsplit = comm->xsplit;
- double *ysplit = comm->ysplit;
- double *zsplit = comm->zsplit;
+ char *fixargs[6];
- int nx = comm->procgrid[0];
- int ny = comm->procgrid[1];
- int nz = comm->procgrid[2];
+ if (prefix) {
+ int n = strlen(prefix) + 32;
+ fixargs[0] = new char[n];
+ strcpy(fixargs[0],prefix);
+ strcat(fixargs[0],"IMBALANCE_WEIGHTS");
+ } else fixargs[0] = (char *) "IMBALANCE_WEIGHTS";
- double *proccost = new double[nprocs];
- for (int i = 0; i < nprocs; i++) proccost[i] = 0.0;
+ fixargs[1] = (char *) "all";
+ fixargs[2] = (char *) "STORE";
+ fixargs[3] = (char *) "peratom";
+ fixargs[4] = (char *) "0";
+ fixargs[5] = (char *) "1";
+
+ int ifix = modify->find_fix(fixargs[0]);
+ if (ifix < 1) {
+ modify->add_fix(6,fixargs);
+ fixstore = (FixStore *) modify->fix[modify->nfix-1];
+ } else fixstore = (FixStore *) modify->fix[ifix];
+
+ fixstore->disable = 1;
+
+ if (prefix) delete [] fixargs[0];
+}
+
+/* ----------------------------------------------------------------------
+ invoke init() for each Imbalance class
+------------------------------------------------------------------------- */
+
+void Balance::init_imbalance()
+{
+ if (!wtflag) return;
+ for (int n = 0; n < nimbalance; n++) imbalances[n]->init();
+}
+
+/* ----------------------------------------------------------------------
+ set weight for each particle
+ via list of Nimbalance classes
+------------------------------------------------------------------------- */
+
+void Balance::set_weights()
+{
+ if (!wtflag) return;
+ weight = fixstore->vstore;
- double **x = atom->x;
int nlocal = atom->nlocal;
- int ix,iy,iz;
+ for (int i = 0; i < nlocal; i++) weight[i] = 1.0;
+ for (int n = 0; n < nimbalance; n++) imbalances[n]->compute(weight);
+}
- if (weight) {
- for (int i = 0; i < nlocal; i++) {
- ix = binary(x[i][0],nx,xsplit);
- iy = binary(x[i][1],ny,ysplit);
- iz = binary(x[i][2],nz,zsplit);
- proccost[iz*nx*ny + iy*nx + ix] += weight[i];
- }
- } else {
- for (int i = 0; i < nlocal; i++) {
- ix = binary(x[i][0],nx,xsplit);
- iy = binary(x[i][1],ny,ysplit);
- iz = binary(x[i][2],nz,zsplit);
- proccost[iz*nx*ny + iy*nx + ix] += 1.0;
- }
- }
+/* ----------------------------------------------------------------------
+ calculate imbalance factor based on particle count or particle weights
+ return max = max load per proc
+ return imbalance = max load per proc / ave load per proc
+------------------------------------------------------------------------- */
+
+double Balance::imbalance_factor(double &maxcost)
+{
+ double mycost,totalcost;
+
+ if (wtflag) {
+ weight = fixstore->vstore;
+ int nlocal = atom->nlocal;
+
+ mycost = 0.0;
+ for (int i = 0; i < nlocal; i++) mycost += weight[i];
+
+ } else mycost = atom->nlocal;
+
+ MPI_Allreduce(&mycost,&maxcost,1,MPI_DOUBLE,MPI_MAX,world);
+ MPI_Allreduce(&mycost,&totalcost,1,MPI_DOUBLE,MPI_SUM,world);
- for (int i = 0; i < nprocs; i++) proccount[i] = (int)(proccost[i]);
- MPI_Allreduce(proccount,allproccount,nprocs,MPI_INT,MPI_SUM,world);
- bigint sum = 0;
- max = 0;
- for (int i = 0; i < nprocs; i++){
- max = MAX(max,allproccount[i]);
- sum += allproccount[i];
- }
double imbalance = 1.0;
- if (max && sum > 0)
- imbalance = max / (static_cast(sum) / nprocs);
-
- delete [] proccost;
+ if (maxcost > 0.0) imbalance = maxcost / (totalcost/nprocs);
return imbalance;
}
/* ----------------------------------------------------------------------
perform balancing via RCB class
sortflag = flag for sorting order of received messages by proc ID
+ return list of procs to send my atoms to
------------------------------------------------------------------------- */
int *Balance::bisection(int sortflag)
@@ -631,14 +638,14 @@ int *Balance::bisection(int sortflag)
double *shrinklo = &shrinkall[0];
double *shrinkhi = &shrinkall[3];
- // Use pre-computed weights for each atom, if available
-
- double * const weight = (imb_fix) ? imb_fix->vstore : NULL;
-
// invoke RCB
// then invert() to create list of proc assignements for my atoms
- rcb->compute(dim,atom->nlocal,atom->x,weight,shrinklo,shrinkhi);
+ if (wtflag) {
+ weight = fixstore->vstore;
+ rcb->compute(dim,atom->nlocal,atom->x,weight,shrinklo,shrinkhi);
+ } else rcb->compute(dim,atom->nlocal,atom->x,NULL,shrinklo,shrinkhi);
+
rcb->invert(sortflag);
// reset RCB lo/hi bounding box to full simulation box as needed
@@ -655,9 +662,9 @@ int *Balance::bisection(int sortflag)
// store RCB cut, dim, lo/hi box in CommTiled
// cut and lo/hi need to be in fractional form so can
- // OK if changes by epsilon from what RCB used since particles
+ // OK if changes by epsilon from what RCB used since atoms
// will subsequently migrate to new owning procs by exchange() anyway
- // ditto for particles exactly on lo/hi RCB box boundaries due to ties
+ // ditto for atoms exactly on lo/hi RCB box boundaries due to ties
comm->rcbnew = 1;
@@ -695,6 +702,9 @@ void Balance::shift_setup_static(char *str)
{
shift_allocate = 1;
+ memory->create(proccost,nprocs,"balance:proccost");
+ memory->create(allproccost,nprocs,"balance:allproccost");
+
ndim = strlen(str);
bdim = new int[ndim];
@@ -707,14 +717,14 @@ void Balance::shift_setup_static(char *str)
int max = MAX(comm->procgrid[0],comm->procgrid[1]);
max = MAX(max,comm->procgrid[2]);
- count = new bigint[max];
- onecount = new bigint[max];
- sum = new bigint[max+1];
- target = new bigint[max+1];
+ onecost = new double[max];
+ allcost = new double[max];
+ sum = new double[max+1];
+ target = new double[max+1];
lo = new double[max+1];
hi = new double[max+1];
- losum = new bigint[max+1];
- hisum = new bigint[max+1];
+ losum = new double[max+1];
+ hisum = new double[max+1];
// if current layout is TILED, set initial uniform splits in Comm
// this gives starting point to subsequent shift balancing
@@ -757,6 +767,7 @@ void Balance::shift_setup(char *str, int nitermax_in, double thresh_in)
int Balance::shift()
{
int i,j,k,m,np,max;
+ double mycost,totalcost;
double *split;
// no balancing if no atoms
@@ -786,29 +797,23 @@ int Balance::shift()
else if (bdim[idim] == Z) split = comm->zsplit;
else continue;
- // intial count and sum
-
- const double * const weight = (imb_fix) ? imb_fix->vstore : NULL;
- int intcost, totalcost;
+ // initial count and sum
np = procgrid[bdim[idim]];
- tally(bdim[idim],np,split,weight);
-
- if (weight) {
- double cost = 0.0;
- for (int i=0; i < atom->nlocal; ++i)
- cost += weight[i];
- intcost = (int) cost;
- } else {
- intcost = atom->nlocal;
- }
-
- MPI_Allreduce(&intcost,&totalcost,1,MPI_INT,MPI_SUM,world);
+ tally(bdim[idim],np,split);
// target[i] = desired sum at split I
- for (i = 0; i < np; i++)
- target[i] = static_cast (1.0*totalcost/np * i + 0.5);
+ if (wtflag) {
+ weight = fixstore->vstore;
+ int nlocal = atom->nlocal;
+ mycost = 0.0;
+ for (i = 0; i < nlocal; i++) mycost += weight[i];
+ } else mycost = atom->nlocal;
+
+ MPI_Allreduce(&mycost,&totalcost,1,MPI_DOUBLE,MPI_SUM,world);
+
+ for (i = 0; i < np; i++) target[i] = totalcost/np * i;
target[np] = totalcost;
// lo[i] = closest split <= split[i] with a sum <= target
@@ -816,7 +821,7 @@ int Balance::shift()
lo[0] = hi[0] = 0.0;
lo[np] = hi[np] = 1.0;
- losum[0] = hisum[0] = 0;
+ losum[0] = hisum[0] = 0.0;
losum[np] = hisum[np] = totalcost;
for (i = 1; i < np; i++) {
@@ -844,12 +849,12 @@ int Balance::shift()
int change = 1;
for (m = 0; m < nitermax; m++) {
change = adjust(np,split);
- tally(bdim[idim],np,split,weight);
+ tally(bdim[idim],np,split);
niter++;
#ifdef BALANCE_DEBUG
if (me == 0) debug_shift_output(idim,m+1,np,split);
- if (outflag) dumpout(update->ntimestep,fp);
+ if (outflag) dumpout(update->ntimestep);
#endif
// stop if no change in splits, b/c all targets are met exactly
@@ -915,7 +920,7 @@ int Balance::shift()
// stop at this point in bstr if imbalance factor < threshhold
// this is a true 3d test of particle count per processor
- double imbfactor = imbalance_splits(max,weight);
+ double imbfactor = imbalance_splits(max);
if (imbfactor <= stopthresh) break;
}
@@ -931,20 +936,20 @@ int Balance::shift()
N = # of slices
split = N+1 cuts between N slices
return updated count = particles per slice
- retrun updated sum = cummulative count below each of N+1 splits
+ return updated sum = cummulative count below each of N+1 splits
use binary search to find which slice each atom is in
------------------------------------------------------------------------- */
-void Balance::tally(int dim, int n, double *split, const double *weight)
+void Balance::tally(int dim, int n, double *split)
{
- double *onecost = new double[n];
for (int i = 0; i < n; i++) onecost[i] = 0.0;
double **x = atom->x;
int nlocal = atom->nlocal;
int index;
- if (weight) {
+ if (wtflag) {
+ weight = fixstore->vstore;
for (int i = 0; i < nlocal; i++) {
index = binary(x[i][dim],n,split);
onecost[index] += weight[i];
@@ -956,14 +961,11 @@ void Balance::tally(int dim, int n, double *split, const double *weight)
}
}
- for (int i = 0; i < n; i++) onecount[i] = static_cast(onecost[i]);
- MPI_Allreduce(onecount,count,n,MPI_LMP_BIGINT,MPI_SUM,world);
+ MPI_Allreduce(onecost,allcost,n,MPI_DOUBLE,MPI_SUM,world);
- sum[0] = 0;
+ sum[0] = 0.0;
for (int i = 1; i < n+1; i++)
- sum[i] = sum[i-1] + count[i-1];
-
- delete [] onecost;
+ sum[i] = sum[i-1] + allcost[i-1];
}
/* ----------------------------------------------------------------------
@@ -1025,6 +1027,63 @@ int Balance::adjust(int n, double *split)
return change;
}
+/* ----------------------------------------------------------------------
+ calculate imbalance based on processor splits in 3 dims
+ atoms must be in lamda coords (0-1) before called
+ map particles to 3d grid of procs
+ return maxcost = max load per proc
+ return imbalance factor = max load per proc / ave load per proc
+------------------------------------------------------------------------- */
+
+double Balance::imbalance_splits(int &maxcost)
+{
+ double *xsplit = comm->xsplit;
+ double *ysplit = comm->ysplit;
+ double *zsplit = comm->zsplit;
+
+ int nx = comm->procgrid[0];
+ int ny = comm->procgrid[1];
+ int nz = comm->procgrid[2];
+
+ for (int i = 0; i < nprocs; i++) proccost[i] = 0.0;
+
+ double **x = atom->x;
+ int nlocal = atom->nlocal;
+ int ix,iy,iz;
+
+ if (wtflag) {
+ weight = fixstore->vstore;
+ for (int i = 0; i < nlocal; i++) {
+ ix = binary(x[i][0],nx,xsplit);
+ iy = binary(x[i][1],ny,ysplit);
+ iz = binary(x[i][2],nz,zsplit);
+ proccost[iz*nx*ny + iy*nx + ix] += weight[i];
+ }
+ } else {
+ for (int i = 0; i < nlocal; i++) {
+ ix = binary(x[i][0],nx,xsplit);
+ iy = binary(x[i][1],ny,ysplit);
+ iz = binary(x[i][2],nz,zsplit);
+ proccost[iz*nx*ny + iy*nx + ix] += 1.0;
+ }
+ }
+
+ // one proc's particles may map to many partitions, so must Allreduce
+
+ MPI_Allreduce(proccost,allproccost,nprocs,MPI_DOUBLE,MPI_SUM,world);
+
+ maxcost = 0.0;
+ double totalcost = 0.0;
+ for (int i = 0; i < nprocs; i++) {
+ maxcost = MAX(maxcost,allproccost[i]);
+ totalcost += allproccost[i];
+ }
+
+ double imbalance = 1.0;
+ if (maxcost > 0.0) imbalance = maxcost / (totalcost/nprocs);
+ return imbalance;
+}
+
/* ----------------------------------------------------------------------
binary search for where value falls in N-length vec
note that vec actually has N+1 values, but ignore last one
@@ -1067,7 +1126,7 @@ int Balance::binary(double value, int n, double *vec)
NOTE: only implemented for orthogonal boxes, not triclinic
------------------------------------------------------------------------- */
-void Balance::dumpout(bigint tstep, FILE *fp)
+void Balance::dumpout(bigint tstep)
{
int dimension = domain->dimension;
int triclinic = domain->triclinic;
diff --git a/src/balance.h b/src/balance.h
index becd15ca0d..a9397e6e40 100644
--- a/src/balance.h
+++ b/src/balance.h
@@ -26,22 +26,25 @@ CommandStyle(balance,Balance)
namespace LAMMPS_NS {
class Balance : protected Pointers {
- friend class FixBalance;
-
public:
+ class RCB *rcb;
+ class FixStore *fixstore; // per-atom weights stored in FixStore
+ int wtflag; // 1 if particle weighting is used
+ int varflag; // 1 if weight style var(iable) is used
+ int outflag; // 1 for output of balance results to file
Balance(class LAMMPS *);
~Balance();
void command(int, char **);
+ void options(int, int, char **);
+ void weight_storage(char *);
+ void init_imbalance();
+ void set_weights();
+ double imbalance_factor(double &);
void shift_setup(char *, int, double);
int shift();
int *bisection(int sortflag = 0);
- double imbalance_nlocal(int &);
- void dumpout(bigint, FILE *);
-
- protected:
- class RCB *rcb;
- void set_imb_fix(class FixStore *fix) { imb_fix = fix; };
+ void dumpout(bigint);
private:
int me,nprocs;
@@ -58,29 +61,28 @@ class Balance : protected Pointers {
int shift_allocate; // 1 if SHIFT vectors have been allocated
int ndim; // length of balance string bstr
int *bdim; // XYZ for each character in bstr
- bigint *count; // counts for slices in one dim
- bigint *onecount; // work vector of counts in one dim
- bigint *sum; // cummulative count for slices in one dim
- bigint *target; // target sum for slices in one dim
+ double *onecost; // work vector of counts in one dim
+ double *allcost; // counts for slices in one dim
+ double *sum; // cummulative count for slices in one dim
+ double *target; // target sum for slices in one dim
double *lo,*hi; // lo/hi split coords that bound each target
- bigint *losum,*hisum; // cummulative counts at lo/hi coords
+ double *losum,*hisum; // cummulative counts at lo/hi coords
int rho; // 0 for geometric recursion
// 1 for density weighted recursion
- int *proccount; // (weighted) particle count per processor
- int *allproccount;
+ double *proccost; // particle cost per processor
+ double *allproccost; // proccost summed across procs
- int nimbalance; // number of imbalance weight computes
- class Imbalance **imbalance; // list of imbalance compute classes
- class FixStore *imb_fix; // fix for storing per-atom weights
+ int nimbalance; // number of user-specified weight styles
+ class Imbalance **imbalances; // list of Imb classes, one per weight style
+ double *weight; // ptr to FixStore weight vector
- int outflag; // for output of balance results to file
- FILE *fp;
+ FILE *fp; // balance output file
int firststep;
- double imbalance_splits(int &, const double *);
+ double imbalance_splits(int &);
void shift_setup_static(char *);
- void tally(int, int, double *, const double *);
+ void tally(int, int, double *);
int adjust(int, double *);
int binary(double, int, double *);
#ifdef BALANCE_DEBUG
diff --git a/src/error.cpp b/src/error.cpp
index 614b62d5f0..5c24d94832 100644
--- a/src/error.cpp
+++ b/src/error.cpp
@@ -22,7 +22,12 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
-Error::Error(LAMMPS *lmp) : Pointers(lmp), last_error_message(NULL) {}
+Error::Error(LAMMPS *lmp) : Pointers(lmp) {
+#ifdef LAMMPS_EXCEPTIONS
+ last_error_message = NULL;
+ last_error_type = ERROR_NONE;
+#endif
+}
/* ----------------------------------------------------------------------
called by all procs in universe
@@ -198,6 +203,7 @@ void Error::done(int status)
exit(status);
}
+#ifdef LAMMPS_EXCEPTIONS
/* ----------------------------------------------------------------------
return the last error message reported by LAMMPS (only used if
compiled with -DLAMMPS_EXCEPTIONS)
@@ -208,13 +214,22 @@ char * Error::get_last_error() const
return last_error_message;
}
-
/* ----------------------------------------------------------------------
- set the last error message (only used if compiled with
- -DLAMMPS_EXCEPTIONS)
+ return the type of the last error reported by LAMMPS (only used if
+ compiled with -DLAMMPS_EXCEPTIONS)
------------------------------------------------------------------------- */
-void Error::set_last_error(const char * msg)
+ErrorType Error::get_last_error_type() const
+{
+ return last_error_type;
+}
+
+/* ----------------------------------------------------------------------
+ set the last error message and error type
+ (only used if compiled with -DLAMMPS_EXCEPTIONS)
+------------------------------------------------------------------------- */
+
+void Error::set_last_error(const char * msg, ErrorType type)
{
delete [] last_error_message;
@@ -224,4 +239,6 @@ void Error::set_last_error(const char * msg)
} else {
last_error_message = NULL;
}
+ last_error_type = type;
}
+#endif
diff --git a/src/error.h b/src/error.h
index 0ca9440572..b66fe4a13b 100644
--- a/src/error.h
+++ b/src/error.h
@@ -15,41 +15,14 @@
#define LMP_ERROR_H
#include "pointers.h"
-#include
-#include
+
+#ifdef LAMMPS_EXCEPTIONS
+#include "exceptions.h"
+#endif
namespace LAMMPS_NS {
-class LAMMPSException : public std::exception
-{
-public:
- std::string message;
-
- LAMMPSException(std::string msg) : message(msg) {
- }
-
- ~LAMMPSException() throw() {
- }
-
- virtual const char * what() const throw() {
- return message.c_str();
- }
-};
-
-class LAMMPSAbortException : public LAMMPSException {
-public:
- MPI_Comm universe;
-
- LAMMPSAbortException(std::string msg, MPI_Comm universe) :
- LAMMPSException(msg),
- universe(universe)
- {
- }
-};
-
class Error : protected Pointers {
- char * last_error_message;
-
public:
Error(class LAMMPS *);
@@ -63,8 +36,15 @@ class Error : protected Pointers {
void message(const char *, int, const char *, int = 1);
void done(int = 0); // 1 would be fully backwards compatible
- char * get_last_error() const;
- void set_last_error(const char * msg);
+#ifdef LAMMPS_EXCEPTIONS
+ char * get_last_error() const;
+ ErrorType get_last_error_type() const;
+ void set_last_error(const char * msg, ErrorType type = ERROR_NORMAL);
+
+ private:
+ char * last_error_message;
+ ErrorType last_error_type;
+#endif
};
}
diff --git a/src/exceptions.h b/src/exceptions.h
new file mode 100644
index 0000000000..121991afc5
--- /dev/null
+++ b/src/exceptions.h
@@ -0,0 +1,58 @@
+/* -*- c++ -*- ----------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+#ifndef LMP_EXCEPTIONS_H
+#define LMP_EXCEPTIONS_H
+
+#include
+#include
+#include
+
+namespace LAMMPS_NS {
+
+class LAMMPSException : public std::exception
+{
+public:
+ std::string message;
+
+ LAMMPSException(std::string msg) : message(msg) {
+ }
+
+ ~LAMMPSException() throw() {
+ }
+
+ virtual const char * what() const throw() {
+ return message.c_str();
+ }
+};
+
+class LAMMPSAbortException : public LAMMPSException {
+public:
+ MPI_Comm universe;
+
+ LAMMPSAbortException(std::string msg, MPI_Comm universe) :
+ LAMMPSException(msg),
+ universe(universe)
+ {
+ }
+};
+
+enum ErrorType {
+ ERROR_NONE = 0,
+ ERROR_NORMAL = 1,
+ ERROR_ABORT = 2
+};
+
+}
+
+#endif
diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp
index d8deaddd28..2a3f7db1f1 100644
--- a/src/fix_adapt.cpp
+++ b/src/fix_adapt.cpp
@@ -321,7 +321,7 @@ void FixAdapt::init()
delete[] psuffix;
}
if (ad->pair == NULL) ad->pair = force->pair_match(pstyle,1,nsub);
- if (ad->pair == NULL)
+ if (ad->pair == NULL)
error->all(FLERR,"Fix adapt pair style does not exist");
void *ptr = ad->pair->extract(ad->pparam,ad->pdim);
diff --git a/src/fix_balance.cpp b/src/fix_balance.cpp
index 18630e436a..59742583e4 100644
--- a/src/fix_balance.cpp
+++ b/src/fix_balance.cpp
@@ -19,22 +19,15 @@
#include "atom.h"
#include "comm.h"
#include "domain.h"
-#include "modify.h"
#include "neighbor.h"
#include "irregular.h"
#include "force.h"
#include "kspace.h"
+#include "modify.h"
+#include "fix_store.h"
#include "rcb.h"
#include "error.h"
-#include "imbalance_group.h"
-#include "imbalance_time.h"
-#include "imbalance_neigh.h"
-#include "imbalance_store.h"
-#include "imbalance_var.h"
-
-#include "fix_store.h"
-
using namespace LAMMPS_NS;
using namespace FixConst;
@@ -44,8 +37,7 @@ enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files
/* ---------------------------------------------------------------------- */
FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) :
- Fix(lmp, narg, arg),
- fp(NULL), nimbalance(0), imbalance(NULL), imb_fix(NULL), balance(NULL), irregular(NULL)
+ Fix(lmp, narg, arg), balance(NULL), irregular(NULL)
{
if (narg < 6) error->all(FLERR,"Illegal fix balance command");
@@ -57,7 +49,7 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) :
extvector = 0;
global_freq = 1;
- // parse arguments
+ // parse required arguments
int dimension = domain->dimension;
@@ -72,7 +64,8 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) :
int iarg = 5;
if (lbstyle == SHIFT) {
if (iarg+4 > narg) error->all(FLERR,"Illegal fix balance command");
- if (strlen(arg[iarg+1]) > 3) error->all(FLERR,"Illegal fix balance command");
+ if (strlen(arg[iarg+1]) > 3)
+ error->all(FLERR,"Illegal fix balance command");
strcpy(bstr,arg[iarg+1]);
nitermax = force->inumeric(FLERR,arg[iarg+2]);
if (nitermax <= 0) error->all(FLERR,"Illegal fix balance command");
@@ -83,65 +76,7 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) :
iarg++;
}
- // create instance of Balance class. required for processing group flags.
-
- balance = new Balance(lmp);
-
- // process optional keywords
-
- // get max number of imbalance weight flags/classes
-
- nimbalance = 0;
- imbalance = NULL;
- for (int i=iarg; i < narg; ++i)
- if (strcmp(arg[i],"weight") == 0) ++nimbalance;
- if (nimbalance) imbalance = new Imbalance*[nimbalance];
-
- outflag = 0;
- int outarg = 0;
- fp = NULL;
- nimbalance = 0;
- imb_fix = NULL;
-
- while (iarg < narg) {
- if (strcmp(arg[iarg],"out") == 0) {
- if (iarg+2 > narg) error->all(FLERR,"Illegal fix balance command");
- outflag = 1;
- outarg = iarg+1;
- iarg += 2;
- } else if (strcmp(arg[iarg],"weight") == 0) {
- if (iarg+2 > narg) error->all(FLERR,"Illegal fix balance command");
- Imbalance *imb;
- int nopt = 0;
- if (strcmp(arg[iarg+1],"group") == 0) {
- imb = new ImbalanceGroup(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else if (strcmp(arg[iarg+1],"time") == 0) {
- imb = new ImbalanceTime(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else if (strcmp(arg[iarg+1],"neigh") == 0) {
- imb = new ImbalanceNeigh(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else if (strcmp(arg[iarg+1],"var") == 0) {
- imb = new ImbalanceVar(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else if (strcmp(arg[iarg+1],"store") == 0) {
- imb = new ImbalanceStore(lmp);
- nopt = imb->options(narg-iarg,arg+iarg+2);
- imbalance[nimbalance] = imb;
- } else {
- error->all(FLERR,"Unknown balance weight method");
- }
- ++nimbalance;
- iarg += 2+nopt;
- } else error->all(FLERR,"Illegal fix balance command");
- }
-
- // error check
+ // error checks
if (lbstyle == SHIFT) {
int blen = strlen(bstr);
@@ -159,47 +94,39 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) :
if (lbstyle == BISECTION && comm->style == 0)
error->all(FLERR,"Fix balance rcb cannot be used with comm_style brick");
- // if SHIFT, initialize balance class with params
+ // create instance of Balance class
+ // if SHIFT, initialize it with params
+ // process remaining optional args via Balance
+ balance = new Balance(lmp);
if (lbstyle == SHIFT) balance->shift_setup(bstr,nitermax,thresh);
+ balance->options(iarg,narg,arg);
+ wtflag = balance->wtflag;
+
+ if (balance->varflag && nevery == 0)
+ error->all(FLERR,"Fix balance nevery = 0 cannot be used with weight var");
// create instance of Irregular class
irregular = new Irregular(lmp);
- // output file
-
- if (outflag && comm->me == 0) {
- fp = fopen(arg[outarg],"w");
- if (fp == NULL) error->one(FLERR,"Cannot open fix balance output file");
- }
-
// only force reneighboring if nevery > 0
if (nevery) force_reneighbor = 1;
+ // compute initial outputs
+
itercount = 0;
pending = 0;
- imbfinal = imbprev = 0.0;
+ imbfinal = imbprev = maxloadperproc = 0.0;
}
/* ---------------------------------------------------------------------- */
FixBalance::~FixBalance()
{
- for (int i = 0; i < nimbalance; ++i)
- delete imbalance[i];
- delete[] imbalance;
-
- if (imb_fix && (modify->nfix > 0)) {
- modify->delete_fix(imb_fix->id);
- imb_fix = NULL;
- balance->set_imb_fix(NULL);
- }
-
delete balance;
delete irregular;
- if (fp) fclose(fp);
}
/* ---------------------------------------------------------------------- */
@@ -216,28 +143,7 @@ int FixBalance::setmask()
void FixBalance::post_constructor()
{
- // add per atom weight property, if weighted balancing is requested
-
- if (nimbalance > 0) {
- char *fixargs[6];
- char *imb_id = new char[strlen(this->id)+19];
-
- strcpy(imb_id,this->id);
- strcat(imb_id,"_IMBALANCE_WEIGHTS");
-
- fixargs[0] = imb_id;
- fixargs[1] = (char *) "all";
- fixargs[2] = (char *) "STORE";
- fixargs[3] = (char *) "peratom";
- fixargs[4] = (char *) "1";
- fixargs[5] = (char *) "1";
-
- modify->add_fix(6,fixargs);
- imb_fix = (FixStore *) modify->fix[modify->nfix-1];
- balance->set_imb_fix(imb_fix);
-
- delete[] imb_id;
- }
+ if (wtflag) balance->weight_storage(id);
}
/* ---------------------------------------------------------------------- */
@@ -246,6 +152,8 @@ void FixBalance::init()
{
if (force->kspace) kspace_flag = 1;
else kspace_flag = 0;
+
+ balance->init_imbalance();
}
/* ---------------------------------------------------------------------- */
@@ -273,22 +181,13 @@ void FixBalance::setup_pre_exchange()
domain->reset_box();
if (domain->triclinic) domain->lamda2x(atom->nlocal);
- // compute and apply imbalance weights for local atoms
+ // perform a rebalance if threshhold exceeded
- if (nimbalance > 0) {
- double * const weight = imb_fix->vstore;
- for (int i = 0; i < atom->nlocal; ++i)
- weight[i] = 1.0;
- for (int n = 0; n < nimbalance; ++n)
- imbalance[n]->compute(weight);
- }
-
- // compute initial outputs and perform a rebalance if threshhold exceeded
-
- imbfinal = imbprev = imbnow = balance->imbalance_nlocal(maxperproc);
+ balance->set_weights();
+ imbnow = balance->imbalance_factor(maxloadperproc);
if (imbnow > thresh) rebalance();
- // next_reneighbor = next time to force reneighboring
+ // next timestep to rebalance
if (nevery) next_reneighbor = (update->ntimestep/nevery)*nevery + nevery;
}
@@ -311,26 +210,15 @@ void FixBalance::pre_exchange()
domain->reset_box();
if (domain->triclinic) domain->lamda2x(atom->nlocal);
- // compute and apply imbalance weights for local atoms
+ // perform a rebalance if threshhold exceeded
+ // if weight variable is used, wrap weight setting in clear/add compute
- if (nimbalance > 0) {
- double * const weight = imb_fix->vstore;
- for (int i = 0; i < atom->nlocal; ++i)
- weight[i] = 1.0;
- for (int n = 0; n < nimbalance; ++n)
- imbalance[n]->compute(weight);
- }
+ if (balance->varflag) modify->clearstep_compute();
+ balance->set_weights();
+ if (balance->varflag) modify->addstep_compute(update->ntimestep + nevery);
- // return if imbalance < threshhold
-
- imbnow = balance->imbalance_nlocal(maxperproc);
-
- if (imbnow <= thresh) {
- if (nevery) next_reneighbor = (update->ntimestep/nevery)*nevery + nevery;
- return;
- }
-
- rebalance();
+ imbnow = balance->imbalance_factor(maxloadperproc);
+ if (imbnow > thresh) rebalance();
// next timestep to rebalance
@@ -345,8 +233,7 @@ void FixBalance::pre_exchange()
void FixBalance::pre_neighbor()
{
if (!pending) return;
-
- imbfinal = balance->imbalance_nlocal(maxperproc);
+ imbfinal = balance->imbalance_factor(maxloadperproc);
pending = 0;
}
@@ -371,7 +258,7 @@ void FixBalance::rebalance()
// output of new decomposition
- if (outflag) balance->dumpout(update->ntimestep,fp);
+ if (balance->outflag) balance->dumpout(update->ntimestep);
// reset proc sub-domains
// check and warn if any proc's subbox is smaller than neigh skin
@@ -386,8 +273,10 @@ void FixBalance::rebalance()
// else allow caller's comm->exchange() to do it
if (domain->triclinic) domain->x2lamda(atom->nlocal);
+ if (wtflag) balance->fixstore->disable = 0;
if (lbstyle == BISECTION) irregular->migrate_atoms(0,1,sendproc);
else if (irregular->migrate_check()) irregular->migrate_atoms();
+ if (wtflag) balance->fixstore->disable = 1;
if (domain->triclinic) domain->lamda2x(atom->nlocal);
// invoke KSpace setup_grid() to adjust to new proc sub-domains
@@ -415,7 +304,7 @@ double FixBalance::compute_scalar()
double FixBalance::compute_vector(int i)
{
- if (i == 0) return (double) maxperproc;
+ if (i == 0) return maxloadperproc;
if (i == 1) return (double) itercount;
return imbprev;
}
diff --git a/src/fix_balance.h b/src/fix_balance.h
index 26cc835367..ec7b1f68e6 100644
--- a/src/fix_balance.h
+++ b/src/fix_balance.h
@@ -30,6 +30,7 @@ class FixBalance : public Fix {
FixBalance(class LAMMPS *, int, char **);
~FixBalance();
int setmask();
+ void post_constructor();
void init();
void setup(int);
void setup_pre_exchange();
@@ -41,15 +42,15 @@ class FixBalance : public Fix {
double memory_usage();
private:
- int nevery,lbstyle,nitermax,outflag;
+ int nevery,lbstyle,nitermax;
double thresh,stopthresh;
char bstr[4];
- FILE *fp;
+ int wtflag; // 1 for weighted balancing
double imbnow; // current imbalance factor
double imbprev; // imbalance factor before last rebalancing
double imbfinal; // imbalance factor after last rebalancing
- int maxperproc; // max atoms on any processor
+ double maxloadperproc; // max load on any processor
int itercount; // iteration count of last call to Balance
int kspace_flag; // 1 if KSpace solver defined
int pending;
diff --git a/src/fix_store.cpp b/src/fix_store.cpp
index abfceda264..19d2c72f9d 100644
--- a/src/fix_store.cpp
+++ b/src/fix_store.cpp
@@ -40,6 +40,7 @@ vstore(NULL), astore(NULL), rbuf(NULL)
// 0/1 flag = not-store or store peratom values in restart file
// nvalues = # of peratom values, N = 1 is vector, N > 1 is array
+ disable = 0;
nvalues = vecflag = 0;
flavor = UNKNOWN;
@@ -230,6 +231,8 @@ void FixStore::grow_arrays(int nmax)
void FixStore::copy_arrays(int i, int j, int delflag)
{
+ if (disable) return;
+
if (vecflag) vstore[j] = vstore[i];
else
for (int m = 0; m < nvalues; m++)
@@ -242,6 +245,8 @@ void FixStore::copy_arrays(int i, int j, int delflag)
int FixStore::pack_exchange(int i, double *buf)
{
+ if (disable) return 0;
+
if (vecflag) buf[0] = vstore[i];
else
for (int m = 0; m < nvalues; m++)
@@ -255,6 +260,8 @@ int FixStore::pack_exchange(int i, double *buf)
int FixStore::unpack_exchange(int nlocal, double *buf)
{
+ if (disable) return 0;
+
if (vecflag) vstore[nlocal] = buf[0];
else
for (int m = 0; m < nvalues; m++)
@@ -268,6 +275,11 @@ int FixStore::unpack_exchange(int nlocal, double *buf)
int FixStore::pack_restart(int i, double *buf)
{
+ if (disable) {
+ buf[0] = 0;
+ return 1;
+ }
+
buf[0] = nvalues+1;
if (vecflag) buf[1] = vstore[i];
else
@@ -282,6 +294,8 @@ int FixStore::pack_restart(int i, double *buf)
void FixStore::unpack_restart(int nlocal, int nth)
{
+ if (disable) return;
+
double **extra = atom->extra;
// skip to Nth set of extra values
@@ -302,6 +316,7 @@ void FixStore::unpack_restart(int nlocal, int nth)
int FixStore::maxsize_restart()
{
+ if (disable) return 1;
return nvalues+1;
}
@@ -311,6 +326,7 @@ int FixStore::maxsize_restart()
int FixStore::size_restart(int nlocal)
{
+ if (disable) return 1;
return nvalues+1;
}
diff --git a/src/fix_store.h b/src/fix_store.h
index 9bdfc7d308..1aad563232 100644
--- a/src/fix_store.h
+++ b/src/fix_store.h
@@ -31,6 +31,7 @@ class FixStore : public Fix {
int nvalues; // number of per-atom values
double *vstore; // vector storage for GLOBAL or PERATOM
double **astore; // array storage for GLOBAL or PERATOM
+ int disable; // 1 if operations (except grow) are currently disabled
FixStore(class LAMMPS *, int, char **);
~FixStore();
diff --git a/src/imbalance.cpp b/src/imbalance.cpp
new file mode 100644
index 0000000000..181775e337
--- /dev/null
+++ b/src/imbalance.cpp
@@ -0,0 +1,20 @@
+/* -*- c++ -*- ----------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+#include "imbalance.h"
+
+using namespace LAMMPS_NS;
+
+/* ---------------------------------------------------------------------- */
+
+Imbalance::Imbalance(LAMMPS *lmp) : Pointers(lmp) {}
diff --git a/src/imbalance.h b/src/imbalance.h
index 99eaee74cd..14fd1b59b2 100644
--- a/src/imbalance.h
+++ b/src/imbalance.h
@@ -15,28 +15,16 @@
#define LMP_IMBALANCE_H
#include
+#include "pointers.h"
namespace LAMMPS_NS {
- class LAMMPS;
-class Imbalance {
+class Imbalance : protected Pointers {
public:
- Imbalance(LAMMPS *lmp) : _lmp(lmp) {};
+ Imbalance(class LAMMPS *);
virtual ~Imbalance() {};
- // disallow default and copy constructor, assignment operator
- private:
- Imbalance() {};
- Imbalance(const Imbalance &) {};
- Imbalance &operator=(const Imbalance &) {return *this;};
-
- // internal use only data members
- protected:
- LAMMPS *_lmp;
-
- // public API
- public:
- // parse options. return number of arguments consumed. (required)
+ // parse options. return number of arguments consumed (required)
virtual int options(int narg, char **arg) = 0;
// reinitialize internal data (needed for fix balance) (optional)
virtual void init() {};
@@ -44,6 +32,12 @@ class Imbalance {
virtual void compute(double *weights) = 0;
// print information about the state of this imbalance compute (required)
virtual void info(FILE *fp) = 0;
+
+ // disallow default and copy constructor, assignment operator
+ // private:
+ //Imbalance() {};
+ //Imbalance(const Imbalance &) {};
+ //Imbalance &operator=(const Imbalance &) {return *this;};
};
}
diff --git a/src/imbalance_group.cpp b/src/imbalance_group.cpp
index f0ddc13d2e..54eac47c83 100644
--- a/src/imbalance_group.cpp
+++ b/src/imbalance_group.cpp
@@ -11,55 +11,64 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
-
-#include "pointers.h"
#include "imbalance_group.h"
#include "atom.h"
-#include "error.h"
#include "force.h"
#include "group.h"
+#include "error.h"
using namespace LAMMPS_NS;
+/* -------------------------------------------------------------------- */
+
+ImbalanceGroup::ImbalanceGroup(LAMMPS *lmp) : Imbalance(lmp), id(0), factor(0)
+{}
+
+/* -------------------------------------------------------------------- */
+
+ImbalanceGroup::~ImbalanceGroup()
+{
+ delete [] id;
+ delete [] factor;
+}
+
+/* -------------------------------------------------------------------- */
+
int ImbalanceGroup::options(int narg, char **arg)
{
- Error *error = _lmp->error;
- Force *force = _lmp->force;
- Group *group = _lmp->group;
-
if (narg < 3) error->all(FLERR,"Illegal balance weight command");
- _num = force->inumeric(FLERR,arg[0]);
- if (_num < 1) error->all(FLERR,"Illegal balance weight command");
- if (2*_num+1 > narg) error->all(FLERR,"Illegal balance weight command");
+ num = force->inumeric(FLERR,arg[0]);
+ if (num < 1) error->all(FLERR,"Illegal balance weight command");
+ if (2*num+1 > narg) error->all(FLERR,"Illegal balance weight command");
- _id = new int[_num];
- _factor = new double[_num];
- for (int i = 0; i < _num; ++i) {
- _id[i] = group->find(arg[2*i+1]);
- if (_id[i] < 0)
+ id = new int[num];
+ factor = new double[num];
+ for (int i = 0; i < num; ++i) {
+ id[i] = group->find(arg[2*i+1]);
+ if (id[i] < 0)
error->all(FLERR,"Unknown group in balance weight command");
- _factor[i] = force->numeric(FLERR,arg[2*i+2]);
+ factor[i] = force->numeric(FLERR,arg[2*i+2]);
}
- return 2*_num+1;
+ return 2*num+1;
}
/* -------------------------------------------------------------------- */
void ImbalanceGroup::compute(double *weight)
{
- const int * const mask = _lmp->atom->mask;
- const int * const bitmask = _lmp->group->bitmask;
- const int nlocal = _lmp->atom->nlocal;
+ const int * const mask = atom->mask;
+ const int * const bitmask = group->bitmask;
+ const int nlocal = atom->nlocal;
- if (_num == 0) return;
+ if (num == 0) return;
for (int i = 0; i < nlocal; ++i) {
const int imask = mask[i];
double iweight = weight[i];
- for (int j = 0; j < _num; ++j) {
- if (imask & bitmask[_id[j]])
- iweight *= _factor[j];
+ for (int j = 0; j < num; ++j) {
+ if (imask & bitmask[id[j]])
+ iweight *= factor[j];
}
weight[i] = iweight;
}
@@ -69,12 +78,12 @@ void ImbalanceGroup::compute(double *weight)
void ImbalanceGroup::info(FILE *fp)
{
- if (_num > 0) {
- const char * const * const names = _lmp->group->names;
+ if (num > 0) {
+ const char * const * const names = group->names;
fprintf(fp," group weights:");
- for (int i = 0; i < _num; ++i)
- fprintf(fp," %s=%g",names[_id[i]],_factor[i]);
+ for (int i = 0; i < num; ++i)
+ fprintf(fp," %s=%g",names[id[i]],factor[i]);
fputs("\n",fp);
}
}
diff --git a/src/imbalance_group.h b/src/imbalance_group.h
index fdd68d1fab..b3961ea389 100644
--- a/src/imbalance_group.h
+++ b/src/imbalance_group.h
@@ -19,25 +19,21 @@
namespace LAMMPS_NS {
class ImbalanceGroup : public Imbalance {
-
public:
- ImbalanceGroup(LAMMPS *lmp) : Imbalance(lmp),_num(0),_id(0),_factor(0) {};
- virtual ~ImbalanceGroup() { delete[] _id; delete[] _factor; };
+ ImbalanceGroup(class LAMMPS *);
+ virtual ~ImbalanceGroup();
- // internal data members
- private:
- int _num; // number of groups with weights
- int *_id; // list numerical id's of groups
- double *_factor; // list if group weight factors
-
- // required member functions
- public:
- // parse options. return number of arguments consumed.
- virtual int options(int narg, char **arg);
+ // parse options, return number of arguments consumed
+ virtual int options(int, char **);
// compute and apply weight factors to local atom array
- virtual void compute(double *weight);
+ virtual void compute(double *);
// print information about the state of this imbalance compute
- virtual void info(FILE *fp);
+ virtual void info(FILE *);
+
+ private:
+ int num; // number of groups with weights
+ int *id; // numerical IDs of groups
+ double *factor; // group weight factors
};
}
diff --git a/src/imbalance_neigh.cpp b/src/imbalance_neigh.cpp
index 0a59e3364e..d4de27fed4 100644
--- a/src/imbalance_neigh.cpp
+++ b/src/imbalance_neigh.cpp
@@ -11,27 +11,32 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
-
-#include "pointers.h"
+#include
#include "imbalance_neigh.h"
#include "atom.h"
-#include "error.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_request.h"
#include "neigh_list.h"
+#include "error.h"
using namespace LAMMPS_NS;
+/* -------------------------------------------------------------------- */
+
+ImbalanceNeigh::ImbalanceNeigh(LAMMPS *lmp) : Imbalance(lmp)
+{
+ did_warn = 0;
+}
+
+/* -------------------------------------------------------------------- */
+
int ImbalanceNeigh::options(int narg, char **arg)
{
- Error *error = _lmp->error;
- Force *force = _lmp->force;
-
if (narg < 1) error->all(FLERR,"Illegal balance weight command");
- _factor = force->numeric(FLERR,arg[0]);
- if (_factor < 0.0) error->all(FLERR,"Illegal balance weight command");
+ factor = force->numeric(FLERR,arg[0]);
+ if (factor < 0.0) error->all(FLERR,"Illegal balance weight command");
return 1;
}
@@ -39,12 +44,13 @@ int ImbalanceNeigh::options(int narg, char **arg)
void ImbalanceNeigh::compute(double *weight)
{
- // find suitable existing neighbor list
- Error *error = _lmp->error;
- Neighbor *neighbor = _lmp->neighbor;
int req;
- // we can only make use of certain (conventional) neighbor lists.
+ if (factor == 0.0) return;
+
+ // find suitable neighbor list
+ // we can only make use of certain (conventional) neighbor lists
+
for (req = 0; req < neighbor->old_nrequest; ++req) {
if ((neighbor->old_requests[req]->half ||
neighbor->old_requests[req]->gran ||
@@ -55,38 +61,36 @@ void ImbalanceNeigh::compute(double *weight)
}
if (req >= neighbor->old_nrequest || neighbor->ago < 0) {
- if (_lmp->comm->me == 0 && !did_warn)
+ if (comm->me == 0 && !did_warn)
error->warning(FLERR,"No suitable neighbor list found. "
"Neighbor weighted balancing skipped");
did_warn = 1;
return;
}
- if (_factor > 0.0) {
+ NeighList *list = neighbor->lists[req];
+ bigint neighsum = 0;
+
+ const int inum = list->inum;
+ const int * const ilist = list->ilist;
+ const int * const numneigh = list->numneigh;
- MPI_Comm world = _lmp->world;
- NeighList *list = neighbor->lists[req];
- bigint neighsum = 0;
+ // first pass: get local number of neighbors
- const int inum = list->inum;
- const int * const ilist = list->ilist;
- const int * const numneigh = list->numneigh;
+ for (int i = 0; i < inum; ++i) neighsum += numneigh[ilist[i]];
- // first pass: get local number of neighbors.
- for (int i = 0; i < inum; ++i) neighsum += numneigh[ilist[i]];
+ double allatoms = static_cast (atom->natoms);
+ if (allatoms == 0.0) allatoms = 1.0;
+ double allavg;
+ double myavg = static_cast(neighsum)/allatoms;
+ MPI_Allreduce(&myavg,&allavg,1,MPI_DOUBLE,MPI_SUM,world);
+
+ // second pass: compute and apply weights
- double allatoms = static_cast (_lmp->atom->natoms);
- if (allatoms == 0.0) allatoms = 1.0;
- double allavg;
- double myavg = static_cast(neighsum)/allatoms;
- MPI_Allreduce(&myavg,&allavg,1,MPI_DOUBLE,MPI_SUM,world);
-
- // second pass: compute and apply weights
- double scale = 1.0/allavg;
- for (int ii = 0; ii < inum; ++ii) {
- const int i = ilist[ii];
- weight[i] *= (1.0-_factor) + _factor*scale*numneigh[i];
- }
+ double scale = 1.0/allavg;
+ for (int ii = 0; ii < inum; ++ii) {
+ const int i = ilist[ii];
+ weight[i] *= (1.0-factor) + factor*scale*numneigh[i];
}
}
@@ -94,6 +98,5 @@ void ImbalanceNeigh::compute(double *weight)
void ImbalanceNeigh::info(FILE *fp)
{
- if (_factor > 0.0)
- fprintf(fp," neigh weight factor: %g\n",_factor);
+ fprintf(fp," neigh weight factor: %g\n",factor);
}
diff --git a/src/imbalance_neigh.h b/src/imbalance_neigh.h
index c3ace64691..e905d3e1c0 100644
--- a/src/imbalance_neigh.h
+++ b/src/imbalance_neigh.h
@@ -20,21 +20,20 @@ namespace LAMMPS_NS {
class ImbalanceNeigh : public Imbalance {
public:
- ImbalanceNeigh(LAMMPS *lmp) : Imbalance(lmp), _factor(0.0), did_warn(0) {};
- virtual ~ImbalanceNeigh() {};
-
- // internal data members
- private:
- double _factor; // weight factor for neighbor imbalance
- int did_warn; // 1 if warned about no suitable neighbor list
+ ImbalanceNeigh(class LAMMPS *);
+ virtual ~ImbalanceNeigh() {}
public:
- // parse options. return number of arguments consumed
- virtual int options(int narg, char **arg);
+ // parse options, return number of arguments consumed
+ virtual int options(int, char **);
// compute and apply weight factors to local atom array
- virtual void compute(double *weights);
+ virtual void compute(double *);
// print information about the state of this imbalance compute
- virtual void info(FILE *fp);
+ virtual void info(FILE *);
+
+ private:
+ double factor; // weight factor for neighbor imbalance
+ int did_warn; // 1 if warned about no suitable neighbor list
};
}
diff --git a/src/imbalance_store.cpp b/src/imbalance_store.cpp
index 980c9cb222..26dd47fb1b 100644
--- a/src/imbalance_store.cpp
+++ b/src/imbalance_store.cpp
@@ -12,22 +12,33 @@
------------------------------------------------------------------------- */
#include
-#include "pointers.h"
#include "imbalance_store.h"
#include "atom.h"
-#include "error.h"
#include "input.h"
+#include "error.h"
using namespace LAMMPS_NS;
+/* -------------------------------------------------------------------- */
+
+ImbalanceStore::ImbalanceStore(LAMMPS *lmp) : Imbalance(lmp), name(0) {}
+
+/* -------------------------------------------------------------------- */
+
+ImbalanceStore::~ImbalanceStore()
+{
+ delete [] name;
+}
+
+/* -------------------------------------------------------------------- */
+
int ImbalanceStore::options(int narg, char **arg)
{
- Error *error = _lmp->error;
-
if (narg < 1) error->all(FLERR,"Illegal balance weight command");
- int len = strlen(arg[0])+1;
- _name = new char[len];
- memcpy(_name,arg[0],len);
+
+ int len = strlen(arg[0]) + 1;
+ name = new char[len];
+ memcpy(name,arg[0],len);
return 1;
}
@@ -36,25 +47,23 @@ int ImbalanceStore::options(int narg, char **arg)
void ImbalanceStore::compute(double *weight)
{
- if (_name) {
- int dflag = 0;
- int idx = _lmp->atom->find_custom(_name,dflag);
-
- // property does not exist
- if (idx < 0 || dflag != 1) return;
-
- double *prop = _lmp->atom->dvector[idx];
- const int nlocal = _lmp->atom->nlocal;
-
- for (int i = 0; i < nlocal; ++i)
- prop[i] = weight[i];
- }
+ int dflag = 0;
+ int idx = atom->find_custom(name,dflag);
+
+ // property does not exist
+
+ if (idx < 0 || dflag != 1) return;
+
+ double *prop = atom->dvector[idx];
+ const int nlocal = atom->nlocal;
+
+ for (int i = 0; i < nlocal; ++i)
+ prop[i] = weight[i];
}
/* -------------------------------------------------------------------- */
void ImbalanceStore::info(FILE *fp)
{
- if (_name)
- fprintf(fp," storing weight in atom property d_%s\n",_name);
+ fprintf(fp," storing weight in atom property d_%s\n",name);
}
diff --git a/src/imbalance_store.h b/src/imbalance_store.h
index 7583c910e0..74f200ecbf 100644
--- a/src/imbalance_store.h
+++ b/src/imbalance_store.h
@@ -20,21 +20,19 @@ namespace LAMMPS_NS {
class ImbalanceStore : public Imbalance {
public:
- ImbalanceStore(LAMMPS *lmp) : Imbalance(lmp), _name(0) {};
- virtual ~ImbalanceStore() { delete[] _name; };
+ ImbalanceStore(class LAMMPS *);
+ virtual ~ImbalanceStore();
- // internal data members
- private:
- char *_name; // property name
-
- // required member functions
public:
- // parse options. return number of arguments consumed.
- virtual int options(int narg, char **arg);
+ // parse options, return number of arguments consumed
+ virtual int options(int, char **);
// compute per-atom imbalance and apply to weight array
- virtual void compute(double *weight);
+ virtual void compute(double *);
// print information about the state of this imbalance compute (required)
- virtual void info(FILE *fp);
+ virtual void info(FILE *);
+
+ private:
+ char *name; // property name
};
}
diff --git a/src/imbalance_time.cpp b/src/imbalance_time.cpp
index 7240fa2ae0..f8ec4343e2 100644
--- a/src/imbalance_time.cpp
+++ b/src/imbalance_time.cpp
@@ -11,42 +11,52 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
-
-#include "pointers.h"
+#include
#include "imbalance_time.h"
#include "atom.h"
-#include "error.h"
#include "comm.h"
#include "force.h"
#include "timer.h"
+#include "error.h"
using namespace LAMMPS_NS;
+/* -------------------------------------------------------------------- */
+
+ImbalanceTime::ImbalanceTime(LAMMPS *lmp) : Imbalance(lmp) {}
+
+/* -------------------------------------------------------------------- */
+
int ImbalanceTime::options(int narg, char **arg)
{
- Error *error = _lmp->error;
- Force *force = _lmp->force;
-
if (narg < 1) error->all(FLERR,"Illegal balance weight command");
- _factor = force->numeric(FLERR,arg[0]);
- if (_factor < 0.0) error->all(FLERR,"Illegal balance weight command");
+ factor = force->numeric(FLERR,arg[0]);
+ if (factor < 0.0) error->all(FLERR,"Illegal balance weight command");
return 1;
}
+/* ----------------------------------------------------------------------
+ reset last, needed for fix balance caller
+------------------------------------------------------------------------- */
+
+void ImbalanceTime::init()
+{
+ last = 0.0;
+}
+
/* -------------------------------------------------------------------- */
void ImbalanceTime::compute(double *weight)
{
- const int nlocal = _lmp->atom->nlocal;
- const bigint natoms = _lmp->atom->natoms;
- MPI_Comm world = _lmp->world;
- Timer *timer = _lmp->timer;
+ const int nlocal = atom->nlocal;
+ const bigint natoms = atom->natoms;
- if (_factor > 0.0) {
- // compute the cost function of based on relevant timers
- if (timer->has_normal()) {
+ if (factor == 0.0) return;
- double cost = -_last;
+ // compute the cost function of based on relevant timers
+
+ if (timer->has_normal()) {
+ double cost = -last;
cost += timer->get_wall(Timer::PAIR);
cost += timer->get_wall(Timer::NEIGH);
cost += timer->get_wall(Timer::BOND);
@@ -58,12 +68,13 @@ void ImbalanceTime::compute(double *weight)
if ((allcost > 0.0) && (nlocal > 0)) {
const double avgcost = allcost/natoms;
const double localcost = cost/nlocal;
- const double scale = (1.0-_factor) + _factor*localcost/avgcost;
+ const double scale = (1.0-factor) + factor*localcost/avgcost;
for (int i = 0; i < nlocal; ++i) weight[i] *= scale;
}
+
// record time up to this point
- _last += cost;
- }
+
+ last += cost;
}
}
@@ -71,6 +82,5 @@ void ImbalanceTime::compute(double *weight)
void ImbalanceTime::info(FILE *fp)
{
- if (_factor > 0.0)
- fprintf(fp," time weight factor: %g\n",_factor);
+ fprintf(fp," time weight factor: %g\n",factor);
}
diff --git a/src/imbalance_time.h b/src/imbalance_time.h
index 78c5068a70..76ba9aa985 100644
--- a/src/imbalance_time.h
+++ b/src/imbalance_time.h
@@ -20,24 +20,22 @@ namespace LAMMPS_NS {
class ImbalanceTime : public Imbalance {
public:
- ImbalanceTime(LAMMPS *lmp) : Imbalance(lmp),_factor(0.0),_last(0.0) {};
- virtual ~ImbalanceTime() {};
+ ImbalanceTime(class LAMMPS *);
+ virtual ~ImbalanceTime() {}
- // internal data members
- private:
- double _factor; // weight factor for time imbalance
- double _last; // combined wall time from last call
-
- // required member functions
public:
- // parse options. return number of arguments consumed.
- virtual int options(int narg, char **arg);
- // reinitialize internal data (needed for fix balance)
- virtual void init() { _last = 0.0; };
+ // parse options, return number of arguments consumed
+ virtual int options(int, char **);
+ // reinitialize internal data
+ virtual void init();
// compute and apply weight factors to local atom array
- virtual void compute(double *weight);
+ virtual void compute(double *);
// print information about the state of this imbalance compute
- virtual void info(FILE *fp);
+ virtual void info(FILE *);
+
+ private:
+ double factor; // weight factor for time imbalance
+ double last; // combined wall time from last call
};
}
diff --git a/src/imbalance_var.cpp b/src/imbalance_var.cpp
index e9c9a3c911..81c7c4b354 100644
--- a/src/imbalance_var.cpp
+++ b/src/imbalance_var.cpp
@@ -12,25 +12,40 @@
------------------------------------------------------------------------- */
#include
-#include "pointers.h"
#include "imbalance_var.h"
#include "atom.h"
-#include "error.h"
#include "group.h"
#include "input.h"
#include "variable.h"
+#include "memory.h"
+#include "error.h"
+
+// DEBUG
+#include "update.h"
using namespace LAMMPS_NS;
+/* -------------------------------------------------------------------- */
+
+ImbalanceVar::ImbalanceVar(LAMMPS *lmp) : Imbalance(lmp), name(0) {}
+
+/* -------------------------------------------------------------------- */
+
+ImbalanceVar::~ImbalanceVar()
+{
+ delete [] name;
+}
+
+/* -------------------------------------------------------------------- */
+
int ImbalanceVar::options(int narg, char **arg)
{
- Error *error = _lmp->error;
-
if (narg < 1) error->all(FLERR,"Illegal balance weight command");
- int len = strlen(arg[0])+1;
- _name = new char[len];
- memcpy(_name,arg[0],len);
- this->init();
+
+ int len = strlen(arg[0]) + 1;
+ name = new char[len];
+ memcpy(name,arg[0],len);
+ init();
return 1;
}
@@ -39,17 +54,12 @@ int ImbalanceVar::options(int narg, char **arg)
void ImbalanceVar::init()
{
- Error *error = _lmp->error;
- Variable *variable = _lmp->input->variable;
-
- if (_name) {
- _id = variable->find(_name);
- if (_id < 0) {
- error->all(FLERR,"Variable name for balance weight does not exist");
- } else {
- if (variable->atomstyle(_id) == 0)
- error->all(FLERR,"Variable for balance weight has invalid style");
- }
+ id = input->variable->find(name);
+ if (id < 0) {
+ error->all(FLERR,"Variable name for balance weight does not exist");
+ } else {
+ if (input->variable->atomstyle(id) == 0)
+ error->all(FLERR,"Variable for balance weight has invalid style");
}
}
@@ -57,22 +67,22 @@ void ImbalanceVar::init()
void ImbalanceVar::compute(double *weight)
{
- if (_id >= 0) {
- const int all = _lmp->group->find("all");
- if (all < 0) return;
+ const int all = group->find("all");
+ if (all < 0) return;
- const int nlocal = _lmp->atom->nlocal;
- double *val = new double[nlocal];
- _lmp->input->variable->compute_atom(_id,all,val,1,0);
- for (int i = 0; i < nlocal; ++i) weight[i] *= val[i];
- delete[] val;
- }
+ double *values;
+ const int nlocal = atom->nlocal;
+ memory->create(values,nlocal,"imbalance:values");
+
+ input->variable->compute_atom(id,all,values,1,0);
+ for (int i = 0; i < nlocal; ++i) weight[i] *= values[i];
+
+ memory->destroy(values);
}
/* -------------------------------------------------------------------- */
void ImbalanceVar::info(FILE *fp)
{
- if (_id >= 0)
- fprintf(fp," weight variable: %s\n",_name);
+ fprintf(fp," weight variable: %s\n",name);
}
diff --git a/src/imbalance_var.h b/src/imbalance_var.h
index 43e2dfe849..16c59eb0de 100644
--- a/src/imbalance_var.h
+++ b/src/imbalance_var.h
@@ -20,24 +20,22 @@ namespace LAMMPS_NS {
class ImbalanceVar : public Imbalance {
public:
- ImbalanceVar(LAMMPS *lmp) : Imbalance(lmp), _name(0), _id(-1) {};
- virtual ~ImbalanceVar() { delete[] _name; };
+ ImbalanceVar(class LAMMPS *);
+ virtual ~ImbalanceVar();
- // internal data members
- private:
- char *_name; // variable name
- int _id; // variable ID
-
- // required member functions
public:
// parse options. return number of arguments consumed.
- virtual int options(int narg, char **arg);
+ virtual int options(int, char **);
// re-initialize internal data, e.g. variable ID
virtual void init();
// compute per-atom imbalance and apply to weight array
- virtual void compute(double *weight);
+ virtual void compute(double *);
// print information about the state of this imbalance compute (required)
- virtual void info(FILE *fp);
+ virtual void info(FILE *);
+
+ private:
+ char *name; // variable name
+ int id; // variable index
};
}
diff --git a/src/library.cpp b/src/library.cpp
index 8aa1d9978e..44e2c40782 100644
--- a/src/library.cpp
+++ b/src/library.cpp
@@ -38,6 +38,45 @@
using namespace LAMMPS_NS;
+/* ----------------------------------------------------------------------
+ Utility macros for optional code path which captures all exceptions
+ and stores the last error message. These assume there is a variable lmp
+ which is a pointer to the current LAMMPS instance.
+
+ Usage:
+
+ BEGIN_CAPTURE
+ {
+ // code paths which might throw exception
+ ...
+ }
+ END_CAPTURE
+------------------------------------------------------------------------- */
+
+#ifdef LAMMPS_EXCEPTIONS
+#define BEGIN_CAPTURE \
+ Error * error = lmp->error; \
+ try
+
+#define END_CAPTURE \
+ catch(LAMMPSAbortException & ae) { \
+ int nprocs = 0; \
+ MPI_Comm_size(ae.universe, &nprocs ); \
+ \
+ if (nprocs > 1) { \
+ error->set_last_error(ae.message.c_str(), ERROR_ABORT); \
+ } else { \
+ error->set_last_error(ae.message.c_str(), ERROR_NORMAL); \
+ } \
+ } catch(LAMMPSException & e) { \
+ error->set_last_error(e.message.c_str(), ERROR_NORMAL); \
+ }
+#else
+#define BEGIN_CAPTURE
+#define END_CAPTURE
+#endif
+
+
/* ----------------------------------------------------------------------
create an instance of LAMMPS and return pointer to it
pass in command-line args and MPI communicator to run on
@@ -45,8 +84,20 @@ using namespace LAMMPS_NS;
void lammps_open(int argc, char **argv, MPI_Comm communicator, void **ptr)
{
+#ifdef LAMMPS_EXCEPTIONS
+ try
+ {
+ LAMMPS *lmp = new LAMMPS(argc,argv,communicator);
+ *ptr = (void *) lmp;
+ }
+ catch(LAMMPSException & e) {
+ fprintf(stderr, "LAMMPS Exception: %s", e.message.c_str());
+ *ptr = (void*) NULL;
+ }
+#else
LAMMPS *lmp = new LAMMPS(argc,argv,communicator);
*ptr = (void *) lmp;
+#endif
}
/* ----------------------------------------------------------------------
@@ -68,8 +119,20 @@ void lammps_open_no_mpi(int argc, char **argv, void **ptr)
MPI_Comm communicator = MPI_COMM_WORLD;
+#ifdef LAMMPS_EXCEPTIONS
+ try
+ {
+ LAMMPS *lmp = new LAMMPS(argc,argv,communicator);
+ *ptr = (void *) lmp;
+ }
+ catch(LAMMPSException & e) {
+ fprintf(stderr, "LAMMPS Exception: %s", e.message.c_str());
+ *ptr = (void*) NULL;
+ }
+#else
LAMMPS *lmp = new LAMMPS(argc,argv,communicator);
*ptr = (void *) lmp;
+#endif
}
/* ----------------------------------------------------------------------
@@ -99,7 +162,12 @@ int lammps_version(void *ptr)
void lammps_file(void *ptr, char *str)
{
LAMMPS *lmp = (LAMMPS *) ptr;
- lmp->input->file(str);
+
+ BEGIN_CAPTURE
+ {
+ lmp->input->file(str);
+ }
+ END_CAPTURE
}
/* ----------------------------------------------------------------------
@@ -108,15 +176,16 @@ void lammps_file(void *ptr, char *str)
char *lammps_command(void *ptr, char *str)
{
- LAMMPS * lmp = (LAMMPS *) ptr;
- Error * error = lmp->error;
+ LAMMPS *lmp = (LAMMPS *) ptr;
+ char * result = NULL;
- try {
- return lmp->input->one(str);
- } catch(LAMMPSException & e) {
- error->set_last_error(e.message.c_str());
- return NULL;
+ BEGIN_CAPTURE
+ {
+ result = lmp->input->one(str);
}
+ END_CAPTURE
+
+ return result;
}
/* ----------------------------------------------------------------------
@@ -215,58 +284,62 @@ void *lammps_extract_compute(void *ptr, char *id, int style, int type)
{
LAMMPS *lmp = (LAMMPS *) ptr;
- int icompute = lmp->modify->find_compute(id);
- if (icompute < 0) return NULL;
- Compute *compute = lmp->modify->compute[icompute];
+ BEGIN_CAPTURE
+ {
+ int icompute = lmp->modify->find_compute(id);
+ if (icompute < 0) return NULL;
+ Compute *compute = lmp->modify->compute[icompute];
- if (style == 0) {
- if (type == 0) {
- if (!compute->scalar_flag) return NULL;
- if (compute->invoked_scalar != lmp->update->ntimestep)
- compute->compute_scalar();
- return (void *) &compute->scalar;
+ if (style == 0) {
+ if (type == 0) {
+ if (!compute->scalar_flag) return NULL;
+ if (compute->invoked_scalar != lmp->update->ntimestep)
+ compute->compute_scalar();
+ return (void *) &compute->scalar;
+ }
+ if (type == 1) {
+ if (!compute->vector_flag) return NULL;
+ if (compute->invoked_vector != lmp->update->ntimestep)
+ compute->compute_vector();
+ return (void *) compute->vector;
+ }
+ if (type == 2) {
+ if (!compute->array_flag) return NULL;
+ if (compute->invoked_array != lmp->update->ntimestep)
+ compute->compute_array();
+ return (void *) compute->array;
+ }
}
- if (type == 1) {
- if (!compute->vector_flag) return NULL;
- if (compute->invoked_vector != lmp->update->ntimestep)
- compute->compute_vector();
- return (void *) compute->vector;
+
+ if (style == 1) {
+ if (!compute->peratom_flag) return NULL;
+ if (type == 1) {
+ if (compute->invoked_peratom != lmp->update->ntimestep)
+ compute->compute_peratom();
+ return (void *) compute->vector_atom;
+ }
+ if (type == 2) {
+ if (compute->invoked_peratom != lmp->update->ntimestep)
+ compute->compute_peratom();
+ return (void *) compute->array_atom;
+ }
}
- if (type == 2) {
- if (!compute->array_flag) return NULL;
- if (compute->invoked_array != lmp->update->ntimestep)
- compute->compute_array();
- return (void *) compute->array;
- }
- }
-
- if (style == 1) {
- if (!compute->peratom_flag) return NULL;
- if (type == 1) {
- if (compute->invoked_peratom != lmp->update->ntimestep)
- compute->compute_peratom();
- return (void *) compute->vector_atom;
- }
- if (type == 2) {
- if (compute->invoked_peratom != lmp->update->ntimestep)
- compute->compute_peratom();
- return (void *) compute->array_atom;
- }
- }
-
- if (style == 2) {
- if (!compute->local_flag) return NULL;
- if (type == 1) {
- if (compute->invoked_local != lmp->update->ntimestep)
- compute->compute_local();
- return (void *) compute->vector_local;
- }
- if (type == 2) {
- if (compute->invoked_local != lmp->update->ntimestep)
- compute->compute_local();
- return (void *) compute->array_local;
+
+ if (style == 2) {
+ if (!compute->local_flag) return NULL;
+ if (type == 1) {
+ if (compute->invoked_local != lmp->update->ntimestep)
+ compute->compute_local();
+ return (void *) compute->vector_local;
+ }
+ if (type == 2) {
+ if (compute->invoked_local != lmp->update->ntimestep)
+ compute->compute_local();
+ return (void *) compute->array_local;
+ }
}
}
+ END_CAPTURE
return NULL;
}
@@ -300,40 +373,44 @@ void *lammps_extract_fix(void *ptr, char *id, int style, int type,
{
LAMMPS *lmp = (LAMMPS *) ptr;
- int ifix = lmp->modify->find_fix(id);
- if (ifix < 0) return NULL;
- Fix *fix = lmp->modify->fix[ifix];
+ BEGIN_CAPTURE
+ {
+ int ifix = lmp->modify->find_fix(id);
+ if (ifix < 0) return NULL;
+ Fix *fix = lmp->modify->fix[ifix];
- if (style == 0) {
- double *dptr = (double *) malloc(sizeof(double));
- if (type == 0) {
- if (!fix->scalar_flag) return NULL;
- *dptr = fix->compute_scalar();
- return (void *) dptr;
+ if (style == 0) {
+ double *dptr = (double *) malloc(sizeof(double));
+ if (type == 0) {
+ if (!fix->scalar_flag) return NULL;
+ *dptr = fix->compute_scalar();
+ return (void *) dptr;
+ }
+ if (type == 1) {
+ if (!fix->vector_flag) return NULL;
+ *dptr = fix->compute_vector(i);
+ return (void *) dptr;
+ }
+ if (type == 2) {
+ if (!fix->array_flag) return NULL;
+ *dptr = fix->compute_array(i,j);
+ return (void *) dptr;
+ }
}
- if (type == 1) {
- if (!fix->vector_flag) return NULL;
- *dptr = fix->compute_vector(i);
- return (void *) dptr;
+
+ if (style == 1) {
+ if (!fix->peratom_flag) return NULL;
+ if (type == 1) return (void *) fix->vector_atom;
+ if (type == 2) return (void *) fix->array_atom;
}
- if (type == 2) {
- if (!fix->array_flag) return NULL;
- *dptr = fix->compute_array(i,j);
- return (void *) dptr;
+
+ if (style == 2) {
+ if (!fix->local_flag) return NULL;
+ if (type == 1) return (void *) fix->vector_local;
+ if (type == 2) return (void *) fix->array_local;
}
}
-
- if (style == 1) {
- if (!fix->peratom_flag) return NULL;
- if (type == 1) return (void *) fix->vector_atom;
- if (type == 2) return (void *) fix->array_atom;
- }
-
- if (style == 2) {
- if (!fix->local_flag) return NULL;
- if (type == 1) return (void *) fix->vector_local;
- if (type == 2) return (void *) fix->array_local;
- }
+ END_CAPTURE
return NULL;
}
@@ -369,23 +446,27 @@ void *lammps_extract_variable(void *ptr, char *name, char *group)
{
LAMMPS *lmp = (LAMMPS *) ptr;
- int ivar = lmp->input->variable->find(name);
- if (ivar < 0) return NULL;
+ BEGIN_CAPTURE
+ {
+ int ivar = lmp->input->variable->find(name);
+ if (ivar < 0) return NULL;
- if (lmp->input->variable->equalstyle(ivar)) {
- double *dptr = (double *) malloc(sizeof(double));
- *dptr = lmp->input->variable->compute_equal(ivar);
- return (void *) dptr;
- }
+ if (lmp->input->variable->equalstyle(ivar)) {
+ double *dptr = (double *) malloc(sizeof(double));
+ *dptr = lmp->input->variable->compute_equal(ivar);
+ return (void *) dptr;
+ }
- if (lmp->input->variable->atomstyle(ivar)) {
- int igroup = lmp->group->find(group);
- if (igroup < 0) return NULL;
- int nlocal = lmp->atom->nlocal;
- double *vector = (double *) malloc(nlocal*sizeof(double));
- lmp->input->variable->compute_atom(ivar,igroup,vector,1,0);
- return (void *) vector;
+ if (lmp->input->variable->atomstyle(ivar)) {
+ int igroup = lmp->group->find(group);
+ if (igroup < 0) return NULL;
+ int nlocal = lmp->atom->nlocal;
+ double *vector = (double *) malloc(nlocal*sizeof(double));
+ lmp->input->variable->compute_atom(ivar,igroup,vector,1,0);
+ return (void *) vector;
+ }
}
+ END_CAPTURE
return NULL;
}
@@ -399,7 +480,14 @@ void *lammps_extract_variable(void *ptr, char *name, char *group)
int lammps_set_variable(void *ptr, char *name, char *str)
{
LAMMPS *lmp = (LAMMPS *) ptr;
- int err = lmp->input->variable->set_string(name,str);
+ int err = -1;
+
+ BEGIN_CAPTURE
+ {
+ err = lmp->input->variable->set_string(name,str);
+ }
+ END_CAPTURE
+
return err;
}
@@ -414,9 +502,14 @@ int lammps_set_variable(void *ptr, char *name, char *str)
double lammps_get_thermo(void *ptr, char *name)
{
LAMMPS *lmp = (LAMMPS *) ptr;
- double dval;
+ double dval = 0.0;
+
+ BEGIN_CAPTURE
+ {
+ lmp->output->thermo->evaluate_keyword(name,&dval);
+ }
+ END_CAPTURE
- lmp->output->thermo->evaluate_keyword(name,&dval);
return dval;
}
@@ -449,79 +542,83 @@ void lammps_gather_atoms(void *ptr, char *name,
{
LAMMPS *lmp = (LAMMPS *) ptr;
- // error if tags are not defined or not consecutive
+ BEGIN_CAPTURE
+ {
+ // error if tags are not defined or not consecutive
- int flag = 0;
- if (lmp->atom->tag_enable == 0 || lmp->atom->tag_consecutive() == 0) flag = 1;
- if (lmp->atom->natoms > MAXSMALLINT) flag = 1;
- if (flag) {
- if (lmp->comm->me == 0)
- lmp->error->warning(FLERR,"Library error in lammps_gather_atoms");
- return;
- }
-
- int natoms = static_cast (lmp->atom->natoms);
-
- int i,j,offset;
- void *vptr = lmp->atom->extract(name);
-
- // copy = Natom length vector of per-atom values
- // use atom ID to insert each atom's values into copy
- // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID
-
- if (type == 0) {
- int *vector = NULL;
- int **array = NULL;
- if (count == 1) vector = (int *) vptr;
- else array = (int **) vptr;
-
- int *copy;
- lmp->memory->create(copy,count*natoms,"lib/gather:copy");
- for (i = 0; i < count*natoms; i++) copy[i] = 0;
-
- tagint *tag = lmp->atom->tag;
- int nlocal = lmp->atom->nlocal;
-
- if (count == 1)
- for (i = 0; i < nlocal; i++)
- copy[tag[i]-1] = vector[i];
- else
- for (i = 0; i < nlocal; i++) {
- offset = count*(tag[i]-1);
- for (j = 0; j < count; j++)
- copy[offset++] = array[i][0];
- }
-
- MPI_Allreduce(copy,data,count*natoms,MPI_INT,MPI_SUM,lmp->world);
- lmp->memory->destroy(copy);
-
- } else {
- double *vector = NULL;
- double **array = NULL;
- if (count == 1) vector = (double *) vptr;
- else array = (double **) vptr;
-
- double *copy;
- lmp->memory->create(copy,count*natoms,"lib/gather:copy");
- for (i = 0; i < count*natoms; i++) copy[i] = 0.0;
-
- tagint *tag = lmp->atom->tag;
- int nlocal = lmp->atom->nlocal;
-
- if (count == 1) {
- for (i = 0; i < nlocal; i++)
- copy[tag[i]-1] = vector[i];
- } else {
- for (i = 0; i < nlocal; i++) {
- offset = count*(tag[i]-1);
- for (j = 0; j < count; j++)
- copy[offset++] = array[i][j];
- }
+ int flag = 0;
+ if (lmp->atom->tag_enable == 0 || lmp->atom->tag_consecutive() == 0) flag = 1;
+ if (lmp->atom->natoms > MAXSMALLINT) flag = 1;
+ if (flag) {
+ if (lmp->comm->me == 0)
+ lmp->error->warning(FLERR,"Library error in lammps_gather_atoms");
+ return;
}
- MPI_Allreduce(copy,data,count*natoms,MPI_DOUBLE,MPI_SUM,lmp->world);
- lmp->memory->destroy(copy);
+ int natoms = static_cast (lmp->atom->natoms);
+
+ int i,j,offset;
+ void *vptr = lmp->atom->extract(name);
+
+ // copy = Natom length vector of per-atom values
+ // use atom ID to insert each atom's values into copy
+ // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID
+
+ if (type == 0) {
+ int *vector = NULL;
+ int **array = NULL;
+ if (count == 1) vector = (int *) vptr;
+ else array = (int **) vptr;
+
+ int *copy;
+ lmp->memory->create(copy,count*natoms,"lib/gather:copy");
+ for (i = 0; i < count*natoms; i++) copy[i] = 0;
+
+ tagint *tag = lmp->atom->tag;
+ int nlocal = lmp->atom->nlocal;
+
+ if (count == 1)
+ for (i = 0; i < nlocal; i++)
+ copy[tag[i]-1] = vector[i];
+ else
+ for (i = 0; i < nlocal; i++) {
+ offset = count*(tag[i]-1);
+ for (j = 0; j < count; j++)
+ copy[offset++] = array[i][0];
+ }
+
+ MPI_Allreduce(copy,data,count*natoms,MPI_INT,MPI_SUM,lmp->world);
+ lmp->memory->destroy(copy);
+
+ } else {
+ double *vector = NULL;
+ double **array = NULL;
+ if (count == 1) vector = (double *) vptr;
+ else array = (double **) vptr;
+
+ double *copy;
+ lmp->memory->create(copy,count*natoms,"lib/gather:copy");
+ for (i = 0; i < count*natoms; i++) copy[i] = 0.0;
+
+ tagint *tag = lmp->atom->tag;
+ int nlocal = lmp->atom->nlocal;
+
+ if (count == 1) {
+ for (i = 0; i < nlocal; i++)
+ copy[tag[i]-1] = vector[i];
+ } else {
+ for (i = 0; i < nlocal; i++) {
+ offset = count*(tag[i]-1);
+ for (j = 0; j < count; j++)
+ copy[offset++] = array[i][j];
+ }
+ }
+
+ MPI_Allreduce(copy,data,count*natoms,MPI_DOUBLE,MPI_SUM,lmp->world);
+ lmp->memory->destroy(copy);
+ }
}
+ END_CAPTURE
}
/* ----------------------------------------------------------------------
@@ -538,69 +635,74 @@ void lammps_scatter_atoms(void *ptr, char *name,
{
LAMMPS *lmp = (LAMMPS *) ptr;
- // error if tags are not defined or not consecutive or no atom map
+ BEGIN_CAPTURE
+ {
+ // error if tags are not defined or not consecutive or no atom map
- int flag = 0;
- if (lmp->atom->tag_enable == 0 || lmp->atom->tag_consecutive() == 0) flag = 1;
- if (lmp->atom->natoms > MAXSMALLINT) flag = 1;
- if (lmp->atom->map_style == 0) flag = 1;
- if (flag) {
- if (lmp->comm->me == 0)
- lmp->error->warning(FLERR,"Library error in lammps_scatter_atoms");
- return;
- }
-
- int natoms = static_cast (lmp->atom->natoms);
-
- int i,j,m,offset;
- void *vptr = lmp->atom->extract(name);
-
- // copy = Natom length vector of per-atom values
- // use atom ID to insert each atom's values into copy
- // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID
-
- if (type == 0) {
- int *vector = NULL;
- int **array = NULL;
- if (count == 1) vector = (int *) vptr;
- else array = (int **) vptr;
- int *dptr = (int *) data;
-
- if (count == 1) {
- for (i = 0; i < natoms; i++)
- if ((m = lmp->atom->map(i+1)) >= 0)
- vector[m] = dptr[i];
- } else {
- for (i = 0; i < natoms; i++)
- if ((m = lmp->atom->map(i+1)) >= 0) {
- offset = count*i;
- for (j = 0; j < count; j++)
- array[m][j] = dptr[offset++];
- }
+ int flag = 0;
+ if (lmp->atom->tag_enable == 0 || lmp->atom->tag_consecutive() == 0) flag = 1;
+ if (lmp->atom->natoms > MAXSMALLINT) flag = 1;
+ if (lmp->atom->map_style == 0) flag = 1;
+ if (flag) {
+ if (lmp->comm->me == 0)
+ lmp->error->warning(FLERR,"Library error in lammps_scatter_atoms");
+ return;
}
- } else {
- double *vector = NULL;
- double **array = NULL;
- if (count == 1) vector = (double *) vptr;
- else array = (double **) vptr;
- double *dptr = (double *) data;
- if (count == 1) {
- for (i = 0; i < natoms; i++)
- if ((m = lmp->atom->map(i+1)) >= 0)
- vector[m] = dptr[i];
+ int natoms = static_cast (lmp->atom->natoms);
+
+ int i,j,m,offset;
+ void *vptr = lmp->atom->extract(name);
+
+ // copy = Natom length vector of per-atom values
+ // use atom ID to insert each atom's values into copy
+ // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID
+
+ if (type == 0) {
+ int *vector = NULL;
+ int **array = NULL;
+ if (count == 1) vector = (int *) vptr;
+ else array = (int **) vptr;
+ int *dptr = (int *) data;
+
+ if (count == 1) {
+ for (i = 0; i < natoms; i++)
+ if ((m = lmp->atom->map(i+1)) >= 0)
+ vector[m] = dptr[i];
+ } else {
+ for (i = 0; i < natoms; i++)
+ if ((m = lmp->atom->map(i+1)) >= 0) {
+ offset = count*i;
+ for (j = 0; j < count; j++)
+ array[m][j] = dptr[offset++];
+ }
+ }
} else {
- for (i = 0; i < natoms; i++) {
- if ((m = lmp->atom->map(i+1)) >= 0) {
- offset = count*i;
- for (j = 0; j < count; j++)
- array[m][j] = dptr[offset++];
+ double *vector = NULL;
+ double **array = NULL;
+ if (count == 1) vector = (double *) vptr;
+ else array = (double **) vptr;
+ double *dptr = (double *) data;
+
+ if (count == 1) {
+ for (i = 0; i < natoms; i++)
+ if ((m = lmp->atom->map(i+1)) >= 0)
+ vector[m] = dptr[i];
+ } else {
+ for (i = 0; i < natoms; i++) {
+ if ((m = lmp->atom->map(i+1)) >= 0) {
+ offset = count*i;
+ for (j = 0; j < count; j++)
+ array[m][j] = dptr[offset++];
+ }
}
}
}
}
+ END_CAPTURE
}
+#ifdef LAMMPS_EXCEPTIONS
/* ----------------------------------------------------------------------
Check if a new error message
------------------------------------------------------------------------- */
@@ -613,6 +715,9 @@ int lammps_has_error(void *ptr) {
/* ----------------------------------------------------------------------
Copy the last error message of LAMMPS into a character buffer
+ The return value encodes which type of error it is.
+ 1 = normal error (recoverable)
+ 2 = abort error (non-recoverable)
------------------------------------------------------------------------- */
int lammps_get_last_error_message(void *ptr, char * buffer, int buffer_size) {
@@ -620,9 +725,11 @@ int lammps_get_last_error_message(void *ptr, char * buffer, int buffer_size) {
Error * error = lmp->error;
if(error->get_last_error()) {
+ int error_type = error->get_last_error_type();
strncpy(buffer, error->get_last_error(), buffer_size-1);
- error->set_last_error(NULL);
- return 1;
+ error->set_last_error(NULL, ERROR_NONE);
+ return error_type;
}
return 0;
}
+#endif
diff --git a/src/library.h b/src/library.h
index 5cb128fdb9..e4dffc63d1 100644
--- a/src/library.h
+++ b/src/library.h
@@ -45,8 +45,10 @@ int lammps_get_natoms(void *);
void lammps_gather_atoms(void *, char *, int, int, void *);
void lammps_scatter_atoms(void *, char *, int, int, void *);
+#ifdef LAMMPS_EXCEPTIONS
int lammps_has_error(void *);
int lammps_get_last_error_message(void *, char *, int);
+#endif
#ifdef __cplusplus
}
diff --git a/src/version.h b/src/version.h
index 3f90b4fc5b..40ef405c35 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1 +1 @@
-#define LAMMPS_VERSION "21 Sep 2016"
+#define LAMMPS_VERSION "28 Sep 2016"
diff --git a/tools/ch2lmp/README b/tools/ch2lmp/README
index 62635b4e61..fa031bd757 100755
--- a/tools/ch2lmp/README
+++ b/tools/ch2lmp/README
@@ -13,33 +13,38 @@ In this directory, you should find:
In addition, you will need to provide the following input for
charmm2lammps.pl:
+
1) a CHARMM parameter file (par_.prm)
2) a CHARMM topology file (top_.rtf)
3) a CHARMM coordinates file or pdb file (.crd or .pdb)
+ (NOTE: a .pdb file is required if the -cmap option is used)
4) a CHARMM psf file (.psf)
To use the charmm2lammps.pl script, type: "perl charmm2lammps.pl
-[-option[=#]] " where is the name
-of the CHARMM FF you are using, (i.e. all22_prot), and is
-the common name of your *.crd and *.psf files. The options for the
-script are listed below. If the option requires a parameter, the
-syntax must be [-option[=#]], (i.e. -border=5).
+ [-option=value ...]" where is the
+name of the CHARMM FF you are using, (i.e. all22_prot), and
+is the common name of your *.crd and *.psf files. Possible options
+are listed next. If the option requires a parameter, the syntax
+should be -option=value (e.g. -border=5).
--help "display available options",
--nohints "disable adding type hints to the data file",
--water "add TIP3P water [default: 1 g/cc]",
--ions "add (counter)ions using Na+ and Cl- [default: 0 mol/l]",
--center "recenter atoms",
--quiet "do not print info",
--pdb_ctrl "output project_ctrl.pdb",
--l "set x-, y-, and z-dimensions simultaneously",
--lx "x-dimension of simulation box",
--ly "y-dimension of simulation box",
--lz "z-dimension of simulation box",
--border "add border to all sides of simulation box [default: 0 A]",
--ax "rotation around x-axis",
--ay "rotation around y-axis",
--az "rotation around z-axis"
+-help display available options
+-charmm add charmm types to LAMMPS data file
+-water add TIP3P water [default: 1 g/cc]
+-ions add (counter)ions using Na+ and Cl- [default: 0 mol/l]
+-center recenter atoms
+-quiet do not print info
+-pdb_ctrl output project_ctrl.pdb
+-l set x-, y-, and z-dimensions simultaneously
+-lx x-dimension of simulation box
+-ly y-dimension of simulation box
+-lz z-dimension of simulation box
+-border add border to all sides of simulation box [default: 0 A]
+-ax rotation around x-axis
+-ay rotation around y-axis
+-az rotation around z-axis
+-cd correction for dihedral for carbohydrate systems
+-cmap add CMAP section to data file and fix cmap command lines in
+ input script" (NOTE: requires use of *.pdb file)
In the "example" folder, you will find example files that were created
by following the steps below. These steps describe how to take a
@@ -64,26 +69,26 @@ file has to the corresponding names in the charmm FF files. You'll
need to add a "pdbalias residue x xnew" line for each change that
needs to be made. The *.pgn should contain something like this:
-package require psfgen
+package require psfgen
topology top_all27_na.rtf
-pdbalias residue A ADE
-pdbalias residue T THY
-pdbalias residue G GUA
-pdbalias residue C CYT
+pdbalias residue A ADE
+pdbalias residue T THY
+pdbalias residue G GUA
+pdbalias residue C CYT
.
.
.
-segment A {pdb 1ac7_pared.pdb}
-coordpdb 1ac7_pared.pdb A
-guesscoord
-writepdb 1ac7.pdb
-writepsf charmm 1ac7.psf
-exit
+segment A {pdb 1ac7_pared.pdb}
+coordpdb 1ac7_pared.pdb A
+guesscoord
+writepdb 1ac7.pdb
+writepsf charmm 1ac7.psf
+exit
5) Type "vmd -e 1ac7.pgn" to build the 1ac7.psf file, and the new
1ac7.pdb file.
-6) Run charmm2lammps.pl by typing:
+6) Run charmm2lammps.pl by typing:
"perl charmm2lammps.pl all27_na 1ac7 -charmm -border=1 -pdb_ctrl -water -ions"
7) Run lammps by typing: "lmp < 1ac7.in"
@@ -100,7 +105,22 @@ molecule. The -pdb_ctrl option produces the 1ac7_ctrl.pdb file that
can be visualized in a standard visualization package such as VMD. The
-charmm option put comments into the LAMMPS data file (everything
after the # sign is a comment) for user convenience in tracking atom
-types etc. according to CHARMM nomenclature.
+types etc. according to CHARMM nomenclature.
+
+The example molecule provided above (i.e., 1ac7) is a DNA fragment.
+If instead, a peptide longer than 2 amino acid residues or a protein
+is to be modeled, the '-cmap' option should be used. This will add a
+section at the end of the data file with the heading of 'CMAP' that
+will contain cmap crossterm corrections for the phi-psi dihedrals for
+the amino acid residues. You will then need to also copy the
+appropriate file for the cmap crossterms into your directory and be
+sure that you are using the appropriate cmap crossterms that go with
+the respective version of the charmm force field that is being used
+(e.g, cmap22.data or cmap36.data). This is necessary to account for
+the fact that the CHARMM group has provided updated cmap correction
+terms for use with the c36 and more recent version of the charmm
+protein force field. Copies of cmap22.data and cmap36.data are
+provided in the tools/ch2lmp directory.
The default timestep in the LAMMPS *.in file is set to 0.5 fs, which
can typically be increased to 2 fs after equilibration if the bonds
@@ -109,9 +129,9 @@ delay on neigh_modify can probably increased to 5 or so to improve
speed.
The -ions option allows the user to neutralize the simulation cell
-with Na+ or Cl- counterions if the molecule has a net
-charge. Additional salt can be added by increasing the default
-concentration (i.e. -ions=0.5).
+with Na+ or Cl- counterions if the molecule has a net charge
+Additional salt can be added by increasing the default concentration
+(e.g. -ions=0.5).
** In the "other" file folder, you will find:
@@ -126,5 +146,3 @@ concentration (i.e. -ions=0.5).
3) A 3rd party perl script called "crd2pdb.pl"
4) A 3rd party fortran code called "pdb_to_crd.f"
-
-
diff --git a/tools/ch2lmp/charmm2lammps.pl b/tools/ch2lmp/charmm2lammps.pl
index 8e43a06cab..0e39f589da 100644
--- a/tools/ch2lmp/charmm2lammps.pl
+++ b/tools/ch2lmp/charmm2lammps.pl
@@ -28,22 +28,43 @@
# 20050630 Fixed symbol issues arising from salt addition
# 20060818 Changed reading of pdb format to read exact columns
# 20070109 Changed AddMass() to use $max_id correctly
-# 20160114 Added compatibility for parameter files that use IMPROPERS instead of IMPROPER
-# Print warning when not all parameters are detected. Set correct number of atom types.
-# 20160613 Fix off-by-one issue in atom type validation check
-# Replace -charmm command line flag with -nohints flag
-# and enable type hints in data file by default.
-# Add hints also to section headers
-# Add a brief minimization to example input template.
+# 20130508 Added 'CMAP crossterms' section at the end of the data file
+# 20131001 Added instructions in CMAP section to fix problem if 'ter'
+# is not designated in .pdb file to identify last amino acid
#
# General Many thanks to Paul S. Crozier for checking script validity
# against his projects.
+#
+# ------------------------------------------------------------------------------
+# NOTE: This current version was modified by Xiaohu Hu (hux2@ornl.gov)
+# DATE: April, May 2009
+# Then finalized to complete addition of CMAP terms to data file
+# by Robert A. Latour, Clemson University (latourr@clemson.edu)
+# and Chris Lorenz, King's College (chris.lorenz@kcl.ac.uk)
+# DATE: May, 2013
+#
+# The original code of charmm2lammps.pl is modified
+#
+# 1. to fix the double-counting problem in 1-4 interaction associated
+# with the carbon-hydrate 6-rings containing systems. (See subroutine
+# DihedralCorrect6Ring, activated with the option "-cd")
+#
+# 2. to add a new section "CMAP" which is a list of the peptide
+# backbone dihedrals cross terms. A modifed LAMMPS version will be
+# needed to be able to use this feature. (See subroutine CharmmCmap,
+# activated with the option "-cmap")
+#
+# These subroutines are independent from the original charmm2lammps.pl, i.e.
+# the original code of charmm2lammps.pl is unchanged. The new routines only
+# evaluate and modify the output generated by the original charmm2lammps.pl.
+# -----------------------------------------------------------------------------
+
# Initialization
sub Test
{
- my $name = shift(@_);
+ my $name = shift(@_); # "@_" = argument passed to the subroutine
printf("Error: file %s not found\n", $name) if (!scalar(stat($name)));
return !scalar(stat($name));
@@ -54,11 +75,13 @@
{
my $k = 0;
my @dir = ("x", "y", "z");
- my @options = ("-help", "-nohints", "-water", "-ions", "-center",
+
+ # Modified by Xiaohu Hu, May 2009. Options "-cmap" and "-cdihedral" added
+ my @options = ("-help", "-charmm", "-water", "-ions", "-center",
"-quiet", "-pdb_ctrl", "-l", "-lx", "-ly", "-lz",
- "-border", "-ax", "-ay", "-az");
- my @remarks = ("display this message",
- "do not print type and style hints in data file",
+ "-border", "-ax", "-ay", "-az", "-cd", "-cmap");
+ my @remarks = ("display this message",
+ "add charmm types to LAMMPS data file",
"add TIP3P water [default: 1 g/cc]",
"add (counter)ions using Na+ and Cl- [default: 0 mol/l]",
"recenter atoms",
@@ -71,14 +94,20 @@
"add border to all sides of simulation box [default: 0 A]",
"rotation around x-axis",
"rotation around y-axis",
- "rotation around z-axis"
+ "rotation around z-axis",
+ "use the 6-ring dihedral correction",
+ "generate the CMAP section"
);
my $notes;
$program = "charmm2lammps";
- $version = "1.8.3";
- $year = "2016";
- $add = 1;
+# $version = "1.8.2.5 beta"; # Modified by Xiaohu Hu, Dec 2009
+ $version = "1.8.2.6 beta"; # Modified by Robert Latour & Chris Lorenz, May 2013
+# $year = "2009"; # Modified by Xiaohu Hu, April 2009
+ $year = "2013"; # Modified by Robert Latour & Chris Lorenz, May 2013
+ $cmap = 0; # Added by Xiaohu Hu, May 2009
+ $cdihedral = 0; # Added by Xiaohu Hu, May 2009
+ $add = 0;
$water_dens = 0;
$ions = 0;
$info = 1;
@@ -112,7 +141,7 @@
foreach (@ARGV)
{
- if (substr($_, 0, 1) eq "-")
+ if (substr($_, 0, 1) eq "-") # if the first letter of the aguement is "-" = an option
{
my $k = 0;
my @tmp = split("=");
@@ -123,23 +152,24 @@
last if ($tmp[0] eq substr($_, 0 , length($tmp[0])));
++$k;
}
- $help = 1 if (!$k--); # -help
- $add = 0 if (!$k--); # -nohints
- $water_dens = ($tmp[1] ne "" ? $tmp[1] : 1) if (!$k--); # -water
- $ion_molar = abs($tmp[1]) if (!$k); # -ions
- $ions = 1 if (!$k--); # ...
- $center = 1 if (!$k--); # -center
- $info = 0 if (!$k--); # -quiet
- $pdb_ctrl = $switch if (!$k--); # -pdb_ctrl
- my $flag = $k--; # -l
- $L[0] = abs($tmp[1]) if (!($flag && $k--)); # -lx
- $L[1] = abs($tmp[1]) if (!($flag && $k--)); # -ly
- $L[2] = abs($tmp[1]) if (!($flag && $k--)); # -lz
- $border = abs($tmp[1]) if (!$k--); # -border
- @R = M_Dot(M_Rotate(0, $tmp[1]), @R) if (!$k--);# -ax
- @R = M_Dot(M_Rotate(1, $tmp[1]), @R) if (!$k--);# -ay
- @R = M_Dot(M_Rotate(2, $tmp[1]), @R) if (!$k--);# -az
- print("Warning: ignoring unknown command line flag: $tmp[0]\n");
+ $help = 1 if (!$k--);
+ $add = 1 if (!$k--);
+ $water_dens = ($tmp[1] ne "" ? $tmp[1] : 1) if (!$k--);
+ $ion_molar = abs($tmp[1]) if (!$k);
+ $ions = 1 if (!$k--);
+ $center = 1 if (!$k--);
+ $info = 0 if (!$k--);
+ $pdb_ctrl = $switch if (!$k--);
+ my $flag = $k--;
+ $L[0] = abs($tmp[1]) if (!($flag && $k--));
+ $L[1] = abs($tmp[1]) if (!($flag && $k--));
+ $L[2] = abs($tmp[1]) if (!($flag && $k--));
+ $border = abs($tmp[1]) if (!$k--);
+ @R = M_Dot(M_Rotate(0, $tmp[1]), @R) if (!$k--);
+ @R = M_Dot(M_Rotate(1, $tmp[1]), @R) if (!$k--);
+ @R = M_Dot(M_Rotate(2, $tmp[1]), @R) if (!$k--);
+ $cdihedral = 1 if (!$k--); # Added by Xiaohu Hu, May 2009
+ $cmap = 1 if (!$k--); # Added by Xiaohu Hu, May 2009
}
else
{
@@ -150,7 +180,7 @@
$water_dens = 1 if ($ions && !$water_dens);
if (($k<2)||$help)
{
- printf("\n%s v%s (c)%s by Pieter J. in \'t Veld for SNL\n\n",
+ printf("\n%s v%s (c)%s by Pieter J. in \'t Veld for SNL\nwith 6-ring dihedral correction and CMAP added by X. Hu, 2009\n\n",
$program, $version, $year);
printf("Usage:\n %s.pl [-option[=#] ..] forcefield project\n\n",$program);
printf("Options:\n");
@@ -161,7 +191,7 @@
printf("\nNotes:\n%s\n", $notes);
exit(-1);
}
- else { printf("\n%s v%s (c)%s\n\n", $program, $version, $year) if ($info); }
+ else { printf("%s v%s (c)%s\n\n", $program, $version, $year) if ($info); }
my $flag = Test($Parameters = "par_$forcefield.prm");
$flag |= Test($Topology = "top_$forcefield.rtf");
$flag |= Test($Pdb = "$project.pdb")
@@ -300,7 +330,7 @@
sub PSFConnectivity
{
- my $n = PSFGoto(bonds);
+ my $n = PSFGoto(bonds); # $n = the total number of bonds
return if (scalar(@nconnect));
printf("Info: creating connectivity\n") if ($info);
@@ -312,7 +342,6 @@
}
}
-
sub PSFDihedrals # hack to accomodate
{ # LAMMPS' way of calc
$idihedral = 0; # LJ 1-4 interactions
@@ -343,7 +372,6 @@
return $ndihedral;
}
-
sub CreatePSFIndex # make an index of id
{ # locations
my @psf_ids = ("!NATOM","!NBOND:","!NTHETA:","!NPHI:","!NIMPHI:");
@@ -363,26 +391,24 @@
}
}
-
- sub PSFGoto # goto $ident in
+ sub PSFGoto # goto $ident in and return the total number of $ident
{
CreatePSFIndex() if (!scalar(%PSFIndex));
my $id = shift(@_);
- my @n = split(" ", $PSFIndex{$id});
+ my @n = split(" ", $PSFIndex{$id}); # = 1 if the $ident is found
@PSFBuffer = ();
# return PSFDihedrals() if ($id eq "dihedrals");
if (!scalar(@n))
{
printf("Warning: PSF index for $id not found\n");
- seek(PSF, 0, SEEK_END);
+ seek(PSF, 0, SEEK_END); # set file-handle position to the EOF
return -1;
}
seek(PSF, $n[0], SEEK_SET);
return $n[1];
}
-
sub PSFGet
{
if ($dihedral_flag)
@@ -400,7 +426,7 @@
}
- sub PSFWrite
+ sub PSFWrite
{
my $items = shift(@_);
my $n = $items;
@@ -516,14 +542,11 @@
sub Markers
{
- my %markers = (
- NONBONDED => '0',
- BONDS => '1',
- ANGLES => '2',
- DIHEDRALS => '3',
- IMPROPERS => '4',
- IMPROPER => '4'
- );
+ my %markers;
+ my $n = 0;
+
+ foreach ("NONBONDED", "BONDS", "ANGLES", "DIHEDRALS", "IMPROPER") {
+ $markers{$_} = $n++; }
return %markers;
}
@@ -613,7 +636,7 @@
{ #
my $mode = shift(@_); # bonded mode
return if (($mode>3)||($mode<0));
-
+
my $items = (2, 3, 4, 4)[$mode]; # items per entry
my $name = ("bond", "angle", "dihedral", "improper")[$mode];
my $read = 0;
@@ -688,7 +711,7 @@
sub SetScreeningFactor # set screening factor
{
- my $id = shift(@_);
+ my $id = shift(@_); # @_ has the form: ($variable, float no.)
my $value = shift(@_);
my $new = "";
@@ -702,7 +725,6 @@
$parms[$id] = $new;
}
-
sub CorrectDihedralParameters
{
my $n = PSFGoto(dihedrals);
@@ -713,15 +735,20 @@
my $first;
my $last;
- for (my $i=0; $i<$n; ++$i)
+ for (my $i=0; $i<$n; ++$i) # loop over all dihedrals
{
- my @bonded = PSFGet(4);
+ my @bonded = PSFGet(4);
my @tmp = ();
foreach (@bonded) { push(@tmp, $ids{$atom_types[$_]}); }
$id1 = $link{CreateID(@tmp)}-1;
$first = $bonded[0];
$last = $bonded[3];
+
if ($first>$last) { my $tmp = $first; $first = $last; $last = $tmp; }
+
+ # if the condition "$id2 = $hash{$hash_id = $first." ".$last}" is false, which means
+ # the id isn't in the hash, then it will be added, otherwise means this condition is
+ # true and the
if (($id2 = $hash{$hash_id = $first." ".$last}) eq "")
{
$hash{$hash_id} = $id1; # add id to hash
@@ -1010,7 +1037,7 @@
sub WriteLAMMPSHeader # print lammps header
{
- printf(LAMMPS "LAMMPS data file. CGCMM style. atom_style full. Created by $program v$version on %s\n", `date`);
+ printf(LAMMPS "Created by $program v$version on %s\n", `date`);
printf(LAMMPS "%12d atoms\n", $natoms);
printf(LAMMPS "%12d bonds\n", $nbonds);
printf(LAMMPS "%12d angles\n", $nangles);
@@ -1114,7 +1141,7 @@
{
my @xyz = V_Add(@p, @p_water[$i,$i+1,$i+2]);
@xyz = V_Add(@xyz, @Center) if (!$center);
- printf(LAMMPS "%8d %7d %5d %9.6g %11.8g %11.8g %11.8g%s\n",
+ printf(LAMMPS "%8d %7d %5d %9.6g %16.12g %16.12g %16.12g%s\n",
++$k, $res, $par[$j], $charge[$j], $xyz[0], $xyz[1],
$xyz[2], $add ? " # ".$types[$par[$j]-1] : "");
printf(PDB_CTRL "ATOM %6.6s %-4.4s %-3.3s %5.5s %3.3s ".
@@ -1164,7 +1191,7 @@
CRDGoto(atoms);
$net_charge = 0;
- printf(LAMMPS "Atoms # full\n\n") if ($n>0);
+ printf(LAMMPS "Atoms\n\n") if ($n>0);
for (my $i=0; $i<$n; ++$i)
{
my @crd = $pdb ? NextPDB2CRD() : split(" ", );
@@ -1172,7 +1199,7 @@
my @xyz = MV_Dot(@R, @crd[-6, -5, -4]);
@xyz = V_Subtr(@xyz, @Center) if ($center);
if ($crd[-2]!=$res[1]) { ++$res[0]; $res[1] = $crd[-2]; }
- printf(LAMMPS "%8d %7d %5d %9.6g %11.7g %11.7g %11.7g%s\n", ++$k,
+ printf(LAMMPS "%8d %7d %5d %9.6g %16.12g %16.12g %16.12g%s\n", ++$k,
$res[0], $link{$atom_types[$k]}, $psf[6], $xyz[0], $xyz[1], $xyz[2],
$add ? " # ".$types[$link{$atom_types[$k]}-1] : "");
printf(PDB_CTRL "ATOM %6.6s %-4.4s %-4.4s %4.4s %3.3s ".
@@ -1198,7 +1225,6 @@
{
my $mode = shift(@_)+1;
my $header = ("Pair","Bond","Angle","Dihedral","Improper")[$mode];
- my $hint = ("lj/charmm/coul/long", "harmonic", "charmm", "charmm", "harmonic")[$mode];
my $n = (4, 2, 4, 4, 2)[$mode];
my $k = 0;
@@ -1212,7 +1238,7 @@
@parms = Delete(1, @parms) if ($mode==3);
}
return 0 if (!scalar(@parms));
- printf(LAMMPS "%s Coeffs # %s\n\n", $header, $hint);
+ printf(LAMMPS "%s Coeffs\n\n", $header);
for (my $i=0; $i $natom_types) {
- print "Warning: $#types atom types present, but only $natom_types pair coeffs found\n";
- # reset to what is found while determining the number of atom types.
- $natom_types = $#types+1;
- }
$natoms = WriteAtoms();
$nbond_types = WriteParameters(0); # bonds
$nbonds = WriteBonded(0);
@@ -1428,15 +1449,29 @@
printf(LAMMPS "# Created by $program v$version on %s\n", `date`);
printf(LAMMPS "units real\n"); # general
printf(LAMMPS "neigh_modify delay 2 every 1\n\n");
+
+ printf(LAMMPS "boundary p p p\n\n");
printf(LAMMPS "atom_style full\n"); # styles
printf(LAMMPS "bond_style harmonic\n") if ($nbond_types);
printf(LAMMPS "angle_style charmm\n") if ($nangle_types);
printf(LAMMPS "dihedral_style charmm\n") if ($ndihedral_types);
printf(LAMMPS "improper_style harmonic\n\n") if ($nimproper_types);
- printf(LAMMPS "pair_style lj/charmm/coul/long 8 10\n");
+ printf(LAMMPS "# if cutoffs to be used for electrostatics, use pair_style lj/charmmfsw/coul/charmmfsh\n");
+ printf(LAMMPS "# and delete or comment out kspace_style\n");
+ printf(LAMMPS "pair_style lj/charmm/coul/long 8 12\n");
printf(LAMMPS "pair_modify mix arithmetic\n");
printf(LAMMPS "kspace_style pppm 1e-4\n\n");
- printf(LAMMPS "read_data $project.data\n\n"); # read data
+
+ if ($cmap) {
+ printf(LAMMPS "# Modify following lines to provide directory path cmap.data and 'project'.data files\n");
+ printf(LAMMPS "fix cmap all cmap /directoryPath/.../cmap36.data\n");
+ printf(LAMMPS "fix_modify cmap energy yes\n");
+ printf(LAMMPS "read_data /directoryPath/.../$project.data fix cmap crossterm CMAP\n\n");
+ }else{
+ printf(LAMMPS "# Modify following line to provide directory path for 'project'.data file\n");
+ printf(LAMMPS "read_data /directoryPath/.../$project.data\n\n"); # read data
+ }
+
if ($coefficients ne "") # corrected coeffs
{
foreach (split(":", $coefficients))
@@ -1446,16 +1481,15 @@
printf(LAMMPS "\n");
}
printf(LAMMPS "special_bonds charmm\n"); # invoke charmm
- printf(LAMMPS "thermo 1\n"); # set thermo style
- printf(LAMMPS "thermo_style multi\n");
- printf(LAMMPS "timestep 0.5\n\n"); # 0.5 ps time step
- printf(LAMMPS "minimize 0.0 0.0 1000 10000\n\n"); # take off the edge
printf(LAMMPS "fix 1 all nve\n");
printf(LAMMPS "fix 2 all shake 1e-6 500 0 m 1.0\n")
if ($shake eq ""); # shake all H-bonds
printf(LAMMPS "fix 2 all shake 1e-6 500 0 m 1.0 a %s\n",$shake)
if ($shake ne ""); # add water if present
printf(LAMMPS "velocity all create 0.0 12345678 dist uniform\n\n");
+ printf(LAMMPS "thermo 1\n"); # set thermo style
+ printf(LAMMPS "thermo_style multi\n");
+ printf(LAMMPS "timestep 0.5\n\n"); # 0.5 ps time step
printf(LAMMPS "restart 10 $project.restart1 $project.restart2\n");
printf(LAMMPS "dump 1 all atom 10 $project.dump\n");
printf(LAMMPS "dump_modify 1 image yes scale yes\n\n");
@@ -1463,6 +1497,972 @@
close(LAMMPS);
}
+ # ------------------ DESCRIPTION: sub DihedralCorrect6Ring ------------------ #
+ # #
+ # This subroutine is a subsequent correction of the dihedral 1-4 non-bonded #
+ # interaction scaling factor in the LAMMPS data file. The problem occurs in #
+ # dealing with carbohydrate systems, when some dihedrals outside of a 6-ring #
+ # are incorrectly assigned to the same dihedral type as dihedrals within a #
+ # 6-ring. Thus, those dihedrals outside of a 6-ring will be treated with a #
+ # 1-4 non-bonded interaction scaling factor of 0.5 instead of 1. #
+ # #
+ # By: Xiaohu Hu (hux2@ornl.gov) #
+ # #
+ # April 2009 #
+ # #
+ # --------------------------------------------------------------------------- #
+
+sub DihedralCorrect6Ring
+{
+ print "\nINITIATE DIHEDRAL CORRECTION...\n\n";
+ ## Variables for general data
+ # arrays
+ my @temp_data1;
+ my @temp_data2;
+ my @dihedral_coeffs;
+ my @dihedral_list;
+ my @raw_data;
+ my @temp1;
+ my @temp2;
+ my @temp3;
+ my @ring_dihe_list;
+ my @ring_dihetype_list;
+
+ # integers
+ my $counter1 = 0;
+ my $counter2 = 0;
+ my $net_ndihedral = 0;
+ my $net_ndihedral_types = 0;
+ my $splice_onset_dihe = 0;
+ my $splice_onset_dihe_coeff = 0;
+ my $n;
+ my $ntyp;
+
+ # matrix
+ my @dihedral_matrix;
+ my @dihedral_coeff_matrix;
+ my @new_dihedral_coeff_matrix;
+ my @new_dihedral_matrix;
+
+ ## Variables for dihedral matrix data
+ # "Dihedral Coeffs"
+ my $dihedral_type_c;
+ my $amp;
+ my $period;
+ my $equ_val;
+ my $scaling;
+
+ # "Dihedrals"
+ my $dihedral_no;
+ my $dihedral_type_l;
+ my $atom_1_no;
+ my $atom_2_no;
+ my $atom_3_no;
+ my $atom_4_no;
+
+# ------------- Reread the previously generated LAMMPS data file --------------------
+
+ open(LAMMPS, "< $project.data") or
+ die "\"sub DihedralCorrect6Ring\" cannot open \"$project.data!\n";
+ print "Analysing \"$project.data\"...\n\n";
+ @raw_data = ;
+ close(LAMMPS);
+
+ # Find the number of dihedrals and dihedral types and the sections "Dihedrals"
+ # and "Dihedral Coeffs" in LAMMPS data file
+ foreach $line (@raw_data) {
+ $counter1++;
+ chomp($line);
+ if ($line =~ m/dihedrals/) {
+ ($n,$string) = split(" ",$line);
+ print "$n dihedrals\n";
+ }
+ if ($line =~ m/dihedral types/) {
+ ($ntyp,$string) = split(" ",$line);
+ print "$ntyp dihedral types\n";
+ }
+ if ($line =~ m/Dihedral Coeffs/) {
+ print "Section \"Dihedrals\" found\n";
+ $splice_onset_dihe_coeff = $counter1;
+ }
+ if ($line =~ m/Dihedrals/) {
+ print "Section \"Dihedral Coeffs\" found\n";
+ $splice_onset_dihe = $counter1;
+ }
+ }
+ if ($splice_onset_dihe_coeff == 0 and $splice_onset_dihe == 0) {
+ print "\nNo dihedral data in \"$project.data\", no dihedral correction necessary\n";
+ return;
+ }
+ elsif ($splice_onset_dihe_coeff == 0 or $splice_onset_dihe == 0) {
+ print "\nDihedral data incomplete! Dihedral correction impossible\n";
+ return;
+ }
+
+
+# --------------- Transform the raw data into matrices -----------------------
+
+ @temp_data1 = @temp_data2 = @raw_data;
+
+ #Store the section "Dihedral Coeffs" into a new list
+ @dihedral_coeffs = splice(@temp_data1,$splice_onset_dihe_coeff,$ntyp+1);
+
+ # Transfer the data from "@dihedral_coeffs" (an array of strings)
+ # into "@dihedral_coeff_matrix" (a 6 x $n matrix of integers)
+ for (@dihedral_coeffs) {
+ ($dihedral_type_c,
+ $amp,
+ $period,
+ $equ_val,
+ $scaling) = split(" ");
+
+ push(@dihedral_coeff_matrix,
+ [$dihedral_type_c,
+ $amp,
+ $period,
+ $equ_val,
+ $scaling]);
+ }
+
+ # Store the section "Dihedrals" into a new list
+ @dihedral_list = splice(@temp_data2,$splice_onset_dihe,$n+1);
+
+ # Transfer the data from "@dihedral_list" (an array of strings)
+ # into "@dihedral_matrix" (a 6 x $n matrix of integers)
+ for (@dihedral_list) {
+ ($dihedral_no,
+ $dihedral_type_l,
+ $atom_no_1,
+ $atom_no_2,
+ $atom_no_3,
+ $atom_no_4) = split(" ");
+
+ push(@dihedral_matrix,
+ [$dihedral_no,
+ $dihedral_type_l,
+ $atom_no_1,
+ $atom_no_2,
+ $atom_no_3,
+ $atom_no_4]);
+ }
+
+ for (my $i = 1; $i < $n; $i++) {
+ my $cur_type = ${$dihedral_matrix[$i]}[1];
+ if ($cur_type == 1 or
+ $cur_type == 16 or
+ $cur_type == 34 or
+ $cur_type == 46 or
+ $cur_type == 58 or
+ $cur_type == 64) {
+ push(@list,$cur_type);
+ }
+ }
+ @list = sort {$a <=> $b} @list;
+ #print "@list\n";
+ #print "Total: $#list\n";
+
+# ------------------ Reformat the matrices -------------------------------
+
+ # Loop the dihedral coefficient matrix and throw away all elements
+ # with a zero scaling factor (= entries with periodicity != 1)
+ for (my $i = 1; $i < $ntyp; $i++) {
+ my $current_sf = ${$dihedral_coeff_matrix[$i]}[4];
+ if ($current_sf != 0) {
+ push(@new_dihedral_coeff_matrix,
+ [${$dihedral_coeff_matrix[$i]}[0],
+ ${$dihedral_coeff_matrix[$i]}[1],
+ ${$dihedral_coeff_matrix[$i]}[2],
+ ${$dihedral_coeff_matrix[$i]}[3],
+ ${$dihedral_coeff_matrix[$i]}[4]]);
+ $net_ndihedral_types++;
+ }
+ }
+
+ # Remove the duplicated dihedrals from the @dihedral_matrix and save
+ # results into @new_dihedral_matrix
+ push(@new_dihedral_matrix,
+ [${$dihedral_matrix[1]}[0],
+ ${$dihedral_matrix[1]}[1],
+ ${$dihedral_matrix[1]}[2],
+ ${$dihedral_matrix[1]}[3],
+ ${$dihedral_matrix[1]}[4],
+ ${$dihedral_matrix[1]}[5]]);
+ $net_ndihedral = 1;
+ for (my $i = 2; $i < $n; $i++) {
+ if (${$dihedral_matrix[$i]}[2] != ${$dihedral_matrix[$i-1]}[2] or
+ ${$dihedral_matrix[$i]}[3] != ${$dihedral_matrix[$i-1]}[3] or
+ ${$dihedral_matrix[$i]}[4] != ${$dihedral_matrix[$i-1]}[4] or
+ ${$dihedral_matrix[$i]}[5] != ${$dihedral_matrix[$i-1]}[5]) {
+ push(@new_dihedral_matrix,
+ [${$dihedral_matrix[$i]}[0],
+ ${$dihedral_matrix[$i]}[1],
+ ${$dihedral_matrix[$i]}[2],
+ ${$dihedral_matrix[$i]}[3],
+ ${$dihedral_matrix[$i]}[4],
+ ${$dihedral_matrix[$i]}[5]]);
+ $net_ndihedral++;
+ }
+ }
+
+ # Print out the matrix
+ # my $ref_line;
+ # my $column;
+ # print "New dihedral list:\n";
+ # foreach $ref_line (@new_dihedral_matrix) {
+ # foreach $column (@$ref_line) {
+ # print "$column "
+ # }
+ # print "\n";
+ # }
+
+# --------------- Seach for the wrong scaling factors ----------------------------
+
+ # Loop through the dihedral matrix to determine the dihedrals within
+ # a 6-ring. Note there is some duplication in this approach due to
+ # processing already processed dihedrals. This will be taken care of
+ # later.
+ #
+ # NOTE: @ringlist contains the dihedrals types which corresponds to
+ # dihedrals within a 6-ring system.
+ #
+ my $n6ring = 0;
+ for (my $i = 1; $i < $net_ndihedral; $i++) {
+ my $current_i = ${$new_dihedral_matrix[$i]}[2];
+ my $current_l = ${$new_dihedral_matrix[$i]}[5];
+ for (my $j = $i + 1; $j < $net_ndihedral; $j++) {
+ if ( ($current_i == ${$new_dihedral_matrix[$j]}[2] and
+ $current_l == ${$new_dihedral_matrix[$j]}[5]) or
+ ($current_i == ${$new_dihedral_matrix[$j]}[5] and
+ $current_l == ${$new_dihedral_matrix[$j]}[2]) ) {
+ push(@temp2,${$new_dihedral_matrix[$i]}[0]);
+ push(@temp2,${$new_dihedral_matrix[$j]}[0]);
+ push(@temp3,${$new_dihedral_matrix[$i]}[1]);
+ push(@temp3,${$new_dihedral_matrix[$j]}[1]);
+ $n6ring++;
+ }
+ }
+ }
+
+ if ($n6ring == 0) {
+ print "\nNo dihedrals within 6-ring structure found. No correction necessary.\n";
+ return;
+ }
+
+ # Sort the lists according to the numerical order
+ @ring_dihe_list = sort {$a <=> $b} @temp2;
+ @ring_dihetype_list = sort {$a <=> $b} @temp3;
+
+ # Remove the dups
+ my %seen1;
+ for (my $i = 0; $i <= $#ring_dihe_list;) {
+ splice @ring_dihe_list, --$i, 1
+ if $seen1 {$ring_dihe_list[$i++]}++;
+ }
+
+ my %seen2;
+ for (my $i = 0; $i <= $#ring_dihetype_list;) {
+ splice @ring_dihetype_list, --$i, 1
+ if $seen1 {$ring_dihetype_list[$i++]}++;
+ }
+
+ print "6-ring dihedral types:\n";
+ print "@ring_dihetype_list\n";
+ print "6-ring dihedrals:\n";
+ print "@ring_dihe_list\n";
+
+ # Locate the wrong dihedrals in the dihedral list. Criteria to be wrong:
+ # if the type of the dihedral is equal to one from the list @ring_dihetype_list
+ # but not one from the @ring_dihe_list
+ my @errorlist;
+ my @errortypes;
+ my @raw_errortypes;
+ my $dihe_flag = 0;
+
+ for (my $i = 1; $i < $n; $i++) {
+ my $cur_dihe = ${dihedral_matrix[$i]}[0];
+ my $cur_type = ${dihedral_matrix[$i]}[1];
+
+ for (my $j = 0; $j <= $#ring_dihetype_list; $j++) {
+ if ($cur_type == $ring_dihetype_list[$j]) {
+ for (my $k = 0; $k <= $#ring_dihe_list; $k++) {
+ if ($cur_dihe == $ring_dihe_list[$k]) {
+ $dihe_flag++;
+ }
+ }
+ }
+ }
+
+ if ($dihe_flag == 0) {
+ for (my $j = 0; $j <= $#ring_dihetype_list; $j++) {
+ if ($cur_type == $ring_dihetype_list[$j]) {
+ push(@errorlist,$cur_dihe);
+ push(@raw_errortypes,$cur_type);
+ $counter2++;
+ }
+ }
+ }
+
+ $dihe_flag = 0;
+ }
+
+ if ($counter2 == 0) {
+ print "\nNo mis-assigned dihedrals found. No correction necessary.\n";
+ return;
+ }
+
+ print "mis-assigned dihedral/s found: $counter2\n";
+ print "@errorlist\n";
+ # print "@raw_errortypes\n";
+
+ # Sort the @errortypes and remove dups
+ @errortypes = sort {$a <=> $b} @raw_errortypes;
+ my %seen4;
+ for (my $i = 0; $i <= $#errortypes;) {
+ splice @errortypes, --$i, 1
+ if $seen4 {$errortypes[$i++]}++;
+ }
+
+ print "associated dihedral type/s\n";
+ print "@errortypes\n";
+
+# ------------ Add new dihedral types for the mis-assigned dihedrals -----------
+
+ print "\nWriting \"corrected_$project.data\"...\n\n";
+ open(REWRITE,"> corrected_$project.data")
+ or die "Can not write file \"corrected_$project.data\"!\n";
+
+ my $counter3 = 0;
+ my $fix_start = $splice_onset_dihe_coeff + $ntyp + 1;
+ my $new_ntyp = $ntyp + $#errortypes +1;
+
+ foreach $line (@raw_data) {
+ # update header information
+ if ($line =~ m/dihedral types/) {
+ $line =~ s/$ntyp/$new_ntyp/;
+ }
+
+ $counter3++;
+ printf(REWRITE "$line\n");
+ if ($counter3 == $fix_start) { last }
+ }
+
+ my @newtypes;
+ for (my $i = 0; $i <= $#errortypes; $i++) {
+ $ntyp++;
+ printf(REWRITE "%8d %10.7g %10d %10d 1\n",
+ $ntyp,
+ ${$dihedral_coeff_matrix[$errortypes[$i]]}[1],
+ ${$dihedral_coeff_matrix[$errortypes[$i]]}[2],
+ ${$dihedral_coeff_matrix[$errortypes[$i]]}[3]);
+ print "New dihedral type $ntyp added\n";
+ push(@newtypes,$ntyp);
+ }
+
+# ------------ Assign the wrong dihedrals with the new types ----------------
+
+ print "\nCorrecting the mis-assigned dihedrals...\n\n";
+
+ printf(REWRITE "$raw_data[$splice_onset_dihe - 2]\n");
+ printf(REWRITE "$raw_data[$splice_onset_dihe - 1]\n");
+
+ # Overwrite the wrong dihedrals in the dihedral list (section "Dihedrals")
+ my $counter3 = -1;
+ my $write_flag = 0;
+ my @temp_line;
+
+ for ($j = $splice_onset_dihe; $j <= $#raw_data; $j++) {
+ $counter3++;
+ for (my $i = 0; $i <= $#errorlist; $i++) {
+ if ($counter3 == $errorlist[$i]) {
+ @temp_line = split(" ",$raw_data[$j]);
+ for (my $k = 0; $k <= $#errortypes; $k++) {
+ if ($temp_line[1] == $errortypes[$k]) {
+ printf(REWRITE "%8d %7d %7d %7d %7d %7d\n",
+ ${$dihedral_matrix[$errorlist[$i]]}[0],
+ $newtypes[$k],
+ ${$dihedral_matrix[$errorlist[$i]]}[2],
+ ${$dihedral_matrix[$errorlist[$i]]}[3],
+ ${$dihedral_matrix[$errorlist[$i]]}[4],
+ ${$dihedral_matrix[$errorlist[$i]]}[5]);
+ print "Dihedral No. ${$dihedral_matrix[$errorlist[$i]]}[0] corrected\n";
+ $write_flag = 1;
+ }
+ }
+ }
+ }
+ if ($write_flag == 0) { printf(REWRITE "$raw_data[$j]\n");}
+ $write_flag = 0;
+ }
+
+ print "\nDONE!\n";
+
+ close(REWRITE);
+
+# End of the subroutine
+}
+
+# ----------------------- DESCRIPTION: sub CharmmCmap ------------------------ #
+# This subroutine add a new section "CMAP" to the LAMMPS data file, which #
+# a part of the implementation of "CHARMM CMAP" (see references) in LAMMPS. #
+# The section "CMAP" contains a list of dihedral ID pairs from adjecent #
+# peptide backtone dihedrals whose dihedral angles are corrresponding to PHI #
+# and PSI. (PHI: C--N--C_aphla_C and PSI: N--C_alpha--C--N) #
+# #
+# By: Xiaohu Hu (hux2@ornl.gov) #
+# May 2009 #
+# #
+# Modified May 2013 by: Robert Latour (latourr@clemson.edu) and #
+# Chris Lorenz (chris.lorenz@kcl.ac.uk #
+# #
+# References: #
+# - MacKerell, A.D., Jr., Feig, M., Brooks, C.L., III, Improved Treatment of #
+# Protein Backbone Conformational in Empirical Force Fields, J. Am. Chem. #
+# Soc. 126(2004): 698-699. #
+# - MacKerell, A.D., Jr., Feig, M., Brooks, C.L., III, Extending the Treatment #
+# of Backbone Energetics in Protein Force Fields: Limitations of Gas-Phase #
+# Quantum Mechnacis in Reproducing Protein Conformational Distributions in #
+# Molecular Dynamics Simulations, J. Comput. Chem. 25(2004): 1400-1415. #
+# ---------------------------------------------------------------------------- #
+
+sub CharmmCmap
+{
+ print "\nINITIATING CHARMM CMAP SUBROUTINE...\n\n";
+
+ # Reread and analyse $project.data
+ my @raw_data;
+ open(LAMMPS, "< $project.data") or
+ die "\"sub CharmmCmap()\" cannot open \"$project.data!\n";
+ print "Analyzing \"$project.data\"...\n\n";
+ @raw_data = ;
+ close(LAMMPS);
+
+ # Locate and extract the sections "Masses" and "Atoms"
+ my $line_number = 0;
+ # Header infos, 0 by default
+ my $natom_types = 0;
+ my $natom_number = 0;
+ my $ndihedral_number = 0;
+ my $temp_string;
+ # splice points, 0 by default
+ my $splice_onset_masses = 0;
+ my $splice_onset_atoms = 0;
+ my $splice_onset_dihedrals = 0;
+
+ foreach my $line (@raw_data) {
+ $line_number++;
+ chomp($line);
+ # Extract useful informations from the header
+ if ($line =~ m/atom types/) {
+ ($natom_types,$temp_string) = split(" ",$line);
+ if ($natom_types == 0) {
+ die "\nError: Number of atom types is 0!\n";
+ }
+ print "Total atom types: $natom_types\n";
+ }
+ if ($line =~ m/atoms/) {
+ ($natom_number,$temp_string) = split(" ",$line);
+ if ($natom_number == 0) {
+ die "\nError: Number of atoms is 0!\n";
+ }
+ print "Total atoms: $natom_number\n";
+ }
+ if ($line =~ m/dihedrals/) {
+ ($ndihedral_number,$temp_string) = split(" ",$line);
+ if ($ndihedral_number == 0) {
+ die "\nError: Number of dihedrals is 0\n";
+ }
+ print "Total dihedrals: $ndihedral_number\n";
+ }
+ # Locate and data from sections "Masses", "Atoms" and "Dihedrals"
+ if ($line =~ m/Masses/) {
+ $splice_onset_masses = $line_number + 1;
+ if ($splice_onset_masses-1 == 0) {
+ die "\nError: Can not find the section \"Masses\"\n";
+ }
+ print "Section \"Masses\" found: line $splice_onset_masses\n";
+ }
+ if ($line =~ m/Atoms/) {
+ $splice_onset_atoms = $line_number +1;
+ if ($splice_onset_atoms-1 == 0) {
+ die "\nError: Can not find the section \"Atoms\"\n";
+ }
+ print "Section \"Atoms\" found: line $splice_onset_atoms\n";
+ }
+ if ($line =~ m/Dihedrals/) {
+ $splice_onset_dihedrals = $line_number + 1;
+ if ($splice_onset_dihedrals-1 == 0) {
+ die "\nError: Can not find the section \"Dihedrals\"\n";
+ }
+ print "Section \"Dihedrals\" found: line $splice_onset_dihedrals\n";
+ }
+ }
+
+ print "\nGenerating PHI/PSI dihedral pair list...\n\n";
+
+ my @temp1 = @raw_data;
+ my @temp2 = @raw_data;
+ my @temp3 = @raw_data;
+
+ # Extract the section "Masses", "Atoms" and "Dihedrals"
+ my @temp_masses_data = splice(@temp1,$splice_onset_masses,$natom_types);
+ my @temp_atoms_data = splice(@temp2,$splice_onset_atoms,$natom_number);
+ my @temp_dihedrals_data = splice(@temp3,$splice_onset_dihedrals,$ndihedral_number);
+
+ # Store @temp_masses_dat into a matrix
+ my @masses_matrix;
+ my $atom_type;
+ my $mass;
+ for (@temp_masses_data) {
+ ($atom_type, $mass) = split(" ");
+ push(@masses_matrix,[$atom_type,$mass]);
+ }
+
+ # Store @temp_atoms_data into a matrix
+ my @atoms_matrix;
+ my $atom_ID;
+ my $molecule_ID;
+ my $atype;
+ my $charge;
+ my $atom_x_coor;
+ my $atom_y_coor;
+ my $atom_z_coor;
+ for (@temp_atoms_data) {
+ ($atom_ID,$molecule_ID,$atype,$charge,$atom_x_coor,$atom_y_coor,$atom_z_coor) = split(" ");
+ push(@atoms_matrix,
+ [$atom_ID,$molecule_ID,$atype,$charge,$atom_x_coor,$atom_y_coor,$atom_z_coor]);
+ }
+
+ # Store @temp_dihedrals_data into a matrix
+ my @dihedrals_matrix;
+ my $dihedral_ID;
+ my $dihedtal_type;
+ my $dihe_atom1;
+ my $dihe_atom2;
+ my $dihe_atom3;
+ my $dihe_atom4;
+ for (@temp_dihedrals_data) {
+ ($dihedral_ID,$dihedral_type,$dihe_atom1,$dihe_atom2,$dihe_atom3,$dihe_atom4) = split(" ");
+ push(@dihedrals_matrix,
+ [$dihedral_ID,$dihedral_type,$dihe_atom1,$dihe_atom2,$dihe_atom3,$dihe_atom4]);
+ }
+
+ # Find out and extract the peptide backbone dihedrals
+ #
+ # Definitions of peptide backbone dihedrals
+ #
+ # For dihedral angle PHI: C--N--CA--C
+ # For dihedral angle PSI: N--CA--C--N
+ #
+ # ---------------------------------------------------------
+ # atom | mass |partial charge| amino-acid
+ # ---------------------------------------------------------
+ # C | 12.011 | 0.51 | all except GLY and PRO
+ # N | 14.007 | -0.29 | PRO
+ # N | 14.007 | -0.47 | all except PRO
+ # CA | 12.011 | 0.07 | all except GLY and PRO
+ # CA | 12.011 | -0.02 | GLY
+ # CA | 12.011 | 0.02 | PRO
+ # ---------------------------------------------------------
+ #
+ # Peptide backbone
+ # ...
+ # /
+ # O=C
+ # \
+ # N-H
+ # / -----> PHI (C-N-CA-C)
+ # H-CA-R
+ # \ -----> PSI (N-CA-C-N)
+ # C=O
+ # /
+ # H-N
+ # \
+ # ...
+ #
+ # Criteria to be a PHI/PSI dihedral pair:
+ # 1. Atoms have to match with the mass/charge constellations as
+ # defined above.
+ # 2. The atoms N--CA--C needs to be covalently bonded with each
+ # other.
+
+ # Find which types do C, N and CA correspond to and store them
+ # in lists
+ my $mass_carbon = 12.011;
+ my $mass_nitrogen = 14.007;
+
+ my @carbon_list;
+ my @nitrogen_list;
+ my $carbon_counter = 0;
+ my $nitrogen_counter = 0;
+
+ for (my $i = 0; $i < $natom_types; $i++) {
+ if (${$masses_matrix[$i]}[1] == $mass_carbon) {
+ push(@carbon_list,${$masses_matrix[$i]}[0]);
+ $carbon_counter++;
+ }
+ if (${$masses_matrix[$i]}[1] == $mass_nitrogen) {
+ push(@nitrogen_list,${$masses_matrix[$i]}[0]);
+ $nitrogen_counter++;
+ }
+ }
+ # Quit if no carbons or nitrogens
+ if ($carbon_counter == 0 or $nitrogen_counter == 0) {
+ if ($carbon_counter == 0) {
+ print "No carbon atoms exist in the system\n";
+ }
+ if ($nitrogen_counter == 0) {
+ print "No nitrogen atoms exist in the system\n";
+ }
+ print "CMAP usage impossible\n";
+ return;
+ }
+
+ print "Carbon atom type/s: @carbon_list\n";
+ print "Nitrogen atom type/s: @nitrogen_list\n";
+
+ # Determine the atom types of C, CA and N
+
+ # Charges of the backbone atoms
+ my $charge_C = 0.51;
+ my $charge_CA = 0.07;
+ my $charge_N = -0.47;
+
+ # Special setting for PRO
+ my $charge_N_PRO = -0.29;
+ my $charge_CA_PRO = 0.02;
+
+ # Special setting for GLY
+ my $charge_CA_GLY = -0.02;
+
+ # Peptide backbone atom types
+ my $C_type;
+ my $CA_type;
+ my $CA_GLY_type;
+ my $CA_PRO_type;
+ my $N_type;
+ my $N_PRO_type;
+
+ my $C_counter = 0;
+ my $CA_counter = 0;
+ my $CA_GLY_counter = 0;
+ my $CA_PRO_counter = 0;
+ my $N_counter = 0;
+ my $N_PRO_counter = 0;
+
+ my $C_flag = 0;
+
+ for (my $i = 0; $i <= $natom_number; $i++) {
+ my $cur_type = ${$atoms_matrix[$i]}[2];
+ my $cur_charge = ${$atoms_matrix[$i]}[3];
+ for (my $j = 0; $j <= $#carbon_list; $j++) {
+ if ($cur_type == $carbon_list[$j]) {
+ $C_flag = 1;
+ if ($cur_charge == $charge_C) {
+ $C_type = $cur_type;
+ $C_counter++;
+ }
+ if ($cur_charge == $charge_CA) {
+ $CA_type = $cur_type;
+ $CA_counter++;
+ }
+ if ($cur_charge == $charge_CA_GLY) {
+ $CA_GLY_type = $cur_type;
+ $CA_GLY_counter++;
+ }
+ if ($cur_charge == $charge_CA_PRO) {
+ $CA_PRO_type = $cur_type;
+ $CA_PRO_counter++;
+ }
+ }
+ }
+ if ($C_flag == 0) {
+ for (my $k = 0; $k <= $#nitrogen_list; $k++) {
+ if ($cur_type == $nitrogen_list[$k]) {
+ if ($cur_charge == $charge_N) {
+ $N_type = $cur_type;
+ $N_counter++;
+ }
+ if ($cur_charge == $charge_N_PRO) {
+ $N_PRO_type = $cur_type;
+ $N_PRO_counter++;
+ }
+ }
+ }
+ }
+ $C_flag = 0;
+ }
+
+ # Quit if one of the atom types dosen't exist
+ if ( $C_counter == 0 or
+ ($CA_counter == 0 and $CA_GLY_counter == 0 and $CA_PRO_counter == 0) or
+ ($N_counter == 0 and $N_PRO_counter == 0) ) {
+ if ($C_counter == 0) {
+ print "\nCannot find the peptide backbone C atom type\n";
+ }
+ if ($CA_counter == 0 and $CA_GLY_counter == 0 and $CA_PRO_counter == 0) {
+ print "\nCannot find the peptide backbone C-alpha atom type\n";
+ }
+ if ($N_counter == 0 and $N_PRO_counter == 0) {
+ print "\nCannot find the peptide backbone N atom type\n";
+ }
+ print "CMAP usage impossible\n";
+ return;
+ }
+
+ print "Peptide backbone carbon type: $C_type\n";
+ print "Alpha-carbon type: $CA_type\n" if ($CA_counter > 0);
+ print "Alpha-carbon type (GLY): $CA_GLY_type\n" if ($CA_GLY_counter > 0);
+ print "Alpha-carbon type (PRO): $CA_PRO_type\n" if ($CA_PRO_counter > 0);
+ print "Peptide backbone nitrogen type: $N_type\n" if ($N_counter >0);
+ print "Peptide backbone nitrogen type (PRO): $N_PRO_type\n" if ($N_PRO_counter > 0);
+
+ # Loop through the dihedral list to find the PHI- and PSI-dihedrals
+ my @PHI_dihedrals;
+ my @PSI_dihedrals;
+ my $PHI_counter = 0;
+ my $PSI_counter = 0;
+
+ for (my $i = 0; $i < $ndihedral_number; $i++) {
+ my $cur_dihe_ID = ${dihedrals_matrix[$i]}[0];
+ my $cur_atom1_type = ${atoms_matrix[${dihedrals_matrix[$i]}[2]-1]}[2];
+ my $cur_atom2_type = ${atoms_matrix[${dihedrals_matrix[$i]}[3]-1]}[2];
+ my $cur_atom3_type = ${atoms_matrix[${dihedrals_matrix[$i]}[4]-1]}[2];
+ my $cur_atom4_type = ${atoms_matrix[${dihedrals_matrix[$i]}[5]-1]}[2];
+
+ next if (${dihedrals_matrix[$i]}[2] == ${dihedrals_matrix[$i-1]}[2] and
+ ${dihedrals_matrix[$i]}[3] == ${dihedrals_matrix[$i-1]}[3] and
+ ${dihedrals_matrix[$i]}[4] == ${dihedrals_matrix[$i-1]}[4] and
+ ${dihedrals_matrix[$i]}[5] == ${dihedrals_matrix[$i-1]}[5]);
+
+ # Determine PHI-dihedrals; If C-CA-N-C or C-N-CA-C, then save it in a list
+ if ($cur_atom1_type == $C_type and $cur_atom4_type == $C_type) {
+ if ( ( ($cur_atom2_type == $CA_type or
+ $cur_atom2_type == $CA_GLY_type or
+ $cur_atom2_type == $CA_PRO_type) and
+ ($cur_atom3_type == $N_type or
+ $cur_atom3_type == $N_PRO_type) ) or
+ ( ($cur_atom3_type == $CA_type or
+ $cur_atom3_type == $CA_GLY_type or
+ $cur_atom3_type == $CA_PRO_type) and
+ ($cur_atom2_type == $N_type or
+ $cur_atom2_type == $N_PRO_type) ) ) {
+ push (@PHI_dihedrals,$cur_dihe_ID);
+ $PHI_counter++;
+ }
+ }
+
+ # Determin PSI-dihedrals; If N-CA-C-N or N-C-CA-N (N can be both normal N or N proline),
+ # then save it in a list
+ if ( ($cur_atom1_type == $N_type and $cur_atom4_type == $N_type) or
+ ($cur_atom4_type == $N_PRO_type and $cur_atom1_type == $N_PRO_type) or
+ ($cur_atom1_type == $N_type and $cur_atom4_type == $N_PRO_type) or
+ ($cur_atom4_type == $N_type and $cur_atom1_type == $N_PRO_type) ) {
+ if ( ( ($cur_atom2_type == $CA_type or
+ $cur_atom2_type == $CA_GLY_type or
+ $cur_atom2_type == $CA_PRO_type) and
+ $cur_atom3_type == $C_type) or
+ ( ($cur_atom3_type == $CA_type or
+ $cur_atom3_type == $CA_GLY_type or
+ $cur_atom3_type == $CA_PRO_type) and
+ $cur_atom2_type == $C_type) ) {
+ push (@PSI_dihedrals,$cur_dihe_ID);
+ $PSI_counter++;
+ }
+ }
+ }
+
+ # Quit if no PHI or PSI dihedrals
+ if ($PHI_counter == 0 or $PSI_counter ==0) {
+ if ($PHI_counter == 0) {
+ print "Can not find the PHI backbone dihedrals\n";
+ }
+ if ($PSI_counter ==0) {
+ print "Can not find the PSI backbone dihedrals\n";
+ }
+ print "CMAP usage impossible\n";
+ return;
+ }
+
+ # Construct the PHI/PSI diheral pair list
+ #
+ # The algorithm:
+ # _____
+ # | |
+ # 1--2--3--4 PHI-dihedral
+ # 4--3--2--1
+ # --C--N-CA--C--N-- Peptide backbone
+ # 1--2--3--4
+ # 4--3--2--1 PSI-dihedral
+ # |_____|
+ #
+ # For a certain PHI dihedral, following conditions have to be met:
+ #
+ # PHI PSI
+ # If (2--3--4) = (1--2--3)
+ # or
+ # if (2--3--4) = (4--3--2)
+ # or
+ # if (3--2--1) = (1--2--3)
+ # or
+ # if (3--2--1) = (4--3--2),
+ #
+ # then these 2 dihedrals are a PHI/PSI pair. If a pair is found, the
+ # dihedral IDs will be stored in "@PHI_PSI_matrix".
+
+ my @PHI_PSI_matrix;
+ my $crossterm_CA_charge;
+ my $crossterm_type;
+ my $crossterm_counter = 0;
+ my $crossterm_type1_flag = 0;
+ my $crossterm_type2_flag = 0;
+ my $crossterm_type3_flag = 0;
+ my $crossterm_type4_flag = 0;
+ my $crossterm_type5_flag = 0;
+ my $crossterm_type6_flag = 0;
+
+ for (my $i = 0; $i <= $#PHI_dihedrals; $i++) {
+ my $cur_PHI_dihe = ${dihedrals_matrix[$PHI_dihedrals[$i]-1]}[0];
+ my $phi1 = ${dihedrals_matrix[$PHI_dihedrals[$i]-1]}[2];
+ my $phi2 = ${dihedrals_matrix[$PHI_dihedrals[$i]-1]}[3];
+ my $phi3 = ${dihedrals_matrix[$PHI_dihedrals[$i]-1]}[4];
+ my $phi4 = ${dihedrals_matrix[$PHI_dihedrals[$i]-1]}[5];
+ for (my $j = 0; $j <= $#PSI_dihedrals; $j++) {
+ my $cur_PSI_dihe = ${dihedrals_matrix[$PSI_dihedrals[$j]-1]}[0];
+ my $psi1 = ${dihedrals_matrix[$PSI_dihedrals[$j]-1]}[2];
+ my $psi2 = ${dihedrals_matrix[$PSI_dihedrals[$j]-1]}[3];
+ my $psi3 = ${dihedrals_matrix[$PSI_dihedrals[$j]-1]}[4];
+ my $psi4 = ${dihedrals_matrix[$PSI_dihedrals[$j]-1]}[5];
+ if ( ($phi2 == $psi1 and $phi3 == $psi2 and $phi4 == $psi3) or
+ ($phi2 == $psi4 and $phi3 == $psi3 and $phi4 == $psi2) or
+ ($phi3 == $psi1 and $phi2 == $psi2 and $phi1 == $psi3) or
+ ($phi3 == $psi4 and $phi2 == $psi3 and $phi1 == $psi2) ) {
+
+ # Find out to which amino acid the cross-term belongs
+
+ if ($phi3 == $psi2 or $phi3 == $psi3) {
+ $crossterm_CA_charge = ${atoms_matrix[${dihedrals_matrix[$PHI_dihedrals[$i]-1]}[4]-1]}[3];
+ }
+ if ($phi2 == $psi2 or $phi2 == $psi3) {
+ $crossterm_CA_charge = ${atoms_matrix[${dihedrals_matrix[$PHI_dihedrals[$i]-1]}[3]-1]}[3];
+ }
+
+ # Def. the type of the crossterm per cmap.data file; If C_alpha of the crossterm is
+ # - ALA type, then $crossterm_type = 1;
+ # - ALA-PRO (ALA is the current AA), then $crossterm_type = 2;
+ # - PRO type, then $crossterm_type = 3;
+ # - PRO-PRO (First PRO is the current AA), then $crossterm_type = 4;
+ # - GLY type, then $crossterm_type = 5;
+ # - GLY-PRO (GLY is the current AA), then $crossterm_type = 6;
+
+ if ($crossterm_CA_charge == $charge_CA) { $crossterm_type = 1; $crossterm_type1_flag = 1; }
+ if ($crossterm_CA_charge == $charge_CA_GLY) { $crossterm_type = 5; $crossterm_type5_flag = 1; }
+ if ($crossterm_CA_charge == $charge_CA_PRO) {
+ $crossterm_type = 3; $crossterm_type3_flag = 1;
+ # Checking the last crossterm, re-assign the last crossterm type if needed
+ if ($crossterm_counter-1 >= 0 and $PHI_PSI_matrix[$crossterm_counter-1][0] == 1) {
+ $PHI_PSI_matrix[$crossterm_counter-1][0] = 2;
+ $crossterm_type2_flag = 1;
+ }
+ if ($crossterm_counter-1 >= 0 and $PHI_PSI_matrix[$crossterm_counter-1][0] == 3) {
+ $PHI_PSI_matrix[$crossterm_counter-1][0] = 4;
+ $crossterm_type4_flag = 1;
+ }
+ if ($crossterm_counter-1 >= 0 and $PHI_PSI_matrix[$crossterm_counter-1][0] == 5) {
+ $PHI_PSI_matrix[$crossterm_counter-1][0] = 6;
+ $crossterm_type6_flag = 1;
+ }
+ }
+ push(@PHI_PSI_matrix,[$crossterm_type,$phi1,$phi2,$phi3,$phi4,$psi4]);
+ $crossterm_counter++;
+
+ $crossterm_CA_charge = 0;
+ $crossterm_type = 0;
+ }
+ }
+ }
+
+ # Check whether the amino acid at the C-terminus is a PRO or not. If yes, the type of the last crossterm
+ # should be set to its X-PRO form instead of X, where X is ALA, PRO, or GLY. X-PRO form = X type + 1.
+
+ my @pdb_data;
+ open(PDB,"< $project.pdb")
+ or die "WARNING: Cannot open file \"$project.pdb\"! (required if the -cmap option is used)\n";
+ @pdb_data = ;
+ close(PDB);
+
+ my @ter_line;
+ my $ter_AA_type = 0;
+ my $ter_flag = 0;
+ foreach $line (@pdb_data) {
+ if ($line =~ m/TER/) {
+ @ter_line = split(" ",$line);
+ $ter_AA_type = $ter_line[2];
+ print "Terminal amino acid type is: $ter_AA_type\n";
+ $ter_flag = 1;
+ }
+ }
+ if ($ter_flag == 0) {
+ print "\n*** ERROR IN THE PDB FILE: ***\n";
+ print "In order for the CMAP section to be generated, the pdb file must \n";
+ print "identify the C-terminus amino acid in the file with 'TER'. \n";
+ print "This line is missing from the pdb file that was used.\n";
+ print "To correct this problem, open the pdb file in an editor,\n";
+ print "find the last atom of the last amino acid residue in the peptide\n";
+ print "chain and insert the following line immediately after that atom:\n";
+ print " 'TER <#1> <#2>' \n";
+ print "where '<#1> is the next atom number, is the three letter amino\n";
+ print "acid abbreviation for that amino acid, and <#2> is the molecule number\n";
+ print "of the terminal amino acid residue.\n\n";
+ print "For example, if the last atom of the last amino acid in the peptide\n";
+ print "sequence is listed in the pdb file as:\n\n";
+ print " 'ATOM 853 O GLU P 56 12.089 -1.695 -6.543 1.00 1.03 PROA'\n\n";
+ print "you would insert the following line after it:\n\n";
+ print " 'TER 854 GLU 56'\n\n";
+ print "If any additional atoms are listed in the pdb file (e.g., water, ions)\n";
+ print "after this terminal amino acid residue, their atom numbers and\n";
+ print "molecule numbers must be incremented by 1 to account for the new line\n";
+ print "that was inserted.\n\n";
+ die "Error: No terminating atom designated in pdb file! See above note to correct problem.\n\n";
+ }
+
+ if ($ter_AA_type eq PRO) {
+ $PHI_PSI_matrix[$crossterm_counter-1][0] = $PHI_PSI_matrix[$crossterm_counter-1][0]+1;
+ }
+
+ # Print out PHI/PSI diheral pair list
+ my $pair_counter = 0;
+ # Don't presently use $ncrosstermtypes but have this available if wish to print it out
+ my $ncrosstermtypes = $crossterm_type1_flag + $crossterm_type2_flag + $crossterm_type3_flag +
+ $crossterm_type4_flag + $crossterm_type5_flag + $crossterm_type6_flag;
+ print "\nWriting \"$project.data\" with section \"CMAP crossterms\" added at the end.\n";
+
+ # Writing the new lammps data file
+ open(REWRITE,"> $project.data")
+ or die "Cannot write file \"$project.data\"!\n";
+ foreach $line (@raw_data) {
+ printf(REWRITE "$line\n");
+ if ($line =~ m/impropers/) {
+ printf(REWRITE "%12d crossterms\n", $crossterm_counter);
+ }
+ }
+ printf(REWRITE "CMAP\n\n");
+
+ my $ref_line;
+ my $column;
+ foreach $ref_line (@PHI_PSI_matrix) {
+ $pair_counter++;
+ printf(REWRITE "%8d",$pair_counter);
+ foreach $column (@$ref_line) {
+ printf(REWRITE " %7d",$column);
+ }
+ printf(REWRITE "\n");
+ }
+ close(REWRITE);
+
+ print "\nDone!\n\n";
+
+# End of the CharmmCmap subroutine
+}
# main
@@ -1470,4 +2470,6 @@
WriteData();
WriteLAMMPSInput();
printf("Info: conversion complete\n\n") if ($info);
+ DihedralCorrect6Ring() if ($cdihedral);
+ CharmmCmap() if ($cmap);