Updating to master
This commit is contained in:
@ -100,6 +100,7 @@ epub: $(OBJECTS)
|
||||
|
||||
pdf: utils/txt2html/txt2html.exe
|
||||
@(\
|
||||
set -e; \
|
||||
cd src; \
|
||||
../utils/txt2html/txt2html.exe -b *.txt; \
|
||||
htmldoc --batch lammps.book; \
|
||||
|
||||
BIN
doc/src/Eqs/cnp_cutoff.jpg
Normal file
BIN
doc/src/Eqs/cnp_cutoff.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
14
doc/src/Eqs/cnp_cutoff.tex
Normal file
14
doc/src/Eqs/cnp_cutoff.tex
Normal file
@ -0,0 +1,14 @@
|
||||
\documentclass[12pt,article]{article}
|
||||
|
||||
\usepackage{indentfirst}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
r_{c}^{fcc} & = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) \mathrm{a} \simeq 0.8536 \:\mathrm{a} \\
|
||||
r_{c}^{bcc} & = & \frac{1}{2}(\sqrt{2} + 1) \mathrm{a} \simeq 1.207 \:\mathrm{a} \\
|
||||
r_{c}^{hcp} & = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) \mathrm{a}
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/cnp_cutoff2.jpg
Normal file
BIN
doc/src/Eqs/cnp_cutoff2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
12
doc/src/Eqs/cnp_cutoff2.tex
Normal file
12
doc/src/Eqs/cnp_cutoff2.tex
Normal file
@ -0,0 +1,12 @@
|
||||
\documentclass[12pt,article]{article}
|
||||
|
||||
\usepackage{indentfirst}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
Rc + Rs > 2*{\rm cutoff}
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/cnp_eq.jpg
Normal file
BIN
doc/src/Eqs/cnp_eq.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
9
doc/src/Eqs/cnp_eq.tex
Normal file
9
doc/src/Eqs/cnp_eq.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
Q_{i} = \frac{1}{n_i}\sum_{j = 1}^{n_i} | \sum_{k = 1}^{n_{ij}} \vec{R}_{ik} + \vec{R}_{jk} |^2
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
@ -1,11 +0,0 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
F & = & F_{\mathrm{LJ}}(r) - F_{\mathrm{LJ}}(r_{\mathrm{c}}) \qquad r < r_{\mathrm{c}} \\
|
||||
E & = & E_{\mathrm{LJ}}(r) - E_{\mathrm{LJ}}(r_{\mathrm{c}}) + (r - r_{\mathrm{c}}) F_{\mathrm{LJ}}(r_{\mathrm{c}}) \qquad r < r_{\mathrm{c}} \\
|
||||
\mathrm{with} \qquad E_{\mathrm{LJ}}(r) & = & 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] \qquad \mathrm{and} \qquad F_{\mathrm{LJ}}(r) = - E^\prime_{\mathrm{LJ}}(r)
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
@ -717,7 +717,7 @@ package"_Section_start.html#start_3.
|
||||
"phonon"_fix_phonon.html,
|
||||
"pimd"_fix_pimd.html,
|
||||
"qbmsst"_fix_qbmsst.html,
|
||||
"qeq/reax"_fix_qeq_reax.html,
|
||||
"qeq/reax (ko)"_fix_qeq_reax.html,
|
||||
"qmmm"_fix_qmmm.html,
|
||||
"qtb"_fix_qtb.html,
|
||||
"reax/c/bonds"_fix_reax_bonds.html,
|
||||
@ -831,6 +831,7 @@ package"_Section_start.html#start_3.
|
||||
|
||||
"ackland/atom"_compute_ackland_atom.html,
|
||||
"basal/atom"_compute_basal_atom.html,
|
||||
"cnp/atom"_compute_cnp_atom.html,
|
||||
"dpd"_compute_dpd.html,
|
||||
"dpd/atom"_compute_dpd_atom.html,
|
||||
"fep"_compute_fep.html,
|
||||
@ -1038,7 +1039,6 @@ package"_Section_start.html#start_3.
|
||||
"lj/sdk (gko)"_pair_sdk.html,
|
||||
"lj/sdk/coul/long (go)"_pair_sdk.html,
|
||||
"lj/sdk/coul/msm (o)"_pair_sdk.html,
|
||||
"lj/sf (o)"_pair_lj_sf.html,
|
||||
"meam/spline (o)"_pair_meam_spline.html,
|
||||
"meam/sw/spline"_pair_meam_sw_spline.html,
|
||||
"mgpt"_pair_mgpt.html,
|
||||
@ -1057,7 +1057,7 @@ package"_Section_start.html#start_3.
|
||||
"oxdna2/excv"_pair_oxdna2.html,
|
||||
"oxdna2/stk"_pair_oxdna2.html,
|
||||
"quip"_pair_quip.html,
|
||||
"reax/c (k)"_pair_reaxc.html,
|
||||
"reax/c (ko)"_pair_reaxc.html,
|
||||
"smd/hertz"_pair_smd_hertz.html,
|
||||
"smd/tlsph"_pair_smd_tlsph.html,
|
||||
"smd/triangulated/surface"_pair_smd_triangulated_surface.html,
|
||||
|
||||
@ -8890,6 +8890,14 @@ This is a requirement to use this potential. :dd
|
||||
|
||||
See the newton command. This is a restriction to use this potential. :dd
|
||||
|
||||
{Pair style vashishta/gpu requires atom IDs} :dt
|
||||
|
||||
This is a requirement to use this potential. :dd
|
||||
|
||||
{Pair style vashishta/gpu requires newton pair off} :dt
|
||||
|
||||
See the newton command. This is a restriction to use this potential. :dd
|
||||
|
||||
{Pair style tersoff/gpu requires atom IDs} :dt
|
||||
|
||||
This is a requirement to use the tersoff/gpu potential. :dd
|
||||
|
||||
@ -1502,7 +1502,7 @@ oxDNA model of Doye, Louis and Ouldridge at the University of Oxford.
|
||||
This includes Langevin-type rigid-body integrators with improved
|
||||
stability.
|
||||
|
||||
[Author:] Oliver Henrich (University of Edinburgh).
|
||||
[Author:] Oliver Henrich (University of Strathclyde, Glasgow).
|
||||
|
||||
[Install or un-install:]
|
||||
|
||||
@ -2027,8 +2027,8 @@ algorithm to formulate single-particle constraint functions
|
||||
g(xi,yi,zi) = 0 and their derivative (i.e. the normal of the manifold)
|
||||
n = grad(g).
|
||||
|
||||
[Author:] Stefan Paquay (Eindhoven University of Technology (TU/e), The
|
||||
Netherlands)
|
||||
[Author:] Stefan Paquay (until 2017: Eindhoven University of Technology (TU/e), The
|
||||
Netherlands; since 2017: Brandeis University, Waltham, MA, USA)
|
||||
|
||||
[Install or un-install:]
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ Define a computation that calculates the CNA (Common Neighbor
|
||||
Analysis) pattern for each atom in the group. In solid-state systems
|
||||
the CNA pattern is a useful measure of the local crystal structure
|
||||
around an atom. The CNA methodology is described in "(Faken)"_#Faken
|
||||
and "(Tsuzuki)"_#Tsuzuki.
|
||||
and "(Tsuzuki)"_#Tsuzuki1.
|
||||
|
||||
Currently, there are five kinds of CNA patterns LAMMPS recognizes:
|
||||
|
||||
@ -93,5 +93,5 @@ above.
|
||||
:link(Faken)
|
||||
[(Faken)] Faken, Jonsson, Comput Mater Sci, 2, 279 (1994).
|
||||
|
||||
:link(Tsuzuki)
|
||||
:link(Tsuzuki1)
|
||||
[(Tsuzuki)] Tsuzuki, Branicio, Rino, Comput Phys Comm, 177, 518 (2007).
|
||||
|
||||
111
doc/src/compute_cnp_atom.txt
Normal file
111
doc/src/compute_cnp_atom.txt
Normal file
@ -0,0 +1,111 @@
|
||||
"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
|
||||
|
||||
compute cnp/atom command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID cnp/atom cutoff :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
cnp/atom = style name of this compute command
|
||||
cutoff = cutoff distance for nearest neighbors (distance units) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all cnp/atom 3.08 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the Common Neighborhood
|
||||
Parameter (CNP) for each atom in the group. In solid-state systems
|
||||
the CNP is a useful measure of the local crystal structure
|
||||
around an atom and can be used to characterize whether the
|
||||
atom is part of a perfect lattice, a local defect (e.g. a dislocation
|
||||
or stacking fault), or at a surface.
|
||||
|
||||
The value of the CNP parameter will be 0.0 for atoms not in the
|
||||
specified compute group. Note that normally a CNP calculation should
|
||||
only be performed on single component systems.
|
||||
|
||||
This parameter is computed using the following formula from
|
||||
"(Tsuzuki)"_#Tsuzuki2
|
||||
|
||||
:c,image(Eqs/cnp_eq.jpg)
|
||||
|
||||
where the index {j} goes over the {n}i nearest neighbors of atom
|
||||
{i}, and the index {k} goes over the {n}ij common nearest neighbors
|
||||
between atom {i} and atom {j}. Rik and Rjk are the vectors connecting atom
|
||||
{k} to atoms {i} and {j}. The quantity in the double sum is computed
|
||||
for each atom.
|
||||
|
||||
The CNP calculation is sensitive to the specified cutoff value.
|
||||
You should ensure that the appropriate nearest neighbors of an atom are
|
||||
found within the cutoff distance for the presumed crystal structure.
|
||||
E.g. 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest
|
||||
neighbors for perfect BCC crystals. These formulas can be used to
|
||||
obtain a good cutoff distance:
|
||||
|
||||
:c,image(Eqs/cnp_cutoff.jpg)
|
||||
|
||||
where a is the lattice constant for the crystal structure concerned
|
||||
and in the HCP case, x = (c/a) / 1.633, where 1.633 is the ideal c/a
|
||||
for HCP crystals.
|
||||
|
||||
Also note that since the CNP calculation in LAMMPS uses the neighbors
|
||||
of an owned atom to find the nearest neighbors of a ghost atom, the
|
||||
following relation should also be satisfied:
|
||||
|
||||
:c,image(Eqs/cnp_cutoff2.jpg)
|
||||
|
||||
where Rc is the cutoff distance of the potential, Rs is the skin
|
||||
distance as specified by the "neighbor"_neighbor.html command, and
|
||||
cutoff is the argument used with the compute cnp/atom command. LAMMPS
|
||||
will issue a warning if this is not the case.
|
||||
|
||||
The neighbor list needed to compute this quantity is constructed each
|
||||
time the calculation is performed (e.g. each time a snapshot of atoms
|
||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||
too frequently or to have multiple compute/dump commands, each with a
|
||||
{cnp/atom} style.
|
||||
|
||||
[Output info:]
|
||||
|
||||
This compute calculates a per-atom vector, which can be accessed by
|
||||
any command that uses per-atom values from a compute as input. See
|
||||
"Section 6.15"_Section_howto.html#howto_15 for an overview of
|
||||
LAMMPS output options.
|
||||
|
||||
The per-atom vector values will be real positive numbers. Some typical CNP
|
||||
values:
|
||||
|
||||
FCC lattice = 0.0
|
||||
BCC lattice = 0.0
|
||||
HCP lattice = 4.4 :pre
|
||||
|
||||
FCC (111) surface ~ 13.0
|
||||
FCC (100) surface ~ 26.5
|
||||
FCC dislocation core ~ 11 :pre
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This compute 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.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute cna/atom"_compute_cna_atom.html
|
||||
"compute centro/atom"_compute_centro_atom.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Tsuzuki2)
|
||||
[(Tsuzuki)] Tsuzuki, Branicio, Rino, Comput Phys Comm, 177, 518 (2007).
|
||||
@ -231,11 +231,12 @@ the numbers of columns are 930, 2790, and 5580, respectively.
|
||||
|
||||
If the {quadratic} keyword value is set to 1, then additional
|
||||
columns are appended to each per-atom array, corresponding to
|
||||
a matrix of quantities that are products of two bispectrum components. If the
|
||||
number of bispectrum components is {K}, then the number of matrix elements
|
||||
is {K}^2. These are output in subblocks of {K}^2 columns, using the same
|
||||
ordering of columns and sub-blocks as was used for the bispectrum
|
||||
components.
|
||||
the products of all distinct pairs of bispectrum components. If the
|
||||
number of bispectrum components is {K}, then the number of distinct pairs
|
||||
is {K}({K}+1)/2. These are output in subblocks of {K}({K}+1)/2 columns, using the same
|
||||
ordering of sub-blocks as was used for the bispectrum
|
||||
components. Within each sub-block, the ordering is upper-triangular,
|
||||
(1,1),(1,2)...(1,{K}),(2,1)...({K}-1,{K}-1),({K}-1,{K}),({K},{K})
|
||||
|
||||
These values can be accessed by any command that uses per-atom values
|
||||
from a compute as input. See "Section
|
||||
|
||||
@ -17,6 +17,7 @@ Computes :h1
|
||||
compute_chunk_atom
|
||||
compute_cluster_atom
|
||||
compute_cna_atom
|
||||
compute_cnp_atom
|
||||
compute_com
|
||||
compute_com_chunk
|
||||
compute_contact_atom
|
||||
|
||||
@ -18,6 +18,7 @@ dihedral_coeff 1 1 286.1 1 124 1 1 90.0 0 1 90.0 0
|
||||
dihedral_coeff 1 3 69.3 1 93.9 1 1 90 0 1 90 0 &
|
||||
49.1 0 0.00 0 1 74.4 1 0 0.00 0 &
|
||||
25.2 0 0.00 0 0 0.00 0 1 48.1 1
|
||||
:pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
||||
@ -16,7 +16,8 @@ dump-ID = ID of dump to modify :ulb,l
|
||||
one or more keyword/value pairs may be appended :l
|
||||
these keywords apply to various dump styles :l
|
||||
keyword = {append} or {buffer} or {element} or {every} or {fileper} or {first} or {flush} or {format} or {image} or {label} or {nfile} or {pad} or {precision} or {region} or {scale} or {sort} or {thresh} or {unwrap} :l
|
||||
{append} arg = {yes} or {no}
|
||||
{append} arg = {yes} or {no} or {at} N
|
||||
N = index of frame written upon first dump
|
||||
{buffer} arg = {yes} or {no}
|
||||
{element} args = E1 E2 ... EN, where N = # of atom types
|
||||
E1,...,EN = element name, e.g. C or Fe or Ga
|
||||
@ -41,6 +42,7 @@ keyword = {append} or {buffer} or {element} or {every} or {fileper} or {first} o
|
||||
{region} arg = region-ID or "none"
|
||||
{scale} arg = {yes} or {no}
|
||||
{sfactor} arg = coordinate scaling factor (> 0.0)
|
||||
{thermo} arg = {yes} or {no}
|
||||
{tfactor} arg = time scaling factor (> 0.0)
|
||||
{sort} arg = {off} or {id} or N or -N
|
||||
off = no sorting of per-atom lines within a snapshot
|
||||
@ -139,12 +141,13 @@ and {dcd}. It also applies only to text output files, not to binary
|
||||
or gzipped or image/movie files. If specified as {yes}, then dump
|
||||
snapshots are appended to the end of an existing dump file. If
|
||||
specified as {no}, then a new dump file will be created which will
|
||||
overwrite an existing file with the same name. This keyword can only
|
||||
take effect if the dump_modify command is used after the
|
||||
"dump"_dump.html command, but before the first command that causes
|
||||
dump snapshots to be output, e.g. a "run"_run.html or
|
||||
"minimize"_minimize.html command. Once the dump file has been opened,
|
||||
this keyword has no further effect.
|
||||
overwrite an existing file with the same name. If the {at} option is present
|
||||
({netcdf} only), then the frame to append to can be specified. Negative values
|
||||
are counted from the end of the file. This keyword can only take effect if the
|
||||
dump_modify command is used after the "dump"_dump.html command, but before the
|
||||
first command that causes dump snapshots to be output, e.g. a "run"_run.html or
|
||||
"minimize"_minimize.html command. Once the dump file has been opened, this
|
||||
keyword has no further effect.
|
||||
|
||||
:line
|
||||
|
||||
@ -413,6 +416,13 @@ most effective when the typical magnitude of position data is between
|
||||
|
||||
:line
|
||||
|
||||
The {thermo} keyword ({netcdf} only) triggers writing of "thermo"_thermo.html
|
||||
information to the dump file alongside per-atom data. The data included in the
|
||||
dump file is identical to the data specified by
|
||||
"thermo_style"_thermo_style.html.
|
||||
|
||||
:line
|
||||
|
||||
The {region} keyword only applies to the dump {custom}, {cfg},
|
||||
{image}, and {movie} styles. If specified, only atoms in the region
|
||||
will be written to the dump file or included in the image/movie. Only
|
||||
|
||||
@ -24,7 +24,7 @@ args = list of atom attributes, same as for "dump_style custom"_dump.html :l,ule
|
||||
[Examples:]
|
||||
|
||||
dump 1 all netcdf 100 traj.nc type x y z vx vy vz
|
||||
dump_modify 1 append yes at -1 global c_thermo_pe c_thermo_temp c_thermo_press
|
||||
dump_modify 1 append yes at -1 thermo yes
|
||||
dump 1 all netcdf/mpiio 1000 traj.nc id type x y z :pre
|
||||
|
||||
[Description:]
|
||||
@ -44,7 +44,7 @@ rank.
|
||||
NetCDF files can be directly visualized via the following tools:
|
||||
|
||||
Ovito (http://www.ovito.org/). Ovito supports the AMBER convention and
|
||||
all of the above extensions. :ule,b
|
||||
all extensions of this dump style. :ule,b
|
||||
|
||||
VMD (http://www.ks.uiuc.edu/Research/vmd/). :l
|
||||
|
||||
@ -52,15 +52,9 @@ AtomEye (http://www.libatoms.org/). The libAtoms version of AtomEye
|
||||
contains a NetCDF reader that is not present in the standard
|
||||
distribution of AtomEye. :l,ule
|
||||
|
||||
In addition to per-atom data, global data can be included in the dump
|
||||
file, which are the kinds of values output by the
|
||||
"thermo_style"_thermo_style.html command . See "Section howto
|
||||
6.15"_Section_howto.html#howto_15 for an explanation of per-atom
|
||||
versus global data. The global output written into the dump file can
|
||||
be from computes, fixes, or variables, by prefixing the compute/fix ID
|
||||
or variable name with "c_" or "f_" or "v_" respectively, as in the
|
||||
example above. These global values are specified via the "dump_modify
|
||||
global"_dump_modify.html command.
|
||||
In addition to per-atom data, "thermo"_thermo.html data can be included in the
|
||||
dump file. The data included in the dump file is identical to the data specified
|
||||
by "thermo_style"_thermo_style.html.
|
||||
|
||||
:link(netcdf-home,http://www.unidata.ucar.edu/software/netcdf/)
|
||||
:link(pnetcdf-home,http://trac.mcs.anl.gov/projects/parallel-netcdf/)
|
||||
|
||||
@ -47,7 +47,7 @@ keyword = {scale} or {reset} :l
|
||||
fix 1 all adapt 1 pair soft a 1 1 v_prefactor
|
||||
fix 1 all adapt 1 pair soft a 2* 3 v_prefactor
|
||||
fix 1 all adapt 1 pair lj/cut epsilon * * v_scale1 coul/cut scale 3 3 v_scale2 scale yes reset yes
|
||||
fix 1 all adapt 10 atom diameter v_size
|
||||
fix 1 all adapt 10 atom diameter v_size :pre
|
||||
|
||||
variable ramp_up equal "ramp(0.01,0.5)"
|
||||
fix stretch all adapt 1 bond harmonic r0 1 v_ramp_up :pre
|
||||
|
||||
@ -565,8 +565,10 @@ more instructions on how to use the accelerated styles effectively.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
||||
This fix will restore the initial box settings from "binary restart
|
||||
files"_restart.html, which allows the fix to be properly continue
|
||||
deformation, when using the start/stop options of the "run"_run.html
|
||||
command. None of the "fix_modify"_fix_modify.html options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various "output
|
||||
commands"_Section_howto.html#howto_15.
|
||||
|
||||
@ -67,11 +67,11 @@ The Langevin forces are computed as
|
||||
\(F_r'\) is a random force proportional to
|
||||
\(\sqrt \{ \frac \{2\, k_B \mathtt\{Tcom\}\, m'\}
|
||||
\{\mathrm dt\, \mathtt\{damp\_com\} \}
|
||||
\} \). :b
|
||||
\} \).
|
||||
\(f_r'\) is a random force proportional to
|
||||
\(\sqrt \{ \frac \{2\, k_B \mathtt\{Tdrude\}\, m'\}
|
||||
\{\mathrm dt\, \mathtt\{damp\_drude\} \}
|
||||
\} \). :b
|
||||
\} \).
|
||||
Then the real forces acting on the particles are computed from the inverse
|
||||
transform:
|
||||
\begin\{equation\} F = \frac M \{M'\}\, F' - f' \end\{equation\}
|
||||
|
||||
@ -10,68 +10,156 @@ fix neb command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID neb Kspring :pre
|
||||
fix ID group-ID neb Kspring keyword value :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
neb = style name of this fix command
|
||||
Kspring = inter-replica spring constant (force/distance units) :ul
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
neb = style name of this fix command :l
|
||||
Kspring = parallel spring constant (force/distance units or force units) :l
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {nudg_style} or {perp} or {freend} or {freend_k_spring} :l
|
||||
{nudg_style} value = {neigh} or {idealpos}
|
||||
{neigh} = the parallel nudging force is calculated from the distances to neighbouring replicas (in this case, Kspring is in force/distance units)
|
||||
{idealpos} = the parallel nudging force is proportional to the distance between the replica and its interpolated ideal position (in this case Kspring is in force units)
|
||||
{perp} value {none} or kspring2
|
||||
{none} = no perpendicular spring force is applied
|
||||
{kspring2} = spring constant for the perpendicular nudging force (in force/distance units)
|
||||
{freeend} value = {none} or {ini} or {final} or {finaleini} or {final2eini}
|
||||
{none} = no nudging force is applied to the first and last replicas
|
||||
{ini} = set the first replica to be a free end
|
||||
{final} = set the last replica to be a free end
|
||||
{finaleini} = set the last replica to be a free end and set its target energy as that of the first replica
|
||||
{final2eini} = same as {finaleini} plus prevent intermediate replicas to have a lower energy than the first replica
|
||||
{freeend_kspring} value = kspring3
|
||||
kspring3 = spring constant of the perpendicular spring force (per distance units)
|
||||
:pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 active neb 10.0 :pre
|
||||
fix 1 active neb 10.0
|
||||
fix 2 all neb 1.0 perp 1.0 freeend final
|
||||
fix 1 all neb 1.0 nudg_style idealpos freeend final2eini freend_kspring 1:pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Add inter-replica forces to atoms in the group for a multi-replica
|
||||
Add a nudging force to atoms in the group for a multi-replica
|
||||
simulation run via the "neb"_neb.html command to perform a nudged
|
||||
elastic band (NEB) calculation for transition state finding. Hi-level
|
||||
explanations of NEB are given with the "neb"_neb.html command and in
|
||||
"Section 6.5"_Section_howto.html#howto_5 of the manual. The fix
|
||||
neb command must be used with the "neb" command to define how
|
||||
inter-replica forces are computed.
|
||||
elastic band (NEB) calculation for finding the transition state.
|
||||
Hi-level explanations of NEB are given with the "neb"_neb.html command
|
||||
and in "Section_howto 5"_Section_howto.html#howto_5 of the manual.
|
||||
The fix neb command must be used with the "neb" command and defines
|
||||
how nudging inter-replica forces are computed. A NEB calculation is
|
||||
divided in two stages. In the first stage n replicas are relaxed
|
||||
toward a MEP and in a second stage, the climbing image scheme (see
|
||||
"(Henkelman2)"_#Henkelman2) is turned on so that the replica having
|
||||
the highest energy relaxes toward the saddle point (i.e. the point of
|
||||
highest energy along the MEP).
|
||||
|
||||
Only the N atoms in the fix group experience inter-replica forces.
|
||||
Atoms in the two end-point replicas do not experience these forces,
|
||||
but those in intermediate replicas do. During the initial stage of
|
||||
NEB, the 3N-length vector of interatomic forces Fi = -Grad(V) acting
|
||||
on the atoms of each intermediate replica I is altered, as described
|
||||
in the "(Henkelman1)"_#Henkelman1 paper, to become:
|
||||
One purpose of the nudging forces is to keep the replicas equally
|
||||
spaced. During the NEB, the 3N-length vector of interatomic force Fi
|
||||
= -Grad(V) of replicas i is altered. For all intermediate replicas
|
||||
(i.e. for 1<i<n) but the climbing replica the force vector
|
||||
becomes:
|
||||
|
||||
Fi = -Grad(V) + (Grad(V) dot That) That + Kspring (| Ri+i - Ri | - | Ri - Ri-1 |) That :pre
|
||||
Fi = -Grad(V) + (Grad(V) dot That) That + Fnudgparallel + Fspringperp :pre
|
||||
|
||||
Ri are the atomic coordinates of replica I; Ri-1 and Ri+1 are the
|
||||
coordinates of its neighbor replicas. That (t with a hat over it) is
|
||||
the unit "tangent" vector for replica I which is a function of Ri,
|
||||
Ri-1, Ri+1, and the potential energy of the 3 replicas; it points
|
||||
roughly in the direction of (Ri+i - Ri-1); see the
|
||||
"(Henkelman1)"_#Henkelman1 paper for details.
|
||||
That is the unit "tangent" vector for replica i and is a function of
|
||||
Ri, Ri-1, Ri+1, and the potential energy of the 3 replicas; it points
|
||||
roughly in the direction of (Ri+i - Ri-1) (see the
|
||||
"(Henkelman1)"_#Henkelman1 paper for details). Ri are the atomic
|
||||
coordinates of replica i; Ri-1 and Ri+1 are the coordinates of its
|
||||
neighbor replicas. The term (Grad(V) dot That) is used to remove the
|
||||
component of the gradient parallel to the path which would tend to
|
||||
distribute the replica unevenly along the path. Fnudgparallel is an
|
||||
artificial nudging force which is applied only in the tangent direction
|
||||
and which maintains the replicas equally spaced (see below for more
|
||||
information). Fspringperp is an optinal artificial spring which is
|
||||
applied only perpendicular to the tangent and which prevent the paths
|
||||
from forming too acute kinks (see below for more information).
|
||||
|
||||
The first two terms in the above equation are the component of the
|
||||
interatomic forces perpendicular to the tangent vector. The last term
|
||||
is a spring force between replica I and its neighbors, parallel to the
|
||||
tangent vector direction with the specified spring constant {Kspring}.
|
||||
The keyword {nudg_style} allow to specify how to parallel
|
||||
nudging force is computed. With a value of idealpos, the spring
|
||||
force is computed as suggested in "(E)"_#E :
|
||||
|
||||
The effect of the first two terms is to push the atoms of each replica
|
||||
toward the minimum energy path (MEP) of conformational states that
|
||||
transition over the energy barrier. The MEP for an energy barrier is
|
||||
defined as a sequence of 3N-dimensional states which cross the barrier
|
||||
at its saddle point, each of which has a potential energy gradient
|
||||
parallel to the MEP itself.
|
||||
Fnudgparallel=-{Kspring}* (RD-RDideal)/(2 meanDist) :pre
|
||||
|
||||
The effect of the last term is to push each replica away from its two
|
||||
neighbors in a direction along the MEP, so that the final set of
|
||||
states are equidistant from each other.
|
||||
where RD is the "reaction coordinate" see "neb"_neb.html section, and
|
||||
RDideal is the ideal RD for which all the images are equally spaced
|
||||
(i.e. RDideal = (i-1)*meanDist when the climbing image is off, where i
|
||||
is the replica number). The meanDist is the average distance between
|
||||
replicas.
|
||||
|
||||
During the second stage of NEB, the forces on the N atoms in the
|
||||
replica nearest the top of the energy barrier are altered so that it
|
||||
climbs to the top of the barrier and finds the saddle point. The
|
||||
forces on atoms in this replica are described in the
|
||||
"(Henkelman2)"_#Henkelman2 paper, and become:
|
||||
When {nudg_style} has a value of neigh (or by default), the parallel
|
||||
nudging force is computed as in "(Henkelman1)"_#Henkelman1 by
|
||||
connecting each intermediate replica with the previous and the next
|
||||
image:
|
||||
|
||||
Fnudgparallel= {Kspring}* (|Ri+1 - Ri| - |Ri - Ri-1|) :pre
|
||||
|
||||
The parallel nudging force associated with the key word idealpos should
|
||||
usually be more efficient at keeping the images equally spaced.
|
||||
|
||||
:line
|
||||
|
||||
The keyword {perp} allows to add a spring force perpendicular to the
|
||||
path in order to prevent the path from becoming too kinky. It can
|
||||
improve significantly the convergence of the NEB when the resolution
|
||||
is poor (i.e. when too few images are used) (see "(Maras)"_#Maras1).
|
||||
The perpendicular spring force is given by
|
||||
|
||||
Fspringperp = {Kspringperp} * f(Ri-1,Ri,Ri+1) (Ri+1 + Ri-1 - 2 Ri) :pre
|
||||
|
||||
f(Ri-1 Ri R+1) is a smooth scalar function of the angle Ri-1 Ri
|
||||
Ri+1. It is equal to 0 when the path is straight and is equal to 1
|
||||
when the angle Ri-1 Ri Ri+1 is accute. f(Ri-1 Ri R+1) is defined in
|
||||
"(Jonsson)"_#Jonsson
|
||||
|
||||
:line
|
||||
|
||||
By default, the force acting on the first and last replicas is not
|
||||
altered so that during the NEB relaxation, these ending replicas relax
|
||||
toward local minima. However it is possible to use the key word
|
||||
{freeend} to allow either the initial or the final replica to relax
|
||||
toward a MEP while constraining its energy. The interatomic force Fi
|
||||
for the free end image becomes :
|
||||
|
||||
Fi = -Grad(V)+ (Grad(V) dot That + (E-ETarget)*kspring3) That, {when} Grad(V) dot That < 0
|
||||
Fi = -Grad(V)+ (Grad(V) dot That + (ETarget- E)*kspring3) That, {when} Grad(V) dot That > 0
|
||||
:pre
|
||||
|
||||
where E is the energy of the free end replica and ETarget is the
|
||||
target energy.
|
||||
|
||||
When the value {ini} ({final}) is used after the keyword {freeend},
|
||||
the first (last) replica is considered as a free end. The target
|
||||
energy is set to the energy of the replica at starting of the NEB
|
||||
calculation. When the value {finaleini} or {final2eini} is used the
|
||||
last image is considered as a free end and the target energy is equal
|
||||
to the energy of the first replica (which can evolve during the NEB
|
||||
relaxation). With the value {finaleini}, when the initial path is too
|
||||
far from the MEP, an intermediate repilica might relax "faster" and
|
||||
get a lower energy than the last replica. The benefit of the free end
|
||||
is then lost since this intermediate replica will relax toward a local
|
||||
minima. This behavior can be prevented by using the value {final2eini}
|
||||
which remove entirely the contribution of the gradient for all
|
||||
intermediate replica which have a lower energy than the initial one
|
||||
thus preventing these replicae to over-relax. After converging a NEB
|
||||
with the {final2eini} value it is recommended to check that all
|
||||
intermediate replica have a larger energy than the initial
|
||||
replica. Finally note that if the last replica converges toward a
|
||||
local minimum with a larger energy than the energy of the first
|
||||
replica, a free end neb calculation with the value {finaleini} or
|
||||
{final2eini} cannot reach the convergence criteria.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
|
||||
In the second stage of the NEB, the interatomic force Fi for the
|
||||
climbing replica (which is the replica of highest energy) becomes:
|
||||
|
||||
Fi = -Grad(V) + 2 (Grad(V) dot That) That :pre
|
||||
|
||||
The inter-replica forces for the other replicas are unchanged from the
|
||||
first equation.
|
||||
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
@ -96,7 +184,11 @@ for more info on packages.
|
||||
|
||||
"neb"_neb.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
The option defaults are nudg_style = neigh, perp = none, freeend = none and freend_kspring = 1.
|
||||
|
||||
:line
|
||||
|
||||
:link(Henkelman1)
|
||||
[(Henkelman1)] Henkelman and Jonsson, J Chem Phys, 113, 9978-9985 (2000).
|
||||
@ -104,3 +196,15 @@ for more info on packages.
|
||||
:link(Henkelman2)
|
||||
[(Henkelman2)] Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,
|
||||
9901-9904 (2000).
|
||||
|
||||
:link(E)
|
||||
[(E)] E, Ren, Vanden-Eijnden, Phys Rev B, 66, 052301 (2002)
|
||||
|
||||
:link(Jonsson)
|
||||
[(Jonsson)] Jonsson, Mills and Jacobsen, in Classical and Quantum
|
||||
Dynamics in Condensed Phase Simulations, edited by Berne, Ciccotti, and Coker
|
||||
World Scientific, Singapore, 1998, p. 385
|
||||
|
||||
:link(Maras1)
|
||||
[(Maras)] Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,
|
||||
Comp Phys Comm, 205, 13-21 (2016)
|
||||
|
||||
@ -8,17 +8,19 @@
|
||||
|
||||
fix qeq/reax command :h3
|
||||
fix qeq/reax/kk command :h3
|
||||
fix qeq/reax/omp command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID qeq/reax Nevery cutlo cuthi tolerance params :pre
|
||||
fix ID group-ID qeq/reax Nevery cutlo cuthi tolerance params args :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
qeq/reax = style name of this fix command
|
||||
Nevery = perform QEq every this many steps
|
||||
cutlo,cuthi = lo and hi cutoff for Taper radius
|
||||
tolerance = precision to which charges will be equilibrated
|
||||
params = reax/c or a filename :ul
|
||||
params = reax/c or a filename
|
||||
args = {dual} (optional) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
@ -59,6 +61,10 @@ potential file, except that eta is defined here as twice the eta value
|
||||
in the ReaxFF file. Note that unlike the rest of LAMMPS, the units
|
||||
of this fix are hard-coded to be A, eV, and electronic charge.
|
||||
|
||||
The optional {dual} keyword allows to perform the optimization
|
||||
of the S and T matrices in parallel. This is only supported for
|
||||
the {qeq/reax/omp} style. Otherwise they are processed separately.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
|
||||
@ -31,11 +31,12 @@ bodystyle = {single} or {molecule} or {group} :l
|
||||
groupID1, groupID2, ... = list of N group IDs :pre
|
||||
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {langevin} or {temp} or {iso} or {aniso} or {x} or {y} or {z} or {couple} or {tparam} or {pchain} or {dilate} or {force} or {torque} or {infile} :l
|
||||
keyword = {langevin} or {reinit} or {temp} or {iso} or {aniso} or {x} or {y} or {z} or {couple} or {tparam} or {pchain} or {dilate} or {force} or {torque} or {infile} :l
|
||||
{langevin} values = Tstart Tstop Tperiod seed
|
||||
Tstart,Tstop = desired temperature at start/stop of run (temperature units)
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
seed = random number seed to use for white noise (positive integer)
|
||||
{reinit} = {yes} or {no}
|
||||
{temp} values = Tstart Tstop Tdamp
|
||||
Tstart,Tstop = desired temperature at start/stop of run (temperature units)
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
@ -68,10 +69,10 @@ keyword = {langevin} or {temp} or {iso} or {aniso} or {x} or {y} or {z} or {coup
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 clump rigid single
|
||||
fix 1 clump rigid single reinit yes
|
||||
fix 1 clump rigid/small molecule
|
||||
fix 1 clump rigid single force 1 off off on langevin 1.0 1.0 1.0 428984
|
||||
fix 1 polychains rigid/nvt molecule temp 1.0 1.0 5.0
|
||||
fix 1 polychains rigid/nvt molecule temp 1.0 1.0 5.0 reinit no
|
||||
fix 1 polychains rigid molecule force 1*5 off off off force 6*10 off off on
|
||||
fix 1 polychains rigid/small molecule langevin 1.0 1.0 1.0 428984
|
||||
fix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off
|
||||
@ -87,7 +88,12 @@ means that each timestep the total force and torque on each rigid body
|
||||
is computed as the sum of the forces and torques on its constituent
|
||||
particles. The coordinates, velocities, and orientations of the atoms
|
||||
in each body are then updated so that the body moves and rotates as a
|
||||
single entity.
|
||||
single entity. This is implemented by creating internal data structures
|
||||
for each rigid body and performing time integration on these data
|
||||
structures. Positions, velocities, and orientations of the constituent
|
||||
particles are regenerated from the rigid body data structures in every
|
||||
time step. This restricts which operations and fixes can be applied to
|
||||
rigid bodies. See below for a detailed discussion.
|
||||
|
||||
Examples of large rigid bodies are a colloidal particle, or portions
|
||||
of a biomolecule such as a protein.
|
||||
@ -148,8 +154,9 @@ differences may accumulate to produce divergent trajectories.
|
||||
|
||||
NOTE: You should not update the atoms in rigid bodies via other
|
||||
time-integration fixes (e.g. "fix nve"_fix_nve.html, "fix
|
||||
nvt"_fix_nh.html, "fix npt"_fix_nh.html), or you will be integrating
|
||||
their motion more than once each timestep. When performing a hybrid
|
||||
nvt"_fix_nh.html, "fix npt"_fix_nh.html, "fix move"_fix_move.html),
|
||||
or you will have conflicting updates to positions and velocities
|
||||
resulting in unphysical behavior in most cases. When performing a hybrid
|
||||
simulation with some atoms in rigid bodies, and some not, a separate
|
||||
time integration fix like "fix nve"_fix_nve.html or "fix
|
||||
nvt"_fix_nh.html should be used for the non-rigid particles.
|
||||
@ -165,23 +172,29 @@ setting the force on them to 0.0 (via the "fix
|
||||
setforce"_fix_setforce.html command), and integrating them as usual
|
||||
(e.g. via the "fix nve"_fix_nve.html command).
|
||||
|
||||
NOTE: The aggregate properties of each rigid body are calculated one
|
||||
time at the start of the first simulation run after these fixes are
|
||||
specified. The properties include the position and velocity of the
|
||||
center-of-mass of the body, its moments of inertia, and its angular
|
||||
momentum. This is done using the properties of the constituent atoms
|
||||
of the body at that point in time (or see the {infile} keyword
|
||||
option). Thereafter, changing properties of individual atoms in the
|
||||
body will have no effect on a rigid body's dynamics, unless they
|
||||
affect the "pair_style"_pair_style.html interactions that individual
|
||||
particles are part of. For example, you might think you could
|
||||
displace the atoms in a body or add a large velocity to each atom in a
|
||||
body to make it move in a desired direction before a 2nd run is
|
||||
IMPORTANT NOTE: The aggregate properties of each rigid body are
|
||||
calculated at the start of a simulation run and are maintained in
|
||||
internal data structures. The properties include the position and
|
||||
velocity of the center-of-mass of the body, its moments of inertia, and
|
||||
its angular momentum. This is done using the properties of the
|
||||
constituent atoms of the body at that point in time (or see the {infile}
|
||||
keyword option). Thereafter, changing these properties of individual
|
||||
atoms in the body will have no effect on a rigid body's dynamics, unless
|
||||
they effect any computation of per-atom forces or torques. If the
|
||||
keyword {reinit} is set to {yes} (the default), the rigid body data
|
||||
structures will be recreated at the beginning of each {run} command;
|
||||
if the keyword {reinit} is set to {no}, the rigid body data structures
|
||||
will be built only at the very first {run} command and maintained for
|
||||
as long as the rigid fix is defined. For example, you might think you
|
||||
could displace the atoms in a body or add a large velocity to each atom
|
||||
in a body to make it move in a desired direction before a 2nd run is
|
||||
performed, using the "set"_set.html or
|
||||
"displace_atoms"_displace_atoms.html or "velocity"_velocity.html
|
||||
command. But these commands will not affect the internal attributes
|
||||
of the body, and the position and velocity of individual atoms in the
|
||||
body will be reset when time integration starts.
|
||||
commands. But these commands will not affect the internal attributes
|
||||
of the body unless {reinit} is set to {yes}. With {reinit} set to {no}
|
||||
(or using the {infile} option, which implies {reinit} {no}) the position
|
||||
and velocity of individual atoms in the body will be reset when time
|
||||
integration starts again.
|
||||
|
||||
:line
|
||||
|
||||
@ -401,6 +414,14 @@ couple none :pre
|
||||
|
||||
The keyword/value option pairs are used in the following ways.
|
||||
|
||||
The {reinit} keyword determines, whether the rigid body properties
|
||||
are reinitialized between run commands. With the option {yes} (the
|
||||
default) this is done, with the option {no} this is not done. Turning
|
||||
off the reinitialization can be helpful to protect rigid bodies against
|
||||
unphysical manipulations between runs or when properties cannot be
|
||||
easily recomputed (e.g. when read from a file). When using the {infile}
|
||||
keyword, the {reinit} option is automatically set to {no}.
|
||||
|
||||
The {langevin} and {temp} and {tparam} keywords perform thermostatting
|
||||
of the rigid bodies, altering both their translational and rotational
|
||||
degrees of freedom. What is meant by "temperature" of a collection of
|
||||
@ -778,7 +799,7 @@ exclude, "fix shake"_fix_shake.html
|
||||
|
||||
The option defaults are force * on on on and torque * on on on,
|
||||
meaning all rigid bodies are acted on by center-of-mass force and
|
||||
torque. Also Tchain = Pchain = 10, Titer = 1, Torder = 3.
|
||||
torque. Also Tchain = Pchain = 10, Titer = 1, Torder = 3, reinit = yes.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -301,6 +301,7 @@ compute_centro_atom.html
|
||||
compute_chunk_atom.html
|
||||
compute_cluster_atom.html
|
||||
compute_cna_atom.html
|
||||
compute_cnp_atom.html
|
||||
compute_com.html
|
||||
compute_com_chunk.html
|
||||
compute_contact_atom.html
|
||||
@ -446,7 +447,6 @@ pair_lj96.html
|
||||
pair_lj_cubic.html
|
||||
pair_lj_expand.html
|
||||
pair_lj_long.html
|
||||
pair_lj_sf.html
|
||||
pair_lj_smooth.html
|
||||
pair_lj_smooth_linear.html
|
||||
pair_lj_soft.html
|
||||
|
||||
@ -24,14 +24,15 @@ to the relevant fixes.
|
||||
{manifold} @ {parameters} @ {equation} @ {description}
|
||||
cylinder @ R @ x^2 + y^2 - R^2 = 0 @ Cylinder along z-axis, axis going through (0,0,0)
|
||||
cylinder_dent @ R l a @ x^2 + y^2 - r(z)^2 = 0, r(x) = R if | z | > l, r(z) = R - a*(1 + cos(z/l))/2 otherwise @ A cylinder with a dent around z = 0
|
||||
dumbbell @ a A B c @ -( x^2 + y^2 ) * (a^2 - z^2/c^2) * ( 1 + (A*sin(B*z^2))^4) = 0 @ A dumbbell @
|
||||
dumbbell @ a A B c @ -( x^2 + y^2 ) + (a^2 - z^2/c^2) * ( 1 + (A*sin(B*z^2))^4) = 0 @ A dumbbell
|
||||
ellipsoid @ a b c @ (x/a)^2 + (y/b)^2 + (z/c)^2 = 0 @ An ellipsoid
|
||||
gaussian_bump @ A l rc1 rc2 @ if( x < rc1) -z + A * exp( -x^2 / (2 l^2) ); else if( x < rc2 ) -z + a + b*x + c*x^2 + d*x^3; else z @ A Gaussian bump at x = y = 0, smoothly tapered to a flat plane z = 0.
|
||||
plane @ a b c x0 y0 z0 @ a*(x-x0) + b*(y-y0) + c*(z-z0) = 0 @ A plane with normal (a,b,c) going through point (x0,y0,z0)
|
||||
plane_wiggle @ a w @ z - a*sin(w*x) = 0 @ A plane with a sinusoidal modulation on z along x.
|
||||
sphere @ R @ x^2 + y^2 + z^2 - R^2 = 0 @ A sphere of radius R
|
||||
supersphere @ R q @ | x |^q + | y |^q + | z |^q - R^q = 0 @ A supersphere of hyperradius R
|
||||
spine @ a, A, B, B2, c @ -(x^2 + y^2)*(a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendtritic spine
|
||||
spine_two @ a, A, B, B2, c @ -(x^2 + y^2)*(a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendtritic spine
|
||||
spine @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendtritic spine
|
||||
spine_two @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendtritic spine
|
||||
thylakoid @ wB LB lB @ Various, see "(Paquay)"_#Paquay1 @ A model grana thylakoid consisting of two block-like compartments connected by a bridge of width wB, length LB and taper length lB
|
||||
torus @ R r @ (R - sqrt( x^2 + y^2 ) )^2 + z^2 - r^2 @ A torus with large radius R and small radius r, centered on (0,0,0) :tb(s=@)
|
||||
|
||||
|
||||
217
doc/src/neb.txt
217
doc/src/neb.txt
@ -10,7 +10,7 @@ neb command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
neb etol ftol N1 N2 Nevery file-style arg :pre
|
||||
neb etol ftol N1 N2 Nevery file-style arg keyword :pre
|
||||
|
||||
etol = stopping tolerance for energy (energy units) :ulb,l
|
||||
ftol = stopping tolerance for force (force units) :l
|
||||
@ -20,18 +20,21 @@ Nevery = print replica energies and reaction coordinates every this many timeste
|
||||
file-style = {final} or {each} or {none} :l
|
||||
{final} arg = filename
|
||||
filename = file with initial coords for final replica
|
||||
coords for intermediate replicas are linearly interpolated between first and last replica
|
||||
coords for intermediate replicas are linearly interpolated
|
||||
between first and last replica
|
||||
{each} arg = filename
|
||||
filename = unique filename for each replica (except first) with its initial coords
|
||||
{none} arg = no argument
|
||||
all replicas assumed to already have their initial coords :pre
|
||||
filename = unique filename for each replica (except first)
|
||||
with its initial coords
|
||||
{none} arg = no argument all replicas assumed to already have
|
||||
their initial coords :pre
|
||||
keyword = {verbose}
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
neb 0.1 0.0 1000 500 50 final coords.final
|
||||
neb 0.0 0.001 1000 500 50 each coords.initial.$i
|
||||
neb 0.0 0.001 1000 500 50 none :pre
|
||||
neb 0.0 0.001 1000 500 50 none verbose :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -43,8 +46,8 @@ NEB is a method for finding both the atomic configurations and height
|
||||
of the energy barrier associated with a transition state, e.g. for an
|
||||
atom to perform a diffusive hop from one energy basin to another in a
|
||||
coordinated fashion with its neighbors. The implementation in LAMMPS
|
||||
follows the discussion in these 3 papers: "(HenkelmanA)"_#HenkelmanA,
|
||||
"(HenkelmanB)"_#HenkelmanB, and "(Nakano)"_#Nakano3.
|
||||
follows the discussion in these 4 papers: "(HenkelmanA)"_#HenkelmanA,
|
||||
"(HenkelmanB)"_#HenkelmanB, "(Nakano)"_#Nakano3 and "(Maras)"_#Maras2.
|
||||
|
||||
Each replica runs on a partition of one or more processors. Processor
|
||||
partitions are defined at run-time using the -partition command-line
|
||||
@ -70,18 +73,17 @@ I.e. the simulation domain, the number of atoms, the interaction
|
||||
potentials, and the starting configuration when the neb command is
|
||||
issued should be the same for every replica.
|
||||
|
||||
In a NEB calculation each atom in a replica is connected to the same
|
||||
atom in adjacent replicas by springs, which induce inter-replica
|
||||
forces. These forces are imposed by the "fix neb"_fix_neb.html
|
||||
command, which must be used in conjunction with the neb command. The
|
||||
group used to define the fix neb command defines the NEB atoms which
|
||||
are the only ones that inter-replica springs are applied to. If the
|
||||
group does not include all atoms, then non-NEB atoms have no
|
||||
inter-replica springs and the forces they feel and their motion is
|
||||
computed in the usual way due only to other atoms within their
|
||||
replica. Conceptually, the non-NEB atoms provide a background force
|
||||
field for the NEB atoms. They can be allowed to move during the NEB
|
||||
minimization procedure (which will typically induce different
|
||||
In a NEB calculation each replica is connected to other replicas by
|
||||
inter-replica nudging forces. These forces are imposed by the "fix
|
||||
neb"_fix_neb.html command, which must be used in conjunction with the
|
||||
neb command. The group used to define the fix neb command defines the
|
||||
NEB atoms which are the only ones that inter-replica springs are
|
||||
applied to. If the group does not include all atoms, then non-NEB
|
||||
atoms have no inter-replica springs and the forces they feel and their
|
||||
motion is computed in the usual way due only to other atoms within
|
||||
their replica. Conceptually, the non-NEB atoms provide a background
|
||||
force field for the NEB atoms. They can be allowed to move during the
|
||||
NEB minimization procedure (which will typically induce different
|
||||
coordinates for non-NEB atoms in different replicas), or held fixed
|
||||
using other LAMMPS commands such as "fix setforce"_fix_setforce.html.
|
||||
Note that the "partition"_partition.html command can be used to invoke
|
||||
@ -93,33 +95,18 @@ specified in different manners via the {file-style} setting, as
|
||||
discussed below. Only atoms whose initial coordinates should differ
|
||||
from the current configuration need be specified.
|
||||
|
||||
Conceptually, the initial configuration for the first replica should
|
||||
be a state with all the atoms (NEB and non-NEB) having coordinates on
|
||||
one side of the energy barrier. A perfect energy minimum is not
|
||||
required, since atoms in the first replica experience no spring forces
|
||||
from the 2nd replica. Thus the damped dynamics minimization will
|
||||
drive the first replica to an energy minimum if it is not already
|
||||
there. However, you will typically get better convergence if the
|
||||
initial state is already at a minimum. For example, for a system with
|
||||
a free surface, the surface should be fully relaxed before attempting
|
||||
a NEB calculation.
|
||||
|
||||
Likewise, the initial configuration of the final replica should be a
|
||||
state with all the atoms (NEB and non-NEB) on the other side of the
|
||||
energy barrier. Again, a perfect energy minimum is not required,
|
||||
since the atoms in the last replica also experience no spring forces
|
||||
from the next-to-last replica, and thus the damped dynamics
|
||||
minimization will drive it to an energy minimum.
|
||||
Conceptually, the initial and final configurations for the first
|
||||
replica should be states on either side of an energy barrier.
|
||||
|
||||
As explained below, the initial configurations of intermediate
|
||||
replicas can be atomic coordinates interpolated in a linear fashion
|
||||
between the first and last replicas. This is often adequate state for
|
||||
between the first and last replicas. This is often adequate for
|
||||
simple transitions. For more complex transitions, it may lead to slow
|
||||
convergence or even bad results if the minimum energy path (MEP, see
|
||||
below) of states over the barrier cannot be correctly converged to
|
||||
from such an initial configuration. In this case, you will want to
|
||||
generate initial states for the intermediate replicas that are
|
||||
geometrically closer to the MEP and read them in.
|
||||
from such an initial path. In this case, you will want to generate
|
||||
initial states for the intermediate replicas that are geometrically
|
||||
closer to the MEP and read them in.
|
||||
|
||||
:line
|
||||
|
||||
@ -135,10 +122,11 @@ is assigned to be a fraction of the distance. E.g. if there are 10
|
||||
replicas, the 2nd replica will assign a position that is 10% of the
|
||||
distance along a line between the starting and final point, and the
|
||||
9th replica will assign a position that is 90% of the distance along
|
||||
the line. Note that this procedure to produce consistent coordinates
|
||||
across all the replicas, the current coordinates need to be the same
|
||||
in all replicas. LAMMPS does not check for this, but invalid initial
|
||||
configurations will likely result if it is not the case.
|
||||
the line. Note that for this procedure to produce consistent
|
||||
coordinates across all the replicas, the current coordinates need to
|
||||
be the same in all replicas. LAMMPS does not check for this, but
|
||||
invalid initial configurations will likely result if it is not the
|
||||
case.
|
||||
|
||||
NOTE: The "distance" between the starting and final point is
|
||||
calculated in a minimum-image sense for a periodic simulation box.
|
||||
@ -150,8 +138,8 @@ interpolation is outside the periodic box, the atom will be wrapped
|
||||
back into the box when the NEB calculation begins.
|
||||
|
||||
For a {file-style} setting of {each}, a filename is specified which is
|
||||
assumed to be unique to each replica. This can be done by
|
||||
using a variable in the filename, e.g.
|
||||
assumed to be unique to each replica. This can be done by using a
|
||||
variable in the filename, e.g.
|
||||
|
||||
variable i equal part
|
||||
neb 0.0 0.001 1000 500 50 each coords.initial.$i :pre
|
||||
@ -198,11 +186,10 @@ The minimizer tolerances for energy and force are set by {etol} and
|
||||
A non-zero {etol} means that the NEB calculation will terminate if the
|
||||
energy criterion is met by every replica. The energies being compared
|
||||
to {etol} do not include any contribution from the inter-replica
|
||||
forces, since these are non-conservative. A non-zero {ftol} means
|
||||
that the NEB calculation will terminate if the force criterion is met
|
||||
by every replica. The forces being compared to {ftol} include the
|
||||
inter-replica forces between an atom and its images in adjacent
|
||||
replicas.
|
||||
nudging forces, since these are non-conservative. A non-zero {ftol}
|
||||
means that the NEB calculation will terminate if the force criterion
|
||||
is met by every replica. The forces being compared to {ftol} include
|
||||
the inter-replica nudging forces.
|
||||
|
||||
The maximum number of iterations in each stage is set by {N1} and
|
||||
{N2}. These are effectively timestep counts since each iteration of
|
||||
@ -220,27 +207,27 @@ finding a good energy barrier. {N1} and {N2} must both be multiples
|
||||
of {Nevery}.
|
||||
|
||||
In the first stage of NEB, the set of replicas should converge toward
|
||||
the minimum energy path (MEP) of conformational states that transition
|
||||
over the barrier. The MEP for a barrier is defined as a sequence of
|
||||
3N-dimensional states that cross the barrier at its saddle point, each
|
||||
of which has a potential energy gradient parallel to the MEP itself.
|
||||
The replica states will also be roughly equally spaced along the MEP
|
||||
due to the inter-replica spring force added by the "fix
|
||||
neb"_fix_neb.html command.
|
||||
a minimum energy path (MEP) of conformational states that transition
|
||||
over a barrier. The MEP for a transition is defined as a sequence of
|
||||
3N-dimensional states, each of which has a potential energy gradient
|
||||
parallel to the MEP itself. The configuration of highest energy along
|
||||
a MEP corresponds to a saddle point. The replica states will also be
|
||||
roughly equally spaced along the MEP due to the inter-replica nugding
|
||||
force added by the "fix neb"_fix_neb.html command.
|
||||
|
||||
In the second stage of NEB, the replica with the highest energy
|
||||
is selected and the inter-replica forces on it are converted to a
|
||||
force that drives its atom coordinates to the top or saddle point of
|
||||
the barrier, via the barrier-climbing calculation described in
|
||||
In the second stage of NEB, the replica with the highest energy is
|
||||
selected and the inter-replica forces on it are converted to a force
|
||||
that drives its atom coordinates to the top or saddle point of the
|
||||
barrier, via the barrier-climbing calculation described in
|
||||
"(HenkelmanB)"_#HenkelmanB. As before, the other replicas rearrange
|
||||
themselves along the MEP so as to be roughly equally spaced.
|
||||
|
||||
When both stages are complete, if the NEB calculation was successful,
|
||||
one of the replicas should be an atomic configuration at the top or
|
||||
saddle point of the barrier, the potential energies for the set of
|
||||
replicas should represent the energy profile of the barrier along the
|
||||
MEP, and the configurations of the replicas should be a sequence of
|
||||
configurations along the MEP.
|
||||
the configurations of the replicas should be along (close to) the MEP
|
||||
and the replica with the highest energy should be an atomic
|
||||
configuration at (close to) the saddle point of the transition. The
|
||||
potential energies for the set of replicas represents the energy
|
||||
profile of the transition along the MEP.
|
||||
|
||||
:line
|
||||
|
||||
@ -284,9 +271,9 @@ ID2 x2 y2 z2
|
||||
...
|
||||
IDN xN yN zN :pre
|
||||
|
||||
The fields are the atom ID, followed by the x,y,z coordinates.
|
||||
The lines can be listed in any order. Additional trailing information
|
||||
on the line is OK, such as a comment.
|
||||
The fields are the atom ID, followed by the x,y,z coordinates. The
|
||||
lines can be listed in any order. Additional trailing information on
|
||||
the line is OK, such as a comment.
|
||||
|
||||
Note that for a typical NEB calculation you do not need to specify
|
||||
initial coordinates for very many atoms to produce differing starting
|
||||
@ -310,38 +297,54 @@ this case), the print-out to the screen and master log.lammps file
|
||||
contains a line of output, printed once every {Nevery} timesteps. It
|
||||
contains the timestep, the maximum force per replica, the maximum
|
||||
force per atom (in any replica), potential gradients in the initial,
|
||||
final, and climbing replicas, the forward and backward energy barriers,
|
||||
the total reaction coordinate (RDT), and the normalized reaction
|
||||
coordinate and potential energy of each replica.
|
||||
final, and climbing replicas, the forward and backward energy
|
||||
barriers, the total reaction coordinate (RDT), and the normalized
|
||||
reaction coordinate and potential energy of each replica.
|
||||
|
||||
The "maximum force per replica" is
|
||||
the two-norm of the 3N-length force vector for the atoms in each
|
||||
replica, maximized across replicas, which is what the {ftol} setting
|
||||
is checking against. In this case, N is all the atoms in each
|
||||
replica. The "maximum force per atom" is the maximum force component
|
||||
of any atom in any replica. The potential gradients are the two-norm
|
||||
of the 3N-length force vector solely due to the interaction potential i.e.
|
||||
without adding in inter-replica forces. Note that inter-replica forces
|
||||
are zero in the initial and final replicas, and only affect
|
||||
the direction in the climbing replica. For this reason, the "maximum
|
||||
force per replica" is often equal to the potential gradient in the
|
||||
climbing replica. In the first stage of NEB, there is no climbing
|
||||
replica, and so the potential gradient in the highest energy replica
|
||||
is reported, since this replica will become the climbing replica
|
||||
in the second stage of NEB.
|
||||
The "maximum force per replica" is the two-norm of the 3N-length force
|
||||
vector for the atoms in each replica, maximized across replicas, which
|
||||
is what the {ftol} setting is checking against. In this case, N is
|
||||
all the atoms in each replica. The "maximum force per atom" is the
|
||||
maximum force component of any atom in any replica. The potential
|
||||
gradients are the two-norm of the 3N-length force vector solely due to
|
||||
the interaction potential i.e. without adding in inter-replica
|
||||
forces.
|
||||
|
||||
The "reaction coordinate" (RD) for each
|
||||
replica is the two-norm of the 3N-length vector of distances between
|
||||
its atoms and the preceding replica's atoms, added to the RD of the
|
||||
preceding replica. The RD of the first replica RD1 = 0.0;
|
||||
the RD of the final replica RDN = RDT, the total reaction coordinate.
|
||||
The normalized RDs are divided by RDT,
|
||||
so that they form a monotonically increasing sequence
|
||||
from zero to one. When computing RD, N only includes the atoms
|
||||
being operated on by the fix neb command.
|
||||
The "reaction coordinate" (RD) for each replica is the two-norm of the
|
||||
3N-length vector of distances between its atoms and the preceding
|
||||
replica's atoms, added to the RD of the preceding replica. The RD of
|
||||
the first replica RD1 = 0.0; the RD of the final replica RDN = RDT,
|
||||
the total reaction coordinate. The normalized RDs are divided by RDT,
|
||||
so that they form a monotonically increasing sequence from zero to
|
||||
one. When computing RD, N only includes the atoms being operated on by
|
||||
the fix neb command.
|
||||
|
||||
The forward (reverse) energy barrier is the potential energy of the
|
||||
highest replica minus the energy of the first (last) replica.
|
||||
|
||||
Supplementary informations for all replicas can be printed out to the
|
||||
screen and master log.lammps file by adding the verbose keyword. These
|
||||
informations include the following. The "path angle" (pathangle) for
|
||||
the replica i which is the angle between the 3N-length vectors (Ri-1 -
|
||||
Ri) and (Ri+1 - Ri) (where Ri is the atomic coordinates of replica
|
||||
i). A "path angle" of 180 indicates that replicas i-1, i and i+1 are
|
||||
aligned. "angletangrad" is the angle between the 3N-length tangent
|
||||
vector and the 3N-length force vector at image i. The tangent vector
|
||||
is calculated as in "(HenkelmanA)"_#HenkelmanA for all intermediate
|
||||
replicas and at R2 - R1 and RM - RM-1 for the first and last replica,
|
||||
respectively. "anglegrad" is the angle between the 3N-length energy
|
||||
gradient vector of replica i and that of replica i+1. It is not
|
||||
defined for the final replica and reads nan. gradV is the norm of the
|
||||
energy gradient of image i. ReplicaForce is the two-norm of the
|
||||
3N-length force vector (including nudging forces) for replica i.
|
||||
MaxAtomForce is the maximum force component of any atom in replica i.
|
||||
|
||||
When a NEB calculation does not converge properly, these suplementary
|
||||
informations can help understanding what is going wrong. For instance
|
||||
when the path angle becomes accute the definition of tangent used in
|
||||
the NEB calculation is questionable and the NEB cannot may diverge
|
||||
"(Maras)"_#Maras2.
|
||||
|
||||
The forward (reverse) energy barrier is the potential energy of the highest
|
||||
replica minus the energy of the first (last) replica.
|
||||
|
||||
When running on multiple partitions, LAMMPS produces additional log
|
||||
files for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a
|
||||
@ -396,12 +399,16 @@ This command can only be used if LAMMPS was built with the REPLICA
|
||||
package. See the "Making LAMMPS"_Section_start.html#start_3 section
|
||||
for more info on packages.
|
||||
|
||||
:line
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"prd"_prd.html, "temper"_temper.html, "fix
|
||||
langevin"_fix_langevin.html, "fix viscous"_fix_viscous.html
|
||||
"prd"_prd.html, "temper"_temper.html, "fix langevin"_fix_langevin.html,
|
||||
"fix viscous"_fix_viscous.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
none
|
||||
|
||||
:line
|
||||
|
||||
@ -414,3 +421,7 @@ langevin"_fix_langevin.html, "fix viscous"_fix_viscous.html
|
||||
|
||||
:link(Nakano3)
|
||||
[(Nakano)] Nakano, Comp Phys Comm, 178, 280-289 (2008).
|
||||
|
||||
:link(Maras2)
|
||||
[(Maras)] Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,
|
||||
Comp Phys Comm, 205, 13-21 (2016)
|
||||
|
||||
@ -574,9 +574,9 @@ is used. If it is not used, you must invoke the package intel
|
||||
command in your input script or or via the "-pk intel" "command-line
|
||||
switch"_Section_start.html#start_7.
|
||||
|
||||
For the KOKKOS package, the option defaults neigh = full, neigh/qeq
|
||||
= full, newton = off, binsize = 0.0, and comm = device. These settings
|
||||
are made automatically by the required "-k on" "command-line
|
||||
For the KOKKOS package, the option defaults neigh = full,
|
||||
neigh/qeq = full, newton = off, binsize = 0.0, and comm = device.
|
||||
These settings are made automatically by the required "-k on" "command-line
|
||||
switch"_Section_start.html#start_7. You can change them bu using the
|
||||
package kokkos command in your input script or via the "-pk kokkos"
|
||||
"command-line switch"_Section_start.html#start_7.
|
||||
|
||||
@ -1,114 +0,0 @@
|
||||
"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
|
||||
|
||||
pair_style lj/sf command :h3
|
||||
pair_style lj/sf/omp command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style lj/sf cutoff :pre
|
||||
|
||||
cutoff = global cutoff for Lennard-Jones interactions (distance units) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style lj/sf 2.5
|
||||
pair_coeff * * 1.0 1.0
|
||||
pair_coeff 1 1 1.0 1.0 3.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Style {lj/sf} computes a truncated and force-shifted LJ interaction
|
||||
(Shifted Force Lennard-Jones), so that both the potential and the
|
||||
force go continuously to zero at the cutoff "(Toxvaerd)"_#Toxvaerd:
|
||||
|
||||
:c,image(Eqs/pair_lj_sf.jpg)
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the "pair_coeff"_pair_coeff.html command as in the examples
|
||||
above, or in the data file or restart files read by the
|
||||
"read_data"_read_data.html or "read_restart"_read_restart.html
|
||||
commands, or by mixing as described below:
|
||||
|
||||
epsilon (energy units)
|
||||
sigma (distance units)
|
||||
cutoff (distance units) :ul
|
||||
|
||||
The last coefficient is optional. If not specified, the global
|
||||
LJ cutoff specified in the pair_style command is used.
|
||||
|
||||
:line
|
||||
|
||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||
functionally the same as the corresponding style without the suffix.
|
||||
They have been optimized to run faster, depending on your available
|
||||
hardware, as discussed in "Section 5"_Section_accelerate.html
|
||||
of the manual. The accelerated styles take the same arguments and
|
||||
should produce the same results, except for round-off and precision
|
||||
issues.
|
||||
|
||||
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
|
||||
USER-OMP and OPT packages, respectively. They are only enabled if
|
||||
LAMMPS was built with those packages. See the "Making
|
||||
LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
more instructions on how to use the accelerated styles effectively.
|
||||
|
||||
:line
|
||||
|
||||
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
||||
|
||||
For atom type pairs I,J and I != J, the epsilon and sigma
|
||||
coefficients and cutoff distance for this pair style can be mixed.
|
||||
Rin is a cutoff value and is mixed like the cutoff. The
|
||||
default mix value is {geometric}. See the "pair_modify" command for
|
||||
details.
|
||||
|
||||
The "pair_modify"_pair_modify.html shift option is not relevant for
|
||||
this pair style, since the pair interaction goes to 0.0 at the cutoff.
|
||||
|
||||
The "pair_modify"_pair_modify.html table option is not relevant
|
||||
for this pair style.
|
||||
|
||||
This pair style does not support the "pair_modify"_pair_modify.html
|
||||
tail option for adding long-range tail corrections to energy and
|
||||
pressure, since the energy of the pair interaction is smoothed to 0.0
|
||||
at the cutoff.
|
||||
|
||||
This pair style writes its information to "binary restart
|
||||
files"_restart.html, so pair_style and pair_coeff commands do not need
|
||||
to be specified in an input script that reads a restart file.
|
||||
|
||||
This pair style can only be used via the {pair} keyword of the
|
||||
"run_style respa"_run_style.html command. It does not support the
|
||||
{inner}, {middle}, {outer} keywords.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This pair style 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.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_coeff"_pair_coeff.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Toxvaerd)
|
||||
[(Toxvaerd)] Toxvaerd, Dyre, J Chem Phys, 134, 081102 (2011).
|
||||
@ -11,26 +11,26 @@ pair_style lj/smooth/linear/omp command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style lj/smooth/linear Rc :pre
|
||||
pair_style lj/smooth/linear cutoff :pre
|
||||
|
||||
Rc = cutoff for lj/smooth/linear interactions (distance units) :ul
|
||||
cutoff = global cutoff for Lennard-Jones interactions (distance units) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style lj/smooth/linear 5.456108274435118
|
||||
pair_coeff * * 0.7242785984051078 2.598146797350056
|
||||
pair_coeff 1 1 20.0 1.3 9.0 :pre
|
||||
pair_style lj/smooth/linear 2.5
|
||||
pair_coeff * * 1.0 1.0
|
||||
pair_coeff 1 1 0.3 3.0 9.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Style {lj/smooth/linear} computes a LJ interaction that combines the
|
||||
standard 12/6 Lennard-Jones function and subtracts a linear term that
|
||||
includes the cutoff distance Rc, as in this formula:
|
||||
Style {lj/smooth/linear} computes a truncated and force-shifted LJ
|
||||
interaction (aka Shifted Force Lennard-Jones) that combines the
|
||||
standard 12/6 Lennard-Jones function and subtracts a linear term based
|
||||
on the cutoff distance, so that both, the potential and the force, go
|
||||
continuously to zero at the cutoff Rc "(Toxvaerd)"_#Toxvaerd:
|
||||
|
||||
:c,image(Eqs/pair_lj_smooth_linear.jpg)
|
||||
|
||||
At the cutoff Rc, the energy and force (its 1st derivative) will be 0.0.
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the "pair_coeff"_pair_coeff.html command as in the examples
|
||||
above, or in the data file or restart files read by the
|
||||
@ -41,8 +41,8 @@ epsilon (energy units)
|
||||
sigma (distance units)
|
||||
cutoff (distance units) :ul
|
||||
|
||||
The last coefficient is optional. If not specified, the global value
|
||||
for Rc is used.
|
||||
The last coefficient is optional. If not specified, the global
|
||||
LJ cutoff specified in the pair_style command is used.
|
||||
|
||||
:line
|
||||
|
||||
@ -76,10 +76,11 @@ and cutoff distance can be mixed. The default mix value is geometric.
|
||||
See the "pair_modify" command for details.
|
||||
|
||||
This pair style does not support the "pair_modify"_pair_modify.html
|
||||
shift option for the energy of the pair interaction.
|
||||
shift option for the energy of the pair interaction, since it goes
|
||||
to 0.0 at the cutoff by construction.
|
||||
|
||||
The "pair_modify"_pair_modify.html table option is not relevant for
|
||||
this pair style.
|
||||
The "pair_modify"_pair_modify.html table option is not relevant
|
||||
for this pair style.
|
||||
|
||||
This pair style does not support the "pair_modify"_pair_modify.html
|
||||
tail option for adding long-range tail corrections to energy and
|
||||
|
||||
@ -36,7 +36,7 @@ args = list of arguments for a particular style :ul
|
||||
pair_style morse 2.5
|
||||
pair_style morse/smooth/linear 2.5
|
||||
pair_coeff * * 100.0 2.0 1.5
|
||||
pair_coeff 1 1 100.0 2.0 1.5 3.0
|
||||
pair_coeff 1 1 100.0 2.0 1.5 3.0 :pre
|
||||
|
||||
pair_style morse/soft 4 0.9 10.0
|
||||
pair_coeff * * 100.0 2.0 1.5 1.0
|
||||
|
||||
@ -74,7 +74,7 @@ placeholders for atom types that will be used with other potentials.
|
||||
The python potential file has to start with the following code:
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
#
|
||||
class LAMMPSPairPotential(object):
|
||||
def __init__(self):
|
||||
self.pmap=dict()
|
||||
@ -163,9 +163,10 @@ pair_write 1 1 2000 rsq 0.01 2.5 lj1_lj2.table lj :pre
|
||||
|
||||
Note that it is strongly recommended to try to [delete] the potential
|
||||
table file before generating it. Since the {pair_write} command will
|
||||
always append to a table file, which pair style table will use the
|
||||
first match. Thus when changing the potential function in the python
|
||||
class, the table pair style will still read the old variant.
|
||||
always [append] to a table file, while pair style table will use the
|
||||
[first match]. Thus when changing the potential function in the python
|
||||
class, the table pair style will still read the old variant unless the
|
||||
table file is first deleted.
|
||||
|
||||
After switching the pair style to {table}, the potential tables need
|
||||
to be assigned to the LAMMPS atom types like this:
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
|
||||
pair_style reax/c command :h3
|
||||
pair_style reax/c/kk command :h3
|
||||
pair_style reax/c/omp command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
|
||||
@ -10,7 +10,8 @@ pair_style snap command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style snap :pre
|
||||
pair_style snap
|
||||
:pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
@ -19,11 +20,11 @@ pair_coeff * * InP.snapcoeff In P InP.snapparam In In P P :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Style {snap} computes interactions
|
||||
Pair style {snap} computes interactions
|
||||
using the spectral neighbor analysis potential (SNAP)
|
||||
"(Thompson)"_#Thompson20142. Like the GAP framework of Bartok et al.
|
||||
"(Bartok2010)"_#Bartok20102, "(Bartok2013)"_#Bartok2013
|
||||
it uses bispectrum components
|
||||
which uses bispectrum components
|
||||
to characterize the local neighborhood of each atom
|
||||
in a very general way. The mathematical definition of the
|
||||
bispectrum calculation used by SNAP is identical
|
||||
@ -139,10 +140,15 @@ The default values for these keywords are
|
||||
{rmin0} = 0.0
|
||||
{diagonalstyle} = 3
|
||||
{switchflag} = 0
|
||||
{bzeroflag} = 1 :ul
|
||||
{bzeroflag} = 1
|
||||
{quadraticflag} = 1 :ul
|
||||
|
||||
Detailed definitions of these keywords are given on the "compute
|
||||
Detailed definitions for all the keywords are given on the "compute
|
||||
sna/atom"_compute_sna_atom.html doc page.
|
||||
If {quadraticflag} is set to 1, then the SNAP energy expression includes the quadratic term,
|
||||
0.5*B^t.alpha.B, where alpha is a symmetric {K} by {K} matrix.
|
||||
The SNAP element file should contain {K}({K}+1)/2 additional coefficients
|
||||
for each element, the upper-triangular elements of alpha.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
:line
|
||||
|
||||
pair_style vashishta command :h3
|
||||
pair_style vashishta/gpu command :h3
|
||||
pair_style vashishta/omp command :h3
|
||||
pair_style vashishta/kk command :h3
|
||||
pair_style vashishta/table command :h3
|
||||
|
||||
@ -14,7 +14,7 @@ pair_style zero cutoff {nocoeff} :pre
|
||||
|
||||
zero = style name of this pair style
|
||||
cutoff = global cutoff (distance units)
|
||||
nocoeff = ignore all pair_coeff parameters (optional) :l
|
||||
nocoeff = ignore all pair_coeff parameters (optional) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
|
||||
@ -49,7 +49,6 @@ Pair Styles :h1
|
||||
pair_lj_cubic
|
||||
pair_lj_expand
|
||||
pair_lj_long
|
||||
pair_lj_sf
|
||||
pair_lj_smooth
|
||||
pair_lj_smooth_linear
|
||||
pair_lj_soft
|
||||
|
||||
@ -80,6 +80,7 @@ keyword = {type} or {type/fraction} or {mol} or {x} or {y} or {z} or \
|
||||
value can be an atom-style variable (see below)
|
||||
{image} nx ny nz
|
||||
nx,ny,nz = which periodic image of the simulation box the atom is in
|
||||
any of nx,ny,nz can be an atom-style variable (see below)
|
||||
{bond} value = bond type for all bonds between selected atoms
|
||||
{angle} value = angle type for all angles between selected atoms
|
||||
{dihedral} value = dihedral type for all dihedrals between selected atoms
|
||||
@ -363,9 +364,8 @@ A value of -1 means subtract 1 box length to get the true value.
|
||||
LAMMPS updates these flags as atoms cross periodic boundaries during
|
||||
the simulation. The flags can be output with atom snapshots via the
|
||||
"dump"_dump.html command. If a value of NULL is specified for any of
|
||||
nx,ny,nz, then the current image value for that dimension is
|
||||
unchanged. For non-periodic dimensions only a value of 0 can be
|
||||
specified. This keyword does not allow use of atom-style variables.
|
||||
nx,ny,nz, then the current image value for that dimension is unchanged.
|
||||
For non-periodic dimensions only a value of 0 can be specified.
|
||||
This command can be useful after a system has been equilibrated and
|
||||
atoms have diffused one or more box lengths in various directions.
|
||||
This command can then reset the image values for atoms so that they
|
||||
|
||||
@ -65,7 +65,13 @@ sense to define permanent bonds between atoms that interact via these
|
||||
potentials, though such bonds may exist elsewhere in your system,
|
||||
e.g. when using the "pair_style hybrid"_pair_hybrid.html command.
|
||||
Thus LAMMPS ignores special_bonds settings when manybody potentials
|
||||
are calculated.
|
||||
are calculated. Please note, that the existence of explicit bonds
|
||||
for atoms that are described by a manybody potential will alter the
|
||||
neigborlist and thus can render the computation of those interactions
|
||||
invalid, since those pairs are not only used to determine direct
|
||||
pairwise interactions but also neighbors of neighbors and more.
|
||||
The recommended course of action is to remove such bonds, or - if
|
||||
that is not possible - use a special bonds setting of 1.0 1.0 1.0.
|
||||
|
||||
NOTE: Unlike some commands in LAMMPS, you cannot use this command
|
||||
multiple times in an incremental fashion: e.g. to first set the LJ
|
||||
|
||||
@ -10,6 +10,7 @@ PyLammps Tutorial :h1
|
||||
|
||||
<!-- RST
|
||||
.. contents::
|
||||
|
||||
END_RST -->
|
||||
|
||||
Overview :h2
|
||||
|
||||
@ -153,7 +153,7 @@ int main(int narg, char **arg)
|
||||
for (int i = 0; i < natoms; i++) type[i] = 1;
|
||||
|
||||
lmp->input->one("delete_atoms group all");
|
||||
lammps_create_atoms(lmp,natoms,NULL,type,x,v);
|
||||
lammps_create_atoms(lmp,natoms,NULL,type,x,v,NULL,0);
|
||||
lmp->input->one("run 10");
|
||||
}
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Oliver Henrich (EPCC, University of Edinburgh)
|
||||
Contributing author: Oliver Henrich (University of Strathclyde, Glasgow)
|
||||
------------------------------------------------------------------------- */
|
||||
"""
|
||||
|
||||
|
||||
30009
examples/USER/misc/cnp/Cu_Mishin1.eam
Normal file
30009
examples/USER/misc/cnp/Cu_Mishin1.eam
Normal file
File diff suppressed because it is too large
Load Diff
51
examples/USER/misc/cnp/in.cnp
Normal file
51
examples/USER/misc/cnp/in.cnp
Normal file
@ -0,0 +1,51 @@
|
||||
# Generation and relaxation of a partial dislocation in Cu perfect FCC crystal
|
||||
|
||||
# Initialization
|
||||
units metal
|
||||
boundary p p p
|
||||
atom_style atomic
|
||||
|
||||
# create simulation box and system
|
||||
lattice fcc 3.615 origin 0.01 0.01 0.01 orient x -1 -1 2 orient y 1 1 1 orient z -1 1 0
|
||||
region mdbox block 0 3 0.0 14.0 0 84 units lattice
|
||||
region system block 0 3 1.1 13.1 0 84 units lattice
|
||||
create_box 2 mdbox
|
||||
create_atoms 1 region system
|
||||
|
||||
# Define atoms mass and force field
|
||||
mass * 63.54
|
||||
pair_style eam/alloy
|
||||
pair_coeff * * Cu_Mishin1.eam Cu Cu
|
||||
|
||||
# Delete a plane of atoms along the z direction to generate a partial dislocation
|
||||
region dislocation_atoms block 0 3 7 14 41.9 42.1 units lattice
|
||||
delete_atoms region dislocation_atoms
|
||||
region quarter_up block 0 3 7 11 0 84 units lattice
|
||||
group middle region quarter_up
|
||||
|
||||
# specify simulation parameters
|
||||
timestep 0.004
|
||||
|
||||
# Relax configuration using conjugate gradient
|
||||
#min_style cg
|
||||
#minimize 1.0e-4 1.0e-6 100 1000
|
||||
|
||||
# Setup calculations
|
||||
compute 1 all cnp/atom 3.086
|
||||
compute 2 all cna/atom 3.086
|
||||
compute 3 all centro/atom fcc
|
||||
compute 4 all coord/atom cutoff 3.086
|
||||
dump 1 all custom 100 dump.lammpstrj id type xu yu zu c_1 c_2 c_3 c_4
|
||||
|
||||
### Set up thermo display
|
||||
thermo 10
|
||||
thermo_style custom step atoms temp press pe ke etotal
|
||||
|
||||
# Relax the system performing a langevin dynamics (freeze motion along y 111 direction)
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 50 1 0.1 699483
|
||||
fix 3 all setforce NULL 0.0 NULL
|
||||
fix 4 middle setforce 0.0 0.0 0.0
|
||||
run 100
|
||||
unfix 4
|
||||
run 200
|
||||
185
examples/USER/misc/cnp/log.31May17.cnp.g++.4
Normal file
185
examples/USER/misc/cnp/log.31May17.cnp.g++.4
Normal file
@ -0,0 +1,185 @@
|
||||
LAMMPS (19 May 2017)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# Generation and relaxation of a partial dislocation in Cu perfect FCC crystal
|
||||
|
||||
# Initialization
|
||||
units metal
|
||||
boundary p p p
|
||||
atom_style atomic
|
||||
|
||||
# create simulation box and system
|
||||
lattice fcc 3.615 origin 0.01 0.01 0.01 orient x -1 -1 2 orient y 1 1 1 orient z -1 1 0
|
||||
Lattice spacing in x,y,z = 5.90327 6.26136 5.11238
|
||||
region mdbox block 0 3 0.0 14.0 0 84 units lattice
|
||||
region system block 0 3 1.1 13.1 0 84 units lattice
|
||||
create_box 2 mdbox
|
||||
Created orthogonal box = (0 0 0) to (17.7098 87.6591 429.44)
|
||||
1 by 1 by 4 MPI processor grid
|
||||
create_atoms 1 region system
|
||||
Created 48384 atoms
|
||||
|
||||
# Define atoms mass and force field
|
||||
mass * 63.54
|
||||
pair_style eam/alloy
|
||||
pair_coeff * * Cu_Mishin1.eam Cu Cu
|
||||
|
||||
# Delete a plane of atoms along the z direction to generate a partial dislocation
|
||||
region dislocation_atoms block 0 3 7 14 41.9 42.1 units lattice
|
||||
delete_atoms region dislocation_atoms
|
||||
Deleted 76 atoms, new total = 48308
|
||||
region quarter_up block 0 3 7 11 0 84 units lattice
|
||||
group middle region quarter_up
|
||||
16080 atoms in group middle
|
||||
|
||||
# specify simulation parameters
|
||||
timestep 0.004
|
||||
|
||||
# Relax configuration using conjugate gradient
|
||||
#min_style cg
|
||||
#minimize 1.0e-4 1.0e-6 100 1000
|
||||
|
||||
# Setup calculations
|
||||
compute 1 all cnp/atom 3.086
|
||||
compute 2 all cna/atom 3.086
|
||||
compute 3 all centro/atom fcc
|
||||
compute 4 all coord/atom cutoff 3.086
|
||||
dump 1 all custom 100 dump.lammpstrj id type xu yu zu c_1 c_2 c_3 c_4
|
||||
|
||||
### Set up thermo display
|
||||
thermo 10
|
||||
thermo_style custom step atoms temp press pe ke etotal
|
||||
|
||||
# Relax the system performing a langevin dynamics (freeze motion along y 111 direction)
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 50 1 0.1 699483
|
||||
fix 3 all setforce NULL 0.0 NULL
|
||||
fix 4 middle setforce 0.0 0.0 0.0
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 7.50679
|
||||
ghost atom cutoff = 7.50679
|
||||
binsize = 3.75339, bins = 5 24 115
|
||||
5 neighbor lists, perpetual/occasional/extra = 1 4 0
|
||||
(1) pair eam/alloy, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) compute cnp/atom, occasional
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
(3) compute cna/atom, occasional
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
(4) compute centro/atom, occasional
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
(5) compute coord/atom, occasional
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 45.41 | 45.41 | 45.41 Mbytes
|
||||
Step Atoms Temp Press PotEng KinEng TotEng
|
||||
0 48308 0 -3388.0911 -169746.07 0 -169746.07
|
||||
10 48308 7.35092 -3091.0864 -169715.96 45.900393 -169670.05
|
||||
20 48308 9.9162268 -2822.7045 -169678.51 61.918604 -169616.59
|
||||
30 48308 12.351316 -2726.7195 -169666.35 77.123716 -169589.23
|
||||
40 48308 13.302856 -2703.586 -169662.9 83.06529 -169579.83
|
||||
50 48308 12.782228 -2706.8662 -169662.36 79.814401 -169582.55
|
||||
60 48308 12.198179 -2772.4206 -169670.02 76.167503 -169593.86
|
||||
70 48308 10.663322 -2841.3384 -169677.48 66.583595 -169610.9
|
||||
80 48308 9.1169804 -2932.3896 -169687.85 56.927974 -169630.92
|
||||
90 48308 7.2905076 -3029.9433 -169699.09 45.523167 -169653.56
|
||||
100 48308 5.4063635 -3139.4496 -169711.65 33.758252 -169677.89
|
||||
Loop time of 10.9003 on 4 procs for 100 steps with 48308 atoms
|
||||
|
||||
Performance: 3.171 ns/day, 7.570 hours/ns, 9.174 timesteps/s
|
||||
31.8% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 9.8764 | 9.9587 | 10.021 | 1.6 | 91.36
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.1232 | 0.18385 | 0.26683 | 12.1 | 1.69
|
||||
Output | 0.45385 | 0.45451 | 0.45634 | 0.2 | 4.17
|
||||
Modify | 0.25026 | 0.2537 | 0.25744 | 0.5 | 2.33
|
||||
Other | | 0.04949 | | | 0.45
|
||||
|
||||
Nlocal: 12077 ave 12096 max 12020 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 3
|
||||
Nghost: 14204 ave 14261 max 14109 min
|
||||
Histogram: 1 0 0 0 0 1 0 0 0 2
|
||||
Neighs: 814050 ave 818584 max 809212 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
FullNghs: 1.6281e+06 ave 1.63296e+06 max 1.61808e+06 min
|
||||
Histogram: 1 0 0 0 0 0 1 0 0 2
|
||||
|
||||
Total # of neighbors = 6512400
|
||||
Ave neighs/atom = 134.81
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
unfix 4
|
||||
run 200
|
||||
Per MPI rank memory allocation (min/avg/max) = 45.41 | 45.41 | 45.41 Mbytes
|
||||
Step Atoms Temp Press PotEng KinEng TotEng
|
||||
100 48308 5.4063635 -3139.4496 -169711.65 33.758252 -169677.89
|
||||
110 48308 15.260795 -2793.119 -169677.24 95.290993 -169581.95
|
||||
120 48308 18.548656 -2433.1584 -169624.79 115.82096 -169508.97
|
||||
130 48308 22.15831 -2276.626 -169604.28 138.36025 -169465.92
|
||||
140 48308 24.393841 -2208.1771 -169596.16 152.31929 -169443.84
|
||||
150 48308 24.797558 -2173.3145 -169591.43 154.84016 -169436.59
|
||||
160 48308 24.73371 -2188.909 -169593.08 154.44148 -169438.64
|
||||
170 48308 24.128467 -2220.3404 -169596.96 150.66225 -169446.29
|
||||
180 48308 22.975708 -2275.1244 -169602.72 143.46422 -169459.26
|
||||
190 48308 21.936324 -2348.3762 -169610.59 136.97413 -169473.61
|
||||
200 48308 20.516249 -2432.8447 -169619.98 128.10694 -169491.87
|
||||
210 48308 19.000566 -2510.2915 -169628.58 118.64276 -169509.93
|
||||
220 48308 17.490407 -2597.299 -169638.24 109.21307 -169529.03
|
||||
230 48308 16.062482 -2684.1203 -169648.31 100.29687 -169548.01
|
||||
240 48308 14.360342 -2768.2313 -169657.7 89.668411 -169568.03
|
||||
250 48308 12.802315 -2852.6965 -169666.99 79.939831 -169587.05
|
||||
260 48308 11.258205 -2944.4533 -169677.52 70.298142 -169607.23
|
||||
270 48308 9.6159129 -3038.6304 -169688.06 60.043393 -169628.02
|
||||
280 48308 7.972425 -3129.0826 -169698.03 49.781176 -169648.25
|
||||
290 48308 6.3752377 -3219.2054 -169708.23 39.808067 -169668.42
|
||||
300 48308 4.7374688 -3306.1468 -169718.27 29.58156 -169688.69
|
||||
Loop time of 23.0164 on 4 procs for 200 steps with 48308 atoms
|
||||
|
||||
Performance: 3.003 ns/day, 7.992 hours/ns, 8.689 timesteps/s
|
||||
31.8% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 20.221 | 20.423 | 20.57 | 3.1 | 88.73
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.27748 | 0.42603 | 0.62832 | 21.4 | 1.85
|
||||
Output | 1.5454 | 1.5473 | 1.5529 | 0.3 | 6.72
|
||||
Modify | 0.48886 | 0.49773 | 0.50842 | 1.1 | 2.16
|
||||
Other | | 0.1221 | | | 0.53
|
||||
|
||||
Nlocal: 12077 ave 12096 max 12020 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 3
|
||||
Nghost: 14204 ave 14261 max 14109 min
|
||||
Histogram: 1 0 0 0 0 1 0 0 0 2
|
||||
Neighs: 814094 ave 818584 max 809212 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
FullNghs: 1.62852e+06 ave 1.63296e+06 max 1.61892e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 1 0 2
|
||||
|
||||
Total # of neighbors = 6514094
|
||||
Ave neighs/atom = 134.845
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:35
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -18,13 +18,13 @@ read_data ${rep}/lj.data
|
||||
|
||||
#dump dump all xyz 1000 ${rep}/dump.xyz
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp pe etotal press vol
|
||||
timestep 1.0
|
||||
|
||||
fix fxnpt all npt temp ${T0} ${T0} 1000.0 iso ${press} ${press} 10000.0
|
||||
fix fxgREM all grem ${lambda} -.03 -30000 fxnpt
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp f_fxgREM pe etotal press vol
|
||||
thermo_modify press fxgREM_press
|
||||
timestep 1.0
|
||||
|
||||
temper/grem 10000 100 ${lambda} fxgREM fxnpt 10294 98392 #${walker}
|
||||
|
||||
|
||||
177
examples/USER/tally/log.12Jun17.force.1
Normal file
177
examples/USER/tally/log.12Jun17.force.1
Normal file
@ -0,0 +1,177 @@
|
||||
LAMMPS (19 May 2017)
|
||||
|
||||
units real
|
||||
atom_style full
|
||||
|
||||
read_data data.spce
|
||||
orthogonal box = (0.02645 0.02645 0.02641) to (35.5328 35.5328 35.4736)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
4500 atoms
|
||||
scanning bonds ...
|
||||
2 = max bonds/atom
|
||||
scanning angles ...
|
||||
1 = max angles/atom
|
||||
reading bonds ...
|
||||
3000 bonds
|
||||
reading angles ...
|
||||
1500 angles
|
||||
2 = max # of 1-2 neighbors
|
||||
1 = max # of 1-3 neighbors
|
||||
1 = max # of 1-4 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
pair_style lj/cut/coul/long 12.0 12.0
|
||||
kspace_style pppm 1.0e-4
|
||||
|
||||
pair_coeff 1 1 0.15535 3.166
|
||||
pair_coeff * 2 0.0000 0.0000
|
||||
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style none
|
||||
improper_style none
|
||||
|
||||
bond_coeff 1 1000.00 1.000
|
||||
angle_coeff 1 100.0 109.47
|
||||
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
2 = max # of 1-2 neighbors
|
||||
1 = max # of 1-3 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
neighbor 2.0 bin
|
||||
|
||||
fix 1 all shake 0.0001 20 0 b 1 a 1
|
||||
0 = # of size 2 clusters
|
||||
0 = # of size 3 clusters
|
||||
0 = # of size 4 clusters
|
||||
1500 = # of frozen angles
|
||||
fix 2 all nvt temp 300.0 300.0 100.0
|
||||
|
||||
# make certain that shake constraints are satisfied
|
||||
run 0 post no
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 8000 3375
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 26.54 | 26.54 | 26.54 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -16692.358 0 -16692.358 -1289.8319
|
||||
Loop time of 3e-06 on 1 procs for 0 steps with 4500 atoms
|
||||
|
||||
|
||||
group one molecule 1 2
|
||||
6 atoms in group one
|
||||
|
||||
# the following section shows equivalences between using the force/tally compute and other computes and thermo keywords
|
||||
|
||||
# compute pairwise force between two molecules and everybody
|
||||
compute fpa one group/group all pair yes kspace no boundary no
|
||||
# tally pairwise force between two molecules and the all molecules
|
||||
compute c1 one force/tally all
|
||||
# tally the force of all with all (should be zero)
|
||||
compute c2 all force/tally all
|
||||
# collect per atom data. only reduce over the first group.
|
||||
compute one one reduce sum c_c1[1] c_c1[2] c_c1[3]
|
||||
compute red all reduce sum c_c2[1] c_c2[2] c_c2[3]
|
||||
# determine magnitude of force
|
||||
variable fpa equal sqrt(c_fpa[1]*c_fpa[1]+c_fpa[2]*c_fpa[2]+c_fpa[3]*c_fpa[3])
|
||||
variable for equal sqrt(c_one[1]*c_one[1]+c_one[2]*c_one[2]+c_one[3]*c_one[3])
|
||||
# round to 10**-10 absolute precision.
|
||||
variable ref equal round(1e10*sqrt(c_red[1]*c_red[1]+c_red[2]*c_red[2]+c_red[3]*c_red[3]))*1e-10
|
||||
variable all equal round(1e10*c_c2)*1e-10
|
||||
|
||||
velocity all create 300 432567 dist uniform
|
||||
|
||||
timestep 2.0
|
||||
|
||||
# v_fpa and v_for and c_c1, c_fpa[] and c_one[] should all each have the same value. v_ref and c_c2 should be zero
|
||||
thermo_style custom step v_fpa v_for c_c1 c_fpa[1] c_one[1] c_fpa[2] c_one[2] c_fpa[3] c_one[3] v_ref v_all
|
||||
thermo 10
|
||||
|
||||
run 50
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 8000 3375
|
||||
WARNING: Compute force/tally only called from pair style (../compute_force_tally.cpp:77)
|
||||
WARNING: Compute force/tally only called from pair style (../compute_force_tally.cpp:77)
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7, bins = 6 6 6
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) compute group/group, occasional, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 28.47 | 28.47 | 28.47 Mbytes
|
||||
Step v_fpa v_for c_c1 c_fpa[1] c_one[1] c_fpa[2] c_one[2] c_fpa[3] c_one[3] v_ref v_all
|
||||
0 22.7331 22.7331 22.7331 -17.068295 -17.068295 -8.8348335 -8.8348334 -12.141369 -12.141369 0 0
|
||||
10 11.736901 11.736901 11.736901 -3.3897029 -3.3897029 9.1193856 9.1193856 -6.5651786 -6.5651786 0 0
|
||||
20 5.6120339 5.6120339 5.6120339 -0.60046861 -0.60046861 -4.4481306 -4.4481306 3.3687528 3.3687528 0 0
|
||||
30 17.29261 17.29261 17.29261 6.179302 6.179302 -10.593979 -10.593979 12.190906 12.190906 0 0
|
||||
40 18.664433 18.664433 18.664433 5.4727782 5.4727782 -6.9329319 -6.9329319 16.442148 16.442148 0 0
|
||||
50 12.130407 12.130407 12.130407 -1.0321196 -1.0321196 8.0035558 8.0035558 -9.0567428 -9.0567428 0 0
|
||||
Loop time of 13.9507 on 1 procs for 50 steps with 4500 atoms
|
||||
|
||||
Performance: 0.619 ns/day, 38.752 hours/ns, 3.584 timesteps/s
|
||||
32.0% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 12.594 | 12.594 | 12.594 | 0.0 | 90.27
|
||||
Bond | 7.3e-05 | 7.3e-05 | 7.3e-05 | 0.0 | 0.00
|
||||
Kspace | 0.56296 | 0.56296 | 0.56296 | 0.0 | 4.04
|
||||
Neigh | 0.65858 | 0.65858 | 0.65858 | 0.0 | 4.72
|
||||
Comm | 0.019093 | 0.019093 | 0.019093 | 0.0 | 0.14
|
||||
Output | 0.055025 | 0.055025 | 0.055025 | 0.0 | 0.39
|
||||
Modify | 0.057276 | 0.057276 | 0.057276 | 0.0 | 0.41
|
||||
Other | | 0.004003 | | | 0.03
|
||||
|
||||
Nlocal: 4500 ave 4500 max 4500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 21131 ave 21131 max 21131 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 2.60198e+06 ave 2.60198e+06 max 2.60198e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 2601983
|
||||
Ave neighs/atom = 578.218
|
||||
Ave special neighs/atom = 2
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 1
|
||||
|
||||
Total wall time: 0:00:15
|
||||
177
examples/USER/tally/log.12Jun17.force.4
Normal file
177
examples/USER/tally/log.12Jun17.force.4
Normal file
@ -0,0 +1,177 @@
|
||||
LAMMPS (19 May 2017)
|
||||
|
||||
units real
|
||||
atom_style full
|
||||
|
||||
read_data data.spce
|
||||
orthogonal box = (0.02645 0.02645 0.02641) to (35.5328 35.5328 35.4736)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
4500 atoms
|
||||
scanning bonds ...
|
||||
2 = max bonds/atom
|
||||
scanning angles ...
|
||||
1 = max angles/atom
|
||||
reading bonds ...
|
||||
3000 bonds
|
||||
reading angles ...
|
||||
1500 angles
|
||||
2 = max # of 1-2 neighbors
|
||||
1 = max # of 1-3 neighbors
|
||||
1 = max # of 1-4 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
pair_style lj/cut/coul/long 12.0 12.0
|
||||
kspace_style pppm 1.0e-4
|
||||
|
||||
pair_coeff 1 1 0.15535 3.166
|
||||
pair_coeff * 2 0.0000 0.0000
|
||||
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style none
|
||||
improper_style none
|
||||
|
||||
bond_coeff 1 1000.00 1.000
|
||||
angle_coeff 1 100.0 109.47
|
||||
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
2 = max # of 1-2 neighbors
|
||||
1 = max # of 1-3 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
neighbor 2.0 bin
|
||||
|
||||
fix 1 all shake 0.0001 20 0 b 1 a 1
|
||||
0 = # of size 2 clusters
|
||||
0 = # of size 3 clusters
|
||||
0 = # of size 4 clusters
|
||||
1500 = # of frozen angles
|
||||
fix 2 all nvt temp 300.0 300.0 100.0
|
||||
|
||||
# make certain that shake constraints are satisfied
|
||||
run 0 post no
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 3380 960
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 10.6 | 10.61 | 10.61 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -16692.358 0 -16692.358 -1289.8319
|
||||
Loop time of 4.5e-06 on 4 procs for 0 steps with 4500 atoms
|
||||
|
||||
|
||||
group one molecule 1 2
|
||||
6 atoms in group one
|
||||
|
||||
# the following section shows equivalences between using the force/tally compute and other computes and thermo keywords
|
||||
|
||||
# compute pairwise force between two molecules and everybody
|
||||
compute fpa one group/group all pair yes kspace no boundary no
|
||||
# tally pairwise force between two molecules and the all molecules
|
||||
compute c1 one force/tally all
|
||||
# tally the force of all with all (should be zero)
|
||||
compute c2 all force/tally all
|
||||
# collect per atom data. only reduce over the first group.
|
||||
compute one one reduce sum c_c1[1] c_c1[2] c_c1[3]
|
||||
compute red all reduce sum c_c2[1] c_c2[2] c_c2[3]
|
||||
# determine magnitude of force
|
||||
variable fpa equal sqrt(c_fpa[1]*c_fpa[1]+c_fpa[2]*c_fpa[2]+c_fpa[3]*c_fpa[3])
|
||||
variable for equal sqrt(c_one[1]*c_one[1]+c_one[2]*c_one[2]+c_one[3]*c_one[3])
|
||||
# round to 10**-10 absolute precision.
|
||||
variable ref equal round(1e10*sqrt(c_red[1]*c_red[1]+c_red[2]*c_red[2]+c_red[3]*c_red[3]))*1e-10
|
||||
variable all equal round(1e10*c_c2)*1e-10
|
||||
|
||||
velocity all create 300 432567 dist uniform
|
||||
|
||||
timestep 2.0
|
||||
|
||||
# v_fpa and v_for and c_c1, c_fpa[] and c_one[] should all each have the same value. v_ref and c_c2 should be zero
|
||||
thermo_style custom step v_fpa v_for c_c1 c_fpa[1] c_one[1] c_fpa[2] c_one[2] c_fpa[3] c_one[3] v_ref v_all
|
||||
thermo 10
|
||||
|
||||
run 50
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 3380 960
|
||||
WARNING: Compute force/tally only called from pair style (../compute_force_tally.cpp:77)
|
||||
WARNING: Compute force/tally only called from pair style (../compute_force_tally.cpp:77)
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7, bins = 6 6 6
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) compute group/group, occasional, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 11.58 | 11.59 | 11.6 Mbytes
|
||||
Step v_fpa v_for c_c1 c_fpa[1] c_one[1] c_fpa[2] c_one[2] c_fpa[3] c_one[3] v_ref v_all
|
||||
0 22.7331 22.7331 22.7331 -17.068295 -17.068295 -8.8348335 -8.8348334 -12.141369 -12.141369 0 0
|
||||
10 11.736901 11.736901 11.736901 -3.3897029 -3.3897029 9.1193856 9.1193856 -6.5651786 -6.5651786 0 0
|
||||
20 5.6120339 5.6120339 5.6120339 -0.60046861 -0.60046861 -4.4481306 -4.4481306 3.3687528 3.3687528 0 0
|
||||
30 17.29261 17.29261 17.29261 6.179302 6.179302 -10.593979 -10.593979 12.190906 12.190906 0 0
|
||||
40 18.664433 18.664433 18.664433 5.4727782 5.4727782 -6.9329319 -6.9329319 16.442148 16.442148 0 0
|
||||
50 12.130407 12.130407 12.130407 -1.0321196 -1.0321196 8.0035558 8.0035558 -9.0567428 -9.0567428 0 0
|
||||
Loop time of 4.31614 on 4 procs for 50 steps with 4500 atoms
|
||||
|
||||
Performance: 2.002 ns/day, 11.989 hours/ns, 11.584 timesteps/s
|
||||
31.6% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.5075 | 3.6114 | 3.7489 | 4.7 | 83.67
|
||||
Bond | 8.6e-05 | 0.00010525 | 0.000141 | 0.0 | 0.00
|
||||
Kspace | 0.2581 | 0.39489 | 0.49723 | 14.2 | 9.15
|
||||
Neigh | 0.19826 | 0.19888 | 0.19918 | 0.1 | 4.61
|
||||
Comm | 0.034639 | 0.037137 | 0.038938 | 0.9 | 0.86
|
||||
Output | 0.025465 | 0.025997 | 0.027558 | 0.6 | 0.60
|
||||
Modify | 0.044022 | 0.044175 | 0.044407 | 0.1 | 1.02
|
||||
Other | | 0.003593 | | | 0.08
|
||||
|
||||
Nlocal: 1125 ave 1148 max 1097 min
|
||||
Histogram: 1 0 0 1 0 0 0 0 1 1
|
||||
Nghost: 12212.5 ave 12269 max 12162 min
|
||||
Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||
Neighs: 650496 ave 675112 max 631353 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 2601983
|
||||
Ave neighs/atom = 578.218
|
||||
Ave special neighs/atom = 2
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 1
|
||||
|
||||
Total wall time: 0:00:04
|
||||
@ -1,5 +1,4 @@
|
||||
LAMMPS (21 Aug 2015-ICMS)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
LAMMPS (19 May 2017)
|
||||
|
||||
units real
|
||||
atom_style full
|
||||
@ -50,6 +49,35 @@ fix 1 all shake 0.0001 20 0 b 1 a 1
|
||||
1500 = # of frozen angles
|
||||
fix 2 all nvt temp 300.0 300.0 100.0
|
||||
|
||||
# make certain that shake constraints are satisfied
|
||||
run 0 post no
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 8000 3375
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 26.54 | 26.54 | 26.54 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -16692.358 0 -16692.358 -1289.8319
|
||||
Loop time of 1e-06 on 1 procs for 0 steps with 4500 atoms
|
||||
|
||||
|
||||
group oxy type 1
|
||||
1500 atoms in group oxy
|
||||
group hyd type 2
|
||||
@ -88,6 +116,7 @@ thermo 10
|
||||
|
||||
run 50
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
@ -95,38 +124,49 @@ PPPM initialization ...
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 8000 3375
|
||||
WARNING: Compute pe/tally only called from pair style (../compute_pe_tally.cpp:75)
|
||||
WARNING: Compute pe/tally only called from pair style (../compute_pe_tally.cpp:75)
|
||||
WARNING: Compute pe/tally only called from pair style (../compute_pe_tally.cpp:77)
|
||||
WARNING: Compute pe/tally only called from pair style (../compute_pe_tally.cpp:77)
|
||||
Neighbor list info ...
|
||||
2 neighbor list requests
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7 -> bins = 6 6 6
|
||||
Memory usage per processor = 17.381 Mbytes
|
||||
Step epa epa E_vdwl vdwl E_coul coul eref pe c2 pair
|
||||
0 -516632.19 -516632.19 3169.9382 3169.9382 46213.889 46213.889 49383.827 49383.827 49383.827 49383.827
|
||||
10 -517027.36 -517027.36 3099.1322 3099.1322 45891.84 45891.84 48990.972 48990.972 48990.972 48990.972
|
||||
20 -516828.06 -516828.06 3101.4321 3101.4321 45884.14 45884.14 48985.572 48985.572 48985.572 48985.572
|
||||
30 -517032.1 -517032.1 3198.5939 3198.5939 45793.571 45793.571 48992.165 48992.165 48992.165 48992.165
|
||||
40 -517095.56 -517095.56 3244.0797 3244.0797 45715.265 45715.265 48959.345 48959.345 48959.345 48959.345
|
||||
50 -517273.54 -517273.54 3274.9142 3274.9142 45665.997 45665.997 48940.911 48940.911 48940.911 48940.911
|
||||
binsize = 7, bins = 6 6 6
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) compute group/group, occasional, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 29.08 | 29.08 | 29.08 Mbytes
|
||||
Step c_epa v_epa E_vdwl v_vdwl E_coul v_coul v_eref v_pe c_c2 v_pair
|
||||
0 -516634.27 -516634.27 3169.9427 3169.9427 46212.482 46212.482 49382.425 49382.425 49382.425 49382.425
|
||||
10 -517027.35 -517027.35 3099.1374 3099.1374 45891.866 45891.866 48991.003 48991.003 48991.003 48991.003
|
||||
20 -516828.05 -516828.05 3101.4373 3101.4373 45884.156 45884.156 48985.594 48985.594 48985.594 48985.594
|
||||
30 -517032.07 -517032.07 3198.5951 3198.5951 45793.595 45793.595 48992.191 48992.191 48992.191 48992.191
|
||||
40 -517095.54 -517095.54 3244.0771 3244.0771 45715.292 45715.292 48959.369 48959.369 48959.369 48959.369
|
||||
50 -517273.5 -517273.5 3274.9097 3274.9097 45666.025 45666.025 48940.935 48940.935 48940.935 48940.935
|
||||
Loop time of 15.3339 on 1 procs for 50 steps with 4500 atoms
|
||||
|
||||
Loop time of 4.31105 on 1 procs for 50 steps with 4500 atoms
|
||||
100.1% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
Performance: 2.004 ns/day 11.975 hours/ns 11.598 timesteps/s
|
||||
Performance: 0.563 ns/day, 42.594 hours/ns, 3.261 timesteps/s
|
||||
32.0% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timings breakdown:
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.5071 | 3.5071 | 3.5071 | 0.0 | 81.35
|
||||
Bond | 0.00025034 | 0.00025034 | 0.00025034 | 0.0 | 0.01
|
||||
Kspace | 0.19991 | 0.19991 | 0.19991 | 0.0 | 4.64
|
||||
Neigh | 0.31459 | 0.31459 | 0.31459 | 0.0 | 7.30
|
||||
Comm | 0.010338 | 0.010338 | 0.010338 | 0.0 | 0.24
|
||||
Output | 0.24722 | 0.24722 | 0.24722 | 0.0 | 5.73
|
||||
Modify | 0.029466 | 0.029466 | 0.029466 | 0.0 | 0.68
|
||||
Other | | 0.002182 | | | 0.05
|
||||
Pair | 13.432 | 13.432 | 13.432 | 0.0 | 87.60
|
||||
Bond | 0.000365 | 0.000365 | 0.000365 | 0.0 | 0.00
|
||||
Kspace | 0.581 | 0.581 | 0.581 | 0.0 | 3.79
|
||||
Neigh | 0.66081 | 0.66081 | 0.66081 | 0.0 | 4.31
|
||||
Comm | 0.019908 | 0.019908 | 0.019908 | 0.0 | 0.13
|
||||
Output | 0.57731 | 0.57731 | 0.57731 | 0.0 | 3.76
|
||||
Modify | 0.058515 | 0.058515 | 0.058515 | 0.0 | 0.38
|
||||
Other | | 0.003889 | | | 0.03
|
||||
|
||||
Nlocal: 4500 ave 4500 max 4500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
@ -135,10 +175,10 @@ Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 2.60198e+06 ave 2.60198e+06 max 2.60198e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 2601984
|
||||
Ave neighs/atom = 578.219
|
||||
Total # of neighbors = 2601983
|
||||
Ave neighs/atom = 578.218
|
||||
Ave special neighs/atom = 2
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 1
|
||||
|
||||
Total wall time: 0:00:04
|
||||
Total wall time: 0:00:16
|
||||
@ -1,5 +1,4 @@
|
||||
LAMMPS (21 Aug 2015-ICMS)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
LAMMPS (19 May 2017)
|
||||
|
||||
units real
|
||||
atom_style full
|
||||
@ -50,6 +49,35 @@ fix 1 all shake 0.0001 20 0 b 1 a 1
|
||||
1500 = # of frozen angles
|
||||
fix 2 all nvt temp 300.0 300.0 100.0
|
||||
|
||||
# make certain that shake constraints are satisfied
|
||||
run 0 post no
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 3380 960
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 10.6 | 10.61 | 10.61 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -16692.358 0 -16692.358 -1289.8319
|
||||
Loop time of 1.75e-06 on 4 procs for 0 steps with 4500 atoms
|
||||
|
||||
|
||||
group oxy type 1
|
||||
1500 atoms in group oxy
|
||||
group hyd type 2
|
||||
@ -88,6 +116,7 @@ thermo 10
|
||||
|
||||
run 50
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
@ -95,38 +124,49 @@ PPPM initialization ...
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 3380 960
|
||||
WARNING: Compute pe/tally only called from pair style (../compute_pe_tally.cpp:75)
|
||||
WARNING: Compute pe/tally only called from pair style (../compute_pe_tally.cpp:75)
|
||||
WARNING: Compute pe/tally only called from pair style (../compute_pe_tally.cpp:77)
|
||||
WARNING: Compute pe/tally only called from pair style (../compute_pe_tally.cpp:77)
|
||||
Neighbor list info ...
|
||||
2 neighbor list requests
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7 -> bins = 6 6 6
|
||||
Memory usage per processor = 8.44413 Mbytes
|
||||
Step epa epa E_vdwl vdwl E_coul coul eref pe c2 pair
|
||||
0 -516632.19 -516632.19 3169.9382 3169.9382 46213.889 46213.889 49383.827 49383.827 49383.827 49383.827
|
||||
10 -517027.36 -517027.36 3099.1322 3099.1322 45891.84 45891.84 48990.972 48990.972 48990.972 48990.972
|
||||
20 -516828.06 -516828.06 3101.4321 3101.4321 45884.14 45884.14 48985.572 48985.572 48985.572 48985.572
|
||||
30 -517032.1 -517032.1 3198.5939 3198.5939 45793.571 45793.571 48992.165 48992.165 48992.165 48992.165
|
||||
40 -517095.56 -517095.56 3244.0797 3244.0797 45715.265 45715.265 48959.345 48959.345 48959.345 48959.345
|
||||
50 -517273.54 -517273.54 3274.9142 3274.9142 45665.997 45665.997 48940.911 48940.911 48940.911 48940.911
|
||||
binsize = 7, bins = 6 6 6
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) compute group/group, occasional, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 11.86 | 11.87 | 11.88 Mbytes
|
||||
Step c_epa v_epa E_vdwl v_vdwl E_coul v_coul v_eref v_pe c_c2 v_pair
|
||||
0 -516634.27 -516634.27 3169.9427 3169.9427 46212.482 46212.482 49382.425 49382.425 49382.425 49382.425
|
||||
10 -517027.35 -517027.35 3099.1374 3099.1374 45891.866 45891.866 48991.003 48991.003 48991.003 48991.003
|
||||
20 -516828.05 -516828.05 3101.4373 3101.4373 45884.156 45884.156 48985.594 48985.594 48985.594 48985.594
|
||||
30 -517032.07 -517032.07 3198.5951 3198.5951 45793.595 45793.595 48992.191 48992.191 48992.191 48992.191
|
||||
40 -517095.54 -517095.54 3244.0771 3244.0771 45715.292 45715.292 48959.369 48959.369 48959.369 48959.369
|
||||
50 -517273.5 -517273.5 3274.9097 3274.9097 45666.025 45666.025 48940.935 48940.935 48940.935 48940.935
|
||||
Loop time of 2.32344 on 4 procs for 50 steps with 4500 atoms
|
||||
|
||||
Loop time of 1.20533 on 4 procs for 50 steps with 4500 atoms
|
||||
100.0% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
Performance: 7.168 ns/day 3.348 hours/ns 41.482 timesteps/s
|
||||
Performance: 3.719 ns/day, 6.454 hours/ns, 21.520 timesteps/s
|
||||
64.0% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timings breakdown:
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.87053 | 0.90325 | 0.94364 | 2.8 | 74.94
|
||||
Bond | 0.00015402 | 0.00018191 | 0.00020909 | 0.2 | 0.02
|
||||
Kspace | 0.061657 | 0.10164 | 0.13394 | 8.4 | 8.43
|
||||
Neigh | 0.088292 | 0.088332 | 0.088373 | 0.0 | 7.33
|
||||
Comm | 0.017319 | 0.017806 | 0.018291 | 0.4 | 1.48
|
||||
Output | 0.07067 | 0.070706 | 0.070813 | 0.0 | 5.87
|
||||
Modify | 0.021655 | 0.021694 | 0.02173 | 0.0 | 1.80
|
||||
Other | | 0.001719 | | | 0.14
|
||||
Pair | 1.5561 | 1.8883 | 2.0327 | 14.1 | 81.27
|
||||
Bond | 8.8e-05 | 0.000116 | 0.000135 | 0.0 | 0.00
|
||||
Kspace | 0.094718 | 0.1933 | 0.26055 | 14.1 | 8.32
|
||||
Neigh | 0.085117 | 0.1073 | 0.1147 | 3.9 | 4.62
|
||||
Comm | 0.014156 | 0.017907 | 0.020005 | 1.8 | 0.77
|
||||
Output | 0.071634 | 0.090599 | 0.097665 | 3.6 | 3.90
|
||||
Modify | 0.019447 | 0.024101 | 0.026277 | 1.8 | 1.04
|
||||
Other | | 0.001804 | | | 0.08
|
||||
|
||||
Nlocal: 1125 ave 1148 max 1097 min
|
||||
Histogram: 1 0 0 1 0 0 0 0 1 1
|
||||
@ -135,10 +175,10 @@ Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||
Neighs: 650496 ave 675112 max 631353 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 2601984
|
||||
Ave neighs/atom = 578.219
|
||||
Total # of neighbors = 2601983
|
||||
Ave neighs/atom = 578.218
|
||||
Ave special neighs/atom = 2
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 1
|
||||
|
||||
Total wall time: 0:00:01
|
||||
Total wall time: 0:00:02
|
||||
@ -1,5 +1,4 @@
|
||||
LAMMPS (21 Aug 2015-ICMS)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
LAMMPS (19 May 2017)
|
||||
|
||||
units real
|
||||
atom_style full
|
||||
@ -50,6 +49,35 @@ fix 1 all shake 0.0001 20 0 b 1 a 1
|
||||
1500 = # of frozen angles
|
||||
fix 2 all nvt temp 300.0 300.0 100.0
|
||||
|
||||
# make certain that shake constraints are satisfied
|
||||
run 0 post no
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 8000 3375
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 26.54 | 26.54 | 26.54 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -16692.358 0 -16692.358 -1289.8319
|
||||
Loop time of 2e-06 on 1 procs for 0 steps with 4500 atoms
|
||||
|
||||
|
||||
group one molecule 1 2
|
||||
6 atoms in group one
|
||||
|
||||
@ -79,6 +107,7 @@ thermo 10
|
||||
|
||||
run 50
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
@ -86,38 +115,32 @@ PPPM initialization ...
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 8000 3375
|
||||
WARNING: Compute stress/tally only called from pair style (../compute_stress_tally.cpp:75)
|
||||
WARNING: Compute stress/tally only called from pair style (../compute_stress_tally.cpp:75)
|
||||
Neighbor list info ...
|
||||
1 neighbor list requests
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7 -> bins = 6 6 6
|
||||
Memory usage per processor = 24.631 Mbytes
|
||||
Step press spa press one ref
|
||||
0 26497.547 26497.547 26497.547 -2357033.6 -2357033.6
|
||||
10 23665.073 23665.073 23665.073 -2096057.3 -2096057.3
|
||||
20 23338.149 23338.149 23338.149 -2034283 -2034283
|
||||
30 25946.4 25946.4 25946.4 -2002817 -2002817
|
||||
40 27238.349 27238.349 27238.349 -2155411.5 -2155411.5
|
||||
50 27783.092 27783.092 27783.092 -1862190.3 -1862190.3
|
||||
WARNING: Compute stress/tally only called from pair style (../compute_stress_tally.cpp:79)
|
||||
WARNING: Compute stress/tally only called from pair style (../compute_stress_tally.cpp:79)
|
||||
Per MPI rank memory allocation (min/avg/max) = 35.9 | 35.9 | 35.9 Mbytes
|
||||
Step c_press v_spa v_press v_one v_ref
|
||||
0 26496.811 26496.811 26496.811 -2356992.7 -2356992.7
|
||||
10 23665.129 23665.129 23665.129 -2096059 -2096059
|
||||
20 23338.197 23338.197 23338.197 -2034284.1 -2034284.1
|
||||
30 25946.434 25946.434 25946.434 -2002815.3 -2002815.3
|
||||
40 27238.374 27238.374 27238.374 -2155408.7 -2155408.7
|
||||
50 27783.107 27783.107 27783.107 -1862191.5 -1862191.5
|
||||
Loop time of 14.2089 on 1 procs for 50 steps with 4500 atoms
|
||||
|
||||
Loop time of 4.15609 on 1 procs for 50 steps with 4500 atoms
|
||||
100.1% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
Performance: 2.079 ns/day 11.545 hours/ns 12.031 timesteps/s
|
||||
Performance: 0.608 ns/day, 39.469 hours/ns, 3.519 timesteps/s
|
||||
32.0% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timings breakdown:
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.6444 | 3.6444 | 3.6444 | 0.0 | 87.69
|
||||
Bond | 0.0016105 | 0.0016105 | 0.0016105 | 0.0 | 0.04
|
||||
Kspace | 0.22345 | 0.22345 | 0.22345 | 0.0 | 5.38
|
||||
Neigh | 0.23588 | 0.23588 | 0.23588 | 0.0 | 5.68
|
||||
Comm | 0.010035 | 0.010035 | 0.010035 | 0.0 | 0.24
|
||||
Output | 0.0084085 | 0.0084085 | 0.0084085 | 0.0 | 0.20
|
||||
Modify | 0.029978 | 0.029978 | 0.029978 | 0.0 | 0.72
|
||||
Other | | 0.002368 | | | 0.06
|
||||
Pair | 12.983 | 12.983 | 12.983 | 0.0 | 91.37
|
||||
Bond | 0.002788 | 0.002788 | 0.002788 | 0.0 | 0.02
|
||||
Kspace | 0.62745 | 0.62745 | 0.62745 | 0.0 | 4.42
|
||||
Neigh | 0.49839 | 0.49839 | 0.49839 | 0.0 | 3.51
|
||||
Comm | 0.018597 | 0.018597 | 0.018597 | 0.0 | 0.13
|
||||
Output | 0.015852 | 0.015852 | 0.015852 | 0.0 | 0.11
|
||||
Modify | 0.058415 | 0.058415 | 0.058415 | 0.0 | 0.41
|
||||
Other | | 0.004126 | | | 0.03
|
||||
|
||||
Nlocal: 4500 ave 4500 max 4500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
@ -132,4 +155,4 @@ Ave special neighs/atom = 2
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
|
||||
Total wall time: 0:00:04
|
||||
Total wall time: 0:00:15
|
||||
@ -1,5 +1,4 @@
|
||||
LAMMPS (21 Aug 2015-ICMS)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
LAMMPS (19 May 2017)
|
||||
|
||||
units real
|
||||
atom_style full
|
||||
@ -50,6 +49,35 @@ fix 1 all shake 0.0001 20 0 b 1 a 1
|
||||
1500 = # of frozen angles
|
||||
fix 2 all nvt temp 300.0 300.0 100.0
|
||||
|
||||
# make certain that shake constraints are satisfied
|
||||
run 0 post no
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 3380 960
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 10.6 | 10.61 | 10.61 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -16692.358 0 -16692.358 -1289.8319
|
||||
Loop time of 4e-06 on 4 procs for 0 steps with 4500 atoms
|
||||
|
||||
|
||||
group one molecule 1 2
|
||||
6 atoms in group one
|
||||
|
||||
@ -79,6 +107,7 @@ thermo 10
|
||||
|
||||
run 50
|
||||
PPPM initialization ...
|
||||
WARNING: Using 12-bit tables for long-range coulomb (../kspace.cpp:321)
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
@ -86,44 +115,38 @@ PPPM initialization ...
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 3380 960
|
||||
WARNING: Compute stress/tally only called from pair style (../compute_stress_tally.cpp:75)
|
||||
WARNING: Compute stress/tally only called from pair style (../compute_stress_tally.cpp:75)
|
||||
Neighbor list info ...
|
||||
1 neighbor list requests
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7 -> bins = 6 6 6
|
||||
Memory usage per processor = 12.0691 Mbytes
|
||||
Step press spa press one ref
|
||||
0 26497.547 26497.547 26497.547 -2357033.6 -2357033.6
|
||||
10 23665.073 23665.073 23665.073 -2096057.3 -2096057.3
|
||||
20 23338.149 23338.149 23338.149 -2034283 -2034283
|
||||
30 25946.4 25946.4 25946.4 -2002817 -2002817
|
||||
40 27238.349 27238.349 27238.349 -2155411.5 -2155411.5
|
||||
50 27783.092 27783.092 27783.092 -1862190.3 -1862190.3
|
||||
WARNING: Compute stress/tally only called from pair style (../compute_stress_tally.cpp:79)
|
||||
WARNING: Compute stress/tally only called from pair style (../compute_stress_tally.cpp:79)
|
||||
Per MPI rank memory allocation (min/avg/max) = 15.25 | 15.26 | 15.27 Mbytes
|
||||
Step c_press v_spa v_press v_one v_ref
|
||||
0 26496.811 26496.811 26496.811 -2356992.7 -2356992.7
|
||||
10 23665.129 23665.129 23665.129 -2096059 -2096059
|
||||
20 23338.197 23338.197 23338.197 -2034284.1 -2034284.1
|
||||
30 25946.434 25946.434 25946.434 -2002815.3 -2002815.3
|
||||
40 27238.374 27238.374 27238.374 -2155408.7 -2155408.7
|
||||
50 27783.107 27783.107 27783.107 -1862191.5 -1862191.5
|
||||
Loop time of 4.32017 on 4 procs for 50 steps with 4500 atoms
|
||||
|
||||
Loop time of 1.17266 on 4 procs for 50 steps with 4500 atoms
|
||||
100.0% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
Performance: 7.368 ns/day 3.257 hours/ns 42.638 timesteps/s
|
||||
Performance: 2.000 ns/day, 12.000 hours/ns, 11.574 timesteps/s
|
||||
31.8% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timings breakdown:
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.89832 | 0.93222 | 0.98611 | 3.4 | 79.50
|
||||
Bond | 0.00081754 | 0.00096095 | 0.0011327 | 0.4 | 0.08
|
||||
Kspace | 0.068058 | 0.12154 | 0.15522 | 9.4 | 10.36
|
||||
Neigh | 0.065756 | 0.065785 | 0.065824 | 0.0 | 5.61
|
||||
Comm | 0.017489 | 0.017982 | 0.018623 | 0.4 | 1.53
|
||||
Output | 0.010985 | 0.011017 | 0.011111 | 0.1 | 0.94
|
||||
Modify | 0.021429 | 0.021491 | 0.021551 | 0.0 | 1.83
|
||||
Other | | 0.001671 | | | 0.14
|
||||
Pair | 3.5816 | 3.6917 | 3.839 | 4.9 | 85.45
|
||||
Bond | 0.001579 | 0.0016563 | 0.001709 | 0.1 | 0.04
|
||||
Kspace | 0.22505 | 0.3716 | 0.48023 | 15.3 | 8.60
|
||||
Neigh | 0.14558 | 0.14568 | 0.14575 | 0.0 | 3.37
|
||||
Comm | 0.032009 | 0.03441 | 0.036274 | 0.8 | 0.80
|
||||
Output | 0.02253 | 0.023115 | 0.024844 | 0.7 | 0.54
|
||||
Modify | 0.046954 | 0.047086 | 0.047132 | 0.0 | 1.09
|
||||
Other | | 0.004935 | | | 0.11
|
||||
|
||||
Nlocal: 1125 ave 1154 max 1092 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
Nghost: 12263.5 ave 12300 max 12219 min
|
||||
Histogram: 1 0 1 0 0 0 0 0 0 2
|
||||
Neighs: 650438 ave 678786 max 626279 min
|
||||
Neighs: 650438 ave 678787 max 626279 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 2601750
|
||||
@ -132,4 +155,4 @@ Ave special neighs/atom = 2
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
|
||||
Total wall time: 0:00:01
|
||||
Total wall time: 0:00:04
|
||||
@ -1,136 +0,0 @@
|
||||
LAMMPS (21 Aug 2015-ICMS)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
|
||||
units real
|
||||
atom_style full
|
||||
|
||||
read_data data.spce
|
||||
orthogonal box = (0.02645 0.02645 0.02641) to (35.5328 35.5328 35.4736)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
4500 atoms
|
||||
scanning bonds ...
|
||||
2 = max bonds/atom
|
||||
scanning angles ...
|
||||
1 = max angles/atom
|
||||
reading bonds ...
|
||||
3000 bonds
|
||||
reading angles ...
|
||||
1500 angles
|
||||
2 = max # of 1-2 neighbors
|
||||
1 = max # of 1-3 neighbors
|
||||
1 = max # of 1-4 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
pair_style lj/cut/coul/long 12.0 12.0
|
||||
kspace_style pppm 1.0e-4
|
||||
|
||||
pair_coeff 1 1 0.15535 3.166
|
||||
pair_coeff * 2 0.0000 0.0000
|
||||
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style none
|
||||
improper_style none
|
||||
|
||||
bond_coeff 1 1000.00 1.000
|
||||
angle_coeff 1 100.0 109.47
|
||||
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
2 = max # of 1-2 neighbors
|
||||
1 = max # of 1-3 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
neighbor 2.0 bin
|
||||
|
||||
fix 1 all shake 0.0001 20 0 b 1 a 1
|
||||
0 = # of size 2 clusters
|
||||
0 = # of size 3 clusters
|
||||
0 = # of size 4 clusters
|
||||
1500 = # of frozen angles
|
||||
fix 2 all nvt temp 300.0 300.0 100.0
|
||||
|
||||
group one molecule 1 2
|
||||
6 atoms in group one
|
||||
|
||||
# the following section shows equivalences between using the pe/tally compute and other computes and thermo keywords
|
||||
|
||||
# compute pairwise force between two molecules and everybody
|
||||
compute fpa one group/group all pair yes kspace no boundary no
|
||||
# tally pairwise force between two molecules and the all molecules
|
||||
compute c1 one force/tally all
|
||||
# tally the force of all with all (should be zero)
|
||||
compute c2 all force/tally all
|
||||
# collect per atom data. only reduce over the first group.
|
||||
compute one one reduce sum c_c1[1] c_c1[2] c_c1[3]
|
||||
compute red all reduce sum c_c2[1] c_c2[2] c_c2[3]
|
||||
# determine magnitude of force
|
||||
variable fpa equal sqrt(c_fpa[1]*c_fpa[1]+c_fpa[2]*c_fpa[2]+c_fpa[3]*c_fpa[3])
|
||||
variable for equal sqrt(c_one[1]*c_one[1]+c_one[2]*c_one[2]+c_one[3]*c_one[3])
|
||||
# round to 10**-10 absolute precision.
|
||||
variable ref equal round(1e10*sqrt(c_red[1]*c_red[1]+c_red[2]*c_red[2]+c_red[3]*c_red[3]))*1e-10
|
||||
|
||||
velocity all create 300 432567 dist uniform
|
||||
|
||||
timestep 2.0
|
||||
|
||||
# v_fpa and v_for and c_c1, c_fpa[] and c_one[] should all each have the same value. v_ref and c_c2 should be zero
|
||||
thermo_style custom step v_fpa v_for c_c1 c_fpa[1] c_one[1] c_fpa[2] c_one[2] c_fpa[3] c_one[3] v_ref c_c2
|
||||
thermo 10
|
||||
|
||||
run 50
|
||||
PPPM initialization ...
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 8000 3375
|
||||
WARNING: Compute force/tally only called from pair style (../compute_force_tally.cpp:75)
|
||||
WARNING: Compute force/tally only called from pair style (../compute_force_tally.cpp:75)
|
||||
Neighbor list info ...
|
||||
2 neighbor list requests
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7 -> bins = 6 6 6
|
||||
Memory usage per processor = 16.7648 Mbytes
|
||||
Step fpa for c1 fpa[1] one[1] fpa[2] one[2] fpa[3] one[3] ref c2
|
||||
0 22.732789 22.732789 22.732789 -17.068392 -17.068392 -8.8345214 -8.8345214 -12.140878 -12.140878 0 0
|
||||
10 11.736915 11.736915 11.736915 -3.3898298 -3.3898298 9.119272 9.119272 -6.5652948 -6.5652948 0 0
|
||||
20 5.6119761 5.6119761 5.6119761 -0.60028931 -0.60028931 -4.4479886 -4.4479886 3.368876 3.368876 0 0
|
||||
30 17.292617 17.292617 17.292617 6.1793856 6.1793856 -10.593927 -10.593927 12.190919 12.190919 0 0
|
||||
40 18.664226 18.664226 18.664226 5.4725079 5.4725079 -6.933046 -6.933046 16.441955 16.441955 0 0
|
||||
50 12.130282 12.130282 12.130282 -1.0321244 -1.0321244 8.0032646 8.0032646 -9.0568326 -9.0568326 0 0
|
||||
|
||||
Loop time of 4.11825 on 1 procs for 50 steps with 4500 atoms
|
||||
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
Performance: 2.098 ns/day 11.440 hours/ns 12.141 timesteps/s
|
||||
|
||||
MPI task timings breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.5286 | 3.5286 | 3.5286 | 0.0 | 85.68
|
||||
Bond | 6.1274e-05 | 6.1274e-05 | 6.1274e-05 | 0.0 | 0.00
|
||||
Kspace | 0.1937 | 0.1937 | 0.1937 | 0.0 | 4.70
|
||||
Neigh | 0.31454 | 0.31454 | 0.31454 | 0.0 | 7.64
|
||||
Comm | 0.01037 | 0.01037 | 0.01037 | 0.0 | 0.25
|
||||
Output | 0.039355 | 0.039355 | 0.039355 | 0.0 | 0.96
|
||||
Modify | 0.029273 | 0.029273 | 0.029273 | 0.0 | 0.71
|
||||
Other | | 0.002351 | | | 0.06
|
||||
|
||||
Nlocal: 4500 ave 4500 max 4500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 21131 ave 21131 max 21131 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 2.60198e+06 ave 2.60198e+06 max 2.60198e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 2601984
|
||||
Ave neighs/atom = 578.219
|
||||
Ave special neighs/atom = 2
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 1
|
||||
|
||||
Total wall time: 0:00:04
|
||||
@ -1,136 +0,0 @@
|
||||
LAMMPS (21 Aug 2015-ICMS)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
|
||||
units real
|
||||
atom_style full
|
||||
|
||||
read_data data.spce
|
||||
orthogonal box = (0.02645 0.02645 0.02641) to (35.5328 35.5328 35.4736)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
4500 atoms
|
||||
scanning bonds ...
|
||||
2 = max bonds/atom
|
||||
scanning angles ...
|
||||
1 = max angles/atom
|
||||
reading bonds ...
|
||||
3000 bonds
|
||||
reading angles ...
|
||||
1500 angles
|
||||
2 = max # of 1-2 neighbors
|
||||
1 = max # of 1-3 neighbors
|
||||
1 = max # of 1-4 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
pair_style lj/cut/coul/long 12.0 12.0
|
||||
kspace_style pppm 1.0e-4
|
||||
|
||||
pair_coeff 1 1 0.15535 3.166
|
||||
pair_coeff * 2 0.0000 0.0000
|
||||
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style none
|
||||
improper_style none
|
||||
|
||||
bond_coeff 1 1000.00 1.000
|
||||
angle_coeff 1 100.0 109.47
|
||||
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
2 = max # of 1-2 neighbors
|
||||
1 = max # of 1-3 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
neighbor 2.0 bin
|
||||
|
||||
fix 1 all shake 0.0001 20 0 b 1 a 1
|
||||
0 = # of size 2 clusters
|
||||
0 = # of size 3 clusters
|
||||
0 = # of size 4 clusters
|
||||
1500 = # of frozen angles
|
||||
fix 2 all nvt temp 300.0 300.0 100.0
|
||||
|
||||
group one molecule 1 2
|
||||
6 atoms in group one
|
||||
|
||||
# the following section shows equivalences between using the pe/tally compute and other computes and thermo keywords
|
||||
|
||||
# compute pairwise force between two molecules and everybody
|
||||
compute fpa one group/group all pair yes kspace no boundary no
|
||||
# tally pairwise force between two molecules and the all molecules
|
||||
compute c1 one force/tally all
|
||||
# tally the force of all with all (should be zero)
|
||||
compute c2 all force/tally all
|
||||
# collect per atom data. only reduce over the first group.
|
||||
compute one one reduce sum c_c1[1] c_c1[2] c_c1[3]
|
||||
compute red all reduce sum c_c2[1] c_c2[2] c_c2[3]
|
||||
# determine magnitude of force
|
||||
variable fpa equal sqrt(c_fpa[1]*c_fpa[1]+c_fpa[2]*c_fpa[2]+c_fpa[3]*c_fpa[3])
|
||||
variable for equal sqrt(c_one[1]*c_one[1]+c_one[2]*c_one[2]+c_one[3]*c_one[3])
|
||||
# round to 10**-10 absolute precision.
|
||||
variable ref equal round(1e10*sqrt(c_red[1]*c_red[1]+c_red[2]*c_red[2]+c_red[3]*c_red[3]))*1e-10
|
||||
|
||||
velocity all create 300 432567 dist uniform
|
||||
|
||||
timestep 2.0
|
||||
|
||||
# v_fpa and v_for and c_c1, c_fpa[] and c_one[] should all each have the same value. v_ref and c_c2 should be zero
|
||||
thermo_style custom step v_fpa v_for c_c1 c_fpa[1] c_one[1] c_fpa[2] c_one[2] c_fpa[3] c_one[3] v_ref c_c2
|
||||
thermo 10
|
||||
|
||||
run 50
|
||||
PPPM initialization ...
|
||||
G vector (1/distance) = 0.218482
|
||||
grid = 15 15 15
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.0319435
|
||||
estimated relative force accuracy = 9.61968e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 3380 960
|
||||
WARNING: Compute force/tally only called from pair style (../compute_force_tally.cpp:75)
|
||||
WARNING: Compute force/tally only called from pair style (../compute_force_tally.cpp:75)
|
||||
Neighbor list info ...
|
||||
2 neighbor list requests
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
master list distance cutoff = 14
|
||||
ghost atom cutoff = 14
|
||||
binsize = 7 -> bins = 6 6 6
|
||||
Memory usage per processor = 8.16441 Mbytes
|
||||
Step fpa for c1 fpa[1] one[1] fpa[2] one[2] fpa[3] one[3] ref c2
|
||||
0 22.732789 22.732789 22.732789 -17.068392 -17.068392 -8.8345214 -8.8345214 -12.140878 -12.140878 0 0
|
||||
10 11.736915 11.736915 11.736915 -3.3898298 -3.3898298 9.119272 9.119272 -6.5652948 -6.5652948 0 0
|
||||
20 5.6119761 5.6119761 5.6119761 -0.60028931 -0.60028931 -4.4479886 -4.4479886 3.368876 3.368876 0 0
|
||||
30 17.292617 17.292617 17.292617 6.1793856 6.1793856 -10.593927 -10.593927 12.190919 12.190919 0 0
|
||||
40 18.664226 18.664226 18.664226 5.4725079 5.4725079 -6.933046 -6.933046 16.441955 16.441955 0 0
|
||||
50 12.130282 12.130282 12.130282 -1.0321244 -1.0321244 8.0032646 8.0032646 -9.0568326 -9.0568326 0 0
|
||||
|
||||
Loop time of 1.13658 on 4 procs for 50 steps with 4500 atoms
|
||||
100.0% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
Performance: 7.602 ns/day 3.157 hours/ns 43.991 timesteps/s
|
||||
|
||||
MPI task timings breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.85795 | 0.89088 | 0.93636 | 3.0 | 78.38
|
||||
Bond | 3.4571e-05 | 4.4644e-05 | 5.4598e-05 | 0.1 | 0.00
|
||||
Kspace | 0.059847 | 0.1051 | 0.1384 | 8.9 | 9.25
|
||||
Neigh | 0.085891 | 0.085954 | 0.086 | 0.0 | 7.56
|
||||
Comm | 0.01758 | 0.018091 | 0.019178 | 0.5 | 1.59
|
||||
Output | 0.013697 | 0.013725 | 0.013805 | 0.0 | 1.21
|
||||
Modify | 0.021068 | 0.021137 | 0.021205 | 0.0 | 1.86
|
||||
Other | | 0.001656 | | | 0.15
|
||||
|
||||
Nlocal: 1125 ave 1148 max 1097 min
|
||||
Histogram: 1 0 0 1 0 0 0 0 1 1
|
||||
Nghost: 12212.5 ave 12269 max 12162 min
|
||||
Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||
Neighs: 650496 ave 675112 max 631353 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 2601984
|
||||
Ave neighs/atom = 578.219
|
||||
Ave special neighs/atom = 2
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 1
|
||||
|
||||
Total wall time: 0:00:01
|
||||
@ -2,13 +2,19 @@ Run these examples as:
|
||||
|
||||
mpirun -np 4 lmp_g++ -partition 4x1 -in in.neb.hop1
|
||||
mpirun -np 4 lmp_g++ -partition 4x1 -in in.neb.hop2
|
||||
mpirun -np 4 lmp_g++ -partition 4x1 -in in.neb.hop1freeend
|
||||
mpirun -np 3 lmp_g++ -partition 3x1 -in in.neb.sivac
|
||||
|
||||
mpirun -np 8 lmp_g++ -partition 4x2 -in in.neb.hop1
|
||||
mpirun -np 8 lmp_g++ -partition 4x2 -in in.neb.hop2
|
||||
mpirun -np 8 lmp_g++ -partition 4x2 -in in.neb.hop1freeend
|
||||
mpirun -np 6 lmp_g++ -partition 3x2 -in in.neb.sivac
|
||||
mpirun -np 9 lmp_g++ -partition 3x3 -in in.neb.sivac
|
||||
|
||||
|
||||
Note that more than 4 replicas should be used for a precise estimate
|
||||
of the activation energy corresponding to a transition.
|
||||
|
||||
If you uncomment the dump command lines in the input scripts, you can
|
||||
create dump files to do visualization from via Python tools: (see
|
||||
lammps/tools/README and lammps/tools/python/README for more info on
|
||||
|
||||
@ -51,7 +51,7 @@ set group nebatoms type 3
|
||||
group nonneb subtract all nebatoms
|
||||
|
||||
fix 1 lower setforce 0.0 0.0 0.0
|
||||
fix 2 nebatoms neb 1.0
|
||||
fix 2 nebatoms neb 1.0 nudg_style idealpos
|
||||
fix 3 all enforce2d
|
||||
|
||||
thermo 100
|
||||
|
||||
56
examples/neb/in.neb.hop1freeend
Normal file
56
examples/neb/in.neb.hop1freeend
Normal file
@ -0,0 +1,56 @@
|
||||
# 2d NEB surface simulation, hop from surface to become adatom
|
||||
|
||||
dimension 2
|
||||
boundary p s p
|
||||
|
||||
atom_style atomic
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 5
|
||||
atom_modify map array sort 0 0.0
|
||||
|
||||
variable u uloop 20
|
||||
|
||||
# create geometry with flat surface
|
||||
|
||||
lattice hex 0.9
|
||||
region box block 0 20 0 10 -0.25 0.25
|
||||
|
||||
read_data initial.hop1freeend
|
||||
|
||||
# LJ potentials
|
||||
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff * * 1.0 1.0 2.5
|
||||
pair_modify shift yes
|
||||
|
||||
# define groups
|
||||
|
||||
region 1 block INF INF INF 1.25 INF INF
|
||||
group lower region 1
|
||||
group mobile subtract all lower
|
||||
set group lower type 2
|
||||
|
||||
timestep 0.05
|
||||
|
||||
# group of NEB atoms - either block or single atom ID 412
|
||||
|
||||
region surround block 10 18 17 20 0 0 units box
|
||||
group nebatoms region surround
|
||||
#group nebatoms id 412
|
||||
set group nebatoms type 3
|
||||
group nonneb subtract all nebatoms
|
||||
|
||||
fix 1 lower setforce 0.0 0.0 0.0
|
||||
fix 2 nebatoms neb 1.0 nudg_style idealpos freeend ini
|
||||
fix 3 all enforce2d
|
||||
|
||||
thermo 100
|
||||
|
||||
#dump 1 nebatoms atom 10 dump.neb.$u
|
||||
#dump 2 nonneb atom 10 dump.nonneb.$u
|
||||
|
||||
# run NEB for 2000 steps or to force tolerance
|
||||
|
||||
min_style quickmin
|
||||
|
||||
neb 0.0 0.1 1000 1000 100 final final.hop1
|
||||
860
examples/neb/initial.hop1freeend
Normal file
860
examples/neb/initial.hop1freeend
Normal file
@ -0,0 +1,860 @@
|
||||
LAMMPS data file via write_data, version 4 May 2017, timestep = 155
|
||||
|
||||
420 atoms
|
||||
3 atom types
|
||||
|
||||
0.0000000000000000e+00 2.2653923264628304e+01 xlo xhi
|
||||
2.1918578738841410e-01 1.9932852254455714e+01 ylo yhi
|
||||
-2.8317404080785380e-01 2.8317404080785380e-01 zlo zhi
|
||||
|
||||
Masses
|
||||
|
||||
1 1
|
||||
2 1
|
||||
3 1
|
||||
|
||||
Atoms # atomic
|
||||
|
||||
1 2 0.0000000000000000e+00 2.2114806707013038e-01 0.0000000000000000e+00 0 0 0
|
||||
2 2 5.6634808161570760e-01 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
3 2 1.1326961632314152e+00 2.2114806707013018e-01 0.0000000000000000e+00 0 0 0
|
||||
4 2 1.6990442448471228e+00 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
5 2 2.2653923264628304e+00 2.2114806707013032e-01 0.0000000000000000e+00 0 0 0
|
||||
6 2 2.8317404080785380e+00 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
7 2 3.3980884896942456e+00 2.2114806707013024e-01 0.0000000000000000e+00 0 0 0
|
||||
8 2 3.9644365713099532e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
9 2 4.5307846529256608e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
10 2 5.0971327345413684e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
11 2 5.6634808161570760e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
12 2 6.2298288977727836e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
13 2 6.7961769793884912e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
14 2 7.3625250610041988e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
15 2 7.9288731426199064e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
16 2 8.4952212242356140e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
17 2 9.0615693058513216e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
18 2 9.6279173874670292e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
19 2 1.0194265469082737e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
20 2 1.0760613550698444e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
21 2 1.1326961632314152e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
22 2 1.1893309713929860e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
23 2 1.2459657795545567e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
24 2 1.3026005877161275e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
25 2 1.3592353958776982e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
26 2 1.4158702040392690e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
27 2 1.4725050122008398e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
28 2 1.5291398203624105e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
29 2 1.5857746285239813e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
30 2 1.6424094366855520e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
31 2 1.6990442448471228e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
32 2 1.7556790530086936e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
33 2 1.8123138611702643e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
34 2 1.8689486693318351e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
35 2 1.9255834774934058e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
36 2 1.9822182856549766e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
37 2 2.0388530938165474e+01 2.2114806707013024e-01 0.0000000000000000e+00 0 0 0
|
||||
38 2 2.0954879019781181e+01 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
39 2 2.1521227101396889e+01 2.2114806707013043e-01 0.0000000000000000e+00 0 0 0
|
||||
40 2 2.2087575183012596e+01 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
41 2 5.5197595012095140e-17 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
42 1 5.6653050195082300e-01 3.1000166664180786e+00 0.0000000000000000e+00 0 0 0
|
||||
43 2 1.1326961632314152e+00 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
44 1 1.6992713312703549e+00 3.1000339212153092e+00 0.0000000000000000e+00 0 0 0
|
||||
45 2 2.2653923264628304e+00 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
46 1 2.8319979330663916e+00 3.1000568858502824e+00 0.0000000000000000e+00 0 0 0
|
||||
47 2 3.3980884896942456e+00 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
48 1 3.9647072056144004e+00 3.1000829051868171e+00 0.0000000000000000e+00 0 0 0
|
||||
49 2 4.5307846529256608e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
50 1 5.0973978903306154e+00 3.1001089282984520e+00 0.0000000000000000e+00 0 0 0
|
||||
51 2 5.6634808161570760e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
52 1 6.2300706856774344e+00 3.1001320005511488e+00 0.0000000000000000e+00 0 0 0
|
||||
53 2 6.7961769793884912e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
54 1 7.3627281418365298e+00 3.1001497026412643e+00 0.0000000000000000e+00 0 0 0
|
||||
55 2 7.9288731426199064e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
56 1 8.4953743353575657e+00 3.1001604410839558e+00 0.0000000000000000e+00 0 0 0
|
||||
57 2 9.0615693058513216e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
58 1 9.6280143647524650e+00 3.1001635457640377e+00 0.0000000000000000e+00 0 0 0
|
||||
59 2 1.0194265469082737e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
60 1 1.0760653757776259e+01 3.1001591904894030e+00 0.0000000000000000e+00 0 0 0
|
||||
61 2 1.1326961632314152e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
62 1 1.1893297897551465e+01 3.1001481997229781e+00 0.0000000000000000e+00 0 0 0
|
||||
63 2 1.2459657795545567e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
64 1 1.3025951551034638e+01 3.1001318239711781e+00 0.0000000000000000e+00 0 0 0
|
||||
65 2 1.3592353958776982e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
66 1 1.4158618530491893e+01 3.1001115545681470e+00 0.0000000000000000e+00 0 0 0
|
||||
67 2 1.4725050122008398e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
68 1 1.5291301468763761e+01 3.1000890162853869e+00 0.0000000000000000e+00 0 0 0
|
||||
69 2 1.5857746285239813e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
70 1 1.6424001663467980e+01 3.1000659357603495e+00 0.0000000000000000e+00 0 0 0
|
||||
71 2 1.6990442448471228e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
72 1 1.7556718955895743e+01 3.1000441476131195e+00 0.0000000000000000e+00 0 0 0
|
||||
73 2 1.8123138611702643e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
74 1 1.8689451647636982e+01 3.1000255781755963e+00 0.0000000000000000e+00 0 0 0
|
||||
75 2 1.9255834774934058e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
76 1 1.9822196505112320e+01 3.1000121466922494e+00 0.0000000000000000e+00 0 0 0
|
||||
77 2 2.0388530938165474e+01 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
78 1 2.0954948927196146e+01 3.1000055506449713e+00 0.0000000000000000e+00 0 0 0
|
||||
79 2 2.1521227101396889e+01 2.1414943053865141e+00 0.0000000000000000e+00 0 0 0
|
||||
80 1 2.2087703334137267e+01 3.1000069547492535e+00 0.0000000000000000e+00 0 0 0
|
||||
81 1 3.1056926716504509e-04 4.0585004644184055e+00 0.0000000000000000e+00 0 0 0
|
||||
82 1 5.6689331628382078e-01 5.0169857265632762e+00 0.0000000000000000e+00 0 0 0
|
||||
83 1 1.1331010876667682e+00 4.0585336877518543e+00 0.0000000000000000e+00 0 0 0
|
||||
84 1 1.6997107179473134e+00 5.0170595571637469e+00 0.0000000000000000e+00 0 0 0
|
||||
85 1 2.2658691471408239e+00 4.0585832735991989e+00 0.0000000000000000e+00 0 0 0
|
||||
86 1 2.8324913387275488e+00 5.0171576059016481e+00 0.0000000000000000e+00 0 0 0
|
||||
87 1 3.3986077265334802e+00 4.0586437183143182e+00 0.0000000000000000e+00 0 0 0
|
||||
88 1 3.9652274946581523e+00 5.0172690174612651e+00 0.0000000000000000e+00 0 0 0
|
||||
89 1 4.5313127263524615e+00 4.0587080892871539e+00 0.0000000000000000e+00 0 0 0
|
||||
90 1 5.0979153202534064e+00 5.0173813990872880e+00 0.0000000000000000e+00 0 0 0
|
||||
91 1 5.6639833195247755e+00 4.0587690704404489e+00 0.0000000000000000e+00 0 0 0
|
||||
92 1 6.2305551824295442e+00 5.0174824868813017e+00 0.0000000000000000e+00 0 0 0
|
||||
93 1 6.7966220748571669e+00 4.0588200390400129e+00 0.0000000000000000e+00 0 0 0
|
||||
94 1 7.3631519876339633e+00 5.0175617795367824e+00 0.0000000000000000e+00 0 0 0
|
||||
95 1 7.9292347620768062e+00 4.0588559557915787e+00 0.0000000000000000e+00 0 0 0
|
||||
96 1 8.4957150696300925e+00 5.0176118394895646e+00 0.0000000000000000e+00 0 0 0
|
||||
97 1 9.0618297669257259e+00 4.0588738859603266e+00 0.0000000000000000e+00 0 0 0
|
||||
98 1 9.6282574219214077e+00 5.0176289672989007e+00 0.0000000000000000e+00 0 0 0
|
||||
99 1 1.0194417159454611e+01 4.0588730767572860e+00 0.0000000000000000e+00 0 0 0
|
||||
100 1 1.0760794315385466e+01 5.0176131474245498e+00 0.0000000000000000e+00 0 0 0
|
||||
101 1 1.1327007580768864e+01 4.0588546552053515e+00 0.0000000000000000e+00 0 0 0
|
||||
102 1 1.1893341583868121e+01 5.0175674119454996e+00 0.0000000000000000e+00 0 0 0
|
||||
103 1 1.2459611156068675e+01 4.0588211205885418e+00 0.0000000000000000e+00 0 0 0
|
||||
104 1 1.3025913928919357e+01 5.0174969437432848e+00 0.0000000000000000e+00 0 0 0
|
||||
105 1 1.3592236588154931e+01 4.0587758328652299e+00 0.0000000000000000e+00 0 0 0
|
||||
106 1 1.4158523495745847e+01 5.0174082592346645e+00 0.0000000000000000e+00 0 0 0
|
||||
107 1 1.4724890484932756e+01 4.0587226477181808e+00 0.0000000000000000e+00 0 0 0
|
||||
108 1 1.5291178803597106e+01 5.0173086870307237e+00 0.0000000000000000e+00 0 0 0
|
||||
109 1 1.5857576888353359e+01 4.0586657476126140e+00 0.0000000000000000e+00 0 0 0
|
||||
110 1 1.6423884000624799e+01 5.0172061640888863e+00 0.0000000000000000e+00 0 0 0
|
||||
111 1 1.6990296946466405e+01 4.0586096139851531e+00 0.0000000000000000e+00 0 0 0
|
||||
112 1 1.7556638404998214e+01 5.0171091825602536e+00 0.0000000000000000e+00 0 0 0
|
||||
113 1 1.8123048711157228e+01 4.0585590083330025e+00 0.0000000000000000e+00 0 0 0
|
||||
114 1 1.8689436384449273e+01 5.0170266065355777e+00 0.0000000000000000e+00 0 0 0
|
||||
115 1 1.9255827121600600e+01 4.0585188068824696e+00 0.0000000000000000e+00 0 0 0
|
||||
116 1 1.9822267727126505e+01 5.0169670887341100e+00 0.0000000000000000e+00 0 0 0
|
||||
117 1 2.0388624292977298e+01 4.0584935738800203e+00 0.0000000000000000e+00 0 0 0
|
||||
118 1 2.0955118660666272e+01 5.0169379847636248e+00 0.0000000000000000e+00 0 0 0
|
||||
119 1 2.1521430213723754e+01 4.0584868720623906e+00 0.0000000000000000e+00 0 0 0
|
||||
120 1 2.2087973498256840e+01 5.0169439545250629e+00 0.0000000000000000e+00 0 0 0
|
||||
121 1 6.5693888433665819e-04 5.9753894955957820e+00 0.0000000000000000e+00 0 0 0
|
||||
122 1 5.6732815172745055e-01 6.9338399304063270e+00 0.0000000000000000e+00 0 0 0
|
||||
123 1 1.1335287178365945e+00 5.9754794631117711e+00 0.0000000000000000e+00 0 0 0
|
||||
124 1 1.7002170239497103e+00 6.9340002985609068e+00 0.0000000000000000e+00 0 0 0
|
||||
125 1 2.2663607603415961e+00 5.9756128140497200e+00 0.0000000000000000e+00 0 0 0
|
||||
126 1 2.8330530781363672e+00 6.9342120448719999e+00 0.0000000000000000e+00 0 0 0
|
||||
127 1 3.3991419489134609e+00 5.9757753571666763e+00 0.0000000000000000e+00 0 0 0
|
||||
128 1 3.9658260192240613e+00 6.9344537679961507e+00 0.0000000000000000e+00 0 0 0
|
||||
129 1 4.5318648361825700e+00 5.9759497256682410e+00 0.0000000000000000e+00 0 0 0
|
||||
130 1 5.0985283212441441e+00 6.9347011709619251e+00 0.0000000000000000e+00 0 0 0
|
||||
131 1 5.6645260085061278e+00 5.9761173336292988e+00 0.0000000000000000e+00 0 0 0
|
||||
132 1 6.2311560978848899e+00 6.9349290616610286e+00 0.0000000000000000e+00 0 0 0
|
||||
133 1 6.7971269443565747e+00 5.9762605495489280e+00 0.0000000000000000e+00 0 0 0
|
||||
134 1 7.3637111409380722e+00 6.9351139899270322e+00 0.0000000000000000e+00 0 0 0
|
||||
135 1 7.9296749255956041e+00 5.9763649377635293e+00 0.0000000000000000e+00 0 0 0
|
||||
136 1 8.4962030194710927e+00 6.9352373287964380e+00 0.0000000000000000e+00 0 0 0
|
||||
137 1 9.0621832354873675e+00 5.9764210443253543e+00 0.0000000000000000e+00 0 0 0
|
||||
138 1 9.6286498073427680e+00 6.9352878316174378e+00 0.0000000000000000e+00 0 0 0
|
||||
139 1 1.0194670187278859e+01 5.9764252099845692e+00 0.0000000000000000e+00 0 0 0
|
||||
140 1 1.0761076657788550e+01 6.9352626758233988e+00 0.0000000000000000e+00 0 0 0
|
||||
141 1 1.1327157075090911e+01 5.9763792530010624e+00 0.0000000000000000e+00 0 0 0
|
||||
142 1 1.1893512574619942e+01 6.9351667929726579e+00 0.0000000000000000e+00 0 0 0
|
||||
143 1 1.2459665575239395e+01 5.9762893326393627e+00 0.0000000000000000e+00 0 0 0
|
||||
144 1 1.3025986375565017e+01 6.9350110693313853e+00 0.0000000000000000e+00 0 0 0
|
||||
145 1 1.3592215193397568e+01 5.9761645662970668e+00 0.0000000000000000e+00 0 0 0
|
||||
146 1 1.4158522852873338e+01 6.9348103731164086e+00 0.0000000000000000e+00 0 0 0
|
||||
147 1 1.4724821146400661e+01 5.9760159211600943e+00 0.0000000000000000e+00 0 0 0
|
||||
148 1 1.5291139696354101e+01 6.9345821426564456e+00 0.0000000000000000e+00 0 0 0
|
||||
149 1 1.5857492801384174e+01 5.9758556179168476e+00 0.0000000000000000e+00 0 0 0
|
||||
150 1 1.6423845342403485e+01 6.9343457083902562e+00 0.0000000000000000e+00 0 0 0
|
||||
151 1 1.6990232659392920e+01 5.9756969240409656e+00 0.0000000000000000e+00 0 0 0
|
||||
152 1 1.7556637811168688e+01 6.9341219348234606e+00 0.0000000000000000e+00 0 0 0
|
||||
153 1 1.8123035927190724e+01 5.9755539362099377e+00 0.0000000000000000e+00 0 0 0
|
||||
154 1 1.8689504786395585e+01 6.9339324030079297e+00 0.0000000000000000e+00 0 0 0
|
||||
155 1 1.9255890870078105e+01 5.9754408656724385e+00 0.0000000000000000e+00 0 0 0
|
||||
156 1 1.9822425360651039e+01 6.9337974543626846e+00 0.0000000000000000e+00 0 0 0
|
||||
157 1 2.0388780199969101e+01 5.9753705251759808e+00 0.0000000000000000e+00 0 0 0
|
||||
158 1 2.0955373611320280e+01 6.9337330661143222e+00 0.0000000000000000e+00 0 0 0
|
||||
159 1 2.1521683507254988e+01 5.9753521824721574e+00 0.0000000000000000e+00 0 0 0
|
||||
160 1 2.2088323232189435e+01 6.9337475792566039e+00 0.0000000000000000e+00 0 0 0
|
||||
161 1 1.1151815023353693e-03 7.8921416571122727e+00 0.0000000000000000e+00 0 0 0
|
||||
162 1 5.6789887436851039e-01 8.8505576275120745e+00 0.0000000000000000e+00 0 0 0
|
||||
163 1 1.1340615020344891e+00 7.8923152028921146e+00 0.0000000000000000e+00 0 0 0
|
||||
164 1 1.7008494977197184e+00 8.8508369646616227e+00 0.0000000000000000e+00 0 0 0
|
||||
165 1 2.2669564852467339e+00 7.8925678787693965e+00 0.0000000000000000e+00 0 0 0
|
||||
166 1 2.8337429988374914e+00 8.8512007799959171e+00 0.0000000000000000e+00 0 0 0
|
||||
167 1 3.3997890834793392e+00 7.8928753791925752e+00 0.0000000000000000e+00 0 0 0
|
||||
168 1 3.9665700017177907e+00 8.8516188392723496e+00 0.0000000000000000e+00 0 0 0
|
||||
169 1 4.5325491541722158e+00 7.8932093579911635e+00 0.0000000000000000e+00 0 0 0
|
||||
170 1 5.0993179760197034e+00 8.8520570451664753e+00 0.0000000000000000e+00 0 0 0
|
||||
171 1 5.6652272696563086e+00 7.8935385042762318e+00 0.0000000000000000e+00 0 0 0
|
||||
172 1 6.2319722558852177e+00 8.8524768944511472e+00 0.0000000000000000e+00 0 0 0
|
||||
173 1 6.7978170214800082e+00 7.8938302754648539e+00 0.0000000000000000e+00 0 0 0
|
||||
174 1 7.3645207249719933e+00 8.8528366651387476e+00 0.0000000000000000e+00 0 0 0
|
||||
175 1 7.9303191911043118e+00 7.8940542651579788e+00 0.0000000000000000e+00 0 0 0
|
||||
176 1 8.4969615618418324e+00 8.8530963542120293e+00 0.0000000000000000e+00 0 0 0
|
||||
177 1 9.0627458585593441e+00 7.8941868850969135e+00 0.0000000000000000e+00 0 0 0
|
||||
178 1 9.6293104463590424e+00 8.8532254399208412e+00 0.0000000000000000e+00 0 0 0
|
||||
179 1 1.0195121730902658e+01 7.8942152485172352e+00 0.0000000000000000e+00 0 0 0
|
||||
180 1 1.0761602408503441e+01 8.8532092085980238e+00 0.0000000000000000e+00 0 0 0
|
||||
181 1 1.1327481649719793e+01 7.8941385508356099e+00 0.0000000000000000e+00 0 0 0
|
||||
182 1 1.1893886870241856e+01 8.8530505445055354e+00 0.0000000000000000e+00 0 0 0
|
||||
183 1 1.2459865179342737e+01 7.8939667557582798e+00 0.0000000000000000e+00 0 0 0
|
||||
184 1 1.3026218291904378e+01 8.8527674547956821e+00 0.0000000000000000e+00 0 0 0
|
||||
185 1 1.3592310202433307e+01 7.8937178025905181e+00 0.0000000000000000e+00 0 0 0
|
||||
186 1 1.4158645900042497e+01 8.8523887379317436e+00 0.0000000000000000e+00 0 0 0
|
||||
187 1 1.4724847145311326e+01 7.8934149070498600e+00 0.0000000000000000e+00 0 0 0
|
||||
188 1 1.5291205081244327e+01 8.8519503874602243e+00 0.0000000000000000e+00 0 0 0
|
||||
189 1 1.5857494607334019e+01 7.8930848995638652e+00 0.0000000000000000e+00 0 0 0
|
||||
190 1 1.6423911366860466e+01 8.8514936483282209e+00 0.0000000000000000e+00 0 0 0
|
||||
191 1 1.6990256625068444e+01 7.8927574412240151e+00 0.0000000000000000e+00 0 0 0
|
||||
192 1 1.7556757521848787e+01 8.8510636099500459e+00 0.0000000000000000e+00 0 0 0
|
||||
193 1 1.8123121878813144e+01 7.8924640508501298e+00 0.0000000000000000e+00 0 0 0
|
||||
194 1 1.8689714850348466e+01 8.8507060559423465e+00 0.0000000000000000e+00 0 0 0
|
||||
195 1 1.9256065579477248e+01 7.8922356001392169e+00 0.0000000000000000e+00 0 0 0
|
||||
196 1 1.9822740225596814e+01 8.8504608774193994e+00 0.0000000000000000e+00 0 0 0
|
||||
197 1 2.0389054599310764e+01 7.8920977743942782e+00 0.0000000000000000e+00 0 0 0
|
||||
198 1 2.0955788196198530e+01 8.8503534864083591e+00 0.0000000000000000e+00 0 0 0
|
||||
199 1 2.1522054950758765e+01 7.8920658349416701e+00 0.0000000000000000e+00 0 0 0
|
||||
200 1 2.2088823030833748e+01 8.8503894045591807e+00 0.0000000000000000e+00 0 0 0
|
||||
201 1 1.7402898961801966e-03 9.8087331458102049e+00 0.0000000000000000e+00 0 0 0
|
||||
202 1 5.6862550253253785e-01 1.0767129063577668e+01 0.0000000000000000e+00 0 0 0
|
||||
203 1 1.1347351125604563e+00 9.8090210312609756e+00 0.0000000000000000e+00 0 0 0
|
||||
204 1 1.7016010961270076e+00 1.0767553944884048e+01 0.0000000000000000e+00 0 0 0
|
||||
205 1 2.2676800733457139e+00 9.8094251915038573e+00 0.0000000000000000e+00 0 0 0
|
||||
206 1 2.8345388558320415e+00 1.0768094021206529e+01 0.0000000000000000e+00 0 0 0
|
||||
207 1 3.4005711921286008e+00 9.8099146303251388e+00 0.0000000000000000e+00 0 0 0
|
||||
208 1 3.9674359888022686e+00 1.0768719604543580e+01 0.0000000000000000e+00 0 0 0
|
||||
209 1 4.5333977826109315e+00 9.8104561733570019e+00 0.0000000000000000e+00 0 0 0
|
||||
210 1 5.1002760963180327e+00 1.0769398202643465e+01 0.0000000000000000e+00 0 0 0
|
||||
211 1 5.6661407887052828e+00 9.8110111848429966e+00 0.0000000000000000e+00 0 0 0
|
||||
212 1 6.2330282022400469e+00 1.0770087202120337e+01 0.0000000000000000e+00 0 0 0
|
||||
213 1 6.7987755062394477e+00 9.8115326503110527e+00 0.0000000000000000e+00 0 0 0
|
||||
214 1 7.3656514287550623e+00 1.0770727843890981e+01 0.0000000000000000e+00 0 0 0
|
||||
215 1 7.9312798141889260e+00 9.8119658218493768e+00 0.0000000000000000e+00 0 0 0
|
||||
216 1 8.4981076412551477e+00 1.0771244633836279e+01 0.0000000000000000e+00 0 0 0
|
||||
217 1 9.0636474998261161e+00 9.8122560909429151e+00 0.0000000000000000e+00 0 0 0
|
||||
218 1 9.6303843877347930e+00 1.0771559046035311e+01 0.0000000000000000e+00 0 0 0
|
||||
219 1 1.0195900672859819e+01 9.8123627359180627e+00 0.0000000000000000e+00 0 0 0
|
||||
220 1 1.0762516251278290e+01 1.0771614844517241e+01 0.0000000000000000e+00 0 0 0
|
||||
221 1 1.1328091472906591e+01 9.8122692653101016e+00 0.0000000000000000e+00 0 0 0
|
||||
222 1 1.1894584725285364e+01 1.0771394980275380e+01 0.0000000000000000e+00 0 0 0
|
||||
223 1 1.2460291956550108e+01 9.8119854743716211e+00 0.0000000000000000e+00 0 0 0
|
||||
224 1 1.3026697175518089e+01 1.0770922584297365e+01 0.0000000000000000e+00 0 0 0
|
||||
225 1 1.3592577560562113e+01 9.8115426529845742e+00 0.0000000000000000e+00 0 0 0
|
||||
226 1 1.4158957523975143e+01 1.0770251678533704e+01 0.0000000000000000e+00 0 0 0
|
||||
227 1 1.4725010595311739e+01 9.8109868569230709e+00 0.0000000000000000e+00 0 0 0
|
||||
228 1 1.5291439665423439e+01 1.0769456959141509e+01 0.0000000000000000e+00 0 0 0
|
||||
229 1 1.5857627568713173e+01 9.8103742214932304e+00 0.0000000000000000e+00 0 0 0
|
||||
230 1 1.6424169320270668e+01 1.0768628052568168e+01 0.0000000000000000e+00 0 0 0
|
||||
231 1 1.6990431516954079e+01 9.8097684628141781e+00 0.0000000000000000e+00 0 0 0
|
||||
232 1 1.7557116532362020e+01 1.0767864432631596e+01 0.0000000000000000e+00 0 0 0
|
||||
233 1 1.8123390991250901e+01 9.8092369760472078e+00 0.0000000000000000e+00 0 0 0
|
||||
234 1 1.8690204705628890e+01 1.0767262063551410e+01 0.0000000000000000e+00 0 0 0
|
||||
235 1 1.9256448808830498e+01 9.8088413825519911e+00 0.0000000000000000e+00 0 0 0
|
||||
236 1 1.9823340586830241e+01 1.0766888821404979e+01 0.0000000000000000e+00 0 0 0
|
||||
237 1 2.0389541413400988e+01 9.8086229912274785e+00 0.0000000000000000e+00 0 0 0
|
||||
238 1 2.0956458511796701e+01 1.0766759511236279e+01 0.0000000000000000e+00 0 0 0
|
||||
239 1 2.1522621458778595e+01 9.8085916713182311e+00 0.0000000000000000e+00 0 0 0
|
||||
240 1 2.2089529168272502e+01 1.0766851883618157e+01 0.0000000000000000e+00 0 0 0
|
||||
241 1 2.5440858595377333e-03 1.1725176449724485e+01 0.0000000000000000e+00 0 0 0
|
||||
242 1 5.6945959459694062e-01 1.2683596360703445e+01 0.0000000000000000e+00 0 0 0
|
||||
243 1 1.1355189649219313e+00 1.1725603142335736e+01 0.0000000000000000e+00 0 0 0
|
||||
244 1 1.7023827890664067e+00 1.2684167657575470e+01 0.0000000000000000e+00 0 0 0
|
||||
245 1 2.2684713496063051e+00 1.1726169790097240e+01 0.0000000000000000e+00 0 0 0
|
||||
246 1 2.8353214317297493e+00 1.2684869845626739e+01 0.0000000000000000e+00 0 0 0
|
||||
247 1 3.4014115221528614e+00 1.1726849793467629e+01 0.0000000000000000e+00 0 0 0
|
||||
248 1 3.9682847366436711e+00 1.2685690043118647e+01 0.0000000000000000e+00 0 0 0
|
||||
249 1 4.5343333925353440e+00 1.1727620546655658e+01 0.0000000000000000e+00 0 0 0
|
||||
250 1 5.1012595788864648e+00 1.2686617936467927e+01 0.0000000000000000e+00 0 0 0
|
||||
251 1 5.6672100999124009e+00 1.1728453321807010e+01 0.0000000000000000e+00 0 0 0
|
||||
252 1 6.2342050679378476e+00 1.2687631443781253e+01 0.0000000000000000e+00 0 0 0
|
||||
253 1 6.7999929539663801e+00 1.1729301393807379e+01 0.0000000000000000e+00 0 0 0
|
||||
254 1 7.3670487632296053e+00 1.2688678524169049e+01 0.0000000000000000e+00 0 0 0
|
||||
255 1 7.9326168577620031e+00 1.1730088752185795e+01 0.0000000000000000e+00 0 0 0
|
||||
256 1 8.4996909972151879e+00 1.2689657545646673e+01 0.0000000000000000e+00 0 0 0
|
||||
257 1 9.0650186324858186e+00 1.1730705889838760e+01 0.0000000000000000e+00 0 0 0
|
||||
258 1 9.6320279172941738e+00 1.2690401359419884e+01 0.0000000000000000e+00 0 0 0
|
||||
259 1 1.0197176988949883e+01 1.1731033591325737e+01 0.0000000000000000e+00 0 0 0
|
||||
260 1 1.0764025265158372e+01 1.2690719979755405e+01 0.0000000000000000e+00 0 0 0
|
||||
261 1 1.1329151471753224e+01 1.1730992082437087e+01 0.0000000000000000e+00 0 0 0
|
||||
262 1 1.1895793457864773e+01 1.2690499952724066e+01 0.0000000000000000e+00 0 0 0
|
||||
263 1 1.2461074954083520e+01 1.1730568008302011e+01 0.0000000000000000e+00 0 0 0
|
||||
264 1 1.3027557263784812e+01 1.2689744664661927e+01 0.0000000000000000e+00 0 0 0
|
||||
265 1 1.3593109813371450e+01 1.1729811224797992e+01 0.0000000000000000e+00 0 0 0
|
||||
266 1 1.4159562461497188e+01 1.2688557996910490e+01 0.0000000000000000e+00 0 0 0
|
||||
267 1 1.4725395146103379e+01 1.1728816806025771e+01 0.0000000000000000e+00 0 0 0
|
||||
268 1 1.5291979336937130e+01 1.2687112353846338e+01 0.0000000000000000e+00 0 0 0
|
||||
269 1 1.5858003969640130e+01 1.1727709969544065e+01 0.0000000000000000e+00 0 0 0
|
||||
270 1 1.6424834380846097e+01 1.2685627373535834e+01 0.0000000000000000e+00 0 0 0
|
||||
271 1 1.6990919595491782e+01 1.1726637864021814e+01 0.0000000000000000e+00 0 0 0
|
||||
272 1 1.7557997576834389e+01 1.2684345428666392e+01 0.0000000000000000e+00 0 0 0
|
||||
273 1 1.8124040077451223e+01 1.1725751812758334e+01 0.0000000000000000e+00 0 0 0
|
||||
274 1 1.8691233014266899e+01 1.2683475493290855e+01 0.0000000000000000e+00 0 0 0
|
||||
275 1 1.9257221467828444e+01 1.1725167602985902e+01 0.0000000000000000e+00 0 0 0
|
||||
276 1 1.9824402296022900e+01 1.2683041511515679e+01 0.0000000000000000e+00 0 0 0
|
||||
277 1 2.0390369399207284e+01 1.1724905550220807e+01 0.0000000000000000e+00 0 0 0
|
||||
278 1 2.0957468093457749e+01 1.2682973372169659e+01 0.0000000000000000e+00 0 0 0
|
||||
279 1 2.1523449818304549e+01 1.1724927159323300e+01 0.0000000000000000e+00 0 0 0
|
||||
280 1 2.2090449109149038e+01 1.2683182366055206e+01 0.0000000000000000e+00 0 0 0
|
||||
281 1 3.4599372752678664e-03 1.3641562113178441e+01 0.0000000000000000e+00 0 0 0
|
||||
282 1 5.7026645299712297e-01 1.4600072778762289e+01 0.0000000000000000e+00 0 0 0
|
||||
283 1 1.1363018176625184e+00 1.3642122621820601e+01 0.0000000000000000e+00 0 0 0
|
||||
284 1 1.7030304397851530e+00 1.4600744808517264e+01 0.0000000000000000e+00 0 0 0
|
||||
285 1 2.2691832178537314e+00 1.3642819174389231e+01 0.0000000000000000e+00 0 0 0
|
||||
286 1 2.8358920720180945e+00 1.4601540713388465e+01 0.0000000000000000e+00 0 0 0
|
||||
287 1 3.4021290160499604e+00 1.3643644649633430e+01 0.0000000000000000e+00 0 0 0
|
||||
288 1 3.9688713598453158e+00 1.4602477110803298e+01 0.0000000000000000e+00 0 0 0
|
||||
289 1 4.5351441054704758e+00 1.3644605343002951e+01 0.0000000000000000e+00 0 0 0
|
||||
290 1 5.1019693529741863e+00 1.4603583498422479e+01 0.0000000000000000e+00 0 0 0
|
||||
291 1 5.6682074099496385e+00 1.3645707993168530e+01 0.0000000000000000e+00 0 0 0
|
||||
292 1 6.2351598742721581e+00 1.4604888485699654e+01 0.0000000000000000e+00 0 0 0
|
||||
293 1 6.8012626955016664e+00 1.3646941178415421e+01 0.0000000000000000e+00 0 0 0
|
||||
294 1 7.3683745276621622e+00 1.4606397643582930e+01 0.0000000000000000e+00 0 0 0
|
||||
295 1 7.9342088141787288e+00 1.3648248663869856e+01 0.0000000000000000e+00 0 0 0
|
||||
296 1 8.5014805494154277e+00 1.4608055299059714e+01 0.0000000000000000e+00 0 0 0
|
||||
297 1 9.0668968877652869e+00 1.3649493406156790e+01 0.0000000000000000e+00 0 0 0
|
||||
298 1 9.6342620410232698e+00 1.4609684783907733e+01 0.0000000000000000e+00 0 0 0
|
||||
299 1 1.0199152905272882e+01 1.3650407439181874e+01 0.0000000000000000e+00 0 0 0
|
||||
300 1 1.0766413330496736e+01 1.4610836305969919e+01 0.0000000000000000e+00 0 0 0
|
||||
301 1 1.1330921232704116e+01 1.3650669393063648e+01 0.0000000000000000e+00 0 0 0
|
||||
302 1 1.1897841502623006e+01 1.4610930556808350e+01 0.0000000000000000e+00 0 0 0
|
||||
303 1 1.2462421601307861e+01 1.3650120591395567e+01 0.0000000000000000e+00 0 0 0
|
||||
304 1 1.3029018938638984e+01 1.4609761134444172e+01 0.0000000000000000e+00 0 0 0
|
||||
305 1 1.3594046992755665e+01 1.3648816127477271e+01 0.0000000000000000e+00 0 0 0
|
||||
306 1 1.4160647838817273e+01 1.4607529632893289e+01 0.0000000000000000e+00 0 0 0
|
||||
307 1 1.4726158301286814e+01 1.3646976680611393e+01 0.0000000000000000e+00 0 0 0
|
||||
308 1 1.5293172565463893e+01 1.4604737496674128e+01 0.0000000000000000e+00 0 0 0
|
||||
309 1 1.5858902039329786e+01 1.3644935977195637e+01 0.0000000000000000e+00 0 0 0
|
||||
310 1 1.6426542400228328e+01 1.4602024837155536e+01 0.0000000000000000e+00 0 0 0
|
||||
311 1 1.6992136000094352e+01 1.3643085312965626e+01 0.0000000000000000e+00 0 0 0
|
||||
312 1 1.7559955069272618e+01 1.4600235886953440e+01 0.0000000000000000e+00 0 0 0
|
||||
313 1 1.8125444003110619e+01 1.3641827838397322e+01 0.0000000000000000e+00 0 0 0
|
||||
314 1 1.8693119558449155e+01 1.4599324386000902e+01 0.0000000000000000e+00 0 0 0
|
||||
315 1 1.9258622464532973e+01 1.3641178402937728e+01 0.0000000000000000e+00 0 0 0
|
||||
316 1 1.9826034884164418e+01 1.4599040434292966e+01 0.0000000000000000e+00 0 0 0
|
||||
317 1 2.0391639577074734e+01 1.3641005830730871e+01 0.0000000000000000e+00 0 0 0
|
||||
318 1 2.0958793244869717e+01 1.4599158580846662e+01 0.0000000000000000e+00 0 0 0
|
||||
319 1 2.1524539566888354e+01 1.3641168546895004e+01 0.0000000000000000e+00 0 0 0
|
||||
320 1 2.2091487241099536e+01 1.4599530965127977e+01 0.0000000000000000e+00 0 0 0
|
||||
321 1 4.3165808837657372e-03 1.5558056864296654e+01 0.0000000000000000e+00 0 0 0
|
||||
322 1 5.7083714563799326e-01 1.6516708751979007e+01 0.0000000000000000e+00 0 0 0
|
||||
323 1 1.1369032012442155e+00 1.5558694023524415e+01 0.0000000000000000e+00 0 0 0
|
||||
324 1 1.7033478671452040e+00 1.6517390053019362e+01 0.0000000000000000e+00 0 0 0
|
||||
325 1 2.2696166894760093e+00 1.5559438272441989e+01 0.0000000000000000e+00 0 0 0
|
||||
326 1 2.8360390517176817e+00 1.6518173675862919e+01 0.0000000000000000e+00 0 0 0
|
||||
327 1 3.4024835472607537e+00 1.5560308985846410e+01 0.0000000000000000e+00 0 0 0
|
||||
328 1 3.9689280293273477e+00 1.6519102391285173e+01 0.0000000000000000e+00 0 0 0
|
||||
329 1 4.5355194771089229e+00 1.5561347597079759e+01 0.0000000000000000e+00 0 0 0
|
||||
330 1 5.1020300316691811e+00 1.6520241802728972e+01 0.0000000000000000e+00 0 0 0
|
||||
331 1 5.6687261068083830e+00 1.5562609975559823e+01 0.0000000000000000e+00 0 0 0
|
||||
332 1 6.2353553251066147e+00 1.6521676870813170e+01 0.0000000000000000e+00 0 0 0
|
||||
333 1 6.8020803209306022e+00 1.5564154380715671e+01 0.0000000000000000e+00 0 0 0
|
||||
334 1 7.3688969132482525e+00 1.6523504940606951e+01 0.0000000000000000e+00 0 0 0
|
||||
335 1 7.9355107433004930e+00 1.5566016713593251e+01 0.0000000000000000e+00 0 0 0
|
||||
336 1 8.5025988576228730e+00 1.6525815249413437e+01 0.0000000000000000e+00 0 0 0
|
||||
337 1 9.0688572861916743e+00 1.5568159644275148e+01 0.0000000000000000e+00 0 0 0
|
||||
338 1 9.6362867759002064e+00 1.6528628994685398e+01 0.0000000000000000e+00 0 0 0
|
||||
339 1 1.0201819017728946e+01 1.5570385216229328e+01 0.0000000000000000e+00 0 0 0
|
||||
340 1 1.0769583800973923e+01 1.6531845844888416e+01 0.0000000000000000e+00 0 0 0
|
||||
341 1 1.1333827071325254e+01 1.5571891707346142e+01 0.0000000000000000e+00 0 0 0
|
||||
342 1 1.1901384079738815e+01 1.6533906438348030e+01 0.0000000000000000e+00 0 0 0
|
||||
343 1 1.2464735369608531e+01 1.5571536667850689e+01 0.0000000000000000e+00 0 0 0
|
||||
344 1 1.3031616332415751e+01 1.6532264065445577e+01 0.0000000000000000e+00 0 0 0
|
||||
345 1 1.3595655007692846e+01 1.5569123466092078e+01 0.0000000000000000e+00 0 0 0
|
||||
346 1 1.4162673858547034e+01 1.6527452690896975e+01 0.0000000000000000e+00 0 0 0
|
||||
347 1 1.4727720485417455e+01 1.5565353830287787e+01 0.0000000000000000e+00 0 0 0
|
||||
348 1 1.5296922688141537e+01 1.6520776714395723e+01 0.0000000000000000e+00 0 0 0
|
||||
349 1 1.5861362778086731e+01 1.5561222799294468e+01 0.0000000000000000e+00 0 0 0
|
||||
350 1 1.6430601172841506e+01 1.6517208583528205e+01 0.0000000000000000e+00 0 0 0
|
||||
351 1 1.6994922716392164e+01 1.5558699760506759e+01 0.0000000000000000e+00 0 0 0
|
||||
352 1 1.7563499738678178e+01 1.6515675589984340e+01 0.0000000000000000e+00 0 0 0
|
||||
353 1 1.8128019408521833e+01 1.5557486534354460e+01 0.0000000000000000e+00 0 0 0
|
||||
354 1 1.8695872352982320e+01 1.6515215010141834e+01 0.0000000000000000e+00 0 0 0
|
||||
355 1 1.9260742856192188e+01 1.5557098710840322e+01 0.0000000000000000e+00 0 0 0
|
||||
356 1 1.9828039670247652e+01 1.6515278710047973e+01 0.0000000000000000e+00 0 0 0
|
||||
357 1 2.0393271644052639e+01 1.5557181842904438e+01 0.0000000000000000e+00 0 0 0
|
||||
358 1 2.0960186167839215e+01 1.6515618076673135e+01 0.0000000000000000e+00 0 0 0
|
||||
359 1 2.1525740973565441e+01 1.5557536533469163e+01 0.0000000000000000e+00 0 0 0
|
||||
360 1 2.2092409007659992e+01 1.6516113225524911e+01 0.0000000000000000e+00 0 0 0
|
||||
361 1 4.8529541639103424e-03 1.7474826118864232e+01 0.0000000000000000e+00 0 0 0
|
||||
362 1 5.7093835977538809e-01 1.8433654344787417e+01 0.0000000000000000e+00 0 0 0
|
||||
363 1 1.1371184592334547e+00 1.7475436697267657e+01 0.0000000000000000e+00 0 0 0
|
||||
364 1 1.7031721612449391e+00 1.8434245395923575e+01 0.0000000000000000e+00 0 0 0
|
||||
365 1 2.2695912343467985e+00 1.7476125500853652e+01 0.0000000000000000e+00 0 0 0
|
||||
366 1 2.8356286616018873e+00 1.8434926390559969e+01 0.0000000000000000e+00 0 0 0
|
||||
367 1 3.4022762478393873e+00 1.7476929029147396e+01 0.0000000000000000e+00 0 0 0
|
||||
368 1 3.9683006032101118e+00 1.8435747821965681e+01 0.0000000000000000e+00 0 0 0
|
||||
369 1 4.5351848152653442e+00 1.7477909278192492e+01 0.0000000000000000e+00 0 0 0
|
||||
370 1 5.1011966627212457e+00 1.8436786379097875e+01 0.0000000000000000e+00 0 0 0
|
||||
371 1 5.6683370882181823e+00 1.7479154484464996e+01 0.0000000000000000e+00 0 0 0
|
||||
372 1 6.2343468444568826e+00 1.8438149387991913e+01 0.0000000000000000e+00 0 0 0
|
||||
373 1 6.8017614989468314e+00 1.7480782103907771e+01 0.0000000000000000e+00 0 0 0
|
||||
374 1 7.3678106610096554e+00 1.8439986240742563e+01 0.0000000000000000e+00 0 0 0
|
||||
375 1 7.9354841298542631e+00 1.7482944033551004e+01 0.0000000000000000e+00 0 0 0
|
||||
376 1 8.5016878917981664e+00 1.8442513240991936e+01 0.0000000000000000e+00 0 0 0
|
||||
377 1 9.0694835466447152e+00 1.7485826099637269e+01 0.0000000000000000e+00 0 0 0
|
||||
378 1 9.6361298737773780e+00 1.8446058020412732e+01 0.0000000000000000e+00 0 0 0
|
||||
379 3 1.0203552137528503e+01 1.7489611887918201e+01 0.0000000000000000e+00 0 0 0
|
||||
380 3 1.0771411102042309e+01 1.8452757080501815e+01 0.0000000000000000e+00 0 0 0
|
||||
381 3 1.1337379036649208e+01 1.7494680029430171e+01 0.0000000000000000e+00 0 0 0
|
||||
382 3 1.1906745469447291e+01 1.8462022833637111e+01 0.0000000000000000e+00 0 0 0
|
||||
383 3 1.2469280552911147e+01 1.7497259990645460e+01 0.0000000000000000e+00 0 0 0
|
||||
384 3 1.3036336275216634e+01 1.8467761987124586e+01 0.0000000000000000e+00 0 0 0
|
||||
385 3 1.3598327635293121e+01 1.7492598542232617e+01 0.0000000000000000e+00 0 0 0
|
||||
386 3 1.4175415687021504e+01 1.8442378825657116e+01 0.0000000000000000e+00 0 0 0
|
||||
387 3 1.4734039006741700e+01 1.7480807237018496e+01 0.0000000000000000e+00 0 0 0
|
||||
388 3 1.5307067776131944e+01 1.8435324828663727e+01 0.0000000000000000e+00 0 0 0
|
||||
389 3 1.5867533841026015e+01 1.7475841850521086e+01 0.0000000000000000e+00 0 0 0
|
||||
390 3 1.6437492616293390e+01 1.8432690656917494e+01 0.0000000000000000e+00 0 0 0
|
||||
391 3 1.6999775067986949e+01 1.7473899503923125e+01 0.0000000000000000e+00 0 0 0
|
||||
392 3 1.7567888910690055e+01 1.8431965422256074e+01 0.0000000000000000e+00 0 0 0
|
||||
393 1 1.8131542880564929e+01 1.7473449678636637e+01 0.0000000000000000e+00 0 0 0
|
||||
394 1 1.8698655140485940e+01 1.8432031695013379e+01 0.0000000000000000e+00 0 0 0
|
||||
395 1 1.9263155459010161e+01 1.7473512474723787e+01 0.0000000000000000e+00 0 0 0
|
||||
396 1 1.9829735002682860e+01 1.8432284732233299e+01 0.0000000000000000e+00 0 0 0
|
||||
397 1 2.0394851027090610e+01 1.7473827778588312e+01 0.0000000000000000e+00 0 0 0
|
||||
398 1 2.0961149629160545e+01 1.8432663919612150e+01 0.0000000000000000e+00 0 0 0
|
||||
399 1 2.1526715232103822e+01 1.7474283624212315e+01 0.0000000000000000e+00 0 0 0
|
||||
400 1 2.2092870034810801e+01 1.8433127631588540e+01 0.0000000000000000e+00 0 0 0
|
||||
401 1 4.8013042136807321e-03 1.9396043340320471e+01 0.0000000000000000e+00 0 0 0
|
||||
402 1 1.1367941837037772e+00 1.9396530996055038e+01 0.0000000000000000e+00 0 0 0
|
||||
403 1 2.2690256110731926e+00 1.9397098404349112e+01 0.0000000000000000e+00 0 0 0
|
||||
404 1 3.4014603716469214e+00 1.9397780714315690e+01 0.0000000000000000e+00 0 0 0
|
||||
405 1 4.5340819027961929e+00 1.9398637844588755e+01 0.0000000000000000e+00 0 0 0
|
||||
406 1 5.6668967352607975e+00 1.9399756780683603e+01 0.0000000000000000e+00 0 0 0
|
||||
407 1 6.7999442980869498e+00 1.9401258783163115e+01 0.0000000000000000e+00 0 0 0
|
||||
408 1 7.9333186797521877e+00 1.9403316975932661e+01 0.0000000000000000e+00 0 0 0
|
||||
409 1 9.0672196895765094e+00 1.9406194727028712e+01 0.0000000000000000e+00 0 0 0
|
||||
410 3 1.0202094493927524e+01 1.9410357283161499e+01 0.0000000000000000e+00 0 0 0
|
||||
411 3 1.1344493619984819e+01 1.9424786980556338e+01 0.0000000000000000e+00 0 0 0
|
||||
412 3 1.2637742177785299e+01 1.9930889974773997e+01 0.0000000000000000e+00 0 0 0
|
||||
413 3 1.3631034994726834e+01 1.9413135103231994e+01 0.0000000000000000e+00 0 0 0
|
||||
414 3 1.4752642655140622e+01 1.9401337789912994e+01 0.0000000000000000e+00 0 0 0
|
||||
415 3 1.5877850085888255e+01 1.9396855373999653e+01 0.0000000000000000e+00 0 0 0
|
||||
416 3 1.7005401679016000e+01 1.9395287677046394e+01 0.0000000000000000e+00 0 0 0
|
||||
417 1 1.8134615217150579e+01 1.9394983390043944e+01 0.0000000000000000e+00 0 0 0
|
||||
418 1 1.9264825666738730e+01 1.9395059679793604e+01 0.0000000000000000e+00 0 0 0
|
||||
419 1 2.0395687437852093e+01 1.9395286212420899e+01 0.0000000000000000e+00 0 0 0
|
||||
420 1 2.1527023164623820e+01 1.9395624428209523e+01 0.0000000000000000e+00 0 0 0
|
||||
|
||||
Velocities
|
||||
|
||||
1 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
2 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
3 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
4 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
5 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
6 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
7 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
8 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
9 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
10 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
11 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
12 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
13 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
14 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
15 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
16 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
17 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
21 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
22 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
23 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
24 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
25 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
26 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
27 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
28 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
29 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
30 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
31 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
32 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
33 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
34 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
35 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
36 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
37 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
38 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
39 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
40 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
41 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
42 1.4582830912290846e-05 8.8846352819582645e-06 0.0000000000000000e+00
|
||||
43 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
44 1.7312859198533731e-05 8.9315474912415886e-06 0.0000000000000000e+00
|
||||
45 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
46 1.9675072488620216e-05 9.1850485538530490e-06 0.0000000000000000e+00
|
||||
47 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
48 2.1433074233334628e-05 9.6286706528260491e-06 0.0000000000000000e+00
|
||||
49 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
50 2.2405931370299284e-05 1.0203419110643709e-05 0.0000000000000000e+00
|
||||
51 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
52 2.2491059900157929e-05 1.0820884817441812e-05 0.0000000000000000e+00
|
||||
53 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
54 2.1681031416712071e-05 1.1392109985469690e-05 0.0000000000000000e+00
|
||||
55 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
56 2.0060641760669130e-05 1.1861625865799975e-05 0.0000000000000000e+00
|
||||
57 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
58 1.7796484401635950e-05 1.2218953480137158e-05 0.0000000000000000e+00
|
||||
59 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
60 1.5112094617093786e-05 1.2477438154365889e-05 0.0000000000000000e+00
|
||||
61 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
62 1.2267198630926124e-05 1.2639445999779870e-05 0.0000000000000000e+00
|
||||
63 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
64 9.5350822789358476e-06 1.2675742401072055e-05 0.0000000000000000e+00
|
||||
65 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
66 7.1824119616190063e-06 1.2539493069881058e-05 0.0000000000000000e+00
|
||||
67 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
68 5.4428729520064613e-06 1.2202930059423273e-05 0.0000000000000000e+00
|
||||
69 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
70 4.4916342132800272e-06 1.1686680302800539e-05 0.0000000000000000e+00
|
||||
71 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
72 4.4211188598874964e-06 1.1059784694772424e-05 0.0000000000000000e+00
|
||||
73 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
74 5.2335171901646275e-06 1.0413115381938121e-05 0.0000000000000000e+00
|
||||
75 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
76 6.8418345483267640e-06 9.8270961040952689e-06 0.0000000000000000e+00
|
||||
77 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
78 9.0862581078626780e-06 9.3562441357185347e-06 0.0000000000000000e+00
|
||||
79 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
80 1.1750898218046424e-05 9.0341536486321376e-06 0.0000000000000000e+00
|
||||
81 2.6507896911975861e-05 1.6371545140358991e-05 0.0000000000000000e+00
|
||||
82 4.4071318998573086e-05 2.1693750644120881e-05 0.0000000000000000e+00
|
||||
83 3.1968282279407066e-05 1.6236651087870452e-05 0.0000000000000000e+00
|
||||
84 5.1796828963389391e-05 2.2204255617741203e-05 0.0000000000000000e+00
|
||||
85 3.6954144790935994e-05 1.6513220966131449e-05 0.0000000000000000e+00
|
||||
86 5.8466837911599906e-05 2.3765145047455889e-05 0.0000000000000000e+00
|
||||
87 4.0988263449448856e-05 1.7195597287912591e-05 0.0000000000000000e+00
|
||||
88 6.3421700984930829e-05 2.6202560196158383e-05 0.0000000000000000e+00
|
||||
89 4.3676514981254302e-05 1.8262201659237366e-05 0.0000000000000000e+00
|
||||
90 6.6189231995872341e-05 2.9208208903089284e-05 0.0000000000000000e+00
|
||||
91 4.4757820844412710e-05 1.9680681285465242e-05 0.0000000000000000e+00
|
||||
92 6.6503049702947023e-05 3.2363912757959332e-05 0.0000000000000000e+00
|
||||
93 4.4112984955796063e-05 2.1371026788621213e-05 0.0000000000000000e+00
|
||||
94 6.4345177020566643e-05 3.5287785267920645e-05 0.0000000000000000e+00
|
||||
95 4.1787976800244936e-05 2.3162941413835267e-05 0.0000000000000000e+00
|
||||
96 5.9928744845970383e-05 3.7723007380205399e-05 0.0000000000000000e+00
|
||||
97 3.7995079634412303e-05 2.4792875906820557e-05 0.0000000000000000e+00
|
||||
98 5.3679482622744082e-05 3.9576112916242527e-05 0.0000000000000000e+00
|
||||
99 3.3102802347870566e-05 2.5962643816709875e-05 0.0000000000000000e+00
|
||||
100 4.6196928202386916e-05 4.0841431876258162e-05 0.0000000000000000e+00
|
||||
101 2.7604731797030090e-05 2.6452929465938663e-05 0.0000000000000000e+00
|
||||
102 3.8198605610544056e-05 4.1488731650403403e-05 0.0000000000000000e+00
|
||||
103 2.2062125644364829e-05 2.6211631192676194e-05 0.0000000000000000e+00
|
||||
104 3.0461532031511585e-05 4.1405446569862951e-05 0.0000000000000000e+00
|
||||
105 1.7036890410487144e-05 2.5367151114186193e-05 0.0000000000000000e+00
|
||||
106 2.3743747198513856e-05 4.0442707371844690e-05 0.0000000000000000e+00
|
||||
107 1.3025410253023063e-05 2.4148417954514280e-05 0.0000000000000000e+00
|
||||
108 1.8714618137705143e-05 3.8535713097978544e-05 0.0000000000000000e+00
|
||||
109 1.0408634299164180e-05 2.2777378345262281e-05 0.0000000000000000e+00
|
||||
110 1.5879886471080462e-05 3.5803991688099920e-05 0.0000000000000000e+00
|
||||
111 9.4236282619897256e-06 2.1395799353203516e-05 0.0000000000000000e+00
|
||||
112 1.5528508660313246e-05 3.2559849894401442e-05 0.0000000000000000e+00
|
||||
113 1.0151636970505765e-05 2.0069631778223131e-05 0.0000000000000000e+00
|
||||
114 1.7697076907652322e-05 2.9219489273322326e-05 0.0000000000000000e+00
|
||||
115 1.2515393741428794e-05 1.8835255026813244e-05 0.0000000000000000e+00
|
||||
116 2.2166639673992795e-05 2.6190973817683679e-05 0.0000000000000000e+00
|
||||
117 1.6287686218571795e-05 1.7749195377506077e-05 0.0000000000000000e+00
|
||||
118 2.8490182736201632e-05 2.3793837746782787e-05 0.0000000000000000e+00
|
||||
119 2.1107512829311378e-05 1.6897890319175769e-05 0.0000000000000000e+00
|
||||
120 3.6037837106045466e-05 2.2245603004594772e-05 0.0000000000000000e+00
|
||||
121 5.3754680927831089e-05 2.5818243561840512e-05 0.0000000000000000e+00
|
||||
122 7.3852984703953750e-05 2.7472934391924166e-05 0.0000000000000000e+00
|
||||
123 6.4028996009385391e-05 2.5673459200729887e-05 0.0000000000000000e+00
|
||||
124 8.5908169593167111e-05 2.8779655657983422e-05 0.0000000000000000e+00
|
||||
125 7.3452059594226324e-05 2.6972883064637495e-05 0.0000000000000000e+00
|
||||
126 9.6325597970378315e-05 3.2438649799599460e-05 0.0000000000000000e+00
|
||||
127 8.1100712408732978e-05 2.9661132010523619e-05 0.0000000000000000e+00
|
||||
128 1.0416393664254911e-04 3.7996059391476322e-05 0.0000000000000000e+00
|
||||
129 8.6279187735689372e-05 3.3655093070911189e-05 0.0000000000000000e+00
|
||||
130 1.0867812733907078e-04 4.4662561906767820e-05 0.0000000000000000e+00
|
||||
131 8.8474833676771911e-05 3.8743354165649700e-05 0.0000000000000000e+00
|
||||
132 1.0953332540892396e-04 5.1642519960343192e-05 0.0000000000000000e+00
|
||||
133 8.7489301482666931e-05 4.4565301821478113e-05 0.0000000000000000e+00
|
||||
134 1.0664519563149365e-04 5.8191926603172465e-05 0.0000000000000000e+00
|
||||
135 8.3386685919597045e-05 5.0496180582897816e-05 0.0000000000000000e+00
|
||||
136 1.0029664202627839e-04 6.3854180722835299e-05 0.0000000000000000e+00
|
||||
137 7.6554421387387345e-05 5.5724916856637890e-05 0.0000000000000000e+00
|
||||
138 9.1026233328924885e-05 6.8337584627018583e-05 0.0000000000000000e+00
|
||||
139 6.7636782318513533e-05 5.9415263115523977e-05 0.0000000000000000e+00
|
||||
140 7.9687801662836277e-05 7.1465060890868459e-05 0.0000000000000000e+00
|
||||
141 5.7497112140338785e-05 6.0967609586633220e-05 0.0000000000000000e+00
|
||||
142 6.7357844628560681e-05 7.3031410372387953e-05 0.0000000000000000e+00
|
||||
143 4.7129030804640708e-05 6.0212629249287861e-05 0.0000000000000000e+00
|
||||
144 5.5250218292995579e-05 7.2797466423152327e-05 0.0000000000000000e+00
|
||||
145 3.7563119690651669e-05 5.7436898093437411e-05 0.0000000000000000e+00
|
||||
146 4.4567659752612482e-05 7.0555413628180241e-05 0.0000000000000000e+00
|
||||
147 2.9761856381290211e-05 5.3240161725660877e-05 0.0000000000000000e+00
|
||||
148 3.6379968408071024e-05 6.6254587745984145e-05 0.0000000000000000e+00
|
||||
149 2.4507249328654254e-05 4.8297754292616488e-05 0.0000000000000000e+00
|
||||
150 3.1513287993668526e-05 6.0149614548130757e-05 0.0000000000000000e+00
|
||||
151 2.2321658045569226e-05 4.3171432510556026e-05 0.0000000000000000e+00
|
||||
152 3.0489149535510922e-05 5.2826430989590112e-05 0.0000000000000000e+00
|
||||
153 2.3406691442805219e-05 3.8251620084219645e-05 0.0000000000000000e+00
|
||||
154 3.3434005351227340e-05 4.5149642749209296e-05 0.0000000000000000e+00
|
||||
155 2.7646263937105427e-05 3.3806816567877322e-05 0.0000000000000000e+00
|
||||
156 4.0072022728543377e-05 3.8051851023877120e-05 0.0000000000000000e+00
|
||||
157 3.4612453095456479e-05 3.0084179504664271e-05 0.0000000000000000e+00
|
||||
158 4.9715995320497382e-05 3.2366348850974144e-05 0.0000000000000000e+00
|
||||
159 4.3610755492928814e-05 2.7338724794948033e-05 0.0000000000000000e+00
|
||||
160 6.1380291935873857e-05 2.8717537667974358e-05 0.0000000000000000e+00
|
||||
161 8.1494982491825407e-05 2.8148953219575557e-05 0.0000000000000000e+00
|
||||
162 1.0332280599497646e-04 2.6201503829225565e-05 0.0000000000000000e+00
|
||||
163 9.5761847160871774e-05 2.7946357434336516e-05 0.0000000000000000e+00
|
||||
164 1.1864695815872809e-04 2.8356135457834722e-05 0.0000000000000000e+00
|
||||
165 1.0885399470738391e-04 3.0748146450938071e-05 0.0000000000000000e+00
|
||||
166 1.3196232705661449e-04 3.4623883717438410e-05 0.0000000000000000e+00
|
||||
167 1.1960145227112585e-04 3.6566084099414615e-05 0.0000000000000000e+00
|
||||
168 1.4195026861275745e-04 4.3922046815628174e-05 0.0000000000000000e+00
|
||||
169 1.2694731664409029e-04 4.5104351462522260e-05 0.0000000000000000e+00
|
||||
170 1.4795217588335909e-04 5.5130340832613979e-05 0.0000000000000000e+00
|
||||
171 1.3031757484079781e-04 5.5906601170376687e-05 0.0000000000000000e+00
|
||||
172 1.4942385512754647e-04 6.7008660580344934e-05 0.0000000000000000e+00
|
||||
173 1.2933895493945637e-04 6.7959205844179285e-05 0.0000000000000000e+00
|
||||
174 1.4640862693120205e-04 7.8808347871067721e-05 0.0000000000000000e+00
|
||||
175 1.2418770632620368e-04 7.9948632905278019e-05 0.0000000000000000e+00
|
||||
176 1.3899686227644703e-04 8.9704374162949410e-05 0.0000000000000000e+00
|
||||
177 1.1530175670323509e-04 9.0294899930563893e-05 0.0000000000000000e+00
|
||||
178 1.2781482749801704e-04 9.8919094420893419e-05 0.0000000000000000e+00
|
||||
179 1.0353662297703481e-04 9.7655023731693666e-05 0.0000000000000000e+00
|
||||
180 1.1373191796318627e-04 1.0541969215504335e-04 0.0000000000000000e+00
|
||||
181 8.9924310567240939e-05 1.0107679026970171e-04 0.0000000000000000e+00
|
||||
182 9.8144155759054283e-05 1.0842945197242355e-04 0.0000000000000000e+00
|
||||
183 7.5715426026251240e-05 1.0020899633485792e-04 0.0000000000000000e+00
|
||||
184 8.2585472575644195e-05 1.0759497773947524e-04 0.0000000000000000e+00
|
||||
185 6.2273313315312773e-05 9.5280171371694988e-05 0.0000000000000000e+00
|
||||
186 6.8676150395344254e-05 1.0303784847881596e-04 0.0000000000000000e+00
|
||||
187 5.0970916505555661e-05 8.7088088473526171e-05 0.0000000000000000e+00
|
||||
188 5.7773431465618642e-05 9.5162943772818259e-05 0.0000000000000000e+00
|
||||
189 4.3046171895633206e-05 7.6794608467548045e-05 0.0000000000000000e+00
|
||||
190 5.1018825812688962e-05 8.4471826448580955e-05 0.0000000000000000e+00
|
||||
191 3.9350805046373119e-05 6.5685772521718177e-05 0.0000000000000000e+00
|
||||
192 4.9118794840322114e-05 7.1798478806600616e-05 0.0000000000000000e+00
|
||||
193 4.0296544731752153e-05 5.4848218154306130e-05 0.0000000000000000e+00
|
||||
194 5.2373823993379091e-05 5.8337807582076184e-05 0.0000000000000000e+00
|
||||
195 4.5754994278033105e-05 4.5116316024063770e-05 0.0000000000000000e+00
|
||||
196 6.0480102795976155e-05 4.5653533328626764e-05 0.0000000000000000e+00
|
||||
197 5.5147574075957093e-05 3.7092945765346277e-05 0.0000000000000000e+00
|
||||
198 7.2607642712602124e-05 3.5308098903458904e-05 0.0000000000000000e+00
|
||||
199 6.7490113431981086e-05 3.1302088338741595e-05 0.0000000000000000e+00
|
||||
200 8.7399794370653100e-05 2.8568976378293145e-05 0.0000000000000000e+00
|
||||
201 1.0893722215793989e-04 2.3548242675947018e-05 0.0000000000000000e+00
|
||||
202 1.3096734611020011e-04 1.8222479559561189e-05 0.0000000000000000e+00
|
||||
203 1.2587405764826476e-04 2.3075086083653581e-05 0.0000000000000000e+00
|
||||
204 1.4794813469964918e-04 2.1310741972757686e-05 0.0000000000000000e+00
|
||||
205 1.4140062010542452e-04 2.7813335553710658e-05 0.0000000000000000e+00
|
||||
206 1.6232505969042551e-04 3.0392445992766945e-05 0.0000000000000000e+00
|
||||
207 1.5397074924697088e-04 3.7554013992723016e-05 0.0000000000000000e+00
|
||||
208 1.7307084911688810e-04 4.3967269632201604e-05 0.0000000000000000e+00
|
||||
209 1.6265299884253917e-04 5.1975640619979227e-05 0.0000000000000000e+00
|
||||
210 1.7920198664424654e-04 6.0190020213309052e-05 0.0000000000000000e+00
|
||||
211 1.6652150024137926e-04 6.9718144800536699e-05 0.0000000000000000e+00
|
||||
212 1.8081789854731273e-04 7.8360099041392683e-05 0.0000000000000000e+00
|
||||
213 1.6556181720350750e-04 8.9018344965798718e-05 0.0000000000000000e+00
|
||||
214 1.7752817256212197e-04 9.7575999242155437e-05 0.0000000000000000e+00
|
||||
215 1.5977208852566740e-04 1.0737397867986304e-04 0.0000000000000000e+00
|
||||
216 1.6979140654165145e-04 1.1697357648400367e-04 0.0000000000000000e+00
|
||||
217 1.4991716557360079e-04 1.2288188040735228e-04 0.0000000000000000e+00
|
||||
218 1.5773246565703171e-04 1.3407831270088809e-04 0.0000000000000000e+00
|
||||
219 1.3669127604115129e-04 1.3409320273816903e-04 0.0000000000000000e+00
|
||||
220 1.4251229678068216e-04 1.4611735938454550e-04 0.0000000000000000e+00
|
||||
221 1.2122307334826826e-04 1.4035076438954076e-04 0.0000000000000000e+00
|
||||
222 1.2529950168048559e-04 1.5081786662543979e-04 0.0000000000000000e+00
|
||||
223 1.0469592755885001e-04 1.4095013503932427e-04 0.0000000000000000e+00
|
||||
224 1.0808583047877408e-04 1.4794462550140816e-04 0.0000000000000000e+00
|
||||
225 8.8627241500263001e-05 1.3548056521811501e-04 0.0000000000000000e+00
|
||||
226 9.2458332531887566e-05 1.3885968265358318e-04 0.0000000000000000e+00
|
||||
227 7.4741877098264211e-05 1.2401626995789950e-04 0.0000000000000000e+00
|
||||
228 8.0205883060811833e-05 1.2520982577425913e-04 0.0000000000000000e+00
|
||||
229 6.4625586397733592e-05 1.0787656142000266e-04 0.0000000000000000e+00
|
||||
230 7.2455365263725255e-05 1.0828209149006050e-04 0.0000000000000000e+00
|
||||
231 5.9588283630412220e-05 8.9170324651604443e-05 0.0000000000000000e+00
|
||||
232 7.0192628935414336e-05 8.8909581629389317e-05 0.0000000000000000e+00
|
||||
233 6.0204784194593798e-05 7.0300012127155753e-05 0.0000000000000000e+00
|
||||
234 7.3736654845263383e-05 6.8446290010432812e-05 0.0000000000000000e+00
|
||||
235 6.6430610182749772e-05 5.3155748135392397e-05 0.0000000000000000e+00
|
||||
236 8.2877314926921305e-05 4.8905829630990080e-05 0.0000000000000000e+00
|
||||
237 7.7513488386102286e-05 3.9091588598701160e-05 0.0000000000000000e+00
|
||||
238 9.6520171103331445e-05 3.2781173935459572e-05 0.0000000000000000e+00
|
||||
239 9.2232416915701703e-05 2.8983592081175541e-05 0.0000000000000000e+00
|
||||
240 1.1323768745207866e-04 2.2099480605147771e-05 0.0000000000000000e+00
|
||||
241 1.3459865563319741e-04 1.2703227752398906e-05 0.0000000000000000e+00
|
||||
242 1.5474472990034682e-04 4.9028952578147883e-06 0.0000000000000000e+00
|
||||
243 1.5215092550023015e-04 1.2097129719583488e-05 0.0000000000000000e+00
|
||||
244 1.7049283829256650e-04 9.1706083284784945e-06 0.0000000000000000e+00
|
||||
245 1.6776008627299133e-04 1.9099097427610624e-05 0.0000000000000000e+00
|
||||
246 1.8333367243371162e-04 2.1604042292807520e-05 0.0000000000000000e+00
|
||||
247 1.8008195062651708e-04 3.3615378061081087e-05 0.0000000000000000e+00
|
||||
248 1.9189650531499411e-04 3.9685789135164573e-05 0.0000000000000000e+00
|
||||
249 1.8783573502138761e-04 5.4407048131235179e-05 0.0000000000000000e+00
|
||||
250 1.9614236422538478e-04 6.1776442206818580e-05 0.0000000000000000e+00
|
||||
251 1.9089458289321614e-04 7.9516349638183995e-05 0.0000000000000000e+00
|
||||
252 1.9558796322159504e-04 8.6892146170328155e-05 0.0000000000000000e+00
|
||||
253 1.8874887732394583e-04 1.0500710476222600e-04 0.0000000000000000e+00
|
||||
254 1.9152092472987035e-04 1.1597519058197392e-04 0.0000000000000000e+00
|
||||
255 1.8256170726520249e-04 1.2813543516461412e-04 0.0000000000000000e+00
|
||||
256 1.8317412822647789e-04 1.4660018932962857e-04 0.0000000000000000e+00
|
||||
257 1.7255263462072589e-04 1.4676532692364173e-04 0.0000000000000000e+00
|
||||
258 1.7180488878385214e-04 1.7463142934331309e-04 0.0000000000000000e+00
|
||||
259 1.5968255923162790e-04 1.6112886872639011e-04 0.0000000000000000e+00
|
||||
260 1.5736418072846288e-04 1.9373036611985696e-04 0.0000000000000000e+00
|
||||
261 1.4438478717201006e-04 1.7104686393958903e-04 0.0000000000000000e+00
|
||||
262 1.4172732865070544e-04 1.9993397606046031e-04 0.0000000000000000e+00
|
||||
263 1.2780764883044244e-04 1.7581062997197168e-04 0.0000000000000000e+00
|
||||
264 1.2551429537422006e-04 1.9326020335803872e-04 0.0000000000000000e+00
|
||||
265 1.1143818436667695e-04 1.7279653463973672e-04 0.0000000000000000e+00
|
||||
266 1.1129339275113247e-04 1.7696772682632424e-04 0.0000000000000000e+00
|
||||
267 9.7026315827934351e-05 1.6059526683700199e-04 0.0000000000000000e+00
|
||||
268 1.0011077369688101e-04 1.5518094661065159e-04 0.0000000000000000e+00
|
||||
269 8.6522173578507114e-05 1.3949676203897713e-04 0.0000000000000000e+00
|
||||
270 9.3664351269599769e-05 1.3012327167812935e-04 0.0000000000000000e+00
|
||||
271 8.1291625785936272e-05 1.1272276579557331e-04 0.0000000000000000e+00
|
||||
272 9.2500602391673231e-05 1.0286100151558550e-04 0.0000000000000000e+00
|
||||
273 8.2174156364853157e-05 8.4321872533994066e-05 0.0000000000000000e+00
|
||||
274 9.7130125497925732e-05 7.4496044974704109e-05 0.0000000000000000e+00
|
||||
275 8.9034151680274584e-05 5.8030339746749375e-05 0.0000000000000000e+00
|
||||
276 1.0678389790186836e-04 4.7638087115883802e-05 0.0000000000000000e+00
|
||||
277 1.0119535639935181e-04 3.6303198355693708e-05 0.0000000000000000e+00
|
||||
278 1.2094537118731950e-04 2.5060744325496045e-05 0.0000000000000000e+00
|
||||
279 1.1693017924424426e-04 2.0976803055913763e-05 0.0000000000000000e+00
|
||||
280 1.3749539877318216e-04 1.0260590705305633e-05 0.0000000000000000e+00
|
||||
281 1.5664700963922696e-04 -2.3143582219387062e-06 0.0000000000000000e+00
|
||||
282 1.7213521099798126e-04 -1.0893217653461935e-05 0.0000000000000000e+00
|
||||
283 1.7163725578470403e-04 -2.7032144307298500e-06 0.0000000000000000e+00
|
||||
284 1.8302101438290170e-04 -4.7015876043674941e-06 0.0000000000000000e+00
|
||||
285 1.8408986700031230e-04 7.3762135624856621e-06 0.0000000000000000e+00
|
||||
286 1.9034465344562048e-04 1.1634737927368466e-05 0.0000000000000000e+00
|
||||
287 1.9261711656854316e-04 2.7002357232706195e-05 0.0000000000000000e+00
|
||||
288 1.9361558083412500e-04 3.5128829947321527e-05 0.0000000000000000e+00
|
||||
289 1.9675951681764233e-04 5.4504542291358708e-05 0.0000000000000000e+00
|
||||
290 1.9229119872704733e-04 6.3160704993402156e-05 0.0000000000000000e+00
|
||||
291 1.9589287639141945e-04 8.5624062570252574e-05 0.0000000000000000e+00
|
||||
292 1.8763172746254775e-04 9.5926064062507038e-05 0.0000000000000000e+00
|
||||
293 1.9144012028784324e-04 1.1574950605207010e-04 0.0000000000000000e+00
|
||||
294 1.7925388721026504e-04 1.3336630569376064e-04 0.0000000000000000e+00
|
||||
295 1.8325338492376081e-04 1.3941523897602475e-04 0.0000000000000000e+00
|
||||
296 1.7111384196688562e-04 1.7606151476373124e-04 0.0000000000000000e+00
|
||||
297 1.7441139798144990e-04 1.5854503282415543e-04 0.0000000000000000e+00
|
||||
298 1.6032326888461984e-04 2.1446583056531008e-04 0.0000000000000000e+00
|
||||
299 1.6387438500404321e-04 1.7460023770546828e-04 0.0000000000000000e+00
|
||||
300 1.5074052192984994e-04 2.4020838682409438e-04 0.0000000000000000e+00
|
||||
301 1.5148519378157811e-04 1.8980377776341359e-04 0.0000000000000000e+00
|
||||
302 1.3966552521236660e-04 2.4774151750977874e-04 0.0000000000000000e+00
|
||||
303 1.3793365457372421e-04 2.0064007271268226e-04 0.0000000000000000e+00
|
||||
304 1.2999175496236775e-04 2.3635880684653166e-04 0.0000000000000000e+00
|
||||
305 1.2445809284142433e-04 2.0319207617434042e-04 0.0000000000000000e+00
|
||||
306 1.2058479570330461e-04 2.1223162942725083e-04 0.0000000000000000e+00
|
||||
307 1.1335261202324864e-04 1.9202689248144918e-04 0.0000000000000000e+00
|
||||
308 1.1489966476687653e-04 1.8116775432026056e-04 0.0000000000000000e+00
|
||||
309 1.0607147008139182e-04 1.6763704556867280e-04 0.0000000000000000e+00
|
||||
310 1.1336585045824133e-04 1.4707143380834897e-04 0.0000000000000000e+00
|
||||
311 1.0344655043634243e-04 1.3351953844142965e-04 0.0000000000000000e+00
|
||||
312 1.1682664536528110e-04 1.1117223278055075e-04 0.0000000000000000e+00
|
||||
313 1.0584011765559926e-04 9.5633260364903774e-05 0.0000000000000000e+00
|
||||
314 1.2284574193182076e-04 7.5987122603626839e-05 0.0000000000000000e+00
|
||||
315 1.1395109003961985e-04 5.9134539871496392e-05 0.0000000000000000e+00
|
||||
316 1.3307867183720012e-04 4.1776312299002252e-05 0.0000000000000000e+00
|
||||
317 1.2588269209880162e-04 2.9470198058979825e-05 0.0000000000000000e+00
|
||||
318 1.4544292811228404e-04 1.3605886591663147e-05 0.0000000000000000e+00
|
||||
319 1.4084591944156649e-04 8.4739193403876596e-06 0.0000000000000000e+00
|
||||
320 1.5916834934516234e-04 -4.8366910892216897e-06 0.0000000000000000e+00
|
||||
321 1.7356992275325834e-04 -1.8042780077684453e-05 0.0000000000000000e+00
|
||||
322 1.8147503918697350e-04 -2.4540925551368165e-05 0.0000000000000000e+00
|
||||
323 1.8163463266840930e-04 -1.7130129888846129e-05 0.0000000000000000e+00
|
||||
324 1.8253898079463108e-04 -1.5598547575766951e-05 0.0000000000000000e+00
|
||||
325 1.8657806229653399e-04 -3.4133038182733444e-06 0.0000000000000000e+00
|
||||
326 1.8037702210949025e-04 5.3434050311440554e-06 0.0000000000000000e+00
|
||||
327 1.8771879764928681e-04 2.1715518823040016e-05 0.0000000000000000e+00
|
||||
328 1.7471074558026713e-04 3.4539745108762290e-05 0.0000000000000000e+00
|
||||
329 1.8460873128030577e-04 5.4984524671188725e-05 0.0000000000000000e+00
|
||||
330 1.6600292929781353e-04 6.9008728811924969e-05 0.0000000000000000e+00
|
||||
331 1.7796512641162431e-04 9.1385034689547154e-05 0.0000000000000000e+00
|
||||
332 1.5410918238014520e-04 1.0736588228516046e-04 0.0000000000000000e+00
|
||||
333 1.6795483683047752e-04 1.2318778434343078e-04 0.0000000000000000e+00
|
||||
334 1.4157775831030313e-04 1.5014040855437159e-04 0.0000000000000000e+00
|
||||
335 1.5785083269945281e-04 1.4650075439474400e-04 0.0000000000000000e+00
|
||||
336 1.2665633684184470e-04 1.9516493438247949e-04 0.0000000000000000e+00
|
||||
337 1.4652933492756114e-04 1.5825492457397368e-04 0.0000000000000000e+00
|
||||
338 1.2214547186144981e-04 2.4167794353872549e-04 0.0000000000000000e+00
|
||||
339 1.4180074826065196e-04 1.7604592446691659e-04 0.0000000000000000e+00
|
||||
340 1.1255092108513610e-04 2.7260123374319155e-04 0.0000000000000000e+00
|
||||
341 1.3761399094902802e-04 1.9706727165017120e-04 0.0000000000000000e+00
|
||||
342 1.1522842530577449e-04 2.7911375117613133e-04 0.0000000000000000e+00
|
||||
343 1.2918411829601699e-04 2.1803343236056900e-04 0.0000000000000000e+00
|
||||
344 1.1734351128622201e-04 2.6571681944023359e-04 0.0000000000000000e+00
|
||||
345 1.2254276275087787e-04 2.2432204295978476e-04 0.0000000000000000e+00
|
||||
346 1.1974443872507096e-04 2.3680090433102696e-04 0.0000000000000000e+00
|
||||
347 1.2071540692597284e-04 2.1269652219509870e-04 0.0000000000000000e+00
|
||||
348 1.2270101616137648e-04 1.9743779542515523e-04 0.0000000000000000e+00
|
||||
349 1.2264642729289398e-04 1.8508739809863369e-04 0.0000000000000000e+00
|
||||
350 1.3383017178927455e-04 1.5156768459346495e-04 0.0000000000000000e+00
|
||||
351 1.2577540617175406e-04 1.4740321111045147e-04 0.0000000000000000e+00
|
||||
352 1.4340773421068627e-04 1.1293118958385223e-04 0.0000000000000000e+00
|
||||
353 1.3341749813102418e-04 1.0072504549123244e-04 0.0000000000000000e+00
|
||||
354 1.5386164243670204e-04 7.2227623415051933e-05 0.0000000000000000e+00
|
||||
355 1.4204167491417043e-04 5.6498808092830119e-05 0.0000000000000000e+00
|
||||
356 1.6279824866213127e-04 3.3429940217178515e-05 0.0000000000000000e+00
|
||||
357 1.5267578941533281e-04 1.9709016910970241e-05 0.0000000000000000e+00
|
||||
358 1.7110318234027366e-04 1.1467794122178855e-06 0.0000000000000000e+00
|
||||
359 1.6340539277356244e-04 -5.5189289771696855e-06 0.0000000000000000e+00
|
||||
360 1.7740714701955653e-04 -1.8977834327990608e-05 0.0000000000000000e+00
|
||||
361 1.8452802730369313e-04 -2.8832061973687458e-05 0.0000000000000000e+00
|
||||
362 1.8186625712888205e-04 -2.9558136605260799e-05 0.0000000000000000e+00
|
||||
363 1.8024969476821697e-04 -2.5772260635909678e-05 0.0000000000000000e+00
|
||||
364 1.6761747789816595e-04 -1.7724478134172529e-05 0.0000000000000000e+00
|
||||
365 1.7295655435232461e-04 -8.2023972909357763e-06 0.0000000000000000e+00
|
||||
366 1.5167563906890865e-04 7.1136721706312189e-06 0.0000000000000000e+00
|
||||
367 1.6300729193455892e-04 2.1421261796460145e-05 0.0000000000000000e+00
|
||||
368 1.3513262146713916e-04 4.1132163185070293e-05 0.0000000000000000e+00
|
||||
369 1.5092813590493438e-04 5.9201618093873702e-05 0.0000000000000000e+00
|
||||
370 1.1841008358865480e-04 8.0419467894957835e-05 0.0000000000000000e+00
|
||||
371 1.3728404354778657e-04 9.8997396367778159e-05 0.0000000000000000e+00
|
||||
372 1.0207956567589023e-04 1.2179874114308306e-04 0.0000000000000000e+00
|
||||
373 1.2285830843381253e-04 1.3408468250307866e-04 0.0000000000000000e+00
|
||||
374 8.5374614775879387e-05 1.6300686953091837e-04 0.0000000000000000e+00
|
||||
375 1.0823800239604665e-04 1.5689628308888026e-04 0.0000000000000000e+00
|
||||
376 7.0794245443767117e-05 2.0076846781781206e-04 0.0000000000000000e+00
|
||||
377 9.4916240542002045e-05 1.6757505383186989e-04 0.0000000000000000e+00
|
||||
378 5.3305776376960658e-05 2.3409206018084466e-04 0.0000000000000000e+00
|
||||
379 9.7006448817647123e-05 1.6923635825827552e-04 0.0000000000000000e+00
|
||||
380 7.3465624650027872e-05 2.8247344576399282e-04 0.0000000000000000e+00
|
||||
381 1.0549927592481066e-04 2.0928780749128950e-04 0.0000000000000000e+00
|
||||
382 8.2435739649036618e-05 2.8810010190574649e-04 0.0000000000000000e+00
|
||||
383 1.0402453921892486e-04 2.4985200604758925e-04 0.0000000000000000e+00
|
||||
384 1.0698549586748876e-04 2.9499323828433428e-04 0.0000000000000000e+00
|
||||
385 1.0406074064549273e-04 2.4902814952768373e-04 0.0000000000000000e+00
|
||||
386 1.2548092418124016e-04 2.5651719838597350e-04 0.0000000000000000e+00
|
||||
387 1.2351646868146525e-04 2.1977784401163054e-04 0.0000000000000000e+00
|
||||
388 1.5004190410192569e-04 2.0137571208681400e-04 0.0000000000000000e+00
|
||||
389 1.3393580166351108e-04 1.9255393507981809e-04 0.0000000000000000e+00
|
||||
390 1.6295883087441844e-04 1.5199213302359484e-04 0.0000000000000000e+00
|
||||
391 1.5063751113547077e-04 1.4694859067203417e-04 0.0000000000000000e+00
|
||||
392 1.8000897081745795e-04 1.0619343548646192e-04 0.0000000000000000e+00
|
||||
393 1.6561309378602883e-04 9.7037670677296156e-05 0.0000000000000000e+00
|
||||
394 1.9382745100814531e-04 6.5648980655922534e-05 0.0000000000000000e+00
|
||||
395 1.7695741527044807e-04 4.9716511735790200e-05 0.0000000000000000e+00
|
||||
396 2.0065188597728214e-04 2.5746708320466968e-05 0.0000000000000000e+00
|
||||
397 1.8297867804266331e-04 1.0615003992406336e-05 0.0000000000000000e+00
|
||||
398 1.9982611540716595e-04 -6.5682876870518107e-06 0.0000000000000000e+00
|
||||
399 1.8556554896400902e-04 -1.6509803537161082e-05 0.0000000000000000e+00
|
||||
400 1.9312536581833663e-04 -2.5912353602364910e-05 0.0000000000000000e+00
|
||||
401 1.9023801410824606e-04 -2.7464462701394523e-05 0.0000000000000000e+00
|
||||
402 1.6698242474704196e-04 -2.2099770957974276e-05 0.0000000000000000e+00
|
||||
403 1.4243470745724796e-04 -2.3480099448894497e-06 0.0000000000000000e+00
|
||||
404 1.1876992118927330e-04 2.8893674554990122e-05 0.0000000000000000e+00
|
||||
405 9.7519654816455303e-05 6.7473438674861880e-05 0.0000000000000000e+00
|
||||
406 7.9406575250692843e-05 1.0857040090545463e-04 0.0000000000000000e+00
|
||||
407 6.4539515581651943e-05 1.4692649268945184e-04 0.0000000000000000e+00
|
||||
408 5.1587395282262643e-05 1.7813848972085620e-04 0.0000000000000000e+00
|
||||
409 3.9112490387149122e-05 1.9658956051422694e-04 0.0000000000000000e+00
|
||||
410 5.0646024795521216e-05 2.1400372314275622e-04 0.0000000000000000e+00
|
||||
411 5.0846759072495365e-05 2.4269431977691632e-04 0.0000000000000000e+00
|
||||
412 -1.1482904584733112e-04 -1.4373303263865990e-04 0.0000000000000000e+00
|
||||
413 1.5511043799162975e-04 2.5875085720661746e-04 0.0000000000000000e+00
|
||||
414 1.6626514293530906e-04 2.1735425519646309e-04 0.0000000000000000e+00
|
||||
415 1.8641734272053080e-04 1.7687638118890660e-04 0.0000000000000000e+00
|
||||
416 2.0380463041431767e-04 1.3085055646827544e-04 0.0000000000000000e+00
|
||||
417 2.1756044245783355e-04 8.4550353671555104e-05 0.0000000000000000e+00
|
||||
418 2.2486305540664193e-04 4.3653832482456800e-05 0.0000000000000000e+00
|
||||
419 2.2188236489361566e-04 7.6524745655054321e-06 0.0000000000000000e+00
|
||||
420 2.0949238720629205e-04 -1.7218568434280989e-05 0.0000000000000000e+00
|
||||
@ -8,8 +8,8 @@ twojmax 6
|
||||
|
||||
# optional
|
||||
|
||||
gamma 1
|
||||
rfac0 0.99363
|
||||
rmin0 0
|
||||
diagonalstyle 3
|
||||
bzeroflag 0
|
||||
quadraticflag 0
|
||||
|
||||
@ -5,7 +5,7 @@ variable zblcutinner equal 4
|
||||
variable zblcutouter equal 4.8
|
||||
variable zblz equal 74
|
||||
|
||||
# Specify hybrid with SNAP, ZBL, and long-range Coulomb
|
||||
# Specify hybrid with SNAP and ZBL
|
||||
|
||||
pair_style hybrid/overlay &
|
||||
zbl ${zblcutinner} ${zblcutouter} &
|
||||
|
||||
@ -6,8 +6,8 @@ twojmax 8
|
||||
|
||||
# optional
|
||||
|
||||
gamma 1
|
||||
rfac0 0.99363
|
||||
rmin0 0
|
||||
diagonalstyle 3
|
||||
bzeroflag 0
|
||||
quadraticflag 0
|
||||
|
||||
@ -5,7 +5,7 @@ variable zblcutinner equal 4
|
||||
variable zblcutouter equal 4.8
|
||||
variable zblz equal 74
|
||||
|
||||
# Specify hybrid with SNAP, ZBL, and long-range Coulomb
|
||||
# Specify hybrid with SNAP and ZBL
|
||||
|
||||
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} snap table spline 10000 table spline 10000
|
||||
pair_coeff 1 1 zbl ${zblz} ${zblz}
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
EXTRAMAKE = Makefile.lammps.standard
|
||||
|
||||
CUDA_HOME = /usr/local/cuda
|
||||
CUDA_HOME = /home/projects/openmpi/1.8.1/intel/13.1.SP1.106/cuda/6.0.37
|
||||
NVCC = nvcc
|
||||
|
||||
# Kepler CUDA
|
||||
|
||||
@ -63,6 +63,7 @@ OBJS = $(OBJ_DIR)/lal_atom.o $(OBJ_DIR)/lal_ans.o \
|
||||
$(OBJ_DIR)/lal_lj_coul_debye.o $(OBJ_DIR)/lal_lj_coul_debye_ext.o \
|
||||
$(OBJ_DIR)/lal_coul_dsf.o $(OBJ_DIR)/lal_coul_dsf_ext.o \
|
||||
$(OBJ_DIR)/lal_sw.o $(OBJ_DIR)/lal_sw_ext.o \
|
||||
$(OBJ_DIR)/lal_vashishta.o $(OBJ_DIR)/lal_vashishta_ext.o \
|
||||
$(OBJ_DIR)/lal_beck.o $(OBJ_DIR)/lal_beck_ext.o \
|
||||
$(OBJ_DIR)/lal_mie.o $(OBJ_DIR)/lal_mie_ext.o \
|
||||
$(OBJ_DIR)/lal_soft.o $(OBJ_DIR)/lal_soft_ext.o \
|
||||
@ -117,6 +118,7 @@ CBNS = $(OBJ_DIR)/device.cubin $(OBJ_DIR)/device_cubin.h \
|
||||
$(OBJ_DIR)/lj_coul_debye.cubin $(OBJ_DIR)/lj_coul_debye_cubin.h \
|
||||
$(OBJ_DIR)/coul_dsf.cubin $(OBJ_DIR)/coul_dsf_cubin.h \
|
||||
$(OBJ_DIR)/sw.cubin $(OBJ_DIR)/sw_cubin.h \
|
||||
$(OBJ_DIR)/vashishta.cubin $(OBJ_DIR)/vashishta_cubin.h \
|
||||
$(OBJ_DIR)/beck.cubin $(OBJ_DIR)/beck_cubin.h \
|
||||
$(OBJ_DIR)/mie.cubin $(OBJ_DIR)/mie_cubin.h \
|
||||
$(OBJ_DIR)/soft.cubin $(OBJ_DIR)/soft_cubin.h \
|
||||
@ -613,6 +615,18 @@ $(OBJ_DIR)/lal_coul_dsf.o: $(ALL_H) lal_coul_dsf.h lal_coul_dsf.cpp $(OBJ_DIR)/c
|
||||
$(OBJ_DIR)/lal_coul_dsf_ext.o: $(ALL_H) lal_coul_dsf.h lal_coul_dsf_ext.cpp lal_base_charge.h
|
||||
$(CUDR) -o $@ -c lal_coul_dsf_ext.cpp -I$(OBJ_DIR)
|
||||
|
||||
$(OBJ_DIR)/vashishta.cubin: lal_vashishta.cu lal_precision.h lal_preprocessor.h
|
||||
$(CUDA) --cubin -DNV_KERNEL -o $@ lal_vashishta.cu
|
||||
|
||||
$(OBJ_DIR)/vashishta_cubin.h: $(OBJ_DIR)/vashishta.cubin $(OBJ_DIR)/vashishta.cubin
|
||||
$(BIN2C) -c -n vashishta $(OBJ_DIR)/vashishta.cubin > $(OBJ_DIR)/vashishta_cubin.h
|
||||
|
||||
$(OBJ_DIR)/lal_vashishta.o: $(ALL_H) lal_vashishta.h lal_vashishta.cpp $(OBJ_DIR)/vashishta_cubin.h $(OBJ_DIR)/lal_base_three.o
|
||||
$(CUDR) -o $@ -c lal_vashishta.cpp -I$(OBJ_DIR)
|
||||
|
||||
$(OBJ_DIR)/lal_vashishta_ext.o: $(ALL_H) lal_vashishta.h lal_vashishta_ext.cpp lal_base_three.h
|
||||
$(CUDR) -o $@ -c lal_vashishta_ext.cpp -I$(OBJ_DIR)
|
||||
|
||||
$(OBJ_DIR)/sw.cubin: lal_sw.cu lal_precision.h lal_preprocessor.h
|
||||
$(CUDA) --cubin -DNV_KERNEL -o $@ lal_sw.cu
|
||||
|
||||
|
||||
@ -52,6 +52,7 @@ OBJS = $(OBJ_DIR)/lal_atom.o $(OBJ_DIR)/lal_answer.o \
|
||||
$(OBJ_DIR)/lal_lj_coul_debye.o $(OBJ_DIR)/lal_lj_coul_debye_ext.o \
|
||||
$(OBJ_DIR)/lal_coul_dsf.o $(OBJ_DIR)/lal_coul_dsf_ext.o \
|
||||
$(OBJ_DIR)/lal_sw.o $(OBJ_DIR)/lal_sw_ext.o \
|
||||
$(OBJ_DIR)/lal_vashishta.o $(OBJ_DIR)/lal_vashishta_ext.o \
|
||||
$(OBJ_DIR)/lal_beck.o $(OBJ_DIR)/lal_beck_ext.o \
|
||||
$(OBJ_DIR)/lal_mie.o $(OBJ_DIR)/lal_mie_ext.o \
|
||||
$(OBJ_DIR)/lal_soft.o $(OBJ_DIR)/lal_soft_ext.o \
|
||||
@ -92,7 +93,7 @@ KERS = $(OBJ_DIR)/device_cl.h $(OBJ_DIR)/atom_cl.h \
|
||||
$(OBJ_DIR)/tersoff_cl.h $(OBJ_DIR)/tersoff_zbl_cl.h \
|
||||
$(OBJ_DIR)/tersoff_mod_cl.h $(OBJ_DIR)/coul_cl.h \
|
||||
$(OBJ_DIR)/coul_debye_cl.h $(OBJ_DIR)/zbl_cl.h \
|
||||
$(OBJ_DIR)/lj_cubic_cl.h
|
||||
$(OBJ_DIR)/lj_cubic_cl.h $(OBJ_DIR)/vashishta_cl.h
|
||||
|
||||
|
||||
OCL_EXECS = $(BIN_DIR)/ocl_get_devices
|
||||
@ -450,6 +451,15 @@ $(OBJ_DIR)/lal_sw.o: $(ALL_H) lal_sw.h lal_sw.cpp $(OBJ_DIR)/sw_cl.h $(OBJ_DIR)
|
||||
$(OBJ_DIR)/lal_sw_ext.o: $(ALL_H) lal_sw.h lal_sw_ext.cpp lal_base_three.h
|
||||
$(OCL) -o $@ -c lal_sw_ext.cpp -I$(OBJ_DIR)
|
||||
|
||||
$(OBJ_DIR)/vashishta_cl.h: lal_vashishta.cu $(PRE1_H)
|
||||
$(BSH) ./geryon/file_to_cstr.sh vashishta $(PRE1_H) lal_vashishta.cu $(OBJ_DIR)/vashishta_cl.h;
|
||||
|
||||
$(OBJ_DIR)/lal_vashishta.o: $(ALL_H) lal_vashishta.h lal_vashishta.cpp $(OBJ_DIR)/vashishta_cl.h $(OBJ_DIR)/vashishta_cl.h $(OBJ_DIR)/lal_base_three.o
|
||||
$(OCL) -o $@ -c lal_vashishta.cpp -I$(OBJ_DIR)
|
||||
|
||||
$(OBJ_DIR)/lal_vashishta_ext.o: $(ALL_H) lal_vashishta.h lal_vashishta_ext.cpp lal_base_three.h
|
||||
$(OCL) -o $@ -c lal_vashishta_ext.cpp -I$(OBJ_DIR)
|
||||
|
||||
$(OBJ_DIR)/beck_cl.h: lal_beck.cu $(PRE1_H)
|
||||
$(BSH) ./geryon/file_to_cstr.sh beck $(PRE1_H) lal_beck.cu $(OBJ_DIR)/beck_cl.h;
|
||||
|
||||
|
||||
283
lib/gpu/lal_vashishta.cpp
Normal file
283
lib/gpu/lal_vashishta.cpp
Normal file
@ -0,0 +1,283 @@
|
||||
/***************************************************************************
|
||||
vashishta.cpp
|
||||
-------------------
|
||||
Anders Hafreager (UiO)
|
||||
|
||||
Class for acceleration of the vashishta pair style.
|
||||
|
||||
__________________________________________________________________________
|
||||
This file is part of the LAMMPS Accelerator Library (LAMMPS_AL)
|
||||
__________________________________________________________________________
|
||||
|
||||
begin : Mon June 12, 2017
|
||||
email : andershaf@gmail.com
|
||||
***************************************************************************/
|
||||
|
||||
#if defined(USE_OPENCL)
|
||||
#include "vashishta_cl.h"
|
||||
#elif defined(USE_CUDART)
|
||||
const char *vashishta=0;
|
||||
#else
|
||||
#include "vashishta_cubin.h"
|
||||
#endif
|
||||
|
||||
#include "lal_vashishta.h"
|
||||
#include <cassert>
|
||||
using namespace LAMMPS_AL;
|
||||
#define VashishtaT Vashishta<numtyp, acctyp>
|
||||
|
||||
extern Device<PRECISION,ACC_PRECISION> device;
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
VashishtaT::Vashishta() : BaseThree<numtyp,acctyp>(), _allocated(false) {
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
VashishtaT::~Vashishta() {
|
||||
clear();
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
int VashishtaT::bytes_per_atom(const int max_nbors) const {
|
||||
return this->bytes_per_atom_atomic(max_nbors);
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
int VashishtaT::init(const int ntypes, const int nlocal, const int nall, const int max_nbors,
|
||||
const double cell_size, const double gpu_split, FILE *_screen,
|
||||
int* host_map, const int nelements, int*** host_elem2param, const int nparams,
|
||||
const double* cutsq, const double* r0,
|
||||
const double* gamma, const double* eta,
|
||||
const double* lam1inv, const double* lam4inv,
|
||||
const double* zizj, const double* mbigd,
|
||||
const double* dvrc, const double* big6w,
|
||||
const double* heta, const double* bigh,
|
||||
const double* bigw, const double* c0,
|
||||
const double* costheta, const double* bigb,
|
||||
const double* big2b, const double* bigc)
|
||||
{
|
||||
int success;
|
||||
success=this->init_three(nlocal,nall,max_nbors,0,cell_size,gpu_split,
|
||||
_screen,vashishta,"k_vashishta","k_vashishta_three_center",
|
||||
"k_vashishta_three_end");
|
||||
if (success!=0)
|
||||
return success;
|
||||
|
||||
// If atom type constants fit in shared memory use fast kernel
|
||||
int lj_types=ntypes;
|
||||
shared_types=false;
|
||||
int max_shared_types=this->device->max_shared_types();
|
||||
if (lj_types<=max_shared_types && this->_block_size>=max_shared_types) {
|
||||
lj_types=max_shared_types;
|
||||
shared_types=true;
|
||||
}
|
||||
_lj_types=lj_types;
|
||||
|
||||
_nparams = nparams;
|
||||
_nelements = nelements;
|
||||
|
||||
UCL_H_Vec<numtyp4> dview(nparams,*(this->ucl_device),
|
||||
UCL_WRITE_ONLY);
|
||||
|
||||
for (int i=0; i<nparams; i++) {
|
||||
dview[i].x=(numtyp)0;
|
||||
dview[i].y=(numtyp)0;
|
||||
dview[i].z=(numtyp)0;
|
||||
dview[i].w=(numtyp)0;
|
||||
}
|
||||
|
||||
// pack coefficients into arrays
|
||||
param1.alloc(nparams,*(this->ucl_device),UCL_READ_ONLY);
|
||||
|
||||
for (int i=0; i<nparams; i++) {
|
||||
dview[i].x=static_cast<numtyp>(eta[i]);
|
||||
dview[i].y=static_cast<numtyp>(lam1inv[i]);
|
||||
dview[i].z=static_cast<numtyp>(lam4inv[i]);
|
||||
dview[i].w=static_cast<numtyp>(zizj[i]);
|
||||
}
|
||||
|
||||
ucl_copy(param1,dview,false);
|
||||
param1_tex.get_texture(*(this->pair_program),"param1_tex");
|
||||
param1_tex.bind_float(param1,4);
|
||||
|
||||
param2.alloc(nparams,*(this->ucl_device),UCL_READ_ONLY);
|
||||
|
||||
for (int i=0; i<nparams; i++) {
|
||||
dview[i].x=static_cast<numtyp>(mbigd[i]);
|
||||
dview[i].y=static_cast<numtyp>(dvrc[i]);
|
||||
dview[i].z=static_cast<numtyp>(big6w[i]);
|
||||
dview[i].w=static_cast<numtyp>(heta[i]);
|
||||
}
|
||||
|
||||
ucl_copy(param2,dview,false);
|
||||
param2_tex.get_texture(*(this->pair_program),"param2_tex");
|
||||
param2_tex.bind_float(param2,4);
|
||||
|
||||
param3.alloc(nparams,*(this->ucl_device),UCL_READ_ONLY);
|
||||
|
||||
for (int i=0; i<nparams; i++) {
|
||||
dview[i].x=static_cast<numtyp>(bigh[i]);
|
||||
dview[i].y=static_cast<numtyp>(bigw[i]);
|
||||
dview[i].z=static_cast<numtyp>(dvrc[i]);
|
||||
dview[i].w=static_cast<numtyp>(c0[i]);
|
||||
}
|
||||
|
||||
ucl_copy(param3,dview,false);
|
||||
param3_tex.get_texture(*(this->pair_program),"param3_tex");
|
||||
param3_tex.bind_float(param3,4);
|
||||
|
||||
param4.alloc(nparams,*(this->ucl_device),UCL_READ_ONLY);
|
||||
|
||||
for (int i=0; i<nparams; i++) {
|
||||
double r0sq = r0[i]*r0[i]-1e-4; // TODO: should we have the 1e-4?
|
||||
|
||||
dview[i].x=static_cast<numtyp>(r0sq);
|
||||
dview[i].y=static_cast<numtyp>(gamma[i]);
|
||||
dview[i].z=static_cast<numtyp>(cutsq[i]);
|
||||
dview[i].w=static_cast<numtyp>(r0[i]);
|
||||
}
|
||||
|
||||
ucl_copy(param4,dview,false);
|
||||
param4_tex.get_texture(*(this->pair_program),"param4_tex");
|
||||
param4_tex.bind_float(param4,4);
|
||||
|
||||
param5.alloc(nparams,*(this->ucl_device),UCL_READ_ONLY);
|
||||
|
||||
for (int i=0; i<nparams; i++) {
|
||||
dview[i].x=static_cast<numtyp>(bigc[i]);
|
||||
dview[i].y=static_cast<numtyp>(costheta[i]);
|
||||
dview[i].z=static_cast<numtyp>(bigb[i]);
|
||||
dview[i].w=static_cast<numtyp>(big2b[i]);
|
||||
}
|
||||
|
||||
ucl_copy(param5,dview,false);
|
||||
param5_tex.get_texture(*(this->pair_program),"param5_tex");
|
||||
param5_tex.bind_float(param5,4);
|
||||
|
||||
UCL_H_Vec<int> dview_elem2param(nelements*nelements*nelements,
|
||||
*(this->ucl_device), UCL_WRITE_ONLY);
|
||||
|
||||
elem2param.alloc(nelements*nelements*nelements,*(this->ucl_device),
|
||||
UCL_READ_ONLY);
|
||||
|
||||
for (int i = 0; i < nelements; i++)
|
||||
for (int j = 0; j < nelements; j++)
|
||||
for (int k = 0; k < nelements; k++) {
|
||||
int idx = i*nelements*nelements+j*nelements+k;
|
||||
dview_elem2param[idx] = host_elem2param[i][j][k];
|
||||
}
|
||||
|
||||
ucl_copy(elem2param,dview_elem2param,false);
|
||||
|
||||
UCL_H_Vec<int> dview_map(lj_types, *(this->ucl_device), UCL_WRITE_ONLY);
|
||||
for (int i = 0; i < ntypes; i++)
|
||||
dview_map[i] = host_map[i];
|
||||
|
||||
map.alloc(lj_types,*(this->ucl_device), UCL_READ_ONLY);
|
||||
ucl_copy(map,dview_map,false);
|
||||
|
||||
_allocated=true;
|
||||
this->_max_bytes=param1.row_bytes()+param2.row_bytes()+param3.row_bytes()+param4.row_bytes()+param5.row_bytes()+
|
||||
map.row_bytes()+elem2param.row_bytes();
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
void VashishtaT::clear() {
|
||||
if (!_allocated)
|
||||
return;
|
||||
_allocated=false;
|
||||
|
||||
param1.clear();
|
||||
param2.clear();
|
||||
param3.clear();
|
||||
param4.clear();
|
||||
param5.clear();
|
||||
map.clear();
|
||||
elem2param.clear();
|
||||
this->clear_atomic();
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
double VashishtaT::host_memory_usage() const {
|
||||
return this->host_memory_usage_atomic()+sizeof(Vashishta<numtyp,acctyp>);
|
||||
}
|
||||
|
||||
#define KTHREADS this->_threads_per_atom
|
||||
#define JTHREADS this->_threads_per_atom
|
||||
// ---------------------------------------------------------------------------
|
||||
// Calculate energies, forces, and torques
|
||||
// ---------------------------------------------------------------------------
|
||||
template <class numtyp, class acctyp>
|
||||
void VashishtaT::loop(const bool _eflag, const bool _vflag, const int evatom) {
|
||||
// Compute the block size and grid size to keep all cores busy
|
||||
int BX=this->block_pair();
|
||||
int eflag, vflag;
|
||||
if (_eflag)
|
||||
eflag=1;
|
||||
else
|
||||
eflag=0;
|
||||
|
||||
if (_vflag)
|
||||
vflag=1;
|
||||
else
|
||||
vflag=0;
|
||||
|
||||
int GX=static_cast<int>(ceil(static_cast<double>(this->ans->inum())/
|
||||
(BX/this->_threads_per_atom)));
|
||||
|
||||
// this->_nbor_data == nbor->dev_packed for gpu_nbor == 0 and tpa > 1
|
||||
// this->_nbor_data == nbor->dev_nbor for gpu_nbor == 1 or tpa == 1
|
||||
int ainum=this->ans->inum();
|
||||
int nbor_pitch=this->nbor->nbor_pitch();
|
||||
this->time_pair.start();
|
||||
|
||||
this->k_pair.set_size(GX,BX);
|
||||
this->k_pair.run(&this->atom->x, ¶m1, ¶m2, ¶m3, ¶m4, ¶m5,
|
||||
&map, &elem2param, &_nelements,
|
||||
&this->nbor->dev_nbor, &this->_nbor_data->begin(),
|
||||
&this->ans->force, &this->ans->engv,
|
||||
&eflag, &vflag, &ainum, &nbor_pitch,
|
||||
&this->_threads_per_atom);
|
||||
|
||||
BX=this->block_size();
|
||||
GX=static_cast<int>(ceil(static_cast<double>(this->ans->inum())/
|
||||
(BX/(KTHREADS*JTHREADS))));
|
||||
|
||||
this->k_three_center.set_size(GX,BX);
|
||||
this->k_three_center.run(&this->atom->x, ¶m1, ¶m2, ¶m3, ¶m4, ¶m5,
|
||||
&map, &elem2param, &_nelements,
|
||||
&this->nbor->dev_nbor, &this->_nbor_data->begin(),
|
||||
&this->ans->force, &this->ans->engv, &eflag, &vflag, &ainum,
|
||||
&nbor_pitch, &this->_threads_per_atom, &evatom);
|
||||
Answer<numtyp,acctyp> *end_ans;
|
||||
#ifdef THREE_CONCURRENT
|
||||
end_ans=this->ans2;
|
||||
#else
|
||||
end_ans=this->ans;
|
||||
#endif
|
||||
if (evatom!=0) {
|
||||
|
||||
this->k_three_end_vatom.set_size(GX,BX);
|
||||
this->k_three_end_vatom.run(&this->atom->x, ¶m1, ¶m2, ¶m3, ¶m4, ¶m5,
|
||||
&map, &elem2param, &_nelements,
|
||||
&this->nbor->dev_nbor, &this->_nbor_data->begin(),
|
||||
&this->nbor->dev_acc,
|
||||
&end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum,
|
||||
&nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor);
|
||||
} else {
|
||||
|
||||
this->k_three_end.set_size(GX,BX);
|
||||
this->k_three_end.run(&this->atom->x, ¶m1, ¶m2, ¶m3, ¶m4, ¶m5,
|
||||
&map, &elem2param, &_nelements,
|
||||
&this->nbor->dev_nbor, &this->_nbor_data->begin(),
|
||||
&this->nbor->dev_acc,
|
||||
&end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum,
|
||||
&nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor);
|
||||
}
|
||||
|
||||
this->time_pair.stop();
|
||||
}
|
||||
|
||||
template class Vashishta<PRECISION,ACC_PRECISION>;
|
||||
|
||||
744
lib/gpu/lal_vashishta.cu
Normal file
744
lib/gpu/lal_vashishta.cu
Normal file
@ -0,0 +1,744 @@
|
||||
// **************************************************************************
|
||||
// vashishta.cu
|
||||
// -------------------
|
||||
// Anders Hafreager (UiO)
|
||||
//
|
||||
// Device code for acceleration of the vashishta pair style
|
||||
//
|
||||
// __________________________________________________________________________
|
||||
// This file is part of the LAMMPS Accelerator Library (LAMMPS_AL)
|
||||
// __________________________________________________________________________
|
||||
//
|
||||
// begin : Mon June 12, 2017
|
||||
// email : andershaf@gmail.com
|
||||
// ***************************************************************************/
|
||||
|
||||
#ifdef NV_KERNEL
|
||||
#include "lal_aux_fun1.h"
|
||||
|
||||
#ifndef _DOUBLE_DOUBLE
|
||||
texture<float4> pos_tex;
|
||||
texture<float4> param1_tex;
|
||||
texture<float4> param2_tex;
|
||||
texture<float4> param3_tex;
|
||||
texture<float4> param4_tex;
|
||||
texture<float4> param5_tex;
|
||||
#else
|
||||
texture<int4,1> pos_tex;
|
||||
texture<int4> param1_tex;
|
||||
texture<int4> param2_tex;
|
||||
texture<int4> param3_tex;
|
||||
texture<int4> param4_tex;
|
||||
texture<int4> param5_tex;
|
||||
#endif
|
||||
|
||||
#else
|
||||
#define pos_tex x_
|
||||
#define param1_tex param1
|
||||
#define param2_tex param2
|
||||
#define param3_tex param3
|
||||
#define param4_tex param4
|
||||
#define param5_tex param5
|
||||
#endif
|
||||
|
||||
#define THIRD (numtyp)0.66666666666666666667
|
||||
|
||||
//#define THREE_CONCURRENT
|
||||
|
||||
#if (ARCH < 300)
|
||||
|
||||
#define store_answers_p(f, energy, virial, ii, inum, tid, t_per_atom, offset, \
|
||||
eflag, vflag, ans, engv) \
|
||||
if (t_per_atom>1) { \
|
||||
__local acctyp red_acc[6][BLOCK_ELLIPSE]; \
|
||||
red_acc[0][tid]=f.x; \
|
||||
red_acc[1][tid]=f.y; \
|
||||
red_acc[2][tid]=f.z; \
|
||||
red_acc[3][tid]=energy; \
|
||||
for (unsigned int s=t_per_atom/2; s>0; s>>=1) { \
|
||||
if (offset < s) { \
|
||||
for (int r=0; r<4; r++) \
|
||||
red_acc[r][tid] += red_acc[r][tid+s]; \
|
||||
} \
|
||||
} \
|
||||
f.x=red_acc[0][tid]; \
|
||||
f.y=red_acc[1][tid]; \
|
||||
f.z=red_acc[2][tid]; \
|
||||
energy=red_acc[3][tid]; \
|
||||
if (vflag>0) { \
|
||||
for (int r=0; r<6; r++) \
|
||||
red_acc[r][tid]=virial[r]; \
|
||||
for (unsigned int s=t_per_atom/2; s>0; s>>=1) { \
|
||||
if (offset < s) { \
|
||||
for (int r=0; r<6; r++) \
|
||||
red_acc[r][tid] += red_acc[r][tid+s]; \
|
||||
} \
|
||||
} \
|
||||
for (int r=0; r<6; r++) \
|
||||
virial[r]=red_acc[r][tid]; \
|
||||
} \
|
||||
} \
|
||||
if (offset==0) { \
|
||||
int ei=ii; \
|
||||
if (eflag>0) { \
|
||||
engv[ei]+=energy*(acctyp)0.5; \
|
||||
ei+=inum; \
|
||||
} \
|
||||
if (vflag>0) { \
|
||||
for (int i=0; i<6; i++) { \
|
||||
engv[ei]+=virial[i]*(acctyp)0.5; \
|
||||
ei+=inum; \
|
||||
} \
|
||||
} \
|
||||
acctyp4 old=ans[ii]; \
|
||||
old.x+=f.x; \
|
||||
old.y+=f.y; \
|
||||
old.z+=f.z; \
|
||||
ans[ii]=old; \
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define store_answers_p(f, energy, virial, ii, inum, tid, t_per_atom, offset, \
|
||||
eflag, vflag, ans, engv) \
|
||||
if (t_per_atom>1) { \
|
||||
for (unsigned int s=t_per_atom/2; s>0; s>>=1) { \
|
||||
f.x += shfl_xor(f.x, s, t_per_atom); \
|
||||
f.y += shfl_xor(f.y, s, t_per_atom); \
|
||||
f.z += shfl_xor(f.z, s, t_per_atom); \
|
||||
energy += shfl_xor(energy, s, t_per_atom); \
|
||||
} \
|
||||
if (vflag>0) { \
|
||||
for (unsigned int s=t_per_atom/2; s>0; s>>=1) { \
|
||||
for (int r=0; r<6; r++) \
|
||||
virial[r] += shfl_xor(virial[r], s, t_per_atom); \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
if (offset==0) { \
|
||||
int ei=ii; \
|
||||
if (eflag>0) { \
|
||||
engv[ei]+=energy*(acctyp)0.5; \
|
||||
ei+=inum; \
|
||||
} \
|
||||
if (vflag>0) { \
|
||||
for (int i=0; i<6; i++) { \
|
||||
engv[ei]+=virial[i]*(acctyp)0.5; \
|
||||
ei+=inum; \
|
||||
} \
|
||||
} \
|
||||
acctyp4 old=ans[ii]; \
|
||||
old.x+=f.x; \
|
||||
old.y+=f.y; \
|
||||
old.z+=f.z; \
|
||||
ans[ii]=old; \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
__kernel void k_vashishta(const __global numtyp4 *restrict x_,
|
||||
const __global numtyp4 *restrict param1,
|
||||
const __global numtyp4 *restrict param2,
|
||||
const __global numtyp4 *restrict param3,
|
||||
const __global numtyp4 *restrict param4,
|
||||
const __global numtyp4 *restrict param5,
|
||||
const __global int *restrict map,
|
||||
const __global int *restrict elem2param,
|
||||
const int nelements,
|
||||
const __global int * dev_nbor,
|
||||
const __global int * dev_packed,
|
||||
__global acctyp4 *restrict ans,
|
||||
__global acctyp *restrict engv,
|
||||
const int eflag, const int vflag, const int inum,
|
||||
const int nbor_pitch, const int t_per_atom) {
|
||||
__local int n_stride;
|
||||
int tid, ii, offset;
|
||||
atom_info(t_per_atom,ii,tid,offset);
|
||||
|
||||
acctyp energy=(acctyp)0;
|
||||
acctyp4 f;
|
||||
f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0;
|
||||
acctyp virial[6];
|
||||
for (int i=0; i<6; i++)
|
||||
virial[i]=(acctyp)0;
|
||||
|
||||
__syncthreads();
|
||||
|
||||
if (ii<inum) {
|
||||
int nbor, nbor_end;
|
||||
int i, numj;
|
||||
nbor_info(dev_nbor,dev_packed,nbor_pitch,t_per_atom,ii,offset,i,numj,
|
||||
n_stride,nbor_end,nbor);
|
||||
|
||||
numtyp4 ix; fetch4(ix,i,pos_tex); //x_[i];
|
||||
int itype=ix.w;
|
||||
itype=map[itype];
|
||||
|
||||
for ( ; nbor<nbor_end; nbor+=n_stride) {
|
||||
|
||||
int j=dev_packed[nbor];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
numtyp4 jx; fetch4(jx,j,pos_tex); //x_[j];
|
||||
int jtype=jx.w;
|
||||
jtype=map[jtype];
|
||||
|
||||
int ijparam=elem2param[itype*nelements*nelements+jtype*nelements+jtype];
|
||||
|
||||
// Compute r12
|
||||
numtyp delx = ix.x-jx.x;
|
||||
numtyp dely = ix.y-jx.y;
|
||||
numtyp delz = ix.z-jx.z;
|
||||
numtyp rsq = delx*delx+dely*dely+delz*delz;
|
||||
|
||||
if (rsq<param4[ijparam].z) { // cutsq = param4[ijparam].z
|
||||
numtyp4 param1_ijparam; fetch4(param1_ijparam,ijparam,param1_tex);
|
||||
numtyp param1_eta=param1_ijparam.x;
|
||||
numtyp param1_lam1inv=param1_ijparam.y;
|
||||
numtyp param1_lam4inv=param1_ijparam.z;
|
||||
numtyp param1_zizj=param1_ijparam.w;
|
||||
|
||||
numtyp4 param2_ijparam; fetch4(param2_ijparam,ijparam,param2_tex);
|
||||
numtyp param2_mbigd=param2_ijparam.x;
|
||||
numtyp param2_dvrc =param2_ijparam.y;
|
||||
numtyp param2_big6w=param2_ijparam.z;
|
||||
numtyp param2_heta =param2_ijparam.w;
|
||||
|
||||
numtyp4 param3_ijparam; fetch4(param3_ijparam,ijparam,param3_tex);
|
||||
numtyp param3_bigh=param3_ijparam.x;
|
||||
numtyp param3_bigw=param3_ijparam.y;
|
||||
numtyp param3_dvrc=param3_ijparam.z;
|
||||
numtyp param3_c0 =param3_ijparam.w;
|
||||
|
||||
numtyp r=sqrt(rsq);
|
||||
numtyp rinvsq=1.0/rsq;
|
||||
numtyp r4inv = rinvsq*rinvsq;
|
||||
numtyp r6inv = rinvsq*r4inv;
|
||||
|
||||
numtyp reta = pow(r,-param1_eta);
|
||||
numtyp lam1r = r*param1_lam1inv;
|
||||
numtyp lam4r = r*param1_lam4inv;
|
||||
numtyp vc2 = param1_zizj * exp(-lam1r)/r;
|
||||
numtyp vc3 = param2_mbigd * r4inv*exp(-lam4r);
|
||||
|
||||
numtyp force = (param2_dvrc*r
|
||||
- (4.0*vc3 + lam4r*vc3+param2_big6w*r6inv
|
||||
- param2_heta*reta - vc2 - lam1r*vc2)
|
||||
) * rinvsq;
|
||||
|
||||
f.x+=delx*force;
|
||||
f.y+=dely*force;
|
||||
f.z+=delz*force;
|
||||
if (eflag>0)
|
||||
energy += (param3_bigh*reta+vc2-vc3-param3_bigw*r6inv-r*param3_dvrc+param3_c0);
|
||||
|
||||
if (vflag>0) {
|
||||
virial[0] += delx*delx*force;
|
||||
virial[1] += dely*dely*force;
|
||||
virial[2] += delz*delz*force;
|
||||
virial[3] += delx*dely*force;
|
||||
virial[4] += delx*delz*force;
|
||||
virial[5] += dely*delz*force;
|
||||
}
|
||||
}
|
||||
} // for nbor
|
||||
|
||||
store_answers(f,energy,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag,
|
||||
ans,engv);
|
||||
} // if ii
|
||||
|
||||
}
|
||||
|
||||
#define threebody(delr1x, delr1y, delr1z, eflag, energy) \
|
||||
{ \
|
||||
numtyp r1 = ucl_sqrt(rsq1); \
|
||||
numtyp rinvsq1 = ucl_recip(rsq1); \
|
||||
numtyp rainv1 = ucl_recip(r1 - param_r0_ij); \
|
||||
numtyp gsrainv1 = param_gamma_ij * rainv1; \
|
||||
numtyp gsrainvsq1 = gsrainv1*rainv1/r1; \
|
||||
numtyp expgsrainv1 = ucl_exp(gsrainv1); \
|
||||
\
|
||||
numtyp r2 = ucl_sqrt(rsq2); \
|
||||
numtyp rinvsq2 = ucl_recip(rsq2); \
|
||||
numtyp rainv2 = ucl_recip(r2 - param_r0_ik); \
|
||||
numtyp gsrainv2 = param_gamma_ik * rainv2; \
|
||||
numtyp gsrainvsq2 = gsrainv2*rainv2/r2; \
|
||||
numtyp expgsrainv2 = ucl_exp(gsrainv2); \
|
||||
\
|
||||
numtyp rinv12 = ucl_recip(r1*r2); \
|
||||
numtyp cs = (delr1x*delr2x + delr1y*delr2y + delr1z*delr2z) * rinv12; \
|
||||
numtyp delcs = cs - param_costheta_ijk; \
|
||||
numtyp delcssq = delcs*delcs; \
|
||||
numtyp pcsinv = param_bigc_ijk*delcssq+1.0; \
|
||||
numtyp pcsinvsq = pcsinv*pcsinv; \
|
||||
numtyp pcs = delcssq/pcsinv; \
|
||||
\
|
||||
numtyp facexp = expgsrainv1*expgsrainv2; \
|
||||
\
|
||||
numtyp facrad = param_bigb_ijk * facexp*pcs; \
|
||||
numtyp frad1 = facrad*gsrainvsq1; \
|
||||
numtyp frad2 = facrad*gsrainvsq2; \
|
||||
numtyp facang = param_big2b_ijk * facexp*delcs/pcsinvsq; \
|
||||
numtyp facang12 = rinv12*facang; \
|
||||
numtyp csfacang = cs*facang; \
|
||||
numtyp csfac1 = rinvsq1*csfacang; \
|
||||
\
|
||||
fjx = delr1x*(frad1+csfac1)-delr2x*facang12; \
|
||||
fjy = delr1y*(frad1+csfac1)-delr2y*facang12; \
|
||||
fjz = delr1z*(frad1+csfac1)-delr2z*facang12; \
|
||||
\
|
||||
numtyp csfac2 = rinvsq2*csfacang; \
|
||||
\
|
||||
fkx = delr2x*(frad2+csfac2)-delr1x*facang12; \
|
||||
fky = delr2y*(frad2+csfac2)-delr1y*facang12; \
|
||||
fkz = delr2z*(frad2+csfac2)-delr1z*facang12; \
|
||||
\
|
||||
if (eflag>0) \
|
||||
energy+=facrad; \
|
||||
if (vflag>0) { \
|
||||
virial[0] += delr1x*fjx + delr2x*fkx; \
|
||||
virial[1] += delr1y*fjy + delr2y*fky; \
|
||||
virial[2] += delr1z*fjz + delr2z*fkz; \
|
||||
virial[3] += delr1x*fjy + delr2x*fky; \
|
||||
virial[4] += delr1x*fjz + delr2x*fkz; \
|
||||
virial[5] += delr1y*fjz + delr2y*fkz; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define threebody_half(delr1x, delr1y, delr1z) \
|
||||
{ \
|
||||
numtyp r1 = ucl_sqrt(rsq1); \
|
||||
numtyp rinvsq1 = ucl_recip(rsq1); \
|
||||
numtyp rainv1 = ucl_recip(r1 - param_r0_ij); \
|
||||
numtyp gsrainv1 = param_gamma_ij * rainv1; \
|
||||
numtyp gsrainvsq1 = gsrainv1*rainv1/r1; \
|
||||
numtyp expgsrainv1 = ucl_exp(gsrainv1); \
|
||||
\
|
||||
numtyp r2 = ucl_sqrt(rsq2); \
|
||||
numtyp rainv2 = ucl_recip(r2 - param_r0_ik); \
|
||||
numtyp gsrainv2 = param_gamma_ik * rainv2; \
|
||||
numtyp expgsrainv2 = ucl_exp(gsrainv2); \
|
||||
\
|
||||
numtyp rinv12 = ucl_recip(r1*r2); \
|
||||
numtyp cs = (delr1x*delr2x + delr1y*delr2y + delr1z*delr2z) * rinv12; \
|
||||
numtyp delcs = cs - param_costheta_ijk; \
|
||||
numtyp delcssq = delcs*delcs; \
|
||||
numtyp pcsinv = param_bigc_ijk*delcssq+1.0; \
|
||||
numtyp pcsinvsq = pcsinv*pcsinv; \
|
||||
numtyp pcs = delcssq/pcsinv; \
|
||||
\
|
||||
numtyp facexp = expgsrainv1*expgsrainv2; \
|
||||
\
|
||||
numtyp facrad = param_bigb_ijk * facexp*pcs; \
|
||||
numtyp frad1 = facrad*gsrainvsq1; \
|
||||
numtyp facang = param_big2b_ijk * facexp*delcs/pcsinvsq; \
|
||||
numtyp facang12 = rinv12*facang; \
|
||||
numtyp csfacang = cs*facang; \
|
||||
numtyp csfac1 = rinvsq1*csfacang; \
|
||||
\
|
||||
fjx = delr1x*(frad1+csfac1)-delr2x*facang12; \
|
||||
fjy = delr1y*(frad1+csfac1)-delr2y*facang12; \
|
||||
fjz = delr1z*(frad1+csfac1)-delr2z*facang12; \
|
||||
}
|
||||
|
||||
__kernel void k_vashishta_three_center(const __global numtyp4 *restrict x_,
|
||||
const __global numtyp4 *restrict param1,
|
||||
const __global numtyp4 *restrict param2,
|
||||
const __global numtyp4 *restrict param3,
|
||||
const __global numtyp4 *restrict param4,
|
||||
const __global numtyp4 *restrict param5,
|
||||
const __global int *restrict map,
|
||||
const __global int *restrict elem2param,
|
||||
const int nelements,
|
||||
const __global int * dev_nbor,
|
||||
const __global int * dev_packed,
|
||||
__global acctyp4 *restrict ans,
|
||||
__global acctyp *restrict engv,
|
||||
const int eflag, const int vflag,
|
||||
const int inum, const int nbor_pitch,
|
||||
const int t_per_atom, const int evatom) {
|
||||
__local int tpa_sq, n_stride;
|
||||
tpa_sq=fast_mul(t_per_atom,t_per_atom);
|
||||
numtyp param_gamma_ij, param_r0sq_ij, param_r0_ij, param_gamma_ik, param_r0sq_ik, param_r0_ik;
|
||||
numtyp param_costheta_ijk, param_bigc_ijk, param_bigb_ijk, param_big2b_ijk;
|
||||
|
||||
int tid, ii, offset;
|
||||
atom_info(tpa_sq,ii,tid,offset);
|
||||
|
||||
acctyp energy=(acctyp)0;
|
||||
acctyp4 f;
|
||||
f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0;
|
||||
acctyp virial[6];
|
||||
for (int i=0; i<6; i++)
|
||||
virial[i]=(acctyp)0;
|
||||
|
||||
__syncthreads();
|
||||
|
||||
if (ii<inum) {
|
||||
int i, numj, nbor_j, nbor_end;
|
||||
|
||||
int offset_j=offset/t_per_atom;
|
||||
nbor_info(dev_nbor,dev_packed,nbor_pitch,t_per_atom,ii,offset_j,i,numj,
|
||||
n_stride,nbor_end,nbor_j);
|
||||
int offset_k=tid & (t_per_atom-1);
|
||||
|
||||
numtyp4 ix; fetch4(ix,i,pos_tex); //x_[i];
|
||||
int itype=ix.w;
|
||||
itype=map[itype];
|
||||
|
||||
for ( ; nbor_j<nbor_end; nbor_j+=n_stride) {
|
||||
|
||||
int j=dev_packed[nbor_j];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
numtyp4 jx; fetch4(jx,j,pos_tex); //x_[j];
|
||||
int jtype=jx.w;
|
||||
jtype=map[jtype];
|
||||
|
||||
// Compute r12
|
||||
numtyp delr1x = jx.x-ix.x;
|
||||
numtyp delr1y = jx.y-ix.y;
|
||||
numtyp delr1z = jx.z-ix.z;
|
||||
numtyp rsq1 = delr1x*delr1x+delr1y*delr1y+delr1z*delr1z;
|
||||
|
||||
int ijparam=elem2param[itype*nelements*nelements+jtype*nelements+jtype];
|
||||
|
||||
numtyp4 param4_ijparam; fetch4(param4_ijparam,ijparam,param4_tex);
|
||||
param_r0sq_ij=param4_ijparam.x;
|
||||
if (rsq1 > param_r0sq_ij) continue;
|
||||
param_gamma_ij=param4_ijparam.y;
|
||||
param_r0_ij=param4_ijparam.w;
|
||||
|
||||
int nbor_k=nbor_j-offset_j+offset_k;
|
||||
if (nbor_k<=nbor_j)
|
||||
nbor_k+=n_stride;
|
||||
|
||||
for ( ; nbor_k<nbor_end; nbor_k+=n_stride) {
|
||||
int k=dev_packed[nbor_k];
|
||||
k &= NEIGHMASK;
|
||||
|
||||
numtyp4 kx; fetch4(kx,k,pos_tex);
|
||||
int ktype=kx.w;
|
||||
ktype=map[ktype];
|
||||
int ikparam=elem2param[itype*nelements*nelements+ktype*nelements+ktype];
|
||||
numtyp4 param4_ikparam; fetch4(param4_ikparam,ikparam,param4_tex);
|
||||
|
||||
numtyp delr2x = kx.x-ix.x;
|
||||
numtyp delr2y = kx.y-ix.y;
|
||||
numtyp delr2z = kx.z-ix.z;
|
||||
numtyp rsq2 = delr2x*delr2x + delr2y*delr2y + delr2z*delr2z;
|
||||
|
||||
param_r0sq_ik=param4_ikparam.x;
|
||||
if (rsq2 < param_r0sq_ik) {
|
||||
param_gamma_ik=param4_ikparam.y;
|
||||
param_r0_ik=param4_ikparam.w;
|
||||
|
||||
int ijkparam=elem2param[itype*nelements*nelements+jtype*nelements+ktype];
|
||||
numtyp4 param5_ijkparam; fetch4(param5_ijkparam,ijkparam,param5_tex);
|
||||
param_bigc_ijk=param5_ijkparam.x;
|
||||
param_bigb_ijk=param5_ijkparam.z;
|
||||
param_big2b_ijk=param5_ijkparam.w;
|
||||
param_costheta_ijk=param5_ijkparam.y;
|
||||
|
||||
numtyp fjx, fjy, fjz, fkx, fky, fkz;
|
||||
threebody(delr1x,delr1y,delr1z,eflag,energy);
|
||||
|
||||
f.x -= fjx + fkx;
|
||||
f.y -= fjy + fky;
|
||||
f.z -= fjz + fkz;
|
||||
}
|
||||
}
|
||||
} // for nbor
|
||||
|
||||
numtyp pre;
|
||||
if (evatom==1)
|
||||
pre=THIRD;
|
||||
else
|
||||
pre=(numtyp)2.0;
|
||||
energy*=pre;
|
||||
for (int i=0; i<6; i++)
|
||||
virial[i]*=pre;
|
||||
|
||||
store_answers_p(f,energy,virial,ii,inum,tid,tpa_sq,offset,
|
||||
eflag,vflag,ans,engv);
|
||||
|
||||
} // if ii
|
||||
}
|
||||
|
||||
__kernel void k_vashishta_three_end(const __global numtyp4 *restrict x_,
|
||||
const __global numtyp4 *restrict param1,
|
||||
const __global numtyp4 *restrict param2,
|
||||
const __global numtyp4 *restrict param3,
|
||||
const __global numtyp4 *restrict param4,
|
||||
const __global numtyp4 *restrict param5,
|
||||
const __global int *restrict map,
|
||||
const __global int *restrict elem2param,
|
||||
const int nelements,
|
||||
const __global int * dev_nbor,
|
||||
const __global int * dev_packed,
|
||||
const __global int * dev_acc,
|
||||
__global acctyp4 *restrict ans,
|
||||
__global acctyp *restrict engv,
|
||||
const int eflag, const int vflag,
|
||||
const int inum, const int nbor_pitch,
|
||||
const int t_per_atom, const int gpu_nbor) {
|
||||
__local int tpa_sq, n_stride;
|
||||
tpa_sq=fast_mul(t_per_atom,t_per_atom);
|
||||
numtyp param_gamma_ij, param_r0sq_ij, param_r0_ij, param_gamma_ik, param_r0sq_ik, param_r0_ik;
|
||||
numtyp param_costheta_ijk, param_bigc_ijk, param_bigb_ijk, param_big2b_ijk;
|
||||
|
||||
int tid, ii, offset;
|
||||
atom_info(tpa_sq,ii,tid,offset);
|
||||
|
||||
acctyp energy=(acctyp)0;
|
||||
acctyp4 f;
|
||||
f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0;
|
||||
acctyp virial[6];
|
||||
for (int i=0; i<6; i++)
|
||||
virial[i]=(acctyp)0;
|
||||
|
||||
__syncthreads();
|
||||
|
||||
if (ii<inum) {
|
||||
int i, numj, nbor_j, nbor_end, k_end;
|
||||
|
||||
int offset_j=offset/t_per_atom;
|
||||
nbor_info(dev_nbor,dev_packed,nbor_pitch,t_per_atom,ii,offset_j,i,numj,
|
||||
n_stride,nbor_end,nbor_j);
|
||||
int offset_k=tid & (t_per_atom-1);
|
||||
|
||||
numtyp4 ix; fetch4(ix,i,pos_tex); //x_[i];
|
||||
int itype=ix.w;
|
||||
itype=map[itype];
|
||||
|
||||
for ( ; nbor_j<nbor_end; nbor_j+=n_stride) {
|
||||
int j=dev_packed[nbor_j];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
numtyp4 jx; fetch4(jx,j,pos_tex); //x_[j];
|
||||
int jtype=jx.w;
|
||||
jtype=map[jtype];
|
||||
|
||||
// Compute r12
|
||||
numtyp delr1x = ix.x-jx.x;
|
||||
numtyp delr1y = ix.y-jx.y;
|
||||
numtyp delr1z = ix.z-jx.z;
|
||||
numtyp rsq1 = delr1x*delr1x+delr1y*delr1y+delr1z*delr1z;
|
||||
|
||||
int ijparam=elem2param[itype*nelements*nelements+jtype*nelements+jtype];
|
||||
numtyp4 param4_ijparam; fetch4(param4_ijparam,ijparam,param4_tex);
|
||||
param_r0sq_ij = param4_ijparam.x;
|
||||
if (rsq1 > param_r0sq_ij) continue;
|
||||
|
||||
param_gamma_ij=param4_ijparam.y;
|
||||
param_r0_ij = param4_ijparam.w;
|
||||
|
||||
int nbor_k,numk;
|
||||
if (dev_nbor==dev_packed) {
|
||||
if (gpu_nbor) nbor_k=j+nbor_pitch;
|
||||
else nbor_k=dev_acc[j]+nbor_pitch;
|
||||
numk=dev_nbor[nbor_k];
|
||||
nbor_k+=nbor_pitch+fast_mul(j,t_per_atom-1);
|
||||
k_end=nbor_k+fast_mul(numk/t_per_atom,n_stride)+(numk & (t_per_atom-1));
|
||||
nbor_k+=offset_k;
|
||||
} else {
|
||||
nbor_k=dev_acc[j]+nbor_pitch;
|
||||
numk=dev_nbor[nbor_k];
|
||||
nbor_k+=nbor_pitch;
|
||||
nbor_k=dev_nbor[nbor_k];
|
||||
k_end=nbor_k+numk;
|
||||
nbor_k+=offset_k;
|
||||
}
|
||||
|
||||
for ( ; nbor_k<k_end; nbor_k+=n_stride) {
|
||||
int k=dev_packed[nbor_k];
|
||||
k &= NEIGHMASK;
|
||||
|
||||
if (k == i) continue;
|
||||
|
||||
numtyp4 kx; fetch4(kx,k,pos_tex);
|
||||
int ktype=kx.w;
|
||||
ktype=map[ktype];
|
||||
int ikparam=elem2param[jtype*nelements*nelements+ktype*nelements+ktype]; //jk
|
||||
|
||||
numtyp delr2x = kx.x - jx.x;
|
||||
numtyp delr2y = kx.y - jx.y;
|
||||
numtyp delr2z = kx.z - jx.z;
|
||||
numtyp rsq2 = delr2x*delr2x + delr2y*delr2y + delr2z*delr2z;
|
||||
numtyp4 param4_ikparam; fetch4(param4_ikparam,ikparam,param4_tex);
|
||||
param_r0sq_ik=param4_ikparam.x;
|
||||
|
||||
if (rsq2 < param_r0sq_ik) {
|
||||
param_gamma_ik=param4_ikparam.y;
|
||||
param_r0_ik=param4_ikparam.w;
|
||||
|
||||
int ijkparam=elem2param[jtype*nelements*nelements+itype*nelements+ktype]; //jik
|
||||
numtyp4 param5_ijkparam; fetch4(param5_ijkparam,ijkparam,param5_tex);
|
||||
param_bigc_ijk=param5_ijkparam.x;
|
||||
param_costheta_ijk=param5_ijkparam.y;
|
||||
param_bigb_ijk=param5_ijkparam.z;
|
||||
param_big2b_ijk=param5_ijkparam.w;
|
||||
|
||||
numtyp fjx, fjy, fjz;
|
||||
//if (evatom==0) {
|
||||
threebody_half(delr1x,delr1y,delr1z);
|
||||
//} else {
|
||||
// numtyp fkx, fky, fkz;
|
||||
// threebody(delr1x,delr1y,delr1z,eflag,energy);
|
||||
//}
|
||||
|
||||
f.x += fjx;
|
||||
f.y += fjy;
|
||||
f.z += fjz;
|
||||
}
|
||||
}
|
||||
|
||||
} // for nbor
|
||||
#ifdef THREE_CONCURRENT
|
||||
store_answers(f,energy,virial,ii,inum,tid,tpa_sq,offset,
|
||||
eflag,vflag,ans,engv);
|
||||
#else
|
||||
store_answers_p(f,energy,virial,ii,inum,tid,tpa_sq,offset,
|
||||
eflag,vflag,ans,engv);
|
||||
#endif
|
||||
} // if ii
|
||||
}
|
||||
|
||||
__kernel void k_vashishta_three_end_vatom(const __global numtyp4 *restrict x_,
|
||||
const __global numtyp4 *restrict param1,
|
||||
const __global numtyp4 *restrict param2,
|
||||
const __global numtyp4 *restrict param3,
|
||||
const __global numtyp4 *restrict param4,
|
||||
const __global numtyp4 *restrict param5,
|
||||
const __global int *restrict map,
|
||||
const __global int *restrict elem2param,
|
||||
const int nelements,
|
||||
const __global int * dev_nbor,
|
||||
const __global int * dev_packed,
|
||||
const __global int * dev_acc,
|
||||
__global acctyp4 *restrict ans,
|
||||
__global acctyp *restrict engv,
|
||||
const int eflag, const int vflag,
|
||||
const int inum, const int nbor_pitch,
|
||||
const int t_per_atom, const int gpu_nbor) {
|
||||
__local int tpa_sq, n_stride;
|
||||
tpa_sq=fast_mul(t_per_atom,t_per_atom);
|
||||
numtyp param_gamma_ij, param_r0sq_ij, param_r0_ij, param_gamma_ik, param_r0sq_ik, param_r0_ik;
|
||||
numtyp param_costheta_ijk, param_bigc_ijk, param_bigb_ijk, param_big2b_ijk;
|
||||
|
||||
int tid, ii, offset;
|
||||
atom_info(tpa_sq,ii,tid,offset);
|
||||
|
||||
acctyp energy=(acctyp)0;
|
||||
acctyp4 f;
|
||||
f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0;
|
||||
acctyp virial[6];
|
||||
for (int i=0; i<6; i++)
|
||||
virial[i]=(acctyp)0;
|
||||
|
||||
__syncthreads();
|
||||
|
||||
if (ii<inum) {
|
||||
int i, numj, nbor_j, nbor_end, k_end;
|
||||
|
||||
int offset_j=offset/t_per_atom;
|
||||
nbor_info(dev_nbor,dev_packed,nbor_pitch,t_per_atom,ii,offset_j,i,numj,
|
||||
n_stride,nbor_end,nbor_j);
|
||||
int offset_k=tid & (t_per_atom-1);
|
||||
|
||||
numtyp4 ix; fetch4(ix,i,pos_tex); //x_[i];
|
||||
int itype=ix.w;
|
||||
itype=map[itype];
|
||||
|
||||
for ( ; nbor_j<nbor_end; nbor_j+=n_stride) {
|
||||
int j=dev_packed[nbor_j];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
numtyp4 jx; fetch4(jx,j,pos_tex); //x_[j];
|
||||
int jtype=jx.w;
|
||||
jtype=map[jtype];
|
||||
|
||||
// Compute r12
|
||||
numtyp delr1x = ix.x-jx.x;
|
||||
numtyp delr1y = ix.y-jx.y;
|
||||
numtyp delr1z = ix.z-jx.z;
|
||||
numtyp rsq1 = delr1x*delr1x+delr1y*delr1y+delr1z*delr1z;
|
||||
|
||||
int ijparam=elem2param[itype*nelements*nelements+jtype*nelements+jtype];
|
||||
numtyp4 param4_ijparam; fetch4(param4_ijparam,ijparam,param4_tex);
|
||||
param_r0sq_ij=param4_ijparam.x;
|
||||
if (rsq1 > param_r0sq_ij) continue;
|
||||
|
||||
param_gamma_ij=param4_ijparam.y;
|
||||
param_r0_ij=param4_ijparam.w;
|
||||
|
||||
int nbor_k,numk;
|
||||
if (dev_nbor==dev_packed) {
|
||||
if (gpu_nbor) nbor_k=j+nbor_pitch;
|
||||
else nbor_k=dev_acc[j]+nbor_pitch;
|
||||
numk=dev_nbor[nbor_k];
|
||||
nbor_k+=nbor_pitch+fast_mul(j,t_per_atom-1);
|
||||
k_end=nbor_k+fast_mul(numk/t_per_atom,n_stride)+(numk & (t_per_atom-1));
|
||||
nbor_k+=offset_k;
|
||||
} else {
|
||||
nbor_k=dev_acc[j]+nbor_pitch;
|
||||
numk=dev_nbor[nbor_k];
|
||||
nbor_k+=nbor_pitch;
|
||||
nbor_k=dev_nbor[nbor_k];
|
||||
k_end=nbor_k+numk;
|
||||
nbor_k+=offset_k;
|
||||
}
|
||||
|
||||
for ( ; nbor_k<k_end; nbor_k+=n_stride) {
|
||||
int k=dev_packed[nbor_k];
|
||||
k &= NEIGHMASK;
|
||||
|
||||
if (k == i) continue;
|
||||
|
||||
numtyp4 kx; fetch4(kx,k,pos_tex);
|
||||
int ktype=kx.w;
|
||||
ktype=map[ktype];
|
||||
int ikparam=elem2param[jtype*nelements*nelements+ktype*nelements+ktype]; // jk
|
||||
numtyp4 param4_ikparam; fetch4(param4_ikparam,ikparam,param4_tex);
|
||||
|
||||
numtyp delr2x = kx.x - jx.x;
|
||||
numtyp delr2y = kx.y - jx.y;
|
||||
numtyp delr2z = kx.z - jx.z;
|
||||
numtyp rsq2 = delr2x*delr2x + delr2y*delr2y + delr2z*delr2z;
|
||||
param_r0sq_ik=param4_ikparam.x;
|
||||
|
||||
if (rsq2 < param_r0sq_ik) {
|
||||
param_gamma_ik=param4_ikparam.y;
|
||||
param_r0_ik=param4_ikparam.w;
|
||||
|
||||
int ijkparam=elem2param[jtype*nelements*nelements+itype*nelements+ktype]; // jik
|
||||
numtyp4 param5_ijkparam; fetch4(param5_ijkparam,ijkparam,param5_tex);
|
||||
param_bigc_ijk=param5_ijkparam.x;
|
||||
param_costheta_ijk=param5_ijkparam.y;
|
||||
param_bigb_ijk=param5_ijkparam.z;
|
||||
param_big2b_ijk=param5_ijkparam.w;
|
||||
|
||||
numtyp fjx, fjy, fjz, fkx, fky, fkz;
|
||||
threebody(delr1x,delr1y,delr1z,eflag,energy);
|
||||
|
||||
f.x += fjx;
|
||||
f.y += fjy;
|
||||
f.z += fjz;
|
||||
}
|
||||
}
|
||||
|
||||
} // for nbor
|
||||
energy*=THIRD;
|
||||
for (int i=0; i<6; i++)
|
||||
virial[i]*=THIRD;
|
||||
#ifdef THREE_CONCURRENT
|
||||
store_answers(f,energy,virial,ii,inum,tid,tpa_sq,offset,
|
||||
eflag,vflag,ans,engv);
|
||||
#else
|
||||
store_answers_p(f,energy,virial,ii,inum,tid,tpa_sq,offset,
|
||||
eflag,vflag,ans,engv);
|
||||
#endif
|
||||
} // if ii
|
||||
}
|
||||
|
||||
97
lib/gpu/lal_vashishta.h
Normal file
97
lib/gpu/lal_vashishta.h
Normal file
@ -0,0 +1,97 @@
|
||||
/***************************************************************************
|
||||
vashishta.h
|
||||
-------------------
|
||||
Anders Hafreager (UiO9)
|
||||
|
||||
Class for acceleration of the vashishta pair style.
|
||||
|
||||
__________________________________________________________________________
|
||||
This file is part of the LAMMPS Accelerator Library (LAMMPS_AL)
|
||||
__________________________________________________________________________
|
||||
|
||||
begin : Mon June 12, 2017
|
||||
email : andershaf@gmail.com
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef LAL_VASHISHTA_H
|
||||
#define LAL_VASHISHTA_H
|
||||
|
||||
#include "lal_base_three.h"
|
||||
|
||||
namespace LAMMPS_AL {
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
class Vashishta : public BaseThree<numtyp, acctyp> {
|
||||
public:
|
||||
Vashishta();
|
||||
~Vashishta();
|
||||
|
||||
/// Clear any previous data and set up for a new LAMMPS run
|
||||
/** \param max_nbors initial number of rows in the neighbor matrix
|
||||
* \param cell_size cutoff + skin
|
||||
* \param gpu_split fraction of particles handled by device
|
||||
*
|
||||
* Returns:
|
||||
* - 0 if successfull
|
||||
* - -1 if fix gpu not found
|
||||
* - -3 if there is an out of memory error
|
||||
* - -4 if the GPU library was not compiled for GPU
|
||||
* - -5 Double precision is not supported on card **/
|
||||
int init(const int ntypes, const int nlocal, const int nall, const int max_nbors,
|
||||
const double cell_size, const double gpu_split, FILE *screen,
|
||||
int* host_map, const int nelements, int*** host_elem2param, const int nparams,
|
||||
const double* cutsq, const double* r0,
|
||||
const double* gamma, const double* eta,
|
||||
const double* lam1inv, const double* lam4inv,
|
||||
const double* zizj, const double* mbigd,
|
||||
const double* dvrc, const double* big6w,
|
||||
const double* heta, const double* bigh,
|
||||
const double* bigw, const double* c0,
|
||||
const double* costheta, const double* bigb,
|
||||
const double* big2b, const double* bigc);
|
||||
|
||||
/// Clear all host and device data
|
||||
/** \note This is called at the beginning of the init() routine **/
|
||||
void clear();
|
||||
|
||||
/// Returns memory usage on device per atom
|
||||
int bytes_per_atom(const int max_nbors) const;
|
||||
|
||||
/// Total host memory used by library for pair style
|
||||
double host_memory_usage() const;
|
||||
|
||||
// --------------------------- TYPE DATA --------------------------
|
||||
|
||||
/// If atom type constants fit in shared memory, use fast kernels
|
||||
bool shared_types;
|
||||
|
||||
/// Number of atom types
|
||||
int _lj_types;
|
||||
|
||||
/// param1.x = eta, param1.y = lam1inv, param1.z = lam4inv, param1.w = zizj
|
||||
UCL_D_Vec<numtyp4> param1;
|
||||
/// param2.x = mbigd, param2.y = dvrc, param2.z = big6w, param2.w = heta
|
||||
UCL_D_Vec<numtyp4> param2;
|
||||
/// param3.x = bigh, param3.y = bigw, param3.z = dvrc, param3.w = c0
|
||||
UCL_D_Vec<numtyp4> param3;
|
||||
/// param4.x = r0sq, param4.y = gamma, param4.z = cutsq, param4.w = r0
|
||||
UCL_D_Vec<numtyp4> param4;
|
||||
/// param5.x = bigc, param5.y = costheta, param5.z = bigb, param5.w = big2b
|
||||
UCL_D_Vec<numtyp4> param5;
|
||||
|
||||
UCL_D_Vec<int> elem2param;
|
||||
UCL_D_Vec<int> map;
|
||||
int _nparams,_nelements;
|
||||
|
||||
UCL_Texture param1_tex, param2_tex, param3_tex, param4_tex, param5_tex;
|
||||
|
||||
private:
|
||||
bool _allocated;
|
||||
void loop(const bool _eflag, const bool _vflag, const int evatom);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
134
lib/gpu/lal_vashishta_ext.cpp
Normal file
134
lib/gpu/lal_vashishta_ext.cpp
Normal file
@ -0,0 +1,134 @@
|
||||
/***************************************************************************
|
||||
vashishta_ext.cpp
|
||||
-------------------
|
||||
Anders Hafreager (UiO)
|
||||
|
||||
Class for acceleration of the vashishta pair style.
|
||||
|
||||
__________________________________________________________________________
|
||||
This file is part of the LAMMPS Accelerator Library (LAMMPS_AL)
|
||||
__________________________________________________________________________
|
||||
|
||||
begin : Mon June 12, 2017
|
||||
email : andershaf@gmail.com
|
||||
***************************************************************************/
|
||||
|
||||
#include <iostream>
|
||||
#include <cassert>
|
||||
#include <math.h>
|
||||
|
||||
#include "lal_vashishta.h"
|
||||
using namespace LAMMPS_AL;
|
||||
|
||||
static Vashishta<PRECISION,ACC_PRECISION> VashishtaMF;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Allocate memory on host and device and copy constants to device
|
||||
// ---------------------------------------------------------------------------
|
||||
int vashishta_gpu_init(const int ntypes, const int inum, const int nall, const int max_nbors,
|
||||
const double cell_size, int &gpu_mode, FILE *screen,
|
||||
int* host_map, const int nelements, int*** host_elem2param, const int nparams,
|
||||
const double* cutsq, const double* r0,
|
||||
const double* gamma, const double* eta,
|
||||
const double* lam1inv, const double* lam4inv,
|
||||
const double* zizj, const double* mbigd,
|
||||
const double* dvrc, const double* big6w,
|
||||
const double* heta, const double* bigh,
|
||||
const double* bigw, const double* c0,
|
||||
const double* costheta, const double* bigb,
|
||||
const double* big2b, const double* bigc) {
|
||||
VashishtaMF.clear();
|
||||
gpu_mode=VashishtaMF.device->gpu_mode();
|
||||
double gpu_split=VashishtaMF.device->particle_split();
|
||||
int first_gpu=VashishtaMF.device->first_device();
|
||||
int last_gpu=VashishtaMF.device->last_device();
|
||||
int world_me=VashishtaMF.device->world_me();
|
||||
int gpu_rank=VashishtaMF.device->gpu_rank();
|
||||
int procs_per_gpu=VashishtaMF.device->procs_per_gpu();
|
||||
|
||||
// disable host/device split for now
|
||||
if (gpu_split != 1.0)
|
||||
return -8;
|
||||
|
||||
VashishtaMF.device->init_message(screen,"vashishta/gpu",first_gpu,last_gpu);
|
||||
|
||||
bool message=false;
|
||||
if (VashishtaMF.device->replica_me()==0 && screen)
|
||||
message=true;
|
||||
|
||||
if (message) {
|
||||
fprintf(screen,"Initializing Device and compiling on process 0...");
|
||||
fflush(screen);
|
||||
}
|
||||
|
||||
int init_ok=0;
|
||||
if (world_me==0)
|
||||
init_ok=VashishtaMF.init(ntypes, inum, nall, 500, cell_size, gpu_split, screen,
|
||||
host_map, nelements, host_elem2param, nparams,
|
||||
cutsq, r0, gamma, eta, lam1inv,
|
||||
lam4inv, zizj, mbigd, dvrc, big6w, heta, bigh, bigw,
|
||||
c0, costheta, bigb, big2b, bigc);
|
||||
|
||||
VashishtaMF.device->world_barrier();
|
||||
if (message)
|
||||
fprintf(screen,"Done.\n");
|
||||
|
||||
for (int i=0; i<procs_per_gpu; i++) {
|
||||
if (message) {
|
||||
if (last_gpu-first_gpu==0)
|
||||
fprintf(screen,"Initializing Device %d on core %d...",first_gpu,i);
|
||||
else
|
||||
fprintf(screen,"Initializing Devices %d-%d on core %d...",first_gpu,
|
||||
last_gpu,i);
|
||||
fflush(screen);
|
||||
}
|
||||
if (gpu_rank==i && world_me!=0)
|
||||
init_ok=VashishtaMF.init(ntypes, inum, nall, 500, cell_size, gpu_split, screen,
|
||||
host_map, nelements, host_elem2param, nparams,
|
||||
cutsq, r0, gamma, eta, lam1inv,
|
||||
lam4inv, zizj, mbigd, dvrc, big6w, heta, bigh, bigw,
|
||||
c0, costheta, bigb, big2b, bigc);
|
||||
|
||||
VashishtaMF.device->gpu_barrier();
|
||||
if (message)
|
||||
fprintf(screen,"Done.\n");
|
||||
}
|
||||
if (message)
|
||||
fprintf(screen,"\n");
|
||||
|
||||
if (init_ok==0)
|
||||
VashishtaMF.estimate_gpu_overhead();
|
||||
|
||||
return init_ok;
|
||||
}
|
||||
|
||||
void vashishta_gpu_clear() {
|
||||
VashishtaMF.clear();
|
||||
}
|
||||
|
||||
int ** vashishta_gpu_compute_n(const int ago, const int inum_full,
|
||||
const int nall, double **host_x, int *host_type,
|
||||
double *sublo, double *subhi, tagint *tag, int **nspecial,
|
||||
tagint **special, const bool eflag, const bool vflag,
|
||||
const bool eatom, const bool vatom, int &host_start,
|
||||
int **ilist, int **jnum, const double cpu_time,
|
||||
bool &success) {
|
||||
return VashishtaMF.compute(ago, inum_full, nall, host_x, host_type, sublo,
|
||||
subhi, tag, nspecial, special, eflag, vflag, eatom,
|
||||
vatom, host_start, ilist, jnum, cpu_time, success);
|
||||
}
|
||||
|
||||
void vashishta_gpu_compute(const int ago, const int nlocal, const int nall,
|
||||
const int nlist, double **host_x, int *host_type,
|
||||
int *ilist, int *numj, int **firstneigh, const bool eflag,
|
||||
const bool vflag, const bool eatom, const bool vatom,
|
||||
int &host_start, const double cpu_time, bool &success) {
|
||||
VashishtaMF.compute(ago,nlocal,nall,nlist,host_x,host_type,ilist,numj,
|
||||
firstneigh,eflag,vflag,eatom,vatom,host_start,cpu_time,success);
|
||||
}
|
||||
|
||||
double vashishta_gpu_bytes() {
|
||||
return VashishtaMF.host_memory_usage();
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,53 @@
|
||||
# Change Log
|
||||
|
||||
|
||||
## [2.03.05](https://github.com/kokkos/kokkos/tree/2.03.05) (2017-05-27)
|
||||
[Full Changelog](https://github.com/kokkos/kokkos/compare/2.03.00...2.03.05)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Harmonize Custom Reductions over nesting levels [\#802](https://github.com/kokkos/kokkos/issues/802)
|
||||
- Prevent users directly including KokkosCore\_config.h [\#815](https://github.com/kokkos/kokkos/issues/815)
|
||||
- DualView aborts on concurrent host/device modify \(in debug mode\) [\#814](https://github.com/kokkos/kokkos/issues/814)
|
||||
- Abort when running on a NVIDIA CC5.0 or higher architecture with code compiled for CC \< 5.0 [\#813](https://github.com/kokkos/kokkos/issues/813)
|
||||
- Add "name" function to ExecSpaces [\#806](https://github.com/kokkos/kokkos/issues/806)
|
||||
- Allow null Future in task spawn dependences [\#795](https://github.com/kokkos/kokkos/issues/795)
|
||||
- Add Unit Tests for Kokkos::complex [\#785](https://github.com/kokkos/kokkos/issues/785)
|
||||
- Add pow function for Kokkos::complex [\#784](https://github.com/kokkos/kokkos/issues/784)
|
||||
- Square root of a complex [\#729](https://github.com/kokkos/kokkos/issues/729)
|
||||
- Command line processing of --threads argument prevents users from having any commandline arguments starting with --threads [\#760](https://github.com/kokkos/kokkos/issues/760)
|
||||
- Protected deprecated API with appropriate macro [\#756](https://github.com/kokkos/kokkos/issues/756)
|
||||
- Allow task scheduler memory pool to be used by tasks [\#747](https://github.com/kokkos/kokkos/issues/747)
|
||||
- View bounds checking on host-side performance: constructing a std::string [\#723](https://github.com/kokkos/kokkos/issues/723)
|
||||
- Add check for AppleClang as compiler distinct from check for Clang. [\#705](https://github.com/kokkos/kokkos/issues/705)
|
||||
- Uninclude source files for specific configurations to prevent link warning. [\#701](https://github.com/kokkos/kokkos/issues/701)
|
||||
- Add --small option to snapshot script [\#697](https://github.com/kokkos/kokkos/issues/697)
|
||||
- CMake Standalone Support [\#674](https://github.com/kokkos/kokkos/issues/674)
|
||||
- CMake build unit test and install [\#808](https://github.com/kokkos/kokkos/issues/808)
|
||||
- CMake: Fix having kokkos as a subdirectory in a pure cmake project [\#629](https://github.com/kokkos/kokkos/issues/629)
|
||||
- Tribits macro assumes build directory is in top level source directory [\#654](https://github.com/kokkos/kokkos/issues/654)
|
||||
- Use bin/nvcc\_wrapper, not config/nvcc\_wrapper [\#562](https://github.com/kokkos/kokkos/issues/562)
|
||||
- Allow MemoryPool::allocate\(\) to be called from multiple threads per warp. [\#487](https://github.com/kokkos/kokkos/issues/487)
|
||||
- Allow MemoryPool::allocate\\(\\) to be called from multiple threads per warp. [\#487](https://github.com/kokkos/kokkos/issues/487)
|
||||
- Move OpenMP 4.5 OpenMPTarget backend into Develop [\#456](https://github.com/kokkos/kokkos/issues/456)
|
||||
- Testing on ARM testbed [\#288](https://github.com/kokkos/kokkos/issues/288)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- Fix label in OpenMP parallel\_reduce verify\_initialized [\#834](https://github.com/kokkos/kokkos/issues/834)
|
||||
- TeamScratch Level 1 on Cuda hangs [\#820](https://github.com/kokkos/kokkos/issues/820)
|
||||
- \[bug\] memory pool. [\#786](https://github.com/kokkos/kokkos/issues/786)
|
||||
- Some Reduction Tests fail on Intel 18 with aggressive vectorization on [\#774](https://github.com/kokkos/kokkos/issues/774)
|
||||
- Error copying dynamic view on copy of memory pool [\#773](https://github.com/kokkos/kokkos/issues/773)
|
||||
- CUDA stack overflow with TaskDAG test [\#758](https://github.com/kokkos/kokkos/issues/758)
|
||||
- ThreadVectorRange Customized Reduction Bug [\#739](https://github.com/kokkos/kokkos/issues/739)
|
||||
- set\_scratch\_size overflows [\#726](https://github.com/kokkos/kokkos/issues/726)
|
||||
- Get wrong results for compiler checks in Makefile on OS X. [\#706](https://github.com/kokkos/kokkos/issues/706)
|
||||
- Fix check if multiple host architectures enabled. [\#702](https://github.com/kokkos/kokkos/issues/702)
|
||||
- Threads Backend Does not Pass on Cray Compilers [\#609](https://github.com/kokkos/kokkos/issues/609)
|
||||
- Rare bug in memory pool where allocation can finish on superblock in empty state [\#452](https://github.com/kokkos/kokkos/issues/452)
|
||||
- LDFLAGS in core/unit\_test/Makefile: potential "undefined reference" to pthread lib [\#148](https://github.com/kokkos/kokkos/issues/148)
|
||||
|
||||
## [2.03.00](https://github.com/kokkos/kokkos/tree/2.03.00) (2017-04-25)
|
||||
[Full Changelog](https://github.com/kokkos/kokkos/compare/2.02.15...2.03.00)
|
||||
|
||||
|
||||
@ -5,11 +5,12 @@ ELSE()
|
||||
ENDIF()
|
||||
|
||||
IF(NOT KOKKOS_HAS_TRILINOS)
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11 FATAL_ERROR)
|
||||
INCLUDE(cmake/tribits.cmake)
|
||||
SET(CMAKE_CXX_STANDARD 11)
|
||||
ENDIF()
|
||||
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
|
||||
project(Kokkos CXX)
|
||||
|
||||
INCLUDE(cmake/kokkos.cmake)
|
||||
ELSE()
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# A) Forward delcare the package so that certain options are also defined for
|
||||
# subpackages
|
||||
@ -17,14 +18,13 @@ ENDIF()
|
||||
|
||||
TRIBITS_PACKAGE_DECL(Kokkos) # ENABLE_SHADOWING_WARNINGS)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# B) Define the common options for Kokkos first so they can be used by
|
||||
# subpackages as well.
|
||||
#
|
||||
|
||||
|
||||
|
||||
# mfh 01 Aug 2016: See Issue #61:
|
||||
#
|
||||
# https://github.com/kokkos/kokkos/issues/61
|
||||
@ -98,12 +98,13 @@ TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
)
|
||||
|
||||
TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
Kokkos_ENABLE_Qthreads
|
||||
Kokkos_ENABLE_QTHREAD
|
||||
KOKKOS_HAVE_QTHREADS
|
||||
"Enable Qthreads support in Kokkos."
|
||||
"${TPL_ENABLE_QTHREADS}"
|
||||
"${TPL_ENABLE_QTHREAD}"
|
||||
)
|
||||
|
||||
# TODO: No longer an option in Kokkos. Needs to be removed.
|
||||
TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
Kokkos_ENABLE_CXX11
|
||||
KOKKOS_HAVE_CXX11
|
||||
@ -118,6 +119,7 @@ TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
"${TPL_ENABLE_HWLOC}"
|
||||
)
|
||||
|
||||
# TODO: This is currently not used in Kokkos. Should it be removed?
|
||||
TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
Kokkos_ENABLE_MPI
|
||||
KOKKOS_HAVE_MPI
|
||||
@ -154,13 +156,27 @@ TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
"${Kokkos_ENABLE_Debug_Bounds_Check_DEFAULT}"
|
||||
)
|
||||
|
||||
TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
Kokkos_ENABLE_Debug_DualView_Modify_Check
|
||||
KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK
|
||||
"Enable abort when Kokkos::DualView modified on host and device without sync."
|
||||
"${Kokkos_ENABLE_DEBUG}"
|
||||
)
|
||||
|
||||
TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
Kokkos_ENABLE_Profiling
|
||||
KOKKOS_ENABLE_PROFILING_INTERNAL
|
||||
KOKKOS_ENABLE_PROFILING
|
||||
"Enable KokkosP profiling support for kernel data collections."
|
||||
"${TPL_ENABLE_DLlib}"
|
||||
)
|
||||
|
||||
TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
Kokkos_ENABLE_Profiling_Load_Print
|
||||
KOKKOS_ENABLE_PROFILING_LOAD_PRINT
|
||||
"Print to standard output which profiling library was loaded."
|
||||
OFF
|
||||
)
|
||||
|
||||
# placeholder for future device...
|
||||
TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
Kokkos_ENABLE_Winthread
|
||||
@ -169,6 +185,7 @@ TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
"${TPL_ENABLE_Winthread}"
|
||||
)
|
||||
|
||||
# TODO: No longer an option in Kokkos. Needs to be removed.
|
||||
# use new/old View
|
||||
TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
Kokkos_USING_DEPRECATED_VIEW
|
||||
@ -177,12 +194,12 @@ TRIBITS_ADD_OPTION_AND_DEFINE(
|
||||
OFF
|
||||
)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# C) Install Kokkos' executable scripts
|
||||
#
|
||||
|
||||
|
||||
# nvcc_wrapper is Kokkos' wrapper for NVIDIA's NVCC CUDA compiler.
|
||||
# Kokkos needs nvcc_wrapper in order to build. Other libraries and
|
||||
# executables also need nvcc_wrapper. Thus, we need to install it.
|
||||
@ -199,6 +216,8 @@ INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bin/nvcc_wrapper DESTINATION bin)
|
||||
|
||||
TRIBITS_PROCESS_SUBPACKAGES()
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# E) If Kokkos itself is enabled, process the Kokkos package
|
||||
#
|
||||
@ -213,3 +232,4 @@ TRIBITS_EXCLUDE_FILES(
|
||||
)
|
||||
|
||||
TRIBITS_PACKAGE_POSTPROCESS()
|
||||
ENDIF()
|
||||
|
||||
@ -35,13 +35,16 @@ KOKKOS_INTERNAL_USE_MEMKIND := $(strip $(shell echo $(KOKKOS_USE_TPLS) | grep "e
|
||||
# Check for advanced settings.
|
||||
KOKKOS_INTERNAL_OPT_RANGE_AGGRESSIVE_VECTORIZATION := $(strip $(shell echo $(KOKKOS_OPTIONS) | grep "aggressive_vectorization" | wc -l))
|
||||
KOKKOS_INTERNAL_DISABLE_PROFILING := $(strip $(shell echo $(KOKKOS_OPTIONS) | grep "disable_profiling" | wc -l))
|
||||
KOKKOS_INTERNAL_DISABLE_DUALVIEW_MODIFY_CHECK := $(strip $(shell echo $(KOKKOS_OPTIONS) | grep "disable_dualview_modify_check" | wc -l))
|
||||
KOKKOS_INTERNAL_ENABLE_PROFILING_LOAD_PRINT := $(strip $(shell echo $(KOKKOS_OPTIONS) | grep "enable_profile_load_print" | wc -l))
|
||||
KOKKOS_INTERNAL_CUDA_USE_LDG := $(strip $(shell echo $(KOKKOS_CUDA_OPTIONS) | grep "use_ldg" | wc -l))
|
||||
KOKKOS_INTERNAL_CUDA_USE_UVM := $(strip $(shell echo $(KOKKOS_CUDA_OPTIONS) | grep "force_uvm" | wc -l))
|
||||
KOKKOS_INTERNAL_CUDA_USE_RELOC := $(strip $(shell echo $(KOKKOS_CUDA_OPTIONS) | grep "rdc" | wc -l))
|
||||
KOKKOS_INTERNAL_CUDA_USE_LAMBDA := $(strip $(shell echo $(KOKKOS_CUDA_OPTIONS) | grep "enable_lambda" | wc -l))
|
||||
|
||||
# Check for Kokkos Host Execution Spaces one of which must be on.
|
||||
KOKKOS_INTERNAL_USE_OPENMP := $(strip $(shell echo $(KOKKOS_DEVICES) | grep OpenMP | wc -l))
|
||||
KOKKOS_INTERNAL_USE_OPENMPTARGET := $(strip $(shell echo $(KOKKOS_DEVICES) | grep OpenMPTarget | wc -l))
|
||||
KOKKOS_INTERNAL_USE_OPENMP := $(strip $(shell echo $(subst OpenMPTarget,,$(KOKKOS_DEVICES)) | grep OpenMP | wc -l))
|
||||
KOKKOS_INTERNAL_USE_PTHREADS := $(strip $(shell echo $(KOKKOS_DEVICES) | grep Pthread | wc -l))
|
||||
KOKKOS_INTERNAL_USE_QTHREADS := $(strip $(shell echo $(KOKKOS_DEVICES) | grep Qthreads | wc -l))
|
||||
KOKKOS_INTERNAL_USE_SERIAL := $(strip $(shell echo $(KOKKOS_DEVICES) | grep Serial | wc -l))
|
||||
@ -64,24 +67,25 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
endif
|
||||
|
||||
# Check OS.
|
||||
KOKKOS_OS := $(shell uname -s)
|
||||
KOKKOS_INTERNAL_OS_CYGWIN := $(shell uname -s | grep CYGWIN | wc -l)
|
||||
KOKKOS_INTERNAL_OS_LINUX := $(shell uname -s | grep Linux | wc -l)
|
||||
KOKKOS_INTERNAL_OS_DARWIN := $(shell uname -s | grep Darwin | wc -l)
|
||||
KOKKOS_OS := $(strip $(shell uname -s))
|
||||
KOKKOS_INTERNAL_OS_CYGWIN := $(strip $(shell uname -s | grep CYGWIN | wc -l))
|
||||
KOKKOS_INTERNAL_OS_LINUX := $(strip $(shell uname -s | grep Linux | wc -l))
|
||||
KOKKOS_INTERNAL_OS_DARWIN := $(strip $(shell uname -s | grep Darwin | wc -l))
|
||||
|
||||
# Check compiler.
|
||||
KOKKOS_INTERNAL_COMPILER_INTEL := $(shell $(CXX) --version 2>&1 | grep "Intel Corporation" | wc -l)
|
||||
KOKKOS_INTERNAL_COMPILER_PGI := $(shell $(CXX) --version 2>&1 | grep PGI | wc -l)
|
||||
KOKKOS_INTERNAL_COMPILER_XL := $(shell $(CXX) -qversion 2>&1 | grep XL | wc -l)
|
||||
KOKKOS_INTERNAL_COMPILER_CRAY := $(shell $(CXX) -craype-verbose 2>&1 | grep "CC-" | wc -l)
|
||||
KOKKOS_INTERNAL_COMPILER_NVCC := $(shell $(CXX) --version 2>&1 | grep "nvcc" | wc -l)
|
||||
KOKKOS_INTERNAL_COMPILER_INTEL := $(strip $(shell $(CXX) --version 2>&1 | grep "Intel Corporation" | wc -l))
|
||||
KOKKOS_INTERNAL_COMPILER_PGI := $(strip $(shell $(CXX) --version 2>&1 | grep PGI | wc -l))
|
||||
KOKKOS_INTERNAL_COMPILER_XL := $(strip $(shell $(CXX) -qversion 2>&1 | grep XL | wc -l))
|
||||
KOKKOS_INTERNAL_COMPILER_CRAY := $(strip $(shell $(CXX) -craype-verbose 2>&1 | grep "CC-" | wc -l))
|
||||
KOKKOS_INTERNAL_COMPILER_NVCC := $(strip $(shell $(CXX) --version 2>&1 | grep nvcc | wc -l))
|
||||
KOKKOS_INTERNAL_COMPILER_CLANG := $(strip $(shell $(CXX) --version 2>&1 | grep clang | wc -l))
|
||||
KOKKOS_INTERNAL_COMPILER_APPLE_CLANG := $(strip $(shell $(CXX) --version 2>&1 | grep "apple-darwin" | wc -l))
|
||||
ifneq ($(OMPI_CXX),)
|
||||
KOKKOS_INTERNAL_COMPILER_NVCC := $(shell $(OMPI_CXX) --version 2>&1 | grep "nvcc" | wc -l)
|
||||
KOKKOS_INTERNAL_COMPILER_NVCC := $(strip $(shell $(OMPI_CXX) --version 2>&1 | grep "nvcc" | wc -l))
|
||||
endif
|
||||
ifneq ($(MPICH_CXX),)
|
||||
KOKKOS_INTERNAL_COMPILER_NVCC := $(shell $(MPICH_CXX) --version 2>&1 | grep "nvcc" | wc -l)
|
||||
KOKKOS_INTERNAL_COMPILER_NVCC := $(strip $(shell $(MPICH_CXX) --version 2>&1 | grep "nvcc" | wc -l))
|
||||
endif
|
||||
KOKKOS_INTERNAL_COMPILER_CLANG := $(shell $(CXX) --version 2>&1 | grep "clang" | wc -l)
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 2)
|
||||
KOKKOS_INTERNAL_COMPILER_CLANG = 1
|
||||
@ -90,6 +94,11 @@ ifeq ($(KOKKOS_INTERNAL_COMPILER_XL), 2)
|
||||
KOKKOS_INTERNAL_COMPILER_XL = 1
|
||||
endif
|
||||
|
||||
# Apple Clang passes both clang and apple clang tests, so turn off clang.
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_APPLE_CLANG), 1)
|
||||
KOKKOS_INTERNAL_COMPILER_CLANG = 0
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
KOKKOS_INTERNAL_COMPILER_CLANG_VERSION := $(shell clang --version | grep version | cut -d ' ' -f3 | tr -d '.')
|
||||
|
||||
@ -97,15 +106,20 @@ ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
ifeq ($(shell test $(KOKKOS_INTERNAL_COMPILER_CLANG_VERSION) -lt 400; echo $$?),0)
|
||||
$(error Compiling Cuda code directly with Clang requires version 4.0.0 or higher)
|
||||
endif
|
||||
|
||||
KOKKOS_INTERNAL_CUDA_USE_LAMBDA := 1
|
||||
endif
|
||||
endif
|
||||
|
||||
# Set OpenMP flags.
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1)
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -mp
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -fopenmp=libomp
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_APPLE_CLANG), 1)
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -fopenmp=libomp
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_XL), 1)
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -qsmp=omp
|
||||
@ -119,7 +133,16 @@ else
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_XL), 1)
|
||||
KOKKOS_INTERNAL_OPENMPTARGET_FLAG := -DKOKKOS_IBM_XL_OMP45_WORKAROUND -qsmp=omp -qoffload -qnoeh
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
KOKKOS_INTERNAL_OPENMPTARGET_FLAG := -DKOKKOS_BUG_WORKAROUND_IBM_CLANG_OMP45_VIEW_INIT -fopenmp-implicit-declare-target -fopenmp-targets=nvptx64-nvidia-cuda -fopenmp -fopenmp=libomp
|
||||
endif
|
||||
endif
|
||||
|
||||
# Set C++11 flags.
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1)
|
||||
KOKKOS_INTERNAL_CXX11_FLAG := --c++11
|
||||
else
|
||||
@ -146,7 +169,7 @@ KOKKOS_INTERNAL_USE_ARCH_SKX := $(strip $(shell echo $(KOKKOS_ARCH) | grep SKX |
|
||||
KOKKOS_INTERNAL_USE_ARCH_KNL := $(strip $(shell echo $(KOKKOS_ARCH) | grep KNL | wc -l))
|
||||
|
||||
# NVIDIA based.
|
||||
NVCC_WRAPPER := $(KOKKOS_PATH)/config/nvcc_wrapper
|
||||
NVCC_WRAPPER := $(KOKKOS_PATH)/bin/nvcc_wrapper
|
||||
KOKKOS_INTERNAL_USE_ARCH_KEPLER30 := $(strip $(shell echo $(KOKKOS_ARCH) | grep Kepler30 | wc -l))
|
||||
KOKKOS_INTERNAL_USE_ARCH_KEPLER32 := $(strip $(shell echo $(KOKKOS_ARCH) | grep Kepler32 | wc -l))
|
||||
KOKKOS_INTERNAL_USE_ARCH_KEPLER35 := $(strip $(shell echo $(KOKKOS_ARCH) | grep Kepler35 | wc -l))
|
||||
@ -180,10 +203,20 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 0)
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53) | bc))
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 1)
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
KOKKOS_INTERNAL_NVCC_PATH := $(shell which nvcc)
|
||||
CUDA_PATH ?= $(KOKKOS_INTERNAL_NVCC_PATH:/bin/nvcc=)
|
||||
KOKKOS_INTERNAL_OPENMPTARGET_FLAG := $(KOKKOS_INTERNAL_OPENMPTARGET_FLAG) --cuda-path=$(CUDA_PATH)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
# ARM based.
|
||||
KOKKOS_INTERNAL_USE_ARCH_ARMV80 := $(strip $(shell echo $(KOKKOS_ARCH) | grep ARMv80 | wc -l))
|
||||
KOKKOS_INTERNAL_USE_ARCH_ARMV81 := $(strip $(shell echo $(KOKKOS_ARCH) | grep ARMv81 | wc -l))
|
||||
KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX := $(strip $(shell echo $(KOKKOS_ARCH) | grep ARMv8-ThunderX | wc -l))
|
||||
KOKKOS_INTERNAL_USE_ARCH_ARM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_ARMV80)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV81)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX) | bc))
|
||||
|
||||
# IBM based.
|
||||
KOKKOS_INTERNAL_USE_ARCH_BGQ := $(strip $(shell echo $(KOKKOS_ARCH) | grep BGQ | wc -l))
|
||||
@ -206,8 +239,11 @@ KOKKOS_INTERNAL_USE_ISA_X86_64 := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_
|
||||
KOKKOS_INTERNAL_USE_ISA_KNC := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_KNC) | bc ))
|
||||
KOKKOS_INTERNAL_USE_ISA_POWERPCLE := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_POWER8)+$(KOKKOS_INTERNAL_USE_ARCH_POWER9) | bc ))
|
||||
|
||||
# Decide whether we can support transactional memory
|
||||
KOKKOS_INTERNAL_USE_TM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_BDW)+$(KOKKOS_INTERNAL_USE_ARCH_SKX) | bc ))
|
||||
|
||||
# Incompatible flags?
|
||||
KOKKOS_INTERNAL_USE_ARCH_MULTIHOST := $(strip $(shell echo "$(KOKKOS_INTERNAL_USE_ARCH_AVX)+$(KOKKOS_INTERNAL_USE_ARCH_AVX2)+$(KOKKOS_INTERNAL_USE_ARCH_KNC)+$(KOKKOS_INTERNAL_USE_ARCH_IBM)+$(KOKKOS_INTERNAL_USE_ARCH_AMDAVX)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV80)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV81)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX)>1" | bc ))
|
||||
KOKKOS_INTERNAL_USE_ARCH_MULTIHOST := $(strip $(shell echo "$(KOKKOS_INTERNAL_USE_ARCH_AVX)+$(KOKKOS_INTERNAL_USE_ARCH_AVX2)+$(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC)+$(KOKKOS_INTERNAL_USE_ARCH_AVX512XEON)+$(KOKKOS_INTERNAL_USE_ARCH_KNC)+$(KOKKOS_INTERNAL_USE_ARCH_IBM)+$(KOKKOS_INTERNAL_USE_ARCH_ARM)>1" | bc ))
|
||||
KOKKOS_INTERNAL_USE_ARCH_MULTIGPU := $(strip $(shell echo "$(KOKKOS_INTERNAL_USE_ARCH_NVIDIA)>1" | bc))
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MULTIHOST), 1)
|
||||
@ -240,12 +276,22 @@ tmp := $(shell echo "Makefile constructed configuration:" >> KokkosCore_config.t
|
||||
tmp := $(shell date >> KokkosCore_config.tmp)
|
||||
tmp := $(shell echo "----------------------------------------------*/" >> KokkosCore_config.tmp)
|
||||
|
||||
tmp := $(shell echo '\#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H)' >> KokkosCore_config.tmp)
|
||||
tmp := $(shell echo '\#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead."' >> KokkosCore_config.tmp)
|
||||
tmp := $(shell echo '\#else' >> KokkosCore_config.tmp)
|
||||
tmp := $(shell echo '\#define KOKKOS_CORE_CONFIG_H' >> KokkosCore_config.tmp)
|
||||
tmp := $(shell echo '\#endif' >> KokkosCore_config.tmp)
|
||||
|
||||
tmp := $(shell echo "/* Execution Spaces */" >> KokkosCore_config.tmp)
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_HAVE_CUDA 1" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
|
||||
tmp := $(shell echo '\#define KOKKOS_ENABLE_OPENMPTARGET 1' >> KokkosCore_config.tmp)
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1)
|
||||
tmp := $(shell echo '\#define KOKKOS_HAVE_OPENMP 1' >> KokkosCore_config.tmp)
|
||||
endif
|
||||
@ -262,6 +308,12 @@ ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_HAVE_SERIAL 1" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_TM), 1)
|
||||
tmp := $(shell echo "\#ifndef __CUDA_ARCH__" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ENABLE_TM" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#endif" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ISA_X86_64), 1)
|
||||
tmp := $(shell echo "\#ifndef __CUDA_ARCH__" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_USE_ISA_X86_64" >> KokkosCore_config.tmp )
|
||||
@ -296,10 +348,18 @@ ifeq ($(KOKKOS_INTERNAL_ENABLE_DEBUG), 1)
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1)
|
||||
KOKKOS_CXXFLAGS += -lineinfo
|
||||
endif
|
||||
|
||||
KOKKOS_CXXFLAGS += -g
|
||||
KOKKOS_LDFLAGS += -g -ldl
|
||||
tmp := $(shell echo "\#define KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_HAVE_DEBUG 1" >> KokkosCore_config.tmp )
|
||||
ifeq ($(KOKKOS_INTERNAL_DISABLE_DUALVIEW_MODIFY_CHECK), 0)
|
||||
tmp := $(shell echo "\#define KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK 1" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_ENABLE_PROFILING_LOAD_PRINT), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ENABLE_PROFILING_LOAD_PRINT 1" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_HWLOC), 1)
|
||||
@ -311,8 +371,6 @@ endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_LIBRT), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_USE_LIBRT 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define PREC_TIMER 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOSP_ENABLE_RTLIB 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_LIBS += -lrt
|
||||
endif
|
||||
|
||||
@ -323,8 +381,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_MEMKIND), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_HAVE_HBWSPACE 1" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_DISABLE_PROFILING), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ENABLE_PROFILING 0" >> KokkosCore_config.tmp )
|
||||
ifeq ($(KOKKOS_INTERNAL_DISABLE_PROFILING), 0)
|
||||
tmp := $(shell echo "\#define KOKKOS_ENABLE_PROFILING" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
|
||||
tmp := $(shell echo "/* Optimization Settings */" >> KokkosCore_config.tmp)
|
||||
@ -336,14 +394,16 @@ endif
|
||||
tmp := $(shell echo "/* Cuda Settings */" >> KokkosCore_config.tmp)
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_CUDA_USE_LDG), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_CUDA_USE_LDG_INTRINSIC 1" >> KokkosCore_config.tmp )
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_CUDA_USE_LDG_INTRINSIC 1" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_CUDA_USE_UVM), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_CUDA_USE_UVM 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_USE_CUDA_UVM 1" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_CUDA_USE_RELOC), 1)
|
||||
@ -367,6 +427,9 @@ ifeq ($(KOKKOS_INTERNAL_CUDA_USE_LAMBDA), 1)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_CUDA_CLANG_WORKAROUND" >> KokkosCore_config.tmp )
|
||||
endif
|
||||
endif
|
||||
|
||||
# Add Architecture flags.
|
||||
@ -469,7 +532,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER9), 1)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX2), 1)
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_HSW), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_AVX2 1" >> KokkosCore_config.tmp )
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1)
|
||||
@ -491,6 +554,28 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX2), 1)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_BDW), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_AVX2 1" >> KokkosCore_config.tmp )
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1)
|
||||
KOKKOS_CXXFLAGS += -xCORE-AVX2
|
||||
KOKKOS_LDFLAGS += -xCORE-AVX2
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1)
|
||||
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1)
|
||||
KOKKOS_CXXFLAGS += -tp=haswell
|
||||
KOKKOS_LDFLAGS += -tp=haswell
|
||||
else
|
||||
# Assume that this is a really a GNU compiler.
|
||||
KOKKOS_CXXFLAGS += -march=core-avx2 -mtune=core-avx2 -mrtm
|
||||
KOKKOS_LDFLAGS += -march=core-avx2 -mtune=core-avx2 -mrtm
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_AVX512MIC 1" >> KokkosCore_config.tmp )
|
||||
|
||||
@ -505,8 +590,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC), 1)
|
||||
|
||||
else
|
||||
# Asssume that this is really a GNU compiler.
|
||||
KOKKOS_CXXFLAGS += -march=knl
|
||||
KOKKOS_LDFLAGS += -march=knl
|
||||
KOKKOS_CXXFLAGS += -march=knl -mtune=knl
|
||||
KOKKOS_LDFLAGS += -march=knl -mtune=knl
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@ -526,8 +611,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512XEON), 1)
|
||||
|
||||
else
|
||||
# Nothing here yet.
|
||||
KOKKOS_CXXFLAGS += -march=skylake-avx512
|
||||
KOKKOS_LDFLAGS += -march=skylake-avx512
|
||||
KOKKOS_CXXFLAGS += -march=skylake-avx512 -mtune=skylake-avx512 -mrtm
|
||||
KOKKOS_LDFLAGS += -march=skylake-avx512 -mtune=skylake-avx512 -mrtm
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@ -541,70 +626,67 @@ endif
|
||||
|
||||
# Figure out the architecture flag for Cuda.
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1)
|
||||
KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG=-arch
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=-arch
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG=--cuda-gpu-arch
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=--cuda-gpu-arch
|
||||
KOKKOS_CXXFLAGS += -x cuda
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER30), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_KEPLER 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_KEPLER30 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_30
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_30
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_30
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER32), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_KEPLER 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_KEPLER32 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_32
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_32
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_32
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER35), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_KEPLER 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_KEPLER35 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_35
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_35
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_35
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER37), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_KEPLER 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_KEPLER37 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_37
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_37
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_37
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_MAXWELL 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_MAXWELL50 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_50
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_50
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_50
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_MAXWELL 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_MAXWELL52 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_52
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_52
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_52
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_MAXWELL 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_MAXWELL53 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_53
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_53
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_PASCAL61), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_PASCAL 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_PASCAL61 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_61
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_61
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_53
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_PASCAL60), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_PASCAL 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_PASCAL60 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_60
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_COMPILER_CUDA_ARCH_FLAG)=sm_60
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_60
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_PASCAL61), 1)
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_PASCAL 1" >> KokkosCore_config.tmp )
|
||||
tmp := $(shell echo "\#define KOKKOS_ARCH_PASCAL61 1" >> KokkosCore_config.tmp )
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_61
|
||||
endif
|
||||
|
||||
ifneq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 0)
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1)
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
KOKKOS_INTERNAL_LS_CONFIG := $(shell ls KokkosCore_config.h)
|
||||
@ -630,9 +712,24 @@ KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/containers/src/impl/*.cpp)
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.cpp)
|
||||
KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.hpp)
|
||||
KOKKOS_CXXFLAGS += -I$(CUDA_PATH)/include
|
||||
KOKKOS_CPPFLAGS += -I$(CUDA_PATH)/include
|
||||
KOKKOS_LDFLAGS += -L$(CUDA_PATH)/lib64
|
||||
KOKKOS_LIBS += -lcudart -lcuda
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
KOKKOS_CXXFLAGS += --cuda-path=$(CUDA_PATH)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
|
||||
KOKKOS_SRC += $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp
|
||||
KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/OpenMPTarget/*.hpp)
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
KOKKOS_CXXFLAGS += -Xcompiler $(KOKKOS_INTERNAL_OPENMPTARGET_FLAG)
|
||||
else
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_OPENMPTARGET_FLAG)
|
||||
endif
|
||||
KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_OPENMPTARGET_FLAG)
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1)
|
||||
@ -666,10 +763,27 @@ endif
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
KOKKOS_INTERNAL_GCC_PATH = $(shell which g++)
|
||||
KOKKOS_INTERNAL_GCC_TOOLCHAIN = $(KOKKOS_INTERNAL_GCC_PATH:/bin/g++=)
|
||||
KOKKOS_CXXFLAGS += --gcc-toolchain=$(KOKKOS_INTERNAL_GCC_TOOLCHAIN) -DKOKKOS_CUDA_CLANG_WORKAROUND -DKOKKOS_CUDA_USE_LDG_INTRINSIC
|
||||
KOKKOS_CXXFLAGS += --gcc-toolchain=$(KOKKOS_INTERNAL_GCC_TOOLCHAIN)
|
||||
KOKKOS_LDFLAGS += --gcc-toolchain=$(KOKKOS_INTERNAL_GCC_TOOLCHAIN)
|
||||
endif
|
||||
|
||||
# Don't include Kokkos_HBWSpace.cpp if not using MEMKIND to avoid a link warning.
|
||||
ifneq ($(KOKKOS_INTERNAL_USE_MEMKIND), 1)
|
||||
KOKKOS_SRC := $(filter-out $(KOKKOS_PATH)/core/src/impl/Kokkos_HBWSpace.cpp,$(KOKKOS_SRC))
|
||||
endif
|
||||
|
||||
# Don't include Kokkos_Profiling_Interface.cpp if not using profiling to avoid a link warning.
|
||||
ifeq ($(KOKKOS_INTERNAL_DISABLE_PROFILING), 1)
|
||||
KOKKOS_SRC := $(filter-out $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling_Interface.cpp,$(KOKKOS_SRC))
|
||||
endif
|
||||
|
||||
# Don't include Kokkos_Serial.cpp or Kokkos_Serial_Task.cpp if not using Serial
|
||||
# device to avoid a link warning.
|
||||
ifneq ($(KOKKOS_INTERNAL_USE_SERIAL), 1)
|
||||
KOKKOS_SRC := $(filter-out $(KOKKOS_PATH)/core/src/impl/Kokkos_Serial.cpp,$(KOKKOS_SRC))
|
||||
KOKKOS_SRC := $(filter-out $(KOKKOS_PATH)/core/src/impl/Kokkos_Serial_Task.cpp,$(KOKKOS_SRC))
|
||||
endif
|
||||
|
||||
# With Cygwin functions such as fdopen and fileno are not defined
|
||||
# when strict ansi is enabled. strict ansi gets enabled with --std=c++11
|
||||
# though. So we hard undefine it here. Not sure if that has any bad side effects
|
||||
|
||||
@ -53,11 +53,20 @@ Kokkos_Qthreads_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Qthreads/K
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1)
|
||||
Kokkos_OpenMPexec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMPexec.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMPexec.cpp
|
||||
Kokkos_OpenMP_Exec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp
|
||||
Kokkos_OpenMP_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Task.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Task.cpp
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
|
||||
Kokkos_OpenMPTarget_Exec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp
|
||||
Kokkos_OpenMPTargetSpace.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp
|
||||
#Kokkos_OpenMPTarget_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.cpp
|
||||
# $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.cpp
|
||||
endif
|
||||
|
||||
Kokkos_HBWSpace.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_HBWSpace.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_HBWSpace.cpp
|
||||
|
||||
@ -0,0 +1 @@
|
||||
void KOKKOS_ALGORITHMS_SRC_DUMMY_PREVENT_LINK_ERROR() {}
|
||||
|
||||
@ -674,7 +674,7 @@ namespace Kokkos {
|
||||
const double V = 2.0*drand() - 1.0;
|
||||
S = U*U+V*V;
|
||||
}
|
||||
return U*sqrt(-2.0*log(S)/S);
|
||||
return U*std::sqrt(-2.0*log(S)/S);
|
||||
}
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
@ -923,7 +923,7 @@ namespace Kokkos {
|
||||
const double V = 2.0*drand() - 1.0;
|
||||
S = U*U+V*V;
|
||||
}
|
||||
return U*sqrt(-2.0*log(S)/S);
|
||||
return U*std::sqrt(-2.0*log(S)/S);
|
||||
}
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
@ -1183,7 +1183,7 @@ namespace Kokkos {
|
||||
const double V = 2.0*drand() - 1.0;
|
||||
S = U*U+V*V;
|
||||
}
|
||||
return U*sqrt(-2.0*log(S)/S);
|
||||
return U*std::sqrt(-2.0*log(S)/S);
|
||||
}
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
|
||||
@ -8,7 +8,7 @@ default: build_all
|
||||
echo "End Build"
|
||||
|
||||
ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES)))
|
||||
CXX = $(KOKKOS_PATH)/config/nvcc_wrapper
|
||||
CXX = $(KOKKOS_PATH)/bin/nvcc_wrapper
|
||||
else
|
||||
CXX = g++
|
||||
endif
|
||||
@ -49,16 +49,16 @@ ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1)
|
||||
endif
|
||||
|
||||
KokkosAlgorithms_UnitTest_Cuda: $(OBJ_CUDA) $(KOKKOS_LINK_DEPENDS)
|
||||
$(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_CUDA) $(KOKKOS_LIBS) $(LIB) -o KokkosAlgorithms_UnitTest_Cuda
|
||||
$(LINK) $(EXTRA_PATH) $(OBJ_CUDA) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosAlgorithms_UnitTest_Cuda
|
||||
|
||||
KokkosAlgorithms_UnitTest_Threads: $(OBJ_THREADS) $(KOKKOS_LINK_DEPENDS)
|
||||
$(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_THREADS) $(KOKKOS_LIBS) $(LIB) -o KokkosAlgorithms_UnitTest_Threads
|
||||
$(LINK) $(EXTRA_PATH) $(OBJ_THREADS) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosAlgorithms_UnitTest_Threads
|
||||
|
||||
KokkosAlgorithms_UnitTest_OpenMP: $(OBJ_OPENMP) $(KOKKOS_LINK_DEPENDS)
|
||||
$(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_OPENMP) $(KOKKOS_LIBS) $(LIB) -o KokkosAlgorithms_UnitTest_OpenMP
|
||||
$(LINK) $(EXTRA_PATH) $(OBJ_OPENMP) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosAlgorithms_UnitTest_OpenMP
|
||||
|
||||
KokkosAlgorithms_UnitTest_Serial: $(OBJ_SERIAL) $(KOKKOS_LINK_DEPENDS)
|
||||
$(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_SERIAL) $(KOKKOS_LIBS) $(LIB) -o KokkosAlgorithms_UnitTest_Serial
|
||||
$(LINK) $(EXTRA_PATH) $(OBJ_SERIAL) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosAlgorithms_UnitTest_Serial
|
||||
|
||||
test-cuda: KokkosAlgorithms_UnitTest_Cuda
|
||||
./KokkosAlgorithms_UnitTest_Cuda
|
||||
@ -86,4 +86,3 @@ clean: kokkos-clean
|
||||
|
||||
gtest-all.o:$(GTEST_PATH)/gtest/gtest-all.cc
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $(GTEST_PATH)/gtest/gtest-all.cc
|
||||
|
||||
|
||||
@ -41,7 +41,10 @@
|
||||
//@HEADER
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <Kokkos_Macros.hpp>
|
||||
#ifdef KOKKOS_ENABLE_CUDA
|
||||
|
||||
#include <cstdint>
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
|
||||
@ -49,8 +52,6 @@
|
||||
|
||||
#include <Kokkos_Core.hpp>
|
||||
|
||||
#ifdef KOKKOS_ENABLE_CUDA
|
||||
|
||||
#include <TestRandom.hpp>
|
||||
#include <TestSort.hpp>
|
||||
|
||||
@ -105,6 +106,7 @@ CUDA_SORT_UNSIGNED(171)
|
||||
#undef CUDA_RANDOM_XORSHIFT1024
|
||||
#undef CUDA_SORT_UNSIGNED
|
||||
}
|
||||
|
||||
#else
|
||||
void KOKKOS_ALGORITHMS_UNITTESTS_TESTCUDA_PREVENT_LINK_ERROR() {}
|
||||
#endif /* #ifdef KOKKOS_ENABLE_CUDA */
|
||||
|
||||
|
||||
@ -41,8 +41,11 @@
|
||||
//@HEADER
|
||||
*/
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <Kokkos_Macros.hpp>
|
||||
#ifdef KOKKOS_ENABLE_OPENMP
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <Kokkos_Core.hpp>
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@ -52,7 +55,6 @@
|
||||
|
||||
namespace Test {
|
||||
|
||||
#ifdef KOKKOS_ENABLE_OPENMP
|
||||
class openmp : public ::testing::Test {
|
||||
protected:
|
||||
static void SetUpTestCase()
|
||||
@ -97,6 +99,8 @@ OPENMP_SORT_UNSIGNED(171)
|
||||
#undef OPENMP_RANDOM_XORSHIFT64
|
||||
#undef OPENMP_RANDOM_XORSHIFT1024
|
||||
#undef OPENMP_SORT_UNSIGNED
|
||||
#endif
|
||||
} // namespace test
|
||||
#else
|
||||
void KOKKOS_ALGORITHMS_UNITTESTS_TESTOPENMP_PREVENT_LINK_ERROR() {}
|
||||
#endif
|
||||
|
||||
|
||||
@ -295,7 +295,7 @@ struct test_random_scalar {
|
||||
parallel_reduce (num_draws/1024, functor_type (pool, density_1d, density_3d), result);
|
||||
|
||||
//printf("Result: %lf %lf %lf\n",result.mean/num_draws/3,result.variance/num_draws/3,result.covariance/num_draws/2);
|
||||
double tolerance = 1.6*sqrt(1.0/num_draws);
|
||||
double tolerance = 1.6*std::sqrt(1.0/num_draws);
|
||||
double mean_expect = 0.5*Kokkos::rand<rnd_type,Scalar>::max();
|
||||
double variance_expect = 1.0/3.0*mean_expect*mean_expect;
|
||||
double mean_eps = mean_expect/(result.mean/num_draws/3)-1.0;
|
||||
@ -321,7 +321,7 @@ struct test_random_scalar {
|
||||
typedef test_histogram1d_functor<typename RandomGenerator::device_type> functor_type;
|
||||
parallel_reduce (HIST_DIM1D, functor_type (density_1d, num_draws), result);
|
||||
|
||||
double tolerance = 6*sqrt(1.0/HIST_DIM1D);
|
||||
double tolerance = 6*std::sqrt(1.0/HIST_DIM1D);
|
||||
double mean_expect = 1.0*num_draws*3/HIST_DIM1D;
|
||||
double variance_expect = 1.0*num_draws*3/HIST_DIM1D*(1.0-1.0/HIST_DIM1D);
|
||||
double covariance_expect = -1.0*num_draws*3/HIST_DIM1D/HIST_DIM1D;
|
||||
@ -354,7 +354,7 @@ struct test_random_scalar {
|
||||
typedef test_histogram3d_functor<typename RandomGenerator::device_type> functor_type;
|
||||
parallel_reduce (HIST_DIM1D, functor_type (density_3d, num_draws), result);
|
||||
|
||||
double tolerance = 6*sqrt(1.0/HIST_DIM1D);
|
||||
double tolerance = 6*std::sqrt(1.0/HIST_DIM1D);
|
||||
double mean_expect = 1.0*num_draws/HIST_DIM1D;
|
||||
double variance_expect = 1.0*num_draws/HIST_DIM1D*(1.0-1.0/HIST_DIM1D);
|
||||
double covariance_expect = -1.0*num_draws/HIST_DIM1D/HIST_DIM1D;
|
||||
|
||||
@ -41,6 +41,9 @@
|
||||
//@HEADER
|
||||
*/
|
||||
|
||||
#include <Kokkos_Macros.hpp>
|
||||
#ifdef KOKKOS_ENABLE_SERIAL
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <Kokkos_Core.hpp>
|
||||
@ -55,7 +58,6 @@
|
||||
|
||||
namespace Test {
|
||||
|
||||
#ifdef KOKKOS_ENABLE_SERIAL
|
||||
class serial : public ::testing::Test {
|
||||
protected:
|
||||
static void SetUpTestCase()
|
||||
@ -93,7 +95,9 @@ SERIAL_SORT_UNSIGNED(171)
|
||||
#undef SERIAL_RANDOM_XORSHIFT1024
|
||||
#undef SERIAL_SORT_UNSIGNED
|
||||
|
||||
#endif // KOKKOS_ENABLE_SERIAL
|
||||
} // namespace Test
|
||||
#else
|
||||
void KOKKOS_ALGORITHMS_UNITTESTS_TESTSERIAL_PREVENT_LINK_ERROR() {}
|
||||
#endif // KOKKOS_ENABLE_SERIAL
|
||||
|
||||
|
||||
|
||||
@ -39,8 +39,8 @@
|
||||
// ************************************************************************
|
||||
//@HEADER
|
||||
|
||||
#ifndef TESTSORT_HPP_
|
||||
#define TESTSORT_HPP_
|
||||
#ifndef KOKKOS_ALGORITHMS_UNITTESTS_TESTSORT_HPP
|
||||
#define KOKKOS_ALGORITHMS_UNITTESTS_TESTSORT_HPP
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include<Kokkos_Core.hpp>
|
||||
@ -212,7 +212,12 @@ void test_dynamic_view_sort(unsigned int n )
|
||||
const size_t upper_bound = 2 * n ;
|
||||
|
||||
typename KeyDynamicViewType::memory_pool
|
||||
pool( memory_space() , 2 * n * sizeof(KeyType) );
|
||||
pool( memory_space()
|
||||
, n * sizeof(KeyType) * 1.2
|
||||
, 500 /* min block size in bytes */
|
||||
, 30000 /* max block size in bytes */
|
||||
, 1000000 /* min superblock size in bytes */
|
||||
);
|
||||
|
||||
KeyDynamicViewType keys("Keys",pool,upper_bound);
|
||||
|
||||
@ -272,4 +277,4 @@ void test_sort(unsigned int N)
|
||||
|
||||
}
|
||||
}
|
||||
#endif /* TESTSORT_HPP_ */
|
||||
#endif /* KOKKOS_ALGORITHMS_UNITTESTS_TESTSORT_HPP */
|
||||
|
||||
@ -41,6 +41,9 @@
|
||||
//@HEADER
|
||||
*/
|
||||
|
||||
#include <Kokkos_Macros.hpp>
|
||||
#ifdef KOKKOS_ENABLE_THREADS
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <Kokkos_Core.hpp>
|
||||
@ -55,7 +58,6 @@
|
||||
|
||||
namespace Test {
|
||||
|
||||
#ifdef KOKKOS_ENABLE_PTHREAD
|
||||
class threads : public ::testing::Test {
|
||||
protected:
|
||||
static void SetUpTestCase()
|
||||
@ -107,7 +109,9 @@ THREADS_SORT_UNSIGNED(171)
|
||||
#undef THREADS_RANDOM_XORSHIFT1024
|
||||
#undef THREADS_SORT_UNSIGNED
|
||||
|
||||
#endif
|
||||
} // namespace Test
|
||||
#else
|
||||
void KOKKOS_ALGORITHMS_UNITTESTS_TESTTHREADS_PREVENT_LINK_ERROR() {}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ default: build
|
||||
echo "Start Build"
|
||||
|
||||
ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES)))
|
||||
CXX = ${KOKKOS_PATH}/config/nvcc_wrapper
|
||||
CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper
|
||||
EXE = bytes_and_flops.cuda
|
||||
KOKKOS_DEVICES = "Cuda,OpenMP"
|
||||
KOKKOS_ARCH = "SNB,Kepler35"
|
||||
|
||||
@ -7,7 +7,7 @@ default: build
|
||||
echo "Start Build"
|
||||
|
||||
ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES)))
|
||||
CXX = ${KOKKOS_PATH}/config/nvcc_wrapper
|
||||
CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper
|
||||
EXE = gather.cuda
|
||||
KOKKOS_DEVICES = "Cuda,OpenMP"
|
||||
KOKKOS_ARCH = "SNB,Kepler35"
|
||||
|
||||
18
lib/kokkos/cmake/KokkosConfig.cmake.in
Normal file
18
lib/kokkos/cmake/KokkosConfig.cmake.in
Normal file
@ -0,0 +1,18 @@
|
||||
# - Config file for the Kokkos package
|
||||
# It defines the following variables
|
||||
# Kokkos_INCLUDE_DIRS - include directories for Kokkos
|
||||
# Kokkos_LIBRARIES - libraries to link against
|
||||
|
||||
# Compute paths
|
||||
GET_FILENAME_COMPONENT(Kokkos_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
SET(Kokkos_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")
|
||||
|
||||
# Our library dependencies (contains definitions for IMPORTED targets)
|
||||
IF(NOT TARGET kokkos AND NOT Kokkos_BINARY_DIR)
|
||||
INCLUDE("${Kokkos_CMAKE_DIR}/KokkosTargets.cmake")
|
||||
ENDIF()
|
||||
|
||||
# These are IMPORTED targets created by KokkosTargets.cmake
|
||||
SET(Kokkos_LIBRARY_DIRS @INSTALL_LIB_DIR@)
|
||||
SET(Kokkos_LIBRARIES @Kokkos_LIBRARIES_NAMES@)
|
||||
SET(Kokkos_TPL_LIBRARIES @KOKKOS_LIBS@)
|
||||
20
lib/kokkos/cmake/Modules/FindHWLOC.cmake
Normal file
20
lib/kokkos/cmake/Modules/FindHWLOC.cmake
Normal file
@ -0,0 +1,20 @@
|
||||
#.rst:
|
||||
# FindHWLOC
|
||||
# ----------
|
||||
#
|
||||
# Try to find HWLOC.
|
||||
#
|
||||
# The following variables are defined:
|
||||
#
|
||||
# HWLOC_FOUND - System has HWLOC
|
||||
# HWLOC_INCLUDE_DIR - HWLOC include directory
|
||||
# HWLOC_LIBRARIES - Libraries needed to use HWLOC
|
||||
|
||||
find_path(HWLOC_INCLUDE_DIR hwloc.h)
|
||||
find_library(HWLOC_LIBRARIES hwloc)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(HWLOC DEFAULT_MSG
|
||||
HWLOC_INCLUDE_DIR HWLOC_LIBRARIES)
|
||||
|
||||
mark_as_advanced(HWLOC_INCLUDE_DIR HWLOC_LIBRARIES)
|
||||
20
lib/kokkos/cmake/Modules/FindMemkind.cmake
Normal file
20
lib/kokkos/cmake/Modules/FindMemkind.cmake
Normal file
@ -0,0 +1,20 @@
|
||||
#.rst:
|
||||
# FindMemkind
|
||||
# ----------
|
||||
#
|
||||
# Try to find Memkind.
|
||||
#
|
||||
# The following variables are defined:
|
||||
#
|
||||
# MEMKIND_FOUND - System has Memkind
|
||||
# MEMKIND_INCLUDE_DIR - Memkind include directory
|
||||
# MEMKIND_LIBRARIES - Libraries needed to use Memkind
|
||||
|
||||
find_path(MEMKIND_INCLUDE_DIR memkind.h)
|
||||
find_library(MEMKIND_LIBRARIES memkind)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Memkind DEFAULT_MSG
|
||||
MEMKIND_INCLUDE_DIR MEMKIND_LIBRARIES)
|
||||
|
||||
mark_as_advanced(MEMKIND_INCLUDE_DIR MEMKIND_LIBRARIES)
|
||||
20
lib/kokkos/cmake/Modules/FindQthreads.cmake
Normal file
20
lib/kokkos/cmake/Modules/FindQthreads.cmake
Normal file
@ -0,0 +1,20 @@
|
||||
#.rst:
|
||||
# FindQthreads
|
||||
# ----------
|
||||
#
|
||||
# Try to find Qthreads.
|
||||
#
|
||||
# The following variables are defined:
|
||||
#
|
||||
# QTHREADS_FOUND - System has Qthreads
|
||||
# QTHREADS_INCLUDE_DIR - Qthreads include directory
|
||||
# QTHREADS_LIBRARIES - Libraries needed to use Qthreads
|
||||
|
||||
find_path(QTHREADS_INCLUDE_DIR qthread.h)
|
||||
find_library(QTHREADS_LIBRARIES qthread)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Qthreads DEFAULT_MSG
|
||||
QTHREADS_INCLUDE_DIR QTHREADS_LIBRARIES)
|
||||
|
||||
mark_as_advanced(QTHREADS_INCLUDE_DIR QTHREADS_LIBRARIES)
|
||||
1198
lib/kokkos/cmake/kokkos.cmake
Normal file
1198
lib/kokkos/cmake/kokkos.cmake
Normal file
File diff suppressed because it is too large
Load Diff
@ -60,34 +60,12 @@ Step 2:
|
||||
// -------------------------------------------------------------------------------- //
|
||||
|
||||
Step 3:
|
||||
3.1. Build and test Trilinos with 3 different configurations; a configure-all script is provided in Trilinos and should be modified to test each of the following 3 configurations with appropriate environment variable(s):
|
||||
3.1. Build and test Trilinos with 4 different configurations; Run scripts for white and shepard are provided in kokkos/config/trilinos-integration
|
||||
|
||||
- GCC/4.7.2-OpenMP/Complex
|
||||
Run tests with the following environment variable:
|
||||
Usually its a good idea to run those script via nohup.
|
||||
You can run all four at the same time, use separate directories for each.
|
||||
|
||||
export OMP_NUM_THREADS=2
|
||||
|
||||
|
||||
- Intel/15.0.2-Serial/NoComplex
|
||||
|
||||
|
||||
- GCC/4.8.4/CUDA/7.5.18-Cuda/Serial/NoComplex
|
||||
Run tests with the following environment variables:
|
||||
|
||||
export CUDA_LAUNCH_BLOCKING=1
|
||||
export CUDA_MANAGED_FORCE_DEVICE_ALLOC=1
|
||||
|
||||
|
||||
mkdir Build
|
||||
cd Build
|
||||
cp TRILINOS_PATH/sampleScripts/Sandia-SEMS/configure-all ./
|
||||
** Set the path to Trilinos appropriately within the configure-all script **
|
||||
source $SEMS_MODULE_ROOT/utils/sems-modules-init.sh kokkos
|
||||
source configure-all
|
||||
make -k (-k means "keep going" to get past build errors; -j12 can also be specified to build with 12 threads, for example)
|
||||
ctest
|
||||
|
||||
3.2. Compare the failed test output to the test output on the dashboard ( testing.sandia.gov/cdash select Trilinos ); investigate and fix problems if new tests fail after the Kokkos snapshot
|
||||
3.2. Compare the failed test output between the pristine and the updated runs; investigate and fix problems if new tests fail after the Kokkos snapshot
|
||||
|
||||
// -------------------------------------------------------------------------------- //
|
||||
|
||||
@ -134,7 +112,7 @@ Step 4: Once all Trilinos tests pass promote Kokkos develop branch to master on
|
||||
master: sha1
|
||||
develop: sha1
|
||||
|
||||
git push --follow-tags origin master
|
||||
4.4. Do NOT push yet
|
||||
|
||||
// -------------------------------------------------------------------------------- //
|
||||
|
||||
@ -156,9 +134,15 @@ Step 5:
|
||||
|
||||
python KOKKOS_PATH/config/snapshot.py KOKKOS_PATH TRILINOS_PATH/packages
|
||||
|
||||
5.3. Push the updated develop branch of Trilinos to Github - congratulations!!!
|
||||
5.3. Run checkin-test to push to trilinos using the CI build modules (gcc/4.9.3)
|
||||
|
||||
(From Trilinos directory):
|
||||
git push
|
||||
The modules are listed in kokkos/config/trilinos-integration/checkin-test
|
||||
Run checkin-test, forward dependencies and optional dependencies must be enabled
|
||||
If push failed because someone else clearly broke something, push manually.
|
||||
If push failed for unclear reasons, investigate, fix, and potentially start over from step 2 after reseting your local kokkos/master branch
|
||||
|
||||
Step 6: Push Kokkos to master
|
||||
|
||||
git push --follow-tags origin master
|
||||
|
||||
// -------------------------------------------------------------------------------- //
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
# module load cmake/2.8.11.2 gcc/4.8.3 cuda/6.5.14 nvcc-wrapper/gnu
|
||||
#
|
||||
# The 'nvcc-wrapper' module should load a script that matches
|
||||
# kokkos/config/nvcc_wrapper
|
||||
# kokkos/bin/nvcc_wrapper
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
# Source and installation directories:
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
# module load cmake/2.8.11.2 gcc/4.8.3 cuda/6.5.14 nvcc-wrapper/gnu
|
||||
#
|
||||
# The 'nvcc-wrapper' module should load a script that matches
|
||||
# kokkos/config/nvcc_wrapper
|
||||
# kokkos/bin/nvcc_wrapper
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
# Source and installation directories:
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
# module load cmake/2.8.11.2 gcc/4.8.3 cuda/6.5.14 nvcc-wrapper/gnu
|
||||
#
|
||||
# The 'nvcc-wrapper' module should load a script that matches
|
||||
# kokkos/config/nvcc_wrapper
|
||||
# kokkos/bin/nvcc_wrapper
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
# Source and installation directories:
|
||||
|
||||
@ -6,3 +6,4 @@ tag: 2.02.01 date: 11:01:2016 master: 9c698c86 develop: b0072304
|
||||
tag: 2.02.07 date: 12:16:2016 master: 4b4cc4ba develop: 382c0966
|
||||
tag: 2.02.15 date: 02:10:2017 master: 8c64cd93 develop: 28dea8b6
|
||||
tag: 2.03.00 date: 04:25:2017 master: 120d9ce7 develop: 015ba641
|
||||
tag: 2.03.05 date: 05:27:2017 master: 36b92f43 develop: 79073186
|
||||
|
||||
@ -27,7 +27,7 @@ import subprocess, argparse, re, doctest, os, datetime, traceback
|
||||
def parse_cmdline(description):
|
||||
parser = argparse.ArgumentParser(usage="snapshot.py [options] source destination", description=description)
|
||||
|
||||
parser.add_argument("-n", "--no-comit", action="store_false", dest="create_commit", default=True,
|
||||
parser.add_argument("-n", "--no-commit", action="store_false", dest="create_commit", default=True,
|
||||
help="Do not perform a commit or create a commit message.")
|
||||
parser.add_argument("-v", "--verbose", action="store_true", dest="verbose_mode", default=False,
|
||||
help="Enable verbose mode.")
|
||||
@ -39,6 +39,8 @@ def parse_cmdline(description):
|
||||
help="Type of repository of the source, use none to skip all repository operations.")
|
||||
parser.add_argument("--dest-repo", choices=["git","none"], default="",
|
||||
help="Type of repository of the destination, use none to skip all repository operations.")
|
||||
parser.add_argument("--small", action="store_true", dest="small_mode",
|
||||
help="Don't include tests and other extra files when copying.")
|
||||
|
||||
parser.add_argument("source", help="Source project to snapshot from.")
|
||||
parser.add_argument("destination", help="Destination to snapshot too.")
|
||||
@ -60,7 +62,7 @@ def validate_options(options):
|
||||
options.destination = os.path.abspath(options.destination)
|
||||
|
||||
if os.path.exists(options.source):
|
||||
apparent_source_repo_type, source_root = deterimine_repo_type(options.source)
|
||||
apparent_source_repo_type, source_root = determine_repo_type(options.source)
|
||||
else:
|
||||
raise RuntimeError("Could not find source directory of %s." % options.source)
|
||||
options.source_root = source_root
|
||||
@ -69,7 +71,7 @@ def validate_options(options):
|
||||
print "Could not find destination directory of %s so it will be created." % options.destination
|
||||
os.makedirs(options.destination)
|
||||
|
||||
apparent_dest_repo_type, dest_root = deterimine_repo_type(options.destination)
|
||||
apparent_dest_repo_type, dest_root = determine_repo_type(options.destination)
|
||||
options.dest_root = dest_root
|
||||
|
||||
#error on svn repo types for now
|
||||
@ -119,7 +121,7 @@ def run_cmd(cmd, options, working_dir="."):
|
||||
return proc_stdout, proc_stderr
|
||||
#end run_cmd
|
||||
|
||||
def deterimine_repo_type(location):
|
||||
def determine_repo_type(location):
|
||||
apparent_repo_type = "none"
|
||||
|
||||
while location != "":
|
||||
@ -133,16 +135,32 @@ def deterimine_repo_type(location):
|
||||
location = location[:location.rfind(os.sep)]
|
||||
|
||||
return apparent_repo_type, location
|
||||
|
||||
#end deterimine_repo_type
|
||||
#end determine_repo_type
|
||||
|
||||
def rsync(source, dest, options):
|
||||
rsync_cmd = ["rsync", "-ar", "--delete"]
|
||||
if options.debug_mode:
|
||||
rsync_cmd.append("-v")
|
||||
|
||||
if options.small_mode or options.source_repo == "git":
|
||||
rsync_cmd.append("--delete-excluded")
|
||||
|
||||
if options.small_mode:
|
||||
rsync_cmd.append("--include=config/master_history.txt")
|
||||
rsync_cmd.append("--include=cmake/tpls")
|
||||
rsync_cmd.append("--exclude=benchmarks/")
|
||||
rsync_cmd.append("--exclude=config/*")
|
||||
rsync_cmd.append("--exclude=doc/")
|
||||
rsync_cmd.append("--exclude=example/")
|
||||
rsync_cmd.append("--exclude=tpls/")
|
||||
rsync_cmd.append("--exclude=HOW_TO_SNAPSHOT")
|
||||
rsync_cmd.append("--exclude=unit_test")
|
||||
rsync_cmd.append("--exclude=unit_tests")
|
||||
rsync_cmd.append("--exclude=perf_test")
|
||||
rsync_cmd.append("--exclude=performance_tests")
|
||||
|
||||
if options.source_repo == "git":
|
||||
rsync_cmd.append("--exclude=.git")
|
||||
rsync_cmd.append("--exclude=.git*")
|
||||
|
||||
rsync_cmd.append(options.source)
|
||||
rsync_cmd.append(options.destination)
|
||||
@ -192,7 +210,6 @@ def find_git_commit_information(options):
|
||||
source_name = source_name[:-1]
|
||||
|
||||
return commit_id, commit_log, source_name, source_location
|
||||
|
||||
#end find_git_commit_information
|
||||
|
||||
def do_git_commit(message, options):
|
||||
@ -223,7 +240,6 @@ def verify_git_repo_clean(location, options):
|
||||
print "WARNING: %s is not clean. Proceeding anyway." % location
|
||||
print "WARNING: This could lead to differences in the source and destination."
|
||||
print "WARNING: It could also lead to extra files being included in the snapshot commit."
|
||||
|
||||
#end verify_git_repo_clean
|
||||
|
||||
def main(options):
|
||||
@ -256,10 +272,6 @@ def main(options):
|
||||
cwd = os.getcwd()
|
||||
print "No commit done by request. Please use file at:"
|
||||
print "%s%sif you wish to commit this to a repo later." % (cwd+"/"+file_name, os.linesep)
|
||||
|
||||
|
||||
|
||||
|
||||
#end main
|
||||
|
||||
if (__name__ == "__main__"):
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user