Merge branch 'master' of https://github.com/lammps/lammps into USER-DPD_kokkos

This commit is contained in:
Stan Moore
2017-03-17 12:09:25 -06:00
44 changed files with 16556 additions and 115 deletions

View File

@ -22,7 +22,7 @@ endif
SOURCES=$(wildcard src/*.txt)
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
.PHONY: help clean-all clean epub html pdf old venv spelling
.PHONY: help clean-all clean epub html pdf old venv spelling anchor_check
# ------------------------------------------
@ -36,6 +36,7 @@ help:
@echo " clean remove all intermediate RST files"
@echo " clean-all reset the entire build environment"
@echo " txt2html build txt2html tool"
@echo " anchor_check scan for duplicate anchor labels"
# ------------------------------------------
@ -54,6 +55,9 @@ html: $(OBJECTS)
. $(VENV)/bin/activate ;\
cp -r src/* $(RSTDIR)/ ;\
sphinx-build -j 8 -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
echo "############################################" ;\
doc_anchor_check src/*.txt ;\
echo "############################################" ;\
deactivate ;\
)
-rm html/searchindex.js
@ -127,6 +131,13 @@ fetch:
txt2html: utils/txt2html/txt2html.exe
anchor_check : $(TXT2RST)
@(\
. $(VENV)/bin/activate ;\
doc_anchor_check src/*.txt ;\
deactivate ;\
)
# ------------------------------------------
utils/txt2html/txt2html.exe: utils/txt2html/txt2html.cpp

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="10 Mar 2017 version">
<META NAME="docnumber" CONTENT="17 Mar 2017 version">
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
</HEAD>
@ -21,7 +21,7 @@
<H1></H1>
LAMMPS Documentation :c,h3
10 Mar 2017 version :c,h4
17 Mar 2017 version :c,h4
Version info: :h4

View File

@ -687,6 +687,7 @@ package"_Section_start.html#start_3.
"eos/cv"_fix_eos_cv.html,
"eos/table"_fix_eos_table.html,
"eos/table/rx"_fix_eos_table_rx.html,
"filter/corotate"_fix_filter_corotate.html,
"flow/gauss"_fix_flow_gauss.html,
"gle"_fix_gle.html,
"grem"_fix_grem.html,

View File

@ -0,0 +1,87 @@
"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 filter/corotate command :h3
[Syntax:]
fix ID group-ID filter/corotate keyword value ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
one or more constraint/value pairs are appended :l
constraint = {b} or {a} or {t} or {m} :l
{b} values = one or more bond types
{a} values = one or more angle types
{t} values = one or more atom types
{m} value = one or more mass values :pre
:ule
[Examples:]
timestep 8
run_style respa 3 2 8 bond 1 pair 2 kspace 3
fix cor all filter/corotate m 1.0 :pre
fix cor all filter/corotate b 4 19 a 3 5 2 :pre
[Description:]
This fix implements a corotational filter for a mollified impulse
method. In biomolecular simulations, it allows the usage of larger
timesteps for long-range electrostatic interactions. For details, see
"(Fath)"_#Fath2017.
When using "run_style respa"_run_style.html for a biomolecular
simulation with high-frequency covalent bonds, the outer time-step is
restricted to below ~ 4fs due to resonance problems. This fix filters
the outer stage of the respa and thus a larger (outer) time-step can
be used. Since in large biomolecular simulations the computation of
the long-range electrostatic contributions poses a major bottleneck,
this can significantly accelerate the simulation.
The filter computes a cluster decomposition of the molecular structure
following the criteria indicated by the options a, b, t and m. This
process is similar to the approach in "fix shake"_fix_shake.html,
however, the clusters are not kept contrained. Instead, the position
is slightly modified only for the computation of long-range forces. A
good cluster decomposition constitutes in building clusters which
contain the fastest covalent bonds inside clusters.
If the clusters are chosen suitably, the "run_style
respa"_run_style.html is stable for outer time-steps of at least 8fs.
:line
[Restart, fix_modify, output, run start/stop, minimize info:]
No information about these fixes is written to "binary restart
files"_restart.html. None of the "fix_modify"_fix_modify.html options
are relevant to these fixes. No global or per-atom quantities are
stored by these fixes for access by various "output
commands"_Section_howto.html#howto_15. No parameter of these fixes
can be used with the {start/stop} keywords of the "run"_run.html
command. These fixes are not invoked during "energy
minimization"_minimize.html.
[Restrictions:]
This fix is part of the USER-MISC package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
Currently, it does not support "molecule templates"_molecule.html.
[Related commands:]
[Default:] none
:line
:link(Fath2017)
[(Fath)] Fath, Hochbruck, Singh, J Comp Phys, 333, 180-198 (2017).

View File

@ -36,7 +36,7 @@ uses charges on each atom. The "fix qeq/comb"_fix_qeq_comb.html
command should be used to perform charge equilibration with the "COMB
potential"_pair_comb.html. For more technical details about the
charge equilibration performed by fix qeq/reax, see the
"(Aktulga)"_#Aktulga paper.
"(Aktulga)"_#qeq-Aktulga paper.
The QEq method minimizes the electrostatic energy of the system by
adjusting the partial charge on individual atoms based on interactions
@ -119,6 +119,6 @@ be used for periodic cell dimensions less than 10 angstroms.
:link(Nakano)
[(Nakano)] Nakano, Computer Physics Communications, 104, 59-69 (1997).
:link(Aktulga)
(Aktulga) Aktulga, Fogarty, Pandit, Grama, Parallel Computing, 38,
:link(qeq-Aktulga)
[(Aktulga)] Aktulga, Fogarty, Pandit, Grama, Parallel Computing, 38,
245-259 (2012).

View File

@ -42,6 +42,7 @@ Fixes :h1
fix_eos_table_rx
fix_evaporate
fix_external
fix_filter_corotate
fix_flow_gauss
fix_freeze
fix_gcmc

View File

@ -12,7 +12,7 @@ info command :h3
info args :pre
args = one or more of the following keywords: {out}, {all}, {system}, {communication}, {computes}, {dumps}, {fixes}, {groups}, {regions}, {variables}, {styles}, {time}, or {configuration}
args = one or more of the following keywords: {out}, {all}, {system}, {memory}, {communication}, {computes}, {dumps}, {fixes}, {groups}, {regions}, {variables}, {styles}, {time}, or {configuration}
{out} values = {screen}, {log}, {append} filename, {overwrite} filename
{styles} values = {all}, {angle}, {atom}, {bond}, {compute}, {command}, {dump}, {dihedral}, {fix}, {improper}, {integrate}, {kspace}, {minimize}, {pair}, {region} :ul
@ -40,6 +40,17 @@ to that file, which is either appended to or overwritten, respectively.
The {all} flag activates printing all categories listed below.
The {configuration} category prints some information about the
LAMMPS version as well as architecture and OS it is run on.
The {memory} category prints some information about the current
memory allocation of MPI rank 0 (this the amount of dynamically
allocated memory reported by LAMMPS classes). Where supported,
also some OS specific information about the size of the reserved
memory pool size (this is where malloc() and the new operator
request memory from) and the maximum resident set size is reported
(this is the maximum amount of physical memory occupied so far).
The {system} category prints a general system overview listing. This
includes the unit style, atom style, number of atoms, bonds, angles,
dihedrals, and impropers and the number of the respective types, box
@ -93,11 +104,6 @@ region :ul
The {time} category prints the accumulated CPU and wall time for the
process that writes output (usually MPI rank 0).
The {configuration} command prints some information about the LAMMPS
version and architecture and OS it is run on. Where supported, also
information about the memory consumption provided by the OS is
reported.
[Restrictions:] none
[Related commands:]

View File

@ -168,6 +168,7 @@ fix_eos_table.html
fix_eos_table_rx.html
fix_evaporate.html
fix_external.html
fix_filter_corotate.html
fix_flow_gauss.html
fix_freeze.html
fix_gcmc.html

View File

@ -52,7 +52,7 @@ to Stillinger-Weber potential ("SW"_#SW) if we set
:c,image(Eqs/polymorphic4.jpg)
The potential reduces to Tersoff types of potential
("Tersoff"_#Tersoff or "Albe"_#Albe) if we set
("Tersoff"_#Tersoff or "Albe"_#poly-Albe) if we set
:c,image(Eqs/polymorphic5.jpg)
:c,image(Eqs/polymorphic6.jpg)
@ -63,7 +63,7 @@ The potential reduces to Rockett-Tersoff ("Wang"_#Wang) type if we set
:c,image(Eqs/polymorphic6.jpg)
:c,image(Eqs/polymorphic8.jpg)
The potential becomes embedded atom method ("Daw"_#Daw) if we set
The potential becomes embedded atom method ("Daw"_#poly-Daw) if we set
:c,image(Eqs/polymorphic9.jpg)
@ -218,12 +218,12 @@ F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015).
:link(Tersoff)
[(Tersoff)] J. Tersoff, Phys. Rev. B, 39, 5566 (1989).
:link(Albe)
:link(poly-Albe)
[(Albe)] K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B,
66, 035205 (2002).
:link(Wang)
[(Wang)] J. Wang, and A. Rockett, Phys. Rev. B, 43, 12571 (1991).
:link(Daw)
:link(poly-Daw)
[(Daw)] M. S. Daw, and M. I. Baskes, Phys. Rev. B, 29, 6443 (1984).

View File

@ -23,9 +23,9 @@ pair_coeff * * SiC.tersoff.zbl Si C Si :pre
[Description:]
The {tersoff/zbl} style computes a 3-body Tersoff potential
"(Tersoff_1)"_#Tersoff_1 with a close-separation pairwise modification
"(Tersoff_1)"_#zbl-Tersoff_1 with a close-separation pairwise modification
based on a Coulomb potential and the Ziegler-Biersack-Littmark
universal screening function "(ZBL)"_#ZBL, giving the energy E of a
universal screening function "(ZBL)"_#zbl-ZBL, giving the energy E of a
system of atoms as
:c,image(Eqs/pair_tersoff_zbl.jpg)
@ -146,16 +146,16 @@ be set to 0.0 if desired.
Note that the twobody parameters in entries such as SiCC and CSiSi
are often the same, due to the common use of symmetric mixing rules,
but this is not always the case. For example, the beta and n parameters in
Tersoff_2 "(Tersoff_2)"_#Tersoff_2 are not symmetric.
Tersoff_2 "(Tersoff_2)"_#zbl-Tersoff_2 are not symmetric.
We chose the above form so as to enable users to define all commonly
used variants of the Tersoff portion of the potential. In particular,
our form reduces to the original Tersoff form when m = 3 and gamma =
1, while it reduces to the form of "Albe et al."_#Albe when beta = 1
1, while it reduces to the form of "Albe et al."_#zbl-Albe when beta = 1
and m = 1. Note that in the current Tersoff implementation in LAMMPS,
m must be specified as either 3 or 1. Tersoff used a slightly
different but equivalent form for alloys, which we will refer to as
Tersoff_2 potential "(Tersoff_2)"_#Tersoff_2.
Tersoff_2 potential "(Tersoff_2)"_#zbl-Tersoff_2.
LAMMPS parameter values for Tersoff_2 can be obtained as follows:
gamma = omega_ijk, lambda3 = 0 and the value of
@ -253,16 +253,16 @@ units.
:line
:link(Tersoff_1)
:link(zbl-Tersoff_1)
[(Tersoff_1)] J. Tersoff, Phys Rev B, 37, 6991 (1988).
:link(ZBL)
:link(zbl-ZBL)
[(ZBL)] J.F. Ziegler, J.P. Biersack, U. Littmark, 'Stopping and Ranges
of Ions in Matter' Vol 1, 1985, Pergamon Press.
:link(Albe)
:link(zbl-Albe)
[(Albe)] J. Nord, K. Albe, P. Erhart and K. Nordlund, J. Phys.:
Condens. Matter, 15, 5649(2003).
:link(Tersoff_2)
:link(zbl-Tersoff_2)
[(Tersoff_2)] J. Tersoff, Phys Rev B, 39, 5566 (1989); errata (PRB 41, 3248)

View File

@ -0,0 +1,60 @@
#! /usr/bin/env python3
# LAMMPS Documentation Utilities
#
# Scan for duplicate anchor labels in documentation files
#
# Copyright (C) 2017 Richard Berger
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import re
import sys
import argparse
def main():
parser = argparse.ArgumentParser(description='scan for duplicate anchor labels in documentation files')
parser.add_argument('files', metavar='file', nargs='+', help='one or more files to scan')
parsed_args = parser.parse_args()
anchor_pattern = re.compile(r'^:link\(([^,\)]*)\)')
anchors = {}
for filename in parsed_args.files:
with open(filename, 'rt') as f:
for line_number, line in enumerate(f):
m = anchor_pattern.match(line)
if m:
label = m.group(1)
if label in anchors:
anchors[label].append((filename, line_number+1))
else:
anchors[label] = [(filename, line_number+1)]
count = 0
for label in sorted(anchors.keys()):
if len(anchors[label]) > 1:
print(label)
count += 1
for filename, line_number in anchors[label]:
print(" - %s:%d" % (filename, line_number))
if count > 0:
print("Found %d anchor label errors." % count)
sys.exit(1)
else:
print("No anchor label errors.")
if __name__ == "__main__":
main()

View File

@ -12,6 +12,7 @@ setup(name='LAMMPS Documentation Utilities',
tests_require=['nose'],
entry_points = {
"console_scripts": ['txt2html = lammpsdoc.txt2html:main',
'txt2rst = lammpsdoc.txt2rst:main']
'txt2rst = lammpsdoc.txt2rst:main',
'doc_anchor_check = lammpsdoc.doc_anchor_check:main ']
},
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,43 @@
units real
atom_style full
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
pair_style lj/charmm/coul/long 8 10
pair_modify mix arithmetic
kspace_style pppm 1e-4
read_data data.bpti
special_bonds charmm
neigh_modify delay 2 every 1
# ------------- MINIMIZE ----------
minimize 1e-4 1e-6 1000 10000
reset_timestep 0
# ------------- RUN ---------------
thermo 100
thermo_style multi
timestep 8
run_style respa 3 2 8 bond 1 pair 2 kspace 3
velocity all create 200.0 12345678 dist uniform
#dump dump1 all atom 100 4pti.dump
fix 1 all nvt temp 200 300 25
fix cor all filter/corotate m 1.0
run 1000
unfix cor
unfix 1

View File

@ -0,0 +1,32 @@
# Solvated 5-mer peptide, run for 8ps in NVT
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
neighbor 2.0 bin
neigh_modify delay 5
thermo 50
#dump dump1 all atom 100 peptide.dump
timestep 8
run_style respa 3 2 8 bond 1 pair 2 kspace 3
fix 1 all nvt temp 250.0 250.0 100.0 tchain 1
fix cor all filter/corotate m 1.0
run 1000
unfix cor
unfix 1

View File

@ -0,0 +1,240 @@
LAMMPS (10 Mar 2017)
using 1 OpenMP thread(s) per MPI task
units real
atom_style full
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
pair_style lj/charmm/coul/long 8 10
pair_modify mix arithmetic
kspace_style pppm 1e-4
read_data data.bpti
orthogonal box = (-10 -10 -30) to (50 50 30)
1 by 1 by 1 MPI processor grid
reading atoms ...
892 atoms
scanning bonds ...
4 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
18 = max dihedrals/atom
scanning impropers ...
2 = max impropers/atom
reading bonds ...
906 bonds
reading angles ...
1626 angles
reading dihedrals ...
2501 dihedrals
reading impropers ...
137 impropers
4 = max # of 1-2 neighbors
9 = max # of 1-3 neighbors
19 = max # of 1-4 neighbors
21 = max # of special neighbors
special_bonds charmm
neigh_modify delay 2 every 1
# ------------- MINIMIZE ----------
minimize 1e-4 1e-6 1000 10000
WARNING: Resetting reneighboring criteria during minimization (../min.cpp:168)
PPPM initialization ...
WARNING: System is not charge neutral, net charge = 6 (../kspace.cpp:302)
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.203272
grid = 16 16 16
stencil order = 5
estimated absolute RMS force accuracy = 0.0316399
estimated relative force accuracy = 9.52826e-05
using double precision FFTs
3d grid and FFT values/proc = 9261 4096
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory usage (min/avg/max) = 17.8596/1/0 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -3075.6498 943.91164 -2131.7381 -380.67776
241 0 -4503.313 749.58662 -3753.7264 -29.045104
Loop time of 3.35722 on 1 procs for 241 steps with 892 atoms
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
-2131.73812515 -3753.43984087 -3753.72636847
Force two-norm initial, final = 1086.21 26.3688
Force max component initial, final = 310.811 3.92748
Final line search alpha, max atom move = 0.00596649 0.0234333
Iterations, force evaluations = 241 463
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.5003 | 2.5003 | 2.5003 | 0.0 | 74.48
Bond | 0.24287 | 0.24287 | 0.24287 | 0.0 | 7.23
Kspace | 0.53428 | 0.53428 | 0.53428 | 0.0 | 15.91
Neigh | 0.069765 | 0.069765 | 0.069765 | 0.0 | 2.08
Comm | 0.00065374 | 0.00065374 | 0.00065374 | 0.0 | 0.02
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.009358 | | | 0.28
Nlocal: 892 ave 892 max 892 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 31 ave 31 max 31 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 148891 ave 148891 max 148891 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 148891
Ave neighs/atom = 166.918
Ave special neighs/atom = 10.9395
Neighbor list builds = 15
Dangerous builds = 0
reset_timestep 0
# ------------- RUN ---------------
thermo 100
thermo_style multi
timestep 8
run_style respa 3 2 8 bond 1 pair 2 kspace 3
Respa levels:
1 = bond angle dihedral improper
2 = pair
3 = kspace
velocity all create 200.0 12345678 dist uniform
#dump dump1 all atom 100 4pti.dump
fix 1 all nvt temp 200 300 25
fix cor all filter/corotate m 1.0
163 = # of size 2 clusters
0 = # of size 3 clusters
25 = # of size 4 clusters
0 = # of size 5 clusters
100 = # of frozen angles
run 1000
PPPM initialization ...
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.203272
grid = 16 16 16
stencil order = 5
estimated absolute RMS force accuracy = 0.0316399
estimated relative force accuracy = 9.52826e-05
using double precision FFTs
3d grid and FFT values/proc = 9261 4096
Per MPI rank memory usage (min/avg/max) = 19.5425/1/0 Mbytes
---------------- Step 0 ----- CPU = 0.0000 (sec) ----------------
TotEng = -3220.3378 KinEng = 531.1804 Temp = 200.0000
PotEng = -3751.5181 E_bond = 42.2810 E_angle = 345.2592
E_dihed = 337.8361 E_impro = 24.2103 E_vdwl = -288.5339
E_coul = -886.3622 E_long = -3326.2088 Press = 83.2283
---------------- Step 100 ----- CPU = 3.9414 (sec) ----------------
TotEng = -2718.8970 KinEng = 538.6206 Temp = 202.8014
PotEng = -3257.5176 E_bond = 203.3367 E_angle = 566.5317
E_dihed = 397.6202 E_impro = 34.6623 E_vdwl = -248.7451
E_coul = -874.5122 E_long = -3336.4111 Press = 135.8662
---------------- Step 200 ----- CPU = 7.9028 (sec) ----------------
TotEng = -2660.1406 KinEng = 626.3319 Temp = 235.8265
PotEng = -3286.4725 E_bond = 209.5147 E_angle = 591.7773
E_dihed = 388.9591 E_impro = 29.4992 E_vdwl = -243.5808
E_coul = -923.5115 E_long = -3339.1306 Press = 88.9000
---------------- Step 300 ----- CPU = 11.8246 (sec) ----------------
TotEng = -2673.8090 KinEng = 616.7924 Temp = 232.2346
PotEng = -3290.6014 E_bond = 202.8254 E_angle = 568.6860
E_dihed = 378.4182 E_impro = 38.2399 E_vdwl = -221.3236
E_coul = -915.3004 E_long = -3342.1468 Press = 78.8527
---------------- Step 400 ----- CPU = 15.7990 (sec) ----------------
TotEng = -2614.9416 KinEng = 649.3474 Temp = 244.4922
PotEng = -3264.2890 E_bond = 211.6116 E_angle = 617.2026
E_dihed = 399.8744 E_impro = 40.2678 E_vdwl = -211.7790
E_coul = -978.1624 E_long = -3343.3041 Press = -4.1958
---------------- Step 500 ----- CPU = 19.8146 (sec) ----------------
TotEng = -2588.6772 KinEng = 660.1424 Temp = 248.5568
PotEng = -3248.8196 E_bond = 218.4786 E_angle = 620.8605
E_dihed = 390.3220 E_impro = 41.6794 E_vdwl = -226.3657
E_coul = -953.1676 E_long = -3340.6269 Press = 99.3200
---------------- Step 600 ----- CPU = 23.8587 (sec) ----------------
TotEng = -2550.4618 KinEng = 693.3384 Temp = 261.0557
PotEng = -3243.8002 E_bond = 232.3563 E_angle = 606.2922
E_dihed = 396.2469 E_impro = 37.1980 E_vdwl = -235.8425
E_coul = -937.1208 E_long = -3342.9303 Press = -21.7737
---------------- Step 700 ----- CPU = 27.8381 (sec) ----------------
TotEng = -2554.4355 KinEng = 692.8951 Temp = 260.8888
PotEng = -3247.3306 E_bond = 216.3395 E_angle = 637.7785
E_dihed = 391.5940 E_impro = 43.1426 E_vdwl = -187.6159
E_coul = -1008.1694 E_long = -3340.3998 Press = 75.1484
---------------- Step 800 ----- CPU = 31.8039 (sec) ----------------
TotEng = -2508.3551 KinEng = 699.0766 Temp = 263.2163
PotEng = -3207.4317 E_bond = 241.9936 E_angle = 641.3631
E_dihed = 386.2198 E_impro = 43.7793 E_vdwl = -217.7523
E_coul = -964.6070 E_long = -3338.4282 Press = -127.7337
---------------- Step 900 ----- CPU = 35.7700 (sec) ----------------
TotEng = -2452.7644 KinEng = 762.1842 Temp = 286.9776
PotEng = -3214.9485 E_bond = 243.9191 E_angle = 649.8664
E_dihed = 382.4351 E_impro = 39.0029 E_vdwl = -221.3389
E_coul = -970.8965 E_long = -3337.9366 Press = 122.7720
---------------- Step 1000 ----- CPU = 39.7695 (sec) ----------------
TotEng = -2386.6805 KinEng = 799.0253 Temp = 300.8490
PotEng = -3185.7058 E_bond = 265.3649 E_angle = 661.7543
E_dihed = 374.6843 E_impro = 38.6877 E_vdwl = -229.2030
E_coul = -960.7041 E_long = -3336.2899 Press = -17.9910
Loop time of 39.7695 on 1 procs for 1000 steps with 892 atoms
Performance: 17.380 ns/day, 1.381 hours/ns, 25.145 timesteps/s
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 29.169 | 29.169 | 29.169 | 0.0 | 73.34
Bond | 7.6249 | 7.6249 | 7.6249 | 0.0 | 19.17
Kspace | 1.1525 | 1.1525 | 1.1525 | 0.0 | 2.90
Neigh | 0.87606 | 0.87606 | 0.87606 | 0.0 | 2.20
Comm | 0.01563 | 0.01563 | 0.01563 | 0.0 | 0.04
Output | 0.00048423 | 0.00048423 | 0.00048423 | 0.0 | 0.00
Modify | 0.80446 | 0.80446 | 0.80446 | 0.0 | 2.02
Other | | 0.1266 | | | 0.32
Nlocal: 892 ave 892 max 892 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 27 ave 27 max 27 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 146206 ave 146206 max 146206 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 146206
Ave neighs/atom = 163.908
Ave special neighs/atom = 10.9395
Neighbor list builds = 186
Dangerous builds = 0
unfix cor
unfix 1
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:43

View File

@ -0,0 +1,240 @@
LAMMPS (10 Mar 2017)
using 1 OpenMP thread(s) per MPI task
units real
atom_style full
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
pair_style lj/charmm/coul/long 8 10
pair_modify mix arithmetic
kspace_style pppm 1e-4
read_data data.bpti
orthogonal box = (-10 -10 -30) to (50 50 30)
1 by 2 by 2 MPI processor grid
reading atoms ...
892 atoms
scanning bonds ...
4 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
18 = max dihedrals/atom
scanning impropers ...
2 = max impropers/atom
reading bonds ...
906 bonds
reading angles ...
1626 angles
reading dihedrals ...
2501 dihedrals
reading impropers ...
137 impropers
4 = max # of 1-2 neighbors
9 = max # of 1-3 neighbors
19 = max # of 1-4 neighbors
21 = max # of special neighbors
special_bonds charmm
neigh_modify delay 2 every 1
# ------------- MINIMIZE ----------
minimize 1e-4 1e-6 1000 10000
WARNING: Resetting reneighboring criteria during minimization (../min.cpp:168)
PPPM initialization ...
WARNING: System is not charge neutral, net charge = 6 (../kspace.cpp:302)
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.203272
grid = 16 16 16
stencil order = 5
estimated absolute RMS force accuracy = 0.0316399
estimated relative force accuracy = 9.52826e-05
using double precision FFTs
3d grid and FFT values/proc = 3549 1024
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory usage (min/avg/max) = 16.9693/0.981879/0 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -3075.6498 943.91164 -2131.7381 -380.67776
241 0 -4503.3131 749.58666 -3753.7264 -29.045153
Loop time of 1.26594 on 4 procs for 241 steps with 892 atoms
99.0% CPU use with 4 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
-2131.73812515 -3753.43983927 -3753.72640137
Force two-norm initial, final = 1086.21 26.3688
Force max component initial, final = 310.811 3.92751
Final line search alpha, max atom move = 0.00596649 0.0234334
Iterations, force evaluations = 241 463
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.34267 | 0.63792 | 0.90268 | 25.2 | 50.39
Bond | 0.025776 | 0.063318 | 0.095631 | 10.8 | 5.00
Kspace | 0.21904 | 0.51601 | 0.84895 | 31.3 | 40.76
Neigh | 0.023185 | 0.023363 | 0.023538 | 0.1 | 1.85
Comm | 0.012025 | 0.014189 | 0.016335 | 1.4 | 1.12
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.01114 | | | 0.88
Nlocal: 223 ave 323 max 89 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Nghost: 613 ave 675 max 557 min
Histogram: 1 0 0 1 0 1 0 0 0 1
Neighs: 37222.8 ave 50005 max 20830 min
Histogram: 1 0 0 0 1 0 0 1 0 1
Total # of neighbors = 148891
Ave neighs/atom = 166.918
Ave special neighs/atom = 10.9395
Neighbor list builds = 15
Dangerous builds = 0
reset_timestep 0
# ------------- RUN ---------------
thermo 100
thermo_style multi
timestep 8
run_style respa 3 2 8 bond 1 pair 2 kspace 3
Respa levels:
1 = bond angle dihedral improper
2 = pair
3 = kspace
velocity all create 200.0 12345678 dist uniform
#dump dump1 all atom 100 4pti.dump
fix 1 all nvt temp 200 300 25
fix cor all filter/corotate m 1.0
163 = # of size 2 clusters
0 = # of size 3 clusters
25 = # of size 4 clusters
0 = # of size 5 clusters
100 = # of frozen angles
run 1000
PPPM initialization ...
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.203272
grid = 16 16 16
stencil order = 5
estimated absolute RMS force accuracy = 0.0316399
estimated relative force accuracy = 9.52826e-05
using double precision FFTs
3d grid and FFT values/proc = 3549 1024
Per MPI rank memory usage (min/avg/max) = 17.142/0.97212/0 Mbytes
---------------- Step 0 ----- CPU = 0.0000 (sec) ----------------
TotEng = -3220.3378 KinEng = 531.1804 Temp = 200.0000
PotEng = -3751.5182 E_bond = 42.2810 E_angle = 345.2592
E_dihed = 337.8361 E_impro = 24.2103 E_vdwl = -288.5339
E_coul = -886.3622 E_long = -3326.2088 Press = 83.2282
---------------- Step 100 ----- CPU = 1.5457 (sec) ----------------
TotEng = -2718.9184 KinEng = 538.6205 Temp = 202.8014
PotEng = -3257.5389 E_bond = 203.3365 E_angle = 566.5311
E_dihed = 397.6202 E_impro = 34.6621 E_vdwl = -248.7451
E_coul = -874.5326 E_long = -3336.4111 Press = 135.8435
---------------- Step 200 ----- CPU = 3.0720 (sec) ----------------
TotEng = -2660.1146 KinEng = 626.3474 Temp = 235.8323
PotEng = -3286.4620 E_bond = 209.5168 E_angle = 591.7735
E_dihed = 388.9615 E_impro = 29.5000 E_vdwl = -243.5840
E_coul = -923.4998 E_long = -3339.1299 Press = 88.8857
---------------- Step 300 ----- CPU = 4.5597 (sec) ----------------
TotEng = -2669.7442 KinEng = 619.3625 Temp = 233.2023
PotEng = -3289.1067 E_bond = 203.4405 E_angle = 569.5281
E_dihed = 378.3314 E_impro = 38.2880 E_vdwl = -221.1904
E_coul = -915.3396 E_long = -3342.1646 Press = 79.3780
---------------- Step 400 ----- CPU = 5.9808 (sec) ----------------
TotEng = -2618.9975 KinEng = 644.6145 Temp = 242.7102
PotEng = -3263.6119 E_bond = 209.5864 E_angle = 618.8954
E_dihed = 401.3798 E_impro = 39.9064 E_vdwl = -212.1271
E_coul = -977.1589 E_long = -3344.0940 Press = -7.8938
---------------- Step 500 ----- CPU = 7.4159 (sec) ----------------
TotEng = -2579.7486 KinEng = 666.4643 Temp = 250.9371
PotEng = -3246.2129 E_bond = 219.2549 E_angle = 620.3474
E_dihed = 388.4395 E_impro = 41.4499 E_vdwl = -225.9686
E_coul = -949.3689 E_long = -3340.3672 Press = 113.2543
---------------- Step 600 ----- CPU = 8.9252 (sec) ----------------
TotEng = -2535.8235 KinEng = 708.5919 Temp = 266.7990
PotEng = -3244.4154 E_bond = 243.9451 E_angle = 606.0866
E_dihed = 400.0562 E_impro = 33.9708 E_vdwl = -223.1319
E_coul = -964.9940 E_long = -3340.3482 Press = -102.4475
---------------- Step 700 ----- CPU = 10.4022 (sec) ----------------
TotEng = -2552.6681 KinEng = 702.3080 Temp = 264.4330
PotEng = -3254.9761 E_bond = 250.8834 E_angle = 639.0977
E_dihed = 386.4014 E_impro = 42.3004 E_vdwl = -224.4816
E_coul = -1011.8551 E_long = -3337.3222 Press = 10.6424
---------------- Step 800 ----- CPU = 11.8699 (sec) ----------------
TotEng = -2423.5415 KinEng = 772.1254 Temp = 290.7206
PotEng = -3195.6670 E_bond = 238.5831 E_angle = 640.9180
E_dihed = 377.7994 E_impro = 40.3135 E_vdwl = -216.5705
E_coul = -935.1087 E_long = -3341.6019 Press = -38.2479
---------------- Step 900 ----- CPU = 13.3548 (sec) ----------------
TotEng = -2394.4779 KinEng = 766.6895 Temp = 288.6739
PotEng = -3161.1673 E_bond = 284.8428 E_angle = 671.0959
E_dihed = 380.3406 E_impro = 51.2975 E_vdwl = -219.5211
E_coul = -990.6305 E_long = -3338.5925 Press = -15.2279
---------------- Step 1000 ----- CPU = 14.7908 (sec) ----------------
TotEng = -2340.1471 KinEng = 799.0198 Temp = 300.8469
PotEng = -3139.1669 E_bond = 271.0389 E_angle = 683.8278
E_dihed = 407.0795 E_impro = 39.6209 E_vdwl = -230.5355
E_coul = -974.2981 E_long = -3335.9003 Press = -94.3420
Loop time of 14.7909 on 4 procs for 1000 steps with 892 atoms
Performance: 46.732 ns/day, 0.514 hours/ns, 67.609 timesteps/s
99.1% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 4.4184 | 7.5543 | 10.133 | 74.2 | 51.07
Bond | 0.94027 | 1.9781 | 2.7492 | 54.4 | 13.37
Kspace | 0.45487 | 0.45887 | 0.46343 | 0.4 | 3.10
Neigh | 0.28145 | 0.28339 | 0.28539 | 0.3 | 1.92
Comm | 0.7515 | 4.1484 | 8.3861 | 135.5 | 28.05
Output | 0.00049973 | 0.00055474 | 0.00066924 | 0.0 | 0.00
Modify | 0.26165 | 0.31142 | 0.35023 | 6.7 | 2.11
Other | | 0.05572 | | | 0.38
Nlocal: 223 ave 313 max 122 min
Histogram: 1 0 0 1 0 0 0 1 0 1
Nghost: 584.5 ave 605 max 553 min
Histogram: 1 0 0 0 0 1 0 0 0 2
Neighs: 35448 ave 42093 max 25175 min
Histogram: 1 0 0 0 0 0 1 1 0 1
Total # of neighbors = 141792
Ave neighs/atom = 158.96
Ave special neighs/atom = 10.9395
Neighbor list builds = 186
Dangerous builds = 0
unfix cor
unfix 1
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:16

View File

@ -0,0 +1,146 @@
LAMMPS (10 Mar 2017)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide, run for 8ps in NVT
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
thermo 50
#dump dump1 all atom 100 peptide.dump
timestep 8
run_style respa 3 2 8 bond 1 pair 2 kspace 3
Respa levels:
1 = bond angle dihedral improper
2 = pair
3 = kspace
fix 1 all nvt temp 250.0 250.0 100.0 tchain 1
fix cor all filter/corotate m 1.0
19 = # of size 2 clusters
0 = # of size 3 clusters
3 = # of size 4 clusters
0 = # of size 5 clusters
646 = # of frozen angles
run 1000
PPPM initialization ...
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 10648 3375
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory usage (min/avg/max) = 22.6706/1/0 Mbytes
Step Temp E_pair E_mol TotEng Press
0 190.0857 -6785.6785 70.391457 -5580.3684 19434.821
50 239.46028 -7546.5667 1092.8874 -5023.9668 -24643.891
100 242.81799 -7125.5527 416.0788 -5259.7139 15525.465
150 235.97108 -7531.9334 932.35464 -5190.6987 -14838.489
200 252.06415 -7195.6011 568.02993 -5122.6064 8841.332
250 249.99431 -7586.5092 881.83491 -5212.0676 -9330.345
300 240.3382 -7333.0933 633.29951 -5264.8395 5137.9757
350 255.34529 -7568.2413 856.46371 -5187.2226 -6206.063
400 242.99276 -7419.9031 713.23943 -5255.8602 2447.0091
450 251.10653 -7622.061 844.20584 -5278.6079 -4906.6559
500 255.59314 -7439.253 710.84907 -5202.3691 1571.0032
550 253.2025 -7660.5101 823.05373 -5325.695 -4551.399
600 249.05313 -7509.6729 741.48104 -5281.2046 992.87
650 251.75984 -7593.6589 847.08244 -5243.4286 -3510.1176
700 249.25027 -7601.9112 794.0912 -5319.6557 305.76021
750 255.415 -7602.2674 822.98524 -5254.3109 -2333.421
800 241.99621 -7643.8878 796.53352 -5402.5008 -298.66565
850 253.6428 -7598.3764 816.45457 -5267.5316 -1905.3478
900 247.20231 -7690.2806 789.75999 -5424.5838 -1331.7228
950 255.92583 -7634.7505 831.18272 -5275.5466 -2186.5117
1000 253.2126 -7647.9526 823.93602 -5312.195 -1189.9659
Loop time of 150.664 on 1 procs for 1000 steps with 2004 atoms
Performance: 4.588 ns/day, 5.231 hours/ns, 6.637 timesteps/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 135.81 | 135.81 | 135.81 | 0.0 | 90.14
Bond | 2.5889 | 2.5889 | 2.5889 | 0.0 | 1.72
Kspace | 2.0379 | 2.0379 | 2.0379 | 0.0 | 1.35
Neigh | 5.893 | 5.893 | 5.893 | 0.0 | 3.91
Comm | 1.6998 | 1.6998 | 1.6998 | 0.0 | 1.13
Output | 0.00077915 | 0.00077915 | 0.00077915 | 0.0 | 0.00
Modify | 2 | 2 | 2 | 0.0 | 1.33
Other | | 0.6352 | | | 0.42
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11197 ave 11197 max 11197 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 707779 ave 707779 max 707779 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 707779
Ave neighs/atom = 353.183
Ave special neighs/atom = 2.34032
Neighbor list builds = 200
Dangerous builds = 200
unfix cor
unfix 1
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:02:30

View File

@ -0,0 +1,146 @@
LAMMPS (10 Mar 2017)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide, run for 8ps in NVT
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
thermo 50
#dump dump1 all atom 100 peptide.dump
timestep 8
run_style respa 3 2 8 bond 1 pair 2 kspace 3
Respa levels:
1 = bond angle dihedral improper
2 = pair
3 = kspace
fix 1 all nvt temp 250.0 250.0 100.0 tchain 1
fix cor all filter/corotate m 1.0
19 = # of size 2 clusters
0 = # of size 3 clusters
3 = # of size 4 clusters
0 = # of size 5 clusters
646 = # of frozen angles
run 1000
PPPM initialization ...
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 4312 960
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory usage (min/avg/max) = 16.8394/0.98826/0 Mbytes
Step Temp E_pair E_mol TotEng Press
0 190.0857 -6785.6785 70.391457 -5580.3684 19434.821
50 239.46028 -7546.5668 1092.8874 -5023.9668 -24643.891
100 242.81819 -7125.5629 416.08082 -5259.7209 15525.244
150 235.94928 -7531.9186 932.50658 -5190.6621 -14842.431
200 255.85551 -7254.4065 568.8803 -5157.9249 8936.8651
250 247.8705 -7607.4583 858.06087 -5269.4711 -9926.0442
300 257.64176 -7267.424 618.5573 -5110.6004 5173.3307
350 251.65439 -7572.3806 821.15745 -5248.7049 -7092.327
400 256.87927 -7414.2145 655.33178 -5225.169 4119.4095
450 257.12393 -7576.5541 853.39773 -5187.9819 -5224.8823
500 242.42371 -7524.705 705.75357 -5371.5455 2111.3878
550 248.97188 -7541.076 792.86994 -5261.7038 -2278.4185
600 249.81862 -7592.0499 767.17722 -5333.3149 -1149.4759
650 253.31349 -7578.2665 813.75975 -5252.0827 -2915.5706
700 256.61152 -7588.1475 761.03356 -5294.9988 -747.88089
750 248.3606 -7660.457 837.71615 -5339.8883 -3072.8311
800 253.81464 -7638.6089 782.4229 -5340.7698 -1025.909
850 245.69185 -7660.9036 795.66792 -5398.3172 -2717.5851
900 249.13156 -7589.4769 806.43464 -5295.5867 -761.63361
950 251.11482 -7691.4981 869.34937 -5322.852 -3282.3031
1000 241.9195 -7630.9899 828.59107 -5358.0033 -95.962685
Loop time of 45.5507 on 4 procs for 1000 steps with 2004 atoms
Performance: 15.174 ns/day, 1.582 hours/ns, 21.954 timesteps/s
99.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 35.545 | 36.674 | 38.004 | 15.8 | 80.51
Bond | 0.51302 | 0.67796 | 0.86345 | 18.6 | 1.49
Kspace | 0.66031 | 0.68459 | 0.70506 | 2.1 | 1.50
Neigh | 1.5605 | 1.5627 | 1.5649 | 0.1 | 3.43
Comm | 3.4611 | 4.9841 | 6.294 | 47.2 | 10.94
Output | 0.00079799 | 0.00086641 | 0.0010369 | 0.0 | 0.00
Modify | 0.67341 | 0.69059 | 0.71186 | 1.7 | 1.52
Other | | 0.2762 | | | 0.61
Nlocal: 501 ave 523 max 473 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Nghost: 6643.25 ave 6708 max 6566 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 176977 ave 185765 max 164931 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Total # of neighbors = 707908
Ave neighs/atom = 353.248
Ave special neighs/atom = 2.34032
Neighbor list builds = 200
Dangerous builds = 200
unfix cor
unfix 1
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:45

View File

@ -0,0 +1,93 @@
#!/usr/bin/env python -i
# preceding line should have path for Python on your machine
# matplotlib_plot.py
# Purpose: plot Temp of running LAMMPS simulation via matplotlib
# Syntax: plot.py in.lammps Nfreq Nsteps compute-ID
# in.lammps = LAMMPS input script
# Nfreq = plot data point every this many steps
# Nsteps = run for this many steps
# compute-ID = ID of compute that calculates temperature
# (or any other scalar quantity)
from __future__ import print_function
import sys
sys.path.append("./pizza")
import matplotlib
matplotlib.use('tkagg')
import matplotlib.pyplot as plt
# parse command line
argv = sys.argv
if len(argv) != 5:
print("Syntax: plot.py in.lammps Nfreq Nsteps compute-ID")
sys.exit()
infile = sys.argv[1]
nfreq = int(sys.argv[2])
nsteps = int(sys.argv[3])
compute = sys.argv[4]
me = 0
# uncomment if running in parallel via Pypar
#import pypar
#me = pypar.rank()
#nprocs = pypar.size()
from lammps import lammps
lmp = lammps()
# run infile all at once
# assumed to have no run command in it
lmp.file(infile)
lmp.command("thermo %d" % nfreq)
# initial 0-step run to generate initial 1-point plot
lmp.command("run 0 pre yes post no")
value = lmp.extract_compute(compute,0,0)
ntimestep = 0
xaxis = [ntimestep]
yaxis = [value]
# create matplotlib plot
# just proc 0 handles plotting
if me == 0:
fig = plt.figure()
line, = plt.plot(xaxis, yaxis)
plt.xlim([0, nsteps])
plt.title(compute)
plt.xlabel("Timestep")
plt.ylabel("Temperature")
plt.show(block=False)
# run nfreq steps at a time w/out pre/post, query compute, refresh plot
import time
while ntimestep < nsteps:
lmp.command("run %d pre no post no" % nfreq)
ntimestep += nfreq
value = lmp.extract_compute(compute,0,0)
xaxis.append(ntimestep)
yaxis.append(value)
if me == 0:
line.set_xdata(xaxis)
line.set_ydata(yaxis)
ax = plt.gca()
ax.relim()
ax.autoscale_view(True, True, True)
fig.canvas.draw()
lmp.command("run 0 pre no post yes")
# uncomment if running in parallel via Pypar
#print("Proc %d out of %d procs has" % (me,nprocs), lmp)
#pypar.finalize()
if sys.version_info[0] == 3:
input("Press Enter to exit...")
else:
raw_input("Press Enter to exit...")

View File

@ -146,6 +146,8 @@ d.extra(data) extract bond/tri/line list from data
# History
# 8/05, Steve Plimpton (SNL): original version
# 12/09, David Hart (SNL): allow use of NumPy or Numeric
# 03/17, Richard Berger (Temple U): improve Python 3 compatibility,
# simplify read_snapshot by using reshape
# ToDo list
# try to optimize this line in read_snap: words += f.readline().split()
@ -224,7 +226,7 @@ class dump:
self.flist = []
for word in words: self.flist += glob.glob(word)
if len(self.flist) == 0 and len(list) == 1:
raise StandardError("no dump file specified")
raise Exception("no dump file specified")
if len(list) == 1:
self.increment = 0
@ -299,7 +301,7 @@ class dump:
def next(self):
if not self.increment: raise StandardError("cannot read incrementally")
if not self.increment: raise Exception("cannot read incrementally")
# read next snapshot in current file using eof as pointer
# if fail, try next file
@ -344,13 +346,13 @@ class dump:
try:
snap = Snap()
item = f.readline()
snap.time = int(f.readline().split()[0]) # just grab 1st field
snap.time = int(f.readline().decode().split()[0]) # just grab 1st field
item = f.readline()
snap.natoms = int(f.readline())
snap.natoms = int(f.readline().decode())
snap.aselect = np.zeros(snap.natoms)
item = f.readline()
item = f.readline().decode()
words = f.readline().split()
snap.xlo,snap.xhi = float(words[0]),float(words[1])
words = f.readline().split()
@ -358,7 +360,7 @@ class dump:
words = f.readline().split()
snap.zlo,snap.zhi = float(words[0]),float(words[1])
item = f.readline()
item = f.readline().decode()
if len(self.names) == 0:
words = item.split()[2:]
if len(words):
@ -372,24 +374,22 @@ class dump:
else: self.names[words[i]] = i
if snap.natoms:
words = f.readline().split()
words = f.readline().decode().split()
ncol = len(words)
for i in range(1,snap.natoms):
words += f.readline().split()
words += f.readline().decode().split()
floats = map(float,words)
if oldnumeric: atoms = np.zeros((snap.natoms,ncol),np.Float)
else: atoms = np.zeros((snap.natoms,ncol),np.float)
start = 0
stop = ncol
for i in range(snap.natoms):
atoms[i] = floats[start:stop]
start = stop
stop += ncol
else: atoms = None
snap.atoms = atoms
if oldnumeric:
atom_data = np.array(list(floats),np.Float)
else:
atom_data = np.array(list(floats),np.float)
snap.atoms = atom_data.reshape((snap.natoms, ncol))
else:
snap.atoms = None
return snap
except:
return 0
return None
# --------------------------------------------------------------------
# decide if snapshot i is scaled/unscaled from coords of first and last atom
@ -417,7 +417,7 @@ class dump:
def map(self,*pairs):
if len(pairs) % 2 != 0:
raise StandardError("dump map() requires pairs of mappings")
raise Exception("dump map() requires pairs of mappings")
for i in range(0,len(pairs),2):
j = i + 1
self.names[pairs[j]] = pairs[i]-1
@ -734,7 +734,7 @@ class dump:
for snap in self.snaps:
if not snap.tselect: continue
if snap.nselect != len(vec):
raise StandardError("vec length does not match # of selected atoms")
raise Exception("vec length does not match # of selected atoms")
atoms = snap.atoms
m = 0
for i in range(snap.natoms):
@ -800,7 +800,7 @@ class dump:
def atom(self,n,*list):
if len(list) == 0:
raise StandardError("no columns specified")
raise Exception("no columns specified")
columns = []
values = []
for name in list:
@ -816,7 +816,7 @@ class dump:
for i in range(snap.natoms):
if atoms[i][id] == n: break
if atoms[i][id] != n:
raise StandardError("could not find atom ID in snapshot")
raise Exception("could not find atom ID in snapshot")
for j in range(ncol):
values[j][m] = atoms[i][columns[j]]
m += 1
@ -831,7 +831,7 @@ class dump:
snap = self.snaps[self.findtime(n)]
if len(list) == 0:
raise StandardError("no columns specified")
raise Exception("no columns specified")
columns = []
values = []
for name in list:
@ -957,9 +957,9 @@ class dump:
# --------------------------------------------------------------------
def findtime(self,n):
for i in range(self.nsnaps):
if self.snaps[i].time == n: return i
raise StandardError("no step %d exists" % n)
for i, snap in enumerate(self.snaps):
if snap.time == n: return i
raise Exception("no step %d exists" % n)
# --------------------------------------------------------------------
# return maximum box size across all selected snapshots
@ -1008,7 +1008,7 @@ class dump:
nbonds = int(f.readline())
item = f.readline()
if not re.search("BONDS",item):
raise StandardError("could not read bonds from dump file")
raise Exception("could not read bonds from dump file")
words = f.readline().split()
ncol = len(words)
@ -1031,7 +1031,7 @@ class dump:
self.bondflag = 1
self.bondlist = bondlist
except:
raise StandardError("could not read from bond dump file")
raise Exception("could not read from bond dump file")
# request bonds from data object
@ -1047,7 +1047,7 @@ class dump:
self.bondflag = 1
self.bondlist = bondlist
except:
raise StandardError("could not extract bonds from data object")
raise Exception("could not extract bonds from data object")
# request tris/lines from cdata object
@ -1061,7 +1061,7 @@ class dump:
self.lineflag = 1
self.linelist = lines
except:
raise StandardError("could not extract tris/lines from cdata object")
raise Exception("could not extract tris/lines from cdata object")
# request tris from mdump object
@ -1070,10 +1070,10 @@ class dump:
self.triflag = 2
self.triobj = arg
except:
raise StandardError("could not extract tris from mdump object")
raise Exception("could not extract tris from mdump object")
else:
raise StandardError("unrecognized argument to dump.extra()")
raise Exception("unrecognized argument to dump.extra()")
# --------------------------------------------------------------------

View File

@ -638,7 +638,7 @@ class gl:
fraction*(self.scale_stop - self.scale_start)
self.viewupright()
if n == nstart or self.panflag: self.center = compute_center(box)
if n == nstart or self.panflag: self.center = compute_center(box)
if bonds: self.bonds_augment(bonds)

View File

@ -54,6 +54,7 @@ index,time,flag = p.iterator(1)
# History
# 8/05, Steve Plimpton (SNL): original version
# 3/17, Richard Berger (Temple U): improve Python 3 compatibility
# ToDo list
# for generic PDB file (no template) from a LJ unit system,
@ -68,6 +69,12 @@ index,time,flag = p.iterator(1)
# Imports and external programs
import sys, types, glob, urllib
PY3 = sys.version_info[0] == 3
if PY3:
string_types = str,
else:
string_types = basestring
# Class definition
@ -77,7 +84,7 @@ class pdbfile:
def __init__(self,*args):
if len(args) == 1:
if type(args[0]) is types.StringType:
if type(args[0]) is string_types:
filestr = args[0]
self.data = None
else:

View File

@ -42,7 +42,7 @@ lmp = lammps()
lmp.file(infile)
lmp.command("thermo %d" % nfreq)
lmp.command("dump python all cfg %d tmp.cfg.* id type xs ys zs" % nfreq)
lmp.command("dump python all cfg %d tmp.cfg.* mass type xs ys zs id" % nfreq)
# initial 0-step run to generate dump file and image

View File

@ -73,7 +73,7 @@ lmp = lammps()
lmp.file(infile)
lmp.command("thermo %d" % nfreq)
lmp.command("dump python all cfg %d tmp.cfg.* id type xs ys zs" % nfreq)
lmp.command("dump python all cfg %d tmp.cfg.* mass type xs ys zs id" % nfreq)
# initial 0-step run to generate initial 1-point plot, dump file, and image

View File

@ -190,12 +190,15 @@ class lammps(object):
# send a list of commands
def commands_list(self,cmdlist):
args = (c_char_p * len(cmdlist))(*cmdlist)
cmds = [x.encode() for x in cmdlist if type(x) is str]
args = (c_char_p * len(cmdlist))(*cmds)
self.lib.lammps_commands_list(self.lmp,len(cmdlist),args)
# send a string of commands
def commands_string(self,multicmd):
if type(multicmd) is str:
multicmd = multicmd.encode()
self.lib.lammps_commands_string(self.lmp,c_char_p(multicmd))
# extract global info
@ -359,19 +362,27 @@ class lammps(object):
# e.g. for Python list or NumPy, etc
# ditto for gather_atoms() above
def create_atoms(self,n,id,type,x,v):
def create_atoms(self,n,id,type,x,v,image=None,shrinkexceed=False):
if id:
id_lmp = (c_int * n)()
id_lmp[:] = id
else: id_lmp = id
else:
id_lmp = id
if image:
image_lmp = (c_int * n)()
image_lmp[:] = image
else:
image_lmp = image
type_lmp = (c_int * n)()
type_lmp[:] = type
self.lib.lammps_create_atoms(self.lmp,n,id_lmp,type_lmp,x,v)
self.lib.lammps_create_atoms(self.lmp,n,id_lmp,type_lmp,x,v,image_lmp,shrinkexceed)
# document this?
@property
def uses_exceptions(self):
""" Return whether the LAMMPS shared library was compiled with C++ exceptions handling enabled """
try:
if self.lib.lammps_has_error:
return True

4
src/.gitignore vendored
View File

@ -328,6 +328,8 @@
/fix_eos_table.h
/fix_evaporate.cpp
/fix_evaporate.h
/fix_filter_corotate.cpp
/fix_filter_corotate.h
/fix_viscosity.cpp
/fix_viscosity.h
/fix_ehex.cpp
@ -653,6 +655,8 @@
/pair_hbond_dreiding_lj.h
/pair_hbond_dreiding_morse.cpp
/pair_hbond_dreiding_morse.h
/pair_kolmogorov_crespi_z.cpp
/pair_kolmogorov_crespi_z.h
/pair_lcbop.cpp
/pair_lcbop.h
/pair_line_lj.cpp

View File

@ -66,6 +66,7 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) :
virial_flag = 1;
create_attribute = 1;
dof_flag = 1;
// error check
molecular = atom->molecular;

View File

@ -190,6 +190,13 @@ int MPI_Type_size(MPI_Datatype datatype, int *size)
/* ---------------------------------------------------------------------- */
int MPI_Request_free(MPI_Request *request)
{
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Send(const void *buf, int count, MPI_Datatype datatype,
int dest, int tag, MPI_Comm comm)
{

View File

@ -89,6 +89,7 @@ int MPI_Finalize();
double MPI_Wtime();
int MPI_Type_size(int, int *);
int MPI_Request_free(MPI_Request *request);
int MPI_Send(const void *buf, int count, MPI_Datatype datatype,
int dest, int tag, MPI_Comm comm);

View File

@ -34,7 +34,6 @@ FixEOScv::FixEOScv(LAMMPS *lmp, int narg, char **arg) :
cvEOS = force->numeric(FLERR,arg[3]);
if(cvEOS <= 0.0) error->all(FLERR,"EOS cv must be > 0.0");
restart_peratom = 1;
nevery = 1;
if (atom->dpd_flag != 1)

View File

@ -34,7 +34,6 @@ FixEOStable::FixEOStable(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg), ntables(0), tables(NULL)
{
if (narg != 7) error->all(FLERR,"Illegal fix eos/table command");
restart_peratom = 1;
nevery = 1;
if (strcmp(arg[3],"linear") == 0) tabstyle = LINEAR;

View File

@ -44,7 +44,6 @@ FixEOStableRX::FixEOStableRX(LAMMPS *lmp, int narg, char **arg) :
tables2(NULL), dHf(NULL), eosSpecies(NULL)
{
if (narg != 8 && narg != 10) error->all(FLERR,"Illegal fix eos/table/rx command");
restart_peratom = 1;
nevery = 1;
rx_flag = false;

View File

@ -38,6 +38,7 @@ dihedral_style spherical, Andrew Jewett, jewett.aij@gmail.com, 15 Jul 16
dihedral_style table, Andrew Jewett, jewett.aij@gmail.com, 10 Jan 12
fix addtorque, Laurent Joly (U Lyon), ljoly.ulyon at gmail.com, 8 Aug 11
fix ave/correlate/long, Jorge Ramirez (UPM Madrid), jorge.ramirez at upm.es, 21 Oct 2015
fix filter/corotate, Lukas Fath (KIT), lukas.fath at kit.edu, 15 Mar 2017
fix flow/gauss, Joel Eaves (CU Boulder), Joel.Eaves@Colorado.edu, 23 Aug 2016
fix gle, Michele Ceriotti (EPFL Lausanne), michele.ceriotti at gmail.com, 24 Nov 2014
fix grem, David Stelter, dstelter@bu.edu, 22 Nov 16

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,139 @@
/* ----------------------------------------------------------------------
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.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Lukas Fath (KIT)
some subroutines are from fix_shake.cpp
------------------------------------------------------------------------- */
#ifdef FIX_CLASS
FixStyle(filter/corotate,FixFilterCorotate)
#else
#ifndef LMP_FIX_FILTER_COROTATE_H
#define LMP_FIX_FILTER_COROTATE_H
#include "fix.h"
namespace LAMMPS_NS
{
class FixFilterCorotate : public Fix
{
public:
FixFilterCorotate(class LAMMPS *, int, char **);
~FixFilterCorotate();
void setup(int);
void setup_pre_neighbor();
void pre_neighbor();
void setup_pre_force_respa(int,int);
// void setup_post_force_respa(int,int);
void pre_force_respa(int, int, int);
void post_force_respa(int, int, int);
void init();
int setmask();
double compute_array(int,int);
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
void grow_arrays(int );
double memory_usage();
void copy_arrays(int, int, int);
void set_arrays(int);
void update_arrays(int, int);
int pack_exchange(int, double *);
int unpack_exchange(int, double *);
protected:
int me,nprocs;
int flevel; //filtered respa level
double **help2; //temp derivative
double **x_store; //temp for atom->x
double *g; //temp for derivative
double*n1,*n2,*n3, *del1, *del2,*del3;
double**dn1dx,**dn2dx,**dn3dx;
int *bond_flag,*angle_flag; // bond/angle types to constrain
int *type_flag; // constrain bonds to these types
double *mass_list; // constrain bonds to these masses
int nmass; // # of masses in mass_list
int molecular; // copy of atom->molecular
double *bond_distance,*angle_distance; // constraint distances
int nlevels_respa; // copies of needed rRESPA variables
double **x,**v,**f; // local ptrs to atom class quantities
double *mass,*rmass;
int *type;
int nlocal;
// atom-based arrays
int *shake_flag; // 0 if atom not in SHAKE cluster
// 1 = size 3 angle cluster
// 2,3,4 = size of bond-only cluster
tagint **shake_atom; // global IDs of atoms in cluster
// central atom is 1st
// lowest global ID is 1st for size 2
int **shake_type; // bondtype of each bond in cluster
// for angle cluster, 3rd value
// is angletype
int *nshake; // count
int *list; // list of clusters to SHAKE
int nlist,maxlist; // size and max-size of list
double ***clist_derv; //stores derivative
double **clist_q0; //stores reference config
int *clist_nselect1, *clist_nselect2; //stores length of each selec. list
int **clist_select1, **clist_select2; //stores selection lists
void find_clusters();
int masscheck(double);
void filter_inner();
void filter_outer();
void general_cluster(int,int);
void stats();
int bondtype_findset(int, tagint, tagint, int);
int angletype_findset(int, tagint, tagint, int);
// static variable for ring communication callback to access class data
// callback functions for ring communication
static FixFilterCorotate *fsptr;
static void ring_bonds(int, char *);
static void ring_nshake(int, char *);
static void ring_shake(int, char *);
int sgn(double val) {
return (0 < val) - (val < 0);
};
};
}
#endif
#endif

View File

@ -38,7 +38,8 @@ enum{KEYWORD,COMPUTE,FIX,VARIABLE,DNAME,INAME};
FixStoreState::FixStoreState(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg),
nvalues(0), which(NULL), argindex(NULL), value2index(NULL), ids(NULL), values(NULL),
nvalues(0), which(NULL), argindex(NULL), value2index(NULL),
ids(NULL), values(NULL),
vbuf(NULL), pack_choice(NULL)
{
if (narg < 5) error->all(FLERR,"Illegal fix store/state command");
@ -1046,7 +1047,8 @@ void FixStoreState::pack_ysu(int n)
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit)
vbuf[n] = (x[i][1]-boxylo)*invyprd + (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
vbuf[n] = (x[i][1]-boxylo)*invyprd +
(image[i] >> IMGBITS & IMGMASK) - IMGMAX;
else vbuf[n] = 0.0;
n += nvalues;
}
@ -1158,7 +1160,8 @@ void FixStoreState::pack_iy(int n)
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
if (mask[i] & groupbit)
vbuf[n] = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
else vbuf[n] = 0.0;
n += nvalues;
}

View File

@ -72,32 +72,33 @@ enum {COMPUTES=1<<0,
REGIONS=1<<4,
CONFIG=1<<5,
TIME=1<<6,
VARIABLES=1<<7,
SYSTEM=1<<8,
COMM=1<<9,
ATOM_STYLES=1<<10,
INTEGRATE_STYLES=1<<11,
MINIMIZE_STYLES=1<<12,
PAIR_STYLES=1<<13,
BOND_STYLES=1<<14,
ANGLE_STYLES=1<<15,
DIHEDRAL_STYLES=1<<16,
IMPROPER_STYLES=1<<17,
KSPACE_STYLES=1<<18,
FIX_STYLES=1<<19,
COMPUTE_STYLES=1<<20,
REGION_STYLES=1<<21,
DUMP_STYLES=1<<22,
COMMAND_STYLES=1<<23,
MEMORY=1<<7,
VARIABLES=1<<8,
SYSTEM=1<<9,
COMM=1<<10,
ATOM_STYLES=1<<11,
INTEGRATE_STYLES=1<<12,
MINIMIZE_STYLES=1<<13,
PAIR_STYLES=1<<14,
BOND_STYLES=1<<15,
ANGLE_STYLES=1<<16,
DIHEDRAL_STYLES=1<<17,
IMPROPER_STYLES=1<<18,
KSPACE_STYLES=1<<19,
FIX_STYLES=1<<20,
COMPUTE_STYLES=1<<21,
REGION_STYLES=1<<22,
DUMP_STYLES=1<<23,
COMMAND_STYLES=1<<24,
ALL=~0};
static const int STYLES = ATOM_STYLES | INTEGRATE_STYLES | MINIMIZE_STYLES | PAIR_STYLES | BOND_STYLES | \
ANGLE_STYLES | DIHEDRAL_STYLES | IMPROPER_STYLES | KSPACE_STYLES | FIX_STYLES | \
COMPUTE_STYLES | REGION_STYLES | DUMP_STYLES | COMMAND_STYLES;
static const int STYLES = ATOM_STYLES | INTEGRATE_STYLES | MINIMIZE_STYLES
| PAIR_STYLES | BOND_STYLES | ANGLE_STYLES
| DIHEDRAL_STYLES | IMPROPER_STYLES | KSPACE_STYLES
| FIX_STYLES | COMPUTE_STYLES | REGION_STYLES
| DUMP_STYLES | COMMAND_STYLES;
}
static const char *varstyles[] = {
"index", "loop", "world", "universe", "uloop", "string", "getenv",
"file", "atomfile", "format", "equal", "atom", "python", "(unknown)"};
@ -174,6 +175,9 @@ void Info::command(int narg, char **arg)
} else if (strncmp(arg[idx],"time",3) == 0) {
flags |= TIME;
++idx;
} else if (strncmp(arg[idx],"memory",3) == 0) {
flags |= MEMORY;
++idx;
} else if (strncmp(arg[idx],"variables",3) == 0) {
flags |= VARIABLES;
++idx;
@ -293,27 +297,42 @@ void Info::command(int narg, char **arg)
fprintf(out,"\nOS information: %s %s on %s\n",
ut.sysname, ut.release, ut.machine);
#endif
}
if (flags & MEMORY) {
fprintf(out,"\nMemory allocation information (MPI rank 0)\n");
fprintf(out,"\nMemory allocation information (MPI rank 0):\n\n");
bigint bytes = 0;
bytes += atom->memory_usage();
bytes += neighbor->memory_usage();
bytes += comm->memory_usage();
bytes += update->memory_usage();
bytes += force->memory_usage();
bytes += modify->memory_usage();
for (int i = 0; i < output->ndump; i++)
bytes += output->dump[i]->memory_usage();
double mbytes = bytes/1024.0/1024.0;
fprintf(out,"Total dynamically allocated memory: %.4g Mbyte\n",mbytes);
#if defined(_WIN32)
HANDLE phandle = GetCurrentProcess();
PROCESS_MEMORY_COUNTERS_EX pmc;
GetProcessMemoryInfo(phandle,(PROCESS_MEMORY_COUNTERS *)&pmc,sizeof(pmc));
fprintf(out,"Non-shared memory use: %.3g Mbyte\n",
fprintf(out,"Non-shared memory use: %.4g Mbyte\n",
(double)pmc.PrivateUsage/1048576.0);
fprintf(out,"Maximum working set size: %.3g Mbyte\n",
fprintf(out,"Maximum working set size: %.4g Mbyte\n",
(double)pmc.PeakWorkingSetSize/1048576.0);
#else
#if defined(__linux)
struct mallinfo mi;
mi = mallinfo();
fprintf(out,"Total dynamically allocated memory: %.3g Mbyte\n",
(double)mi.uordblks/1048576.0);
fprintf(out,"Current reserved memory pool size: %.4g Mbyte\n",
(double)mi.uordblks/1048576.0+(double)mi.hblkhd/1048576.0);
#endif
struct rusage ru;
if (getrusage(RUSAGE_SELF, &ru) == 0) {
fprintf(out,"Maximum resident set size: %.3g Mbyte\n",
fprintf(out,"Maximum resident set size: %.4g Mbyte\n",
(double)ru.ru_maxrss/1024.0);
}
#endif

View File

@ -297,9 +297,11 @@ int Irregular::create_atom(int n, int *sizes, int *proclist, int sortflag)
// setup for collective comm
// work1 = 1 for procs I send a message to, not including self
// work2 = 1 for all procs, used for ReduceScatter
for (i = 0; i < nprocs; i++) {
work1[i] = 0;
work2[i] = 1;
}
for (i = 0; i < n; i++) work1[proclist[i]] = 1;
work1[me] = 0;
@ -316,7 +318,7 @@ int Irregular::create_atom(int n, int *sizes, int *proclist, int sortflag)
MPI_Allreduce(work1,work2,nprocs,MPI_INT,MPI_SUM,world);
nrecv_proc = work2[me];
#else
MPI_Reduce_scatter_block(work1,&nrecv_proc,1,MPI_INT,MPI_SUM,world);
MPI_Reduce_scatter(work1,&nrecv_proc,work2,MPI_INT,MPI_SUM,world);
#endif
#endif
@ -543,9 +545,11 @@ int Irregular::create_data(int n, int *proclist, int sortflag)
// setup for collective comm
// work1 = 1 for procs I send a message to, not including self
// work2 = 1 for all procs, used for ReduceScatter
for (i = 0; i < nprocs; i++) {
work1[i] = 0;
work2[i] = 1;
}
for (i = 0; i < n; i++) work1[proclist[i]] = 1;
work1[me] = 0;
@ -562,7 +566,7 @@ int Irregular::create_data(int n, int *proclist, int sortflag)
MPI_Allreduce(work1,work2,nprocs,MPI_INT,MPI_SUM,world);
nrecv_proc = work2[me];
#else
MPI_Reduce_scatter_block(work1,&nrecv_proc,1,MPI_INT,MPI_SUM,world);
MPI_Reduce_scatter(work1,&nrecv_proc,work2,MPI_INT,MPI_SUM,world);
#endif
#endif

View File

@ -971,11 +971,9 @@ void lammps_create_atoms(void *ptr, int n, tagint *id, int *type,
xdata[0] = x[3*i];
xdata[1] = x[3*i+1];
xdata[2] = x[3*i+2];
if (image) {
if (!domain->ownatom(id[i],xdata,&image[i],shrinkexceed)) continue;
} else {
if (!domain->ownatom(id[i],xdata,NULL,shrinkexceed)) continue;
}
imageint * img = image ? &image[i] : NULL;
tagint tag = id ? id[i] : -1;
if (!domain->ownatom(tag, xdata, img, shrinkexceed)) continue;
atom->avec->create_atom(type[i],xdata);
if (id) atom->tag[nlocal] = id[i];

View File

@ -812,9 +812,9 @@ void Output::create_restart(int narg, char **arg)
sum and print memory usage
result is only memory on proc 0, not averaged across procs
------------------------------------------------------------------------- */
void Output::memory_usage()
{
bigint bytes = 0;
bytes += atom->memory_usage();
bytes += neighbor->memory_usage();
@ -825,11 +825,18 @@ void Output::memory_usage()
for (int i = 0; i < ndump; i++) bytes += dump[i]->memory_usage();
double mbytes = bytes/1024.0/1024.0;
double mbavg,mbmin,mbmax;
MPI_Reduce(&mbytes,&mbavg,1,MPI_DOUBLE,MPI_SUM,0,world);
MPI_Reduce(&mbytes,&mbmin,1,MPI_DOUBLE,MPI_MIN,0,world);
MPI_Reduce(&mbytes,&mbmax,1,MPI_DOUBLE,MPI_MAX,0,world);
mbavg /= comm->nprocs;
if (comm->me == 0) {
if (screen)
fprintf(screen,"Memory usage per processor = %g Mbytes\n",mbytes);
fprintf(screen,"Per MPI rank memory allocation (min/avg/max) = "
"%.4g | %.4g | %.4g Mbytes\n",mbmin,mbavg,mbmax);
if (logfile)
fprintf(logfile,"Memory usage per processor = %g Mbytes\n",mbytes);
fprintf(logfile,"Per MPI rank memory allocation (min/avg/max) = "
"%.4g | %.4g | %.4g Mbytes\n",mbmin,mbavg,mbmax);
}
}

View File

@ -1176,7 +1176,6 @@ void median_merge(void *in, void *inout, int *len, MPI_Datatype *dptr)
void RCB::invert(int sortflag)
{
// only create Irregular if not previously created
// allows Irregular to persist for multiple RCB calls by fix balance

View File

@ -1 +1 @@
#define LAMMPS_VERSION "10 Mar 2017"
#define LAMMPS_VERSION "17 Mar 2017"