forked from lijiext/lammps
Merge pull request #490 from EmileMaras/NEB-Change
added several features to the NEB
This commit is contained in:
commit
34cfc7bd51
|
@ -10,68 +10,156 @@ fix neb command :h3
|
|||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID neb Kspring :pre
|
||||
fix ID group-ID neb Kspring keyword value :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
neb = style name of this fix command
|
||||
Kspring = inter-replica spring constant (force/distance units) :ul
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
neb = style name of this fix command :l
|
||||
Kspring = parallel spring constant (force/distance units or force units) :l
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {nudg_style} or {perp} or {freend} or {freend_k_spring} :l
|
||||
{nudg_style} value = {neigh} or {idealpos}
|
||||
{neigh} = the parallel nudging force is calculated from the distances to neighbouring replicas (in this case, Kspring is in force/distance units)
|
||||
{idealpos} = the parallel nudging force is proportional to the distance between the replica and its interpolated ideal position (in this case Kspring is in force units)
|
||||
{perp} value {none} or kspring2
|
||||
{none} = no perpendicular spring force is applied
|
||||
{kspring2} = spring constant for the perpendicular nudging force (in force/distance units)
|
||||
{freeend} value = {none} or {ini} or {final} or {finaleini} or {final2eini}
|
||||
{none} = no nudging force is applied to the first and last replicas
|
||||
{ini} = set the first replica to be a free end
|
||||
{final} = set the last replica to be a free end
|
||||
{finaleini} = set the last replica to be a free end and set its target energy as that of the first replica
|
||||
{final2eini} = same as {finaleini} plus prevent intermediate replicas to have a lower energy than the first replica
|
||||
{freeend_kspring} value = kspring3
|
||||
kspring3 = spring constant of the perpendicular spring force (per distance units)
|
||||
:pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 active neb 10.0 :pre
|
||||
fix 1 active neb 10.0
|
||||
fix 2 all neb 1.0 perp 1.0 freeend final
|
||||
fix 1 all neb 1.0 nudg_style idealpos freeend final2eini freend_kspring 1:pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Add inter-replica forces to atoms in the group for a multi-replica
|
||||
Add a nudging force to atoms in the group for a multi-replica
|
||||
simulation run via the "neb"_neb.html command to perform a nudged
|
||||
elastic band (NEB) calculation for transition state finding. Hi-level
|
||||
explanations of NEB are given with the "neb"_neb.html command and in
|
||||
"Section 6.5"_Section_howto.html#howto_5 of the manual. The fix
|
||||
neb command must be used with the "neb" command to define how
|
||||
inter-replica forces are computed.
|
||||
elastic band (NEB) calculation for finding the transition state.
|
||||
Hi-level explanations of NEB are given with the "neb"_neb.html command
|
||||
and in "Section_howto 5"_Section_howto.html#howto_5 of the manual.
|
||||
The fix neb command must be used with the "neb" command and defines
|
||||
how nudging inter-replica forces are computed. A NEB calculation is
|
||||
divided in two stages. In the first stage n replicas are relaxed
|
||||
toward a MEP and in a second stage, the climbing image scheme (see
|
||||
"(Henkelman2)"_#Henkelman2) is turned on so that the replica having
|
||||
the highest energy relaxes toward the saddle point (i.e. the point of
|
||||
highest energy along the MEP).
|
||||
|
||||
Only the N atoms in the fix group experience inter-replica forces.
|
||||
Atoms in the two end-point replicas do not experience these forces,
|
||||
but those in intermediate replicas do. During the initial stage of
|
||||
NEB, the 3N-length vector of interatomic forces Fi = -Grad(V) acting
|
||||
on the atoms of each intermediate replica I is altered, as described
|
||||
in the "(Henkelman1)"_#Henkelman1 paper, to become:
|
||||
One purpose of the nudging forces is to keep the replicas equally
|
||||
spaced. During the NEB, the 3N-length vector of interatomic force Fi
|
||||
= -Grad(V) of replicas i is altered. For all intermediate replicas
|
||||
(i.e. for 1<i<n) but the climbing replica the force vector
|
||||
becomes:
|
||||
|
||||
Fi = -Grad(V) + (Grad(V) dot That) That + Kspring (| Ri+i - Ri | - | Ri - Ri-1 |) That :pre
|
||||
Fi = -Grad(V) + (Grad(V) dot That) That + Fnudgparallel + Fspringperp :pre
|
||||
|
||||
Ri are the atomic coordinates of replica I; Ri-1 and Ri+1 are the
|
||||
coordinates of its neighbor replicas. That (t with a hat over it) is
|
||||
the unit "tangent" vector for replica I which is a function of Ri,
|
||||
Ri-1, Ri+1, and the potential energy of the 3 replicas; it points
|
||||
roughly in the direction of (Ri+i - Ri-1); see the
|
||||
"(Henkelman1)"_#Henkelman1 paper for details.
|
||||
That is the unit "tangent" vector for replica i and is a function of
|
||||
Ri, Ri-1, Ri+1, and the potential energy of the 3 replicas; it points
|
||||
roughly in the direction of (Ri+i - Ri-1) (see the
|
||||
"(Henkelman1)"_#Henkelman1 paper for details). Ri are the atomic
|
||||
coordinates of replica i; Ri-1 and Ri+1 are the coordinates of its
|
||||
neighbor replicas. The term (Grad(V) dot That) is used to remove the
|
||||
component of the gradient parallel to the path which would tend to
|
||||
distribute the replica unevenly along the path. Fnudgparallel is an
|
||||
artificial nudging force which is applied only in the tangent direction
|
||||
and which maintains the replicas equally spaced (see below for more
|
||||
information). Fspringperp is an optinal artificial spring which is
|
||||
applied only perpendicular to the tangent and which prevent the paths
|
||||
from forming too acute kinks (see below for more information).
|
||||
|
||||
The first two terms in the above equation are the component of the
|
||||
interatomic forces perpendicular to the tangent vector. The last term
|
||||
is a spring force between replica I and its neighbors, parallel to the
|
||||
tangent vector direction with the specified spring constant {Kspring}.
|
||||
The keyword {nudg_style} allow to specify how to parallel
|
||||
nudging force is computed. With a value of idealpos, the spring
|
||||
force is computed as suggested in "(E)"_#E :
|
||||
|
||||
Fnudgparallel=-{Kspring}* (RD-RDideal)/(2 meanDist) :pre
|
||||
|
||||
The effect of the first two terms is to push the atoms of each replica
|
||||
toward the minimum energy path (MEP) of conformational states that
|
||||
transition over the energy barrier. The MEP for an energy barrier is
|
||||
defined as a sequence of 3N-dimensional states which cross the barrier
|
||||
at its saddle point, each of which has a potential energy gradient
|
||||
parallel to the MEP itself.
|
||||
where RD is the "reaction coordinate" see "neb"_neb.html section, and
|
||||
RDideal is the ideal RD for which all the images are equally spaced
|
||||
(i.e. RDideal = (i-1)*meanDist when the climbing image is off, where i
|
||||
is the replica number). The meanDist is the average distance between
|
||||
replicas.
|
||||
|
||||
The effect of the last term is to push each replica away from its two
|
||||
neighbors in a direction along the MEP, so that the final set of
|
||||
states are equidistant from each other.
|
||||
When {nudg_style} has a value of neigh (or by default), the parallel
|
||||
nudging force is computed as in "(Henkelman1)"_#Henkelman1 by
|
||||
connecting each intermediate replica with the previous and the next
|
||||
image:
|
||||
|
||||
During the second stage of NEB, the forces on the N atoms in the
|
||||
replica nearest the top of the energy barrier are altered so that it
|
||||
climbs to the top of the barrier and finds the saddle point. The
|
||||
forces on atoms in this replica are described in the
|
||||
"(Henkelman2)"_#Henkelman2 paper, and become:
|
||||
Fnudgparallel= {Kspring}* (|Ri+1 - Ri| - |Ri - Ri-1|) :pre
|
||||
|
||||
The parallel nudging force associated with the key word idealpos should
|
||||
usually be more efficient at keeping the images equally spaced.
|
||||
|
||||
:line
|
||||
|
||||
The keyword {perp} allows to add a spring force perpendicular to the
|
||||
path in order to prevent the path from becoming too kinky. It can
|
||||
improve significantly the convergence of the NEB when the resolution
|
||||
is poor (i.e. when too few images are used) (see "(Maras)"_#Maras1).
|
||||
The perpendicular spring force is given by
|
||||
|
||||
Fspringperp = {Kspringperp} * f(Ri-1,Ri,Ri+1) (Ri+1 + Ri-1 - 2 Ri) :pre
|
||||
|
||||
f(Ri-1 Ri R+1) is a smooth scalar function of the angle Ri-1 Ri
|
||||
Ri+1. It is equal to 0 when the path is straight and is equal to 1
|
||||
when the angle Ri-1 Ri Ri+1 is accute. f(Ri-1 Ri R+1) is defined in
|
||||
"(Jonsson)"_#Jonsson
|
||||
|
||||
:line
|
||||
|
||||
By default, the force acting on the first and last replicas is not
|
||||
altered so that during the NEB relaxation, these ending replicas relax
|
||||
toward local minima. However it is possible to use the key word
|
||||
{freeend} to allow either the initial or the final replica to relax
|
||||
toward a MEP while constraining its energy. The interatomic force Fi
|
||||
for the free end image becomes :
|
||||
|
||||
Fi = -Grad(V)+ (Grad(V) dot That + (E-ETarget)*kspring3) That, {when} Grad(V) dot That < 0
|
||||
Fi = -Grad(V)+ (Grad(V) dot That + (ETarget- E)*kspring3) That, {when} Grad(V) dot That > 0
|
||||
:pre
|
||||
|
||||
where E is the energy of the free end replica and ETarget is the
|
||||
target energy.
|
||||
|
||||
When the value {ini} ({final}) is used after the keyword {freeend},
|
||||
the first (last) replica is considered as a free end. The target
|
||||
energy is set to the energy of the replica at starting of the NEB
|
||||
calculation. When the value {finaleini} or {final2eini} is used the
|
||||
last image is considered as a free end and the target energy is equal
|
||||
to the energy of the first replica (which can evolve during the NEB
|
||||
relaxation). With the value {finaleini}, when the initial path is too
|
||||
far from the MEP, an intermediate repilica might relax "faster" and
|
||||
get a lower energy than the last replica. The benefit of the free end
|
||||
is then lost since this intermediate replica will relax toward a local
|
||||
minima. This behavior can be prevented by using the value {final2eini}
|
||||
which remove entirely the contribution of the gradient for all
|
||||
intermediate replica which have a lower energy than the initial one
|
||||
thus preventing these replicae to over-relax. After converging a NEB
|
||||
with the {final2eini} value it is recommended to check that all
|
||||
intermediate replica have a larger energy than the initial
|
||||
replica. Finally note that if the last replica converges toward a
|
||||
local minimum with a larger energy than the energy of the first
|
||||
replica, a free end neb calculation with the value {finaleini} or
|
||||
{final2eini} cannot reach the convergence criteria.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
|
||||
In the second stage of the NEB, the interatomic force Fi for the
|
||||
climbing replica (which is the replica of highest energy) becomes:
|
||||
|
||||
Fi = -Grad(V) + 2 (Grad(V) dot That) That :pre
|
||||
|
||||
The inter-replica forces for the other replicas are unchanged from the
|
||||
first equation.
|
||||
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
|
@ -96,7 +184,11 @@ for more info on packages.
|
|||
|
||||
"neb"_neb.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
The option defaults are nudg_style = neigh, perp = none, freeend = none and freend_kspring = 1.
|
||||
|
||||
:line
|
||||
|
||||
:link(Henkelman1)
|
||||
[(Henkelman1)] Henkelman and Jonsson, J Chem Phys, 113, 9978-9985 (2000).
|
||||
|
@ -104,3 +196,15 @@ for more info on packages.
|
|||
:link(Henkelman2)
|
||||
[(Henkelman2)] Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,
|
||||
9901-9904 (2000).
|
||||
|
||||
:link(E)
|
||||
[(E)] E, Ren, Vanden-Eijnden, Phys Rev B, 66, 052301 (2002)
|
||||
|
||||
:link(Jonsson)
|
||||
[(Jonsson)] Jonsson, Mills and Jacobsen, in Classical and Quantum
|
||||
Dynamics in Condensed Phase Simulations, edited by Berne, Ciccotti, and Coker
|
||||
World Scientific, Singapore, 1998, p. 385
|
||||
|
||||
:link(Maras1)
|
||||
[(Maras)] Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,
|
||||
Comp Phys Comm, 205, 13-21 (2016)
|
||||
|
|
219
doc/src/neb.txt
219
doc/src/neb.txt
|
@ -10,28 +10,31 @@ neb command :h3
|
|||
|
||||
[Syntax:]
|
||||
|
||||
neb etol ftol N1 N2 Nevery file-style arg :pre
|
||||
neb etol ftol N1 N2 Nevery file-style arg keyword :pre
|
||||
|
||||
etol = stopping tolerance for energy (energy units) :ulb,l
|
||||
ftol = stopping tolerance for force (force units) :l
|
||||
N1 = max # of iterations (timesteps) to run initial NEB :l
|
||||
N2 = max # of iterations (timesteps) to run barrier-climbing NEB :l
|
||||
Nevery = print replica energies and reaction coordinates every this many timesteps :l
|
||||
file-style= {final} or {each} or {none} :l
|
||||
file-style = {final} or {each} or {none} :l
|
||||
{final} arg = filename
|
||||
filename = file with initial coords for final replica
|
||||
coords for intermediate replicas are linearly interpolated between first and last replica
|
||||
coords for intermediate replicas are linearly interpolated
|
||||
between first and last replica
|
||||
{each} arg = filename
|
||||
filename = unique filename for each replica (except first) with its initial coords
|
||||
{none} arg = no argument
|
||||
all replicas assumed to already have their initial coords :pre
|
||||
filename = unique filename for each replica (except first)
|
||||
with its initial coords
|
||||
{none} arg = no argument all replicas assumed to already have
|
||||
their initial coords :pre
|
||||
keyword = {verbose}
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
neb 0.1 0.0 1000 500 50 final coords.final
|
||||
neb 0.0 0.001 1000 500 50 each coords.initial.$i
|
||||
neb 0.0 0.001 1000 500 50 none :pre
|
||||
neb 0.0 0.001 1000 500 50 none verbose :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
@ -43,8 +46,8 @@ NEB is a method for finding both the atomic configurations and height
|
|||
of the energy barrier associated with a transition state, e.g. for an
|
||||
atom to perform a diffusive hop from one energy basin to another in a
|
||||
coordinated fashion with its neighbors. The implementation in LAMMPS
|
||||
follows the discussion in these 3 papers: "(HenkelmanA)"_#HenkelmanA,
|
||||
"(HenkelmanB)"_#HenkelmanB, and "(Nakano)"_#Nakano3.
|
||||
follows the discussion in these 4 papers: "(HenkelmanA)"_#HenkelmanA,
|
||||
"(HenkelmanB)"_#HenkelmanB, "(Nakano)"_#Nakano3 and "(Maras)"_#Maras2.
|
||||
|
||||
Each replica runs on a partition of one or more processors. Processor
|
||||
partitions are defined at run-time using the -partition command-line
|
||||
|
@ -70,18 +73,17 @@ I.e. the simulation domain, the number of atoms, the interaction
|
|||
potentials, and the starting configuration when the neb command is
|
||||
issued should be the same for every replica.
|
||||
|
||||
In a NEB calculation each atom in a replica is connected to the same
|
||||
atom in adjacent replicas by springs, which induce inter-replica
|
||||
forces. These forces are imposed by the "fix neb"_fix_neb.html
|
||||
command, which must be used in conjunction with the neb command. The
|
||||
group used to define the fix neb command defines the NEB atoms which
|
||||
are the only ones that inter-replica springs are applied to. If the
|
||||
group does not include all atoms, then non-NEB atoms have no
|
||||
inter-replica springs and the forces they feel and their motion is
|
||||
computed in the usual way due only to other atoms within their
|
||||
replica. Conceptually, the non-NEB atoms provide a background force
|
||||
field for the NEB atoms. They can be allowed to move during the NEB
|
||||
minimization procedure (which will typically induce different
|
||||
In a NEB calculation each replica is connected to other replicas by
|
||||
inter-replica nudging forces. These forces are imposed by the "fix
|
||||
neb"_fix_neb.html command, which must be used in conjunction with the
|
||||
neb command. The group used to define the fix neb command defines the
|
||||
NEB atoms which are the only ones that inter-replica springs are
|
||||
applied to. If the group does not include all atoms, then non-NEB
|
||||
atoms have no inter-replica springs and the forces they feel and their
|
||||
motion is computed in the usual way due only to other atoms within
|
||||
their replica. Conceptually, the non-NEB atoms provide a background
|
||||
force field for the NEB atoms. They can be allowed to move during the
|
||||
NEB minimization procedure (which will typically induce different
|
||||
coordinates for non-NEB atoms in different replicas), or held fixed
|
||||
using other LAMMPS commands such as "fix setforce"_fix_setforce.html.
|
||||
Note that the "partition"_partition.html command can be used to invoke
|
||||
|
@ -93,33 +95,18 @@ specified in different manners via the {file-style} setting, as
|
|||
discussed below. Only atoms whose initial coordinates should differ
|
||||
from the current configuration need be specified.
|
||||
|
||||
Conceptually, the initial configuration for the first replica should
|
||||
be a state with all the atoms (NEB and non-NEB) having coordinates on
|
||||
one side of the energy barrier. A perfect energy minimum is not
|
||||
required, since atoms in the first replica experience no spring forces
|
||||
from the 2nd replica. Thus the damped dynamics minimization will
|
||||
drive the first replica to an energy minimum if it is not already
|
||||
there. However, you will typically get better convergence if the
|
||||
initial state is already at a minimum. For example, for a system with
|
||||
a free surface, the surface should be fully relaxed before attempting
|
||||
a NEB calculation.
|
||||
|
||||
Likewise, the initial configuration of the final replica should be a
|
||||
state with all the atoms (NEB and non-NEB) on the other side of the
|
||||
energy barrier. Again, a perfect energy minimum is not required,
|
||||
since the atoms in the last replica also experience no spring forces
|
||||
from the next-to-last replica, and thus the damped dynamics
|
||||
minimization will drive it to an energy minimum.
|
||||
Conceptually, the initial and final configurations for the first
|
||||
replica should be states on either side of an energy barrier.
|
||||
|
||||
As explained below, the initial configurations of intermediate
|
||||
replicas can be atomic coordinates interpolated in a linear fashion
|
||||
between the first and last replicas. This is often adequate state for
|
||||
between the first and last replicas. This is often adequate for
|
||||
simple transitions. For more complex transitions, it may lead to slow
|
||||
convergence or even bad results if the minimum energy path (MEP, see
|
||||
below) of states over the barrier cannot be correctly converged to
|
||||
from such an initial configuration. In this case, you will want to
|
||||
generate initial states for the intermediate replicas that are
|
||||
geometrically closer to the MEP and read them in.
|
||||
from such an initial path. In this case, you will want to generate
|
||||
initial states for the intermediate replicas that are geometrically
|
||||
closer to the MEP and read them in.
|
||||
|
||||
:line
|
||||
|
||||
|
@ -135,10 +122,11 @@ is assigned to be a fraction of the distance. E.g. if there are 10
|
|||
replicas, the 2nd replica will assign a position that is 10% of the
|
||||
distance along a line between the starting and final point, and the
|
||||
9th replica will assign a position that is 90% of the distance along
|
||||
the line. Note that this procedure to produce consistent coordinates
|
||||
across all the replicas, the current coordinates need to be the same
|
||||
in all replicas. LAMMPS does not check for this, but invalid initial
|
||||
configurations will likely result if it is not the case.
|
||||
the line. Note that for this procedure to produce consistent
|
||||
coordinates across all the replicas, the current coordinates need to
|
||||
be the same in all replicas. LAMMPS does not check for this, but
|
||||
invalid initial configurations will likely result if it is not the
|
||||
case.
|
||||
|
||||
NOTE: The "distance" between the starting and final point is
|
||||
calculated in a minimum-image sense for a periodic simulation box.
|
||||
|
@ -150,8 +138,8 @@ interpolation is outside the periodic box, the atom will be wrapped
|
|||
back into the box when the NEB calculation begins.
|
||||
|
||||
For a {file-style} setting of {each}, a filename is specified which is
|
||||
assumed to be unique to each replica. This can be done by
|
||||
using a variable in the filename, e.g.
|
||||
assumed to be unique to each replica. This can be done by using a
|
||||
variable in the filename, e.g.
|
||||
|
||||
variable i equal part
|
||||
neb 0.0 0.001 1000 500 50 each coords.initial.$i :pre
|
||||
|
@ -198,11 +186,10 @@ The minimizer tolerances for energy and force are set by {etol} and
|
|||
A non-zero {etol} means that the NEB calculation will terminate if the
|
||||
energy criterion is met by every replica. The energies being compared
|
||||
to {etol} do not include any contribution from the inter-replica
|
||||
forces, since these are non-conservative. A non-zero {ftol} means
|
||||
that the NEB calculation will terminate if the force criterion is met
|
||||
by every replica. The forces being compared to {ftol} include the
|
||||
inter-replica forces between an atom and its images in adjacent
|
||||
replicas.
|
||||
nudging forces, since these are non-conservative. A non-zero {ftol}
|
||||
means that the NEB calculation will terminate if the force criterion
|
||||
is met by every replica. The forces being compared to {ftol} include
|
||||
the inter-replica nudging forces.
|
||||
|
||||
The maximum number of iterations in each stage is set by {N1} and
|
||||
{N2}. These are effectively timestep counts since each iteration of
|
||||
|
@ -220,27 +207,27 @@ finding a good energy barrier. {N1} and {N2} must both be multiples
|
|||
of {Nevery}.
|
||||
|
||||
In the first stage of NEB, the set of replicas should converge toward
|
||||
the minimum energy path (MEP) of conformational states that transition
|
||||
over the barrier. The MEP for a barrier is defined as a sequence of
|
||||
3N-dimensional states that cross the barrier at its saddle point, each
|
||||
of which has a potential energy gradient parallel to the MEP itself.
|
||||
The replica states will also be roughly equally spaced along the MEP
|
||||
due to the inter-replica spring force added by the "fix
|
||||
neb"_fix_neb.html command.
|
||||
a minimum energy path (MEP) of conformational states that transition
|
||||
over a barrier. The MEP for a transition is defined as a sequence of
|
||||
3N-dimensional states, each of which has a potential energy gradient
|
||||
parallel to the MEP itself. The configuration of highest energy along
|
||||
a MEP corresponds to a saddle point. The replica states will also be
|
||||
roughly equally spaced along the MEP due to the inter-replica nugding
|
||||
force added by the "fix neb"_fix_neb.html command.
|
||||
|
||||
In the second stage of NEB, the replica with the highest energy
|
||||
is selected and the inter-replica forces on it are converted to a
|
||||
force that drives its atom coordinates to the top or saddle point of
|
||||
the barrier, via the barrier-climbing calculation described in
|
||||
In the second stage of NEB, the replica with the highest energy is
|
||||
selected and the inter-replica forces on it are converted to a force
|
||||
that drives its atom coordinates to the top or saddle point of the
|
||||
barrier, via the barrier-climbing calculation described in
|
||||
"(HenkelmanB)"_#HenkelmanB. As before, the other replicas rearrange
|
||||
themselves along the MEP so as to be roughly equally spaced.
|
||||
|
||||
When both stages are complete, if the NEB calculation was successful,
|
||||
one of the replicas should be an atomic configuration at the top or
|
||||
saddle point of the barrier, the potential energies for the set of
|
||||
replicas should represent the energy profile of the barrier along the
|
||||
MEP, and the configurations of the replicas should be a sequence of
|
||||
configurations along the MEP.
|
||||
the configurations of the replicas should be along (close to) the MEP
|
||||
and the replica with the highest energy should be an atomic
|
||||
configuration at (close to) the saddle point of the transition. The
|
||||
potential energies for the set of replicas represents the energy
|
||||
profile of the transition along the MEP.
|
||||
|
||||
:line
|
||||
|
||||
|
@ -284,9 +271,9 @@ ID2 x2 y2 z2
|
|||
...
|
||||
IDN xN yN zN :pre
|
||||
|
||||
The fields are the atom ID, followed by the x,y,z coordinates.
|
||||
The lines can be listed in any order. Additional trailing information
|
||||
on the line is OK, such as a comment.
|
||||
The fields are the atom ID, followed by the x,y,z coordinates. The
|
||||
lines can be listed in any order. Additional trailing information on
|
||||
the line is OK, such as a comment.
|
||||
|
||||
Note that for a typical NEB calculation you do not need to specify
|
||||
initial coordinates for very many atoms to produce differing starting
|
||||
|
@ -310,38 +297,54 @@ this case), the print-out to the screen and master log.lammps file
|
|||
contains a line of output, printed once every {Nevery} timesteps. It
|
||||
contains the timestep, the maximum force per replica, the maximum
|
||||
force per atom (in any replica), potential gradients in the initial,
|
||||
final, and climbing replicas, the forward and backward energy barriers,
|
||||
the total reaction coordinate (RDT), and the normalized reaction
|
||||
coordinate and potential energy of each replica.
|
||||
final, and climbing replicas, the forward and backward energy
|
||||
barriers, the total reaction coordinate (RDT), and the normalized
|
||||
reaction coordinate and potential energy of each replica.
|
||||
|
||||
The "maximum force per replica" is
|
||||
the two-norm of the 3N-length force vector for the atoms in each
|
||||
replica, maximized across replicas, which is what the {ftol} setting
|
||||
is checking against. In this case, N is all the atoms in each
|
||||
replica. The "maximum force per atom" is the maximum force component
|
||||
of any atom in any replica. The potential gradients are the two-norm
|
||||
of the 3N-length force vector solely due to the interaction potential i.e.
|
||||
without adding in inter-replica forces. Note that inter-replica forces
|
||||
are zero in the initial and final replicas, and only affect
|
||||
the direction in the climbing replica. For this reason, the "maximum
|
||||
force per replica" is often equal to the potential gradient in the
|
||||
climbing replica. In the first stage of NEB, there is no climbing
|
||||
replica, and so the potential gradient in the highest energy replica
|
||||
is reported, since this replica will become the climbing replica
|
||||
in the second stage of NEB.
|
||||
The "maximum force per replica" is the two-norm of the 3N-length force
|
||||
vector for the atoms in each replica, maximized across replicas, which
|
||||
is what the {ftol} setting is checking against. In this case, N is
|
||||
all the atoms in each replica. The "maximum force per atom" is the
|
||||
maximum force component of any atom in any replica. The potential
|
||||
gradients are the two-norm of the 3N-length force vector solely due to
|
||||
the interaction potential i.e. without adding in inter-replica
|
||||
forces.
|
||||
|
||||
The "reaction coordinate" (RD) for each
|
||||
replica is the two-norm of the 3N-length vector of distances between
|
||||
its atoms and the preceding replica's atoms, added to the RD of the
|
||||
preceding replica. The RD of the first replica RD1 = 0.0;
|
||||
the RD of the final replica RDN = RDT, the total reaction coordinate.
|
||||
The normalized RDs are divided by RDT,
|
||||
so that they form a monotonically increasing sequence
|
||||
from zero to one. When computing RD, N only includes the atoms
|
||||
being operated on by the fix neb command.
|
||||
The "reaction coordinate" (RD) for each replica is the two-norm of the
|
||||
3N-length vector of distances between its atoms and the preceding
|
||||
replica's atoms, added to the RD of the preceding replica. The RD of
|
||||
the first replica RD1 = 0.0; the RD of the final replica RDN = RDT,
|
||||
the total reaction coordinate. The normalized RDs are divided by RDT,
|
||||
so that they form a monotonically increasing sequence from zero to
|
||||
one. When computing RD, N only includes the atoms being operated on by
|
||||
the fix neb command.
|
||||
|
||||
The forward (reverse) energy barrier is the potential energy of the highest
|
||||
replica minus the energy of the first (last) replica.
|
||||
The forward (reverse) energy barrier is the potential energy of the
|
||||
highest replica minus the energy of the first (last) replica.
|
||||
|
||||
Supplementary informations for all replicas can be printed out to the
|
||||
screen and master log.lammps file by adding the verbose keyword. These
|
||||
informations include the following. The "path angle" (pathangle) for
|
||||
the replica i which is the angle between the 3N-length vectors (Ri-1 -
|
||||
Ri) and (Ri+1 - Ri) (where Ri is the atomic coordinates of replica
|
||||
i). A "path angle" of 180 indicates that replicas i-1, i and i+1 are
|
||||
aligned. "angletangrad" is the angle between the 3N-length tangent
|
||||
vector and the 3N-length force vector at image i. The tangent vector
|
||||
is calculated as in "(HenkelmanA)"_#HenkelmanA for all intermediate
|
||||
replicas and at R2 - R1 and RM - RM-1 for the first and last replica,
|
||||
respectively. "anglegrad" is the angle between the 3N-length energy
|
||||
gradient vector of replica i and that of replica i+1. It is not
|
||||
defined for the final replica and reads nan. gradV is the norm of the
|
||||
energy gradient of image i. ReplicaForce is the two-norm of the
|
||||
3N-length force vector (including nudging forces) for replica i.
|
||||
MaxAtomForce is the maximum force component of any atom in replica i.
|
||||
|
||||
When a NEB calculation does not converge properly, these suplementary
|
||||
informations can help understanding what is going wrong. For instance
|
||||
when the path angle becomes accute the definition of tangent used in
|
||||
the NEB calculation is questionable and the NEB cannot may diverge
|
||||
"(Maras)"_#Maras2.
|
||||
|
||||
|
||||
When running on multiple partitions, LAMMPS produces additional log
|
||||
files for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a
|
||||
|
@ -396,12 +399,16 @@ This command can only be used if LAMMPS was built with the REPLICA
|
|||
package. See the "Making LAMMPS"_Section_start.html#start_3 section
|
||||
for more info on packages.
|
||||
|
||||
:line
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"prd"_prd.html, "temper"_temper.html, "fix
|
||||
langevin"_fix_langevin.html, "fix viscous"_fix_viscous.html
|
||||
"prd"_prd.html, "temper"_temper.html, "fix langevin"_fix_langevin.html,
|
||||
"fix viscous"_fix_viscous.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
none
|
||||
|
||||
:line
|
||||
|
||||
|
@ -414,3 +421,7 @@ langevin"_fix_langevin.html, "fix viscous"_fix_viscous.html
|
|||
|
||||
:link(Nakano3)
|
||||
[(Nakano)] Nakano, Comp Phys Comm, 178, 280-289 (2008).
|
||||
|
||||
:link(Maras2)
|
||||
[(Maras)] Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,
|
||||
Comp Phys Comm, 205, 13-21 (2016)
|
||||
|
|
|
@ -2,13 +2,19 @@ Run these examples as:
|
|||
|
||||
mpirun -np 4 lmp_g++ -partition 4x1 -in in.neb.hop1
|
||||
mpirun -np 4 lmp_g++ -partition 4x1 -in in.neb.hop2
|
||||
mpirun -np 4 lmp_g++ -partition 4x1 -in in.neb.hop1freeend
|
||||
mpirun -np 3 lmp_g++ -partition 3x1 -in in.neb.sivac
|
||||
|
||||
mpirun -np 8 lmp_g++ -partition 4x2 -in in.neb.hop1
|
||||
mpirun -np 8 lmp_g++ -partition 4x2 -in in.neb.hop2
|
||||
mpirun -np 8 lmp_g++ -partition 4x2 -in in.neb.hop1freeend
|
||||
mpirun -np 6 lmp_g++ -partition 3x2 -in in.neb.sivac
|
||||
mpirun -np 9 lmp_g++ -partition 3x3 -in in.neb.sivac
|
||||
|
||||
|
||||
Note that more than 4 replicas should be used for a precise estimate
|
||||
of the activation energy corresponding to a transition.
|
||||
|
||||
If you uncomment the dump command lines in the input scripts, you can
|
||||
create dump files to do visualization from via Python tools: (see
|
||||
lammps/tools/README and lammps/tools/python/README for more info on
|
||||
|
|
|
@ -51,7 +51,7 @@ set group nebatoms type 3
|
|||
group nonneb subtract all nebatoms
|
||||
|
||||
fix 1 lower setforce 0.0 0.0 0.0
|
||||
fix 2 nebatoms neb 1.0
|
||||
fix 2 nebatoms neb 1.0 nudg_style idealpos
|
||||
fix 3 all enforce2d
|
||||
|
||||
thermo 100
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
# 2d NEB surface simulation, hop from surface to become adatom
|
||||
|
||||
dimension 2
|
||||
boundary p s p
|
||||
|
||||
atom_style atomic
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 5
|
||||
atom_modify map array sort 0 0.0
|
||||
|
||||
variable u uloop 20
|
||||
|
||||
# create geometry with flat surface
|
||||
|
||||
lattice hex 0.9
|
||||
region box block 0 20 0 10 -0.25 0.25
|
||||
|
||||
read_data initial.hop1freeend
|
||||
|
||||
# LJ potentials
|
||||
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff * * 1.0 1.0 2.5
|
||||
pair_modify shift yes
|
||||
|
||||
# define groups
|
||||
|
||||
region 1 block INF INF INF 1.25 INF INF
|
||||
group lower region 1
|
||||
group mobile subtract all lower
|
||||
set group lower type 2
|
||||
|
||||
timestep 0.05
|
||||
|
||||
# group of NEB atoms - either block or single atom ID 412
|
||||
|
||||
region surround block 10 18 17 20 0 0 units box
|
||||
group nebatoms region surround
|
||||
#group nebatoms id 412
|
||||
set group nebatoms type 3
|
||||
group nonneb subtract all nebatoms
|
||||
|
||||
fix 1 lower setforce 0.0 0.0 0.0
|
||||
fix 2 nebatoms neb 1.0 nudg_style idealpos freeend ini
|
||||
fix 3 all enforce2d
|
||||
|
||||
thermo 100
|
||||
|
||||
#dump 1 nebatoms atom 10 dump.neb.$u
|
||||
#dump 2 nonneb atom 10 dump.nonneb.$u
|
||||
|
||||
# run NEB for 2000 steps or to force tolerance
|
||||
|
||||
min_style quickmin
|
||||
|
||||
neb 0.0 0.1 1000 1000 100 final final.hop1
|
|
@ -53,7 +53,7 @@ set group nebatoms type 3
|
|||
group nonneb subtract all nebatoms
|
||||
|
||||
fix 1 lower setforce 0.0 0.0 0.0
|
||||
fix 2 nebatoms neb 1.0
|
||||
fix 2 nebatoms neb 1.0
|
||||
fix 3 all enforce2d
|
||||
|
||||
thermo 100
|
||||
|
|
|
@ -66,7 +66,7 @@ minimize 1.0e-6 1.0e-4 1000 10000
|
|||
|
||||
reset_timestep 0
|
||||
|
||||
fix 1 all neb 1.0
|
||||
fix 1 all neb 1.0
|
||||
|
||||
thermo 100
|
||||
|
||||
|
|
|
@ -0,0 +1,860 @@
|
|||
LAMMPS data file via write_data, version 4 May 2017, timestep = 155
|
||||
|
||||
420 atoms
|
||||
3 atom types
|
||||
|
||||
0.0000000000000000e+00 2.2653923264628304e+01 xlo xhi
|
||||
2.1918578738841410e-01 1.9932852254455714e+01 ylo yhi
|
||||
-2.8317404080785380e-01 2.8317404080785380e-01 zlo zhi
|
||||
|
||||
Masses
|
||||
|
||||
1 1
|
||||
2 1
|
||||
3 1
|
||||
|
||||
Atoms # atomic
|
||||
|
||||
1 2 0.0000000000000000e+00 2.2114806707013038e-01 0.0000000000000000e+00 0 0 0
|
||||
2 2 5.6634808161570760e-01 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
3 2 1.1326961632314152e+00 2.2114806707013018e-01 0.0000000000000000e+00 0 0 0
|
||||
4 2 1.6990442448471228e+00 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
5 2 2.2653923264628304e+00 2.2114806707013032e-01 0.0000000000000000e+00 0 0 0
|
||||
6 2 2.8317404080785380e+00 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
7 2 3.3980884896942456e+00 2.2114806707013024e-01 0.0000000000000000e+00 0 0 0
|
||||
8 2 3.9644365713099532e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
9 2 4.5307846529256608e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
10 2 5.0971327345413684e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
11 2 5.6634808161570760e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
12 2 6.2298288977727836e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
13 2 6.7961769793884912e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
14 2 7.3625250610041988e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
15 2 7.9288731426199064e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
16 2 8.4952212242356140e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
17 2 9.0615693058513216e+00 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
18 2 9.6279173874670292e+00 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
19 2 1.0194265469082737e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
20 2 1.0760613550698444e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
21 2 1.1326961632314152e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
22 2 1.1893309713929860e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
23 2 1.2459657795545567e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
24 2 1.3026005877161275e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
25 2 1.3592353958776982e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
26 2 1.4158702040392690e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
27 2 1.4725050122008398e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
28 2 1.5291398203624105e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
29 2 1.5857746285239813e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
30 2 1.6424094366855520e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
31 2 1.6990442448471228e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
32 2 1.7556790530086936e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
33 2 1.8123138611702643e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
34 2 1.8689486693318351e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
35 2 1.9255834774934058e+01 2.2114806707013010e-01 0.0000000000000000e+00 0 0 0
|
||||
36 2 1.9822182856549766e+01 1.1832938184587636e+00 0.0000000000000000e+00 0 0 0
|
||||
37 2 2.0388530938165474e+01 2.2114806707013024e-01 0.0000000000000000e+00 0 0 0
|
||||
38 2 2.0954879019781181e+01 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
39 2 2.1521227101396889e+01 2.2114806707013043e-01 0.0000000000000000e+00 0 0 0
|
||||
40 2 2.2087575183012596e+01 1.1832938184587634e+00 0.0000000000000000e+00 0 0 0
|
||||
41 2 5.5197595012095140e-17 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
42 1 5.6653050195082300e-01 3.1000166664180786e+00 0.0000000000000000e+00 0 0 0
|
||||
43 2 1.1326961632314152e+00 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
44 1 1.6992713312703549e+00 3.1000339212153092e+00 0.0000000000000000e+00 0 0 0
|
||||
45 2 2.2653923264628304e+00 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
46 1 2.8319979330663916e+00 3.1000568858502824e+00 0.0000000000000000e+00 0 0 0
|
||||
47 2 3.3980884896942456e+00 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
48 1 3.9647072056144004e+00 3.1000829051868171e+00 0.0000000000000000e+00 0 0 0
|
||||
49 2 4.5307846529256608e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
50 1 5.0973978903306154e+00 3.1001089282984520e+00 0.0000000000000000e+00 0 0 0
|
||||
51 2 5.6634808161570760e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
52 1 6.2300706856774344e+00 3.1001320005511488e+00 0.0000000000000000e+00 0 0 0
|
||||
53 2 6.7961769793884912e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
54 1 7.3627281418365298e+00 3.1001497026412643e+00 0.0000000000000000e+00 0 0 0
|
||||
55 2 7.9288731426199064e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
56 1 8.4953743353575657e+00 3.1001604410839558e+00 0.0000000000000000e+00 0 0 0
|
||||
57 2 9.0615693058513216e+00 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
58 1 9.6280143647524650e+00 3.1001635457640377e+00 0.0000000000000000e+00 0 0 0
|
||||
59 2 1.0194265469082737e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
60 1 1.0760653757776259e+01 3.1001591904894030e+00 0.0000000000000000e+00 0 0 0
|
||||
61 2 1.1326961632314152e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
62 1 1.1893297897551465e+01 3.1001481997229781e+00 0.0000000000000000e+00 0 0 0
|
||||
63 2 1.2459657795545567e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
64 1 1.3025951551034638e+01 3.1001318239711781e+00 0.0000000000000000e+00 0 0 0
|
||||
65 2 1.3592353958776982e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
66 1 1.4158618530491893e+01 3.1001115545681470e+00 0.0000000000000000e+00 0 0 0
|
||||
67 2 1.4725050122008398e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
68 1 1.5291301468763761e+01 3.1000890162853869e+00 0.0000000000000000e+00 0 0 0
|
||||
69 2 1.5857746285239813e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
70 1 1.6424001663467980e+01 3.1000659357603495e+00 0.0000000000000000e+00 0 0 0
|
||||
71 2 1.6990442448471228e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
72 1 1.7556718955895743e+01 3.1000441476131195e+00 0.0000000000000000e+00 0 0 0
|
||||
73 2 1.8123138611702643e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
74 1 1.8689451647636982e+01 3.1000255781755963e+00 0.0000000000000000e+00 0 0 0
|
||||
75 2 1.9255834774934058e+01 2.1414943053865132e+00 0.0000000000000000e+00 0 0 0
|
||||
76 1 1.9822196505112320e+01 3.1000121466922494e+00 0.0000000000000000e+00 0 0 0
|
||||
77 2 2.0388530938165474e+01 2.1414943053865136e+00 0.0000000000000000e+00 0 0 0
|
||||
78 1 2.0954948927196146e+01 3.1000055506449713e+00 0.0000000000000000e+00 0 0 0
|
||||
79 2 2.1521227101396889e+01 2.1414943053865141e+00 0.0000000000000000e+00 0 0 0
|
||||
80 1 2.2087703334137267e+01 3.1000069547492535e+00 0.0000000000000000e+00 0 0 0
|
||||
81 1 3.1056926716504509e-04 4.0585004644184055e+00 0.0000000000000000e+00 0 0 0
|
||||
82 1 5.6689331628382078e-01 5.0169857265632762e+00 0.0000000000000000e+00 0 0 0
|
||||
83 1 1.1331010876667682e+00 4.0585336877518543e+00 0.0000000000000000e+00 0 0 0
|
||||
84 1 1.6997107179473134e+00 5.0170595571637469e+00 0.0000000000000000e+00 0 0 0
|
||||
85 1 2.2658691471408239e+00 4.0585832735991989e+00 0.0000000000000000e+00 0 0 0
|
||||
86 1 2.8324913387275488e+00 5.0171576059016481e+00 0.0000000000000000e+00 0 0 0
|
||||
87 1 3.3986077265334802e+00 4.0586437183143182e+00 0.0000000000000000e+00 0 0 0
|
||||
88 1 3.9652274946581523e+00 5.0172690174612651e+00 0.0000000000000000e+00 0 0 0
|
||||
89 1 4.5313127263524615e+00 4.0587080892871539e+00 0.0000000000000000e+00 0 0 0
|
||||
90 1 5.0979153202534064e+00 5.0173813990872880e+00 0.0000000000000000e+00 0 0 0
|
||||
91 1 5.6639833195247755e+00 4.0587690704404489e+00 0.0000000000000000e+00 0 0 0
|
||||
92 1 6.2305551824295442e+00 5.0174824868813017e+00 0.0000000000000000e+00 0 0 0
|
||||
93 1 6.7966220748571669e+00 4.0588200390400129e+00 0.0000000000000000e+00 0 0 0
|
||||
94 1 7.3631519876339633e+00 5.0175617795367824e+00 0.0000000000000000e+00 0 0 0
|
||||
95 1 7.9292347620768062e+00 4.0588559557915787e+00 0.0000000000000000e+00 0 0 0
|
||||
96 1 8.4957150696300925e+00 5.0176118394895646e+00 0.0000000000000000e+00 0 0 0
|
||||
97 1 9.0618297669257259e+00 4.0588738859603266e+00 0.0000000000000000e+00 0 0 0
|
||||
98 1 9.6282574219214077e+00 5.0176289672989007e+00 0.0000000000000000e+00 0 0 0
|
||||
99 1 1.0194417159454611e+01 4.0588730767572860e+00 0.0000000000000000e+00 0 0 0
|
||||
100 1 1.0760794315385466e+01 5.0176131474245498e+00 0.0000000000000000e+00 0 0 0
|
||||
101 1 1.1327007580768864e+01 4.0588546552053515e+00 0.0000000000000000e+00 0 0 0
|
||||
102 1 1.1893341583868121e+01 5.0175674119454996e+00 0.0000000000000000e+00 0 0 0
|
||||
103 1 1.2459611156068675e+01 4.0588211205885418e+00 0.0000000000000000e+00 0 0 0
|
||||
104 1 1.3025913928919357e+01 5.0174969437432848e+00 0.0000000000000000e+00 0 0 0
|
||||
105 1 1.3592236588154931e+01 4.0587758328652299e+00 0.0000000000000000e+00 0 0 0
|
||||
106 1 1.4158523495745847e+01 5.0174082592346645e+00 0.0000000000000000e+00 0 0 0
|
||||
107 1 1.4724890484932756e+01 4.0587226477181808e+00 0.0000000000000000e+00 0 0 0
|
||||
108 1 1.5291178803597106e+01 5.0173086870307237e+00 0.0000000000000000e+00 0 0 0
|
||||
109 1 1.5857576888353359e+01 4.0586657476126140e+00 0.0000000000000000e+00 0 0 0
|
||||
110 1 1.6423884000624799e+01 5.0172061640888863e+00 0.0000000000000000e+00 0 0 0
|
||||
111 1 1.6990296946466405e+01 4.0586096139851531e+00 0.0000000000000000e+00 0 0 0
|
||||
112 1 1.7556638404998214e+01 5.0171091825602536e+00 0.0000000000000000e+00 0 0 0
|
||||
113 1 1.8123048711157228e+01 4.0585590083330025e+00 0.0000000000000000e+00 0 0 0
|
||||
114 1 1.8689436384449273e+01 5.0170266065355777e+00 0.0000000000000000e+00 0 0 0
|
||||
115 1 1.9255827121600600e+01 4.0585188068824696e+00 0.0000000000000000e+00 0 0 0
|
||||
116 1 1.9822267727126505e+01 5.0169670887341100e+00 0.0000000000000000e+00 0 0 0
|
||||
117 1 2.0388624292977298e+01 4.0584935738800203e+00 0.0000000000000000e+00 0 0 0
|
||||
118 1 2.0955118660666272e+01 5.0169379847636248e+00 0.0000000000000000e+00 0 0 0
|
||||
119 1 2.1521430213723754e+01 4.0584868720623906e+00 0.0000000000000000e+00 0 0 0
|
||||
120 1 2.2087973498256840e+01 5.0169439545250629e+00 0.0000000000000000e+00 0 0 0
|
||||
121 1 6.5693888433665819e-04 5.9753894955957820e+00 0.0000000000000000e+00 0 0 0
|
||||
122 1 5.6732815172745055e-01 6.9338399304063270e+00 0.0000000000000000e+00 0 0 0
|
||||
123 1 1.1335287178365945e+00 5.9754794631117711e+00 0.0000000000000000e+00 0 0 0
|
||||
124 1 1.7002170239497103e+00 6.9340002985609068e+00 0.0000000000000000e+00 0 0 0
|
||||
125 1 2.2663607603415961e+00 5.9756128140497200e+00 0.0000000000000000e+00 0 0 0
|
||||
126 1 2.8330530781363672e+00 6.9342120448719999e+00 0.0000000000000000e+00 0 0 0
|
||||
127 1 3.3991419489134609e+00 5.9757753571666763e+00 0.0000000000000000e+00 0 0 0
|
||||
128 1 3.9658260192240613e+00 6.9344537679961507e+00 0.0000000000000000e+00 0 0 0
|
||||
129 1 4.5318648361825700e+00 5.9759497256682410e+00 0.0000000000000000e+00 0 0 0
|
||||
130 1 5.0985283212441441e+00 6.9347011709619251e+00 0.0000000000000000e+00 0 0 0
|
||||
131 1 5.6645260085061278e+00 5.9761173336292988e+00 0.0000000000000000e+00 0 0 0
|
||||
132 1 6.2311560978848899e+00 6.9349290616610286e+00 0.0000000000000000e+00 0 0 0
|
||||
133 1 6.7971269443565747e+00 5.9762605495489280e+00 0.0000000000000000e+00 0 0 0
|
||||
134 1 7.3637111409380722e+00 6.9351139899270322e+00 0.0000000000000000e+00 0 0 0
|
||||
135 1 7.9296749255956041e+00 5.9763649377635293e+00 0.0000000000000000e+00 0 0 0
|
||||
136 1 8.4962030194710927e+00 6.9352373287964380e+00 0.0000000000000000e+00 0 0 0
|
||||
137 1 9.0621832354873675e+00 5.9764210443253543e+00 0.0000000000000000e+00 0 0 0
|
||||
138 1 9.6286498073427680e+00 6.9352878316174378e+00 0.0000000000000000e+00 0 0 0
|
||||
139 1 1.0194670187278859e+01 5.9764252099845692e+00 0.0000000000000000e+00 0 0 0
|
||||
140 1 1.0761076657788550e+01 6.9352626758233988e+00 0.0000000000000000e+00 0 0 0
|
||||
141 1 1.1327157075090911e+01 5.9763792530010624e+00 0.0000000000000000e+00 0 0 0
|
||||
142 1 1.1893512574619942e+01 6.9351667929726579e+00 0.0000000000000000e+00 0 0 0
|
||||
143 1 1.2459665575239395e+01 5.9762893326393627e+00 0.0000000000000000e+00 0 0 0
|
||||
144 1 1.3025986375565017e+01 6.9350110693313853e+00 0.0000000000000000e+00 0 0 0
|
||||
145 1 1.3592215193397568e+01 5.9761645662970668e+00 0.0000000000000000e+00 0 0 0
|
||||
146 1 1.4158522852873338e+01 6.9348103731164086e+00 0.0000000000000000e+00 0 0 0
|
||||
147 1 1.4724821146400661e+01 5.9760159211600943e+00 0.0000000000000000e+00 0 0 0
|
||||
148 1 1.5291139696354101e+01 6.9345821426564456e+00 0.0000000000000000e+00 0 0 0
|
||||
149 1 1.5857492801384174e+01 5.9758556179168476e+00 0.0000000000000000e+00 0 0 0
|
||||
150 1 1.6423845342403485e+01 6.9343457083902562e+00 0.0000000000000000e+00 0 0 0
|
||||
151 1 1.6990232659392920e+01 5.9756969240409656e+00 0.0000000000000000e+00 0 0 0
|
||||
152 1 1.7556637811168688e+01 6.9341219348234606e+00 0.0000000000000000e+00 0 0 0
|
||||
153 1 1.8123035927190724e+01 5.9755539362099377e+00 0.0000000000000000e+00 0 0 0
|
||||
154 1 1.8689504786395585e+01 6.9339324030079297e+00 0.0000000000000000e+00 0 0 0
|
||||
155 1 1.9255890870078105e+01 5.9754408656724385e+00 0.0000000000000000e+00 0 0 0
|
||||
156 1 1.9822425360651039e+01 6.9337974543626846e+00 0.0000000000000000e+00 0 0 0
|
||||
157 1 2.0388780199969101e+01 5.9753705251759808e+00 0.0000000000000000e+00 0 0 0
|
||||
158 1 2.0955373611320280e+01 6.9337330661143222e+00 0.0000000000000000e+00 0 0 0
|
||||
159 1 2.1521683507254988e+01 5.9753521824721574e+00 0.0000000000000000e+00 0 0 0
|
||||
160 1 2.2088323232189435e+01 6.9337475792566039e+00 0.0000000000000000e+00 0 0 0
|
||||
161 1 1.1151815023353693e-03 7.8921416571122727e+00 0.0000000000000000e+00 0 0 0
|
||||
162 1 5.6789887436851039e-01 8.8505576275120745e+00 0.0000000000000000e+00 0 0 0
|
||||
163 1 1.1340615020344891e+00 7.8923152028921146e+00 0.0000000000000000e+00 0 0 0
|
||||
164 1 1.7008494977197184e+00 8.8508369646616227e+00 0.0000000000000000e+00 0 0 0
|
||||
165 1 2.2669564852467339e+00 7.8925678787693965e+00 0.0000000000000000e+00 0 0 0
|
||||
166 1 2.8337429988374914e+00 8.8512007799959171e+00 0.0000000000000000e+00 0 0 0
|
||||
167 1 3.3997890834793392e+00 7.8928753791925752e+00 0.0000000000000000e+00 0 0 0
|
||||
168 1 3.9665700017177907e+00 8.8516188392723496e+00 0.0000000000000000e+00 0 0 0
|
||||
169 1 4.5325491541722158e+00 7.8932093579911635e+00 0.0000000000000000e+00 0 0 0
|
||||
170 1 5.0993179760197034e+00 8.8520570451664753e+00 0.0000000000000000e+00 0 0 0
|
||||
171 1 5.6652272696563086e+00 7.8935385042762318e+00 0.0000000000000000e+00 0 0 0
|
||||
172 1 6.2319722558852177e+00 8.8524768944511472e+00 0.0000000000000000e+00 0 0 0
|
||||
173 1 6.7978170214800082e+00 7.8938302754648539e+00 0.0000000000000000e+00 0 0 0
|
||||
174 1 7.3645207249719933e+00 8.8528366651387476e+00 0.0000000000000000e+00 0 0 0
|
||||
175 1 7.9303191911043118e+00 7.8940542651579788e+00 0.0000000000000000e+00 0 0 0
|
||||
176 1 8.4969615618418324e+00 8.8530963542120293e+00 0.0000000000000000e+00 0 0 0
|
||||
177 1 9.0627458585593441e+00 7.8941868850969135e+00 0.0000000000000000e+00 0 0 0
|
||||
178 1 9.6293104463590424e+00 8.8532254399208412e+00 0.0000000000000000e+00 0 0 0
|
||||
179 1 1.0195121730902658e+01 7.8942152485172352e+00 0.0000000000000000e+00 0 0 0
|
||||
180 1 1.0761602408503441e+01 8.8532092085980238e+00 0.0000000000000000e+00 0 0 0
|
||||
181 1 1.1327481649719793e+01 7.8941385508356099e+00 0.0000000000000000e+00 0 0 0
|
||||
182 1 1.1893886870241856e+01 8.8530505445055354e+00 0.0000000000000000e+00 0 0 0
|
||||
183 1 1.2459865179342737e+01 7.8939667557582798e+00 0.0000000000000000e+00 0 0 0
|
||||
184 1 1.3026218291904378e+01 8.8527674547956821e+00 0.0000000000000000e+00 0 0 0
|
||||
185 1 1.3592310202433307e+01 7.8937178025905181e+00 0.0000000000000000e+00 0 0 0
|
||||
186 1 1.4158645900042497e+01 8.8523887379317436e+00 0.0000000000000000e+00 0 0 0
|
||||
187 1 1.4724847145311326e+01 7.8934149070498600e+00 0.0000000000000000e+00 0 0 0
|
||||
188 1 1.5291205081244327e+01 8.8519503874602243e+00 0.0000000000000000e+00 0 0 0
|
||||
189 1 1.5857494607334019e+01 7.8930848995638652e+00 0.0000000000000000e+00 0 0 0
|
||||
190 1 1.6423911366860466e+01 8.8514936483282209e+00 0.0000000000000000e+00 0 0 0
|
||||
191 1 1.6990256625068444e+01 7.8927574412240151e+00 0.0000000000000000e+00 0 0 0
|
||||
192 1 1.7556757521848787e+01 8.8510636099500459e+00 0.0000000000000000e+00 0 0 0
|
||||
193 1 1.8123121878813144e+01 7.8924640508501298e+00 0.0000000000000000e+00 0 0 0
|
||||
194 1 1.8689714850348466e+01 8.8507060559423465e+00 0.0000000000000000e+00 0 0 0
|
||||
195 1 1.9256065579477248e+01 7.8922356001392169e+00 0.0000000000000000e+00 0 0 0
|
||||
196 1 1.9822740225596814e+01 8.8504608774193994e+00 0.0000000000000000e+00 0 0 0
|
||||
197 1 2.0389054599310764e+01 7.8920977743942782e+00 0.0000000000000000e+00 0 0 0
|
||||
198 1 2.0955788196198530e+01 8.8503534864083591e+00 0.0000000000000000e+00 0 0 0
|
||||
199 1 2.1522054950758765e+01 7.8920658349416701e+00 0.0000000000000000e+00 0 0 0
|
||||
200 1 2.2088823030833748e+01 8.8503894045591807e+00 0.0000000000000000e+00 0 0 0
|
||||
201 1 1.7402898961801966e-03 9.8087331458102049e+00 0.0000000000000000e+00 0 0 0
|
||||
202 1 5.6862550253253785e-01 1.0767129063577668e+01 0.0000000000000000e+00 0 0 0
|
||||
203 1 1.1347351125604563e+00 9.8090210312609756e+00 0.0000000000000000e+00 0 0 0
|
||||
204 1 1.7016010961270076e+00 1.0767553944884048e+01 0.0000000000000000e+00 0 0 0
|
||||
205 1 2.2676800733457139e+00 9.8094251915038573e+00 0.0000000000000000e+00 0 0 0
|
||||
206 1 2.8345388558320415e+00 1.0768094021206529e+01 0.0000000000000000e+00 0 0 0
|
||||
207 1 3.4005711921286008e+00 9.8099146303251388e+00 0.0000000000000000e+00 0 0 0
|
||||
208 1 3.9674359888022686e+00 1.0768719604543580e+01 0.0000000000000000e+00 0 0 0
|
||||
209 1 4.5333977826109315e+00 9.8104561733570019e+00 0.0000000000000000e+00 0 0 0
|
||||
210 1 5.1002760963180327e+00 1.0769398202643465e+01 0.0000000000000000e+00 0 0 0
|
||||
211 1 5.6661407887052828e+00 9.8110111848429966e+00 0.0000000000000000e+00 0 0 0
|
||||
212 1 6.2330282022400469e+00 1.0770087202120337e+01 0.0000000000000000e+00 0 0 0
|
||||
213 1 6.7987755062394477e+00 9.8115326503110527e+00 0.0000000000000000e+00 0 0 0
|
||||
214 1 7.3656514287550623e+00 1.0770727843890981e+01 0.0000000000000000e+00 0 0 0
|
||||
215 1 7.9312798141889260e+00 9.8119658218493768e+00 0.0000000000000000e+00 0 0 0
|
||||
216 1 8.4981076412551477e+00 1.0771244633836279e+01 0.0000000000000000e+00 0 0 0
|
||||
217 1 9.0636474998261161e+00 9.8122560909429151e+00 0.0000000000000000e+00 0 0 0
|
||||
218 1 9.6303843877347930e+00 1.0771559046035311e+01 0.0000000000000000e+00 0 0 0
|
||||
219 1 1.0195900672859819e+01 9.8123627359180627e+00 0.0000000000000000e+00 0 0 0
|
||||
220 1 1.0762516251278290e+01 1.0771614844517241e+01 0.0000000000000000e+00 0 0 0
|
||||
221 1 1.1328091472906591e+01 9.8122692653101016e+00 0.0000000000000000e+00 0 0 0
|
||||
222 1 1.1894584725285364e+01 1.0771394980275380e+01 0.0000000000000000e+00 0 0 0
|
||||
223 1 1.2460291956550108e+01 9.8119854743716211e+00 0.0000000000000000e+00 0 0 0
|
||||
224 1 1.3026697175518089e+01 1.0770922584297365e+01 0.0000000000000000e+00 0 0 0
|
||||
225 1 1.3592577560562113e+01 9.8115426529845742e+00 0.0000000000000000e+00 0 0 0
|
||||
226 1 1.4158957523975143e+01 1.0770251678533704e+01 0.0000000000000000e+00 0 0 0
|
||||
227 1 1.4725010595311739e+01 9.8109868569230709e+00 0.0000000000000000e+00 0 0 0
|
||||
228 1 1.5291439665423439e+01 1.0769456959141509e+01 0.0000000000000000e+00 0 0 0
|
||||
229 1 1.5857627568713173e+01 9.8103742214932304e+00 0.0000000000000000e+00 0 0 0
|
||||
230 1 1.6424169320270668e+01 1.0768628052568168e+01 0.0000000000000000e+00 0 0 0
|
||||
231 1 1.6990431516954079e+01 9.8097684628141781e+00 0.0000000000000000e+00 0 0 0
|
||||
232 1 1.7557116532362020e+01 1.0767864432631596e+01 0.0000000000000000e+00 0 0 0
|
||||
233 1 1.8123390991250901e+01 9.8092369760472078e+00 0.0000000000000000e+00 0 0 0
|
||||
234 1 1.8690204705628890e+01 1.0767262063551410e+01 0.0000000000000000e+00 0 0 0
|
||||
235 1 1.9256448808830498e+01 9.8088413825519911e+00 0.0000000000000000e+00 0 0 0
|
||||
236 1 1.9823340586830241e+01 1.0766888821404979e+01 0.0000000000000000e+00 0 0 0
|
||||
237 1 2.0389541413400988e+01 9.8086229912274785e+00 0.0000000000000000e+00 0 0 0
|
||||
238 1 2.0956458511796701e+01 1.0766759511236279e+01 0.0000000000000000e+00 0 0 0
|
||||
239 1 2.1522621458778595e+01 9.8085916713182311e+00 0.0000000000000000e+00 0 0 0
|
||||
240 1 2.2089529168272502e+01 1.0766851883618157e+01 0.0000000000000000e+00 0 0 0
|
||||
241 1 2.5440858595377333e-03 1.1725176449724485e+01 0.0000000000000000e+00 0 0 0
|
||||
242 1 5.6945959459694062e-01 1.2683596360703445e+01 0.0000000000000000e+00 0 0 0
|
||||
243 1 1.1355189649219313e+00 1.1725603142335736e+01 0.0000000000000000e+00 0 0 0
|
||||
244 1 1.7023827890664067e+00 1.2684167657575470e+01 0.0000000000000000e+00 0 0 0
|
||||
245 1 2.2684713496063051e+00 1.1726169790097240e+01 0.0000000000000000e+00 0 0 0
|
||||
246 1 2.8353214317297493e+00 1.2684869845626739e+01 0.0000000000000000e+00 0 0 0
|
||||
247 1 3.4014115221528614e+00 1.1726849793467629e+01 0.0000000000000000e+00 0 0 0
|
||||
248 1 3.9682847366436711e+00 1.2685690043118647e+01 0.0000000000000000e+00 0 0 0
|
||||
249 1 4.5343333925353440e+00 1.1727620546655658e+01 0.0000000000000000e+00 0 0 0
|
||||
250 1 5.1012595788864648e+00 1.2686617936467927e+01 0.0000000000000000e+00 0 0 0
|
||||
251 1 5.6672100999124009e+00 1.1728453321807010e+01 0.0000000000000000e+00 0 0 0
|
||||
252 1 6.2342050679378476e+00 1.2687631443781253e+01 0.0000000000000000e+00 0 0 0
|
||||
253 1 6.7999929539663801e+00 1.1729301393807379e+01 0.0000000000000000e+00 0 0 0
|
||||
254 1 7.3670487632296053e+00 1.2688678524169049e+01 0.0000000000000000e+00 0 0 0
|
||||
255 1 7.9326168577620031e+00 1.1730088752185795e+01 0.0000000000000000e+00 0 0 0
|
||||
256 1 8.4996909972151879e+00 1.2689657545646673e+01 0.0000000000000000e+00 0 0 0
|
||||
257 1 9.0650186324858186e+00 1.1730705889838760e+01 0.0000000000000000e+00 0 0 0
|
||||
258 1 9.6320279172941738e+00 1.2690401359419884e+01 0.0000000000000000e+00 0 0 0
|
||||
259 1 1.0197176988949883e+01 1.1731033591325737e+01 0.0000000000000000e+00 0 0 0
|
||||
260 1 1.0764025265158372e+01 1.2690719979755405e+01 0.0000000000000000e+00 0 0 0
|
||||
261 1 1.1329151471753224e+01 1.1730992082437087e+01 0.0000000000000000e+00 0 0 0
|
||||
262 1 1.1895793457864773e+01 1.2690499952724066e+01 0.0000000000000000e+00 0 0 0
|
||||
263 1 1.2461074954083520e+01 1.1730568008302011e+01 0.0000000000000000e+00 0 0 0
|
||||
264 1 1.3027557263784812e+01 1.2689744664661927e+01 0.0000000000000000e+00 0 0 0
|
||||
265 1 1.3593109813371450e+01 1.1729811224797992e+01 0.0000000000000000e+00 0 0 0
|
||||
266 1 1.4159562461497188e+01 1.2688557996910490e+01 0.0000000000000000e+00 0 0 0
|
||||
267 1 1.4725395146103379e+01 1.1728816806025771e+01 0.0000000000000000e+00 0 0 0
|
||||
268 1 1.5291979336937130e+01 1.2687112353846338e+01 0.0000000000000000e+00 0 0 0
|
||||
269 1 1.5858003969640130e+01 1.1727709969544065e+01 0.0000000000000000e+00 0 0 0
|
||||
270 1 1.6424834380846097e+01 1.2685627373535834e+01 0.0000000000000000e+00 0 0 0
|
||||
271 1 1.6990919595491782e+01 1.1726637864021814e+01 0.0000000000000000e+00 0 0 0
|
||||
272 1 1.7557997576834389e+01 1.2684345428666392e+01 0.0000000000000000e+00 0 0 0
|
||||
273 1 1.8124040077451223e+01 1.1725751812758334e+01 0.0000000000000000e+00 0 0 0
|
||||
274 1 1.8691233014266899e+01 1.2683475493290855e+01 0.0000000000000000e+00 0 0 0
|
||||
275 1 1.9257221467828444e+01 1.1725167602985902e+01 0.0000000000000000e+00 0 0 0
|
||||
276 1 1.9824402296022900e+01 1.2683041511515679e+01 0.0000000000000000e+00 0 0 0
|
||||
277 1 2.0390369399207284e+01 1.1724905550220807e+01 0.0000000000000000e+00 0 0 0
|
||||
278 1 2.0957468093457749e+01 1.2682973372169659e+01 0.0000000000000000e+00 0 0 0
|
||||
279 1 2.1523449818304549e+01 1.1724927159323300e+01 0.0000000000000000e+00 0 0 0
|
||||
280 1 2.2090449109149038e+01 1.2683182366055206e+01 0.0000000000000000e+00 0 0 0
|
||||
281 1 3.4599372752678664e-03 1.3641562113178441e+01 0.0000000000000000e+00 0 0 0
|
||||
282 1 5.7026645299712297e-01 1.4600072778762289e+01 0.0000000000000000e+00 0 0 0
|
||||
283 1 1.1363018176625184e+00 1.3642122621820601e+01 0.0000000000000000e+00 0 0 0
|
||||
284 1 1.7030304397851530e+00 1.4600744808517264e+01 0.0000000000000000e+00 0 0 0
|
||||
285 1 2.2691832178537314e+00 1.3642819174389231e+01 0.0000000000000000e+00 0 0 0
|
||||
286 1 2.8358920720180945e+00 1.4601540713388465e+01 0.0000000000000000e+00 0 0 0
|
||||
287 1 3.4021290160499604e+00 1.3643644649633430e+01 0.0000000000000000e+00 0 0 0
|
||||
288 1 3.9688713598453158e+00 1.4602477110803298e+01 0.0000000000000000e+00 0 0 0
|
||||
289 1 4.5351441054704758e+00 1.3644605343002951e+01 0.0000000000000000e+00 0 0 0
|
||||
290 1 5.1019693529741863e+00 1.4603583498422479e+01 0.0000000000000000e+00 0 0 0
|
||||
291 1 5.6682074099496385e+00 1.3645707993168530e+01 0.0000000000000000e+00 0 0 0
|
||||
292 1 6.2351598742721581e+00 1.4604888485699654e+01 0.0000000000000000e+00 0 0 0
|
||||
293 1 6.8012626955016664e+00 1.3646941178415421e+01 0.0000000000000000e+00 0 0 0
|
||||
294 1 7.3683745276621622e+00 1.4606397643582930e+01 0.0000000000000000e+00 0 0 0
|
||||
295 1 7.9342088141787288e+00 1.3648248663869856e+01 0.0000000000000000e+00 0 0 0
|
||||
296 1 8.5014805494154277e+00 1.4608055299059714e+01 0.0000000000000000e+00 0 0 0
|
||||
297 1 9.0668968877652869e+00 1.3649493406156790e+01 0.0000000000000000e+00 0 0 0
|
||||
298 1 9.6342620410232698e+00 1.4609684783907733e+01 0.0000000000000000e+00 0 0 0
|
||||
299 1 1.0199152905272882e+01 1.3650407439181874e+01 0.0000000000000000e+00 0 0 0
|
||||
300 1 1.0766413330496736e+01 1.4610836305969919e+01 0.0000000000000000e+00 0 0 0
|
||||
301 1 1.1330921232704116e+01 1.3650669393063648e+01 0.0000000000000000e+00 0 0 0
|
||||
302 1 1.1897841502623006e+01 1.4610930556808350e+01 0.0000000000000000e+00 0 0 0
|
||||
303 1 1.2462421601307861e+01 1.3650120591395567e+01 0.0000000000000000e+00 0 0 0
|
||||
304 1 1.3029018938638984e+01 1.4609761134444172e+01 0.0000000000000000e+00 0 0 0
|
||||
305 1 1.3594046992755665e+01 1.3648816127477271e+01 0.0000000000000000e+00 0 0 0
|
||||
306 1 1.4160647838817273e+01 1.4607529632893289e+01 0.0000000000000000e+00 0 0 0
|
||||
307 1 1.4726158301286814e+01 1.3646976680611393e+01 0.0000000000000000e+00 0 0 0
|
||||
308 1 1.5293172565463893e+01 1.4604737496674128e+01 0.0000000000000000e+00 0 0 0
|
||||
309 1 1.5858902039329786e+01 1.3644935977195637e+01 0.0000000000000000e+00 0 0 0
|
||||
310 1 1.6426542400228328e+01 1.4602024837155536e+01 0.0000000000000000e+00 0 0 0
|
||||
311 1 1.6992136000094352e+01 1.3643085312965626e+01 0.0000000000000000e+00 0 0 0
|
||||
312 1 1.7559955069272618e+01 1.4600235886953440e+01 0.0000000000000000e+00 0 0 0
|
||||
313 1 1.8125444003110619e+01 1.3641827838397322e+01 0.0000000000000000e+00 0 0 0
|
||||
314 1 1.8693119558449155e+01 1.4599324386000902e+01 0.0000000000000000e+00 0 0 0
|
||||
315 1 1.9258622464532973e+01 1.3641178402937728e+01 0.0000000000000000e+00 0 0 0
|
||||
316 1 1.9826034884164418e+01 1.4599040434292966e+01 0.0000000000000000e+00 0 0 0
|
||||
317 1 2.0391639577074734e+01 1.3641005830730871e+01 0.0000000000000000e+00 0 0 0
|
||||
318 1 2.0958793244869717e+01 1.4599158580846662e+01 0.0000000000000000e+00 0 0 0
|
||||
319 1 2.1524539566888354e+01 1.3641168546895004e+01 0.0000000000000000e+00 0 0 0
|
||||
320 1 2.2091487241099536e+01 1.4599530965127977e+01 0.0000000000000000e+00 0 0 0
|
||||
321 1 4.3165808837657372e-03 1.5558056864296654e+01 0.0000000000000000e+00 0 0 0
|
||||
322 1 5.7083714563799326e-01 1.6516708751979007e+01 0.0000000000000000e+00 0 0 0
|
||||
323 1 1.1369032012442155e+00 1.5558694023524415e+01 0.0000000000000000e+00 0 0 0
|
||||
324 1 1.7033478671452040e+00 1.6517390053019362e+01 0.0000000000000000e+00 0 0 0
|
||||
325 1 2.2696166894760093e+00 1.5559438272441989e+01 0.0000000000000000e+00 0 0 0
|
||||
326 1 2.8360390517176817e+00 1.6518173675862919e+01 0.0000000000000000e+00 0 0 0
|
||||
327 1 3.4024835472607537e+00 1.5560308985846410e+01 0.0000000000000000e+00 0 0 0
|
||||
328 1 3.9689280293273477e+00 1.6519102391285173e+01 0.0000000000000000e+00 0 0 0
|
||||
329 1 4.5355194771089229e+00 1.5561347597079759e+01 0.0000000000000000e+00 0 0 0
|
||||
330 1 5.1020300316691811e+00 1.6520241802728972e+01 0.0000000000000000e+00 0 0 0
|
||||
331 1 5.6687261068083830e+00 1.5562609975559823e+01 0.0000000000000000e+00 0 0 0
|
||||
332 1 6.2353553251066147e+00 1.6521676870813170e+01 0.0000000000000000e+00 0 0 0
|
||||
333 1 6.8020803209306022e+00 1.5564154380715671e+01 0.0000000000000000e+00 0 0 0
|
||||
334 1 7.3688969132482525e+00 1.6523504940606951e+01 0.0000000000000000e+00 0 0 0
|
||||
335 1 7.9355107433004930e+00 1.5566016713593251e+01 0.0000000000000000e+00 0 0 0
|
||||
336 1 8.5025988576228730e+00 1.6525815249413437e+01 0.0000000000000000e+00 0 0 0
|
||||
337 1 9.0688572861916743e+00 1.5568159644275148e+01 0.0000000000000000e+00 0 0 0
|
||||
338 1 9.6362867759002064e+00 1.6528628994685398e+01 0.0000000000000000e+00 0 0 0
|
||||
339 1 1.0201819017728946e+01 1.5570385216229328e+01 0.0000000000000000e+00 0 0 0
|
||||
340 1 1.0769583800973923e+01 1.6531845844888416e+01 0.0000000000000000e+00 0 0 0
|
||||
341 1 1.1333827071325254e+01 1.5571891707346142e+01 0.0000000000000000e+00 0 0 0
|
||||
342 1 1.1901384079738815e+01 1.6533906438348030e+01 0.0000000000000000e+00 0 0 0
|
||||
343 1 1.2464735369608531e+01 1.5571536667850689e+01 0.0000000000000000e+00 0 0 0
|
||||
344 1 1.3031616332415751e+01 1.6532264065445577e+01 0.0000000000000000e+00 0 0 0
|
||||
345 1 1.3595655007692846e+01 1.5569123466092078e+01 0.0000000000000000e+00 0 0 0
|
||||
346 1 1.4162673858547034e+01 1.6527452690896975e+01 0.0000000000000000e+00 0 0 0
|
||||
347 1 1.4727720485417455e+01 1.5565353830287787e+01 0.0000000000000000e+00 0 0 0
|
||||
348 1 1.5296922688141537e+01 1.6520776714395723e+01 0.0000000000000000e+00 0 0 0
|
||||
349 1 1.5861362778086731e+01 1.5561222799294468e+01 0.0000000000000000e+00 0 0 0
|
||||
350 1 1.6430601172841506e+01 1.6517208583528205e+01 0.0000000000000000e+00 0 0 0
|
||||
351 1 1.6994922716392164e+01 1.5558699760506759e+01 0.0000000000000000e+00 0 0 0
|
||||
352 1 1.7563499738678178e+01 1.6515675589984340e+01 0.0000000000000000e+00 0 0 0
|
||||
353 1 1.8128019408521833e+01 1.5557486534354460e+01 0.0000000000000000e+00 0 0 0
|
||||
354 1 1.8695872352982320e+01 1.6515215010141834e+01 0.0000000000000000e+00 0 0 0
|
||||
355 1 1.9260742856192188e+01 1.5557098710840322e+01 0.0000000000000000e+00 0 0 0
|
||||
356 1 1.9828039670247652e+01 1.6515278710047973e+01 0.0000000000000000e+00 0 0 0
|
||||
357 1 2.0393271644052639e+01 1.5557181842904438e+01 0.0000000000000000e+00 0 0 0
|
||||
358 1 2.0960186167839215e+01 1.6515618076673135e+01 0.0000000000000000e+00 0 0 0
|
||||
359 1 2.1525740973565441e+01 1.5557536533469163e+01 0.0000000000000000e+00 0 0 0
|
||||
360 1 2.2092409007659992e+01 1.6516113225524911e+01 0.0000000000000000e+00 0 0 0
|
||||
361 1 4.8529541639103424e-03 1.7474826118864232e+01 0.0000000000000000e+00 0 0 0
|
||||
362 1 5.7093835977538809e-01 1.8433654344787417e+01 0.0000000000000000e+00 0 0 0
|
||||
363 1 1.1371184592334547e+00 1.7475436697267657e+01 0.0000000000000000e+00 0 0 0
|
||||
364 1 1.7031721612449391e+00 1.8434245395923575e+01 0.0000000000000000e+00 0 0 0
|
||||
365 1 2.2695912343467985e+00 1.7476125500853652e+01 0.0000000000000000e+00 0 0 0
|
||||
366 1 2.8356286616018873e+00 1.8434926390559969e+01 0.0000000000000000e+00 0 0 0
|
||||
367 1 3.4022762478393873e+00 1.7476929029147396e+01 0.0000000000000000e+00 0 0 0
|
||||
368 1 3.9683006032101118e+00 1.8435747821965681e+01 0.0000000000000000e+00 0 0 0
|
||||
369 1 4.5351848152653442e+00 1.7477909278192492e+01 0.0000000000000000e+00 0 0 0
|
||||
370 1 5.1011966627212457e+00 1.8436786379097875e+01 0.0000000000000000e+00 0 0 0
|
||||
371 1 5.6683370882181823e+00 1.7479154484464996e+01 0.0000000000000000e+00 0 0 0
|
||||
372 1 6.2343468444568826e+00 1.8438149387991913e+01 0.0000000000000000e+00 0 0 0
|
||||
373 1 6.8017614989468314e+00 1.7480782103907771e+01 0.0000000000000000e+00 0 0 0
|
||||
374 1 7.3678106610096554e+00 1.8439986240742563e+01 0.0000000000000000e+00 0 0 0
|
||||
375 1 7.9354841298542631e+00 1.7482944033551004e+01 0.0000000000000000e+00 0 0 0
|
||||
376 1 8.5016878917981664e+00 1.8442513240991936e+01 0.0000000000000000e+00 0 0 0
|
||||
377 1 9.0694835466447152e+00 1.7485826099637269e+01 0.0000000000000000e+00 0 0 0
|
||||
378 1 9.6361298737773780e+00 1.8446058020412732e+01 0.0000000000000000e+00 0 0 0
|
||||
379 3 1.0203552137528503e+01 1.7489611887918201e+01 0.0000000000000000e+00 0 0 0
|
||||
380 3 1.0771411102042309e+01 1.8452757080501815e+01 0.0000000000000000e+00 0 0 0
|
||||
381 3 1.1337379036649208e+01 1.7494680029430171e+01 0.0000000000000000e+00 0 0 0
|
||||
382 3 1.1906745469447291e+01 1.8462022833637111e+01 0.0000000000000000e+00 0 0 0
|
||||
383 3 1.2469280552911147e+01 1.7497259990645460e+01 0.0000000000000000e+00 0 0 0
|
||||
384 3 1.3036336275216634e+01 1.8467761987124586e+01 0.0000000000000000e+00 0 0 0
|
||||
385 3 1.3598327635293121e+01 1.7492598542232617e+01 0.0000000000000000e+00 0 0 0
|
||||
386 3 1.4175415687021504e+01 1.8442378825657116e+01 0.0000000000000000e+00 0 0 0
|
||||
387 3 1.4734039006741700e+01 1.7480807237018496e+01 0.0000000000000000e+00 0 0 0
|
||||
388 3 1.5307067776131944e+01 1.8435324828663727e+01 0.0000000000000000e+00 0 0 0
|
||||
389 3 1.5867533841026015e+01 1.7475841850521086e+01 0.0000000000000000e+00 0 0 0
|
||||
390 3 1.6437492616293390e+01 1.8432690656917494e+01 0.0000000000000000e+00 0 0 0
|
||||
391 3 1.6999775067986949e+01 1.7473899503923125e+01 0.0000000000000000e+00 0 0 0
|
||||
392 3 1.7567888910690055e+01 1.8431965422256074e+01 0.0000000000000000e+00 0 0 0
|
||||
393 1 1.8131542880564929e+01 1.7473449678636637e+01 0.0000000000000000e+00 0 0 0
|
||||
394 1 1.8698655140485940e+01 1.8432031695013379e+01 0.0000000000000000e+00 0 0 0
|
||||
395 1 1.9263155459010161e+01 1.7473512474723787e+01 0.0000000000000000e+00 0 0 0
|
||||
396 1 1.9829735002682860e+01 1.8432284732233299e+01 0.0000000000000000e+00 0 0 0
|
||||
397 1 2.0394851027090610e+01 1.7473827778588312e+01 0.0000000000000000e+00 0 0 0
|
||||
398 1 2.0961149629160545e+01 1.8432663919612150e+01 0.0000000000000000e+00 0 0 0
|
||||
399 1 2.1526715232103822e+01 1.7474283624212315e+01 0.0000000000000000e+00 0 0 0
|
||||
400 1 2.2092870034810801e+01 1.8433127631588540e+01 0.0000000000000000e+00 0 0 0
|
||||
401 1 4.8013042136807321e-03 1.9396043340320471e+01 0.0000000000000000e+00 0 0 0
|
||||
402 1 1.1367941837037772e+00 1.9396530996055038e+01 0.0000000000000000e+00 0 0 0
|
||||
403 1 2.2690256110731926e+00 1.9397098404349112e+01 0.0000000000000000e+00 0 0 0
|
||||
404 1 3.4014603716469214e+00 1.9397780714315690e+01 0.0000000000000000e+00 0 0 0
|
||||
405 1 4.5340819027961929e+00 1.9398637844588755e+01 0.0000000000000000e+00 0 0 0
|
||||
406 1 5.6668967352607975e+00 1.9399756780683603e+01 0.0000000000000000e+00 0 0 0
|
||||
407 1 6.7999442980869498e+00 1.9401258783163115e+01 0.0000000000000000e+00 0 0 0
|
||||
408 1 7.9333186797521877e+00 1.9403316975932661e+01 0.0000000000000000e+00 0 0 0
|
||||
409 1 9.0672196895765094e+00 1.9406194727028712e+01 0.0000000000000000e+00 0 0 0
|
||||
410 3 1.0202094493927524e+01 1.9410357283161499e+01 0.0000000000000000e+00 0 0 0
|
||||
411 3 1.1344493619984819e+01 1.9424786980556338e+01 0.0000000000000000e+00 0 0 0
|
||||
412 3 1.2637742177785299e+01 1.9930889974773997e+01 0.0000000000000000e+00 0 0 0
|
||||
413 3 1.3631034994726834e+01 1.9413135103231994e+01 0.0000000000000000e+00 0 0 0
|
||||
414 3 1.4752642655140622e+01 1.9401337789912994e+01 0.0000000000000000e+00 0 0 0
|
||||
415 3 1.5877850085888255e+01 1.9396855373999653e+01 0.0000000000000000e+00 0 0 0
|
||||
416 3 1.7005401679016000e+01 1.9395287677046394e+01 0.0000000000000000e+00 0 0 0
|
||||
417 1 1.8134615217150579e+01 1.9394983390043944e+01 0.0000000000000000e+00 0 0 0
|
||||
418 1 1.9264825666738730e+01 1.9395059679793604e+01 0.0000000000000000e+00 0 0 0
|
||||
419 1 2.0395687437852093e+01 1.9395286212420899e+01 0.0000000000000000e+00 0 0 0
|
||||
420 1 2.1527023164623820e+01 1.9395624428209523e+01 0.0000000000000000e+00 0 0 0
|
||||
|
||||
Velocities
|
||||
|
||||
1 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
2 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
3 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
4 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
5 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
6 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
7 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
8 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
9 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
10 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
11 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
12 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
13 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
14 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
15 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
16 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
17 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
21 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
22 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
23 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
24 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
25 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
26 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
27 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
28 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
29 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
30 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
31 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
32 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
33 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
34 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
35 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
36 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
37 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
38 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
39 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
40 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
41 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
42 1.4582830912290846e-05 8.8846352819582645e-06 0.0000000000000000e+00
|
||||
43 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
44 1.7312859198533731e-05 8.9315474912415886e-06 0.0000000000000000e+00
|
||||
45 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
46 1.9675072488620216e-05 9.1850485538530490e-06 0.0000000000000000e+00
|
||||
47 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
48 2.1433074233334628e-05 9.6286706528260491e-06 0.0000000000000000e+00
|
||||
49 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
50 2.2405931370299284e-05 1.0203419110643709e-05 0.0000000000000000e+00
|
||||
51 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
52 2.2491059900157929e-05 1.0820884817441812e-05 0.0000000000000000e+00
|
||||
53 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
54 2.1681031416712071e-05 1.1392109985469690e-05 0.0000000000000000e+00
|
||||
55 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
56 2.0060641760669130e-05 1.1861625865799975e-05 0.0000000000000000e+00
|
||||
57 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
58 1.7796484401635950e-05 1.2218953480137158e-05 0.0000000000000000e+00
|
||||
59 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
60 1.5112094617093786e-05 1.2477438154365889e-05 0.0000000000000000e+00
|
||||
61 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
62 1.2267198630926124e-05 1.2639445999779870e-05 0.0000000000000000e+00
|
||||
63 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
64 9.5350822789358476e-06 1.2675742401072055e-05 0.0000000000000000e+00
|
||||
65 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
66 7.1824119616190063e-06 1.2539493069881058e-05 0.0000000000000000e+00
|
||||
67 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
68 5.4428729520064613e-06 1.2202930059423273e-05 0.0000000000000000e+00
|
||||
69 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
70 4.4916342132800272e-06 1.1686680302800539e-05 0.0000000000000000e+00
|
||||
71 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
72 4.4211188598874964e-06 1.1059784694772424e-05 0.0000000000000000e+00
|
||||
73 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
74 5.2335171901646275e-06 1.0413115381938121e-05 0.0000000000000000e+00
|
||||
75 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
76 6.8418345483267640e-06 9.8270961040952689e-06 0.0000000000000000e+00
|
||||
77 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
78 9.0862581078626780e-06 9.3562441357185347e-06 0.0000000000000000e+00
|
||||
79 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
80 1.1750898218046424e-05 9.0341536486321376e-06 0.0000000000000000e+00
|
||||
81 2.6507896911975861e-05 1.6371545140358991e-05 0.0000000000000000e+00
|
||||
82 4.4071318998573086e-05 2.1693750644120881e-05 0.0000000000000000e+00
|
||||
83 3.1968282279407066e-05 1.6236651087870452e-05 0.0000000000000000e+00
|
||||
84 5.1796828963389391e-05 2.2204255617741203e-05 0.0000000000000000e+00
|
||||
85 3.6954144790935994e-05 1.6513220966131449e-05 0.0000000000000000e+00
|
||||
86 5.8466837911599906e-05 2.3765145047455889e-05 0.0000000000000000e+00
|
||||
87 4.0988263449448856e-05 1.7195597287912591e-05 0.0000000000000000e+00
|
||||
88 6.3421700984930829e-05 2.6202560196158383e-05 0.0000000000000000e+00
|
||||
89 4.3676514981254302e-05 1.8262201659237366e-05 0.0000000000000000e+00
|
||||
90 6.6189231995872341e-05 2.9208208903089284e-05 0.0000000000000000e+00
|
||||
91 4.4757820844412710e-05 1.9680681285465242e-05 0.0000000000000000e+00
|
||||
92 6.6503049702947023e-05 3.2363912757959332e-05 0.0000000000000000e+00
|
||||
93 4.4112984955796063e-05 2.1371026788621213e-05 0.0000000000000000e+00
|
||||
94 6.4345177020566643e-05 3.5287785267920645e-05 0.0000000000000000e+00
|
||||
95 4.1787976800244936e-05 2.3162941413835267e-05 0.0000000000000000e+00
|
||||
96 5.9928744845970383e-05 3.7723007380205399e-05 0.0000000000000000e+00
|
||||
97 3.7995079634412303e-05 2.4792875906820557e-05 0.0000000000000000e+00
|
||||
98 5.3679482622744082e-05 3.9576112916242527e-05 0.0000000000000000e+00
|
||||
99 3.3102802347870566e-05 2.5962643816709875e-05 0.0000000000000000e+00
|
||||
100 4.6196928202386916e-05 4.0841431876258162e-05 0.0000000000000000e+00
|
||||
101 2.7604731797030090e-05 2.6452929465938663e-05 0.0000000000000000e+00
|
||||
102 3.8198605610544056e-05 4.1488731650403403e-05 0.0000000000000000e+00
|
||||
103 2.2062125644364829e-05 2.6211631192676194e-05 0.0000000000000000e+00
|
||||
104 3.0461532031511585e-05 4.1405446569862951e-05 0.0000000000000000e+00
|
||||
105 1.7036890410487144e-05 2.5367151114186193e-05 0.0000000000000000e+00
|
||||
106 2.3743747198513856e-05 4.0442707371844690e-05 0.0000000000000000e+00
|
||||
107 1.3025410253023063e-05 2.4148417954514280e-05 0.0000000000000000e+00
|
||||
108 1.8714618137705143e-05 3.8535713097978544e-05 0.0000000000000000e+00
|
||||
109 1.0408634299164180e-05 2.2777378345262281e-05 0.0000000000000000e+00
|
||||
110 1.5879886471080462e-05 3.5803991688099920e-05 0.0000000000000000e+00
|
||||
111 9.4236282619897256e-06 2.1395799353203516e-05 0.0000000000000000e+00
|
||||
112 1.5528508660313246e-05 3.2559849894401442e-05 0.0000000000000000e+00
|
||||
113 1.0151636970505765e-05 2.0069631778223131e-05 0.0000000000000000e+00
|
||||
114 1.7697076907652322e-05 2.9219489273322326e-05 0.0000000000000000e+00
|
||||
115 1.2515393741428794e-05 1.8835255026813244e-05 0.0000000000000000e+00
|
||||
116 2.2166639673992795e-05 2.6190973817683679e-05 0.0000000000000000e+00
|
||||
117 1.6287686218571795e-05 1.7749195377506077e-05 0.0000000000000000e+00
|
||||
118 2.8490182736201632e-05 2.3793837746782787e-05 0.0000000000000000e+00
|
||||
119 2.1107512829311378e-05 1.6897890319175769e-05 0.0000000000000000e+00
|
||||
120 3.6037837106045466e-05 2.2245603004594772e-05 0.0000000000000000e+00
|
||||
121 5.3754680927831089e-05 2.5818243561840512e-05 0.0000000000000000e+00
|
||||
122 7.3852984703953750e-05 2.7472934391924166e-05 0.0000000000000000e+00
|
||||
123 6.4028996009385391e-05 2.5673459200729887e-05 0.0000000000000000e+00
|
||||
124 8.5908169593167111e-05 2.8779655657983422e-05 0.0000000000000000e+00
|
||||
125 7.3452059594226324e-05 2.6972883064637495e-05 0.0000000000000000e+00
|
||||
126 9.6325597970378315e-05 3.2438649799599460e-05 0.0000000000000000e+00
|
||||
127 8.1100712408732978e-05 2.9661132010523619e-05 0.0000000000000000e+00
|
||||
128 1.0416393664254911e-04 3.7996059391476322e-05 0.0000000000000000e+00
|
||||
129 8.6279187735689372e-05 3.3655093070911189e-05 0.0000000000000000e+00
|
||||
130 1.0867812733907078e-04 4.4662561906767820e-05 0.0000000000000000e+00
|
||||
131 8.8474833676771911e-05 3.8743354165649700e-05 0.0000000000000000e+00
|
||||
132 1.0953332540892396e-04 5.1642519960343192e-05 0.0000000000000000e+00
|
||||
133 8.7489301482666931e-05 4.4565301821478113e-05 0.0000000000000000e+00
|
||||
134 1.0664519563149365e-04 5.8191926603172465e-05 0.0000000000000000e+00
|
||||
135 8.3386685919597045e-05 5.0496180582897816e-05 0.0000000000000000e+00
|
||||
136 1.0029664202627839e-04 6.3854180722835299e-05 0.0000000000000000e+00
|
||||
137 7.6554421387387345e-05 5.5724916856637890e-05 0.0000000000000000e+00
|
||||
138 9.1026233328924885e-05 6.8337584627018583e-05 0.0000000000000000e+00
|
||||
139 6.7636782318513533e-05 5.9415263115523977e-05 0.0000000000000000e+00
|
||||
140 7.9687801662836277e-05 7.1465060890868459e-05 0.0000000000000000e+00
|
||||
141 5.7497112140338785e-05 6.0967609586633220e-05 0.0000000000000000e+00
|
||||
142 6.7357844628560681e-05 7.3031410372387953e-05 0.0000000000000000e+00
|
||||
143 4.7129030804640708e-05 6.0212629249287861e-05 0.0000000000000000e+00
|
||||
144 5.5250218292995579e-05 7.2797466423152327e-05 0.0000000000000000e+00
|
||||
145 3.7563119690651669e-05 5.7436898093437411e-05 0.0000000000000000e+00
|
||||
146 4.4567659752612482e-05 7.0555413628180241e-05 0.0000000000000000e+00
|
||||
147 2.9761856381290211e-05 5.3240161725660877e-05 0.0000000000000000e+00
|
||||
148 3.6379968408071024e-05 6.6254587745984145e-05 0.0000000000000000e+00
|
||||
149 2.4507249328654254e-05 4.8297754292616488e-05 0.0000000000000000e+00
|
||||
150 3.1513287993668526e-05 6.0149614548130757e-05 0.0000000000000000e+00
|
||||
151 2.2321658045569226e-05 4.3171432510556026e-05 0.0000000000000000e+00
|
||||
152 3.0489149535510922e-05 5.2826430989590112e-05 0.0000000000000000e+00
|
||||
153 2.3406691442805219e-05 3.8251620084219645e-05 0.0000000000000000e+00
|
||||
154 3.3434005351227340e-05 4.5149642749209296e-05 0.0000000000000000e+00
|
||||
155 2.7646263937105427e-05 3.3806816567877322e-05 0.0000000000000000e+00
|
||||
156 4.0072022728543377e-05 3.8051851023877120e-05 0.0000000000000000e+00
|
||||
157 3.4612453095456479e-05 3.0084179504664271e-05 0.0000000000000000e+00
|
||||
158 4.9715995320497382e-05 3.2366348850974144e-05 0.0000000000000000e+00
|
||||
159 4.3610755492928814e-05 2.7338724794948033e-05 0.0000000000000000e+00
|
||||
160 6.1380291935873857e-05 2.8717537667974358e-05 0.0000000000000000e+00
|
||||
161 8.1494982491825407e-05 2.8148953219575557e-05 0.0000000000000000e+00
|
||||
162 1.0332280599497646e-04 2.6201503829225565e-05 0.0000000000000000e+00
|
||||
163 9.5761847160871774e-05 2.7946357434336516e-05 0.0000000000000000e+00
|
||||
164 1.1864695815872809e-04 2.8356135457834722e-05 0.0000000000000000e+00
|
||||
165 1.0885399470738391e-04 3.0748146450938071e-05 0.0000000000000000e+00
|
||||
166 1.3196232705661449e-04 3.4623883717438410e-05 0.0000000000000000e+00
|
||||
167 1.1960145227112585e-04 3.6566084099414615e-05 0.0000000000000000e+00
|
||||
168 1.4195026861275745e-04 4.3922046815628174e-05 0.0000000000000000e+00
|
||||
169 1.2694731664409029e-04 4.5104351462522260e-05 0.0000000000000000e+00
|
||||
170 1.4795217588335909e-04 5.5130340832613979e-05 0.0000000000000000e+00
|
||||
171 1.3031757484079781e-04 5.5906601170376687e-05 0.0000000000000000e+00
|
||||
172 1.4942385512754647e-04 6.7008660580344934e-05 0.0000000000000000e+00
|
||||
173 1.2933895493945637e-04 6.7959205844179285e-05 0.0000000000000000e+00
|
||||
174 1.4640862693120205e-04 7.8808347871067721e-05 0.0000000000000000e+00
|
||||
175 1.2418770632620368e-04 7.9948632905278019e-05 0.0000000000000000e+00
|
||||
176 1.3899686227644703e-04 8.9704374162949410e-05 0.0000000000000000e+00
|
||||
177 1.1530175670323509e-04 9.0294899930563893e-05 0.0000000000000000e+00
|
||||
178 1.2781482749801704e-04 9.8919094420893419e-05 0.0000000000000000e+00
|
||||
179 1.0353662297703481e-04 9.7655023731693666e-05 0.0000000000000000e+00
|
||||
180 1.1373191796318627e-04 1.0541969215504335e-04 0.0000000000000000e+00
|
||||
181 8.9924310567240939e-05 1.0107679026970171e-04 0.0000000000000000e+00
|
||||
182 9.8144155759054283e-05 1.0842945197242355e-04 0.0000000000000000e+00
|
||||
183 7.5715426026251240e-05 1.0020899633485792e-04 0.0000000000000000e+00
|
||||
184 8.2585472575644195e-05 1.0759497773947524e-04 0.0000000000000000e+00
|
||||
185 6.2273313315312773e-05 9.5280171371694988e-05 0.0000000000000000e+00
|
||||
186 6.8676150395344254e-05 1.0303784847881596e-04 0.0000000000000000e+00
|
||||
187 5.0970916505555661e-05 8.7088088473526171e-05 0.0000000000000000e+00
|
||||
188 5.7773431465618642e-05 9.5162943772818259e-05 0.0000000000000000e+00
|
||||
189 4.3046171895633206e-05 7.6794608467548045e-05 0.0000000000000000e+00
|
||||
190 5.1018825812688962e-05 8.4471826448580955e-05 0.0000000000000000e+00
|
||||
191 3.9350805046373119e-05 6.5685772521718177e-05 0.0000000000000000e+00
|
||||
192 4.9118794840322114e-05 7.1798478806600616e-05 0.0000000000000000e+00
|
||||
193 4.0296544731752153e-05 5.4848218154306130e-05 0.0000000000000000e+00
|
||||
194 5.2373823993379091e-05 5.8337807582076184e-05 0.0000000000000000e+00
|
||||
195 4.5754994278033105e-05 4.5116316024063770e-05 0.0000000000000000e+00
|
||||
196 6.0480102795976155e-05 4.5653533328626764e-05 0.0000000000000000e+00
|
||||
197 5.5147574075957093e-05 3.7092945765346277e-05 0.0000000000000000e+00
|
||||
198 7.2607642712602124e-05 3.5308098903458904e-05 0.0000000000000000e+00
|
||||
199 6.7490113431981086e-05 3.1302088338741595e-05 0.0000000000000000e+00
|
||||
200 8.7399794370653100e-05 2.8568976378293145e-05 0.0000000000000000e+00
|
||||
201 1.0893722215793989e-04 2.3548242675947018e-05 0.0000000000000000e+00
|
||||
202 1.3096734611020011e-04 1.8222479559561189e-05 0.0000000000000000e+00
|
||||
203 1.2587405764826476e-04 2.3075086083653581e-05 0.0000000000000000e+00
|
||||
204 1.4794813469964918e-04 2.1310741972757686e-05 0.0000000000000000e+00
|
||||
205 1.4140062010542452e-04 2.7813335553710658e-05 0.0000000000000000e+00
|
||||
206 1.6232505969042551e-04 3.0392445992766945e-05 0.0000000000000000e+00
|
||||
207 1.5397074924697088e-04 3.7554013992723016e-05 0.0000000000000000e+00
|
||||
208 1.7307084911688810e-04 4.3967269632201604e-05 0.0000000000000000e+00
|
||||
209 1.6265299884253917e-04 5.1975640619979227e-05 0.0000000000000000e+00
|
||||
210 1.7920198664424654e-04 6.0190020213309052e-05 0.0000000000000000e+00
|
||||
211 1.6652150024137926e-04 6.9718144800536699e-05 0.0000000000000000e+00
|
||||
212 1.8081789854731273e-04 7.8360099041392683e-05 0.0000000000000000e+00
|
||||
213 1.6556181720350750e-04 8.9018344965798718e-05 0.0000000000000000e+00
|
||||
214 1.7752817256212197e-04 9.7575999242155437e-05 0.0000000000000000e+00
|
||||
215 1.5977208852566740e-04 1.0737397867986304e-04 0.0000000000000000e+00
|
||||
216 1.6979140654165145e-04 1.1697357648400367e-04 0.0000000000000000e+00
|
||||
217 1.4991716557360079e-04 1.2288188040735228e-04 0.0000000000000000e+00
|
||||
218 1.5773246565703171e-04 1.3407831270088809e-04 0.0000000000000000e+00
|
||||
219 1.3669127604115129e-04 1.3409320273816903e-04 0.0000000000000000e+00
|
||||
220 1.4251229678068216e-04 1.4611735938454550e-04 0.0000000000000000e+00
|
||||
221 1.2122307334826826e-04 1.4035076438954076e-04 0.0000000000000000e+00
|
||||
222 1.2529950168048559e-04 1.5081786662543979e-04 0.0000000000000000e+00
|
||||
223 1.0469592755885001e-04 1.4095013503932427e-04 0.0000000000000000e+00
|
||||
224 1.0808583047877408e-04 1.4794462550140816e-04 0.0000000000000000e+00
|
||||
225 8.8627241500263001e-05 1.3548056521811501e-04 0.0000000000000000e+00
|
||||
226 9.2458332531887566e-05 1.3885968265358318e-04 0.0000000000000000e+00
|
||||
227 7.4741877098264211e-05 1.2401626995789950e-04 0.0000000000000000e+00
|
||||
228 8.0205883060811833e-05 1.2520982577425913e-04 0.0000000000000000e+00
|
||||
229 6.4625586397733592e-05 1.0787656142000266e-04 0.0000000000000000e+00
|
||||
230 7.2455365263725255e-05 1.0828209149006050e-04 0.0000000000000000e+00
|
||||
231 5.9588283630412220e-05 8.9170324651604443e-05 0.0000000000000000e+00
|
||||
232 7.0192628935414336e-05 8.8909581629389317e-05 0.0000000000000000e+00
|
||||
233 6.0204784194593798e-05 7.0300012127155753e-05 0.0000000000000000e+00
|
||||
234 7.3736654845263383e-05 6.8446290010432812e-05 0.0000000000000000e+00
|
||||
235 6.6430610182749772e-05 5.3155748135392397e-05 0.0000000000000000e+00
|
||||
236 8.2877314926921305e-05 4.8905829630990080e-05 0.0000000000000000e+00
|
||||
237 7.7513488386102286e-05 3.9091588598701160e-05 0.0000000000000000e+00
|
||||
238 9.6520171103331445e-05 3.2781173935459572e-05 0.0000000000000000e+00
|
||||
239 9.2232416915701703e-05 2.8983592081175541e-05 0.0000000000000000e+00
|
||||
240 1.1323768745207866e-04 2.2099480605147771e-05 0.0000000000000000e+00
|
||||
241 1.3459865563319741e-04 1.2703227752398906e-05 0.0000000000000000e+00
|
||||
242 1.5474472990034682e-04 4.9028952578147883e-06 0.0000000000000000e+00
|
||||
243 1.5215092550023015e-04 1.2097129719583488e-05 0.0000000000000000e+00
|
||||
244 1.7049283829256650e-04 9.1706083284784945e-06 0.0000000000000000e+00
|
||||
245 1.6776008627299133e-04 1.9099097427610624e-05 0.0000000000000000e+00
|
||||
246 1.8333367243371162e-04 2.1604042292807520e-05 0.0000000000000000e+00
|
||||
247 1.8008195062651708e-04 3.3615378061081087e-05 0.0000000000000000e+00
|
||||
248 1.9189650531499411e-04 3.9685789135164573e-05 0.0000000000000000e+00
|
||||
249 1.8783573502138761e-04 5.4407048131235179e-05 0.0000000000000000e+00
|
||||
250 1.9614236422538478e-04 6.1776442206818580e-05 0.0000000000000000e+00
|
||||
251 1.9089458289321614e-04 7.9516349638183995e-05 0.0000000000000000e+00
|
||||
252 1.9558796322159504e-04 8.6892146170328155e-05 0.0000000000000000e+00
|
||||
253 1.8874887732394583e-04 1.0500710476222600e-04 0.0000000000000000e+00
|
||||
254 1.9152092472987035e-04 1.1597519058197392e-04 0.0000000000000000e+00
|
||||
255 1.8256170726520249e-04 1.2813543516461412e-04 0.0000000000000000e+00
|
||||
256 1.8317412822647789e-04 1.4660018932962857e-04 0.0000000000000000e+00
|
||||
257 1.7255263462072589e-04 1.4676532692364173e-04 0.0000000000000000e+00
|
||||
258 1.7180488878385214e-04 1.7463142934331309e-04 0.0000000000000000e+00
|
||||
259 1.5968255923162790e-04 1.6112886872639011e-04 0.0000000000000000e+00
|
||||
260 1.5736418072846288e-04 1.9373036611985696e-04 0.0000000000000000e+00
|
||||
261 1.4438478717201006e-04 1.7104686393958903e-04 0.0000000000000000e+00
|
||||
262 1.4172732865070544e-04 1.9993397606046031e-04 0.0000000000000000e+00
|
||||
263 1.2780764883044244e-04 1.7581062997197168e-04 0.0000000000000000e+00
|
||||
264 1.2551429537422006e-04 1.9326020335803872e-04 0.0000000000000000e+00
|
||||
265 1.1143818436667695e-04 1.7279653463973672e-04 0.0000000000000000e+00
|
||||
266 1.1129339275113247e-04 1.7696772682632424e-04 0.0000000000000000e+00
|
||||
267 9.7026315827934351e-05 1.6059526683700199e-04 0.0000000000000000e+00
|
||||
268 1.0011077369688101e-04 1.5518094661065159e-04 0.0000000000000000e+00
|
||||
269 8.6522173578507114e-05 1.3949676203897713e-04 0.0000000000000000e+00
|
||||
270 9.3664351269599769e-05 1.3012327167812935e-04 0.0000000000000000e+00
|
||||
271 8.1291625785936272e-05 1.1272276579557331e-04 0.0000000000000000e+00
|
||||
272 9.2500602391673231e-05 1.0286100151558550e-04 0.0000000000000000e+00
|
||||
273 8.2174156364853157e-05 8.4321872533994066e-05 0.0000000000000000e+00
|
||||
274 9.7130125497925732e-05 7.4496044974704109e-05 0.0000000000000000e+00
|
||||
275 8.9034151680274584e-05 5.8030339746749375e-05 0.0000000000000000e+00
|
||||
276 1.0678389790186836e-04 4.7638087115883802e-05 0.0000000000000000e+00
|
||||
277 1.0119535639935181e-04 3.6303198355693708e-05 0.0000000000000000e+00
|
||||
278 1.2094537118731950e-04 2.5060744325496045e-05 0.0000000000000000e+00
|
||||
279 1.1693017924424426e-04 2.0976803055913763e-05 0.0000000000000000e+00
|
||||
280 1.3749539877318216e-04 1.0260590705305633e-05 0.0000000000000000e+00
|
||||
281 1.5664700963922696e-04 -2.3143582219387062e-06 0.0000000000000000e+00
|
||||
282 1.7213521099798126e-04 -1.0893217653461935e-05 0.0000000000000000e+00
|
||||
283 1.7163725578470403e-04 -2.7032144307298500e-06 0.0000000000000000e+00
|
||||
284 1.8302101438290170e-04 -4.7015876043674941e-06 0.0000000000000000e+00
|
||||
285 1.8408986700031230e-04 7.3762135624856621e-06 0.0000000000000000e+00
|
||||
286 1.9034465344562048e-04 1.1634737927368466e-05 0.0000000000000000e+00
|
||||
287 1.9261711656854316e-04 2.7002357232706195e-05 0.0000000000000000e+00
|
||||
288 1.9361558083412500e-04 3.5128829947321527e-05 0.0000000000000000e+00
|
||||
289 1.9675951681764233e-04 5.4504542291358708e-05 0.0000000000000000e+00
|
||||
290 1.9229119872704733e-04 6.3160704993402156e-05 0.0000000000000000e+00
|
||||
291 1.9589287639141945e-04 8.5624062570252574e-05 0.0000000000000000e+00
|
||||
292 1.8763172746254775e-04 9.5926064062507038e-05 0.0000000000000000e+00
|
||||
293 1.9144012028784324e-04 1.1574950605207010e-04 0.0000000000000000e+00
|
||||
294 1.7925388721026504e-04 1.3336630569376064e-04 0.0000000000000000e+00
|
||||
295 1.8325338492376081e-04 1.3941523897602475e-04 0.0000000000000000e+00
|
||||
296 1.7111384196688562e-04 1.7606151476373124e-04 0.0000000000000000e+00
|
||||
297 1.7441139798144990e-04 1.5854503282415543e-04 0.0000000000000000e+00
|
||||
298 1.6032326888461984e-04 2.1446583056531008e-04 0.0000000000000000e+00
|
||||
299 1.6387438500404321e-04 1.7460023770546828e-04 0.0000000000000000e+00
|
||||
300 1.5074052192984994e-04 2.4020838682409438e-04 0.0000000000000000e+00
|
||||
301 1.5148519378157811e-04 1.8980377776341359e-04 0.0000000000000000e+00
|
||||
302 1.3966552521236660e-04 2.4774151750977874e-04 0.0000000000000000e+00
|
||||
303 1.3793365457372421e-04 2.0064007271268226e-04 0.0000000000000000e+00
|
||||
304 1.2999175496236775e-04 2.3635880684653166e-04 0.0000000000000000e+00
|
||||
305 1.2445809284142433e-04 2.0319207617434042e-04 0.0000000000000000e+00
|
||||
306 1.2058479570330461e-04 2.1223162942725083e-04 0.0000000000000000e+00
|
||||
307 1.1335261202324864e-04 1.9202689248144918e-04 0.0000000000000000e+00
|
||||
308 1.1489966476687653e-04 1.8116775432026056e-04 0.0000000000000000e+00
|
||||
309 1.0607147008139182e-04 1.6763704556867280e-04 0.0000000000000000e+00
|
||||
310 1.1336585045824133e-04 1.4707143380834897e-04 0.0000000000000000e+00
|
||||
311 1.0344655043634243e-04 1.3351953844142965e-04 0.0000000000000000e+00
|
||||
312 1.1682664536528110e-04 1.1117223278055075e-04 0.0000000000000000e+00
|
||||
313 1.0584011765559926e-04 9.5633260364903774e-05 0.0000000000000000e+00
|
||||
314 1.2284574193182076e-04 7.5987122603626839e-05 0.0000000000000000e+00
|
||||
315 1.1395109003961985e-04 5.9134539871496392e-05 0.0000000000000000e+00
|
||||
316 1.3307867183720012e-04 4.1776312299002252e-05 0.0000000000000000e+00
|
||||
317 1.2588269209880162e-04 2.9470198058979825e-05 0.0000000000000000e+00
|
||||
318 1.4544292811228404e-04 1.3605886591663147e-05 0.0000000000000000e+00
|
||||
319 1.4084591944156649e-04 8.4739193403876596e-06 0.0000000000000000e+00
|
||||
320 1.5916834934516234e-04 -4.8366910892216897e-06 0.0000000000000000e+00
|
||||
321 1.7356992275325834e-04 -1.8042780077684453e-05 0.0000000000000000e+00
|
||||
322 1.8147503918697350e-04 -2.4540925551368165e-05 0.0000000000000000e+00
|
||||
323 1.8163463266840930e-04 -1.7130129888846129e-05 0.0000000000000000e+00
|
||||
324 1.8253898079463108e-04 -1.5598547575766951e-05 0.0000000000000000e+00
|
||||
325 1.8657806229653399e-04 -3.4133038182733444e-06 0.0000000000000000e+00
|
||||
326 1.8037702210949025e-04 5.3434050311440554e-06 0.0000000000000000e+00
|
||||
327 1.8771879764928681e-04 2.1715518823040016e-05 0.0000000000000000e+00
|
||||
328 1.7471074558026713e-04 3.4539745108762290e-05 0.0000000000000000e+00
|
||||
329 1.8460873128030577e-04 5.4984524671188725e-05 0.0000000000000000e+00
|
||||
330 1.6600292929781353e-04 6.9008728811924969e-05 0.0000000000000000e+00
|
||||
331 1.7796512641162431e-04 9.1385034689547154e-05 0.0000000000000000e+00
|
||||
332 1.5410918238014520e-04 1.0736588228516046e-04 0.0000000000000000e+00
|
||||
333 1.6795483683047752e-04 1.2318778434343078e-04 0.0000000000000000e+00
|
||||
334 1.4157775831030313e-04 1.5014040855437159e-04 0.0000000000000000e+00
|
||||
335 1.5785083269945281e-04 1.4650075439474400e-04 0.0000000000000000e+00
|
||||
336 1.2665633684184470e-04 1.9516493438247949e-04 0.0000000000000000e+00
|
||||
337 1.4652933492756114e-04 1.5825492457397368e-04 0.0000000000000000e+00
|
||||
338 1.2214547186144981e-04 2.4167794353872549e-04 0.0000000000000000e+00
|
||||
339 1.4180074826065196e-04 1.7604592446691659e-04 0.0000000000000000e+00
|
||||
340 1.1255092108513610e-04 2.7260123374319155e-04 0.0000000000000000e+00
|
||||
341 1.3761399094902802e-04 1.9706727165017120e-04 0.0000000000000000e+00
|
||||
342 1.1522842530577449e-04 2.7911375117613133e-04 0.0000000000000000e+00
|
||||
343 1.2918411829601699e-04 2.1803343236056900e-04 0.0000000000000000e+00
|
||||
344 1.1734351128622201e-04 2.6571681944023359e-04 0.0000000000000000e+00
|
||||
345 1.2254276275087787e-04 2.2432204295978476e-04 0.0000000000000000e+00
|
||||
346 1.1974443872507096e-04 2.3680090433102696e-04 0.0000000000000000e+00
|
||||
347 1.2071540692597284e-04 2.1269652219509870e-04 0.0000000000000000e+00
|
||||
348 1.2270101616137648e-04 1.9743779542515523e-04 0.0000000000000000e+00
|
||||
349 1.2264642729289398e-04 1.8508739809863369e-04 0.0000000000000000e+00
|
||||
350 1.3383017178927455e-04 1.5156768459346495e-04 0.0000000000000000e+00
|
||||
351 1.2577540617175406e-04 1.4740321111045147e-04 0.0000000000000000e+00
|
||||
352 1.4340773421068627e-04 1.1293118958385223e-04 0.0000000000000000e+00
|
||||
353 1.3341749813102418e-04 1.0072504549123244e-04 0.0000000000000000e+00
|
||||
354 1.5386164243670204e-04 7.2227623415051933e-05 0.0000000000000000e+00
|
||||
355 1.4204167491417043e-04 5.6498808092830119e-05 0.0000000000000000e+00
|
||||
356 1.6279824866213127e-04 3.3429940217178515e-05 0.0000000000000000e+00
|
||||
357 1.5267578941533281e-04 1.9709016910970241e-05 0.0000000000000000e+00
|
||||
358 1.7110318234027366e-04 1.1467794122178855e-06 0.0000000000000000e+00
|
||||
359 1.6340539277356244e-04 -5.5189289771696855e-06 0.0000000000000000e+00
|
||||
360 1.7740714701955653e-04 -1.8977834327990608e-05 0.0000000000000000e+00
|
||||
361 1.8452802730369313e-04 -2.8832061973687458e-05 0.0000000000000000e+00
|
||||
362 1.8186625712888205e-04 -2.9558136605260799e-05 0.0000000000000000e+00
|
||||
363 1.8024969476821697e-04 -2.5772260635909678e-05 0.0000000000000000e+00
|
||||
364 1.6761747789816595e-04 -1.7724478134172529e-05 0.0000000000000000e+00
|
||||
365 1.7295655435232461e-04 -8.2023972909357763e-06 0.0000000000000000e+00
|
||||
366 1.5167563906890865e-04 7.1136721706312189e-06 0.0000000000000000e+00
|
||||
367 1.6300729193455892e-04 2.1421261796460145e-05 0.0000000000000000e+00
|
||||
368 1.3513262146713916e-04 4.1132163185070293e-05 0.0000000000000000e+00
|
||||
369 1.5092813590493438e-04 5.9201618093873702e-05 0.0000000000000000e+00
|
||||
370 1.1841008358865480e-04 8.0419467894957835e-05 0.0000000000000000e+00
|
||||
371 1.3728404354778657e-04 9.8997396367778159e-05 0.0000000000000000e+00
|
||||
372 1.0207956567589023e-04 1.2179874114308306e-04 0.0000000000000000e+00
|
||||
373 1.2285830843381253e-04 1.3408468250307866e-04 0.0000000000000000e+00
|
||||
374 8.5374614775879387e-05 1.6300686953091837e-04 0.0000000000000000e+00
|
||||
375 1.0823800239604665e-04 1.5689628308888026e-04 0.0000000000000000e+00
|
||||
376 7.0794245443767117e-05 2.0076846781781206e-04 0.0000000000000000e+00
|
||||
377 9.4916240542002045e-05 1.6757505383186989e-04 0.0000000000000000e+00
|
||||
378 5.3305776376960658e-05 2.3409206018084466e-04 0.0000000000000000e+00
|
||||
379 9.7006448817647123e-05 1.6923635825827552e-04 0.0000000000000000e+00
|
||||
380 7.3465624650027872e-05 2.8247344576399282e-04 0.0000000000000000e+00
|
||||
381 1.0549927592481066e-04 2.0928780749128950e-04 0.0000000000000000e+00
|
||||
382 8.2435739649036618e-05 2.8810010190574649e-04 0.0000000000000000e+00
|
||||
383 1.0402453921892486e-04 2.4985200604758925e-04 0.0000000000000000e+00
|
||||
384 1.0698549586748876e-04 2.9499323828433428e-04 0.0000000000000000e+00
|
||||
385 1.0406074064549273e-04 2.4902814952768373e-04 0.0000000000000000e+00
|
||||
386 1.2548092418124016e-04 2.5651719838597350e-04 0.0000000000000000e+00
|
||||
387 1.2351646868146525e-04 2.1977784401163054e-04 0.0000000000000000e+00
|
||||
388 1.5004190410192569e-04 2.0137571208681400e-04 0.0000000000000000e+00
|
||||
389 1.3393580166351108e-04 1.9255393507981809e-04 0.0000000000000000e+00
|
||||
390 1.6295883087441844e-04 1.5199213302359484e-04 0.0000000000000000e+00
|
||||
391 1.5063751113547077e-04 1.4694859067203417e-04 0.0000000000000000e+00
|
||||
392 1.8000897081745795e-04 1.0619343548646192e-04 0.0000000000000000e+00
|
||||
393 1.6561309378602883e-04 9.7037670677296156e-05 0.0000000000000000e+00
|
||||
394 1.9382745100814531e-04 6.5648980655922534e-05 0.0000000000000000e+00
|
||||
395 1.7695741527044807e-04 4.9716511735790200e-05 0.0000000000000000e+00
|
||||
396 2.0065188597728214e-04 2.5746708320466968e-05 0.0000000000000000e+00
|
||||
397 1.8297867804266331e-04 1.0615003992406336e-05 0.0000000000000000e+00
|
||||
398 1.9982611540716595e-04 -6.5682876870518107e-06 0.0000000000000000e+00
|
||||
399 1.8556554896400902e-04 -1.6509803537161082e-05 0.0000000000000000e+00
|
||||
400 1.9312536581833663e-04 -2.5912353602364910e-05 0.0000000000000000e+00
|
||||
401 1.9023801410824606e-04 -2.7464462701394523e-05 0.0000000000000000e+00
|
||||
402 1.6698242474704196e-04 -2.2099770957974276e-05 0.0000000000000000e+00
|
||||
403 1.4243470745724796e-04 -2.3480099448894497e-06 0.0000000000000000e+00
|
||||
404 1.1876992118927330e-04 2.8893674554990122e-05 0.0000000000000000e+00
|
||||
405 9.7519654816455303e-05 6.7473438674861880e-05 0.0000000000000000e+00
|
||||
406 7.9406575250692843e-05 1.0857040090545463e-04 0.0000000000000000e+00
|
||||
407 6.4539515581651943e-05 1.4692649268945184e-04 0.0000000000000000e+00
|
||||
408 5.1587395282262643e-05 1.7813848972085620e-04 0.0000000000000000e+00
|
||||
409 3.9112490387149122e-05 1.9658956051422694e-04 0.0000000000000000e+00
|
||||
410 5.0646024795521216e-05 2.1400372314275622e-04 0.0000000000000000e+00
|
||||
411 5.0846759072495365e-05 2.4269431977691632e-04 0.0000000000000000e+00
|
||||
412 -1.1482904584733112e-04 -1.4373303263865990e-04 0.0000000000000000e+00
|
||||
413 1.5511043799162975e-04 2.5875085720661746e-04 0.0000000000000000e+00
|
||||
414 1.6626514293530906e-04 2.1735425519646309e-04 0.0000000000000000e+00
|
||||
415 1.8641734272053080e-04 1.7687638118890660e-04 0.0000000000000000e+00
|
||||
416 2.0380463041431767e-04 1.3085055646827544e-04 0.0000000000000000e+00
|
||||
417 2.1756044245783355e-04 8.4550353671555104e-05 0.0000000000000000e+00
|
||||
418 2.2486305540664193e-04 4.3653832482456800e-05 0.0000000000000000e+00
|
||||
419 2.2188236489361566e-04 7.6524745655054321e-06 0.0000000000000000e+00
|
||||
420 2.0949238720629205e-04 -1.7218568434280989e-05 0.0000000000000000e+00
|
|
@ -27,24 +27,75 @@
|
|||
#include "memory.h"
|
||||
#include "error.h"
|
||||
#include "force.h"
|
||||
#include "math_const.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace FixConst;
|
||||
using namespace MathConst;
|
||||
|
||||
enum{SINGLE_PROC_DIRECT,SINGLE_PROC_MAP,MULTI_PROC};
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) :
|
||||
Fix(lmp, narg, arg), id_pe(NULL), pe(NULL), xprev(NULL), xnext(NULL),
|
||||
tangent(NULL), xsend(NULL), xrecv(NULL), tagsend(NULL), tagrecv(NULL),
|
||||
xsendall(NULL), xrecvall(NULL), tagsendall(NULL), tagrecvall(NULL),
|
||||
counts(NULL), displacements(NULL)
|
||||
Fix(lmp, narg, arg),
|
||||
id_pe(NULL), pe(NULL), nlenall(NULL), xprev(NULL), xnext(NULL),
|
||||
fnext(NULL), springF(NULL), tangent(NULL), xsend(NULL), xrecv(NULL),
|
||||
fsend(NULL), frecv(NULL), tagsend(NULL), tagrecv(NULL),
|
||||
xsendall(NULL), xrecvall(NULL), fsendall(NULL), frecvall(NULL),
|
||||
tagsendall(NULL), tagrecvall(NULL), counts(NULL),
|
||||
displacements(NULL)
|
||||
{
|
||||
if (narg != 4) error->all(FLERR,"Illegal fix neb command");
|
||||
|
||||
NEBLongRange=false;
|
||||
StandardNEB=true;
|
||||
PerpSpring=FreeEndIni=FreeEndFinal=false;
|
||||
FreeEndFinalWithRespToEIni=FinalAndInterWithRespToEIni=false;
|
||||
|
||||
kspringPerp=0.0;
|
||||
kspring2=1.0;
|
||||
if (narg < 4)
|
||||
error->all(FLERR,"Illegal fix neb command, argument missing");
|
||||
|
||||
kspring = force->numeric(FLERR,arg[3]);
|
||||
if (kspring <= 0.0) error->all(FLERR,"Illegal fix neb command");
|
||||
if (kspring <= 0.0)
|
||||
error->all(FLERR,"Illegal fix neb command."
|
||||
" The spring force was not provided properly");
|
||||
|
||||
int iarg =4;
|
||||
while (iarg < narg) {
|
||||
if (strcmp (arg[iarg],"nudg_style")==0) {
|
||||
if (strcmp (arg[iarg+1],"idealpos")==0) {
|
||||
NEBLongRange = true;
|
||||
iarg+=2;}
|
||||
else if (strcmp (arg[iarg+1],"neigh")==0) {
|
||||
NEBLongRange = false;
|
||||
StandardNEB = true;
|
||||
iarg+=2;}
|
||||
else error->all(FLERR,"Illegal fix neb command. Unknown keyword");}
|
||||
else if (strcmp (arg[iarg],"perp")==0) {
|
||||
PerpSpring=true;
|
||||
kspringPerp = force->numeric(FLERR,arg[iarg+1]);
|
||||
if (kspringPerp < 0.0)
|
||||
error->all(FLERR,"Illegal fix neb command. "
|
||||
"The perpendicular spring force was not provided properly");
|
||||
iarg+=2;}
|
||||
else if (strcmp (arg[iarg],"freeend")==0) {
|
||||
if (strcmp (arg[iarg+1],"ini")==0)
|
||||
FreeEndIni=true;
|
||||
else if (strcmp (arg[iarg+1],"final")==0)
|
||||
FreeEndFinal=true;
|
||||
else if (strcmp (arg[iarg+1],"finaleini")==0)
|
||||
FreeEndFinalWithRespToEIni=true;
|
||||
else if (strcmp (arg[iarg+1],"final2eini")==0) {
|
||||
FinalAndInterWithRespToEIni=true;
|
||||
FreeEndFinalWithRespToEIni=true;}
|
||||
else if (strcmp (arg[iarg+1],"none")!=0) error->all(FLERR,"Illegal fix neb command. Unknown keyword");
|
||||
iarg+=2;}
|
||||
else if (strcmp (arg[iarg],"freeend_kspring")==0) {
|
||||
kspring2=force->numeric(FLERR,arg[iarg+1]);
|
||||
iarg+=2; }
|
||||
else error->all(FLERR,"Illegal fix neb command. Unknown keyword");
|
||||
}
|
||||
|
||||
// nreplica = number of partitions
|
||||
// ireplica = which world I am in universe
|
||||
|
@ -62,7 +113,18 @@ FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) :
|
|||
else procprev = -1;
|
||||
if (ireplica < nreplica-1) procnext = universe->root_proc[ireplica+1];
|
||||
else procnext = -1;
|
||||
|
||||
uworld = universe->uworld;
|
||||
int *iroots = new int[nreplica];
|
||||
MPI_Group uworldgroup,rootgroup;
|
||||
if (NEBLongRange) {
|
||||
for (int i=0; i<nreplica; i++)
|
||||
iroots[i]=universe->root_proc[i];
|
||||
MPI_Comm_group(uworld, &uworldgroup);
|
||||
MPI_Group_incl(uworldgroup, nreplica, iroots, &rootgroup);
|
||||
MPI_Comm_create(uworld, rootgroup, &rootworld);
|
||||
}
|
||||
delete[] iroots;
|
||||
|
||||
// create a new compute pe style
|
||||
// id = fix-ID + pe, compute group = all
|
||||
|
@ -81,15 +143,8 @@ FixNEB::FixNEB(LAMMPS *lmp, int narg, char **arg) :
|
|||
|
||||
// initialize local storage
|
||||
|
||||
maxlocal = 0;
|
||||
ntotal = 0;
|
||||
|
||||
xprev = xnext = tangent = NULL;
|
||||
xsend = xrecv = NULL;
|
||||
tagsend = tagrecv = NULL;
|
||||
xsendall = xrecvall = NULL;
|
||||
tagsendall = tagrecvall = NULL;
|
||||
counts = displacements = NULL;
|
||||
maxlocal = -1;
|
||||
ntotal = -1;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -102,19 +157,29 @@ FixNEB::~FixNEB()
|
|||
memory->destroy(xprev);
|
||||
memory->destroy(xnext);
|
||||
memory->destroy(tangent);
|
||||
|
||||
memory->destroy(fnext);
|
||||
memory->destroy(springF);
|
||||
memory->destroy(xsend);
|
||||
memory->destroy(xrecv);
|
||||
memory->destroy(fsend);
|
||||
memory->destroy(frecv);
|
||||
memory->destroy(tagsend);
|
||||
memory->destroy(tagrecv);
|
||||
|
||||
memory->destroy(xsendall);
|
||||
memory->destroy(xrecvall);
|
||||
memory->destroy(fsendall);
|
||||
memory->destroy(frecvall);
|
||||
memory->destroy(tagsendall);
|
||||
memory->destroy(tagrecvall);
|
||||
|
||||
memory->destroy(counts);
|
||||
memory->destroy(displacements);
|
||||
|
||||
if (NEBLongRange) {
|
||||
if (rootworld != MPI_COMM_NULL) MPI_Comm_free(&rootworld);
|
||||
memory->destroy(nlenall);
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -148,7 +213,7 @@ void FixNEB::init()
|
|||
// comm mode for inter-replica exchange of coords
|
||||
|
||||
if (nreplica == nprocs_universe &&
|
||||
nebatoms == atom->natoms && atom->sortfreq == 0)
|
||||
nebatoms == atom->natoms && atom->sortfreq == 0)
|
||||
cmode = SINGLE_PROC_DIRECT;
|
||||
else if (nreplica == nprocs_universe) cmode = SINGLE_PROC_MAP;
|
||||
else cmode = MULTI_PROC;
|
||||
|
@ -158,11 +223,13 @@ void FixNEB::init()
|
|||
if (atom->natoms > MAXSMALLINT) error->all(FLERR,"Too many atoms for NEB");
|
||||
ntotal = atom->natoms;
|
||||
|
||||
if (atom->nlocal > maxlocal) reallocate();
|
||||
if (atom->nmax > maxlocal) reallocate();
|
||||
|
||||
if (MULTI_PROC && counts == NULL) {
|
||||
memory->create(xsendall,ntotal,3,"neb:xsendall");
|
||||
memory->create(xrecvall,ntotal,3,"neb:xrecvall");
|
||||
memory->create(fsendall,ntotal,3,"neb:fsendall");
|
||||
memory->create(frecvall,ntotal,3,"neb:frecvall");
|
||||
memory->create(tagsendall,ntotal,"neb:tagsendall");
|
||||
memory->create(tagrecvall,ntotal,"neb:tagrecvall");
|
||||
memory->create(counts,nprocs,"neb:counts");
|
||||
|
@ -185,19 +252,15 @@ void FixNEB::min_setup(int vflag)
|
|||
|
||||
void FixNEB::min_post_force(int vflag)
|
||||
{
|
||||
double vprev,vnext,vmax,vmin;
|
||||
double delx,dely,delz;
|
||||
double delta1[3],delta2[3];
|
||||
double vprev,vnext;
|
||||
double delxp,delyp,delzp,delxn,delyn,delzn;
|
||||
double vIni=0.0;
|
||||
|
||||
// veng = PE of this replica
|
||||
// vprev,vnext = PEs of adjacent replicas
|
||||
// only proc 0 in each replica communicates
|
||||
vprev=vnext=veng=pe->compute_scalar();
|
||||
|
||||
vprev = vnext = veng = pe->compute_scalar();
|
||||
|
||||
if (ireplica < nreplica-1 && me == 0)
|
||||
if (ireplica < nreplica-1 && me ==0)
|
||||
MPI_Send(&veng,1,MPI_DOUBLE,procnext,0,uworld);
|
||||
if (ireplica > 0 && me == 0)
|
||||
if (ireplica > 0 && me ==0)
|
||||
MPI_Recv(&vprev,1,MPI_DOUBLE,procprev,0,uworld,MPI_STATUS_IGNORE);
|
||||
|
||||
if (ireplica > 0 && me == 0)
|
||||
|
@ -210,116 +273,177 @@ void FixNEB::min_post_force(int vflag)
|
|||
MPI_Bcast(&vnext,1,MPI_DOUBLE,0,world);
|
||||
}
|
||||
|
||||
// communicate atoms to/from adjacent replicas to fill xprev,xnext
|
||||
if (FreeEndFinal && (update->ntimestep == 0)) EFinalIni = veng;
|
||||
|
||||
if (ireplica == 0) vIni=veng;
|
||||
|
||||
if (FreeEndFinalWithRespToEIni) {
|
||||
if (me == 0) {
|
||||
int procFirst;
|
||||
procFirst=universe->root_proc[0];
|
||||
MPI_Bcast(&vIni,1,MPI_DOUBLE,procFirst,uworld);
|
||||
}
|
||||
if (cmode == MULTI_PROC) {
|
||||
MPI_Bcast(&vIni,1,MPI_DOUBLE,0,world);
|
||||
}
|
||||
}
|
||||
if (FreeEndIni && ireplica == 0) {
|
||||
if (me == 0 )
|
||||
if (update->ntimestep == 0) {
|
||||
EIniIni = veng;
|
||||
if (cmode == MULTI_PROC)
|
||||
MPI_Bcast(&EIniIni,1,MPI_DOUBLE,0,world);
|
||||
}
|
||||
}
|
||||
|
||||
// communicate atoms to/from adjacent replicas to fill xprev,xnext
|
||||
inter_replica_comm();
|
||||
|
||||
// trigger potential energy computation on next timestep
|
||||
|
||||
pe->addstep(update->ntimestep+1);
|
||||
|
||||
// compute norm of GradV for log output
|
||||
double **x = atom->x;
|
||||
int *mask = atom->mask;
|
||||
double dot = 0.0;
|
||||
double prefactor = 0.0;
|
||||
|
||||
double **f = atom->f;
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
double fsq = 0.0;
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
fsq += f[i][0]*f[i][0] + f[i][1]*f[i][1] + f[i][2]*f[i][2];
|
||||
//calculating separation between images
|
||||
|
||||
MPI_Allreduce(&fsq,&gradvnorm,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
gradvnorm = sqrt(gradvnorm);
|
||||
|
||||
// first or last replica has no change to forces, just return
|
||||
|
||||
if (ireplica == 0 || ireplica == nreplica-1) {
|
||||
plen = nlen = 0.0;
|
||||
return;
|
||||
}
|
||||
|
||||
// tangent = unit tangent vector in 3N space
|
||||
// based on delta vectors between atoms and their images in adjacent replicas
|
||||
// use one or two delta vecs to compute tangent,
|
||||
// depending on relative PEs of 3 replicas
|
||||
// see Henkelman & Jonsson 2000 paper, eqs 8-11
|
||||
|
||||
double **x = atom->x;
|
||||
int *mask = atom->mask;
|
||||
|
||||
if (vnext > veng && veng > vprev) {
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
tangent[i][0] = xnext[i][0] - x[i][0];
|
||||
tangent[i][1] = xnext[i][1] - x[i][1];
|
||||
tangent[i][2] = xnext[i][2] - x[i][2];
|
||||
domain->minimum_image(tangent[i]);
|
||||
}
|
||||
} else if (vnext < veng && veng < vprev) {
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
tangent[i][0] = x[i][0] - xprev[i][0];
|
||||
tangent[i][1] = x[i][1] - xprev[i][1];
|
||||
tangent[i][2] = x[i][2] - xprev[i][2];
|
||||
domain->minimum_image(tangent[i]);
|
||||
}
|
||||
} else {
|
||||
vmax = MAX(fabs(vnext-veng),fabs(vprev-veng));
|
||||
vmin = MIN(fabs(vnext-veng),fabs(vprev-veng));
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
delta1[0] = xnext[i][0] - x[i][0];
|
||||
delta1[1] = xnext[i][1] - x[i][1];
|
||||
delta1[2] = xnext[i][2] - x[i][2];
|
||||
domain->minimum_image(delta1);
|
||||
delta2[0] = x[i][0] - xprev[i][0];
|
||||
delta2[1] = x[i][1] - xprev[i][1];
|
||||
delta2[2] = x[i][2] - xprev[i][2];
|
||||
domain->minimum_image(delta2);
|
||||
if (vnext > vprev) {
|
||||
tangent[i][0] = vmax*delta1[0] + vmin*delta2[0];
|
||||
tangent[i][1] = vmax*delta1[1] + vmin*delta2[1];
|
||||
tangent[i][2] = vmax*delta1[2] + vmin*delta2[2];
|
||||
} else {
|
||||
tangent[i][0] = vmin*delta1[0] + vmax*delta2[0];
|
||||
tangent[i][1] = vmin*delta1[1] + vmax*delta2[1];
|
||||
tangent[i][2] = vmin*delta1[2] + vmax*delta2[2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// tlen,plen,nlen = lengths of tangent, prev, next vectors
|
||||
|
||||
double tlen = 0.0;
|
||||
plen = 0.0;
|
||||
nlen = 0.0;
|
||||
double tlen = 0.0;
|
||||
double gradnextlen = 0.0;
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
tlen += tangent[i][0]*tangent[i][0] + tangent[i][1]*tangent[i][1] +
|
||||
tangent[i][2]*tangent[i][2];
|
||||
dotgrad = gradlen = dotpath = dottangrad = 0.0;
|
||||
|
||||
delx = x[i][0] - xprev[i][0];
|
||||
dely = x[i][1] - xprev[i][1];
|
||||
delz = x[i][2] - xprev[i][2];
|
||||
domain->minimum_image(delx,dely,delz);
|
||||
plen += delx*delx + dely*dely + delz*delz;
|
||||
if (ireplica == nreplica-1) {
|
||||
|
||||
delx = xnext[i][0] - x[i][0];
|
||||
dely = xnext[i][1] - x[i][1];
|
||||
delz = xnext[i][2] - x[i][2];
|
||||
domain->minimum_image(delx,dely,delz);
|
||||
nlen += delx*delx + dely*dely + delz*delz;
|
||||
}
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
delxp = x[i][0] - xprev[i][0];
|
||||
delyp = x[i][1] - xprev[i][1];
|
||||
delzp = x[i][2] - xprev[i][2];
|
||||
domain->minimum_image(delxp,delyp,delzp);
|
||||
plen += delxp*delxp + delyp*delyp + delzp*delzp;
|
||||
dottangrad += delxp* f[i][0]+ delyp*f[i][1]+delzp*f[i][2];
|
||||
gradlen += f[i][0]*f[i][0] + f[i][1]*f[i][1] + f[i][2]*f[i][2];
|
||||
if (FreeEndFinal||FreeEndFinalWithRespToEIni) {
|
||||
tangent[i][0]=delxp;
|
||||
tangent[i][1]=delyp;
|
||||
tangent[i][2]=delzp;
|
||||
tlen += tangent[i][0]*tangent[i][0]
|
||||
+ tangent[i][1]*tangent[i][1] + tangent[i][2]*tangent[i][2];
|
||||
dot += f[i][0]*tangent[i][0]
|
||||
+ f[i][1]*tangent[i][1] + f[i][2]*tangent[i][2];
|
||||
}
|
||||
}
|
||||
|
||||
double lenall;
|
||||
MPI_Allreduce(&tlen,&lenall,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
tlen = sqrt(lenall);
|
||||
} else if (ireplica == 0) {
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
delxn = xnext[i][0] - x[i][0];
|
||||
delyn = xnext[i][1] - x[i][1];
|
||||
delzn = xnext[i][2] - x[i][2];
|
||||
domain->minimum_image(delxn,delyn,delzn);
|
||||
nlen += delxn*delxn + delyn*delyn + delzn*delzn;
|
||||
gradnextlen += fnext[i][0]*fnext[i][0]
|
||||
+ fnext[i][1]*fnext[i][1] +fnext[i][2] * fnext[i][2];
|
||||
dotgrad += f[i][0]*fnext[i][0]
|
||||
+ f[i][1]*fnext[i][1] + f[i][2]*fnext[i][2];
|
||||
dottangrad += delxn*f[i][0]+ delyn*f[i][1] + delzn*f[i][2];
|
||||
gradlen += f[i][0]*f[i][0] + f[i][1]*f[i][1] + f[i][2]*f[i][2];
|
||||
if (FreeEndIni) {
|
||||
tangent[i][0]=delxn;
|
||||
tangent[i][1]=delyn;
|
||||
tangent[i][2]=delzn;
|
||||
tlen += tangent[i][0]*tangent[i][0]
|
||||
+ tangent[i][1]*tangent[i][1] + tangent[i][2]*tangent[i][2];
|
||||
dot += f[i][0]*tangent[i][0]
|
||||
+ f[i][1]*tangent[i][1] + f[i][2]*tangent[i][2];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
MPI_Allreduce(&plen,&lenall,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
plen = sqrt(lenall);
|
||||
// not the first or last replica
|
||||
|
||||
MPI_Allreduce(&nlen,&lenall,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
nlen = sqrt(lenall);
|
||||
double vmax = MAX(fabs(vnext-veng),fabs(vprev-veng));
|
||||
double vmin = MIN(fabs(vnext-veng),fabs(vprev-veng));
|
||||
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
delxp = x[i][0] - xprev[i][0];
|
||||
delyp = x[i][1] - xprev[i][1];
|
||||
delzp = x[i][2] - xprev[i][2];
|
||||
domain->minimum_image(delxp,delyp,delzp);
|
||||
plen += delxp*delxp + delyp*delyp + delzp*delzp;
|
||||
|
||||
delxn = xnext[i][0] - x[i][0];
|
||||
delyn = xnext[i][1] - x[i][1];
|
||||
delzn = xnext[i][2] - x[i][2];
|
||||
domain->minimum_image(delxn,delyn,delzn);
|
||||
|
||||
if (vnext > veng && veng > vprev) {
|
||||
tangent[i][0]=delxn;
|
||||
tangent[i][1]=delyn;
|
||||
tangent[i][2]=delzn;
|
||||
} else if (vnext < veng && veng < vprev) {
|
||||
tangent[i][0]=delxp;
|
||||
tangent[i][1]=delyp;
|
||||
tangent[i][2]=delzp;
|
||||
} else {
|
||||
if (vnext > vprev) {
|
||||
tangent[i][0] = vmax*delxn + vmin*delxp;
|
||||
tangent[i][1] = vmax*delyn + vmin*delyp;
|
||||
tangent[i][2] = vmax*delzn + vmin*delzp;
|
||||
} else {
|
||||
tangent[i][0] = vmin*delxn + vmax*delxp;
|
||||
tangent[i][1] = vmin*delyn + vmax*delyp;
|
||||
tangent[i][2] = vmin*delzn + vmax*delzp;
|
||||
}
|
||||
}
|
||||
|
||||
nlen += delxn*delxn + delyn*delyn + delzn*delzn;
|
||||
tlen += tangent[i][0]*tangent[i][0]
|
||||
+ tangent[i][1]*tangent[i][1] + tangent[i][2]*tangent[i][2];
|
||||
gradlen += f[i][0]*f[i][0] + f[i][1]*f[i][1] + f[i][2]*f[i][2];
|
||||
dotpath += delxp*delxn + delyp*delyn + delzp*delzn;
|
||||
dottangrad += tangent[i][0]* f[i][0]
|
||||
+ tangent[i][1]*f[i][1] + tangent[i][2]*f[i][2];
|
||||
gradnextlen += fnext[i][0]*fnext[i][0]
|
||||
+ fnext[i][1]*fnext[i][1] +fnext[i][2] * fnext[i][2];
|
||||
dotgrad += f[i][0]*fnext[i][0]
|
||||
+ f[i][1]*fnext[i][1] + f[i][2]*fnext[i][2];
|
||||
|
||||
springF[i][0]=kspringPerp*(delxn-delxp);
|
||||
springF[i][1]=kspringPerp*(delyn-delyp);
|
||||
springF[i][2]=kspringPerp*(delzn-delzp);
|
||||
}
|
||||
}
|
||||
|
||||
#define BUFSIZE 8
|
||||
double bufin[BUFSIZE], bufout[BUFSIZE];
|
||||
bufin[0] = nlen;
|
||||
bufin[1] = plen;
|
||||
bufin[2] = tlen;
|
||||
bufin[3] = gradlen;
|
||||
bufin[4] = gradnextlen;
|
||||
bufin[5] = dotpath;
|
||||
bufin[6] = dottangrad;
|
||||
bufin[7] = dotgrad;
|
||||
MPI_Allreduce(bufin,bufout,BUFSIZE,MPI_DOUBLE,MPI_SUM,world);
|
||||
nlen = sqrt(bufout[0]);
|
||||
plen = sqrt(bufout[1]);
|
||||
tlen = sqrt(bufout[2]);
|
||||
gradlen = sqrt(bufout[3]);
|
||||
gradnextlen = sqrt(bufout[4]);
|
||||
dotpath = bufout[5];
|
||||
dottangrad = bufout[6];
|
||||
dotgrad = bufout[7];
|
||||
|
||||
// normalize tangent vector
|
||||
|
||||
|
@ -333,37 +457,158 @@ void FixNEB::min_post_force(int vflag)
|
|||
}
|
||||
}
|
||||
|
||||
// reset force on each atom in this replica
|
||||
// regular NEB for all replicas except rclimber does hill-climbing NEB
|
||||
// currently have F = -Grad(V) = -Grad(V)_perp - Grad(V)_parallel
|
||||
// want F = -Grad(V)_perp + Fspring for regular NEB
|
||||
// thus Fdelta = Grad(V)_parallel + Fspring for regular NEB
|
||||
// want F = -Grad(V) + 2 Grad(V)_parallel for hill-climbing NEB
|
||||
// thus Fdelta = 2 Grad(V)_parallel for hill-climbing NEB
|
||||
// Grad(V)_parallel = (Grad(V) . utan) * utangent = -(F . utan) * utangent
|
||||
// Fspring = k (nlen - plen) * utangent
|
||||
// see Henkelman & Jonsson 2000 paper, eqs 3,4,12
|
||||
// see Henkelman & Jonsson 2000a paper, eq 5
|
||||
// first or last replica has no change to forces, just return
|
||||
|
||||
double dot = 0.0;
|
||||
for (int i = 0; i < nlocal; i++) {
|
||||
if (mask[i] & groupbit)
|
||||
dot += f[i][0]*tangent[i][0] + f[i][1]*tangent[i][1] +
|
||||
f[i][2]*tangent[i][2];
|
||||
if(ireplica>0 && ireplica<nreplica-1)
|
||||
dottangrad = dottangrad/(tlen*gradlen);
|
||||
if (ireplica == 0)
|
||||
dottangrad = dottangrad/(nlen*gradlen);
|
||||
if (ireplica == nreplica-1)
|
||||
dottangrad = dottangrad/(plen*gradlen);
|
||||
if (ireplica < nreplica-1)
|
||||
dotgrad = dotgrad /(gradlen*gradnextlen);
|
||||
|
||||
|
||||
if (FreeEndIni && ireplica == 0) {
|
||||
if (tlen > 0.0) {
|
||||
double dotall;
|
||||
MPI_Allreduce(&dot,&dotall,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
dot=dotall/tlen;
|
||||
|
||||
if (dot<0) prefactor = -dot - kspring2*(veng-EIniIni);
|
||||
else prefactor = -dot + kspring2*(veng-EIniIni);
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
f[i][0] += prefactor *tangent[i][0];
|
||||
f[i][1] += prefactor *tangent[i][1];
|
||||
f[i][2] += prefactor *tangent[i][2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (FreeEndFinal && ireplica == nreplica -1) {
|
||||
if (tlen > 0.0) {
|
||||
double dotall;
|
||||
MPI_Allreduce(&dot,&dotall,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
dot=dotall/tlen;
|
||||
|
||||
if (dot<0) prefactor = -dot - kspring2*(veng-EFinalIni);
|
||||
else prefactor = -dot + kspring2*(veng-EFinalIni);
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
f[i][0] += prefactor *tangent[i][0];
|
||||
f[i][1] += prefactor *tangent[i][1];
|
||||
f[i][2] += prefactor *tangent[i][2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (FreeEndFinalWithRespToEIni&&ireplica == nreplica -1) {
|
||||
if (tlen > 0.0) {
|
||||
double dotall;
|
||||
MPI_Allreduce(&dot,&dotall,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
dot=dotall/tlen;
|
||||
|
||||
if (dot<0) prefactor = -dot - kspring2*(veng-vIni);
|
||||
else prefactor = -dot + kspring2*(veng-vIni);
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
f[i][0] += prefactor *tangent[i][0];
|
||||
f[i][1] += prefactor *tangent[i][1];
|
||||
f[i][2] += prefactor *tangent[i][2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
double lentot = 0;
|
||||
double meanDist,idealPos,lenuntilIm,lenuntilClimber;
|
||||
lenuntilClimber=0;
|
||||
if (NEBLongRange) {
|
||||
if (cmode == SINGLE_PROC_DIRECT || cmode == SINGLE_PROC_MAP) {
|
||||
MPI_Allgather(&nlen,1,MPI_DOUBLE,&nlenall[0],1,MPI_DOUBLE,uworld);
|
||||
} else {
|
||||
if (me == 0)
|
||||
MPI_Allgather(&nlen,1,MPI_DOUBLE,&nlenall[0],1,MPI_DOUBLE,rootworld);
|
||||
MPI_Bcast(nlenall,nreplica,MPI_DOUBLE,0,world);
|
||||
}
|
||||
|
||||
lenuntilIm = 0;
|
||||
for (int i = 0; i < ireplica; i++)
|
||||
lenuntilIm += nlenall[i];
|
||||
|
||||
for (int i = 0; i < nreplica; i++)
|
||||
lentot += nlenall[i];
|
||||
|
||||
meanDist = lentot/(nreplica -1);
|
||||
|
||||
if (rclimber>0) {
|
||||
for (int i = 0; i < rclimber; i++)
|
||||
lenuntilClimber += nlenall[i];
|
||||
double meanDistBeforeClimber = lenuntilClimber/rclimber;
|
||||
double meanDistAfterClimber =
|
||||
(lentot-lenuntilClimber)/(nreplica-rclimber-1);
|
||||
if (ireplica<rclimber)
|
||||
idealPos = ireplica * meanDistBeforeClimber;
|
||||
else
|
||||
idealPos = lenuntilClimber+ (ireplica-rclimber)*meanDistAfterClimber;
|
||||
} else idealPos = ireplica * meanDist;
|
||||
}
|
||||
|
||||
if (ireplica == 0 || ireplica == nreplica-1) return ;
|
||||
|
||||
double AngularContr;
|
||||
dotpath = dotpath/(plen*nlen);
|
||||
AngularContr = 0.5 *(1+cos(MY_PI * dotpath));
|
||||
|
||||
double dotSpringTangent;
|
||||
dotSpringTangent=0;
|
||||
|
||||
for (int i = 0; i < nlocal; i++) {
|
||||
if (mask[i] & groupbit) {
|
||||
dot += f[i][0]*tangent[i][0]
|
||||
+ f[i][1]*tangent[i][1] + f[i][2]*tangent[i][2];
|
||||
dotSpringTangent += springF[i][0]*tangent[i][0]
|
||||
+springF[i][1]*tangent[i][1]+springF[i][2]*tangent[i][2];}
|
||||
}
|
||||
|
||||
double dotSpringTangentall;
|
||||
MPI_Allreduce(&dotSpringTangent,&dotSpringTangentall,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
dotSpringTangent=dotSpringTangentall;
|
||||
double dotall;
|
||||
MPI_Allreduce(&dot,&dotall,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
dot=dotall;
|
||||
|
||||
double prefactor;
|
||||
if (ireplica == rclimber) prefactor = -2.0*dotall;
|
||||
else prefactor = -dotall + kspring*(nlen-plen);
|
||||
if (ireplica == rclimber) prefactor = -2.0*dot;
|
||||
else {
|
||||
if (NEBLongRange) {
|
||||
prefactor = -dot - kspring*(lenuntilIm-idealPos)/(2*meanDist);
|
||||
} else if (StandardNEB) {
|
||||
prefactor = -dot + kspring*(nlen-plen);
|
||||
}
|
||||
|
||||
if (FinalAndInterWithRespToEIni&& veng<vIni) {
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
f[i][0] = 0;
|
||||
f[i][1] = 0;
|
||||
f[i][2] = 0;
|
||||
}
|
||||
prefactor = kspring*(nlen-plen);
|
||||
AngularContr=0;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
f[i][0] += prefactor*tangent[i][0];
|
||||
f[i][1] += prefactor*tangent[i][1];
|
||||
f[i][2] += prefactor*tangent[i][2];
|
||||
f[i][0] += prefactor*tangent[i][0]
|
||||
+AngularContr*(springF[i][0] -dotSpringTangent*tangent[i][0]);
|
||||
f[i][1] += prefactor*tangent[i][1]
|
||||
+ AngularContr*(springF[i][1] - dotSpringTangent*tangent[i][1]);
|
||||
f[i][2] += prefactor*tangent[i][2]
|
||||
+ AngularContr*(springF[i][2] - dotSpringTangent*tangent[i][2]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -373,6 +618,7 @@ void FixNEB::min_post_force(int vflag)
|
|||
replicas 0 and N-1 send but do not receive any atoms
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
void FixNEB::inter_replica_comm()
|
||||
{
|
||||
int i,m;
|
||||
|
@ -382,9 +628,10 @@ void FixNEB::inter_replica_comm()
|
|||
|
||||
// reallocate memory if necessary
|
||||
|
||||
if (atom->nlocal > maxlocal) reallocate();
|
||||
if (atom->nmax > maxlocal) reallocate();
|
||||
|
||||
double **x = atom->x;
|
||||
double **f = atom->f;
|
||||
tagint *tag = atom->tag;
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
|
@ -395,7 +642,7 @@ void FixNEB::inter_replica_comm()
|
|||
// -----------------------------------------------------
|
||||
|
||||
// single proc per replica
|
||||
// all atoms are NEB atoms and no atom sorting is enabled
|
||||
// all atoms are NEB atoms and no atom sorting
|
||||
// direct comm of x -> xprev and x -> xnext
|
||||
|
||||
if (cmode == SINGLE_PROC_DIRECT) {
|
||||
|
@ -404,13 +651,18 @@ void FixNEB::inter_replica_comm()
|
|||
if (ireplica < nreplica-1)
|
||||
MPI_Send(x[0],3*nlocal,MPI_DOUBLE,procnext,0,uworld);
|
||||
if (ireplica > 0) MPI_Wait(&request,MPI_STATUS_IGNORE);
|
||||
|
||||
if (ireplica < nreplica-1)
|
||||
MPI_Irecv(xnext[0],3*nlocal,MPI_DOUBLE,procnext,0,uworld,&request);
|
||||
if (ireplica > 0)
|
||||
MPI_Send(x[0],3*nlocal,MPI_DOUBLE,procprev,0,uworld);
|
||||
if (ireplica < nreplica-1) MPI_Wait(&request,MPI_STATUS_IGNORE);
|
||||
|
||||
if (ireplica < nreplica-1)
|
||||
MPI_Irecv(fnext[0],3*nlocal,MPI_DOUBLE,procnext,0,uworld,&request);
|
||||
if (ireplica > 0)
|
||||
MPI_Send(f[0],3*nlocal,MPI_DOUBLE,procprev,0,uworld);
|
||||
if (ireplica < nreplica-1) MPI_Wait(&request,MPI_STATUS_IGNORE);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -427,6 +679,9 @@ void FixNEB::inter_replica_comm()
|
|||
xsend[m][0] = x[i][0];
|
||||
xsend[m][1] = x[i][1];
|
||||
xsend[m][2] = x[i][2];
|
||||
fsend[m][0] = f[i][0];
|
||||
fsend[m][1] = f[i][1];
|
||||
fsend[m][2] = f[i][2];
|
||||
m++;
|
||||
}
|
||||
|
||||
|
@ -448,13 +703,14 @@ void FixNEB::inter_replica_comm()
|
|||
xprev[m][2] = xrecv[i][2];
|
||||
}
|
||||
}
|
||||
|
||||
if (ireplica < nreplica-1) {
|
||||
MPI_Irecv(xrecv[0],3*nebatoms,MPI_DOUBLE,procnext,0,uworld,&requests[0]);
|
||||
MPI_Irecv(frecv[0],3*nebatoms,MPI_DOUBLE,procnext,0,uworld,&requests[0]);
|
||||
MPI_Irecv(tagrecv,nebatoms,MPI_LMP_TAGINT,procnext,0,uworld,&requests[1]);
|
||||
}
|
||||
if (ireplica > 0) {
|
||||
MPI_Send(xsend[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld);
|
||||
MPI_Send(fsend[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld);
|
||||
MPI_Send(tagsend,nebatoms,MPI_LMP_TAGINT,procprev,0,uworld);
|
||||
}
|
||||
|
||||
|
@ -465,6 +721,9 @@ void FixNEB::inter_replica_comm()
|
|||
xnext[m][0] = xrecv[i][0];
|
||||
xnext[m][1] = xrecv[i][1];
|
||||
xnext[m][2] = xrecv[i][2];
|
||||
fnext[m][0] = frecv[i][0];
|
||||
fnext[m][1] = frecv[i][1];
|
||||
fnext[m][2] = frecv[i][2];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -484,6 +743,9 @@ void FixNEB::inter_replica_comm()
|
|||
xsend[m][0] = x[i][0];
|
||||
xsend[m][1] = x[i][1];
|
||||
xsend[m][2] = x[i][2];
|
||||
fsend[m][0] = f[i][0];
|
||||
fsend[m][1] = f[i][1];
|
||||
fsend[m][2] = f[i][2];
|
||||
m++;
|
||||
}
|
||||
|
||||
|
@ -496,12 +758,17 @@ void FixNEB::inter_replica_comm()
|
|||
for (i = 0; i < nprocs; i++) counts[i] *= 3;
|
||||
for (i = 0; i < nprocs-1; i++)
|
||||
displacements[i+1] = displacements[i] + counts[i];
|
||||
if (xsend)
|
||||
if (xsend) {
|
||||
MPI_Gatherv(xsend[0],3*m,MPI_DOUBLE,
|
||||
xsendall[0],counts,displacements,MPI_DOUBLE,0,world);
|
||||
else
|
||||
MPI_Gatherv(fsend[0],3*m,MPI_DOUBLE,
|
||||
fsendall[0],counts,displacements,MPI_DOUBLE,0,world);
|
||||
} else {
|
||||
MPI_Gatherv(NULL,3*m,MPI_DOUBLE,
|
||||
xsendall[0],counts,displacements,MPI_DOUBLE,0,world);
|
||||
MPI_Gatherv(NULL,3*m,MPI_DOUBLE,
|
||||
fsendall[0],counts,displacements,MPI_DOUBLE,0,world);
|
||||
}
|
||||
|
||||
if (ireplica > 0 && me == 0) {
|
||||
MPI_Irecv(xrecvall[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld,&requests[0]);
|
||||
|
@ -530,11 +797,13 @@ void FixNEB::inter_replica_comm()
|
|||
|
||||
if (ireplica < nreplica-1 && me == 0) {
|
||||
MPI_Irecv(xrecvall[0],3*nebatoms,MPI_DOUBLE,procnext,0,uworld,&requests[0]);
|
||||
MPI_Irecv(frecvall[0],3*nebatoms,MPI_DOUBLE,procnext,0,uworld,&requests[0]);
|
||||
MPI_Irecv(tagrecvall,nebatoms,MPI_LMP_TAGINT,procnext,0,uworld,
|
||||
&requests[1]);
|
||||
}
|
||||
if (ireplica > 0 && me == 0) {
|
||||
MPI_Send(xsendall[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld);
|
||||
MPI_Send(fsendall[0],3*nebatoms,MPI_DOUBLE,procprev,0,uworld);
|
||||
MPI_Send(tagsendall,nebatoms,MPI_LMP_TAGINT,procprev,0,uworld);
|
||||
}
|
||||
|
||||
|
@ -543,6 +812,7 @@ void FixNEB::inter_replica_comm()
|
|||
|
||||
MPI_Bcast(tagrecvall,nebatoms,MPI_INT,0,world);
|
||||
MPI_Bcast(xrecvall[0],3*nebatoms,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(frecvall[0],3*nebatoms,MPI_DOUBLE,0,world);
|
||||
|
||||
for (i = 0; i < nebatoms; i++) {
|
||||
m = atom->map(tagrecvall[i]);
|
||||
|
@ -550,10 +820,14 @@ void FixNEB::inter_replica_comm()
|
|||
xnext[m][0] = xrecvall[i][0];
|
||||
xnext[m][1] = xrecvall[i][1];
|
||||
xnext[m][2] = xrecvall[i][2];
|
||||
fnext[m][0] = frecvall[i][0];
|
||||
fnext[m][1] = frecvall[i][1];
|
||||
fnext[m][2] = frecvall[i][2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
reallocate xprev,xnext,tangent arrays if necessary
|
||||
reallocate communication arrays if necessary
|
||||
|
@ -561,27 +835,37 @@ void FixNEB::inter_replica_comm()
|
|||
|
||||
void FixNEB::reallocate()
|
||||
{
|
||||
maxlocal = atom->nmax;
|
||||
|
||||
memory->destroy(xprev);
|
||||
memory->destroy(xnext);
|
||||
memory->destroy(tangent);
|
||||
|
||||
if (cmode != SINGLE_PROC_DIRECT) {
|
||||
memory->destroy(xsend);
|
||||
memory->destroy(xrecv);
|
||||
memory->destroy(tagsend);
|
||||
memory->destroy(tagrecv);
|
||||
}
|
||||
|
||||
maxlocal = atom->nmax;
|
||||
memory->destroy(fnext);
|
||||
memory->destroy(springF);
|
||||
|
||||
memory->create(xprev,maxlocal,3,"neb:xprev");
|
||||
memory->create(xnext,maxlocal,3,"neb:xnext");
|
||||
memory->create(tangent,maxlocal,3,"neb:tangent");
|
||||
memory->create(fnext,maxlocal,3,"neb:fnext");
|
||||
memory->create(springF,maxlocal,3,"neb:springF");
|
||||
|
||||
if (cmode != SINGLE_PROC_DIRECT) {
|
||||
memory->destroy(xsend);
|
||||
memory->destroy(fsend);
|
||||
memory->destroy(xrecv);
|
||||
memory->destroy(frecv);
|
||||
memory->destroy(tagsend);
|
||||
memory->destroy(tagrecv);
|
||||
memory->create(xsend,maxlocal,3,"neb:xsend");
|
||||
memory->create(fsend,maxlocal,3,"neb:fsend");
|
||||
memory->create(xrecv,maxlocal,3,"neb:xrecv");
|
||||
memory->create(frecv,maxlocal,3,"neb:frecv");
|
||||
memory->create(tagsend,maxlocal,"neb:tagsend");
|
||||
memory->create(tagrecv,maxlocal,"neb:tagrecv");
|
||||
}
|
||||
|
||||
if (NEBLongRange) {
|
||||
memory->destroy(nlenall);
|
||||
memory->create(nlenall,nreplica,"neb:nlenall");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,9 +26,8 @@ namespace LAMMPS_NS {
|
|||
|
||||
class FixNEB : public Fix {
|
||||
public:
|
||||
double veng,plen,nlen;
|
||||
double veng,plen,nlen,dotpath,dottangrad,gradlen,dotgrad;
|
||||
int rclimber;
|
||||
double gradvnorm;
|
||||
|
||||
FixNEB(class LAMMPS *, int, char **);
|
||||
~FixNEB();
|
||||
|
@ -39,27 +38,32 @@ class FixNEB : public Fix {
|
|||
|
||||
private:
|
||||
int me,nprocs,nprocs_universe;
|
||||
double kspring;
|
||||
double kspring,kspring2,kspringPerp,EIniIni,EFinalIni;
|
||||
bool StandardNEB,NEBLongRange,PerpSpring,FreeEndIni,FreeEndFinal;
|
||||
bool FreeEndFinalWithRespToEIni,FinalAndInterWithRespToEIni;
|
||||
int ireplica,nreplica;
|
||||
int procnext,procprev;
|
||||
int cmode;
|
||||
MPI_Comm uworld;
|
||||
MPI_Comm rootworld;
|
||||
|
||||
|
||||
char *id_pe;
|
||||
class Compute *pe;
|
||||
|
||||
int nebatoms; // # of active NEB atoms
|
||||
int nebatoms;
|
||||
int ntotal; // total # of atoms, NEB or not
|
||||
int maxlocal; // size of xprev,xnext,tangent arrays
|
||||
|
||||
double **xprev,**xnext; // coords of my owned atoms in neighbor replicas
|
||||
double **tangent; // work vector for inter-replica forces
|
||||
|
||||
double *nlenall;
|
||||
double **xprev,**xnext,**fnext,**springF;
|
||||
double **tangent;
|
||||
double **xsend,**xrecv; // coords to send/recv to/from other replica
|
||||
double **fsend,**frecv; // coords to send/recv to/from other replica
|
||||
tagint *tagsend,*tagrecv; // ditto for atom IDs
|
||||
|
||||
// info gathered from all procs in my replica
|
||||
double **xsendall,**xrecvall; // coords to send/recv to/from other replica
|
||||
double **fsendall,**frecvall; // force to send/recv to/from other replica
|
||||
tagint *tagsendall,*tagrecvall; // ditto for atom IDs
|
||||
|
||||
int *counts,*displacements; // used for MPI_Gather
|
||||
|
|
|
@ -37,8 +37,10 @@
|
|||
#include "memory.h"
|
||||
#include "error.h"
|
||||
#include "force.h"
|
||||
#include "math_const.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace MathConst;
|
||||
|
||||
#define MAXLINE 256
|
||||
#define CHUNK 1024
|
||||
|
@ -143,17 +145,19 @@ void NEB::command(int narg, char **arg)
|
|||
// process file-style setting to setup initial configs for all replicas
|
||||
|
||||
if (strcmp(arg[5],"final") == 0) {
|
||||
if (narg != 7) error->universe_all(FLERR,"Illegal NEB command");
|
||||
if (narg != 7 && narg !=8) error->universe_all(FLERR,"Illegal NEB command");
|
||||
infile = arg[6];
|
||||
readfile(infile,0);
|
||||
} else if (strcmp(arg[5],"each") == 0) {
|
||||
if (narg != 7) error->universe_all(FLERR,"Illegal NEB command");
|
||||
if (narg != 7 && narg !=8) error->universe_all(FLERR,"Illegal NEB command");
|
||||
infile = arg[6];
|
||||
readfile(infile,1);
|
||||
} else if (strcmp(arg[5],"none") == 0) {
|
||||
if (narg != 6) error->universe_all(FLERR,"Illegal NEB command");
|
||||
if (narg != 6 && narg !=7) error->universe_all(FLERR,"Illegal NEB command");
|
||||
} else error->universe_all(FLERR,"Illegal NEB command");
|
||||
|
||||
verbose=false;
|
||||
if (strcmp(arg[narg-1],"verbose") == 0) verbose=true;
|
||||
// run the NEB calculation
|
||||
|
||||
run();
|
||||
|
@ -178,8 +182,9 @@ void NEB::run()
|
|||
if (ineb == modify->nfix) error->all(FLERR,"NEB requires use of fix neb");
|
||||
|
||||
fneb = (FixNEB *) modify->fix[ineb];
|
||||
nall = 4;
|
||||
memory->create(all,nreplica,nall,"neb:all");
|
||||
if (verbose) numall =7;
|
||||
else numall = 4;
|
||||
memory->create(all,nreplica,numall,"neb:all");
|
||||
rdist = new double[nreplica];
|
||||
|
||||
// initialize LAMMPS
|
||||
|
@ -195,9 +200,11 @@ void NEB::run()
|
|||
error->all(FLERR,"NEB requires damped dynamics minimizer");
|
||||
|
||||
// setup regular NEB minimization
|
||||
FILE *uscreen = universe->uscreen;
|
||||
FILE *ulogfile = universe->ulogfile;
|
||||
|
||||
if (me_universe == 0 && universe->uscreen)
|
||||
fprintf(universe->uscreen,"Setting up regular NEB ...\n");
|
||||
if (me_universe == 0 && uscreen)
|
||||
fprintf(uscreen,"Setting up regular NEB ...\n");
|
||||
|
||||
update->beginstep = update->firststep = update->ntimestep;
|
||||
update->endstep = update->laststep = update->firststep + n1steps;
|
||||
|
@ -209,16 +216,33 @@ void NEB::run()
|
|||
update->minimize->setup();
|
||||
|
||||
if (me_universe == 0) {
|
||||
if (universe->uscreen)
|
||||
fprintf(universe->uscreen,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc "
|
||||
"EBF EBR RDT "
|
||||
"RD1 PE1 RD2 PE2 ... RDN PEN\n");
|
||||
if (universe->ulogfile)
|
||||
fprintf(universe->ulogfile,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc "
|
||||
"EBF EBR RDT "
|
||||
"RD1 PE1 RD2 PE2 ... RDN PEN\n");
|
||||
if (uscreen) {
|
||||
if (verbose) {
|
||||
fprintf(uscreen,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... "
|
||||
"RDN PEN pathangle1 angletangrad1 anglegrad1 gradV1 "
|
||||
"ReplicaForce1 MaxAtomForce1 pathangle2 angletangrad2 "
|
||||
"... ReplicaForceN MaxAtomForceN\n");
|
||||
} else {
|
||||
fprintf(uscreen,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... "
|
||||
"RDN PEN\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (ulogfile) {
|
||||
if (verbose) {
|
||||
fprintf(ulogfile,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... "
|
||||
"RDN PEN pathangle1 angletangrad1 anglegrad1 gradV1 "
|
||||
"ReplicaForce1 MaxAtomForce1 pathangle2 angletangrad2 "
|
||||
"... ReplicaForceN MaxAtomForceN\n");
|
||||
} else {
|
||||
fprintf(ulogfile,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc EBF EBR RDT RD1 PE1 RD2 PE2 ... "
|
||||
"RDN PEN\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
print_status();
|
||||
|
||||
|
@ -257,14 +281,14 @@ void NEB::run()
|
|||
// setup climbing NEB minimization
|
||||
// must reinitialize minimizer so it re-creates its fix MINIMIZE
|
||||
|
||||
if (me_universe == 0 && universe->uscreen)
|
||||
fprintf(universe->uscreen,"Setting up climbing ...\n");
|
||||
if (me_universe == 0 && uscreen)
|
||||
fprintf(uscreen,"Setting up climbing ...\n");
|
||||
|
||||
if (me_universe == 0) {
|
||||
if (universe->uscreen)
|
||||
fprintf(universe->uscreen,"Climbing replica = %d\n",top+1);
|
||||
if (universe->ulogfile)
|
||||
fprintf(universe->ulogfile,"Climbing replica = %d\n",top+1);
|
||||
if (uscreen)
|
||||
fprintf(uscreen,"Climbing replica = %d\n",top+1);
|
||||
if (ulogfile)
|
||||
fprintf(ulogfile,"Climbing replica = %d\n",top+1);
|
||||
}
|
||||
|
||||
update->beginstep = update->firststep = update->ntimestep;
|
||||
|
@ -279,16 +303,34 @@ void NEB::run()
|
|||
update->minimize->setup();
|
||||
|
||||
if (me_universe == 0) {
|
||||
if (universe->uscreen)
|
||||
fprintf(universe->uscreen,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc "
|
||||
"EBF EBR RDT "
|
||||
"RD1 PE1 RD2 PE2 ... RDN PEN\n");
|
||||
if (universe->ulogfile)
|
||||
fprintf(universe->ulogfile,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc "
|
||||
"EBF EBR RDT "
|
||||
"RD1 PE1 RD2 PE2 ... RDN PEN\n");
|
||||
if (uscreen)
|
||||
if (verbose) {
|
||||
fprintf(uscreen,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc EBF EBR RDT "
|
||||
"RD1 PE1 RD2 PE2 ... RDN PEN "
|
||||
"pathangle1 angletangrad1 anglegrad1 gradV1 "
|
||||
"ReplicaForce1 MaxAtomForce1 pathangle2 angletangrad2 "
|
||||
"... ReplicaForceN MaxAtomForceN\n");
|
||||
} else {
|
||||
fprintf(uscreen,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc "
|
||||
"EBF EBR RDT "
|
||||
"RD1 PE1 RD2 PE2 ... RDN PEN\n");
|
||||
}
|
||||
if (ulogfile)
|
||||
if (verbose) {
|
||||
fprintf(ulogfile,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc EBF EBR RDT "
|
||||
"RD1 PE1 RD2 PE2 ... RDN PEN "
|
||||
"pathangle1 angletangrad1 anglegrad1 gradV1 "
|
||||
"ReplicaForce1 MaxAtomForce1 pathangle2 angletangrad2 "
|
||||
"... ReplicaForceN MaxAtomForceN\n");
|
||||
} else {
|
||||
fprintf(ulogfile,"Step MaxReplicaForce MaxAtomForce "
|
||||
"GradV0 GradV1 GradVc "
|
||||
"EBF EBR RDT "
|
||||
"RD1 PE1 RD2 PE2 ... RDN PEN\n");
|
||||
}
|
||||
}
|
||||
print_status();
|
||||
|
||||
|
@ -321,16 +363,16 @@ void NEB::run()
|
|||
/* ----------------------------------------------------------------------
|
||||
read initial config atom coords from file
|
||||
flag = 0
|
||||
only first replica opens file and reads it
|
||||
first replica bcasts lines to all replicas
|
||||
final replica stores coords
|
||||
intermediate replicas interpolate from coords
|
||||
new coord = replica fraction between current and final state
|
||||
initial replica does nothing
|
||||
only first replica opens file and reads it
|
||||
first replica bcasts lines to all replicas
|
||||
final replica stores coords
|
||||
intermediate replicas interpolate from coords
|
||||
new coord = replica fraction between current and final state
|
||||
initial replica does nothing
|
||||
flag = 1
|
||||
each replica (except first) opens file and reads it
|
||||
each replica stores coords
|
||||
initial replica does nothing
|
||||
each replica (except first) opens file and reads it
|
||||
each replica stores coords
|
||||
initial replica does nothing
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void NEB::readfile(char *file, int flag)
|
||||
|
@ -539,16 +581,29 @@ void NEB::print_status()
|
|||
double fmaxatom;
|
||||
MPI_Allreduce(&fnorminf,&fmaxatom,1,MPI_DOUBLE,MPI_MAX,roots);
|
||||
|
||||
double one[4];
|
||||
if (verbose) {
|
||||
freplica = new double[nreplica];
|
||||
MPI_Allgather(&fnorm2,1,MPI_DOUBLE,&freplica[0],1,MPI_DOUBLE,roots);
|
||||
fmaxatomInRepl = new double[nreplica];
|
||||
MPI_Allgather(&fnorminf,1,MPI_DOUBLE,&fmaxatomInRepl[0],1,MPI_DOUBLE,roots);
|
||||
}
|
||||
|
||||
double one[numall];
|
||||
one[0] = fneb->veng;
|
||||
one[1] = fneb->plen;
|
||||
one[2] = fneb->nlen;
|
||||
one[nall-1] = fneb->gradvnorm;
|
||||
one[3] = fneb->gradlen;
|
||||
|
||||
if (verbose) {
|
||||
one[4] = fneb->dotpath;
|
||||
one[5] = fneb->dottangrad;
|
||||
one[6] = fneb->dotgrad;
|
||||
}
|
||||
|
||||
if (output->thermo->normflag) one[0] /= atom->natoms;
|
||||
if (me == 0)
|
||||
MPI_Allgather(one,nall,MPI_DOUBLE,&all[0][0],nall,MPI_DOUBLE,roots);
|
||||
MPI_Bcast(&all[0][0],nall*nreplica,MPI_DOUBLE,0,world);
|
||||
MPI_Allgather(one,numall,MPI_DOUBLE,&all[0][0],numall,MPI_DOUBLE,roots);
|
||||
MPI_Bcast(&all[0][0],numall*nreplica,MPI_DOUBLE,0,world);
|
||||
|
||||
rdist[0] = 0.0;
|
||||
for (int i = 1; i < nreplica; i++)
|
||||
|
@ -588,26 +643,56 @@ void NEB::print_status()
|
|||
}
|
||||
|
||||
if (me_universe == 0) {
|
||||
if (universe->uscreen) {
|
||||
fprintf(universe->uscreen,BIGINT_FORMAT " %12.8g %12.8g ",
|
||||
const double todeg=180.0/MY_PI;
|
||||
FILE *uscreen = universe->uscreen;
|
||||
FILE *ulogfile = universe->ulogfile;
|
||||
if (uscreen) {
|
||||
fprintf(uscreen,BIGINT_FORMAT " %12.8g %12.8g ",
|
||||
update->ntimestep,fmaxreplica,fmaxatom);
|
||||
fprintf(universe->uscreen,"%12.8g %12.8g %12.8g ",
|
||||
fprintf(uscreen,"%12.8g %12.8g %12.8g ",
|
||||
gradvnorm0,gradvnorm1,gradvnormc);
|
||||
fprintf(universe->uscreen,"%12.8g %12.8g %12.8g ",ebf,ebr,endpt);
|
||||
fprintf(uscreen,"%12.8g %12.8g %12.8g ",ebf,ebr,endpt);
|
||||
for (int i = 0; i < nreplica; i++)
|
||||
fprintf(universe->uscreen,"%12.8g %12.8g ",rdist[i],all[i][0]);
|
||||
fprintf(universe->uscreen,"\n");
|
||||
fprintf(uscreen,"%12.8g %12.8g ",rdist[i],all[i][0]);
|
||||
if (verbose) {
|
||||
fprintf(uscreen,"%12.5g %12.5g %12.5g %12.5g %12.5g %12.5g",
|
||||
NAN,180-acos(all[0][5])*todeg,180-acos(all[0][6])*todeg,
|
||||
all[0][3],freplica[0],fmaxatomInRepl[0]);
|
||||
for (int i = 1; i < nreplica-1; i++)
|
||||
fprintf(uscreen,"%12.5g %12.5g %12.5g %12.5g %12.5g %12.5g",
|
||||
180-acos(all[i][4])*todeg,180-acos(all[i][5])*todeg,
|
||||
180-acos(all[i][6])*todeg,all[i][3],freplica[i],
|
||||
fmaxatomInRepl[i]);
|
||||
fprintf(uscreen,"%12.5g %12.5g %12.5g %12.5g %12.5g %12.5g",
|
||||
NAN,180-acos(all[nreplica-1][5])*todeg,NAN,all[nreplica-1][3],
|
||||
freplica[nreplica-1],fmaxatomInRepl[nreplica-1]);
|
||||
}
|
||||
fprintf(uscreen,"\n");
|
||||
}
|
||||
if (universe->ulogfile) {
|
||||
fprintf(universe->ulogfile,BIGINT_FORMAT " %12.8g %12.8g ",
|
||||
|
||||
if (ulogfile) {
|
||||
fprintf(ulogfile,BIGINT_FORMAT " %12.8g %12.8g ",
|
||||
update->ntimestep,fmaxreplica,fmaxatom);
|
||||
fprintf(universe->ulogfile,"%12.8g %12.8g %12.8g ",
|
||||
fprintf(ulogfile,"%12.8g %12.8g %12.8g ",
|
||||
gradvnorm0,gradvnorm1,gradvnormc);
|
||||
fprintf(universe->ulogfile,"%12.8g %12.8g %12.8g ",ebf,ebr,endpt);
|
||||
fprintf(ulogfile,"%12.8g %12.8g %12.8g ",ebf,ebr,endpt);
|
||||
for (int i = 0; i < nreplica; i++)
|
||||
fprintf(universe->ulogfile,"%12.8g %12.8g ",rdist[i],all[i][0]);
|
||||
fprintf(universe->ulogfile,"\n");
|
||||
fflush(universe->ulogfile);
|
||||
fprintf(ulogfile,"%12.8g %12.8g ",rdist[i],all[i][0]);
|
||||
if (verbose) {
|
||||
fprintf(ulogfile,"%12.5g %12.5g %12.5g %12.5g %12.5g %12.5g",
|
||||
NAN,180-acos(all[0][5])*todeg,180-acos(all[0][6])*todeg,
|
||||
all[0][3],freplica[0],fmaxatomInRepl[0]);
|
||||
for (int i = 1; i < nreplica-1; i++)
|
||||
fprintf(ulogfile,"%12.5g %12.5g %12.5g %12.5g %12.5g %12.5g",
|
||||
180-acos(all[i][4])*todeg,180-acos(all[i][5])*todeg,
|
||||
180-acos(all[i][6])*todeg,all[i][3],freplica[i],
|
||||
fmaxatomInRepl[i]);
|
||||
fprintf(ulogfile,"%12.5g %12.5g %12.5g %12.5g %12.5g %12.5g",
|
||||
NAN,180-acos(all[nreplica-1][5])*todeg,NAN,all[nreplica-1][3],
|
||||
freplica[nreplica-1],fmaxatomInRepl[nreplica-1]);
|
||||
}
|
||||
fprintf(ulogfile,"\n");
|
||||
fflush(ulogfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ class NEB : protected Pointers {
|
|||
private:
|
||||
int me,me_universe; // my proc ID in world and universe
|
||||
int ireplica,nreplica;
|
||||
bool verbose;
|
||||
MPI_Comm uworld;
|
||||
MPI_Comm roots; // MPI comm with 1 root proc from each world
|
||||
FILE *fp;
|
||||
|
@ -49,9 +50,11 @@ class NEB : protected Pointers {
|
|||
char *infile; // name of file containing final state
|
||||
|
||||
class FixNEB *fneb;
|
||||
int nall; // per-replica dimension of array all
|
||||
int numall; // per-replica dimension of array all
|
||||
double **all; // PE,plen,nlen,gradvnorm from each replica
|
||||
double *rdist; // normalize reaction distance, 0 to 1
|
||||
double *freplica; // force on an image
|
||||
double *fmaxatomInRepl; // force on an image
|
||||
|
||||
void readfile(char *, int);
|
||||
void open(char *);
|
||||
|
|
Loading…
Reference in New Issue