|
@ -54,9 +54,10 @@ local quantities have the word "local" in their style,
|
|||
e.g. {bond/local}. Styles with neither "atom" or "local" in their
|
||||
style produce global quantities.
|
||||
|
||||
Note that a single compute produces either global or per-atom or local
|
||||
quantities, but never more than one of these (with only a few
|
||||
exceptions, as documented by individual compute commands).
|
||||
Note that a single compute can produce either global or per-atom or
|
||||
local quantities, but not both global and per-atom. It can produce
|
||||
local quantities in tandem with global or per-atom quantities. The
|
||||
compute doc page will explain.
|
||||
|
||||
Global, per-atom, and local quantities each come in three kinds: a
|
||||
single scalar value, a vector of values, or a 2d array of values. The
|
||||
|
|
|
@ -83,8 +83,10 @@ not in the specified fix group. Local quantities are calculated by
|
|||
each processor based on the atoms it owns, but there may be zero or
|
||||
more per atoms.
|
||||
|
||||
Note that a single fix may produces either global or per-atom or local
|
||||
quantities (or none at all), but never more than one of these.
|
||||
Note that a single fix can produce either global or per-atom or local
|
||||
quantities (or none at all), but not both global and per-atom. It can
|
||||
produce local quantities in tandem with global or per-atom quantities.
|
||||
The fix doc page will explain.
|
||||
|
||||
Global, per-atom, and local quantities each come in three kinds: a
|
||||
single scalar value, a vector of values, or a 2d array of values. The
|
||||
|
|
|
@ -35,6 +35,7 @@ keyword = {mode} or {file} or {ave} or {start} or {beyond} or {overwrite} or {ti
|
|||
{mode} arg = {scalar} or {vector}
|
||||
scalar = all input values are scalars
|
||||
vector = all input values are vectors
|
||||
{kind} arg = {global} or {peratom} or {local}
|
||||
{file} arg = filename
|
||||
filename = name of file to output histogram(s) to
|
||||
{ave} args = {one} or {running} or {window}
|
||||
|
@ -92,7 +93,8 @@ either all global, all per-atom, or all local quantities. Inputs of
|
|||
different kinds (e.g. global and per-atom) cannot be mixed. Atom
|
||||
attributes are per-atom vector values. See the doc page for
|
||||
individual "compute" and "fix" commands to see what kinds of
|
||||
quantities they generate.
|
||||
quantities they generate. See the optional {kind} keyword below for
|
||||
how to force the fix ave/histo command to disambiguate if necessary.
|
||||
|
||||
Note that the output of this command is a single histogram for all
|
||||
input values combined together, not one histogram per input value.
|
||||
|
@ -231,6 +233,14 @@ keyword is set to {vector}, then all input values must be global or
|
|||
per-atom or local vectors, or columns of global or per-atom or local
|
||||
arrays.
|
||||
|
||||
The {kind} keyword only needs to be set if a compute or fix produces
|
||||
more than one kind of output (global, per-atom, local). If this is
|
||||
not the case, then LAMMPS will determine what kind of input is
|
||||
provided and whether all the input arguments are consistent. If a
|
||||
compute or fix produces more than one kind of output, the {kind}
|
||||
keyword should be used to specify which output will be used. The
|
||||
remaining input arguments must still be consistent.
|
||||
|
||||
The {beyond} keyword determines how input values that fall outside the
|
||||
{lo} to {hi} bounds are treated. Values such that {lo} <= value <=
|
||||
{hi} are assigned to one bin. Values on a bin boundary are assigned
|
||||
|
@ -240,7 +250,7 @@ If {beyond} is set to {end} then values < {lo} are counted in the
|
|||
first bin and values > {hi} are counted in the last bin. If {beyond}
|
||||
is set to {extend} then two extra bins are created, so that there are
|
||||
Nbins+2 total bins. Values < {lo} are counted in the first bin and
|
||||
values > {hi} are counted in the last bin (Nbins+1). Values between
|
||||
values > {hi} are counted in the last bin (Nbins+2). Values between
|
||||
{lo} and {hi} (inclusive) are counted in bins 2 through Nbins+1. The
|
||||
"coordinate" stored and printed for these two extra bins is {lo} and
|
||||
{hi}.
|
||||
|
@ -354,5 +364,6 @@ ave/chunk"_fix_ave_chunk.html, "fix ave/time"_fix_ave_time.html,
|
|||
|
||||
[Default:] none
|
||||
|
||||
The option defaults are mode = scalar, ave = one, start = 0, no file
|
||||
output, beyond = ignore, and title 1,2,3 = strings as described above.
|
||||
The option defaults are mode = scalar, kind = figured out from input
|
||||
arguments, ave = one, start = 0, no file output, beyond = ignore, and
|
||||
title 1,2,3 = strings as described above.
|
||||
|
|
|
@ -102,7 +102,7 @@ Bi = exp(beta * Vij(max)) :pre
|
|||
where beta = 1/kTequil, and {Tequil} is the temperature of the system
|
||||
and an argument to this fix. Note that Bi >= 1 at every step.
|
||||
|
||||
NOTE: To run GHD, the input script must also use the "fix
|
||||
NOTE: To run a GHD simulation, the input script must also use the "fix
|
||||
langevin"_fix_langevin.html command to thermostat the atoms at the
|
||||
same {Tequil} as specified by this fix, so that the system is running
|
||||
constant-temperature (NVT) dynamics. LAMMPS does not check that this
|
||||
|
@ -166,9 +166,9 @@ correctly. There will just be fewer events because the hyper time
|
|||
|
||||
NOTE: If you have no physical intuition as to the smallest barrier
|
||||
height in your system, a reasonable strategy to determine the largest
|
||||
{Vmax} you can use for an LHD model, is to run a sequence of
|
||||
{Vmax} you can use for a GHD model, is to run a sequence of
|
||||
simulations with smaller and smaller {Vmax} values, until the event
|
||||
rate does not change.
|
||||
rate does not change (as a function of hyper time).
|
||||
|
||||
The {Tequil} argument is the temperature at which the system is
|
||||
simulated; see the comment above about the "fix
|
||||
|
@ -177,7 +177,8 @@ beta term in the exponential factor that determines how much boost is
|
|||
achieved as a function of the bias potential.
|
||||
|
||||
In general, the lower the value of {Tequil} and the higher the value
|
||||
of {Vmax}, the more boost will be achievable by the GHD algorithm.
|
||||
of {Vmax}, the more time boost will be achievable by the GHD
|
||||
algorithm.
|
||||
|
||||
:line
|
||||
|
||||
|
@ -190,41 +191,43 @@ The "fix_modify"_fix_modify.html {energy} option is supported by this
|
|||
fix to add the energy of the bias potential to the the system's
|
||||
potential energy as part of "thermodynamic output"_thermo_style.html.
|
||||
|
||||
This fix computes a global scalar and global vector of length 11, which
|
||||
This fix computes a global scalar and global vector of length 12, which
|
||||
can be accessed by various "output commands"_Howto_output.html. The
|
||||
scalar is the magnitude of the bias potential (energy units) applied on
|
||||
the current timestep. The vector stores the following quantities:
|
||||
|
||||
1 = boost factor on this step (unitless)
|
||||
2 = max strain Eij of any bond on this step (unitless)
|
||||
2 = max strain Eij of any bond on this step (absolute value, unitless)
|
||||
3 = ID of first atom in the max-strain bond
|
||||
4 = ID of second atom in the max-strain bond
|
||||
5 = average # of bonds/atom on this step :ul
|
||||
|
||||
6 = fraction of timesteps with bias = 0.0 during this run
|
||||
7 = max drift distance of any atom during this run (distance units)
|
||||
8 = max bond length during this run (distance units) :ul
|
||||
6 = fraction of timesteps where the biased bond has bias = 0.0 during this run
|
||||
7 = fraction of timesteps where the biased bond has negative strain during this run
|
||||
8 = max drift distance of any atom during this run (distance units)
|
||||
9 = max bond length during this run (distance units) :ul
|
||||
|
||||
9 = cumulative hyper time since fix was defined (time units)
|
||||
10 = cumulative count of event timesteps since fix was defined
|
||||
11 = cumulative count of atoms in events since fix was defined :ul
|
||||
10 = cumulative hyper time since fix was defined (time units)
|
||||
11 = cumulative count of event timesteps since fix was defined
|
||||
12 = cumulative count of atoms in events since fix was defined :ul
|
||||
|
||||
The first 5 quantities are for the current timestep. Quantities 6-8
|
||||
are for the current hyper run. Quantities 9-11 are cumulative across
|
||||
multiple runs (since the fix was defined in the input script).
|
||||
The first 5 quantities are for the current timestep. Quantities 6-9
|
||||
are for the current hyper run. They are reset each time a new hyper
|
||||
run is performed. Quantities 19-12 are cumulative across multiple
|
||||
runs (since the point in the input script the fix was defined).
|
||||
|
||||
For value 7, drift is the distance an atom moves between timesteps
|
||||
when the bond list is reset, i.e. between events. Atoms involved in
|
||||
an event will typically move the greatest distance since others are
|
||||
typically oscillating around their lattice site.
|
||||
For value 8, drift is the distance an atom moves between two quenched
|
||||
states when the second quench determines an event has occurred. Atoms
|
||||
involved in an event will typically move the greatest distance since
|
||||
others typically remain near their original quenched position.
|
||||
|
||||
For value 10, events are checked for by the "hyper"_hyper.html command
|
||||
For value 11, events are checked for by the "hyper"_hyper.html command
|
||||
once every {Nevent} timesteps. This value is the count of those
|
||||
timesteps on which one (or more) events was detected. It is NOT the
|
||||
number of distinct events, since more than one event may occur in the
|
||||
same {Nevent} time window.
|
||||
|
||||
For value 11, each time the "hyper"_hyper.html command checks for an
|
||||
For value 12, each time the "hyper"_hyper.html command checks for an
|
||||
event, it invokes a compute to flag zero or more atoms as
|
||||
participating in one or more events. E.g. atoms that have displaced
|
||||
more than some distance from the previous quench state. Value 11 is
|
||||
|
|
|
@ -22,10 +22,9 @@ Dcut = minimum distance between boosted bonds (distance units) :l
|
|||
alpha = boostostat relaxation time (time units) :l
|
||||
Btarget = desired time boost factor (unitless) :l
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {lost} or {check/bias} or {check/coeff}
|
||||
{lostbond} value = error/warn/ignore
|
||||
{check/bias} values = Nevery error/warn/ignore
|
||||
{check/coeff} values = Nevery error/warn/ignore :pre
|
||||
keyword = {check/ghost} or {check/bias} :l
|
||||
{check/ghost} values = none
|
||||
{check/bias} values = Nevery error/warn/ignore :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
@ -65,8 +64,8 @@ To understand this description, you should first read the description
|
|||
of the GHD algorithm on the "fix hyper/global"_fix_hyper_global.html
|
||||
doc page. This description of LHD builds on the GHD description.
|
||||
|
||||
The definition of bonds, Eij, and Emax are the same for GHD and LHD.
|
||||
The formulas for Vij(max) and Fij(max) are also the same except for a
|
||||
The definition of bonds and Eij are the same for GHD and LHD. The
|
||||
formulas for Vij(max) and Fij(max) are also the same except for a
|
||||
pre-factor Cij, explained below.
|
||||
|
||||
The bias energy Vij applied to a bond IJ with maximum strain is
|
||||
|
@ -117,11 +116,11 @@ where Vkl(max) is the bias energy of the maxstrain bond KL within bond
|
|||
IJ's neighborhood, beta = 1/kTequil, and {Tequil} is the temperature
|
||||
of the system and an argument to this fix.
|
||||
|
||||
NOTE: To run LHD, the input script must also use the "fix
|
||||
langevin"_fix_langevin.html command to thermostat the atoms at the
|
||||
same {Tequil} as specified by this fix, so that the system is running
|
||||
constant-temperature (NVT) dynamics. LAMMPS does not check that this
|
||||
is done.
|
||||
NOTE: To run an LHD simulation, the input script must also use the
|
||||
"fix langevin"_fix_langevin.html command to thermostat the atoms at
|
||||
the same {Tequil} as specified by this fix, so that the system is
|
||||
running constant-temperature (NVT) dynamics. LAMMPS does not check
|
||||
that this is done.
|
||||
|
||||
Note that if IJ = KL, then bond IJ is a biased bond on that timestep,
|
||||
otherwise it is not. But regardless, the boost factor Bij can be
|
||||
|
@ -216,20 +215,20 @@ each pair. E.g. something like 2x the cutoff of the interatomic
|
|||
potential. In practice a {Dcut} value of ~10 Angstroms seems to work
|
||||
well for many solid-state systems.
|
||||
|
||||
NOTE: You must also insure that ghost atom communication is performed
|
||||
for a distance of at least {Dcut} + {cutevent} where {cutevent} = the
|
||||
distance one or more atoms move (between quenched states) to be
|
||||
considered an "event". It is an argument to the "compute
|
||||
event/displace" command used to detect events. By default the ghost
|
||||
communication distance is set by the pair_style cutoff, which will
|
||||
typically be < {Dcut}. The "comm_modify cutoff"_comm_modify.html
|
||||
command can be used to set the ghost cutoff explicitly, e.g.
|
||||
NOTE: You should insure that ghost atom communication is performed for
|
||||
a distance of at least {Dcut} + {cutevent} = the distance one or more
|
||||
atoms move (between quenched states) to be considered an "event". It
|
||||
is an argument to the "compute event/displace" command used to detect
|
||||
events. By default the ghost communication distance is set by the
|
||||
pair_style cutoff, which will typically be < {Dcut}. The "comm_modify
|
||||
cutoff"_comm_modify.html command should be used to override the ghost
|
||||
cutoff explicitly, e.g.
|
||||
|
||||
comm_modify cutoff 12.0 :pre
|
||||
|
||||
This fix does not know the {cutevent} parameter, but uses half the
|
||||
bond length as an estimate to warn if the ghost cutoff is not long
|
||||
enough.
|
||||
Note that this fix does not know the {cutevent} parameter, but uses
|
||||
half the {cutbond} parameter as an estimate to warn if the ghost
|
||||
cutoff is not long enough.
|
||||
|
||||
As described above the {alpha} argument is a pre-factor in the
|
||||
boostostat update equation for each bond's Cij prefactor. {Alpha} is
|
||||
|
@ -269,7 +268,30 @@ NOTE: If you have no physical intuition as to the smallest barrier
|
|||
height in your system, a reasonable strategy to determine the largest
|
||||
{Btarget} you can use for an LHD model, is to run a sequence of
|
||||
simulations with smaller and smaller {Btarget} values, until the event
|
||||
rate does not change.
|
||||
rate does not change (as a function of hyper time).
|
||||
|
||||
:line
|
||||
|
||||
Here is additional information on the optional keywords for this fix.
|
||||
|
||||
The {check/ghost} keyword turns on extra computation each timestep to
|
||||
compute statistics about ghost atoms used to determine which bonds to
|
||||
bias. The output of these stats are the vector values 14 and 15,
|
||||
described below. If this keyword is not enabled, the output
|
||||
of the stats will be zero.
|
||||
|
||||
The {check/bias} keyword turns on extra computation and communication
|
||||
to check if any biased bonds are closer than {Dcut} to each other,
|
||||
which should not be the case if LHD is operating correctly. Thus it
|
||||
is a debugging check. The {Nevery} setting determines how often the
|
||||
check is made. The {error}, {warn}, or {ignore} setting determines
|
||||
what is done if the count of too-close bonds is not zero. Either the
|
||||
code will exit, or issue a warning, or silently tally the count. The
|
||||
count can be output as vector value 17, as described below. If this
|
||||
keyword is not enabled, the output of that statistic will be 0.
|
||||
|
||||
Note that both of these computations are costly, hence they are only
|
||||
enabled by these keywords.
|
||||
|
||||
:line
|
||||
|
||||
|
@ -282,95 +304,120 @@ The "fix_modify"_fix_modify.html {energy} option is supported by this
|
|||
fix to add the energy of the bias potential to the the system's
|
||||
potential energy as part of "thermodynamic output"_thermo_style.html.
|
||||
|
||||
This fix computes a global scalar and global vector of length 23,
|
||||
which can be accessed by various "output
|
||||
commands"_Howto_output.html. The scalar is the magnitude of
|
||||
the bias potential (energy units) applied on the current timestep,
|
||||
summed over all biased bonds. The vector stores the following
|
||||
quantities:
|
||||
This fix computes a global scalar and global vector of length 21,
|
||||
which can be accessed by various "output commands"_Howto_output.html.
|
||||
The scalar is the magnitude of the bias potential (energy units)
|
||||
applied on the current timestep, summed over all biased bonds. The
|
||||
vector stores the following quantities:
|
||||
|
||||
1 = # of biased bonds on this step
|
||||
2 = max strain Eij of any bond on this step (unitless)
|
||||
3 = average bias potential for all biased bonds on this step (energy units)
|
||||
2 = max strain Eij of any bond on this step (absolute value, unitless)
|
||||
3 = average bias coeff for all bonds on this step (unitless)
|
||||
4 = average # of bonds/atom on this step
|
||||
5 = average neighbor bonds/bond on this step within {Dcut} :ul
|
||||
|
||||
6 = fraction of steps and bonds with no bias during this run
|
||||
7 = max drift distance of any atom during this run (distance units)
|
||||
8 = max bond length during this run (distance units)
|
||||
9 = average # of biased bonds/step during this run
|
||||
10 = average bias potential for all biased bonds during this run (energy units)
|
||||
11 = max bias potential for any biased bond during this run (energy units)
|
||||
12 = min bias potential for any biased bond during this run (energy units)
|
||||
13 = max distance from my sub-box of any ghost atom with maxstrain < qfactor during this run (distance units)
|
||||
14 = max distance outside my box of any ghost atom with any maxstrain during this run (distance units)
|
||||
15 = count of ghost neighbor atoms not found on reneighbor steps during this run
|
||||
16 = count of lost bond partners during this run
|
||||
17 = average bias coeff for lost bond partners during this run
|
||||
18 = count of bias overlaps found during this run
|
||||
19 = count of non-matching bias coefficients found during this run :ul
|
||||
6 = max bond length during this run (distance units)
|
||||
7 = average # of biased bonds/step during this run
|
||||
8 = fraction of biased bonds with no bias during this run
|
||||
9 = fraction of biased bonds with negative strain during this run
|
||||
10 = average bias coeff for all bonds during this run (unitless)
|
||||
11 = min bias coeff for any bond during this run (unitless)
|
||||
12 = max bias coeff for any bond during this run (unitless)
|
||||
|
||||
20 = cumulative hyper time since fix created (time units)
|
||||
21 = cumulative count of event timesteps since fix created
|
||||
22 = cumulative count of atoms in events since fix created
|
||||
23 = cumulative # of new bonds since fix created :ul
|
||||
13 = max drift distance of any bond atom during this run (distance units)
|
||||
14 = max distance from proc subbox of any ghost atom with maxstrain < qfactor during this run (distance units)
|
||||
15 = max distance outside my box of any ghost atom with any maxstrain during this run (distance units)
|
||||
16 = count of ghost atoms that could not be found on reneighbor steps during this run
|
||||
17 = count of bias overlaps (< Dcut) found during this run
|
||||
|
||||
18 = cumulative hyper time since fix created (time units)
|
||||
19 = cumulative count of event timesteps since fix created
|
||||
20 = cumulative count of atoms in events since fix created
|
||||
21 = cumulative # of new bonds formed since fix created :ul
|
||||
|
||||
The first quantities (1-5) are for the current timestep. Quantities
|
||||
6-19 are for the current hyper run. They are reset each time a new
|
||||
hyper run is performed. Quantities 20-23 are cumulative across
|
||||
multiple runs (since the fix was defined in the input script).
|
||||
6-17 are for the current hyper run. They are reset each time a new
|
||||
hyper run is performed. Quantities 18-21 are cumulative across
|
||||
multiple runs (since the point in the input script the fix was
|
||||
defined).
|
||||
|
||||
For value 6, the numerator is a count of all biased bonds on every
|
||||
For value 8, the numerator is a count of all biased bonds on each
|
||||
timestep whose bias energy = 0.0 due to Eij >= {qfactor}. The
|
||||
denominator is the count of all biased bonds on all timesteps.
|
||||
|
||||
For value 7, drift is the distance an atom moves between timesteps
|
||||
when the bond list is reset, i.e. between events. Atoms involved in
|
||||
an event will typically move the greatest distance since others are
|
||||
typically oscillating around their lattice site.
|
||||
For value 9, the numerator is a count of all biased bonds on each
|
||||
timestep with negative strain. The denominator is the count of all
|
||||
biased bonds on all timesteps.
|
||||
|
||||
For values 13 and 14, the maxstrain of a ghost atom is the maxstrain
|
||||
of any bond it is part of, and it is checked for ghost atoms within
|
||||
the bond neighbor cutoff.
|
||||
Values 13-17 are mostly useful for debugging and diagnostic purposes.
|
||||
|
||||
Values 15-19 are mostly useful for debugging and diagnostic purposes.
|
||||
For value 13, drift is the distance an atom moves between two quenched
|
||||
states when the second quench determines an event has occurred. Atoms
|
||||
involved in an event will typically move the greatest distance since
|
||||
others typically remain near their original quenched position.
|
||||
|
||||
For values 15-17, it is possible that a ghost atom owned by another
|
||||
processor will move far enough (e.g. as part of an event-in-progress)
|
||||
that it will no longer be within the communication cutoff distance for
|
||||
acquiring ghost atoms. Likewise it may be a ghost atom bond partner
|
||||
that cannot be found because it has moved too far. These values count
|
||||
those occurrences. Because they typically involve atoms that are part
|
||||
of events, they do not usually indicate bad dynamics. Value 16 is the
|
||||
average bias coefficient for bonds where a partner atom was lost.
|
||||
For values 14-16, neighbor atoms in the full neighbor list with cutoff
|
||||
{Dcut} may be ghost atoms outside a processor's sub-box. Before the
|
||||
next event occurs they may move further than {Dcut} away from the
|
||||
sub-box boundary. Value 14 is the furthest (from the sub-box) any
|
||||
ghost atom in the neighbor list with maxstrain < {qfactor} was
|
||||
accessed during the run. Value 15 is the same except that the ghost
|
||||
atom's maxstrain may be >= {qfactor}, which may mean it is about to
|
||||
participate in an event. Value 16 is a count of how many ghost atoms
|
||||
could not be found on reneighbor steps, presumably because they moved
|
||||
too far away due to their participation in an event (which will likely
|
||||
be detected at the next quench).
|
||||
|
||||
For value 18, no two bonds should be biased if they are within a
|
||||
Typical values for 14 and 15 should be slightly larger than {Dcut},
|
||||
which accounts for ghost atoms initially at a {Dcut} distance moving
|
||||
thermally before the next event takes place.
|
||||
|
||||
Note that for values 14 and 15 to be computed, the optional keyword
|
||||
{check/ghost} must be specified. Otherwise these values will be zero.
|
||||
This is because computing them incurs overhead, so the values are only
|
||||
computed if requested.
|
||||
|
||||
Value 16 should be zero or small. As explained above a small count
|
||||
likely means some ghost atoms were participating in their own events
|
||||
and moved a longer distance. If the value is large, it likely means
|
||||
the communication cutoff for ghosts is too close to {Dcut} leading to
|
||||
many not-found ghost atoms before the next event. This may lead to a
|
||||
reduced number of bonds being selected for biasing, since the code
|
||||
assumes those atoms are part of highly strained bonds. As explained
|
||||
above, the "comm_modify cutoff"_comm_modify.html command can be used
|
||||
to set a longer cutoff.
|
||||
|
||||
For value 17, no two bonds should be biased if they are within a
|
||||
{Dcut} distance of each other. This value should be zero, indicating
|
||||
that no pair of bonds "overlap", meaning they are closer than {Dcut}
|
||||
from each other.
|
||||
that no pair of biased bonds are closer than {Dcut} from each other.
|
||||
|
||||
For value 19, the same bias coefficient is stored by both atoms in an
|
||||
IJ bond. This value should be zero, indicating that for all bonds,
|
||||
each atom in the bond stores the a bias coefficient with the same
|
||||
value.
|
||||
Note that for values 17 to be computed, the optional keyword
|
||||
{check/bias} must be specified and it determines how often this check
|
||||
is performed. This is because performing the check incurs overhead,
|
||||
so if only computed as often as requested.
|
||||
|
||||
Value 20 is simply the specified {boost} factor times the number of
|
||||
timestep times the timestep size.
|
||||
The result at the end of the run is the cumulative total from every
|
||||
timestep the check was made. Note that the value is a count of atoms
|
||||
in bonds which found other atoms in bonds too close, so it is almost
|
||||
always an over-count of the number of too-close bonds.
|
||||
|
||||
For value 21, events are checked for by the "hyper"_hyper.html command
|
||||
Value 18 is simply the specified {boost} factor times the number of
|
||||
timesteps times the timestep size.
|
||||
|
||||
For value 19, events are checked for by the "hyper"_hyper.html command
|
||||
once every {Nevent} timesteps. This value is the count of those
|
||||
timesteps on which one (or more) events was detected. It is NOT the
|
||||
number of distinct events, since more than one event may occur in the
|
||||
same {Nevent} time window.
|
||||
|
||||
For value 22, each time the "hyper"_hyper.html command checks for an
|
||||
For value 20, each time the "hyper"_hyper.html command checks for an
|
||||
event, it invokes a compute to flag zero or more atoms as
|
||||
participating in one or more events. E.g. atoms that have displaced
|
||||
more than some distance from the previous quench state. Value 22 is
|
||||
more than some distance from the previous quench state. Value 20 is
|
||||
the cumulative count of the number of atoms participating in any of
|
||||
the events that were found.
|
||||
|
||||
Value 23 tallies the number of new bonds created by the bond reset
|
||||
Value 21 tallies the number of new bonds created by the bond reset
|
||||
operation. Bonds between a specific I,J pair of atoms may persist for
|
||||
the entire hyperdynamics simulation if neither I or J are involved in
|
||||
an event.
|
||||
|
@ -378,6 +425,16 @@ an event.
|
|||
The scalar and vector values calculated by this fix are all
|
||||
"intensive".
|
||||
|
||||
This fix also computes a local vector of length the number of bonds
|
||||
currently in the system. The value for each bond is its Cij prefactor
|
||||
(bias coefficient). These values can be can be accessed by various
|
||||
"output commands"_Howto_output.html. A particularly useful one is the
|
||||
"fix ave/histo"_fix_ave_histo.html command which can be used to
|
||||
histogram the Cij values to see if they are distributed reasonably
|
||||
close to 1.0, which indicates a good choice of {Vmax}.
|
||||
|
||||
The local values calculated by this fix are unitless.
|
||||
|
||||
No parameter of this fix can be used with the {start/stop} keywords of
|
||||
the "run"_run.html command. This fix is not invoked during "energy
|
||||
minimization"_minimize.html.
|
||||
|
@ -392,7 +449,9 @@ doc page for more info.
|
|||
|
||||
"hyper"_hyper.html, "fix hyper/global"_fix_hyper_global.html
|
||||
|
||||
[Default:] None
|
||||
[Default:]
|
||||
|
||||
The check/ghost and check/bias keywords are not enabled by default.
|
||||
|
||||
:line
|
||||
|
||||
|
|
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 70 KiB |
|
@ -12,6 +12,8 @@ variable cutevent index 1.1
|
|||
variable steps index 100000
|
||||
variable nevent index 1000
|
||||
variable zoom index 1.8
|
||||
variable seed index 826626413
|
||||
variable tol index 1.0e-15
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
@ -45,7 +47,7 @@ neighbor 0.5 bin
|
|||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 mobile nve
|
||||
fix 2 mobile langevin ${Tequil} ${Tequil} 1.0 858872873 zero yes
|
||||
fix 2 mobile langevin ${Tequil} ${Tequil} 1.0 ${seed} zero yes
|
||||
|
||||
timestep 0.005
|
||||
|
||||
|
@ -92,4 +94,4 @@ dump_modify 1 pad 6 amap 1 3 sa 1 3 blue red green
|
|||
|
||||
# run
|
||||
|
||||
hyper ${steps} ${nevent} HG event min 1.0e-6 1.0e-6 100 100 dump 1
|
||||
hyper ${steps} ${nevent} HG event min ${tol} ${tol} 1000 1000 dump 1
|
||||
|
|
|
@ -107,6 +107,12 @@ dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 &
|
|||
zoom ${zoom} adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
|
||||
dump_modify 1 pad 6 amap 1 3 sa 1 3 blue red green
|
||||
|
||||
# test of histogramming and dump output of bias coeffs
|
||||
|
||||
#fix histo all ave/histo 10 100 1000 0.9 1.1 100 f_HL &
|
||||
# mode vector kind local file tmp.histo
|
||||
#dump 2 all local 1000 tmp.local f_HL
|
||||
|
||||
# run
|
||||
|
||||
hyper ${steps} ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
|
||||
|
|
Before Width: | Height: | Size: 482 KiB After Width: | Height: | Size: 482 KiB |
After Width: | Height: | Size: 479 KiB |
Before Width: | Height: | Size: 479 KiB |
Before Width: | Height: | Size: 477 KiB |
Before Width: | Height: | Size: 479 KiB |
|
@ -1,993 +0,0 @@
|
|||
LAMMPS (10 Oct 2018)
|
||||
# 3d EAM surface for local HD
|
||||
|
||||
# nearest neighbor distance = a * sqrt(2)/2 = 2.77 Angs for Pt with a = 3.92
|
||||
# hop event on (100) surface is same distance
|
||||
# exchange event is 2 atoms moving same distance
|
||||
|
||||
variable Tequil index 400.0
|
||||
variable Vmax index 0.4
|
||||
variable qfactor index 0.3
|
||||
variable cutbond index 3.2
|
||||
variable Dcut index 10.0
|
||||
variable cutevent index 1.1
|
||||
variable alpha index 200.0
|
||||
variable boost index 4000.0
|
||||
variable ghostcut index 12.0
|
||||
variable steps index 1500
|
||||
variable nevent index 100
|
||||
variable nx index 8
|
||||
variable ny index 8
|
||||
variable zoom index 1.8
|
||||
variable seed index 826626413
|
||||
variable tol index 1.0e-15
|
||||
variable add index 37K
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
atom_modify map array
|
||||
boundary p p p
|
||||
comm_modify cutoff ${ghostcut}
|
||||
comm_modify cutoff 12.0
|
||||
|
||||
lattice fcc 3.92
|
||||
Lattice spacing in x,y,z = 3.92 3.92 3.92
|
||||
region box block 0 6 0 6 0 4
|
||||
create_box 2 box
|
||||
Created orthogonal box = (0 0 0) to (23.52 23.52 15.68)
|
||||
2 by 4 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 576 atoms
|
||||
Time spent = 0.00108504 secs
|
||||
|
||||
mass * 1.0
|
||||
|
||||
change_box all z final -0.1 5.0 boundary p p f
|
||||
orthogonal box = (0 0 -0.392) to (23.52 23.52 19.6)
|
||||
|
||||
# replicate in xy
|
||||
|
||||
replicate ${nx} ${ny} 1
|
||||
replicate 8 ${ny} 1
|
||||
replicate 8 8 1
|
||||
orthogonal box = (0 0 -0.392) to (188.16 188.16 19.6)
|
||||
4 by 4 by 1 MPI processor grid
|
||||
36864 atoms
|
||||
Time spent = 0.0028758 secs
|
||||
|
||||
# add adatoms
|
||||
|
||||
include adatoms.list.${add}
|
||||
include adatoms.list.37K
|
||||
create_atoms 1 single 27.5 9.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000183105 secs
|
||||
create_atoms 1 single 16 9 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000178099 secs
|
||||
create_atoms 1 single 10 12 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000179768 secs
|
||||
create_atoms 1 single 31 44 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000184059 secs
|
||||
create_atoms 1 single 13 17 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000173807 secs
|
||||
create_atoms 1 single 8.5 28.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000167847 secs
|
||||
create_atoms 1 single 23 26 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000179052 secs
|
||||
create_atoms 1 single 38 27 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000169992 secs
|
||||
create_atoms 1 single 37.5 4.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000166178 secs
|
||||
create_atoms 1 single 41.5 47.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000172138 secs
|
||||
create_atoms 1 single 20.5 37.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000165939 secs
|
||||
create_atoms 1 single 5 8 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.00018096 secs
|
||||
create_atoms 1 single 2.5 16.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000165939 secs
|
||||
create_atoms 1 single 38.5 45.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 9 0 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000168085 secs
|
||||
create_atoms 1 single 39 32 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000170946 secs
|
||||
create_atoms 1 single 45.5 11.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.00018096 secs
|
||||
create_atoms 1 single 40 0 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000168085 secs
|
||||
create_atoms 1 single 44.5 2.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000165939 secs
|
||||
create_atoms 1 single 4.5 44.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000168085 secs
|
||||
create_atoms 1 single 24.5 13.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000165939 secs
|
||||
create_atoms 1 single 47.5 23.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.00018096 secs
|
||||
create_atoms 1 single 1 20 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000166893 secs
|
||||
create_atoms 1 single 38.5 31.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000168085 secs
|
||||
create_atoms 1 single 12.5 12.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000169992 secs
|
||||
create_atoms 1 single 2 27 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000188828 secs
|
||||
create_atoms 1 single 21 5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000174999 secs
|
||||
create_atoms 1 single 47 12 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 32.5 46.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000165939 secs
|
||||
create_atoms 1 single 9.5 40.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000166893 secs
|
||||
create_atoms 1 single 8.5 2.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 41.5 22.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000174046 secs
|
||||
create_atoms 1 single 29 11 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000166893 secs
|
||||
create_atoms 1 single 3.5 3.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000165224 secs
|
||||
create_atoms 1 single 5 21 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 46.5 31.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000166178 secs
|
||||
create_atoms 1 single 35 46 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000183105 secs
|
||||
create_atoms 1 single 40.5 41.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 10 22 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 43.5 14.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000169992 secs
|
||||
create_atoms 1 single 42 42 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000165939 secs
|
||||
create_atoms 1 single 4 26 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000174999 secs
|
||||
create_atoms 1 single 19 34 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000163078 secs
|
||||
create_atoms 1 single 33 9 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 0.5 45.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000163078 secs
|
||||
create_atoms 1 single 30.5 32.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 25.5 5.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000178099 secs
|
||||
create_atoms 1 single 47.5 39.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000165939 secs
|
||||
create_atoms 1 single 15 13 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 21 21 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 14 28 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 9 34 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000174999 secs
|
||||
create_atoms 1 single 7 38 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000175953 secs
|
||||
create_atoms 1 single 11 35 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 20.5 45.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000156879 secs
|
||||
create_atoms 1 single 30.5 31.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000159979 secs
|
||||
create_atoms 1 single 32.5 2.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000166178 secs
|
||||
create_atoms 1 single 21.5 3.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000157833 secs
|
||||
create_atoms 1 single 23 12 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000155926 secs
|
||||
create_atoms 1 single 4.5 33.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000156879 secs
|
||||
create_atoms 1 single 46 43 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000155926 secs
|
||||
create_atoms 1 single 42.5 45.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000156879 secs
|
||||
create_atoms 1 single 4.5 10.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000158072 secs
|
||||
create_atoms 1 single 33.5 15.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000157833 secs
|
||||
create_atoms 1 single 24 5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154018 secs
|
||||
create_atoms 1 single 13 16 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000158072 secs
|
||||
create_atoms 1 single 16.5 23.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000156164 secs
|
||||
create_atoms 1 single 45.5 28.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000247002 secs
|
||||
create_atoms 1 single 44.5 5.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000156164 secs
|
||||
create_atoms 1 single 27.5 46.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000155926 secs
|
||||
create_atoms 1 single 44.5 12.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000157833 secs
|
||||
create_atoms 1 single 12 41 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000156879 secs
|
||||
create_atoms 1 single 6 4 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.0001688 secs
|
||||
create_atoms 1 single 31.5 10.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.00015521 secs
|
||||
create_atoms 1 single 1 44 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 31 4 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000156879 secs
|
||||
create_atoms 1 single 21 33 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000156879 secs
|
||||
create_atoms 1 single 3 33 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164032 secs
|
||||
create_atoms 1 single 15 10 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.0001719 secs
|
||||
create_atoms 1 single 28.5 22.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000153065 secs
|
||||
create_atoms 1 single 43 1 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000155926 secs
|
||||
create_atoms 1 single 3.5 0.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 41 37 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000153065 secs
|
||||
create_atoms 1 single 18.5 43.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000213146 secs
|
||||
create_atoms 1 single 17 27 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000159979 secs
|
||||
create_atoms 1 single 3 5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000153065 secs
|
||||
create_atoms 1 single 18.5 23.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 31.5 14.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 41 31 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000155926 secs
|
||||
create_atoms 1 single 22 3 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.00015521 secs
|
||||
create_atoms 1 single 14.5 40.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154018 secs
|
||||
create_atoms 1 single 9 38 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154018 secs
|
||||
create_atoms 1 single 36 42 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000155926 secs
|
||||
create_atoms 1 single 33 22 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000163078 secs
|
||||
create_atoms 1 single 15.5 47.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 3 0 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 25.5 27.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000176907 secs
|
||||
create_atoms 1 single 2.5 28.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 29.5 28.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000162125 secs
|
||||
create_atoms 1 single 44.5 18.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000152826 secs
|
||||
create_atoms 1 single 26 40 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000155926 secs
|
||||
create_atoms 1 single 41 27 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000158072 secs
|
||||
create_atoms 1 single 39.5 5.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000155926 secs
|
||||
create_atoms 1 single 3 38 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000152826 secs
|
||||
create_atoms 1 single 35 29 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 11 19 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164986 secs
|
||||
create_atoms 1 single 18 1 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146866 secs
|
||||
create_atoms 1 single 39.5 40.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146866 secs
|
||||
create_atoms 1 single 46 17 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 1.5 23.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154018 secs
|
||||
create_atoms 1 single 28.5 23.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145912 secs
|
||||
create_atoms 1 single 10 28 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000159979 secs
|
||||
create_atoms 1 single 19 47 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000148058 secs
|
||||
create_atoms 1 single 10.5 16.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000147104 secs
|
||||
create_atoms 1 single 38 45 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 42.5 41.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000161886 secs
|
||||
create_atoms 1 single 47.5 42.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000147104 secs
|
||||
create_atoms 1 single 38 7 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 10 44 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145912 secs
|
||||
create_atoms 1 single 29.5 27.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 45 30 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145912 secs
|
||||
create_atoms 1 single 3 9 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154018 secs
|
||||
create_atoms 1 single 8.5 35.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 24 44 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145912 secs
|
||||
create_atoms 1 single 47 4 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 7.5 8.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 32.5 41.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000157833 secs
|
||||
create_atoms 1 single 0.5 34.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145912 secs
|
||||
create_atoms 1 single 11 8 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000147104 secs
|
||||
create_atoms 1 single 2 40 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 25 24 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 47.5 6.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000147104 secs
|
||||
create_atoms 1 single 39.5 28.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 17 21 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000164032 secs
|
||||
create_atoms 1 single 32 43 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 16.5 29.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 34 34 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145912 secs
|
||||
create_atoms 1 single 11.5 3.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154018 secs
|
||||
create_atoms 1 single 39 22 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 24.5 36.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 33 31 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 35.5 35.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 14.5 34.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146866 secs
|
||||
create_atoms 1 single 34 28 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000153065 secs
|
||||
create_atoms 1 single 37 41 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145912 secs
|
||||
create_atoms 1 single 33 46 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 27.5 28.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145197 secs
|
||||
create_atoms 1 single 40.5 22.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000150919 secs
|
||||
create_atoms 1 single 27.5 1.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 12 2 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000151873 secs
|
||||
create_atoms 1 single 36 43 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144005 secs
|
||||
create_atoms 1 single 28.5 9.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 20.5 25.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 3 3 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144005 secs
|
||||
create_atoms 1 single 38 33 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 3 20 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000154972 secs
|
||||
create_atoms 1 single 35 11 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000145912 secs
|
||||
create_atoms 1 single 5 25 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144005 secs
|
||||
create_atoms 1 single 36.5 6.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144005 secs
|
||||
create_atoms 1 single 19.5 24.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000236988 secs
|
||||
create_atoms 1 single 27 41 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000169992 secs
|
||||
create_atoms 1 single 39.5 11.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138998 secs
|
||||
create_atoms 1 single 21.5 2.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000136852 secs
|
||||
create_atoms 1 single 46.5 15.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138998 secs
|
||||
create_atoms 1 single 13 24 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000137091 secs
|
||||
create_atoms 1 single 11 37 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144005 secs
|
||||
create_atoms 1 single 11.5 31.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000144958 secs
|
||||
create_atoms 1 single 47 0 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138044 secs
|
||||
create_atoms 1 single 25.5 17.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.00014019 secs
|
||||
create_atoms 1 single 32 11 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138044 secs
|
||||
create_atoms 1 single 8 17 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138044 secs
|
||||
create_atoms 1 single 27.5 12.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000137806 secs
|
||||
create_atoms 1 single 25 7 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000146151 secs
|
||||
create_atoms 1 single 25.5 37.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000139952 secs
|
||||
create_atoms 1 single 12 15 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138044 secs
|
||||
create_atoms 1 single 1 7 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138998 secs
|
||||
create_atoms 1 single 18.5 47.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138044 secs
|
||||
create_atoms 1 single 5 38 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000136852 secs
|
||||
create_atoms 1 single 42 19 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000149012 secs
|
||||
create_atoms 1 single 30.5 7.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138044 secs
|
||||
create_atoms 1 single 42.5 7.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000138998 secs
|
||||
create_atoms 1 single 26.5 18.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000153065 secs
|
||||
create_atoms 1 single 18.5 1.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000137091 secs
|
||||
create_atoms 1 single 41.5 10.5 4
|
||||
Created 1 atoms
|
||||
Time spent = 0.000140905 secs
|
||||
|
||||
# define frozen substrate and mobile atoms
|
||||
|
||||
region base block INF INF INF INF 0 1.8
|
||||
set region base type 2
|
||||
18432 settings made for type
|
||||
group base type 2
|
||||
18432 atoms in group base
|
||||
group mobile type 1
|
||||
18616 atoms in group mobile
|
||||
|
||||
# pair style
|
||||
|
||||
pair_style eam/alloy
|
||||
pair_coeff * * ptvoterlammps.eam Pt Pt
|
||||
|
||||
neighbor 0.5 bin
|
||||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 mobile nve
|
||||
fix 2 mobile langevin ${Tequil} ${Tequil} 1.0 ${seed} zero yes
|
||||
fix 2 mobile langevin 400.0 ${Tequil} 1.0 ${seed} zero yes
|
||||
fix 2 mobile langevin 400.0 400.0 1.0 ${seed} zero yes
|
||||
fix 2 mobile langevin 400.0 400.0 1.0 826626413 zero yes
|
||||
|
||||
timestep 0.005
|
||||
|
||||
compute tmobile mobile temp
|
||||
|
||||
thermo 100
|
||||
thermo_modify temp tmobile
|
||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:488)
|
||||
|
||||
# thermal equilibration
|
||||
|
||||
run 1000
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 5 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 6.07583
|
||||
ghost atom cutoff = 12
|
||||
binsize = 3.03792, bins = 62 62 7
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair eam/alloy, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 3.359 | 3.359 | 3.36 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -206220.22 0 -206220.22 -52155.664
|
||||
100 188.18127 -206044.43 0 -205591.63 -25068.83
|
||||
200 274.34464 -205860.78 0 -205200.66 -40191.797
|
||||
300 325.66286 -205750.01 0 -204966.4 -31510.222
|
||||
400 352.48242 -205675.42 0 -204827.28 -35058.064
|
||||
500 370.88571 -205619.66 0 -204727.25 -32735.022
|
||||
600 388.62129 -205592.87 0 -204657.78 -33904.556
|
||||
700 389.54874 -205579.73 0 -204642.4 -32769.852
|
||||
800 395.56074 -205576.82 0 -204625.03 -33755.948
|
||||
900 398.03458 -205564.48 0 -204606.74 -32777.103
|
||||
1000 401.24089 -205562.85 0 -204597.4 -33785.341
|
||||
Loop time of 4.3687 on 16 procs for 1000 steps with 37048 atoms
|
||||
|
||||
Performance: 98.885 ns/day, 0.243 hours/ns, 228.901 timesteps/s
|
||||
98.4% CPU use with 16 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.2988 | 3.3828 | 3.4667 | 2.3 | 77.43
|
||||
Neigh | 0.20856 | 0.23127 | 0.24382 | 1.9 | 5.29
|
||||
Comm | 0.33313 | 0.45075 | 0.55485 | 9.2 | 10.32
|
||||
Output | 0.00042987 | 0.00044042 | 0.00049591 | 0.0 | 0.01
|
||||
Modify | 0.18811 | 0.28363 | 0.36798 | 9.7 | 6.49
|
||||
Other | | 0.01983 | | | 0.45
|
||||
|
||||
Nlocal: 2315.5 ave 2332 max 2297 min
|
||||
Histogram: 2 0 0 3 4 0 2 1 2 2
|
||||
Nghost: 3186.31 ave 3205 max 3170 min
|
||||
Histogram: 2 1 3 0 2 3 2 1 0 2
|
||||
Neighs: 55590.9 ave 56174 max 55103 min
|
||||
Histogram: 2 2 1 1 4 1 3 0 0 2
|
||||
|
||||
Total # of neighbors = 889454
|
||||
Ave neighs/atom = 24.0082
|
||||
Neighbor list builds = 105
|
||||
Dangerous builds = 0
|
||||
reset_timestep 0
|
||||
|
||||
# pin base so will not move during quenches
|
||||
|
||||
fix freeze base setforce 0.0 0.0 0.0
|
||||
|
||||
# event detection
|
||||
|
||||
compute event all event/displace ${cutevent}
|
||||
compute event all event/displace 1.1
|
||||
|
||||
# hyper/local
|
||||
|
||||
fix HL mobile hyper/local ${cutbond} ${qfactor} ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
||||
fix HL mobile hyper/local 3.2 ${qfactor} ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
||||
fix HL mobile hyper/local 3.2 0.3 ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
||||
fix HL mobile hyper/local 3.2 0.3 0.4 ${Tequil} ${Dcut} ${alpha} ${boost}
|
||||
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 ${Dcut} ${alpha} ${boost}
|
||||
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 ${alpha} ${boost}
|
||||
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 200.0 ${boost}
|
||||
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 200.0 4000.0
|
||||
|
||||
# thermo output
|
||||
|
||||
thermo_style custom step temp pe f_HL f_HL[*]
|
||||
WARNING: New thermo_style command, previous thermo_modify settings will be lost (../output.cpp:705)
|
||||
|
||||
thermo_modify lost ignore
|
||||
thermo_modify temp tmobile
|
||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:488)
|
||||
|
||||
thermo ${nevent}
|
||||
thermo 100
|
||||
|
||||
# dump
|
||||
|
||||
region substrate block INF INF INF INF 1.8 3.8
|
||||
region adatoms block INF INF INF INF 3.8 INF
|
||||
variable acolor atom rmask(base)+2*rmask(substrate)+3*rmask(adatoms)
|
||||
|
||||
dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 zoom ${zoom} adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
|
||||
dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 zoom 1.8 adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
|
||||
dump_modify 1 pad 6 amap 1 3 sa 1 3 blue red green
|
||||
|
||||
# run
|
||||
|
||||
hyper ${steps} ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
|
||||
hyper 1500 ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
|
||||
hyper 1500 100 HL event min ${tol} ${tol} 1000 1000 dump 1
|
||||
hyper 1500 100 HL event min 1.0e-15 ${tol} 1000 1000 dump 1
|
||||
hyper 1500 100 HL event min 1.0e-15 1.0e-15 1000 1000 dump 1
|
||||
WARNING: Resetting reneighboring criteria during hyper (../hyper.cpp:133)
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 6.07583
|
||||
ghost atom cutoff = 12
|
||||
binsize = 3.03792, bins = 62 62 7
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair eam/alloy, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) fix hyper/local, occasional
|
||||
attributes: full, newton on, cut 10
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 7.566 | 7.567 | 7.567 Mbytes
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
0 401.24089 -205562.85 0 0 0 1 0 0 0 0 0 0 0 0 4e+19 0 0 0 0 0 0 0 0 0 0 0
|
||||
77 401.24089 -206534.96 0 0 0 1 0 0 0 0 0 0 0 0 4e+19 0 0 0 0 0 0 0 1540 0 0 0
|
||||
Loop time of 0.540347 on 16 procs for 77 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
0 401.24089 -205562.85 23.271302 74 0.18753621 1 6.0138739 703.62325 0 0.55802338 3.5350432 0 0 0 4e+19 10.115141 10.115141 0 0 0 0 0 0 0 0 0
|
||||
100 399.15639 -205546.21 22.904368 90 0.32935524 0.39929142 6.0138739 703.62325 0.026229865 0.91517139 3.9968927 91.88 0.3995539 0.4009724 0.39695676 10.262823 10.262823 0 0 0 0 0 2000 0 0 0
|
||||
Loop time of 0.579085 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
100 399.15639 -205546.21 22.904368 90 0.32935524 0.39929142 6.0138739 703.62325 0.026229865 0.91517139 3.9968927 91.88 0.3995539 0.4009724 0.39695676 10.262823 10.262823 0 0 0 0 0 2000 0 0 0
|
||||
184 399.15639 -206534.96 22.904368 90 0.32935524 0.39929142 6.0138739 703.62325 0.026229865 0.91517139 3.9968927 49.934783 0.21714886 0.4009724 0.39695676 10.262823 10.262823 0 0 0 0 0 3680 0 0 0
|
||||
Loop time of 0.556056 on 16 procs for 84 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
100 399.15639 -205546.21 22.903938 90 0.32935524 0.39929142 6.0138739 703.62325 0.026229865 0.91517139 3.9968927 91.88 0.3995539 0.4009724 0.39695676 10.262823 10.262823 0 0 0 0 0 2000 0 0 0
|
||||
200 403.01717 -205543.17 20.844359 90 0.3291605 0.39888693 6.0138739 703.62325 0.039527213 0.94418421 4.0368484 90.95 0.39930574 0.4019706 0.39554353 10.262823 10.262823 0 0 0 0 0 4000 0 0 0
|
||||
Loop time of 0.581214 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
200 403.01717 -205543.17 20.844359 90 0.3291605 0.39888693 6.0138739 703.62325 0.039527213 0.94418421 4.0368484 90.95 0.39930574 0.4019706 0.39554353 10.262823 10.262823 0 0 0 0 0 4000 0 0 0
|
||||
275 403.01717 -206534.96 20.844359 90 0.3291605 0.39888693 6.0138739 703.62325 0.039527213 0.94418421 4.0368484 66.145455 0.29040418 0.4019706 0.39554353 10.262823 10.262823 0 0 0 0 0 5500 0 0 0
|
||||
Loop time of 0.481812 on 16 procs for 75 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
200 403.01717 -205543.17 21.115577 91 0.3291605 0.39888693 6.0138739 703.62325 0.039527213 0.94418421 4.0368484 90.95 0.39930574 0.4019706 0.39554353 10.262823 10.262823 0 0 0 0 0 4000 0 0 0
|
||||
300 399.01963 -205541.46 19.137336 85 0.32442182 0.39862755 6.0138739 703.62325 0.046873868 0.94776891 4.0368484 92.02 0.39912484 0.40296919 0.39497622 10.288936 10.288936 0 0 0 0 0 6000 0 0 0
|
||||
Loop time of 0.5757 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
300 399.01963 -205541.46 19.137336 85 0.32442182 0.39862755 6.0138739 703.62325 0.046873868 0.94776891 4.0368484 92.02 0.39912484 0.40296919 0.39497622 10.288936 10.288936 0 0 0 0 0 6000 0 0 0
|
||||
377 399.01963 -206534.96 19.137336 85 0.32442182 0.39862755 6.0138739 703.62325 0.046873868 0.94776891 4.0368484 73.225464 0.31760598 0.40296919 0.39497622 10.288936 10.288936 0 0 0 0 0 7540 0 0 0
|
||||
Loop time of 0.514907 on 16 procs for 77 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
300 399.01963 -205541.46 19.137003 85 0.32442182 0.39862755 6.0138739 703.62325 0.046873868 0.94776891 4.0368484 92.02 0.39912484 0.40296919 0.39497622 10.288936 10.288936 0 0 0 0 0 6000 0 0 0
|
||||
400 398.15351 -205544.87 20.470844 93 0.34589451 0.39828754 6.0138739 703.62325 0.049952465 0.94776891 4.0779385 92.0375 0.39894967 0.40395328 0.3932824 10.307052 10.307052 0 0 0 0 0 8000 0 0 0
|
||||
Loop time of 0.577371 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
400 398.15351 -205544.87 20.470844 93 0.34589451 0.39828754 6.0138739 703.62325 0.049952465 0.94776891 4.0779385 92.0375 0.39894967 0.40395328 0.3932824 10.307052 10.307052 0 0 0 0 0 8000 0 0 0
|
||||
471 398.15351 -206534.96 20.470844 93 0.34589451 0.39828754 6.0138739 703.62325 0.049952465 0.94776891 4.0779385 78.163482 0.33881076 0.40395328 0.3932824 10.307052 10.307052 0 0 0 0 0 9420 0 0 0
|
||||
Loop time of 0.465473 on 16 procs for 71 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
400 398.15351 -205544.87 20.470689 93 0.34589451 0.39828754 6.0138739 703.62325 0.049952465 0.94776891 4.0779385 92.0375 0.39894967 0.40395328 0.3932824 10.307052 10.307052 0 0 0 0 0 8000 0 0 0
|
||||
500 400.29399 -205544.98 17.051242 83 0.42140172 0.39805251 6.0138739 703.62325 0.056986933 1.0907861 4.0779385 91.986 0.39879563 0.40493836 0.39165573 10.307052 10.307052 0 0 0 0 0 10000 0 0 0
|
||||
Loop time of 0.579188 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
500 400.29399 -205544.98 17.051242 83 0.42140172 0.39805251 6.0138739 703.62325 0.056986933 1.0907861 4.0779385 91.986 0.39879563 0.40493836 0.39165573 10.307052 10.307052 0 0 0 0 0 10000 0 0 0
|
||||
577 400.29399 -206534.96 17.051242 83 0.42140172 0.39805251 6.0138739 703.62325 0.056986933 1.0910651 4.0779385 79.710572 0.3455768 0.40493836 0.39165573 10.307052 10.307052 0 0 0 0 0 11540 0 0 0
|
||||
Loop time of 0.502193 on 16 procs for 77 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
500 400.29399 -205544.98 17.051107 83 0.42140172 0.39805251 6.0138739 703.62325 0.056986933 1.0910651 4.0779385 91.986 0.39879563 0.40493836 0.39165573 10.307052 10.307052 0 0 0 0 0 10000 0 0 0
|
||||
600 400.96099 -205544.56 20.904479 91 0.41219484 0.39780769 6.0138739 703.62325 0.061331691 1.1358732 4.0779385 92.013333 0.39864794 0.40593806 0.39067432 10.307052 10.307052 0 0 0 0 0 12000 0 0 0
|
||||
Loop time of 0.694955 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
600 400.96099 -205544.56 20.904479 91 0.41219484 0.39780769 6.0138739 703.62325 0.061331691 1.1358732 4.0779385 92.013333 0.39864794 0.40593806 0.39067432 10.307052 10.307052 0 0 0 0 0 12000 0 0 0
|
||||
680 400.96099 -206534.96 20.904479 91 0.41219484 0.39780769 6.0138739 703.62325 0.061331691 1.1358732 4.0779385 81.188235 0.35174818 0.40593806 0.39067432 10.307052 10.307052 0 0 0 0 0 13600 0 0 0
|
||||
Loop time of 0.529041 on 16 procs for 80 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
600 400.96099 -205544.56 20.904088 91 0.41219484 0.39780769 6.0138739 703.62325 0.061331691 1.1358732 4.0779385 92.013333 0.39864794 0.40593806 0.39067432 10.307052 10.307052 0 0 0 0 0 12000 0 0 0
|
||||
700 397.78618 -205534.96 20.361513 95 0.54466603 0.39757442 6.0138739 703.62325 0.061146951 1.1853748 4.1995704 92.12 0.39850836 0.40693553 0.38981834 10.307052 10.307052 0 0 0 0 0 14000 0 0 0
|
||||
Loop time of 0.590093 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
700 397.78618 -205534.96 20.361513 95 0.54466603 0.39757442 6.0138739 703.62325 0.061146951 1.2139704 4.1995704 92.12 0.39850836 0.40693553 0.38981834 10.307052 10.307052 0 0 0 0 0 14000 0 0 0
|
||||
790 397.78618 -206534.96 20.361513 95 0.54466603 0.39757442 6.0138739 703.62325 0.061146951 2.2107138 4.1995704 81.625316 0.35310868 0.40693553 0.38981834 10.307052 10.307052 0 0 0 0 0 15800 0 0 0
|
||||
Loop time of 0.594281 on 16 procs for 90 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
700 397.78618 -205534.96 20.236364 94 0.51088027 0.39757442 6.0138739 703.62325 0.061146951 2.2107138 4.205089 92.12 0.39850836 0.40693553 0.38981834 10.307052 10.307052 0 0 0 0 0 14000 1 2 6
|
||||
800 399.66919 -205547.44 21.285461 94 0.56079766 0.39739855 6.0138739 703.62325 0.06556778 2.2107138 4.3041291 92.36625 0.3983806 0.40793368 0.38875 10.307052 10.385797 0 0 0 0 0 16000 1 2 6
|
||||
Loop time of 0.583824 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
800 399.66919 -205547.44 21.285461 94 0.56079766 0.39739855 6.0138739 703.62325 0.06556778 2.2107138 4.3041291 92.36625 0.3983806 0.40793368 0.38875 10.307052 10.385797 0 0 0 0 0 16000 1 2 6
|
||||
872 399.66919 -206535.54 21.285461 94 0.56079766 0.39739855 6.0138739 703.62325 0.06556778 2.3177682 4.3041291 84.739679 0.36548679 0.40793368 0.38875 10.307052 10.385797 0 0 0 0 0 17440 1 2 6
|
||||
Loop time of 0.46886 on 16 procs for 72 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
800 399.66919 -205547.44 21.2852 94 0.44964213 0.39739855 6.0138739 703.62325 0.06556778 2.3177682 4.3041291 92.36625 0.3983806 0.40793368 0.38875 10.307052 10.385797 0 0 0 0 0 16000 2 4 13
|
||||
900 401.5853 -205544.22 19.308189 94 0.47610389 0.39719191 6.0138739 703.62325 0.066991886 2.3177682 4.3041291 92.017778 0.39825974 0.40893337 0.3878576 10.307052 10.385797 0 0 0 0 0 18000 2 4 13
|
||||
Loop time of 0.585137 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
900 401.5853 -205544.22 19.308189 94 0.47610389 0.39719191 6.0138739 703.62325 0.066991886 2.3177682 4.3041291 92.017778 0.39825974 0.40893337 0.3878576 10.307052 10.385797 0 0 0 0 0 18000 2 4 13
|
||||
975 401.5853 -206535.54 19.308189 94 0.47610389 0.39719191 6.0138739 703.62325 0.066991886 2.3177682 4.3041291 84.939487 0.36762438 0.40893337 0.3878576 10.307052 10.385797 0 0 0 0 0 19500 2 4 13
|
||||
Loop time of 0.502012 on 16 procs for 75 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
900 401.5853 -205544.22 19.307938 94 0.47610389 0.39719191 6.0138739 703.62325 0.066991886 2.3177682 4.3041291 92.017778 0.39825974 0.40893337 0.3878576 10.307052 10.385797 0 0 0 0 0 18000 2 4 13
|
||||
1000 395.06218 -205526.35 17.514295 91 0.42044925 0.39716259 6.0138739 703.62325 0.067937867 2.3177682 4.3041291 92.511 0.39814962 0.40993184 0.3867545 10.307052 10.385797 0 0 0 0 0 20000 2 4 13
|
||||
Loop time of 0.588597 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1000 395.06218 -205526.35 17.514295 91 0.42044925 0.39716259 6.0138739 703.62325 0.067937867 2.3177682 4.3041291 92.511 0.39814962 0.40993184 0.3867545 10.307052 10.385797 0 0 0 0 0 20000 2 4 13
|
||||
1083 395.06218 -206535.54 17.514295 91 0.42044925 0.39716259 6.0138739 703.62325 0.067937867 2.3177682 4.3041291 85.421053 0.36763584 0.40993184 0.3867545 10.307052 10.385797 0 0 0 0 0 21660 2 4 13
|
||||
Loop time of 0.543222 on 16 procs for 83 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1000 395.06218 -205526.35 17.514191 91 0.42044925 0.39716259 6.0138739 703.62325 0.067937867 2.3177682 4.3041291 92.511 0.39814962 0.40993184 0.3867545 10.307052 10.385797 0 0 0 0 0 20000 2 4 13
|
||||
1100 400.04484 -205545.92 19.52012 89 0.58919981 0.39704631 6.0138739 703.62325 0.069136967 2.3177682 4.4265979 92.517273 0.39805636 0.41093134 0.38574293 10.307052 10.385797 0 0 0 0 0 22000 2 4 13
|
||||
Loop time of 0.590075 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1100 400.04484 -205545.92 19.52012 89 0.58919981 0.39704631 6.0138739 703.62325 0.069136967 2.3177682 4.4265979 92.517273 0.39805636 0.41093134 0.38574293 10.307052 10.385797 0 0 0 0 0 22000 2 4 13
|
||||
1177 400.04484 -206535.53 19.52012 89 0.58919981 0.39704631 6.0138739 703.62325 0.069136967 2.3177682 4.4265979 86.464741 0.37201529 0.41093134 0.38574293 10.307052 10.385797 0 0 0 0 0 23540 2 4 13
|
||||
Loop time of 0.500839 on 16 procs for 77 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1100 400.04484 -205545.92 19.518413 89 0.429675 0.39705701 6.0137119 703.6043 0.069136967 2.3177682 4.4265979 92.517273 0.39805636 0.41093134 0.38574293 10.307052 10.385797 0 0 0 0 0 22000 3 6 19
|
||||
1200 400.7462 -205543.2 21.169548 91 0.32511134 0.39679665 6.0137119 703.6043 0.06750442 2.3177682 4.4265979 92.376667 0.39796198 0.41191655 0.3846039 10.307052 10.385797 0 0 0 0 0 24000 3 6 19
|
||||
Loop time of 0.583971 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1200 400.7462 -205543.2 21.169548 91 0.32511134 0.39679665 6.0137119 703.6043 0.06750442 2.3177682 4.4265979 92.376667 0.39796198 0.41191655 0.3846039 10.307052 10.385797 0 0 0 0 0 24000 3 6 19
|
||||
1277 400.7462 -206535.53 21.169548 91 0.32511134 0.39679665 6.0137119 703.6043 0.06750442 2.3177682 4.4265979 86.806578 0.37396584 0.41191655 0.3846039 10.307052 10.385797 0 0 0 0 0 25540 3 6 19
|
||||
Loop time of 0.509118 on 16 procs for 77 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1200 400.7462 -205543.2 21.169281 91 0.32511134 0.39679665 6.0137119 703.6043 0.06750442 2.3177682 4.4265979 92.376667 0.39796198 0.41191655 0.3846039 10.307052 10.385797 0 0 0 0 0 24000 3 6 19
|
||||
1300 398.53702 -205539.33 21.35815 94 0.38773898 0.39659935 6.0137119 703.6043 0.067808168 2.3177682 4.4265979 92.500769 0.39786514 0.41289519 0.3846039 10.307052 10.385797 0 0 0 0 0 26000 3 6 19
|
||||
Loop time of 0.587306 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1300 398.53702 -205539.33 21.35815 94 0.38773898 0.39659935 6.0137119 703.6043 0.067808168 2.3177682 4.4265979 92.500769 0.39786514 0.41289519 0.3846039 10.307052 10.385797 0 0 0 0 0 26000 3 6 19
|
||||
1375 398.53702 -206535.53 21.35815 94 0.38773898 0.39659935 6.0137119 703.6043 0.067808168 2.3177682 4.4265979 87.455273 0.37616341 0.41289519 0.3846039 10.307052 10.385797 0 0 0 0 0 27500 3 6 19
|
||||
Loop time of 0.483781 on 16 procs for 75 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1300 398.53702 -205539.33 21.35787 94 0.38773898 0.39659935 6.0137119 703.6043 0.067808168 2.3177682 4.4265979 92.500769 0.39786514 0.41289519 0.3846039 10.307052 10.385797 0 0 0 0 0 26000 3 6 19
|
||||
1400 402.80537 -205549.3 19.481887 95 0.32554201 0.39648737 6.0137119 703.6043 0.069550538 2.3177682 4.4265979 92.666429 0.39776836 0.41389491 0.38420043 10.307052 10.385797 0 0 0 0 0 28000 3 6 19
|
||||
Loop time of 0.586411 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1400 402.80537 -205549.3 19.481887 95 0.32554201 0.39648737 6.0137119 703.6043 0.069550538 2.3177682 4.4265979 92.666429 0.39776836 0.41389491 0.38420043 10.307052 10.385797 0 0 0 0 0 28000 3 6 19
|
||||
1471 402.80537 -206535.53 19.481887 95 0.32554201 0.39648737 6.0137119 703.6043 0.069550538 2.3177682 4.4265979 88.193746 0.37856948 0.41389491 0.38420043 10.307052 10.385797 0 0 0 0 0 29420 3 6 19
|
||||
Loop time of 0.473799 on 16 procs for 71 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1400 402.80537 -205549.3 19.481632 95 0.32554201 0.39648737 6.0137119 703.6043 0.069550538 2.3177682 4.4265979 92.666429 0.39776836 0.41389491 0.38420043 10.307052 10.385797 0 0 0 0 0 28000 3 6 19
|
||||
1500 402.0803 -205537.7 20.903964 99 0.3340498 0.39635609 6.0137119 703.6043 0.070409086 2.3177682 4.4265979 92.857333 0.39767858 0.41489448 0.38372784 10.333041 10.385797 0 0 0 0 0 30000 3 6 19
|
||||
Loop time of 0.587342 on 16 procs for 100 steps with 37048 atoms
|
||||
|
||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23]
|
||||
1500 402.0803 -205537.7 20.903964 99 0.3340498 0.39635609 6.0137119 703.6043 0.070409086 2.3177682 4.4265979 92.857333 0.39767858 0.41489448 0.38372784 10.333041 10.385797 0 0 0 0 0 30000 3 6 19
|
||||
1574 402.0803 -206535.53 20.903964 99 0.3340498 0.39635609 6.0137119 703.6043 0.070409086 2.3177682 4.4265979 88.491741 0.37898213 0.41489448 0.38372784 10.333041 10.385797 0 0 0 0 0 31480 3 6 19
|
||||
Loop time of 0.493982 on 16 procs for 74 steps with 37048 atoms
|
||||
|
||||
Final hyper stats ...
|
||||
|
||||
Cummulative quantities for fix hyper:
|
||||
hyper time = 30000
|
||||
event timesteps = 3
|
||||
# of atoms in events = 6
|
||||
Quantities for this hyper run:
|
||||
event timesteps = 3
|
||||
# of atoms in events = 6
|
||||
max length of any bond = 4.4266
|
||||
max drift distance of any atom = 2.31777
|
||||
fraction of steps & bonds with zero bias = 0.0704091
|
||||
Current quantities:
|
||||
ave bonds/atom = 6.01371
|
||||
Cummulative quantities specific tofix hyper/local:
|
||||
# of new bonds formed = 19
|
||||
max bonds/atom = 13
|
||||
Quantities for this hyper run specific to fix hyper/local:
|
||||
ave boosted bonds/step = 92.8573
|
||||
ave boost coeff of all bonds = 0.397679
|
||||
max boost coeff of any bond = 0.414894
|
||||
min boost coeff of any bond = 0.383728
|
||||
max dist from my box of any non-maxstrain bond ghost atom = 10.333
|
||||
max dist from my box of any bond ghost atom = 10.3858
|
||||
count of ghost bond neighbors not found on reneighbor steps = 0
|
||||
lost bond partners = 0
|
||||
ave bias coeff for lost bond partners = 0
|
||||
bias overlaps = 0
|
||||
non-matching bias coeffs = 0
|
||||
CPU time for bond builds = 0.044807
|
||||
Current quantities specific to fix hyper/local:
|
||||
neighbor bonds/bond = 703.604
|
||||
ave boost coeff for all bonds = 0.396356
|
||||
|
||||
Loop time of 17.9972 on 16 procs for 1500 steps with 37048 atoms
|
||||
|
||||
Performance: 36.006 ns/day, 0.667 hours/ns, 83.346 timesteps/s
|
||||
120.7% CPU use with 16 MPI tasks x no OpenMP threads
|
||||
|
||||
Hyper stats:
|
||||
Dynamics time (%) = 8.87027 (49.2869)
|
||||
Quench time (%) = 8.15972 (45.3388)
|
||||
Other time (%) = 1.2212 (6.78552)
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 11.6 | 11.848 | 12.043 | 3.9 | 65.83
|
||||
Neigh | 0.50025 | 0.52638 | 0.55163 | 2.1 | 2.92
|
||||
Comm | 0.34528 | 0.49905 | 0.66742 | 13.3 | 2.77
|
||||
Output | 0.0021305 | 0.0021461 | 0.0022686 | 0.1 | 0.01
|
||||
Modify | 3.7498 | 3.9009 | 3.9786 | 2.8 | 21.67
|
||||
Other | | 1.221 | | | 6.79
|
||||
|
||||
Nlocal: 2315.5 ave 2361 max 2267 min
|
||||
Histogram: 1 1 0 4 2 1 3 3 0 1
|
||||
Nghost: 3187.88 ave 3236 max 3141 min
|
||||
Histogram: 1 0 3 2 2 1 4 1 1 1
|
||||
Neighs: 53950.6 ave 54989 max 53049 min
|
||||
Histogram: 2 0 3 2 1 2 4 1 0 1
|
||||
FullNghs: 542951 ave 554654 max 533224 min
|
||||
Histogram: 1 2 3 1 2 2 2 2 0 1
|
||||
|
||||
Total # of neighbors = 8687214
|
||||
Ave neighs/atom = 234.485
|
||||
Neighbor list builds = 165
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:22
|
|
@ -32,12 +32,12 @@
|
|||
using namespace LAMMPS_NS;
|
||||
using namespace FixConst;
|
||||
|
||||
#define DELTA 16384
|
||||
#define DELTABOND 16384
|
||||
#define VECLEN 5
|
||||
|
||||
// NOTE: count/output # of timesteps on which bias is non-zero
|
||||
// NOTE: should there be a virial contribution from boosted bond?
|
||||
// NOTE: allow newton off? see Note in pre_reverse()
|
||||
// possible enhancements
|
||||
// should there be a virial contribution from boosted bond?
|
||||
// allow newton off?
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
|
@ -52,7 +52,7 @@ FixHyperGlobal::FixHyperGlobal(LAMMPS *lmp, int narg, char **arg) :
|
|||
hyperflag = 1;
|
||||
scalar_flag = 1;
|
||||
vector_flag = 1;
|
||||
size_vector = 11;
|
||||
size_vector = 12;
|
||||
global_freq = 1;
|
||||
extscalar = 0;
|
||||
extvector = 0;
|
||||
|
@ -76,6 +76,7 @@ FixHyperGlobal::FixHyperGlobal(LAMMPS *lmp, int narg, char **arg) :
|
|||
maxold = 0;
|
||||
xold = NULL;
|
||||
tagold = NULL;
|
||||
old2now = NULL;
|
||||
|
||||
me = comm->me;
|
||||
firstflag = 1;
|
||||
|
@ -94,6 +95,7 @@ FixHyperGlobal::~FixHyperGlobal()
|
|||
memory->sfree(blist);
|
||||
memory->destroy(xold);
|
||||
memory->destroy(tagold);
|
||||
memory->destroy(old2now);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -102,7 +104,6 @@ int FixHyperGlobal::setmask()
|
|||
{
|
||||
int mask = 0;
|
||||
mask |= PRE_NEIGHBOR;
|
||||
mask |= PRE_FORCE;
|
||||
mask |= PRE_REVERSE;
|
||||
mask |= THERMO_ENERGY;
|
||||
return mask;
|
||||
|
@ -115,6 +116,7 @@ void FixHyperGlobal::init_hyper()
|
|||
maxdriftsq = 0.0;
|
||||
maxbondlen = 0.0;
|
||||
nobias = 0;
|
||||
negstrain = 0;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -124,6 +126,10 @@ void FixHyperGlobal::init()
|
|||
if (force->newton_pair == 0)
|
||||
error->all(FLERR,"Hyper global requires newton pair on");
|
||||
|
||||
if (atom->molecular && me == 0)
|
||||
error->warning(FLERR,"Hyper global for molecular systems "
|
||||
"requires care in defining hyperdynamic bonds");
|
||||
|
||||
dt = update->dt;
|
||||
|
||||
// need an occasional half neighbor list
|
||||
|
@ -152,14 +158,16 @@ void FixHyperGlobal::setup_pre_neighbor()
|
|||
|
||||
void FixHyperGlobal::setup_pre_reverse(int eflag, int vflag)
|
||||
{
|
||||
// no increment in nobias or hyper time when pre-run forces are calculated
|
||||
// no increment in these quantities when pre-run forces are calculated
|
||||
|
||||
int nobias_hold = nobias;
|
||||
int negstrain_hold = negstrain;
|
||||
double t_hyper_hold = t_hyper;
|
||||
|
||||
pre_reverse(eflag,vflag);
|
||||
|
||||
nobias = nobias_hold;
|
||||
negstrain = negstrain_hold;
|
||||
t_hyper = t_hyper_hold;
|
||||
}
|
||||
|
||||
|
@ -167,35 +175,52 @@ void FixHyperGlobal::setup_pre_reverse(int eflag, int vflag)
|
|||
|
||||
void FixHyperGlobal::pre_neighbor()
|
||||
{
|
||||
int m,iold,jold,ilocal,jlocal;
|
||||
double distsq;
|
||||
int i,m,iold,jold,ilocal,jlocal;
|
||||
// double distsq;
|
||||
|
||||
// reset local IDs for owned bond atoms, since atoms have migrated
|
||||
// uses xold and tagold from when bonds were created
|
||||
// reset local indices for owned bond atoms, since atoms have migrated
|
||||
// must be done after ghost atoms are setup via comm->borders()
|
||||
// first time this is done for a particular I or J atom:
|
||||
// use tagold and xold from when bonds were created
|
||||
// atom->map() finds atom ID if it exists, owned index if possible
|
||||
// closest current I or J atoms to old I may now be ghost atoms
|
||||
// closest_image() returns the ghost atom index in that case
|
||||
// also compute max drift of any atom in a bond
|
||||
// drift = displacement from quenched coord while event has not yet occured
|
||||
// NOTE: drift calc is now done in bond_build(), between 2 quenched states
|
||||
|
||||
for (i = 0; i < nall_old; i++) old2now[i] = -1;
|
||||
|
||||
double **x = atom->x;
|
||||
|
||||
int flag = 0;
|
||||
|
||||
for (m = 0; m < nblocal; m++) {
|
||||
iold = blist[m].iold;
|
||||
jold = blist[m].jold;
|
||||
ilocal = atom->map(tagold[iold]);
|
||||
jlocal = atom->map(tagold[jold]);
|
||||
ilocal = domain->closest_image(xold[iold],ilocal);
|
||||
jlocal = domain->closest_image(xold[iold],jlocal);
|
||||
ilocal = old2now[iold];
|
||||
jlocal = old2now[jold];
|
||||
|
||||
if (ilocal < 0) {
|
||||
ilocal = atom->map(tagold[iold]);
|
||||
ilocal = domain->closest_image(xold[iold],ilocal);
|
||||
if (ilocal < 0)
|
||||
error->one(FLERR,"Fix hyper/global bond atom not found");
|
||||
old2now[iold] = ilocal;
|
||||
//distsq = MathExtra::distsq3(x[ilocal],xold[iold]);
|
||||
//maxdriftsq = MAX(distsq,maxdriftsq);
|
||||
}
|
||||
if (jlocal < 0) {
|
||||
jlocal = atom->map(tagold[jold]);
|
||||
jlocal = domain->closest_image(xold[iold],jlocal); // closest to iold
|
||||
if (jlocal < 0)
|
||||
error->one(FLERR,"Fix hyper/global bond atom not found");
|
||||
old2now[jold] = jlocal;
|
||||
//distsq = MathExtra::distsq3(x[jlocal],xold[jold]);
|
||||
//maxdriftsq = MAX(distsq,maxdriftsq);
|
||||
}
|
||||
|
||||
blist[m].i = ilocal;
|
||||
blist[m].j = jlocal;
|
||||
|
||||
if (ilocal < 0 || jlocal < 0) flag++;
|
||||
else {
|
||||
distsq = MathExtra::distsq3(x[ilocal],xold[iold]);
|
||||
maxdriftsq = MAX(distsq,maxdriftsq);
|
||||
}
|
||||
}
|
||||
|
||||
if (flag) error->one(FLERR,"Fix hyper/global bond atom not found");
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -204,15 +229,16 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
|
|||
{
|
||||
int i,j,m,imax,jmax;
|
||||
double delx,dely,delz;
|
||||
double r,r0,estrain,rmax,r0max,emax,dt_boost;
|
||||
double vbias,fbias,fbiasr;
|
||||
double r,r0,estrain,rmax,r0max,dt_boost;
|
||||
double ebias,vbias,fbias,fbiasr;
|
||||
|
||||
// compute current strain of each owned bond
|
||||
// emax = maximum strain of any bond I own
|
||||
// emax = maximum abs value of strain of any bond I own
|
||||
// imax,jmax = local indices of my 2 atoms in that bond
|
||||
// rmax,r0max = current and relaxed lengths of that bond
|
||||
|
||||
double **x = atom->x;
|
||||
emax = 0.0;
|
||||
double emax = 0.0;
|
||||
|
||||
for (m = 0; m < nblocal; m++) {
|
||||
i = blist[m].i;
|
||||
|
@ -255,9 +281,15 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
|
|||
return;
|
||||
}
|
||||
|
||||
// I own the bond with max strain
|
||||
// compute Vbias and apply force to atoms imax,jmax
|
||||
// NOTE: logic would need to be different for newton off
|
||||
// I own the bond with max absolute value of strain
|
||||
// compute bias force on atoms imax,jmax if strain < q, else zero
|
||||
// Ebias = current strain = (r-r0) / r0
|
||||
// Vbias = bias potential = Vmax (1 - Ebias^2/q^2)
|
||||
// Fbias = bias force as function of strain
|
||||
// = -dVbias/dEbias = 2 Vmax Ebias / q^2
|
||||
// Fix = x component of force on atom I
|
||||
// = Fbias dEbias/dr dr/dxi, dEbias/dr = 1/r0, dr/dxi = delx/r
|
||||
// dt_boost = time boost factor = exp(Vbias/kT)
|
||||
|
||||
double **f = atom->f;
|
||||
|
||||
|
@ -265,15 +297,16 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
|
|||
dt_boost = 1.0;
|
||||
|
||||
if (emax < qfactor) {
|
||||
vbias = vmax * (1.0 - emax*emax*invqfactorsq);
|
||||
fbias = 2.0 * vmax * emax / (qfactor*qfactor * r0max);
|
||||
ebias = (rmax-r0max) / r0max;
|
||||
vbias = vmax * (1.0 - ebias*ebias*invqfactorsq);
|
||||
fbias = 2.0 * vmax * ebias * invqfactorsq;
|
||||
dt_boost = exp(beta*vbias);
|
||||
|
||||
delx = x[imax][0] - x[jmax][0];
|
||||
dely = x[imax][1] - x[jmax][1];
|
||||
delz = x[imax][2] - x[jmax][2];
|
||||
|
||||
fbiasr = fbias / rmax;
|
||||
fbiasr = fbias / r0max / rmax;
|
||||
f[imax][0] += delx*fbiasr;
|
||||
f[imax][1] += dely*fbiasr;
|
||||
f[imax][2] += delz*fbiasr;
|
||||
|
@ -281,6 +314,9 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
|
|||
f[jmax][0] -= delx*fbiasr;
|
||||
f[jmax][1] -= dely*fbiasr;
|
||||
f[jmax][2] -= delz*fbiasr;
|
||||
|
||||
if (ebias < 0.0) negstrain++;
|
||||
|
||||
} else nobias++;
|
||||
|
||||
// output quantities
|
||||
|
@ -299,8 +335,8 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
|
|||
|
||||
void FixHyperGlobal::build_bond_list(int natom)
|
||||
{
|
||||
int i,j,ii,jj,inum,jnum;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int i,j,m,ii,jj,iold,jold,ilocal,jlocal,inum,jnum;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq,distsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
|
||||
if (natom) {
|
||||
|
@ -308,6 +344,27 @@ void FixHyperGlobal::build_bond_list(int natom)
|
|||
nevent_atom += natom;
|
||||
}
|
||||
|
||||
// compute max distance any bond atom has moved between 2 quenched states
|
||||
// xold[iold] = last quenched coord for iold
|
||||
// x[ilocal] = current quenched coord for same atom
|
||||
|
||||
double **x = atom->x;
|
||||
int nlocal = atom->nlocal;
|
||||
int nall = nlocal + atom->nghost;
|
||||
|
||||
for (m = 0; m < nblocal; m++) {
|
||||
iold = blist[m].iold;
|
||||
ilocal = atom->map(tagold[iold]);
|
||||
ilocal = domain->closest_image(xold[iold],ilocal);
|
||||
distsq = MathExtra::distsq3(x[ilocal],xold[iold]);
|
||||
maxdriftsq = MAX(distsq,maxdriftsq);
|
||||
jold = blist[m].jold;
|
||||
jlocal = atom->map(tagold[jold]);
|
||||
jlocal = domain->closest_image(xold[iold],jlocal);
|
||||
distsq = MathExtra::distsq3(x[jlocal],xold[jold]);
|
||||
maxdriftsq = MAX(distsq,maxdriftsq);
|
||||
}
|
||||
|
||||
// trigger neighbor list build
|
||||
|
||||
neighbor->build_one(list);
|
||||
|
@ -315,7 +372,6 @@ void FixHyperGlobal::build_bond_list(int natom)
|
|||
// identify bonds assigned to each owned atom
|
||||
// do not create a bond between two non-group atoms
|
||||
|
||||
double **x = atom->x;
|
||||
int *mask = atom->mask;
|
||||
|
||||
inum = list->inum;
|
||||
|
@ -358,26 +414,26 @@ void FixHyperGlobal::build_bond_list(int natom)
|
|||
}
|
||||
}
|
||||
|
||||
// store IDs and coords for owned+ghost atoms at time of bond creation
|
||||
// realloc xold and tagold as needed
|
||||
// store per-atom quantities for owned+ghost atoms at time of bond creation
|
||||
// nall_old = value of nall at time bonds are built
|
||||
|
||||
if (atom->nmax > maxold) {
|
||||
tagint *tag = atom->tag;
|
||||
|
||||
if (nall > maxold) {
|
||||
memory->destroy(xold);
|
||||
memory->destroy(tagold);
|
||||
memory->destroy(old2now);
|
||||
maxold = atom->nmax;
|
||||
memory->create(xold,maxold,3,"hyper/global:xold");
|
||||
memory->create(tagold,maxold,"hyper/global:tagold");
|
||||
memory->create(old2now,maxold,"hyper/global:old2now");
|
||||
}
|
||||
|
||||
tagint *tag = atom->tag;
|
||||
int nall = atom->nlocal + atom->nghost;
|
||||
memcpy(&xold[0][0],&x[0][0],3*nall*sizeof(double));
|
||||
for (i = 0; i < nall; i++) tagold[i] = tag[i];
|
||||
|
||||
for (i = 0; i < nall; i++) {
|
||||
xold[i][0] = x[i][0];
|
||||
xold[i][1] = x[i][1];
|
||||
xold[i][2] = x[i][2];
|
||||
tagold[i] = tag[i];
|
||||
}
|
||||
nlocal_old = nlocal;
|
||||
nall_old = nall;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
@ -386,14 +442,11 @@ void FixHyperGlobal::build_bond_list(int natom)
|
|||
|
||||
void FixHyperGlobal::grow_bond()
|
||||
{
|
||||
// NOTE: could add int arg to do initial large alloc:
|
||||
// maxbond = maxbond/DELTA * DELTA; maxbond += DELTA;
|
||||
|
||||
maxbond += DELTA;
|
||||
if (maxbond < 0 || maxbond > MAXSMALLINT)
|
||||
error->one(FLERR,"Fix hyper/local per-processor bond count is too big");
|
||||
if (maxbond + DELTABOND > MAXSMALLINT)
|
||||
error->one(FLERR,"Fix hyper/global bond count is too big");
|
||||
maxbond += DELTABOND;
|
||||
blist = (OneBond *)
|
||||
memory->srealloc(blist,maxbond*sizeof(OneBond),"hyper/local:blist");
|
||||
memory->srealloc(blist,maxbond*sizeof(OneBond),"hyper/global:blist");
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -416,21 +469,22 @@ double FixHyperGlobal::compute_vector(int i)
|
|||
bcastflag = 0;
|
||||
}
|
||||
|
||||
// 11 vector outputs returned for i = 0-10
|
||||
// 12 vector outputs returned for i = 0-11
|
||||
|
||||
// i = 0 = boost factor on this step
|
||||
// i = 1 = max strain of any bond on this step
|
||||
// i = 1 = max strain of any bond on this step (positive or negative)
|
||||
// i = 2 = ID of atom I in max-strain bond on this step
|
||||
// i = 3 = ID of atom J in max-strain bond on this step
|
||||
// i = 4 = ave bonds/atom on this step
|
||||
|
||||
// i = 5 = fraction of steps with no bias during this run
|
||||
// i = 6 = max drift of any atom during this run
|
||||
// i = 7 = max bond length during this run
|
||||
// i = 5 = fraction of steps where bond has no bias during this run
|
||||
// i = 6 = fraction of steps where bond has negative strain during this run
|
||||
// i = 7 = max drift distance of any atom during this run
|
||||
// i = 8 = max bond length during this run
|
||||
|
||||
// i = 8 = cummulative hyper time since fix created
|
||||
// i = 9 = cummulative # of event timesteps since fix created
|
||||
// i = 10 = cummulative # of atoms in events since fix created
|
||||
// i = 9 = cummulative hyper time since fix created
|
||||
// i = 10 = cummulative # of event timesteps since fix created
|
||||
// i = 11 = cummulative # of atoms in events since fix created
|
||||
|
||||
if (i == 0) return outvec[1];
|
||||
if (i == 1) return outvec[2];
|
||||
|
@ -438,8 +492,9 @@ double FixHyperGlobal::compute_vector(int i)
|
|||
if (i == 3) return outvec[4];
|
||||
|
||||
if (i == 4) {
|
||||
int allbonds; // NOTE: bigint?
|
||||
MPI_Allreduce(&nblocal,&allbonds,1,MPI_INT,MPI_SUM,world);
|
||||
bigint mybonds = nblocal;
|
||||
bigint allbonds;
|
||||
MPI_Allreduce(&mybonds,&allbonds,1,MPI_LMP_BIGINT,MPI_SUM,world);
|
||||
return 2.0*allbonds/atom->natoms;
|
||||
}
|
||||
|
||||
|
@ -451,20 +506,27 @@ double FixHyperGlobal::compute_vector(int i)
|
|||
}
|
||||
|
||||
if (i == 6) {
|
||||
if (update->ntimestep == update->firststep) return 0.0;
|
||||
int allnegstrain;
|
||||
MPI_Allreduce(&negstrain,&allnegstrain,1,MPI_INT,MPI_SUM,world);
|
||||
return 1.0*allnegstrain / (update->ntimestep - update->firststep);
|
||||
}
|
||||
|
||||
if (i == 7) {
|
||||
double alldriftsq;
|
||||
MPI_Allreduce(&maxdriftsq,&alldriftsq,1,MPI_DOUBLE,MPI_MAX,world);
|
||||
return sqrt(alldriftsq);
|
||||
}
|
||||
|
||||
if (i == 7) {
|
||||
if (i == 8) {
|
||||
double allbondlen;
|
||||
MPI_Allreduce(&maxbondlen,&allbondlen,1,MPI_DOUBLE,MPI_MAX,world);
|
||||
return allbondlen;
|
||||
}
|
||||
|
||||
if (i == 8) return t_hyper;
|
||||
if (i == 9) return (double) nevent;
|
||||
if (i == 10) return (double) nevent_atom;
|
||||
if (i == 9) return t_hyper;
|
||||
if (i == 10) return (double) nevent;
|
||||
if (i == 11) return (double) nevent_atom;
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
@ -476,13 +538,14 @@ double FixHyperGlobal::compute_vector(int i)
|
|||
|
||||
double FixHyperGlobal::query(int i)
|
||||
{
|
||||
if (i == 1) return compute_vector(8); // cummulative hyper time
|
||||
if (i == 2) return compute_vector(9); // nevent
|
||||
if (i == 3) return compute_vector(10); // nevent_atom
|
||||
if (i == 1) return compute_vector(9); // cummulative hyper time
|
||||
if (i == 2) return compute_vector(10); // nevent
|
||||
if (i == 3) return compute_vector(11); // nevent_atom
|
||||
if (i == 4) return compute_vector(4); // ave bonds/atom
|
||||
if (i == 5) return compute_vector(6); // maxdrift
|
||||
if (i == 6) return compute_vector(7); // maxbondlen
|
||||
if (i == 5) return compute_vector(7); // maxdrift
|
||||
if (i == 6) return compute_vector(8); // maxbondlen
|
||||
if (i == 7) return compute_vector(5); // fraction with zero bias
|
||||
if (i == 8) return compute_vector(6); // fraction with negative strain
|
||||
|
||||
error->all(FLERR,"Invalid query to fix hyper/global");
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ class FixHyperGlobal : public FixHyper {
|
|||
double maxbondlen; // max length of any bond
|
||||
double maxdriftsq; // max distance any atom drifts from original pos
|
||||
int nobias; // # of steps when bias = 0, b/c bond too long
|
||||
int negstrain; // # of steps when biased bond has negative strain
|
||||
|
||||
class NeighList *list;
|
||||
|
||||
|
@ -70,16 +71,19 @@ class FixHyperGlobal : public FixHyper {
|
|||
double r0; // relaxed bond length
|
||||
};
|
||||
|
||||
struct OneBond *blist; // list of owned bonds
|
||||
int nblocal; // # of owned bonds
|
||||
OneBond *blist; // list of owned bonds
|
||||
int nblocal; // # of owned bonds
|
||||
|
||||
// coords and IDs of owned+ghost atoms when bonds were formed
|
||||
// persists on a proc from one event until the next
|
||||
|
||||
int nlocal_old; // nlocal for old atoms
|
||||
int nall_old; // nlocal+nghost for old atoms
|
||||
int maxold; // allocated size of old atoms
|
||||
|
||||
double **xold; // coords of atoms when bonds were formed
|
||||
tagint *tagold; // IDs of atoms when bonds were formed
|
||||
tagint *tagold; // IDs of atoms when bonds were forme
|
||||
int *old2now; // o2n[i] = current local index of old atom I
|
||||
|
||||
// MPI data struct for finding bond with max strain via Allreduce
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ FixStyle(hyper/local,FixHyperLocal)
|
|||
#define LMP_FIX_HYPER_LOCAL_H
|
||||
|
||||
#include "fix_hyper.h"
|
||||
#include "my_page.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
|
@ -43,13 +44,9 @@ class FixHyperLocal : public FixHyper {
|
|||
int pack_forward_comm(int, int *, double *, int, int *);
|
||||
void unpack_forward_comm(int, int, double *);
|
||||
int pack_reverse_comm(int, int, double *);
|
||||
int pack_reverse_comm_size(int, int);
|
||||
void unpack_reverse_comm(int, int *, double *);
|
||||
|
||||
void grow_arrays(int);
|
||||
void copy_arrays(int, int, int);
|
||||
int pack_exchange(int, double *);
|
||||
int unpack_exchange(int, double *);
|
||||
|
||||
double memory_usage();
|
||||
|
||||
// extra methods visible to callers
|
||||
|
@ -59,97 +56,133 @@ class FixHyperLocal : public FixHyper {
|
|||
|
||||
private:
|
||||
int me;
|
||||
|
||||
// inputs and derived quantities
|
||||
|
||||
double cutbond,qfactor,vmax,tequil,dcut;
|
||||
double alpha_user; // timescale to apply boostostat (time units)
|
||||
double alpha; // unitless dt/alpha_user
|
||||
double boosttarget; // target value of boost
|
||||
int histoflag;
|
||||
int lostbond,lostbond_partner;
|
||||
double lostbond_coeff;
|
||||
int checkbias,checkbias_every,checkbias_flag,checkbias_count;
|
||||
int checkcoeff,checkcoeff_every,checkcoeff_flag,checkcoeff_count;
|
||||
double boost_target; // target value of boost
|
||||
int checkghost,checkbias; // flags for optional stats
|
||||
|
||||
double cutbondsq,dcutsq;
|
||||
double beta,invqfactorsq;
|
||||
|
||||
// flags
|
||||
|
||||
int setupflag; // 1 during setup, 0 during run
|
||||
int firstflag; // set for first time bond_build takes place
|
||||
int nostrainyet; // 1 until maxstrain is first computed
|
||||
|
||||
int nboost_running,nobias_running;
|
||||
int nbondbuild;
|
||||
double time_bondbuild;
|
||||
bigint starttime;
|
||||
double sumboostcoeff; // sum of aveboost at every timestep
|
||||
int allbonds; // sum of bond count on this step
|
||||
double allboost; // sum of boostcoeff on all bonds on this step
|
||||
|
||||
int nnewbond; // running tally of number of new bonds created
|
||||
int maxbondperatom; // max # of bonds any atom ever has
|
||||
int nostrainyet; // 1 until maxstrain is first compute
|
||||
bigint starttime; // timestep when this fix was invoked
|
||||
int commflag; // flag for communication mode
|
||||
|
||||
// stats
|
||||
|
||||
int nbondbuild; // # of rebuilds of bond list
|
||||
double time_bondbuild; // CPU time for bond builds
|
||||
|
||||
bigint allbonds; // current total # of bonds
|
||||
int nnewbond; // running tally of # of new bonds created
|
||||
int maxbondperatom; // max # of bonds any atom ever has
|
||||
int nevent; // # of events that trigger bond rebuild
|
||||
int nevent_atom; // # of atoms that experienced an event
|
||||
double cutbondsq,dcutsq;
|
||||
double beta,invqfactorsq;
|
||||
double mybias;
|
||||
|
||||
int nbias_running; // running count of biased bonds
|
||||
int nobias_running; // ditto for bonds with bias = 0, b/c too long
|
||||
int negstrain_running; // ditto for bonds with negative strain
|
||||
|
||||
double mybias; // sum of bias potentials for biased bonds
|
||||
double maxbondlen; // cummulative max length of any bond
|
||||
double maxdriftsq; // max distance any atom drifts from original pos
|
||||
double maxboostcoeff; // cummulative max boost coeff for any bond
|
||||
double minboostcoeff; // cummulative min boost coeff for any bond
|
||||
double maxdriftsq; // max distance any bond atom drifts from quenched x
|
||||
|
||||
double sumbiascoeff; // sum of all bond bias coeffs at each timestep
|
||||
double avebiascoeff; // cummulative sumbiascoeff/allbonds across steps
|
||||
double minbiascoeff; // cummulative min bias coeff for any bond
|
||||
double maxbiascoeff; // cummulative max bias coeff for any bond
|
||||
|
||||
double rmaxever,rmaxeverbig;
|
||||
int ghost_toofar;
|
||||
int ghost_toofar; // # of ghost atoms not found in Dcut neigh list
|
||||
|
||||
int checkbias_every,checkbias_flag,checkbias_count;
|
||||
|
||||
// 2 neighbor lists
|
||||
|
||||
class NeighList *listfull; // full neigh list up to Dcut distance
|
||||
class NeighList *listhalf; // half neigh list up to pair distance
|
||||
// both created only when bonds are rebuilt
|
||||
|
||||
// list of my owned bonds and bias coeffs
|
||||
// persists on a proc from one event until the next
|
||||
|
||||
struct OneBond { // single IJ bond, atom I is owner
|
||||
int i,j; // current local indices of 2 bond atoms
|
||||
int iold,jold; // local indices when bonds were formed
|
||||
double r0; // relaxed bond length
|
||||
};
|
||||
|
||||
OneBond *blist; // list of owned bonds
|
||||
double *biascoeff; // biasing coefficient Cij for each bond
|
||||
int nblocal; // # of owned bonds
|
||||
int maxbond; // allocated size of blist
|
||||
|
||||
// old data from last timestep bonds were formed
|
||||
// persists on a proc from one event until the next
|
||||
// first set of vectors are maxlocal in length
|
||||
// second set of vectors are maxall in length
|
||||
|
||||
int nlocal_old; // nlocal for old atoms
|
||||
int nall_old; // nlocal+nghost for old atoms
|
||||
int maxlocal; // allocated size of old local atom vecs
|
||||
int maxall; // allocated size of old all atom vecs
|
||||
|
||||
int *numbond; // # of bonds owned by old owned atoms
|
||||
int *maxhalf; // bond index for maxstrain bond of old atoms
|
||||
int *eligible; // 0/1 flag for bias on one of old atom's bonds
|
||||
double *maxhalfstrain; // strain value for maxstrain bond of old atoms
|
||||
|
||||
int *old2now; // o2n[i] = current local index of old atom I
|
||||
// may be -1 if ghost atom has drifted
|
||||
tagint *tagold; // IDs of atoms when bonds were formed
|
||||
// 0 if a ghost atom is not in Dcut neigh list
|
||||
double **xold; // coords of atoms when bonds were formed
|
||||
|
||||
// vectors used to find maxstrain bonds within a local domain
|
||||
|
||||
int maxatom; // size of these vectors, nlocal + nghost
|
||||
|
||||
double *maxstrain; // max-strain of any bond atom I is part of
|
||||
// for owned and ghost atoms
|
||||
double *maxstrain_domain; // max-strain of any neighbor atom J of atom I
|
||||
// for owned and ghost atoms
|
||||
tagint *biasflag; // atoms in biased bonds marked with bond partner
|
||||
// for owned and ghost atoms
|
||||
|
||||
// list of biased bonds this proc owns
|
||||
|
||||
int maxbias; // allocated size of bias list
|
||||
int nbias; // # of biased bonds I own
|
||||
int *bias; // index of biased bonds in my bond list
|
||||
|
||||
// data structs for persisting bias coeffs when bond list is reformed
|
||||
|
||||
struct OneCoeff {
|
||||
double biascoeff;
|
||||
tagint tag;
|
||||
};
|
||||
|
||||
MyPage<OneCoeff> *cpage; // pages of OneCoeff datums for clist
|
||||
OneCoeff **clist; // ptrs to vectors of bias coeffs for each atom
|
||||
int *numcoeff; // # of bias coeffs per atom (one per bond)
|
||||
int maxcoeff; // allocate sized of clist and numcoeff
|
||||
|
||||
// extra timers
|
||||
|
||||
//double timefirst,timesecond,timethird,timefourth;
|
||||
//double timefifth,timesixth,timeseventh,timetotal;
|
||||
|
||||
// data structs for per-atom and per-bond info
|
||||
// all of these are for current owned and ghost atoms
|
||||
// except list and old2now are for atom indices at time of last bond build
|
||||
// private methods
|
||||
|
||||
class NeighList *list; // full neigh list up to Dcut distance
|
||||
// created only when bonds are rebuilt
|
||||
|
||||
int *old2now; // o2n[i] = current local index of old atom i
|
||||
// stored for old owned and ghost atoms
|
||||
// I = old index when bonds were last created
|
||||
// old indices are stored in old neighbor list
|
||||
|
||||
double **xold; // coords of owned+ghost atoms when bonds created
|
||||
tagint *tagold; // global IDs of owned+ghost atoms when b created
|
||||
|
||||
int maxold; // allocated size of old2now
|
||||
int maxbond; // allocated size of bonds
|
||||
int old_nall; // nlocal+nghost when old2now was last setup
|
||||
|
||||
struct OneBond { // single IJ bond, atom I is owner
|
||||
double r0; // original relaxed bond length
|
||||
double boostcoeff; // boost coefficient
|
||||
tagint jtag; // global index of J atom in bond IJ
|
||||
int j; // local index of J atom in bond IJ
|
||||
};
|
||||
|
||||
struct OneBond **bonds; // 2d array of bonds for owned atoms
|
||||
int *numbond; // number of bonds for each owned atom
|
||||
|
||||
double *maxstrain; // max-strain of any bond atom I is part of
|
||||
// for owned and ghost atoms
|
||||
double *maxstrain_region; // max-strain of any neighbor atom J of atom I
|
||||
// for owned and ghost atoms
|
||||
int *maxstrain_bondindex; // index of max-strain bond of each atom I
|
||||
// just for owned atoms
|
||||
tagint *biasflag; // atoms in biased bonds marked with bond partner
|
||||
// for owned and ghost atoms
|
||||
|
||||
// list of boosted bonds that this proc will bias
|
||||
|
||||
int maxboost; // allocated size of boost list
|
||||
int nboost; // # of boosted bonds I own
|
||||
int *boost; // index of atom I in each boosted bond
|
||||
|
||||
// histogramming of bond boost cooeficients
|
||||
|
||||
int histo_every,histo_count,histo_print,histo_steps;
|
||||
double histo_delta,invhisto_delta,histo_lo;
|
||||
bigint *histo,*allhisto;
|
||||
void grow_bond();
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -40,9 +40,7 @@ enum{NOHYPER,GLOBAL,LOCAL};
|
|||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Hyper::Hyper(LAMMPS *lmp) :
|
||||
Pointers(lmp), dumplist(NULL)
|
||||
{}
|
||||
Hyper::Hyper(LAMMPS *lmp) : Pointers(lmp), dumplist(NULL) {}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
perform hyperdynamics simulation
|
||||
|
@ -183,9 +181,6 @@ void Hyper::command(int narg, char **arg)
|
|||
|
||||
if (hyperenable) fix_hyper->init_hyper();
|
||||
|
||||
timer->barrier_start();
|
||||
time_start = timer->get_wall(Timer::TOTAL);
|
||||
|
||||
// perform initial minimization and bond list creation
|
||||
|
||||
int nevent = 0;
|
||||
|
@ -200,6 +195,14 @@ void Hyper::command(int narg, char **arg)
|
|||
if (hyperenable) fix_hyper->build_bond_list(0);
|
||||
fix_event->restore_state_quench();
|
||||
|
||||
// reset stats and timers to skip HD setup
|
||||
|
||||
nbuild = ndanger = 0;
|
||||
time_dynamics = time_quench = 0.0;
|
||||
|
||||
timer->barrier_start();
|
||||
time_start = timer->get_wall(Timer::TOTAL);
|
||||
|
||||
// main loop: dynamics, store state, quench, check event, restore state
|
||||
|
||||
int ecount;
|
||||
|
@ -260,11 +263,12 @@ void Hyper::command(int narg, char **arg)
|
|||
double maxdrift = 0.0;
|
||||
double maxbondlen = 0.0;
|
||||
double fraczero = 1.0;
|
||||
double fracneg = 1.0;
|
||||
|
||||
double nnewbond,avenboost,aveboostcoeff,maxboostcoeff,minboostcoeff;
|
||||
double maxbondperatom,neighbondperbond,aveboostnow;
|
||||
double nnewbond,avenbias,avebiascoeff,minbiascoeff,maxbiascoeff;
|
||||
double maxbondperatom,neighbondperbond,avebiasnow;
|
||||
double tbondbuild,rmaxever,rmaxeverbig,allghost_toofar;
|
||||
double lostbond,lostbondcoeff,biasoverlap,nonmatchbiascoeff;
|
||||
double lostbond,lostbondcoeff,biasoverlap;
|
||||
|
||||
if (hyperenable) {
|
||||
t_hyper = fix_hyper->query(1);
|
||||
|
@ -274,115 +278,70 @@ void Hyper::command(int narg, char **arg)
|
|||
maxdrift = fix_hyper->query(5);
|
||||
maxbondlen = fix_hyper->query(6);
|
||||
fraczero = fix_hyper->query(7);
|
||||
fracneg = fix_hyper->query(8);
|
||||
|
||||
if (hyperstyle == LOCAL) {
|
||||
nnewbond = fix_hyper->query(8);
|
||||
maxbondperatom = fix_hyper->query(9);
|
||||
avenboost = fix_hyper->query(10);
|
||||
aveboostcoeff = fix_hyper->query(11);
|
||||
maxboostcoeff = fix_hyper->query(12);
|
||||
minboostcoeff = fix_hyper->query(13);
|
||||
neighbondperbond = fix_hyper->query(14);
|
||||
aveboostnow = fix_hyper->query(15);
|
||||
tbondbuild = fix_hyper->query(16);
|
||||
rmaxever = fix_hyper->query(17);
|
||||
rmaxeverbig = fix_hyper->query(18);
|
||||
allghost_toofar = fix_hyper->query(19);
|
||||
lostbond = fix_hyper->query(20);
|
||||
lostbondcoeff = fix_hyper->query(21);
|
||||
biasoverlap = fix_hyper->query(22);
|
||||
nonmatchbiascoeff = fix_hyper->query(23);
|
||||
nnewbond = fix_hyper->query(9);
|
||||
maxbondperatom = fix_hyper->query(10);
|
||||
avenbias = fix_hyper->query(11);
|
||||
avebiascoeff = fix_hyper->query(12);
|
||||
minbiascoeff = fix_hyper->query(13);
|
||||
maxbiascoeff = fix_hyper->query(14);
|
||||
neighbondperbond = fix_hyper->query(15);
|
||||
avebiasnow = fix_hyper->query(16);
|
||||
tbondbuild = fix_hyper->query(17);
|
||||
rmaxever = fix_hyper->query(18);
|
||||
rmaxeverbig = fix_hyper->query(19);
|
||||
allghost_toofar = fix_hyper->query(20);
|
||||
biasoverlap = fix_hyper->query(21);
|
||||
}
|
||||
}
|
||||
|
||||
if (me == 0) {
|
||||
if (screen) {
|
||||
fprintf(screen,"Cummulative quantities for fix hyper:\n");
|
||||
fprintf(screen," hyper time = %g\n",t_hyper);
|
||||
fprintf(screen," time boost factor = %g\n",t_hyper/(nsteps*update->dt));
|
||||
fprintf(screen," event timesteps = %d\n",nevent_running);
|
||||
fprintf(screen," # of atoms in events = %d\n",nevent_atoms_running);
|
||||
fprintf(screen,"Quantities for this hyper run:\n");
|
||||
fprintf(screen," event timesteps = %d\n",nevent);
|
||||
fprintf(screen," # of atoms in events = %d\n",nevent_atoms);
|
||||
fprintf(screen," max length of any bond = %g\n",maxbondlen);
|
||||
fprintf(screen," max drift distance of any atom = %g\n",maxdrift);
|
||||
fprintf(screen," fraction of steps & bonds with zero bias = %g\n",
|
||||
fraczero);
|
||||
fprintf(screen,"Current quantities:\n");
|
||||
fprintf(screen," ave bonds/atom = %g\n",avebonds);
|
||||
FILE *out;
|
||||
for (int iout = 0; iout < 2; iout++) {
|
||||
if (iout == 0) out = screen;
|
||||
if (iout == 1) out = logfile;
|
||||
if (!out) continue;
|
||||
fprintf(out,"Cummulative quantities for fix hyper:\n");
|
||||
fprintf(out," hyper time = %g\n",t_hyper);
|
||||
fprintf(out," time boost factor = %g\n",t_hyper/(nsteps*update->dt));
|
||||
fprintf(out," event timesteps = %d\n",nevent_running);
|
||||
fprintf(out," # of atoms in events = %d\n",nevent_atoms_running);
|
||||
fprintf(out,"Quantities for this hyper run:\n");
|
||||
fprintf(out," event timesteps = %d\n",nevent);
|
||||
fprintf(out," # of atoms in events = %d\n",nevent_atoms);
|
||||
fprintf(out," max length of any bond = %g\n",maxbondlen);
|
||||
fprintf(out," max drift distance of any atom = %g\n",maxdrift);
|
||||
fprintf(out," fraction of biased bonds with zero bias = %g\n",fraczero);
|
||||
fprintf(out," fraction of biased bonds with negative strain = %g\n",
|
||||
fracneg);
|
||||
fprintf(out,"Current quantities:\n");
|
||||
fprintf(out," ave bonds/atom = %g\n",avebonds);
|
||||
|
||||
if (hyperstyle == LOCAL) {
|
||||
fprintf(screen,"Cummulative quantities specific to fix hyper/local:\n");
|
||||
fprintf(screen," # of new bonds formed = %g\n",nnewbond);
|
||||
fprintf(screen," max bonds/atom = %g\n",maxbondperatom);
|
||||
fprintf(screen,"Quantities for this hyper run specific to "
|
||||
fprintf(out,"Cummulative quantities specific to fix hyper/local:\n");
|
||||
fprintf(out," # of new bonds formed = %g\n",nnewbond);
|
||||
fprintf(out," max bonds/atom = %g\n",maxbondperatom);
|
||||
fprintf(out,"Quantities for this hyper run specific to "
|
||||
"fix hyper/local:\n");
|
||||
fprintf(screen," ave boosted bonds/step = %g\n",avenboost);
|
||||
fprintf(screen," ave boost coeff of all bonds = %g\n",aveboostcoeff);
|
||||
fprintf(screen," max boost coeff of any bond = %g\n",maxboostcoeff);
|
||||
fprintf(screen," min boost coeff of any bond = %g\n",minboostcoeff);
|
||||
fprintf(screen," max dist from my box of any "
|
||||
fprintf(out," ave biased bonds/step = %g\n",avenbias);
|
||||
fprintf(out," ave bias coeff of all bonds = %g\n",avebiascoeff);
|
||||
fprintf(out," min bias coeff of any bond = %g\n",minbiascoeff);
|
||||
fprintf(out," max bias coeff of any bond = %g\n",maxbiascoeff);
|
||||
fprintf(out," max dist from my subbox of any "
|
||||
"non-maxstrain bond ghost atom = %g\n",rmaxever);
|
||||
fprintf(screen," max dist from my box of any bond ghost atom = %g\n",
|
||||
fprintf(out," max dist from my box of any bond ghost atom = %g\n",
|
||||
rmaxeverbig);
|
||||
fprintf(screen," count of bond ghost neighbors "
|
||||
fprintf(out," count of bond ghost neighbors "
|
||||
"not found on reneighbor steps = %g\n",allghost_toofar);
|
||||
fprintf(screen," lost bond partners = %g\n",lostbond);
|
||||
fprintf(screen," ave bias coeff for lost bond partners = %g\n",
|
||||
lostbondcoeff);
|
||||
fprintf(screen," bias overlaps = %g\n",biasoverlap);
|
||||
fprintf(screen," non-matching bias coeffs = %g\n",nonmatchbiascoeff);
|
||||
fprintf(screen," CPU time for bond builds = %g\n",tbondbuild);
|
||||
fprintf(screen,"Current quantities specific to fix hyper/local:\n");
|
||||
fprintf(screen," neighbor bonds/bond = %g\n",neighbondperbond);
|
||||
fprintf(screen," ave boost coeff for all bonds = %g\n",aveboostnow);
|
||||
fprintf(out," bias overlaps = %g\n",biasoverlap);
|
||||
fprintf(out," CPU time for bond builds = %g\n",tbondbuild);
|
||||
fprintf(out,"Current quantities specific to fix hyper/local:\n");
|
||||
fprintf(out," neighbor bonds/bond = %g\n",neighbondperbond);
|
||||
fprintf(out," ave boost coeff for all bonds = %g\n",avebiasnow);
|
||||
}
|
||||
fprintf(screen,"\n");
|
||||
}
|
||||
|
||||
if (logfile) {
|
||||
fprintf(logfile,"Cummulative quantities for fix hyper:\n");
|
||||
fprintf(logfile," hyper time = %g\n",t_hyper);
|
||||
fprintf(logfile," event timesteps = %d\n",nevent_running);
|
||||
fprintf(logfile," # of atoms in events = %d\n",nevent_atoms_running);
|
||||
fprintf(logfile,"Quantities for this hyper run:\n");
|
||||
fprintf(logfile," event timesteps = %d\n",nevent);
|
||||
fprintf(logfile," # of atoms in events = %d\n",nevent_atoms);
|
||||
fprintf(logfile," max length of any bond = %g\n",maxbondlen);
|
||||
fprintf(logfile," max drift distance of any atom = %g\n",maxdrift);
|
||||
fprintf(logfile," fraction of steps & bonds with zero bias = %g\n",
|
||||
fraczero);
|
||||
fprintf(logfile,"Current quantities:\n");
|
||||
fprintf(logfile," ave bonds/atom = %g\n",avebonds);
|
||||
|
||||
if (hyperstyle == LOCAL) {
|
||||
fprintf(logfile,"Cummulative quantities specific tofix hyper/local:\n");
|
||||
fprintf(logfile," # of new bonds formed = %g\n",nnewbond);
|
||||
fprintf(logfile," max bonds/atom = %g\n",maxbondperatom);
|
||||
fprintf(logfile,"Quantities for this hyper run specific to "
|
||||
"fix hyper/local:\n");
|
||||
fprintf(logfile," ave boosted bonds/step = %g\n",avenboost);
|
||||
fprintf(logfile," ave boost coeff of all bonds = %g\n",aveboostcoeff);
|
||||
fprintf(logfile," max boost coeff of any bond = %g\n",maxboostcoeff);
|
||||
fprintf(logfile," min boost coeff of any bond = %g\n",minboostcoeff);
|
||||
fprintf(logfile," max dist from my box of any "
|
||||
"non-maxstrain bond ghost atom = %g\n",rmaxever);
|
||||
fprintf(logfile," max dist from my box of any bond ghost atom = %g\n",
|
||||
rmaxeverbig);
|
||||
fprintf(logfile," count of ghost bond neighbors "
|
||||
"not found on reneighbor steps = %g\n",allghost_toofar);
|
||||
fprintf(logfile," lost bond partners = %g\n",lostbond);
|
||||
fprintf(logfile," ave bias coeff for lost bond partners = %g\n",
|
||||
lostbondcoeff);
|
||||
fprintf(logfile," bias overlaps = %g\n",biasoverlap);
|
||||
fprintf(logfile," non-matching bias coeffs = %g\n",nonmatchbiascoeff);
|
||||
fprintf(logfile," CPU time for bond builds = %g\n",tbondbuild);
|
||||
fprintf(logfile,"Current quantities specific to fix hyper/local:\n");
|
||||
fprintf(logfile," neighbor bonds/bond = %g\n",neighbondperbond);
|
||||
fprintf(logfile," ave boost coeff for all bonds = %g\n",aveboostnow);
|
||||
}
|
||||
fprintf(logfile,"\n");
|
||||
fprintf(out,"\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1069,6 +1069,7 @@ void CommBrick::reverse_comm_fix_variable(Fix *fix)
|
|||
MPI_Sendrecv(&nsend,1,MPI_INT,recvproc[iswap],0,
|
||||
&nrecv,1,MPI_INT,sendproc[iswap],0,world,
|
||||
MPI_STATUS_IGNORE);
|
||||
|
||||
if (sendnum[iswap]) {
|
||||
if (nrecv > maxrecv) grow_recv(nrecv);
|
||||
MPI_Irecv(buf_recv,maxrecv,MPI_DOUBLE,sendproc[iswap],0,
|
||||
|
|
|
@ -32,7 +32,7 @@ using namespace FixConst;
|
|||
enum{X,V,F,COMPUTE,FIX,VARIABLE};
|
||||
enum{ONE,RUNNING};
|
||||
enum{SCALAR,VECTOR,WINDOW};
|
||||
enum{GLOBAL,PERATOM,LOCAL};
|
||||
enum{DEFAULT,GLOBAL,PERATOM,LOCAL};
|
||||
enum{IGNORE,END,EXTRA};
|
||||
|
||||
#define INVOKED_SCALAR 1
|
||||
|
@ -46,8 +46,10 @@ enum{IGNORE,END,EXTRA};
|
|||
|
||||
FixAveHisto::FixAveHisto(LAMMPS *lmp, int narg, char **arg) :
|
||||
Fix(lmp, narg, arg),
|
||||
nvalues(0), which(NULL), argindex(NULL), value2index(NULL), ids(NULL), fp(NULL), stats_list(NULL),
|
||||
bin(NULL), bin_total(NULL), bin_all(NULL), bin_list(NULL), coord(NULL), vector(NULL)
|
||||
nvalues(0), which(NULL), argindex(NULL), value2index(NULL),
|
||||
ids(NULL), fp(NULL), stats_list(NULL),
|
||||
bin(NULL), bin_total(NULL), bin_all(NULL), bin_list(NULL),
|
||||
coord(NULL), vector(NULL)
|
||||
{
|
||||
if (narg < 10) error->all(FLERR,"Illegal fix ave/histo command");
|
||||
|
||||
|
@ -188,9 +190,8 @@ FixAveHisto::FixAveHisto(LAMMPS *lmp, int narg, char **arg) :
|
|||
memory->sfree(earg);
|
||||
}
|
||||
|
||||
// setup and error check
|
||||
// kind = inputs are all global, or all per-atom, or all local
|
||||
// for fix inputs, check that fix frequency is acceptable
|
||||
// check input args for kind consistency
|
||||
// all inputs must all be global, per-atom, or local
|
||||
|
||||
if (nevery <= 0 || nrepeat <= 0 || nfreq <= 0)
|
||||
error->all(FLERR,"Illegal fix ave/histo command");
|
||||
|
@ -201,40 +202,65 @@ FixAveHisto::FixAveHisto(LAMMPS *lmp, int narg, char **arg) :
|
|||
if (ave != RUNNING && overwrite)
|
||||
error->all(FLERR,"Illegal fix ave/histo command");
|
||||
|
||||
int kindflag;
|
||||
int kindglobal,kindperatom,kindlocal;
|
||||
|
||||
for (int i = 0; i < nvalues; i++) {
|
||||
if (which[i] == X || which[i] == V || which[i] == F) kindflag = PERATOM;
|
||||
else if (which[i] == COMPUTE) {
|
||||
kindglobal = kindperatom = kindlocal = 0;
|
||||
|
||||
if (which[i] == X || which[i] == V || which[i] == F) {
|
||||
kindperatom = 1;
|
||||
|
||||
} else if (which[i] == COMPUTE) {
|
||||
int c_id = modify->find_compute(ids[i]);
|
||||
if (c_id < 0) error->all(FLERR,"Fix ave/histo input is invalid compute");
|
||||
Compute *compute = modify->compute[c_id];
|
||||
// computes can produce multiple kinds of output
|
||||
if (compute->scalar_flag || compute->vector_flag || compute->array_flag)
|
||||
kindflag = GLOBAL;
|
||||
else if (compute->peratom_flag) kindflag = PERATOM;
|
||||
else if (compute->local_flag) kindflag = LOCAL;
|
||||
else error->all(FLERR,"Fix ave/histo input is invalid compute");
|
||||
kindglobal = 1;
|
||||
if (compute->peratom_flag) kindperatom = 1;
|
||||
if (compute->local_flag) kindlocal = 1;
|
||||
|
||||
} else if (which[i] == FIX) {
|
||||
int f_id = modify->find_fix(ids[i]);
|
||||
if (f_id < 0) error->all(FLERR,"Fix ave/histo input is invalid fix");
|
||||
Fix *fix = modify->fix[f_id];
|
||||
// fixes can produce multiple kinds of output
|
||||
if (fix->scalar_flag || fix->vector_flag || fix->array_flag)
|
||||
kindflag = GLOBAL;
|
||||
else if (fix->peratom_flag) kindflag = PERATOM;
|
||||
else if (fix->local_flag) kindflag = LOCAL;
|
||||
else error->all(FLERR,"Fix ave/histo input is invalid fix");
|
||||
kindglobal = 1;
|
||||
if (fix->peratom_flag) kindperatom = 1;
|
||||
if (fix->local_flag) kindlocal = 1;
|
||||
|
||||
} else if (which[i] == VARIABLE) {
|
||||
int ivariable = input->variable->find(ids[i]);
|
||||
if (ivariable < 0) error->all(FLERR,"Fix ave/histo input is invalid variable");
|
||||
if (input->variable->equalstyle(ivariable)) kindflag = GLOBAL;
|
||||
else if (input->variable->atomstyle(ivariable)) kindflag = PERATOM;
|
||||
else error->all(FLERR,"Fix ave/histo input is invalid variable");
|
||||
if (ivariable < 0)
|
||||
error->all(FLERR,"Fix ave/histo input is invalid variable");
|
||||
// variables only produce one kind of output
|
||||
if (input->variable->equalstyle(ivariable)) kindglobal = 1;
|
||||
else if (input->variable->atomstyle(ivariable)) kindperatom = 1;
|
||||
else error->all(FLERR,"Fix ave/histo input is invalid kind of variable");
|
||||
}
|
||||
|
||||
if (kind == DEFAULT) {
|
||||
if (kindglobal + kindperatom + kindlocal > 1)
|
||||
error->all(FLERR,"Fix ave/histo input kind is ambiguous");
|
||||
if (kindglobal) kind = GLOBAL;
|
||||
if (kindperatom) kind = PERATOM;
|
||||
if (kindlocal) kind = LOCAL;
|
||||
} else if (kind == GLOBAL) {
|
||||
if (!kindglobal)
|
||||
error->all(FLERR,"Fix ave/histo input kind is invalid");
|
||||
} else if (kind == PERATOM) {
|
||||
if (!kindperatom)
|
||||
error->all(FLERR,"Fix ave/histo input kind is invalid");
|
||||
} else if (kind == LOCAL) {
|
||||
if (!kindlocal)
|
||||
error->all(FLERR,"Fix ave/histo input kind is invalid");
|
||||
}
|
||||
if (i == 0) kind = kindflag;
|
||||
else if (kindflag != kind)
|
||||
error->all(FLERR,
|
||||
"Fix ave/histo inputs are not all global, peratom, or local");
|
||||
}
|
||||
|
||||
// more error checks
|
||||
// for fix inputs, check that fix frequency is acceptable
|
||||
|
||||
if (kind == PERATOM && mode == SCALAR)
|
||||
error->all(FLERR,
|
||||
"Fix ave/histo cannot input per-atom values in scalar mode");
|
||||
|
@ -919,6 +945,7 @@ void FixAveHisto::options(int iarg, int narg, char **arg)
|
|||
// option defaults
|
||||
|
||||
fp = NULL;
|
||||
kind = DEFAULT;
|
||||
ave = ONE;
|
||||
startstep = 0;
|
||||
mode = SCALAR;
|
||||
|
@ -942,6 +969,13 @@ void FixAveHisto::options(int iarg, int narg, char **arg)
|
|||
}
|
||||
}
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"kind") == 0) {
|
||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command");
|
||||
if (strcmp(arg[iarg+1],"global") == 0) kind = GLOBAL;
|
||||
else if (strcmp(arg[iarg+1],"peratom") == 0) kind = PERATOM;
|
||||
else if (strcmp(arg[iarg+1],"local") == 0) kind = LOCAL;
|
||||
else error->all(FLERR,"Illegal fix ave/histo command");
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"ave") == 0) {
|
||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command");
|
||||
if (strcmp(arg[iarg+1],"one") == 0) ave = ONE;
|
||||
|
|
|
@ -380,9 +380,8 @@ void Thermo::compute(int flag)
|
|||
loc += sprintf(&line[loc],format[ifield],dvalue);
|
||||
else if (vtype[ifield] == INT)
|
||||
loc += sprintf(&line[loc],format[ifield],ivalue);
|
||||
else if (vtype[ifield] == BIGINT) {
|
||||
else if (vtype[ifield] == BIGINT)
|
||||
loc += sprintf(&line[loc],format[ifield],bivalue);
|
||||
}
|
||||
}
|
||||
|
||||
// print line to screen and logfile
|
||||
|
|