Merge branch 'master' of https://github.com/lammps/lammps into USER-DPD_kokkos
This commit is contained in:
13
doc/Makefile
13
doc/Makefile
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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,
|
||||
|
||||
87
doc/src/fix_filter_corotate.txt
Normal file
87
doc/src/fix_filter_corotate.txt
Normal 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).
|
||||
@ -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).
|
||||
|
||||
@ -42,6 +42,7 @@ Fixes :h1
|
||||
fix_eos_table_rx
|
||||
fix_evaporate
|
||||
fix_external
|
||||
fix_filter_corotate
|
||||
fix_flow_gauss
|
||||
fix_freeze
|
||||
fix_gcmc
|
||||
|
||||
@ -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:]
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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).
|
||||
|
||||
@ -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)
|
||||
|
||||
60
doc/utils/converters/lammpsdoc/doc_anchor_check.py
Executable file
60
doc/utils/converters/lammpsdoc/doc_anchor_check.py
Executable 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()
|
||||
@ -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 ']
|
||||
},
|
||||
)
|
||||
|
||||
6587
examples/USER/misc/filter-corotate/data.bpti
Normal file
6587
examples/USER/misc/filter-corotate/data.bpti
Normal file
File diff suppressed because it is too large
Load Diff
6531
examples/USER/misc/filter-corotate/data.peptide
Normal file
6531
examples/USER/misc/filter-corotate/data.peptide
Normal file
File diff suppressed because it is too large
Load Diff
43
examples/USER/misc/filter-corotate/in.bpti
Normal file
43
examples/USER/misc/filter-corotate/in.bpti
Normal 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
|
||||
|
||||
32
examples/USER/misc/filter-corotate/in.peptide
Normal file
32
examples/USER/misc/filter-corotate/in.peptide
Normal 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
|
||||
|
||||
|
||||
|
||||
240
examples/USER/misc/filter-corotate/log.10Mar2017.bpti.g++.1
Normal file
240
examples/USER/misc/filter-corotate/log.10Mar2017.bpti.g++.1
Normal 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
|
||||
240
examples/USER/misc/filter-corotate/log.10Mar2017.bpti.g++.4
Normal file
240
examples/USER/misc/filter-corotate/log.10Mar2017.bpti.g++.4
Normal 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
|
||||
146
examples/USER/misc/filter-corotate/log.10Mar2017.peptide.g++.1
Normal file
146
examples/USER/misc/filter-corotate/log.10Mar2017.peptide.g++.1
Normal 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
|
||||
146
examples/USER/misc/filter-corotate/log.10Mar2017.peptide.g++.4
Normal file
146
examples/USER/misc/filter-corotate/log.10Mar2017.peptide.g++.4
Normal 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
|
||||
93
python/examples/matplotlib_plot.py
Executable file
93
python/examples/matplotlib_plot.py
Executable 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...")
|
||||
@ -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()")
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
4
src/.gitignore
vendored
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
2017
src/USER-MISC/fix_filter_corotate.cpp
Normal file
2017
src/USER-MISC/fix_filter_corotate.cpp
Normal file
File diff suppressed because it is too large
Load Diff
139
src/USER-MISC/fix_filter_corotate.h
Normal file
139
src/USER-MISC/fix_filter_corotate.h
Normal 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
|
||||
@ -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;
|
||||
}
|
||||
|
||||
75
src/info.cpp
75
src/info.cpp
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
#define LAMMPS_VERSION "10 Mar 2017"
|
||||
#define LAMMPS_VERSION "17 Mar 2017"
|
||||
|
||||
Reference in New Issue
Block a user