forked from lijiext/lammps
Merge pull request #1673 from charlessievers/lammps_gjf
Lammps fix langevin updates for gjf option
This commit is contained in:
commit
ed5678d646
|
@ -4791,6 +4791,22 @@ Self-explanatory. :dd
|
||||||
|
|
||||||
This fix option cannot be used with point particles. :dd
|
This fix option cannot be used with point particles. :dd
|
||||||
|
|
||||||
|
{Fix langevin gjf and respa are not compatible} :dt
|
||||||
|
|
||||||
|
Self-explanatory. :dd
|
||||||
|
|
||||||
|
{Fix langevin gjf cannot have period equal to dt/2} :dt
|
||||||
|
|
||||||
|
If the period is equal to dt/2 then division by zero will happen. :dd
|
||||||
|
|
||||||
|
{Fix langevin gjf should come before fix nve} :dt
|
||||||
|
|
||||||
|
Self-explanatory. :dd
|
||||||
|
|
||||||
|
{Fix langevin gjf with tbias is not yet implemented with kokkos} :dt
|
||||||
|
|
||||||
|
This option is not yet available. :dd
|
||||||
|
|
||||||
{Fix langevin omega is not yet implemented with kokkos} :dt
|
{Fix langevin omega is not yet implemented with kokkos} :dt
|
||||||
|
|
||||||
This option is not yet available. :dd
|
This option is not yet available. :dd
|
||||||
|
|
|
@ -248,6 +248,10 @@ included one or more of the following: kspace, triclinic, a hybrid
|
||||||
pair style, an eam pair style, or no "single" function for the pair
|
pair style, an eam pair style, or no "single" function for the pair
|
||||||
style. :dd
|
style. :dd
|
||||||
|
|
||||||
|
{Fix langevin gjf using random gaussians is not implemented with kokkos} :dt
|
||||||
|
|
||||||
|
This will most likely cause errors in kinetic fluctuations.
|
||||||
|
|
||||||
{Fix property/atom mol or charge w/out ghost communication} :dt
|
{Fix property/atom mol or charge w/out ghost communication} :dt
|
||||||
|
|
||||||
A model typically needs these properties defined for ghost atoms. :dd
|
A model typically needs these properties defined for ghost atoms. :dd
|
||||||
|
|
|
@ -24,9 +24,10 @@ keyword = {angmom} or {omega} or {scale} or {tally} or {zero} :l
|
||||||
{angmom} value = {no} or factor
|
{angmom} value = {no} or factor
|
||||||
{no} = do not thermostat rotational degrees of freedom via the angular momentum
|
{no} = do not thermostat rotational degrees of freedom via the angular momentum
|
||||||
factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below
|
factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below
|
||||||
{gjf} value = {no} or {yes}
|
{gjf} value = {no} or {vfull} or {vhalf}
|
||||||
{no} = use standard formulation
|
{no} = use standard formulation
|
||||||
{yes} = use Gronbech-Jensen/Farago formulation
|
{vfull} = use Gronbech-Jensen/Farago formulation
|
||||||
|
{vhalf} = use 2GJ formulation
|
||||||
{omega} value = {no} or {yes}
|
{omega} value = {no} or {yes}
|
||||||
{no} = do not thermostat rotational degrees of freedom via the angular velocity
|
{no} = do not thermostat rotational degrees of freedom via the angular velocity
|
||||||
{yes} = do thermostat rotational degrees of freedom via the angular velocity
|
{yes} = do thermostat rotational degrees of freedom via the angular velocity
|
||||||
|
@ -217,6 +218,10 @@ the particles. As described below, this energy can then be printed
|
||||||
out or added to the potential energy of the system to monitor energy
|
out or added to the potential energy of the system to monitor energy
|
||||||
conservation.
|
conservation.
|
||||||
|
|
||||||
|
NOTE: this accumulated energy does NOT include kinetic energy removed
|
||||||
|
by the {zero} flag. LAMMPS will print a warning when both options are
|
||||||
|
active.
|
||||||
|
|
||||||
The keyword {zero} can be used to eliminate drift due to the
|
The keyword {zero} can be used to eliminate drift due to the
|
||||||
thermostat. Because the random forces on different atoms are
|
thermostat. Because the random forces on different atoms are
|
||||||
independent, they do not sum exactly to zero. As a result, this fix
|
independent, they do not sum exactly to zero. As a result, this fix
|
||||||
|
@ -232,29 +237,24 @@ The keyword {gjf} can be used to run the "Gronbech-Jensen/Farago
|
||||||
described in the papers cited below, the purpose of this method is to
|
described in the papers cited below, the purpose of this method is to
|
||||||
enable longer timesteps to be used (up to the numerical stability
|
enable longer timesteps to be used (up to the numerical stability
|
||||||
limit of the integrator), while still producing the correct Boltzmann
|
limit of the integrator), while still producing the correct Boltzmann
|
||||||
distribution of atom positions. It is implemented within LAMMPS, by
|
distribution of atom positions.
|
||||||
changing how the random force is applied so that it is composed of
|
|
||||||
the average of two random forces representing half-contributions from
|
|
||||||
the previous and current time intervals.
|
|
||||||
|
|
||||||
In common with all methods based on Verlet integration, the
|
The current implementation provides the user with the option to output
|
||||||
discretized velocities generated by this method in conjunction with
|
the velocity in one of two forms: {vfull} or {vhalf}, which replaces
|
||||||
velocity-Verlet time integration are not exactly conjugate to the
|
the outdated option {yes}. The {gjf} option {vfull} outputs the on-site
|
||||||
positions. As a result the temperature (computed from the discretized
|
velocity given in "Gronbech-Jensen/Farago"_#Gronbech-Jensen; this velocity
|
||||||
velocities) will be systematically lower than the target temperature,
|
is shown to be systematically lower than the target temperature by a small
|
||||||
by a small amount which grows with the timestep. Nonetheless, the
|
amount, which grows quadratically with the timestep.
|
||||||
distribution of atom positions will still be consistent with the
|
The {gjf} option {vhalf} outputs the 2GJ half-step velocity given in
|
||||||
|
"Gronbech Jensen/Gronbech-Jensen"_#2Gronbech-Jensen; this velocity is shown
|
||||||
|
to not have any linear statistical errors for any stable time step.
|
||||||
|
An overview of statistically correct Boltzmann and Maxwell-Boltzmann
|
||||||
|
sampling of true on-site and true half-step velocities is given in
|
||||||
|
"Gronbech-Jensen_#1Gronbech-Jensen.
|
||||||
|
Regardless of the choice of output velocity, the sampling of the configurational
|
||||||
|
distribution of atom positions is the same, and linearly consistent with the
|
||||||
target temperature.
|
target temperature.
|
||||||
|
|
||||||
As an example of using the {gjf} keyword, for molecules containing C-H
|
|
||||||
bonds, configurational properties generated with dt = 2.5 fs and tdamp
|
|
||||||
= 100 fs are indistinguishable from dt = 0.5 fs. Because the velocity
|
|
||||||
distribution systematically decreases with increasing timestep, the
|
|
||||||
method should not be used to generate properties that depend on the
|
|
||||||
velocity distribution, such as the velocity auto-correlation function
|
|
||||||
(VACF). In this example, the velocity distribution at dt = 2.5fs
|
|
||||||
generates an average temperature of 220 K, instead of 300 K.
|
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||||
|
@ -312,7 +312,10 @@ This fix can ramp its target temperature over multiple runs, using the
|
||||||
|
|
||||||
This fix is not invoked during "energy minimization"_minimize.html.
|
This fix is not invoked during "energy minimization"_minimize.html.
|
||||||
|
|
||||||
[Restrictions:] none
|
[Restrictions:]
|
||||||
|
|
||||||
|
For {gjf} do not choose damp=dt/2. {gjf} is not compatible
|
||||||
|
with run_style respa.
|
||||||
|
|
||||||
[Related commands:]
|
[Related commands:]
|
||||||
|
|
||||||
|
@ -335,5 +338,10 @@ types, tally = no, zero = no, gjf = no.
|
||||||
|
|
||||||
:link(Gronbech-Jensen)
|
:link(Gronbech-Jensen)
|
||||||
[(Gronbech-Jensen)] Gronbech-Jensen and Farago, Mol Phys, 111, 983
|
[(Gronbech-Jensen)] Gronbech-Jensen and Farago, Mol Phys, 111, 983
|
||||||
(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm,
|
(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm, 185, 524 (2014)
|
||||||
185, 524 (2014)
|
|
||||||
|
:link(2Gronbech-Jensen)
|
||||||
|
[(Gronbech-Jensen)] Gronbech Jensen and Gronbech-Jensen, Mol Phys, 117, 2511 (2019)
|
||||||
|
|
||||||
|
:link(1Gronbech-Jensen)
|
||||||
|
[(Gronbech-Jensen)] Gronbech-Jensen, Mol Phys (2019); https://doi.org/10.1080/00268976.2019.1662506
|
||||||
|
|
|
@ -2272,6 +2272,7 @@ qoffload
|
||||||
qopenmp
|
qopenmp
|
||||||
qoverride
|
qoverride
|
||||||
qtb
|
qtb
|
||||||
|
quadratically
|
||||||
quadrupolar
|
quadrupolar
|
||||||
Quant
|
Quant
|
||||||
quartic
|
quartic
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# LAMMPS GJF-2GJ THERMOSTAT EXAMPLE
|
||||||
|
|
||||||
|
## GJF-2GJ THERMOSTAT
|
||||||
|
|
||||||
|
This directory contains the ingredients to run an NVT simulation using the GJF-2GJ thermostat.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
NP=4 #number of processors
|
||||||
|
mpirun -np $NP lmp_mpi -in.gjf.vhalf
|
||||||
|
```
|
||||||
|
|
||||||
|
## Required LAMMPS packages: MOLECULE package
|
|
@ -0,0 +1,886 @@
|
||||||
|
LAMMPS description
|
||||||
|
|
||||||
|
864 atoms
|
||||||
|
0 bonds
|
||||||
|
0 angles
|
||||||
|
0 dihedrals
|
||||||
|
0 impropers
|
||||||
|
|
||||||
|
1 atom types
|
||||||
|
0 bond types
|
||||||
|
0 angle types
|
||||||
|
0 dihedral types
|
||||||
|
0 improper types
|
||||||
|
|
||||||
|
|
||||||
|
0.0000000 32.146000 xlo xhi
|
||||||
|
0.0000000 32.146000 ylo yhi
|
||||||
|
0.0000000 32.146000 zlo zhi
|
||||||
|
|
||||||
|
Atoms
|
||||||
|
|
||||||
|
1 1 1 0.0000000 0.0000000 2.6790000 2.6790000
|
||||||
|
2 2 1 0.0000000 0.0000000 2.6790000 8.0360000
|
||||||
|
3 3 1 0.0000000 0.0000000 2.6790000 13.3940000
|
||||||
|
4 4 1 0.0000000 0.0000000 2.6790000 18.7520000
|
||||||
|
5 5 1 0.0000000 0.0000000 2.6790000 24.1090000
|
||||||
|
6 6 1 0.0000000 0.0000000 2.6790000 29.4670000
|
||||||
|
7 7 1 0.0000000 0.0000000 8.0360000 2.6790000
|
||||||
|
8 8 1 0.0000000 0.0000000 8.0360000 8.0360000
|
||||||
|
9 9 1 0.0000000 0.0000000 8.0360000 13.3940000
|
||||||
|
10 10 1 0.0000000 0.0000000 8.0360000 18.7520000
|
||||||
|
11 11 1 0.0000000 0.0000000 8.0360000 24.1090000
|
||||||
|
12 12 1 0.0000000 0.0000000 8.0360000 29.4670000
|
||||||
|
13 13 1 0.0000000 0.0000000 13.3940000 2.6790000
|
||||||
|
14 14 1 0.0000000 0.0000000 13.3940000 8.0360000
|
||||||
|
15 15 1 0.0000000 0.0000000 13.3940000 13.3940000
|
||||||
|
16 16 1 0.0000000 0.0000000 13.3940000 18.7520000
|
||||||
|
17 17 1 0.0000000 0.0000000 13.3940000 24.1090000
|
||||||
|
18 18 1 0.0000000 0.0000000 13.3940000 29.4670000
|
||||||
|
19 19 1 0.0000000 0.0000000 18.7520000 2.6790000
|
||||||
|
20 20 1 0.0000000 0.0000000 18.7520000 8.0360000
|
||||||
|
21 21 1 0.0000000 0.0000000 18.7520000 13.3940000
|
||||||
|
22 22 1 0.0000000 0.0000000 18.7520000 18.7520000
|
||||||
|
23 23 1 0.0000000 0.0000000 18.7520000 24.1090000
|
||||||
|
24 24 1 0.0000000 0.0000000 18.7520000 29.4670000
|
||||||
|
25 25 1 0.0000000 0.0000000 24.1090000 2.6790000
|
||||||
|
26 26 1 0.0000000 0.0000000 24.1090000 8.0360000
|
||||||
|
27 27 1 0.0000000 0.0000000 24.1090000 13.3940000
|
||||||
|
28 28 1 0.0000000 0.0000000 24.1090000 18.7520000
|
||||||
|
29 29 1 0.0000000 0.0000000 24.1090000 24.1090000
|
||||||
|
30 30 1 0.0000000 0.0000000 24.1090000 29.4670000
|
||||||
|
31 31 1 0.0000000 0.0000000 29.4670000 2.6790000
|
||||||
|
32 32 1 0.0000000 0.0000000 29.4670000 8.0360000
|
||||||
|
33 33 1 0.0000000 0.0000000 29.4670000 13.3940000
|
||||||
|
34 34 1 0.0000000 0.0000000 29.4670000 18.7520000
|
||||||
|
35 35 1 0.0000000 0.0000000 29.4670000 24.1090000
|
||||||
|
36 36 1 0.0000000 0.0000000 29.4670000 29.4670000
|
||||||
|
37 37 1 0.0000000 5.3580000 2.6790000 2.6790000
|
||||||
|
38 38 1 0.0000000 5.3580000 2.6790000 8.0360000
|
||||||
|
39 39 1 0.0000000 5.3580000 2.6790000 13.3940000
|
||||||
|
40 40 1 0.0000000 5.3580000 2.6790000 18.7520000
|
||||||
|
41 41 1 0.0000000 5.3580000 2.6790000 24.1090000
|
||||||
|
42 42 1 0.0000000 5.3580000 2.6790000 29.4670000
|
||||||
|
43 43 1 0.0000000 5.3580000 8.0360000 2.6790000
|
||||||
|
44 44 1 0.0000000 5.3580000 8.0360000 8.0360000
|
||||||
|
45 45 1 0.0000000 5.3580000 8.0360000 13.3940000
|
||||||
|
46 46 1 0.0000000 5.3580000 8.0360000 18.7520000
|
||||||
|
47 47 1 0.0000000 5.3580000 8.0360000 24.1090000
|
||||||
|
48 48 1 0.0000000 5.3580000 8.0360000 29.4670000
|
||||||
|
49 49 1 0.0000000 5.3580000 13.3940000 2.6790000
|
||||||
|
50 50 1 0.0000000 5.3580000 13.3940000 8.0360000
|
||||||
|
51 51 1 0.0000000 5.3580000 13.3940000 13.3940000
|
||||||
|
52 52 1 0.0000000 5.3580000 13.3940000 18.7520000
|
||||||
|
53 53 1 0.0000000 5.3580000 13.3940000 24.1090000
|
||||||
|
54 54 1 0.0000000 5.3580000 13.3940000 29.4670000
|
||||||
|
55 55 1 0.0000000 5.3580000 18.7520000 2.6790000
|
||||||
|
56 56 1 0.0000000 5.3580000 18.7520000 8.0360000
|
||||||
|
57 57 1 0.0000000 5.3580000 18.7520000 13.3940000
|
||||||
|
58 58 1 0.0000000 5.3580000 18.7520000 18.7520000
|
||||||
|
59 59 1 0.0000000 5.3580000 18.7520000 24.1090000
|
||||||
|
60 60 1 0.0000000 5.3580000 18.7520000 29.4670000
|
||||||
|
61 61 1 0.0000000 5.3580000 24.1090000 2.6790000
|
||||||
|
62 62 1 0.0000000 5.3580000 24.1090000 8.0360000
|
||||||
|
63 63 1 0.0000000 5.3580000 24.1090000 13.3940000
|
||||||
|
64 64 1 0.0000000 5.3580000 24.1090000 18.7520000
|
||||||
|
65 65 1 0.0000000 5.3580000 24.1090000 24.1090000
|
||||||
|
66 66 1 0.0000000 5.3580000 24.1090000 29.4670000
|
||||||
|
67 67 1 0.0000000 5.3580000 29.4670000 2.6790000
|
||||||
|
68 68 1 0.0000000 5.3580000 29.4670000 8.0360000
|
||||||
|
69 69 1 0.0000000 5.3580000 29.4670000 13.3940000
|
||||||
|
70 70 1 0.0000000 5.3580000 29.4670000 18.7520000
|
||||||
|
71 71 1 0.0000000 5.3580000 29.4670000 24.1090000
|
||||||
|
72 72 1 0.0000000 5.3580000 29.4670000 29.4670000
|
||||||
|
73 73 1 0.0000000 10.7150000 2.6790000 2.6790000
|
||||||
|
74 74 1 0.0000000 10.7150000 2.6790000 8.0360000
|
||||||
|
75 75 1 0.0000000 10.7150000 2.6790000 13.3940000
|
||||||
|
76 76 1 0.0000000 10.7150000 2.6790000 18.7520000
|
||||||
|
77 77 1 0.0000000 10.7150000 2.6790000 24.1090000
|
||||||
|
78 78 1 0.0000000 10.7150000 2.6790000 29.4670000
|
||||||
|
79 79 1 0.0000000 10.7150000 8.0360000 2.6790000
|
||||||
|
80 80 1 0.0000000 10.7150000 8.0360000 8.0360000
|
||||||
|
81 81 1 0.0000000 10.7150000 8.0360000 13.3940000
|
||||||
|
82 82 1 0.0000000 10.7150000 8.0360000 18.7520000
|
||||||
|
83 83 1 0.0000000 10.7150000 8.0360000 24.1090000
|
||||||
|
84 84 1 0.0000000 10.7150000 8.0360000 29.4670000
|
||||||
|
85 85 1 0.0000000 10.7150000 13.3940000 2.6790000
|
||||||
|
86 86 1 0.0000000 10.7150000 13.3940000 8.0360000
|
||||||
|
87 87 1 0.0000000 10.7150000 13.3940000 13.3940000
|
||||||
|
88 88 1 0.0000000 10.7150000 13.3940000 18.7520000
|
||||||
|
89 89 1 0.0000000 10.7150000 13.3940000 24.1090000
|
||||||
|
90 90 1 0.0000000 10.7150000 13.3940000 29.4670000
|
||||||
|
91 91 1 0.0000000 10.7150000 18.7520000 2.6790000
|
||||||
|
92 92 1 0.0000000 10.7150000 18.7520000 8.0360000
|
||||||
|
93 93 1 0.0000000 10.7150000 18.7520000 13.3940000
|
||||||
|
94 94 1 0.0000000 10.7150000 18.7520000 18.7520000
|
||||||
|
95 95 1 0.0000000 10.7150000 18.7520000 24.1090000
|
||||||
|
96 96 1 0.0000000 10.7150000 18.7520000 29.4670000
|
||||||
|
97 97 1 0.0000000 10.7150000 24.1090000 2.6790000
|
||||||
|
98 98 1 0.0000000 10.7150000 24.1090000 8.0360000
|
||||||
|
99 99 1 0.0000000 10.7150000 24.1090000 13.3940000
|
||||||
|
100 100 1 0.0000000 10.7150000 24.1090000 18.7520000
|
||||||
|
101 101 1 0.0000000 10.7150000 24.1090000 24.1090000
|
||||||
|
102 102 1 0.0000000 10.7150000 24.1090000 29.4670000
|
||||||
|
103 103 1 0.0000000 10.7150000 29.4670000 2.6790000
|
||||||
|
104 104 1 0.0000000 10.7150000 29.4670000 8.0360000
|
||||||
|
105 105 1 0.0000000 10.7150000 29.4670000 13.3940000
|
||||||
|
106 106 1 0.0000000 10.7150000 29.4670000 18.7520000
|
||||||
|
107 107 1 0.0000000 10.7150000 29.4670000 24.1090000
|
||||||
|
108 108 1 0.0000000 10.7150000 29.4670000 29.4670000
|
||||||
|
109 109 1 0.0000000 16.0730000 2.6790000 2.6790000
|
||||||
|
110 110 1 0.0000000 16.0730000 2.6790000 8.0360000
|
||||||
|
111 111 1 0.0000000 16.0730000 2.6790000 13.3940000
|
||||||
|
112 112 1 0.0000000 16.0730000 2.6790000 18.7520000
|
||||||
|
113 113 1 0.0000000 16.0730000 2.6790000 24.1090000
|
||||||
|
114 114 1 0.0000000 16.0730000 2.6790000 29.4670000
|
||||||
|
115 115 1 0.0000000 16.0730000 8.0360000 2.6790000
|
||||||
|
116 116 1 0.0000000 16.0730000 8.0360000 8.0360000
|
||||||
|
117 117 1 0.0000000 16.0730000 8.0360000 13.3940000
|
||||||
|
118 118 1 0.0000000 16.0730000 8.0360000 18.7520000
|
||||||
|
119 119 1 0.0000000 16.0730000 8.0360000 24.1090000
|
||||||
|
120 120 1 0.0000000 16.0730000 8.0360000 29.4670000
|
||||||
|
121 121 1 0.0000000 16.0730000 13.3940000 2.6790000
|
||||||
|
122 122 1 0.0000000 16.0730000 13.3940000 8.0360000
|
||||||
|
123 123 1 0.0000000 16.0730000 13.3940000 13.3940000
|
||||||
|
124 124 1 0.0000000 16.0730000 13.3940000 18.7520000
|
||||||
|
125 125 1 0.0000000 16.0730000 13.3940000 24.1090000
|
||||||
|
126 126 1 0.0000000 16.0730000 13.3940000 29.4670000
|
||||||
|
127 127 1 0.0000000 16.0730000 18.7520000 2.6790000
|
||||||
|
128 128 1 0.0000000 16.0730000 18.7520000 8.0360000
|
||||||
|
129 129 1 0.0000000 16.0730000 18.7520000 13.3940000
|
||||||
|
130 130 1 0.0000000 16.0730000 18.7520000 18.7520000
|
||||||
|
131 131 1 0.0000000 16.0730000 18.7520000 24.1090000
|
||||||
|
132 132 1 0.0000000 16.0730000 18.7520000 29.4670000
|
||||||
|
133 133 1 0.0000000 16.0730000 24.1090000 2.6790000
|
||||||
|
134 134 1 0.0000000 16.0730000 24.1090000 8.0360000
|
||||||
|
135 135 1 0.0000000 16.0730000 24.1090000 13.3940000
|
||||||
|
136 136 1 0.0000000 16.0730000 24.1090000 18.7520000
|
||||||
|
137 137 1 0.0000000 16.0730000 24.1090000 24.1090000
|
||||||
|
138 138 1 0.0000000 16.0730000 24.1090000 29.4670000
|
||||||
|
139 139 1 0.0000000 16.0730000 29.4670000 2.6790000
|
||||||
|
140 140 1 0.0000000 16.0730000 29.4670000 8.0360000
|
||||||
|
141 141 1 0.0000000 16.0730000 29.4670000 13.3940000
|
||||||
|
142 142 1 0.0000000 16.0730000 29.4670000 18.7520000
|
||||||
|
143 143 1 0.0000000 16.0730000 29.4670000 24.1090000
|
||||||
|
144 144 1 0.0000000 16.0730000 29.4670000 29.4670000
|
||||||
|
145 145 1 0.0000000 21.4310000 2.6790000 2.6790000
|
||||||
|
146 146 1 0.0000000 21.4310000 2.6790000 8.0360000
|
||||||
|
147 147 1 0.0000000 21.4310000 2.6790000 13.3940000
|
||||||
|
148 148 1 0.0000000 21.4310000 2.6790000 18.7520000
|
||||||
|
149 149 1 0.0000000 21.4310000 2.6790000 24.1090000
|
||||||
|
150 150 1 0.0000000 21.4310000 2.6790000 29.4670000
|
||||||
|
151 151 1 0.0000000 21.4310000 8.0360000 2.6790000
|
||||||
|
152 152 1 0.0000000 21.4310000 8.0360000 8.0360000
|
||||||
|
153 153 1 0.0000000 21.4310000 8.0360000 13.3940000
|
||||||
|
154 154 1 0.0000000 21.4310000 8.0360000 18.7520000
|
||||||
|
155 155 1 0.0000000 21.4310000 8.0360000 24.1090000
|
||||||
|
156 156 1 0.0000000 21.4310000 8.0360000 29.4670000
|
||||||
|
157 157 1 0.0000000 21.4310000 13.3940000 2.6790000
|
||||||
|
158 158 1 0.0000000 21.4310000 13.3940000 8.0360000
|
||||||
|
159 159 1 0.0000000 21.4310000 13.3940000 13.3940000
|
||||||
|
160 160 1 0.0000000 21.4310000 13.3940000 18.7520000
|
||||||
|
161 161 1 0.0000000 21.4310000 13.3940000 24.1090000
|
||||||
|
162 162 1 0.0000000 21.4310000 13.3940000 29.4670000
|
||||||
|
163 163 1 0.0000000 21.4310000 18.7520000 2.6790000
|
||||||
|
164 164 1 0.0000000 21.4310000 18.7520000 8.0360000
|
||||||
|
165 165 1 0.0000000 21.4310000 18.7520000 13.3940000
|
||||||
|
166 166 1 0.0000000 21.4310000 18.7520000 18.7520000
|
||||||
|
167 167 1 0.0000000 21.4310000 18.7520000 24.1090000
|
||||||
|
168 168 1 0.0000000 21.4310000 18.7520000 29.4670000
|
||||||
|
169 169 1 0.0000000 21.4310000 24.1090000 2.6790000
|
||||||
|
170 170 1 0.0000000 21.4310000 24.1090000 8.0360000
|
||||||
|
171 171 1 0.0000000 21.4310000 24.1090000 13.3940000
|
||||||
|
172 172 1 0.0000000 21.4310000 24.1090000 18.7520000
|
||||||
|
173 173 1 0.0000000 21.4310000 24.1090000 24.1090000
|
||||||
|
174 174 1 0.0000000 21.4310000 24.1090000 29.4670000
|
||||||
|
175 175 1 0.0000000 21.4310000 29.4670000 2.6790000
|
||||||
|
176 176 1 0.0000000 21.4310000 29.4670000 8.0360000
|
||||||
|
177 177 1 0.0000000 21.4310000 29.4670000 13.3940000
|
||||||
|
178 178 1 0.0000000 21.4310000 29.4670000 18.7520000
|
||||||
|
179 179 1 0.0000000 21.4310000 29.4670000 24.1090000
|
||||||
|
180 180 1 0.0000000 21.4310000 29.4670000 29.4670000
|
||||||
|
181 181 1 0.0000000 26.7880000 2.6790000 2.6790000
|
||||||
|
182 182 1 0.0000000 26.7880000 2.6790000 8.0360000
|
||||||
|
183 183 1 0.0000000 26.7880000 2.6790000 13.3940000
|
||||||
|
184 184 1 0.0000000 26.7880000 2.6790000 18.7520000
|
||||||
|
185 185 1 0.0000000 26.7880000 2.6790000 24.1090000
|
||||||
|
186 186 1 0.0000000 26.7880000 2.6790000 29.4670000
|
||||||
|
187 187 1 0.0000000 26.7880000 8.0360000 2.6790000
|
||||||
|
188 188 1 0.0000000 26.7880000 8.0360000 8.0360000
|
||||||
|
189 189 1 0.0000000 26.7880000 8.0360000 13.3940000
|
||||||
|
190 190 1 0.0000000 26.7880000 8.0360000 18.7520000
|
||||||
|
191 191 1 0.0000000 26.7880000 8.0360000 24.1090000
|
||||||
|
192 192 1 0.0000000 26.7880000 8.0360000 29.4670000
|
||||||
|
193 193 1 0.0000000 26.7880000 13.3940000 2.6790000
|
||||||
|
194 194 1 0.0000000 26.7880000 13.3940000 8.0360000
|
||||||
|
195 195 1 0.0000000 26.7880000 13.3940000 13.3940000
|
||||||
|
196 196 1 0.0000000 26.7880000 13.3940000 18.7520000
|
||||||
|
197 197 1 0.0000000 26.7880000 13.3940000 24.1090000
|
||||||
|
198 198 1 0.0000000 26.7880000 13.3940000 29.4670000
|
||||||
|
199 199 1 0.0000000 26.7880000 18.7520000 2.6790000
|
||||||
|
200 200 1 0.0000000 26.7880000 18.7520000 8.0360000
|
||||||
|
201 201 1 0.0000000 26.7880000 18.7520000 13.3940000
|
||||||
|
202 202 1 0.0000000 26.7880000 18.7520000 18.7520000
|
||||||
|
203 203 1 0.0000000 26.7880000 18.7520000 24.1090000
|
||||||
|
204 204 1 0.0000000 26.7880000 18.7520000 29.4670000
|
||||||
|
205 205 1 0.0000000 26.7880000 24.1090000 2.6790000
|
||||||
|
206 206 1 0.0000000 26.7880000 24.1090000 8.0360000
|
||||||
|
207 207 1 0.0000000 26.7880000 24.1090000 13.3940000
|
||||||
|
208 208 1 0.0000000 26.7880000 24.1090000 18.7520000
|
||||||
|
209 209 1 0.0000000 26.7880000 24.1090000 24.1090000
|
||||||
|
210 210 1 0.0000000 26.7880000 24.1090000 29.4670000
|
||||||
|
211 211 1 0.0000000 26.7880000 29.4670000 2.6790000
|
||||||
|
212 212 1 0.0000000 26.7880000 29.4670000 8.0360000
|
||||||
|
213 213 1 0.0000000 26.7880000 29.4670000 13.3940000
|
||||||
|
214 214 1 0.0000000 26.7880000 29.4670000 18.7520000
|
||||||
|
215 215 1 0.0000000 26.7880000 29.4670000 24.1090000
|
||||||
|
216 216 1 0.0000000 26.7880000 29.4670000 29.4670000
|
||||||
|
217 217 1 0.0000000 2.6790000 5.3580000 2.6790000
|
||||||
|
218 218 1 0.0000000 2.6790000 5.3580000 8.0360000
|
||||||
|
219 219 1 0.0000000 2.6790000 5.3580000 13.3940000
|
||||||
|
220 220 1 0.0000000 2.6790000 5.3580000 18.7520000
|
||||||
|
221 221 1 0.0000000 2.6790000 5.3580000 24.1090000
|
||||||
|
222 222 1 0.0000000 2.6790000 5.3580000 29.4670000
|
||||||
|
223 223 1 0.0000000 2.6790000 10.7150000 2.6790000
|
||||||
|
224 224 1 0.0000000 2.6790000 10.7150000 8.0360000
|
||||||
|
225 225 1 0.0000000 2.6790000 10.7150000 13.3940000
|
||||||
|
226 226 1 0.0000000 2.6790000 10.7150000 18.7520000
|
||||||
|
227 227 1 0.0000000 2.6790000 10.7150000 24.1090000
|
||||||
|
228 228 1 0.0000000 2.6790000 10.7150000 29.4670000
|
||||||
|
229 229 1 0.0000000 2.6790000 16.0730000 2.6790000
|
||||||
|
230 230 1 0.0000000 2.6790000 16.0730000 8.0360000
|
||||||
|
231 231 1 0.0000000 2.6790000 16.0730000 13.3940000
|
||||||
|
232 232 1 0.0000000 2.6790000 16.0730000 18.7520000
|
||||||
|
233 233 1 0.0000000 2.6790000 16.0730000 24.1090000
|
||||||
|
234 234 1 0.0000000 2.6790000 16.0730000 29.4670000
|
||||||
|
235 235 1 0.0000000 2.6790000 21.4310000 2.6790000
|
||||||
|
236 236 1 0.0000000 2.6790000 21.4310000 8.0360000
|
||||||
|
237 237 1 0.0000000 2.6790000 21.4310000 13.3940000
|
||||||
|
238 238 1 0.0000000 2.6790000 21.4310000 18.7520000
|
||||||
|
239 239 1 0.0000000 2.6790000 21.4310000 24.1090000
|
||||||
|
240 240 1 0.0000000 2.6790000 21.4310000 29.4670000
|
||||||
|
241 241 1 0.0000000 2.6790000 26.7880000 2.6790000
|
||||||
|
242 242 1 0.0000000 2.6790000 26.7880000 8.0360000
|
||||||
|
243 243 1 0.0000000 2.6790000 26.7880000 13.3940000
|
||||||
|
244 244 1 0.0000000 2.6790000 26.7880000 18.7520000
|
||||||
|
245 245 1 0.0000000 2.6790000 26.7880000 24.1090000
|
||||||
|
246 246 1 0.0000000 2.6790000 26.7880000 29.4670000
|
||||||
|
247 247 1 0.0000000 2.6790000 32.1460000 2.6790000
|
||||||
|
248 248 1 0.0000000 2.6790000 32.1460000 8.0360000
|
||||||
|
249 249 1 0.0000000 2.6790000 32.1460000 13.3940000
|
||||||
|
250 250 1 0.0000000 2.6790000 32.1460000 18.7520000
|
||||||
|
251 251 1 0.0000000 2.6790000 32.1460000 24.1090000
|
||||||
|
252 252 1 0.0000000 2.6790000 32.1460000 29.4670000
|
||||||
|
253 253 1 0.0000000 8.0360000 5.3580000 2.6790000
|
||||||
|
254 254 1 0.0000000 8.0360000 5.3580000 8.0360000
|
||||||
|
255 255 1 0.0000000 8.0360000 5.3580000 13.3940000
|
||||||
|
256 256 1 0.0000000 8.0360000 5.3580000 18.7520000
|
||||||
|
257 257 1 0.0000000 8.0360000 5.3580000 24.1090000
|
||||||
|
258 258 1 0.0000000 8.0360000 5.3580000 29.4670000
|
||||||
|
259 259 1 0.0000000 8.0360000 10.7150000 2.6790000
|
||||||
|
260 260 1 0.0000000 8.0360000 10.7150000 8.0360000
|
||||||
|
261 261 1 0.0000000 8.0360000 10.7150000 13.3940000
|
||||||
|
262 262 1 0.0000000 8.0360000 10.7150000 18.7520000
|
||||||
|
263 263 1 0.0000000 8.0360000 10.7150000 24.1090000
|
||||||
|
264 264 1 0.0000000 8.0360000 10.7150000 29.4670000
|
||||||
|
265 265 1 0.0000000 8.0360000 16.0730000 2.6790000
|
||||||
|
266 266 1 0.0000000 8.0360000 16.0730000 8.0360000
|
||||||
|
267 267 1 0.0000000 8.0360000 16.0730000 13.3940000
|
||||||
|
268 268 1 0.0000000 8.0360000 16.0730000 18.7520000
|
||||||
|
269 269 1 0.0000000 8.0360000 16.0730000 24.1090000
|
||||||
|
270 270 1 0.0000000 8.0360000 16.0730000 29.4670000
|
||||||
|
271 271 1 0.0000000 8.0360000 21.4310000 2.6790000
|
||||||
|
272 272 1 0.0000000 8.0360000 21.4310000 8.0360000
|
||||||
|
273 273 1 0.0000000 8.0360000 21.4310000 13.3940000
|
||||||
|
274 274 1 0.0000000 8.0360000 21.4310000 18.7520000
|
||||||
|
275 275 1 0.0000000 8.0360000 21.4310000 24.1090000
|
||||||
|
276 276 1 0.0000000 8.0360000 21.4310000 29.4670000
|
||||||
|
277 277 1 0.0000000 8.0360000 26.7880000 2.6790000
|
||||||
|
278 278 1 0.0000000 8.0360000 26.7880000 8.0360000
|
||||||
|
279 279 1 0.0000000 8.0360000 26.7880000 13.3940000
|
||||||
|
280 280 1 0.0000000 8.0360000 26.7880000 18.7520000
|
||||||
|
281 281 1 0.0000000 8.0360000 26.7880000 24.1090000
|
||||||
|
282 282 1 0.0000000 8.0360000 26.7880000 29.4670000
|
||||||
|
283 283 1 0.0000000 8.0360000 32.1460000 2.6790000
|
||||||
|
284 284 1 0.0000000 8.0360000 32.1460000 8.0360000
|
||||||
|
285 285 1 0.0000000 8.0360000 32.1460000 13.3940000
|
||||||
|
286 286 1 0.0000000 8.0360000 32.1460000 18.7520000
|
||||||
|
287 287 1 0.0000000 8.0360000 32.1460000 24.1090000
|
||||||
|
288 288 1 0.0000000 8.0360000 32.1460000 29.4670000
|
||||||
|
289 289 1 0.0000000 13.3940000 5.3580000 2.6790000
|
||||||
|
290 290 1 0.0000000 13.3940000 5.3580000 8.0360000
|
||||||
|
291 291 1 0.0000000 13.3940000 5.3580000 13.3940000
|
||||||
|
292 292 1 0.0000000 13.3940000 5.3580000 18.7520000
|
||||||
|
293 293 1 0.0000000 13.3940000 5.3580000 24.1090000
|
||||||
|
294 294 1 0.0000000 13.3940000 5.3580000 29.4670000
|
||||||
|
295 295 1 0.0000000 13.3940000 10.7150000 2.6790000
|
||||||
|
296 296 1 0.0000000 13.3940000 10.7150000 8.0360000
|
||||||
|
297 297 1 0.0000000 13.3940000 10.7150000 13.3940000
|
||||||
|
298 298 1 0.0000000 13.3940000 10.7150000 18.7520000
|
||||||
|
299 299 1 0.0000000 13.3940000 10.7150000 24.1090000
|
||||||
|
300 300 1 0.0000000 13.3940000 10.7150000 29.4670000
|
||||||
|
301 301 1 0.0000000 13.3940000 16.0730000 2.6790000
|
||||||
|
302 302 1 0.0000000 13.3940000 16.0730000 8.0360000
|
||||||
|
303 303 1 0.0000000 13.3940000 16.0730000 13.3940000
|
||||||
|
304 304 1 0.0000000 13.3940000 16.0730000 18.7520000
|
||||||
|
305 305 1 0.0000000 13.3940000 16.0730000 24.1090000
|
||||||
|
306 306 1 0.0000000 13.3940000 16.0730000 29.4670000
|
||||||
|
307 307 1 0.0000000 13.3940000 21.4310000 2.6790000
|
||||||
|
308 308 1 0.0000000 13.3940000 21.4310000 8.0360000
|
||||||
|
309 309 1 0.0000000 13.3940000 21.4310000 13.3940000
|
||||||
|
310 310 1 0.0000000 13.3940000 21.4310000 18.7520000
|
||||||
|
311 311 1 0.0000000 13.3940000 21.4310000 24.1090000
|
||||||
|
312 312 1 0.0000000 13.3940000 21.4310000 29.4670000
|
||||||
|
313 313 1 0.0000000 13.3940000 26.7880000 2.6790000
|
||||||
|
314 314 1 0.0000000 13.3940000 26.7880000 8.0360000
|
||||||
|
315 315 1 0.0000000 13.3940000 26.7880000 13.3940000
|
||||||
|
316 316 1 0.0000000 13.3940000 26.7880000 18.7520000
|
||||||
|
317 317 1 0.0000000 13.3940000 26.7880000 24.1090000
|
||||||
|
318 318 1 0.0000000 13.3940000 26.7880000 29.4670000
|
||||||
|
319 319 1 0.0000000 13.3940000 32.1460000 2.6790000
|
||||||
|
320 320 1 0.0000000 13.3940000 32.1460000 8.0360000
|
||||||
|
321 321 1 0.0000000 13.3940000 32.1460000 13.3940000
|
||||||
|
322 322 1 0.0000000 13.3940000 32.1460000 18.7520000
|
||||||
|
323 323 1 0.0000000 13.3940000 32.1460000 24.1090000
|
||||||
|
324 324 1 0.0000000 13.3940000 32.1460000 29.4670000
|
||||||
|
325 325 1 0.0000000 18.7520000 5.3580000 2.6790000
|
||||||
|
326 326 1 0.0000000 18.7520000 5.3580000 8.0360000
|
||||||
|
327 327 1 0.0000000 18.7520000 5.3580000 13.3940000
|
||||||
|
328 328 1 0.0000000 18.7520000 5.3580000 18.7520000
|
||||||
|
329 329 1 0.0000000 18.7520000 5.3580000 24.1090000
|
||||||
|
330 330 1 0.0000000 18.7520000 5.3580000 29.4670000
|
||||||
|
331 331 1 0.0000000 18.7520000 10.7150000 2.6790000
|
||||||
|
332 332 1 0.0000000 18.7520000 10.7150000 8.0360000
|
||||||
|
333 333 1 0.0000000 18.7520000 10.7150000 13.3940000
|
||||||
|
334 334 1 0.0000000 18.7520000 10.7150000 18.7520000
|
||||||
|
335 335 1 0.0000000 18.7520000 10.7150000 24.1090000
|
||||||
|
336 336 1 0.0000000 18.7520000 10.7150000 29.4670000
|
||||||
|
337 337 1 0.0000000 18.7520000 16.0730000 2.6790000
|
||||||
|
338 338 1 0.0000000 18.7520000 16.0730000 8.0360000
|
||||||
|
339 339 1 0.0000000 18.7520000 16.0730000 13.3940000
|
||||||
|
340 340 1 0.0000000 18.7520000 16.0730000 18.7520000
|
||||||
|
341 341 1 0.0000000 18.7520000 16.0730000 24.1090000
|
||||||
|
342 342 1 0.0000000 18.7520000 16.0730000 29.4670000
|
||||||
|
343 343 1 0.0000000 18.7520000 21.4310000 2.6790000
|
||||||
|
344 344 1 0.0000000 18.7520000 21.4310000 8.0360000
|
||||||
|
345 345 1 0.0000000 18.7520000 21.4310000 13.3940000
|
||||||
|
346 346 1 0.0000000 18.7520000 21.4310000 18.7520000
|
||||||
|
347 347 1 0.0000000 18.7520000 21.4310000 24.1090000
|
||||||
|
348 348 1 0.0000000 18.7520000 21.4310000 29.4670000
|
||||||
|
349 349 1 0.0000000 18.7520000 26.7880000 2.6790000
|
||||||
|
350 350 1 0.0000000 18.7520000 26.7880000 8.0360000
|
||||||
|
351 351 1 0.0000000 18.7520000 26.7880000 13.3940000
|
||||||
|
352 352 1 0.0000000 18.7520000 26.7880000 18.7520000
|
||||||
|
353 353 1 0.0000000 18.7520000 26.7880000 24.1090000
|
||||||
|
354 354 1 0.0000000 18.7520000 26.7880000 29.4670000
|
||||||
|
355 355 1 0.0000000 18.7520000 32.1460000 2.6790000
|
||||||
|
356 356 1 0.0000000 18.7520000 32.1460000 8.0360000
|
||||||
|
357 357 1 0.0000000 18.7520000 32.1460000 13.3940000
|
||||||
|
358 358 1 0.0000000 18.7520000 32.1460000 18.7520000
|
||||||
|
359 359 1 0.0000000 18.7520000 32.1460000 24.1090000
|
||||||
|
360 360 1 0.0000000 18.7520000 32.1460000 29.4670000
|
||||||
|
361 361 1 0.0000000 24.1090000 5.3580000 2.6790000
|
||||||
|
362 362 1 0.0000000 24.1090000 5.3580000 8.0360000
|
||||||
|
363 363 1 0.0000000 24.1090000 5.3580000 13.3940000
|
||||||
|
364 364 1 0.0000000 24.1090000 5.3580000 18.7520000
|
||||||
|
365 365 1 0.0000000 24.1090000 5.3580000 24.1090000
|
||||||
|
366 366 1 0.0000000 24.1090000 5.3580000 29.4670000
|
||||||
|
367 367 1 0.0000000 24.1090000 10.7150000 2.6790000
|
||||||
|
368 368 1 0.0000000 24.1090000 10.7150000 8.0360000
|
||||||
|
369 369 1 0.0000000 24.1090000 10.7150000 13.3940000
|
||||||
|
370 370 1 0.0000000 24.1090000 10.7150000 18.7520000
|
||||||
|
371 371 1 0.0000000 24.1090000 10.7150000 24.1090000
|
||||||
|
372 372 1 0.0000000 24.1090000 10.7150000 29.4670000
|
||||||
|
373 373 1 0.0000000 24.1090000 16.0730000 2.6790000
|
||||||
|
374 374 1 0.0000000 24.1090000 16.0730000 8.0360000
|
||||||
|
375 375 1 0.0000000 24.1090000 16.0730000 13.3940000
|
||||||
|
376 376 1 0.0000000 24.1090000 16.0730000 18.7520000
|
||||||
|
377 377 1 0.0000000 24.1090000 16.0730000 24.1090000
|
||||||
|
378 378 1 0.0000000 24.1090000 16.0730000 29.4670000
|
||||||
|
379 379 1 0.0000000 24.1090000 21.4310000 2.6790000
|
||||||
|
380 380 1 0.0000000 24.1090000 21.4310000 8.0360000
|
||||||
|
381 381 1 0.0000000 24.1090000 21.4310000 13.3940000
|
||||||
|
382 382 1 0.0000000 24.1090000 21.4310000 18.7520000
|
||||||
|
383 383 1 0.0000000 24.1090000 21.4310000 24.1090000
|
||||||
|
384 384 1 0.0000000 24.1090000 21.4310000 29.4670000
|
||||||
|
385 385 1 0.0000000 24.1090000 26.7880000 2.6790000
|
||||||
|
386 386 1 0.0000000 24.1090000 26.7880000 8.0360000
|
||||||
|
387 387 1 0.0000000 24.1090000 26.7880000 13.3940000
|
||||||
|
388 388 1 0.0000000 24.1090000 26.7880000 18.7520000
|
||||||
|
389 389 1 0.0000000 24.1090000 26.7880000 24.1090000
|
||||||
|
390 390 1 0.0000000 24.1090000 26.7880000 29.4670000
|
||||||
|
391 391 1 0.0000000 24.1090000 32.1460000 2.6790000
|
||||||
|
392 392 1 0.0000000 24.1090000 32.1460000 8.0360000
|
||||||
|
393 393 1 0.0000000 24.1090000 32.1460000 13.3940000
|
||||||
|
394 394 1 0.0000000 24.1090000 32.1460000 18.7520000
|
||||||
|
395 395 1 0.0000000 24.1090000 32.1460000 24.1090000
|
||||||
|
396 396 1 0.0000000 24.1090000 32.1460000 29.4670000
|
||||||
|
397 397 1 0.0000000 29.4670000 5.3580000 2.6790000
|
||||||
|
398 398 1 0.0000000 29.4670000 5.3580000 8.0360000
|
||||||
|
399 399 1 0.0000000 29.4670000 5.3580000 13.3940000
|
||||||
|
400 400 1 0.0000000 29.4670000 5.3580000 18.7520000
|
||||||
|
401 401 1 0.0000000 29.4670000 5.3580000 24.1090000
|
||||||
|
402 402 1 0.0000000 29.4670000 5.3580000 29.4670000
|
||||||
|
403 403 1 0.0000000 29.4670000 10.7150000 2.6790000
|
||||||
|
404 404 1 0.0000000 29.4670000 10.7150000 8.0360000
|
||||||
|
405 405 1 0.0000000 29.4670000 10.7150000 13.3940000
|
||||||
|
406 406 1 0.0000000 29.4670000 10.7150000 18.7520000
|
||||||
|
407 407 1 0.0000000 29.4670000 10.7150000 24.1090000
|
||||||
|
408 408 1 0.0000000 29.4670000 10.7150000 29.4670000
|
||||||
|
409 409 1 0.0000000 29.4670000 16.0730000 2.6790000
|
||||||
|
410 410 1 0.0000000 29.4670000 16.0730000 8.0360000
|
||||||
|
411 411 1 0.0000000 29.4670000 16.0730000 13.3940000
|
||||||
|
412 412 1 0.0000000 29.4670000 16.0730000 18.7520000
|
||||||
|
413 413 1 0.0000000 29.4670000 16.0730000 24.1090000
|
||||||
|
414 414 1 0.0000000 29.4670000 16.0730000 29.4670000
|
||||||
|
415 415 1 0.0000000 29.4670000 21.4310000 2.6790000
|
||||||
|
416 416 1 0.0000000 29.4670000 21.4310000 8.0360000
|
||||||
|
417 417 1 0.0000000 29.4670000 21.4310000 13.3940000
|
||||||
|
418 418 1 0.0000000 29.4670000 21.4310000 18.7520000
|
||||||
|
419 419 1 0.0000000 29.4670000 21.4310000 24.1090000
|
||||||
|
420 420 1 0.0000000 29.4670000 21.4310000 29.4670000
|
||||||
|
421 421 1 0.0000000 29.4670000 26.7880000 2.6790000
|
||||||
|
422 422 1 0.0000000 29.4670000 26.7880000 8.0360000
|
||||||
|
423 423 1 0.0000000 29.4670000 26.7880000 13.3940000
|
||||||
|
424 424 1 0.0000000 29.4670000 26.7880000 18.7520000
|
||||||
|
425 425 1 0.0000000 29.4670000 26.7880000 24.1090000
|
||||||
|
426 426 1 0.0000000 29.4670000 26.7880000 29.4670000
|
||||||
|
427 427 1 0.0000000 29.4670000 32.1460000 2.6790000
|
||||||
|
428 428 1 0.0000000 29.4670000 32.1460000 8.0360000
|
||||||
|
429 429 1 0.0000000 29.4670000 32.1460000 13.3940000
|
||||||
|
430 430 1 0.0000000 29.4670000 32.1460000 18.7520000
|
||||||
|
431 431 1 0.0000000 29.4670000 32.1460000 24.1090000
|
||||||
|
432 432 1 0.0000000 29.4670000 32.1460000 29.4670000
|
||||||
|
433 433 1 0.0000000 2.6790000 2.6790000 5.3580000
|
||||||
|
434 434 1 0.0000000 2.6790000 2.6790000 10.7150000
|
||||||
|
435 435 1 0.0000000 2.6790000 2.6790000 16.0730000
|
||||||
|
436 436 1 0.0000000 2.6790000 2.6790000 21.4310000
|
||||||
|
437 437 1 0.0000000 2.6790000 2.6790000 26.7880000
|
||||||
|
438 438 1 0.0000000 2.6790000 2.6790000 32.1460000
|
||||||
|
439 439 1 0.0000000 2.6790000 8.0360000 5.3580000
|
||||||
|
440 440 1 0.0000000 2.6790000 8.0360000 10.7150000
|
||||||
|
441 441 1 0.0000000 2.6790000 8.0360000 16.0730000
|
||||||
|
442 442 1 0.0000000 2.6790000 8.0360000 21.4310000
|
||||||
|
443 443 1 0.0000000 2.6790000 8.0360000 26.7880000
|
||||||
|
444 444 1 0.0000000 2.6790000 8.0360000 32.1460000
|
||||||
|
445 445 1 0.0000000 2.6790000 13.3940000 5.3580000
|
||||||
|
446 446 1 0.0000000 2.6790000 13.3940000 10.7150000
|
||||||
|
447 447 1 0.0000000 2.6790000 13.3940000 16.0730000
|
||||||
|
448 448 1 0.0000000 2.6790000 13.3940000 21.4310000
|
||||||
|
449 449 1 0.0000000 2.6790000 13.3940000 26.7880000
|
||||||
|
450 450 1 0.0000000 2.6790000 13.3940000 32.1460000
|
||||||
|
451 451 1 0.0000000 2.6790000 18.7520000 5.3580000
|
||||||
|
452 452 1 0.0000000 2.6790000 18.7520000 10.7150000
|
||||||
|
453 453 1 0.0000000 2.6790000 18.7520000 16.0730000
|
||||||
|
454 454 1 0.0000000 2.6790000 18.7520000 21.4310000
|
||||||
|
455 455 1 0.0000000 2.6790000 18.7520000 26.7880000
|
||||||
|
456 456 1 0.0000000 2.6790000 18.7520000 32.1460000
|
||||||
|
457 457 1 0.0000000 2.6790000 24.1090000 5.3580000
|
||||||
|
458 458 1 0.0000000 2.6790000 24.1090000 10.7150000
|
||||||
|
459 459 1 0.0000000 2.6790000 24.1090000 16.0730000
|
||||||
|
460 460 1 0.0000000 2.6790000 24.1090000 21.4310000
|
||||||
|
461 461 1 0.0000000 2.6790000 24.1090000 26.7880000
|
||||||
|
462 462 1 0.0000000 2.6790000 24.1090000 32.1460000
|
||||||
|
463 463 1 0.0000000 2.6790000 29.4670000 5.3580000
|
||||||
|
464 464 1 0.0000000 2.6790000 29.4670000 10.7150000
|
||||||
|
465 465 1 0.0000000 2.6790000 29.4670000 16.0730000
|
||||||
|
466 466 1 0.0000000 2.6790000 29.4670000 21.4310000
|
||||||
|
467 467 1 0.0000000 2.6790000 29.4670000 26.7880000
|
||||||
|
468 468 1 0.0000000 2.6790000 29.4670000 32.1460000
|
||||||
|
469 469 1 0.0000000 8.0360000 2.6790000 5.3580000
|
||||||
|
470 470 1 0.0000000 8.0360000 2.6790000 10.7150000
|
||||||
|
471 471 1 0.0000000 8.0360000 2.6790000 16.0730000
|
||||||
|
472 472 1 0.0000000 8.0360000 2.6790000 21.4310000
|
||||||
|
473 473 1 0.0000000 8.0360000 2.6790000 26.7880000
|
||||||
|
474 474 1 0.0000000 8.0360000 2.6790000 32.1460000
|
||||||
|
475 475 1 0.0000000 8.0360000 8.0360000 5.3580000
|
||||||
|
476 476 1 0.0000000 8.0360000 8.0360000 10.7150000
|
||||||
|
477 477 1 0.0000000 8.0360000 8.0360000 16.0730000
|
||||||
|
478 478 1 0.0000000 8.0360000 8.0360000 21.4310000
|
||||||
|
479 479 1 0.0000000 8.0360000 8.0360000 26.7880000
|
||||||
|
480 480 1 0.0000000 8.0360000 8.0360000 32.1460000
|
||||||
|
481 481 1 0.0000000 8.0360000 13.3940000 5.3580000
|
||||||
|
482 482 1 0.0000000 8.0360000 13.3940000 10.7150000
|
||||||
|
483 483 1 0.0000000 8.0360000 13.3940000 16.0730000
|
||||||
|
484 484 1 0.0000000 8.0360000 13.3940000 21.4310000
|
||||||
|
485 485 1 0.0000000 8.0360000 13.3940000 26.7880000
|
||||||
|
486 486 1 0.0000000 8.0360000 13.3940000 32.1460000
|
||||||
|
487 487 1 0.0000000 8.0360000 18.7520000 5.3580000
|
||||||
|
488 488 1 0.0000000 8.0360000 18.7520000 10.7150000
|
||||||
|
489 489 1 0.0000000 8.0360000 18.7520000 16.0730000
|
||||||
|
490 490 1 0.0000000 8.0360000 18.7520000 21.4310000
|
||||||
|
491 491 1 0.0000000 8.0360000 18.7520000 26.7880000
|
||||||
|
492 492 1 0.0000000 8.0360000 18.7520000 32.1460000
|
||||||
|
493 493 1 0.0000000 8.0360000 24.1090000 5.3580000
|
||||||
|
494 494 1 0.0000000 8.0360000 24.1090000 10.7150000
|
||||||
|
495 495 1 0.0000000 8.0360000 24.1090000 16.0730000
|
||||||
|
496 496 1 0.0000000 8.0360000 24.1090000 21.4310000
|
||||||
|
497 497 1 0.0000000 8.0360000 24.1090000 26.7880000
|
||||||
|
498 498 1 0.0000000 8.0360000 24.1090000 32.1460000
|
||||||
|
499 499 1 0.0000000 8.0360000 29.4670000 5.3580000
|
||||||
|
500 500 1 0.0000000 8.0360000 29.4670000 10.7150000
|
||||||
|
501 501 1 0.0000000 8.0360000 29.4670000 16.0730000
|
||||||
|
502 502 1 0.0000000 8.0360000 29.4670000 21.4310000
|
||||||
|
503 503 1 0.0000000 8.0360000 29.4670000 26.7880000
|
||||||
|
504 504 1 0.0000000 8.0360000 29.4670000 32.1460000
|
||||||
|
505 505 1 0.0000000 13.3940000 2.6790000 5.3580000
|
||||||
|
506 506 1 0.0000000 13.3940000 2.6790000 10.7150000
|
||||||
|
507 507 1 0.0000000 13.3940000 2.6790000 16.0730000
|
||||||
|
508 508 1 0.0000000 13.3940000 2.6790000 21.4310000
|
||||||
|
509 509 1 0.0000000 13.3940000 2.6790000 26.7880000
|
||||||
|
510 510 1 0.0000000 13.3940000 2.6790000 32.1460000
|
||||||
|
511 511 1 0.0000000 13.3940000 8.0360000 5.3580000
|
||||||
|
512 512 1 0.0000000 13.3940000 8.0360000 10.7150000
|
||||||
|
513 513 1 0.0000000 13.3940000 8.0360000 16.0730000
|
||||||
|
514 514 1 0.0000000 13.3940000 8.0360000 21.4310000
|
||||||
|
515 515 1 0.0000000 13.3940000 8.0360000 26.7880000
|
||||||
|
516 516 1 0.0000000 13.3940000 8.0360000 32.1460000
|
||||||
|
517 517 1 0.0000000 13.3940000 13.3940000 5.3580000
|
||||||
|
518 518 1 0.0000000 13.3940000 13.3940000 10.7150000
|
||||||
|
519 519 1 0.0000000 13.3940000 13.3940000 16.0730000
|
||||||
|
520 520 1 0.0000000 13.3940000 13.3940000 21.4310000
|
||||||
|
521 521 1 0.0000000 13.3940000 13.3940000 26.7880000
|
||||||
|
522 522 1 0.0000000 13.3940000 13.3940000 32.1460000
|
||||||
|
523 523 1 0.0000000 13.3940000 18.7520000 5.3580000
|
||||||
|
524 524 1 0.0000000 13.3940000 18.7520000 10.7150000
|
||||||
|
525 525 1 0.0000000 13.3940000 18.7520000 16.0730000
|
||||||
|
526 526 1 0.0000000 13.3940000 18.7520000 21.4310000
|
||||||
|
527 527 1 0.0000000 13.3940000 18.7520000 26.7880000
|
||||||
|
528 528 1 0.0000000 13.3940000 18.7520000 32.1460000
|
||||||
|
529 529 1 0.0000000 13.3940000 24.1090000 5.3580000
|
||||||
|
530 530 1 0.0000000 13.3940000 24.1090000 10.7150000
|
||||||
|
531 531 1 0.0000000 13.3940000 24.1090000 16.0730000
|
||||||
|
532 532 1 0.0000000 13.3940000 24.1090000 21.4310000
|
||||||
|
533 533 1 0.0000000 13.3940000 24.1090000 26.7880000
|
||||||
|
534 534 1 0.0000000 13.3940000 24.1090000 32.1460000
|
||||||
|
535 535 1 0.0000000 13.3940000 29.4670000 5.3580000
|
||||||
|
536 536 1 0.0000000 13.3940000 29.4670000 10.7150000
|
||||||
|
537 537 1 0.0000000 13.3940000 29.4670000 16.0730000
|
||||||
|
538 538 1 0.0000000 13.3940000 29.4670000 21.4310000
|
||||||
|
539 539 1 0.0000000 13.3940000 29.4670000 26.7880000
|
||||||
|
540 540 1 0.0000000 13.3940000 29.4670000 32.1460000
|
||||||
|
541 541 1 0.0000000 18.7520000 2.6790000 5.3580000
|
||||||
|
542 542 1 0.0000000 18.7520000 2.6790000 10.7150000
|
||||||
|
543 543 1 0.0000000 18.7520000 2.6790000 16.0730000
|
||||||
|
544 544 1 0.0000000 18.7520000 2.6790000 21.4310000
|
||||||
|
545 545 1 0.0000000 18.7520000 2.6790000 26.7880000
|
||||||
|
546 546 1 0.0000000 18.7520000 2.6790000 32.1460000
|
||||||
|
547 547 1 0.0000000 18.7520000 8.0360000 5.3580000
|
||||||
|
548 548 1 0.0000000 18.7520000 8.0360000 10.7150000
|
||||||
|
549 549 1 0.0000000 18.7520000 8.0360000 16.0730000
|
||||||
|
550 550 1 0.0000000 18.7520000 8.0360000 21.4310000
|
||||||
|
551 551 1 0.0000000 18.7520000 8.0360000 26.7880000
|
||||||
|
552 552 1 0.0000000 18.7520000 8.0360000 32.1460000
|
||||||
|
553 553 1 0.0000000 18.7520000 13.3940000 5.3580000
|
||||||
|
554 554 1 0.0000000 18.7520000 13.3940000 10.7150000
|
||||||
|
555 555 1 0.0000000 18.7520000 13.3940000 16.0730000
|
||||||
|
556 556 1 0.0000000 18.7520000 13.3940000 21.4310000
|
||||||
|
557 557 1 0.0000000 18.7520000 13.3940000 26.7880000
|
||||||
|
558 558 1 0.0000000 18.7520000 13.3940000 32.1460000
|
||||||
|
559 559 1 0.0000000 18.7520000 18.7520000 5.3580000
|
||||||
|
560 560 1 0.0000000 18.7520000 18.7520000 10.7150000
|
||||||
|
561 561 1 0.0000000 18.7520000 18.7520000 16.0730000
|
||||||
|
562 562 1 0.0000000 18.7520000 18.7520000 21.4310000
|
||||||
|
563 563 1 0.0000000 18.7520000 18.7520000 26.7880000
|
||||||
|
564 564 1 0.0000000 18.7520000 18.7520000 32.1460000
|
||||||
|
565 565 1 0.0000000 18.7520000 24.1090000 5.3580000
|
||||||
|
566 566 1 0.0000000 18.7520000 24.1090000 10.7150000
|
||||||
|
567 567 1 0.0000000 18.7520000 24.1090000 16.0730000
|
||||||
|
568 568 1 0.0000000 18.7520000 24.1090000 21.4310000
|
||||||
|
569 569 1 0.0000000 18.7520000 24.1090000 26.7880000
|
||||||
|
570 570 1 0.0000000 18.7520000 24.1090000 32.1460000
|
||||||
|
571 571 1 0.0000000 18.7520000 29.4670000 5.3580000
|
||||||
|
572 572 1 0.0000000 18.7520000 29.4670000 10.7150000
|
||||||
|
573 573 1 0.0000000 18.7520000 29.4670000 16.0730000
|
||||||
|
574 574 1 0.0000000 18.7520000 29.4670000 21.4310000
|
||||||
|
575 575 1 0.0000000 18.7520000 29.4670000 26.7880000
|
||||||
|
576 576 1 0.0000000 18.7520000 29.4670000 32.1460000
|
||||||
|
577 577 1 0.0000000 24.1090000 2.6790000 5.3580000
|
||||||
|
578 578 1 0.0000000 24.1090000 2.6790000 10.7150000
|
||||||
|
579 579 1 0.0000000 24.1090000 2.6790000 16.0730000
|
||||||
|
580 580 1 0.0000000 24.1090000 2.6790000 21.4310000
|
||||||
|
581 581 1 0.0000000 24.1090000 2.6790000 26.7880000
|
||||||
|
582 582 1 0.0000000 24.1090000 2.6790000 32.1460000
|
||||||
|
583 583 1 0.0000000 24.1090000 8.0360000 5.3580000
|
||||||
|
584 584 1 0.0000000 24.1090000 8.0360000 10.7150000
|
||||||
|
585 585 1 0.0000000 24.1090000 8.0360000 16.0730000
|
||||||
|
586 586 1 0.0000000 24.1090000 8.0360000 21.4310000
|
||||||
|
587 587 1 0.0000000 24.1090000 8.0360000 26.7880000
|
||||||
|
588 588 1 0.0000000 24.1090000 8.0360000 32.1460000
|
||||||
|
589 589 1 0.0000000 24.1090000 13.3940000 5.3580000
|
||||||
|
590 590 1 0.0000000 24.1090000 13.3940000 10.7150000
|
||||||
|
591 591 1 0.0000000 24.1090000 13.3940000 16.0730000
|
||||||
|
592 592 1 0.0000000 24.1090000 13.3940000 21.4310000
|
||||||
|
593 593 1 0.0000000 24.1090000 13.3940000 26.7880000
|
||||||
|
594 594 1 0.0000000 24.1090000 13.3940000 32.1460000
|
||||||
|
595 595 1 0.0000000 24.1090000 18.7520000 5.3580000
|
||||||
|
596 596 1 0.0000000 24.1090000 18.7520000 10.7150000
|
||||||
|
597 597 1 0.0000000 24.1090000 18.7520000 16.0730000
|
||||||
|
598 598 1 0.0000000 24.1090000 18.7520000 21.4310000
|
||||||
|
599 599 1 0.0000000 24.1090000 18.7520000 26.7880000
|
||||||
|
600 600 1 0.0000000 24.1090000 18.7520000 32.1460000
|
||||||
|
601 601 1 0.0000000 24.1090000 24.1090000 5.3580000
|
||||||
|
602 602 1 0.0000000 24.1090000 24.1090000 10.7150000
|
||||||
|
603 603 1 0.0000000 24.1090000 24.1090000 16.0730000
|
||||||
|
604 604 1 0.0000000 24.1090000 24.1090000 21.4310000
|
||||||
|
605 605 1 0.0000000 24.1090000 24.1090000 26.7880000
|
||||||
|
606 606 1 0.0000000 24.1090000 24.1090000 32.1460000
|
||||||
|
607 607 1 0.0000000 24.1090000 29.4670000 5.3580000
|
||||||
|
608 608 1 0.0000000 24.1090000 29.4670000 10.7150000
|
||||||
|
609 609 1 0.0000000 24.1090000 29.4670000 16.0730000
|
||||||
|
610 610 1 0.0000000 24.1090000 29.4670000 21.4310000
|
||||||
|
611 611 1 0.0000000 24.1090000 29.4670000 26.7880000
|
||||||
|
612 612 1 0.0000000 24.1090000 29.4670000 32.1460000
|
||||||
|
613 613 1 0.0000000 29.4670000 2.6790000 5.3580000
|
||||||
|
614 614 1 0.0000000 29.4670000 2.6790000 10.7150000
|
||||||
|
615 615 1 0.0000000 29.4670000 2.6790000 16.0730000
|
||||||
|
616 616 1 0.0000000 29.4670000 2.6790000 21.4310000
|
||||||
|
617 617 1 0.0000000 29.4670000 2.6790000 26.7880000
|
||||||
|
618 618 1 0.0000000 29.4670000 2.6790000 32.1460000
|
||||||
|
619 619 1 0.0000000 29.4670000 8.0360000 5.3580000
|
||||||
|
620 620 1 0.0000000 29.4670000 8.0360000 10.7150000
|
||||||
|
621 621 1 0.0000000 29.4670000 8.0360000 16.0730000
|
||||||
|
622 622 1 0.0000000 29.4670000 8.0360000 21.4310000
|
||||||
|
623 623 1 0.0000000 29.4670000 8.0360000 26.7880000
|
||||||
|
624 624 1 0.0000000 29.4670000 8.0360000 32.1460000
|
||||||
|
625 625 1 0.0000000 29.4670000 13.3940000 5.3580000
|
||||||
|
626 626 1 0.0000000 29.4670000 13.3940000 10.7150000
|
||||||
|
627 627 1 0.0000000 29.4670000 13.3940000 16.0730000
|
||||||
|
628 628 1 0.0000000 29.4670000 13.3940000 21.4310000
|
||||||
|
629 629 1 0.0000000 29.4670000 13.3940000 26.7880000
|
||||||
|
630 630 1 0.0000000 29.4670000 13.3940000 32.1460000
|
||||||
|
631 631 1 0.0000000 29.4670000 18.7520000 5.3580000
|
||||||
|
632 632 1 0.0000000 29.4670000 18.7520000 10.7150000
|
||||||
|
633 633 1 0.0000000 29.4670000 18.7520000 16.0730000
|
||||||
|
634 634 1 0.0000000 29.4670000 18.7520000 21.4310000
|
||||||
|
635 635 1 0.0000000 29.4670000 18.7520000 26.7880000
|
||||||
|
636 636 1 0.0000000 29.4670000 18.7520000 32.1460000
|
||||||
|
637 637 1 0.0000000 29.4670000 24.1090000 5.3580000
|
||||||
|
638 638 1 0.0000000 29.4670000 24.1090000 10.7150000
|
||||||
|
639 639 1 0.0000000 29.4670000 24.1090000 16.0730000
|
||||||
|
640 640 1 0.0000000 29.4670000 24.1090000 21.4310000
|
||||||
|
641 641 1 0.0000000 29.4670000 24.1090000 26.7880000
|
||||||
|
642 642 1 0.0000000 29.4670000 24.1090000 32.1460000
|
||||||
|
643 643 1 0.0000000 29.4670000 29.4670000 5.3580000
|
||||||
|
644 644 1 0.0000000 29.4670000 29.4670000 10.7150000
|
||||||
|
645 645 1 0.0000000 29.4670000 29.4670000 16.0730000
|
||||||
|
646 646 1 0.0000000 29.4670000 29.4670000 21.4310000
|
||||||
|
647 647 1 0.0000000 29.4670000 29.4670000 26.7880000
|
||||||
|
648 648 1 0.0000000 29.4670000 29.4670000 32.1460000
|
||||||
|
649 649 1 0.0000000 0.0000000 5.3580000 5.3580000
|
||||||
|
650 650 1 0.0000000 0.0000000 5.3580000 10.7150000
|
||||||
|
651 651 1 0.0000000 0.0000000 5.3580000 16.0730000
|
||||||
|
652 652 1 0.0000000 0.0000000 5.3580000 21.4310000
|
||||||
|
653 653 1 0.0000000 0.0000000 5.3580000 26.7880000
|
||||||
|
654 654 1 0.0000000 0.0000000 5.3580000 32.1460000
|
||||||
|
655 655 1 0.0000000 0.0000000 10.7150000 5.3580000
|
||||||
|
656 656 1 0.0000000 0.0000000 10.7150000 10.7150000
|
||||||
|
657 657 1 0.0000000 0.0000000 10.7150000 16.0730000
|
||||||
|
658 658 1 0.0000000 0.0000000 10.7150000 21.4310000
|
||||||
|
659 659 1 0.0000000 0.0000000 10.7150000 26.7880000
|
||||||
|
660 660 1 0.0000000 0.0000000 10.7150000 32.1460000
|
||||||
|
661 661 1 0.0000000 0.0000000 16.0730000 5.3580000
|
||||||
|
662 662 1 0.0000000 0.0000000 16.0730000 10.7150000
|
||||||
|
663 663 1 0.0000000 0.0000000 16.0730000 16.0730000
|
||||||
|
664 664 1 0.0000000 0.0000000 16.0730000 21.4310000
|
||||||
|
665 665 1 0.0000000 0.0000000 16.0730000 26.7880000
|
||||||
|
666 666 1 0.0000000 0.0000000 16.0730000 32.1460000
|
||||||
|
667 667 1 0.0000000 0.0000000 21.4310000 5.3580000
|
||||||
|
668 668 1 0.0000000 0.0000000 21.4310000 10.7150000
|
||||||
|
669 669 1 0.0000000 0.0000000 21.4310000 16.0730000
|
||||||
|
670 670 1 0.0000000 0.0000000 21.4310000 21.4310000
|
||||||
|
671 671 1 0.0000000 0.0000000 21.4310000 26.7880000
|
||||||
|
672 672 1 0.0000000 0.0000000 21.4310000 32.1460000
|
||||||
|
673 673 1 0.0000000 0.0000000 26.7880000 5.3580000
|
||||||
|
674 674 1 0.0000000 0.0000000 26.7880000 10.7150000
|
||||||
|
675 675 1 0.0000000 0.0000000 26.7880000 16.0730000
|
||||||
|
676 676 1 0.0000000 0.0000000 26.7880000 21.4310000
|
||||||
|
677 677 1 0.0000000 0.0000000 26.7880000 26.7880000
|
||||||
|
678 678 1 0.0000000 0.0000000 26.7880000 32.1460000
|
||||||
|
679 679 1 0.0000000 0.0000000 32.1460000 5.3580000
|
||||||
|
680 680 1 0.0000000 0.0000000 32.1460000 10.7150000
|
||||||
|
681 681 1 0.0000000 0.0000000 32.1460000 16.0730000
|
||||||
|
682 682 1 0.0000000 0.0000000 32.1460000 21.4310000
|
||||||
|
683 683 1 0.0000000 0.0000000 32.1460000 26.7880000
|
||||||
|
684 684 1 0.0000000 0.0000000 32.1460000 32.1460000
|
||||||
|
685 685 1 0.0000000 5.3580000 5.3580000 5.3580000
|
||||||
|
686 686 1 0.0000000 5.3580000 5.3580000 10.7150000
|
||||||
|
687 687 1 0.0000000 5.3580000 5.3580000 16.0730000
|
||||||
|
688 688 1 0.0000000 5.3580000 5.3580000 21.4310000
|
||||||
|
689 689 1 0.0000000 5.3580000 5.3580000 26.7880000
|
||||||
|
690 690 1 0.0000000 5.3580000 5.3580000 32.1460000
|
||||||
|
691 691 1 0.0000000 5.3580000 10.7150000 5.3580000
|
||||||
|
692 692 1 0.0000000 5.3580000 10.7150000 10.7150000
|
||||||
|
693 693 1 0.0000000 5.3580000 10.7150000 16.0730000
|
||||||
|
694 694 1 0.0000000 5.3580000 10.7150000 21.4310000
|
||||||
|
695 695 1 0.0000000 5.3580000 10.7150000 26.7880000
|
||||||
|
696 696 1 0.0000000 5.3580000 10.7150000 32.1460000
|
||||||
|
697 697 1 0.0000000 5.3580000 16.0730000 5.3580000
|
||||||
|
698 698 1 0.0000000 5.3580000 16.0730000 10.7150000
|
||||||
|
699 699 1 0.0000000 5.3580000 16.0730000 16.0730000
|
||||||
|
700 700 1 0.0000000 5.3580000 16.0730000 21.4310000
|
||||||
|
701 701 1 0.0000000 5.3580000 16.0730000 26.7880000
|
||||||
|
702 702 1 0.0000000 5.3580000 16.0730000 32.1460000
|
||||||
|
703 703 1 0.0000000 5.3580000 21.4310000 5.3580000
|
||||||
|
704 704 1 0.0000000 5.3580000 21.4310000 10.7150000
|
||||||
|
705 705 1 0.0000000 5.3580000 21.4310000 16.0730000
|
||||||
|
706 706 1 0.0000000 5.3580000 21.4310000 21.4310000
|
||||||
|
707 707 1 0.0000000 5.3580000 21.4310000 26.7880000
|
||||||
|
708 708 1 0.0000000 5.3580000 21.4310000 32.1460000
|
||||||
|
709 709 1 0.0000000 5.3580000 26.7880000 5.3580000
|
||||||
|
710 710 1 0.0000000 5.3580000 26.7880000 10.7150000
|
||||||
|
711 711 1 0.0000000 5.3580000 26.7880000 16.0730000
|
||||||
|
712 712 1 0.0000000 5.3580000 26.7880000 21.4310000
|
||||||
|
713 713 1 0.0000000 5.3580000 26.7880000 26.7880000
|
||||||
|
714 714 1 0.0000000 5.3580000 26.7880000 32.1460000
|
||||||
|
715 715 1 0.0000000 5.3580000 32.1460000 5.3580000
|
||||||
|
716 716 1 0.0000000 5.3580000 32.1460000 10.7150000
|
||||||
|
717 717 1 0.0000000 5.3580000 32.1460000 16.0730000
|
||||||
|
718 718 1 0.0000000 5.3580000 32.1460000 21.4310000
|
||||||
|
719 719 1 0.0000000 5.3580000 32.1460000 26.7880000
|
||||||
|
720 720 1 0.0000000 5.3580000 32.1460000 32.1460000
|
||||||
|
721 721 1 0.0000000 10.7150000 5.3580000 5.3580000
|
||||||
|
722 722 1 0.0000000 10.7150000 5.3580000 10.7150000
|
||||||
|
723 723 1 0.0000000 10.7150000 5.3580000 16.0730000
|
||||||
|
724 724 1 0.0000000 10.7150000 5.3580000 21.4310000
|
||||||
|
725 725 1 0.0000000 10.7150000 5.3580000 26.7880000
|
||||||
|
726 726 1 0.0000000 10.7150000 5.3580000 32.1460000
|
||||||
|
727 727 1 0.0000000 10.7150000 10.7150000 5.3580000
|
||||||
|
728 728 1 0.0000000 10.7150000 10.7150000 10.7150000
|
||||||
|
729 729 1 0.0000000 10.7150000 10.7150000 16.0730000
|
||||||
|
730 730 1 0.0000000 10.7150000 10.7150000 21.4310000
|
||||||
|
731 731 1 0.0000000 10.7150000 10.7150000 26.7880000
|
||||||
|
732 732 1 0.0000000 10.7150000 10.7150000 32.1460000
|
||||||
|
733 733 1 0.0000000 10.7150000 16.0730000 5.3580000
|
||||||
|
734 734 1 0.0000000 10.7150000 16.0730000 10.7150000
|
||||||
|
735 735 1 0.0000000 10.7150000 16.0730000 16.0730000
|
||||||
|
736 736 1 0.0000000 10.7150000 16.0730000 21.4310000
|
||||||
|
737 737 1 0.0000000 10.7150000 16.0730000 26.7880000
|
||||||
|
738 738 1 0.0000000 10.7150000 16.0730000 32.1460000
|
||||||
|
739 739 1 0.0000000 10.7150000 21.4310000 5.3580000
|
||||||
|
740 740 1 0.0000000 10.7150000 21.4310000 10.7150000
|
||||||
|
741 741 1 0.0000000 10.7150000 21.4310000 16.0730000
|
||||||
|
742 742 1 0.0000000 10.7150000 21.4310000 21.4310000
|
||||||
|
743 743 1 0.0000000 10.7150000 21.4310000 26.7880000
|
||||||
|
744 744 1 0.0000000 10.7150000 21.4310000 32.1460000
|
||||||
|
745 745 1 0.0000000 10.7150000 26.7880000 5.3580000
|
||||||
|
746 746 1 0.0000000 10.7150000 26.7880000 10.7150000
|
||||||
|
747 747 1 0.0000000 10.7150000 26.7880000 16.0730000
|
||||||
|
748 748 1 0.0000000 10.7150000 26.7880000 21.4310000
|
||||||
|
749 749 1 0.0000000 10.7150000 26.7880000 26.7880000
|
||||||
|
750 750 1 0.0000000 10.7150000 26.7880000 32.1460000
|
||||||
|
751 751 1 0.0000000 10.7150000 32.1460000 5.3580000
|
||||||
|
752 752 1 0.0000000 10.7150000 32.1460000 10.7150000
|
||||||
|
753 753 1 0.0000000 10.7150000 32.1460000 16.0730000
|
||||||
|
754 754 1 0.0000000 10.7150000 32.1460000 21.4310000
|
||||||
|
755 755 1 0.0000000 10.7150000 32.1460000 26.7880000
|
||||||
|
756 756 1 0.0000000 10.7150000 32.1460000 32.1460000
|
||||||
|
757 757 1 0.0000000 16.0730000 5.3580000 5.3580000
|
||||||
|
758 758 1 0.0000000 16.0730000 5.3580000 10.7150000
|
||||||
|
759 759 1 0.0000000 16.0730000 5.3580000 16.0730000
|
||||||
|
760 760 1 0.0000000 16.0730000 5.3580000 21.4310000
|
||||||
|
761 761 1 0.0000000 16.0730000 5.3580000 26.7880000
|
||||||
|
762 762 1 0.0000000 16.0730000 5.3580000 32.1460000
|
||||||
|
763 763 1 0.0000000 16.0730000 10.7150000 5.3580000
|
||||||
|
764 764 1 0.0000000 16.0730000 10.7150000 10.7150000
|
||||||
|
765 765 1 0.0000000 16.0730000 10.7150000 16.0730000
|
||||||
|
766 766 1 0.0000000 16.0730000 10.7150000 21.4310000
|
||||||
|
767 767 1 0.0000000 16.0730000 10.7150000 26.7880000
|
||||||
|
768 768 1 0.0000000 16.0730000 10.7150000 32.1460000
|
||||||
|
769 769 1 0.0000000 16.0730000 16.0730000 5.3580000
|
||||||
|
770 770 1 0.0000000 16.0730000 16.0730000 10.7150000
|
||||||
|
771 771 1 0.0000000 16.0730000 16.0730000 16.0730000
|
||||||
|
772 772 1 0.0000000 16.0730000 16.0730000 21.4310000
|
||||||
|
773 773 1 0.0000000 16.0730000 16.0730000 26.7880000
|
||||||
|
774 774 1 0.0000000 16.0730000 16.0730000 32.1460000
|
||||||
|
775 775 1 0.0000000 16.0730000 21.4310000 5.3580000
|
||||||
|
776 776 1 0.0000000 16.0730000 21.4310000 10.7150000
|
||||||
|
777 777 1 0.0000000 16.0730000 21.4310000 16.0730000
|
||||||
|
778 778 1 0.0000000 16.0730000 21.4310000 21.4310000
|
||||||
|
779 779 1 0.0000000 16.0730000 21.4310000 26.7880000
|
||||||
|
780 780 1 0.0000000 16.0730000 21.4310000 32.1460000
|
||||||
|
781 781 1 0.0000000 16.0730000 26.7880000 5.3580000
|
||||||
|
782 782 1 0.0000000 16.0730000 26.7880000 10.7150000
|
||||||
|
783 783 1 0.0000000 16.0730000 26.7880000 16.0730000
|
||||||
|
784 784 1 0.0000000 16.0730000 26.7880000 21.4310000
|
||||||
|
785 785 1 0.0000000 16.0730000 26.7880000 26.7880000
|
||||||
|
786 786 1 0.0000000 16.0730000 26.7880000 32.1460000
|
||||||
|
787 787 1 0.0000000 16.0730000 32.1460000 5.3580000
|
||||||
|
788 788 1 0.0000000 16.0730000 32.1460000 10.7150000
|
||||||
|
789 789 1 0.0000000 16.0730000 32.1460000 16.0730000
|
||||||
|
790 790 1 0.0000000 16.0730000 32.1460000 21.4310000
|
||||||
|
791 791 1 0.0000000 16.0730000 32.1460000 26.7880000
|
||||||
|
792 792 1 0.0000000 16.0730000 32.1460000 32.1460000
|
||||||
|
793 793 1 0.0000000 21.4310000 5.3580000 5.3580000
|
||||||
|
794 794 1 0.0000000 21.4310000 5.3580000 10.7150000
|
||||||
|
795 795 1 0.0000000 21.4310000 5.3580000 16.0730000
|
||||||
|
796 796 1 0.0000000 21.4310000 5.3580000 21.4310000
|
||||||
|
797 797 1 0.0000000 21.4310000 5.3580000 26.7880000
|
||||||
|
798 798 1 0.0000000 21.4310000 5.3580000 32.1460000
|
||||||
|
799 799 1 0.0000000 21.4310000 10.7150000 5.3580000
|
||||||
|
800 800 1 0.0000000 21.4310000 10.7150000 10.7150000
|
||||||
|
801 801 1 0.0000000 21.4310000 10.7150000 16.0730000
|
||||||
|
802 802 1 0.0000000 21.4310000 10.7150000 21.4310000
|
||||||
|
803 803 1 0.0000000 21.4310000 10.7150000 26.7880000
|
||||||
|
804 804 1 0.0000000 21.4310000 10.7150000 32.1460000
|
||||||
|
805 805 1 0.0000000 21.4310000 16.0730000 5.3580000
|
||||||
|
806 806 1 0.0000000 21.4310000 16.0730000 10.7150000
|
||||||
|
807 807 1 0.0000000 21.4310000 16.0730000 16.0730000
|
||||||
|
808 808 1 0.0000000 21.4310000 16.0730000 21.4310000
|
||||||
|
809 809 1 0.0000000 21.4310000 16.0730000 26.7880000
|
||||||
|
810 810 1 0.0000000 21.4310000 16.0730000 32.1460000
|
||||||
|
811 811 1 0.0000000 21.4310000 21.4310000 5.3580000
|
||||||
|
812 812 1 0.0000000 21.4310000 21.4310000 10.7150000
|
||||||
|
813 813 1 0.0000000 21.4310000 21.4310000 16.0730000
|
||||||
|
814 814 1 0.0000000 21.4310000 21.4310000 21.4310000
|
||||||
|
815 815 1 0.0000000 21.4310000 21.4310000 26.7880000
|
||||||
|
816 816 1 0.0000000 21.4310000 21.4310000 32.1460000
|
||||||
|
817 817 1 0.0000000 21.4310000 26.7880000 5.3580000
|
||||||
|
818 818 1 0.0000000 21.4310000 26.7880000 10.7150000
|
||||||
|
819 819 1 0.0000000 21.4310000 26.7880000 16.0730000
|
||||||
|
820 820 1 0.0000000 21.4310000 26.7880000 21.4310000
|
||||||
|
821 821 1 0.0000000 21.4310000 26.7880000 26.7880000
|
||||||
|
822 822 1 0.0000000 21.4310000 26.7880000 32.1460000
|
||||||
|
823 823 1 0.0000000 21.4310000 32.1460000 5.3580000
|
||||||
|
824 824 1 0.0000000 21.4310000 32.1460000 10.7150000
|
||||||
|
825 825 1 0.0000000 21.4310000 32.1460000 16.0730000
|
||||||
|
826 826 1 0.0000000 21.4310000 32.1460000 21.4310000
|
||||||
|
827 827 1 0.0000000 21.4310000 32.1460000 26.7880000
|
||||||
|
828 828 1 0.0000000 21.4310000 32.1460000 32.1460000
|
||||||
|
829 829 1 0.0000000 26.7880000 5.3580000 5.3580000
|
||||||
|
830 830 1 0.0000000 26.7880000 5.3580000 10.7150000
|
||||||
|
831 831 1 0.0000000 26.7880000 5.3580000 16.0730000
|
||||||
|
832 832 1 0.0000000 26.7880000 5.3580000 21.4310000
|
||||||
|
833 833 1 0.0000000 26.7880000 5.3580000 26.7880000
|
||||||
|
834 834 1 0.0000000 26.7880000 5.3580000 32.1460000
|
||||||
|
835 835 1 0.0000000 26.7880000 10.7150000 5.3580000
|
||||||
|
836 836 1 0.0000000 26.7880000 10.7150000 10.7150000
|
||||||
|
837 837 1 0.0000000 26.7880000 10.7150000 16.0730000
|
||||||
|
838 838 1 0.0000000 26.7880000 10.7150000 21.4310000
|
||||||
|
839 839 1 0.0000000 26.7880000 10.7150000 26.7880000
|
||||||
|
840 840 1 0.0000000 26.7880000 10.7150000 32.1460000
|
||||||
|
841 841 1 0.0000000 26.7880000 16.0730000 5.3580000
|
||||||
|
842 842 1 0.0000000 26.7880000 16.0730000 10.7150000
|
||||||
|
843 843 1 0.0000000 26.7880000 16.0730000 16.0730000
|
||||||
|
844 844 1 0.0000000 26.7880000 16.0730000 21.4310000
|
||||||
|
845 845 1 0.0000000 26.7880000 16.0730000 26.7880000
|
||||||
|
846 846 1 0.0000000 26.7880000 16.0730000 32.1460000
|
||||||
|
847 847 1 0.0000000 26.7880000 21.4310000 5.3580000
|
||||||
|
848 848 1 0.0000000 26.7880000 21.4310000 10.7150000
|
||||||
|
849 849 1 0.0000000 26.7880000 21.4310000 16.0730000
|
||||||
|
850 850 1 0.0000000 26.7880000 21.4310000 21.4310000
|
||||||
|
851 851 1 0.0000000 26.7880000 21.4310000 26.7880000
|
||||||
|
852 852 1 0.0000000 26.7880000 21.4310000 32.1460000
|
||||||
|
853 853 1 0.0000000 26.7880000 26.7880000 5.3580000
|
||||||
|
854 854 1 0.0000000 26.7880000 26.7880000 10.7150000
|
||||||
|
855 855 1 0.0000000 26.7880000 26.7880000 16.0730000
|
||||||
|
856 856 1 0.0000000 26.7880000 26.7880000 21.4310000
|
||||||
|
857 857 1 0.0000000 26.7880000 26.7880000 26.7880000
|
||||||
|
858 858 1 0.0000000 26.7880000 26.7880000 32.1460000
|
||||||
|
859 859 1 0.0000000 26.7880000 32.1460000 5.3580000
|
||||||
|
860 860 1 0.0000000 26.7880000 32.1460000 10.7150000
|
||||||
|
861 861 1 0.0000000 26.7880000 32.1460000 16.0730000
|
||||||
|
862 862 1 0.0000000 26.7880000 32.1460000 21.4310000
|
||||||
|
863 863 1 0.0000000 26.7880000 32.1460000 26.7880000
|
||||||
|
864 864 1 0.0000000 26.7880000 32.1460000 32.1460000
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
#############################
|
||||||
|
#Atoms types - mass - charge#
|
||||||
|
#############################
|
||||||
|
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
|
||||||
|
|
||||||
|
variable Ar equal 1
|
||||||
|
|
||||||
|
#############
|
||||||
|
#Atom Masses#
|
||||||
|
#############
|
||||||
|
|
||||||
|
mass ${Ar} 39.903
|
||||||
|
|
||||||
|
###########################
|
||||||
|
#Pair Potentials - Tersoff#
|
||||||
|
###########################
|
||||||
|
|
||||||
|
pair_style lj/cubic
|
||||||
|
pair_coeff * * 0.0102701 3.42
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
# GJF-2GJ thermostat
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
|
||||||
|
boundary p p p
|
||||||
|
read_data argon.lmp
|
||||||
|
|
||||||
|
include ff-argon.lmp
|
||||||
|
|
||||||
|
velocity all create 10 2357 mom yes dist gaussian
|
||||||
|
|
||||||
|
neighbor 1 bin
|
||||||
|
|
||||||
|
timestep 0.1
|
||||||
|
|
||||||
|
fix nve all nve
|
||||||
|
fix lang all langevin 10 10 1 26488 gjf vfull
|
||||||
|
|
||||||
|
thermo 200
|
||||||
|
run 50000
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
# GJF-2GJ thermostat
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
|
||||||
|
boundary p p p
|
||||||
|
read_data argon.lmp
|
||||||
|
|
||||||
|
include ff-argon.lmp
|
||||||
|
|
||||||
|
velocity all create 10 2357 mom yes dist gaussian
|
||||||
|
|
||||||
|
neighbor 1 bin
|
||||||
|
|
||||||
|
timestep 0.1
|
||||||
|
|
||||||
|
fix nve all nve
|
||||||
|
fix lang all langevin 10 10 1 26488 gjf vhalf
|
||||||
|
|
||||||
|
thermo 200
|
||||||
|
run 50000
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,6 @@ FixLangevinKokkos<DeviceType>::FixLangevinKokkos(LAMMPS *lmp, int narg, char **a
|
||||||
k_ratio.template modify<LMPHostType>();
|
k_ratio.template modify<LMPHostType>();
|
||||||
|
|
||||||
if(gjfflag){
|
if(gjfflag){
|
||||||
nvalues = 3;
|
|
||||||
grow_arrays(atomKK->nmax);
|
grow_arrays(atomKK->nmax);
|
||||||
atom->add_callback(0);
|
atom->add_callback(0);
|
||||||
// initialize franprev to zero
|
// initialize franprev to zero
|
||||||
|
@ -69,8 +68,12 @@ FixLangevinKokkos<DeviceType>::FixLangevinKokkos(LAMMPS *lmp, int narg, char **a
|
||||||
franprev[i][0] = 0.0;
|
franprev[i][0] = 0.0;
|
||||||
franprev[i][1] = 0.0;
|
franprev[i][1] = 0.0;
|
||||||
franprev[i][2] = 0.0;
|
franprev[i][2] = 0.0;
|
||||||
|
lv[i][0] = 0.0;
|
||||||
|
lv[i][1] = 0.0;
|
||||||
|
lv[i][2] = 0.0;
|
||||||
}
|
}
|
||||||
k_franprev.template modify<LMPHostType>();
|
k_franprev.template modify<LMPHostType>();
|
||||||
|
k_lv.template modify<LMPHostType>();
|
||||||
}
|
}
|
||||||
if(zeroflag){
|
if(zeroflag){
|
||||||
k_fsumall = tdual_double_1d_3n("langevin:fsumall");
|
k_fsumall = tdual_double_1d_3n("langevin:fsumall");
|
||||||
|
@ -94,6 +97,7 @@ FixLangevinKokkos<DeviceType>::~FixLangevinKokkos()
|
||||||
memoryKK->destroy_kokkos(k_ratio,ratio);
|
memoryKK->destroy_kokkos(k_ratio,ratio);
|
||||||
memoryKK->destroy_kokkos(k_flangevin,flangevin);
|
memoryKK->destroy_kokkos(k_flangevin,flangevin);
|
||||||
if(gjfflag) memoryKK->destroy_kokkos(k_franprev,franprev);
|
if(gjfflag) memoryKK->destroy_kokkos(k_franprev,franprev);
|
||||||
|
if(gjfflag) memoryKK->destroy_kokkos(k_lv,lv);
|
||||||
memoryKK->destroy_kokkos(k_tforce,tforce);
|
memoryKK->destroy_kokkos(k_tforce,tforce);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,6 +111,10 @@ void FixLangevinKokkos<DeviceType>::init()
|
||||||
error->all(FLERR,"Fix langevin omega is not yet implemented with kokkos");
|
error->all(FLERR,"Fix langevin omega is not yet implemented with kokkos");
|
||||||
if(ascale)
|
if(ascale)
|
||||||
error->all(FLERR,"Fix langevin angmom is not yet implemented with kokkos");
|
error->all(FLERR,"Fix langevin angmom is not yet implemented with kokkos");
|
||||||
|
if(gjfflag && tbiasflag)
|
||||||
|
error->all(FLERR,"Fix langevin gjf + tbias is not yet implemented with kokkos");
|
||||||
|
if(gjfflag && tbiasflag)
|
||||||
|
error->warning(FLERR,"Fix langevin gjf + kokkos is not implemented with random gaussians");
|
||||||
|
|
||||||
// prefactors are modified in the init
|
// prefactors are modified in the init
|
||||||
k_gfactor1.template modify<LMPHostType>();
|
k_gfactor1.template modify<LMPHostType>();
|
||||||
|
@ -121,6 +129,40 @@ void FixLangevinKokkos<DeviceType>::grow_arrays(int nmax)
|
||||||
memoryKK->grow_kokkos(k_franprev,franprev,nmax,3,"langevin:franprev");
|
memoryKK->grow_kokkos(k_franprev,franprev,nmax,3,"langevin:franprev");
|
||||||
d_franprev = k_franprev.template view<DeviceType>();
|
d_franprev = k_franprev.template view<DeviceType>();
|
||||||
h_franprev = k_franprev.template view<LMPHostType>();
|
h_franprev = k_franprev.template view<LMPHostType>();
|
||||||
|
memoryKK->grow_kokkos(k_lv,lv,nmax,3,"langevin:lv");
|
||||||
|
d_lv = k_lv.template view<DeviceType>();
|
||||||
|
h_lv = k_lv.template view<LMPHostType>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
template<class DeviceType>
|
||||||
|
void FixLangevinKokkos<DeviceType>::initial_integrate(int vflag)
|
||||||
|
{
|
||||||
|
atomKK->sync(execution_space,datamask_read);
|
||||||
|
atomKK->modified(execution_space,datamask_modify);
|
||||||
|
|
||||||
|
v = atomKK->k_v.view<DeviceType>();
|
||||||
|
f = atomKK->k_f.view<DeviceType>();
|
||||||
|
int nlocal = atomKK->nlocal;
|
||||||
|
if (igroup == atomKK->firstgroup) nlocal = atomKK->nfirst;
|
||||||
|
|
||||||
|
FixLangevinKokkosInitialIntegrateFunctor<DeviceType> functor(this);
|
||||||
|
Kokkos::parallel_for(nlocal,functor);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class DeviceType>
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void FixLangevinKokkos<DeviceType>::initial_integrate_item(int i) const
|
||||||
|
{
|
||||||
|
if (mask[i] & groupbit) {
|
||||||
|
f(i,0) /= gjfa;
|
||||||
|
f(i,1) /= gjfa;
|
||||||
|
f(i,2) /= gjfa;
|
||||||
|
v(i,0) = d_lv(i,0);
|
||||||
|
v(i,1) = d_lv(i,1);
|
||||||
|
v(i,2) = d_lv(i,2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
@ -140,6 +182,7 @@ void FixLangevinKokkos<DeviceType>::post_force(int vflag)
|
||||||
k_gfactor2.template sync<DeviceType>();
|
k_gfactor2.template sync<DeviceType>();
|
||||||
k_ratio.template sync<DeviceType>();
|
k_ratio.template sync<DeviceType>();
|
||||||
if(gjfflag) k_franprev.template sync<DeviceType>();
|
if(gjfflag) k_franprev.template sync<DeviceType>();
|
||||||
|
if(gjfflag) k_lv.template sync<DeviceType>();
|
||||||
|
|
||||||
boltz = force->boltz;
|
boltz = force->boltz;
|
||||||
dt = update->dt;
|
dt = update->dt;
|
||||||
|
@ -177,7 +220,7 @@ void FixLangevinKokkos<DeviceType>::post_force(int vflag)
|
||||||
atomKK->sync(temperature->execution_space,temperature->datamask_read);
|
atomKK->sync(temperature->execution_space,temperature->datamask_read);
|
||||||
temperature->compute_scalar();
|
temperature->compute_scalar();
|
||||||
temperature->remove_bias_all(); // modifies velocities
|
temperature->remove_bias_all(); // modifies velocities
|
||||||
// if temeprature compute is kokkosized host-devcie comm won't be needed
|
// if temeprature compute is kokkosized host-device comm won't be needed
|
||||||
atomKK->modified(temperature->execution_space,temperature->datamask_modify);
|
atomKK->modified(temperature->execution_space,temperature->datamask_modify);
|
||||||
atomKK->sync(execution_space,temperature->datamask_modify);
|
atomKK->sync(execution_space,temperature->datamask_modify);
|
||||||
}
|
}
|
||||||
|
@ -481,6 +524,7 @@ void FixLangevinKokkos<DeviceType>::post_force(int vflag)
|
||||||
|
|
||||||
// set modify flags for the views modified in post_force functor
|
// set modify flags for the views modified in post_force functor
|
||||||
if (gjfflag) k_franprev.template modify<DeviceType>();
|
if (gjfflag) k_franprev.template modify<DeviceType>();
|
||||||
|
if (gjfflag) k_lv.template modify<DeviceType>();
|
||||||
if (tallyflag) k_flangevin.template modify<DeviceType>();
|
if (tallyflag) k_flangevin.template modify<DeviceType>();
|
||||||
|
|
||||||
// set total force to zero
|
// set total force to zero
|
||||||
|
@ -550,6 +594,10 @@ FSUM FixLangevinKokkos<DeviceType>::post_force_item(int i) const
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Tp_GJF) {
|
if (Tp_GJF) {
|
||||||
|
d_lv(i,0) = gjfsib*v(i,0);
|
||||||
|
d_lv(i,1) = gjfsib*v(i,1);
|
||||||
|
d_lv(i,2) = gjfsib*v(i,2);
|
||||||
|
|
||||||
fswap = 0.5*(fran[0]+d_franprev(i,0));
|
fswap = 0.5*(fran[0]+d_franprev(i,0));
|
||||||
d_franprev(i,0) = fran[0];
|
d_franprev(i,0) = fran[0];
|
||||||
fran[0] = fswap;
|
fran[0] = fswap;
|
||||||
|
@ -560,15 +608,15 @@ FSUM FixLangevinKokkos<DeviceType>::post_force_item(int i) const
|
||||||
d_franprev(i,2) = fran[2];
|
d_franprev(i,2) = fran[2];
|
||||||
fran[2] = fswap;
|
fran[2] = fswap;
|
||||||
|
|
||||||
fdrag[0] *= gjffac;
|
fdrag[0] *= gjfa;
|
||||||
fdrag[1] *= gjffac;
|
fdrag[1] *= gjfa;
|
||||||
fdrag[2] *= gjffac;
|
fdrag[2] *= gjfa;
|
||||||
fran[0] *= gjffac;
|
fran[0] *= gjfa;
|
||||||
fran[1] *= gjffac;
|
fran[1] *= gjfa;
|
||||||
fran[2] *= gjffac;
|
fran[2] *= gjfa;
|
||||||
f(i,0) *= gjffac;
|
f(i,0) *= gjfa;
|
||||||
f(i,1) *= gjffac;
|
f(i,1) *= gjfa;
|
||||||
f(i,2) *= gjffac;
|
f(i,2) *= gjfa;
|
||||||
}
|
}
|
||||||
|
|
||||||
f(i,0) += fdrag[0] + fran[0];
|
f(i,0) += fdrag[0] + fran[0];
|
||||||
|
@ -576,6 +624,17 @@ FSUM FixLangevinKokkos<DeviceType>::post_force_item(int i) const
|
||||||
f(i,2) += fdrag[2] + fran[2];
|
f(i,2) += fdrag[2] + fran[2];
|
||||||
|
|
||||||
if (Tp_TALLY) {
|
if (Tp_TALLY) {
|
||||||
|
if (Tp_GJF){
|
||||||
|
fdrag[0] = gamma1*d_lv(i,0)/gjfsib/gjfsib;
|
||||||
|
fdrag[1] = gamma1*d_lv(i,1)/gjfsib/gjfsib;
|
||||||
|
fdrag[2] = gamma1*d_lv(i,2)/gjfsib/gjfsib;
|
||||||
|
fswap = (2*fran[0]/gjfa - d_franprev(i,0))/gjfsib;
|
||||||
|
fran[0] = fswap;
|
||||||
|
fswap = (2*fran[1]/gjfa - d_franprev(i,1))/gjfsib;
|
||||||
|
fran[1] = fswap;
|
||||||
|
fswap = (2*fran[2]/gjfa - d_franprev(i,2))/gjfsib;
|
||||||
|
fran[2] = fswap;
|
||||||
|
}
|
||||||
d_flangevin(i,0) = fdrag[0] + fran[0];
|
d_flangevin(i,0) = fdrag[0] + fran[0];
|
||||||
d_flangevin(i,1) = fdrag[1] + fran[1];
|
d_flangevin(i,1) = fdrag[1] + fran[1];
|
||||||
d_flangevin(i,2) = fdrag[2] + fran[2];
|
d_flangevin(i,2) = fdrag[2] + fran[2];
|
||||||
|
@ -719,9 +778,10 @@ double FixLangevinKokkos<DeviceType>::compute_energy_item(int i) const
|
||||||
template<class DeviceType>
|
template<class DeviceType>
|
||||||
void FixLangevinKokkos<DeviceType>::end_of_step()
|
void FixLangevinKokkos<DeviceType>::end_of_step()
|
||||||
{
|
{
|
||||||
if (!tallyflag) return;
|
if (!tallyflag && !gjfflag) return;
|
||||||
|
|
||||||
v = atomKK->k_v.template view<DeviceType>();
|
v = atomKK->k_v.template view<DeviceType>();
|
||||||
|
f = atomKK->k_f.template view<DeviceType>();
|
||||||
mask = atomKK->k_mask.template view<DeviceType>();
|
mask = atomKK->k_mask.template view<DeviceType>();
|
||||||
|
|
||||||
atomKK->sync(execution_space,V_MASK | MASK_MASK);
|
atomKK->sync(execution_space,V_MASK | MASK_MASK);
|
||||||
|
@ -733,9 +793,81 @@ void FixLangevinKokkos<DeviceType>::end_of_step()
|
||||||
FixLangevinKokkosTallyEnergyFunctor<DeviceType> tally_functor(this);
|
FixLangevinKokkosTallyEnergyFunctor<DeviceType> tally_functor(this);
|
||||||
Kokkos::parallel_reduce(nlocal,tally_functor,energy_onestep);
|
Kokkos::parallel_reduce(nlocal,tally_functor,energy_onestep);
|
||||||
|
|
||||||
|
if (gjfflag){
|
||||||
|
if (rmass.data()) {
|
||||||
|
FixLangevinKokkosEndOfStepFunctor<DeviceType,1> functor(this);
|
||||||
|
Kokkos::parallel_for(nlocal,functor);
|
||||||
|
} else {
|
||||||
|
mass = atomKK->k_mass.view<DeviceType>();
|
||||||
|
FixLangevinKokkosEndOfStepFunctor<DeviceType,0> functor(this);
|
||||||
|
Kokkos::parallel_for(nlocal,functor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
energy += energy_onestep*update->dt;
|
energy += energy_onestep*update->dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class DeviceType>
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void FixLangevinKokkos<DeviceType>::end_of_step_item(int i) const {
|
||||||
|
double tmp[3];
|
||||||
|
if (mask[i] & groupbit) {
|
||||||
|
const double dtfm = force->ftm2v * 0.5 * dt / mass[type[i]];
|
||||||
|
tmp[0] = v(i,0);
|
||||||
|
tmp[1] = v(i,1);
|
||||||
|
tmp[2] = v(i,2);
|
||||||
|
if (!osflag){
|
||||||
|
v(i,0) = d_lv(i,0);
|
||||||
|
v(i,1) = d_lv(i,1);
|
||||||
|
v(i,2) = d_lv(i,2);
|
||||||
|
} else {
|
||||||
|
v(i,0) = 0.5 * gjfsib * gjfsib * (v(i,0) + dtfm * f(i,0) / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * d_flangevin(i,0) - d_franprev(i,0)) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * d_lv(i,0);
|
||||||
|
v(i,1) = 0.5 * gjfsib * gjfsib * (v(i,1) + dtfm * f(i,1) / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * d_flangevin(i,0) - d_franprev(i,1)) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * d_lv(i,1);
|
||||||
|
v(i,2) = 0.5 * gjfsib * gjfsib * (v(i,2) + dtfm * f(i,2) / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * d_flangevin(i,0) - d_franprev(i,2)) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * d_lv(i,2);
|
||||||
|
}
|
||||||
|
d_lv(i,0) = tmp[0];
|
||||||
|
d_lv(i,1) = tmp[1];
|
||||||
|
d_lv(i,2) = tmp[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class DeviceType>
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void FixLangevinKokkos<DeviceType>::end_of_step_rmass_item(int i) const
|
||||||
|
{
|
||||||
|
double tmp[3];
|
||||||
|
if (mask[i] & groupbit) {
|
||||||
|
const double dtfm = force->ftm2v * 0.5 * dt / rmass[i];
|
||||||
|
tmp[0] = v(i,0);
|
||||||
|
tmp[1] = v(i,1);
|
||||||
|
tmp[2] = v(i,2);
|
||||||
|
if (!osflag){
|
||||||
|
v(i,0) = d_lv(i,0);
|
||||||
|
v(i,1) = d_lv(i,1);
|
||||||
|
v(i,2) = d_lv(i,2);
|
||||||
|
} else {
|
||||||
|
v(i,0) = 0.5 * gjfsib * gjfsib * (v(i,0) + dtfm * f(i,0) / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * d_flangevin(i,0) - d_franprev(i,0)) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * d_lv(i,0);
|
||||||
|
v(i,1) = 0.5 * gjfsib * gjfsib * (v(i,1) + dtfm * f(i,1) / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * d_flangevin(i,1) - d_franprev(i,1)) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * d_lv(i,1);
|
||||||
|
v(i,2) = 0.5 * gjfsib * gjfsib * (v(i,2) + dtfm * f(i,2) / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * d_flangevin(i,2) - d_franprev(i,2)) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * d_lv(i,2);
|
||||||
|
}
|
||||||
|
d_lv(i,0) = tmp[0];
|
||||||
|
d_lv(i,1) = tmp[1];
|
||||||
|
d_lv(i,2) = tmp[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
copy values within local atom-based array
|
copy values within local atom-based array
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
@ -743,10 +875,15 @@ void FixLangevinKokkos<DeviceType>::end_of_step()
|
||||||
template<class DeviceType>
|
template<class DeviceType>
|
||||||
void FixLangevinKokkos<DeviceType>::copy_arrays(int i, int j, int delflag)
|
void FixLangevinKokkos<DeviceType>::copy_arrays(int i, int j, int delflag)
|
||||||
{
|
{
|
||||||
for (int m = 0; m < nvalues; m++)
|
h_franprev(j,0) = h_franprev(i,0);
|
||||||
h_franprev(j,m) = h_franprev(i,m);
|
h_franprev(j,1) = h_franprev(i,1);
|
||||||
|
h_franprev(j,2) = h_franprev(i,2);
|
||||||
|
h_lv(j,0) = h_lv(i,0);
|
||||||
|
h_lv(j,1) = h_lv(i,1);
|
||||||
|
h_lv(j,2) = h_lv(i,2);
|
||||||
|
|
||||||
k_franprev.template modify<LMPHostType>();
|
k_franprev.template modify<LMPHostType>();
|
||||||
|
k_lv.template modify<LMPHostType>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -765,6 +902,7 @@ void FixLangevinKokkos<DeviceType>::cleanup_copy()
|
||||||
tforce = NULL;
|
tforce = NULL;
|
||||||
gjfflag = 0;
|
gjfflag = 0;
|
||||||
franprev = NULL;
|
franprev = NULL;
|
||||||
|
lv = NULL;
|
||||||
id = style = NULL;
|
id = style = NULL;
|
||||||
vatom = NULL;
|
vatom = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,6 +56,9 @@ namespace LAMMPS_NS {
|
||||||
template<class DeviceType>
|
template<class DeviceType>
|
||||||
class FixLangevinKokkos;
|
class FixLangevinKokkos;
|
||||||
|
|
||||||
|
template <class DeviceType>
|
||||||
|
class FixLangevinKokkosInitialIntegrateFunctor;
|
||||||
|
|
||||||
template<class DeviceType,int Tp_TSTYLEATOM, int Tp_GJF, int Tp_TALLY,
|
template<class DeviceType,int Tp_TSTYLEATOM, int Tp_GJF, int Tp_TALLY,
|
||||||
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
||||||
class FixLangevinKokkosPostForceFunctor;
|
class FixLangevinKokkosPostForceFunctor;
|
||||||
|
@ -72,6 +75,7 @@ namespace LAMMPS_NS {
|
||||||
|
|
||||||
void cleanup_copy();
|
void cleanup_copy();
|
||||||
void init();
|
void init();
|
||||||
|
void initial_integrate(int);
|
||||||
void post_force(int);
|
void post_force(int);
|
||||||
void reset_dt();
|
void reset_dt();
|
||||||
void grow_arrays(int);
|
void grow_arrays(int);
|
||||||
|
@ -79,6 +83,12 @@ namespace LAMMPS_NS {
|
||||||
double compute_scalar();
|
double compute_scalar();
|
||||||
void end_of_step();
|
void end_of_step();
|
||||||
|
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void initial_integrate_item(int) const;
|
||||||
|
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void initial_integrate_rmass_item(int) const;
|
||||||
|
|
||||||
template<int Tp_TSTYLEATOM, int Tp_GJF, int Tp_TALLY,
|
template<int Tp_TSTYLEATOM, int Tp_GJF, int Tp_TALLY,
|
||||||
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
||||||
KOKKOS_INLINE_FUNCTION
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
@ -90,14 +100,25 @@ namespace LAMMPS_NS {
|
||||||
KOKKOS_INLINE_FUNCTION
|
KOKKOS_INLINE_FUNCTION
|
||||||
double compute_energy_item(int) const;
|
double compute_energy_item(int) const;
|
||||||
|
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void end_of_step_item(int) const;
|
||||||
|
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void end_of_step_rmass_item(int) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class CommKokkos *commKK;
|
class CommKokkos *commKK;
|
||||||
|
|
||||||
typename ArrayTypes<DeviceType>::t_float_1d rmass;
|
typename ArrayTypes<DeviceType>::t_float_1d rmass;
|
||||||
|
typename ArrayTypes<DeviceType>::t_float_1d mass;
|
||||||
typename ArrayTypes<DeviceType>::tdual_double_2d k_franprev;
|
typename ArrayTypes<DeviceType>::tdual_double_2d k_franprev;
|
||||||
typename ArrayTypes<DeviceType>::t_double_2d d_franprev;
|
typename ArrayTypes<DeviceType>::t_double_2d d_franprev;
|
||||||
HAT::t_double_2d h_franprev;
|
HAT::t_double_2d h_franprev;
|
||||||
|
|
||||||
|
typename ArrayTypes<DeviceType>::tdual_double_2d k_lv;
|
||||||
|
typename ArrayTypes<DeviceType>::t_double_2d d_lv;
|
||||||
|
HAT::t_double_2d h_lv;
|
||||||
|
|
||||||
typename ArrayTypes<DeviceType>::tdual_double_2d k_flangevin;
|
typename ArrayTypes<DeviceType>::tdual_double_2d k_flangevin;
|
||||||
typename ArrayTypes<DeviceType>::t_double_2d d_flangevin;
|
typename ArrayTypes<DeviceType>::t_double_2d d_flangevin;
|
||||||
HAT::t_double_2d h_flangevin;
|
HAT::t_double_2d h_flangevin;
|
||||||
|
@ -130,6 +151,21 @@ namespace LAMMPS_NS {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <class DeviceType>
|
||||||
|
struct FixLangevinKokkosInitialIntegrateFunctor {
|
||||||
|
typedef DeviceType device_type ;
|
||||||
|
FixLangevinKokkos<DeviceType> c;
|
||||||
|
|
||||||
|
FixLangevinKokkosInitialIntegrateFunctor(FixLangevinKokkos<DeviceType>* c_ptr):
|
||||||
|
c(*c_ptr) {c.cleanup_copy();};
|
||||||
|
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void operator()(const int i) const {
|
||||||
|
c.initial_integrate_item(i);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
template <class DeviceType,int Tp_TSTYLEATOM, int Tp_GJF, int Tp_TALLY,
|
template <class DeviceType,int Tp_TSTYLEATOM, int Tp_GJF, int Tp_TALLY,
|
||||||
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
||||||
struct FixLangevinKokkosPostForceFunctor {
|
struct FixLangevinKokkosPostForceFunctor {
|
||||||
|
@ -207,6 +243,21 @@ namespace LAMMPS_NS {
|
||||||
update += source;
|
update += source;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <class DeviceType, int RMass>
|
||||||
|
struct FixLangevinKokkosEndOfStepFunctor {
|
||||||
|
typedef DeviceType device_type ;
|
||||||
|
FixLangevinKokkos<DeviceType> c;
|
||||||
|
|
||||||
|
FixLangevinKokkosEndOfStepFunctor(FixLangevinKokkos<DeviceType>* c_ptr):
|
||||||
|
c(*c_ptr) {c.cleanup_copy();}
|
||||||
|
|
||||||
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
void operator()(const int i) const {
|
||||||
|
if (RMass) c.end_of_step_rmass_item(i);
|
||||||
|
else c.end_of_step_item(i);
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -231,4 +282,12 @@ E: Fix langevin variable returned negative temperature
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
|
E: Fix langevin gjf with tbias is not yet implemented with kokkos
|
||||||
|
|
||||||
|
This option is not yet available.
|
||||||
|
|
||||||
|
W: Fix langevin gjf using random gaussians is not implemented with kokkos
|
||||||
|
|
||||||
|
This will most likely cause errors in kinetic fluctuations.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -14,6 +14,9 @@
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
Contributing authors: Carolyn Phillips (U Mich), reservoir energy tally
|
Contributing authors: Carolyn Phillips (U Mich), reservoir energy tally
|
||||||
Aidan Thompson (SNL) GJF formulation
|
Aidan Thompson (SNL) GJF formulation
|
||||||
|
Charles Sievers & Niels Gronbech-Jensen (UC Davis)
|
||||||
|
updated GJF formulation and included
|
||||||
|
statistically correct 2GJ velocity
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#include "fix_langevin.h"
|
#include "fix_langevin.h"
|
||||||
|
@ -35,6 +38,7 @@
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
using namespace FixConst;
|
using namespace FixConst;
|
||||||
|
@ -50,7 +54,7 @@ enum{CONSTANT,EQUAL,ATOM};
|
||||||
FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg),
|
Fix(lmp, narg, arg),
|
||||||
gjfflag(0), gfactor1(NULL), gfactor2(NULL), ratio(NULL), tstr(NULL),
|
gjfflag(0), gfactor1(NULL), gfactor2(NULL), ratio(NULL), tstr(NULL),
|
||||||
flangevin(NULL), tforce(NULL), franprev(NULL), id_temp(NULL), random(NULL)
|
flangevin(NULL), tforce(NULL), franprev(NULL), lv(NULL), id_temp(NULL), random(NULL)
|
||||||
{
|
{
|
||||||
if (narg < 7) error->all(FLERR,"Illegal fix langevin command");
|
if (narg < 7) error->all(FLERR,"Illegal fix langevin command");
|
||||||
|
|
||||||
|
@ -96,6 +100,7 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
||||||
oflag = 0;
|
oflag = 0;
|
||||||
tallyflag = 0;
|
tallyflag = 0;
|
||||||
zeroflag = 0;
|
zeroflag = 0;
|
||||||
|
osflag = 0;
|
||||||
|
|
||||||
int iarg = 7;
|
int iarg = 7;
|
||||||
while (iarg < narg) {
|
while (iarg < narg) {
|
||||||
|
@ -106,8 +111,15 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"gjf") == 0) {
|
} else if (strcmp(arg[iarg],"gjf") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix langevin command");
|
if (iarg+2 > narg) error->all(FLERR,"Illegal fix langevin command");
|
||||||
if (strcmp(arg[iarg+1],"no") == 0) gjfflag = 0;
|
if (strcmp(arg[iarg+1],"no") == 0) {gjfflag = 0; osflag = 0;}
|
||||||
else if (strcmp(arg[iarg+1],"yes") == 0) gjfflag = 1;
|
else if (strcmp(arg[iarg+1],"vfull") == 0) {
|
||||||
|
gjfflag = 1;
|
||||||
|
osflag = 1;
|
||||||
|
}
|
||||||
|
else if (strcmp(arg[iarg+1],"vhalf") == 0) {
|
||||||
|
gjfflag = 1;
|
||||||
|
osflag = 0;
|
||||||
|
}
|
||||||
else error->all(FLERR,"Illegal fix langevin command");
|
else error->all(FLERR,"Illegal fix langevin command");
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"omega") == 0) {
|
} else if (strcmp(arg[iarg],"omega") == 0) {
|
||||||
|
@ -153,6 +165,7 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
||||||
flangevin = NULL;
|
flangevin = NULL;
|
||||||
flangevin_allocated = 0;
|
flangevin_allocated = 0;
|
||||||
franprev = NULL;
|
franprev = NULL;
|
||||||
|
lv = NULL;
|
||||||
tforce = NULL;
|
tforce = NULL;
|
||||||
maxatom1 = maxatom2 = 0;
|
maxatom1 = maxatom2 = 0;
|
||||||
|
|
||||||
|
@ -161,7 +174,6 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
||||||
// no need to set peratom_flag, b/c data is for internal use only
|
// no need to set peratom_flag, b/c data is for internal use only
|
||||||
|
|
||||||
if (gjfflag) {
|
if (gjfflag) {
|
||||||
nvalues = 3;
|
|
||||||
grow_arrays(atom->nmax);
|
grow_arrays(atom->nmax);
|
||||||
atom->add_callback(0);
|
atom->add_callback(0);
|
||||||
|
|
||||||
|
@ -172,6 +184,9 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
||||||
franprev[i][0] = 0.0;
|
franprev[i][0] = 0.0;
|
||||||
franprev[i][1] = 0.0;
|
franprev[i][1] = 0.0;
|
||||||
franprev[i][2] = 0.0;
|
franprev[i][2] = 0.0;
|
||||||
|
lv[i][0] = 0.0;
|
||||||
|
lv[i][1] = 0.0;
|
||||||
|
lv[i][2] = 0.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,6 +207,7 @@ FixLangevin::~FixLangevin()
|
||||||
|
|
||||||
if (gjfflag) {
|
if (gjfflag) {
|
||||||
memory->destroy(franprev);
|
memory->destroy(franprev);
|
||||||
|
memory->destroy(lv);
|
||||||
atom->delete_callback(id,0);
|
atom->delete_callback(id,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -201,6 +217,7 @@ FixLangevin::~FixLangevin()
|
||||||
int FixLangevin::setmask()
|
int FixLangevin::setmask()
|
||||||
{
|
{
|
||||||
int mask = 0;
|
int mask = 0;
|
||||||
|
if (gjfflag) mask |= INITIAL_INTEGRATE;
|
||||||
mask |= POST_FORCE;
|
mask |= POST_FORCE;
|
||||||
mask |= POST_FORCE_RESPA;
|
mask |= POST_FORCE_RESPA;
|
||||||
mask |= END_OF_STEP;
|
mask |= END_OF_STEP;
|
||||||
|
@ -212,6 +229,21 @@ int FixLangevin::setmask()
|
||||||
|
|
||||||
void FixLangevin::init()
|
void FixLangevin::init()
|
||||||
{
|
{
|
||||||
|
if (gjfflag){
|
||||||
|
if (t_period*2 == update->dt)
|
||||||
|
error->all(FLERR,"Fix langevin gjf cannot have t_period equal to dt/2");
|
||||||
|
|
||||||
|
// warn if any integrate fix comes after this one
|
||||||
|
int before = 1;
|
||||||
|
int flag = 0;
|
||||||
|
for (int i = 0; i < modify->nfix; i++) {
|
||||||
|
if (strcmp(id,modify->fix[i]->id) == 0) before = 0;
|
||||||
|
else if ((modify->fmask[i] && utils::strmatch(modify->fix[i]->style,"^nve")) && before) flag = 1;
|
||||||
|
}
|
||||||
|
if (flag && comm->me == 0)
|
||||||
|
error->all(FLERR,"Fix langevin gjf should come before fix nve");
|
||||||
|
}
|
||||||
|
|
||||||
if (oflag && !atom->sphere_flag)
|
if (oflag && !atom->sphere_flag)
|
||||||
error->all(FLERR,"Fix langevin omega requires atom style sphere");
|
error->all(FLERR,"Fix langevin omega requires atom style sphere");
|
||||||
if (ascale && !atom->ellipsoid_flag)
|
if (ascale && !atom->ellipsoid_flag)
|
||||||
|
@ -261,9 +293,14 @@ void FixLangevin::init()
|
||||||
if (!atom->rmass) {
|
if (!atom->rmass) {
|
||||||
for (int i = 1; i <= atom->ntypes; i++) {
|
for (int i = 1; i <= atom->ntypes; i++) {
|
||||||
gfactor1[i] = -atom->mass[i] / t_period / force->ftm2v;
|
gfactor1[i] = -atom->mass[i] / t_period / force->ftm2v;
|
||||||
gfactor2[i] = sqrt(atom->mass[i]) *
|
if (gjfflag)
|
||||||
sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) /
|
gfactor2[i] = sqrt(atom->mass[i]) *
|
||||||
force->ftm2v;
|
sqrt(2.0*force->boltz/t_period/update->dt/force->mvv2e) /
|
||||||
|
force->ftm2v;
|
||||||
|
else
|
||||||
|
gfactor2[i] = sqrt(atom->mass[i]) *
|
||||||
|
sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) /
|
||||||
|
force->ftm2v;
|
||||||
gfactor1[i] *= 1.0/ratio[i];
|
gfactor1[i] *= 1.0/ratio[i];
|
||||||
gfactor2[i] *= 1.0/sqrt(ratio[i]);
|
gfactor2[i] *= 1.0/sqrt(ratio[i]);
|
||||||
}
|
}
|
||||||
|
@ -275,14 +312,60 @@ void FixLangevin::init()
|
||||||
if (strstr(update->integrate_style,"respa"))
|
if (strstr(update->integrate_style,"respa"))
|
||||||
nlevels_respa = ((Respa *) update->integrate)->nlevels;
|
nlevels_respa = ((Respa *) update->integrate)->nlevels;
|
||||||
|
|
||||||
if (gjfflag) gjffac = 1.0/(1.0+update->dt/2.0/t_period);
|
if (utils::strmatch(update->integrate_style,"^respa") && gjfflag)
|
||||||
|
error->all(FLERR,"Fix langevin gjf and respa are not compatible");
|
||||||
|
|
||||||
|
if (gjfflag) gjfa = (1.0-update->dt/2.0/t_period)/(1.0+update->dt/2.0/t_period);
|
||||||
|
if (gjfflag) gjfsib = sqrt(1.0+update->dt/2.0/t_period);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void FixLangevin::setup(int vflag)
|
void FixLangevin::setup(int vflag)
|
||||||
{
|
{
|
||||||
|
if (gjfflag){
|
||||||
|
double dtfm;
|
||||||
|
double dt = update->dt;
|
||||||
|
double **v = atom->v;
|
||||||
|
double **f = atom->f;
|
||||||
|
int *mask = atom->mask;
|
||||||
|
int nlocal = atom->nlocal;
|
||||||
|
double *rmass = atom->rmass;
|
||||||
|
double *mass = atom->mass;
|
||||||
|
int *type = atom->type;
|
||||||
|
if (rmass) {
|
||||||
|
for (int i = 0; i < nlocal; i++)
|
||||||
|
if (mask[i] & groupbit) {
|
||||||
|
dtfm = 0.5 * dt / rmass[i];
|
||||||
|
v[i][0] -= dtfm * f[i][0];
|
||||||
|
v[i][1] -= dtfm * f[i][1];
|
||||||
|
v[i][2] -= dtfm * f[i][2];
|
||||||
|
if (tbiasflag)
|
||||||
|
temperature->remove_bias(i,v[i]);
|
||||||
|
v[i][0] /= gjfa*gjfsib*gjfsib;
|
||||||
|
v[i][1] /= gjfa*gjfsib*gjfsib;
|
||||||
|
v[i][2] /= gjfa*gjfsib*gjfsib;
|
||||||
|
if (tbiasflag)
|
||||||
|
temperature->restore_bias(i,v[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < nlocal; i++)
|
||||||
|
if (mask[i] & groupbit) {
|
||||||
|
dtfm = 0.5 * dt / mass[type[i]];
|
||||||
|
v[i][0] -= dtfm * f[i][0];
|
||||||
|
v[i][1] -= dtfm * f[i][1];
|
||||||
|
v[i][2] -= dtfm * f[i][2];
|
||||||
|
if (tbiasflag)
|
||||||
|
temperature->remove_bias(i,v[i]);
|
||||||
|
v[i][0] /= gjfa*gjfsib*gjfsib;
|
||||||
|
v[i][1] /= gjfa*gjfsib*gjfsib;
|
||||||
|
v[i][2] /= gjfa*gjfsib*gjfsib;
|
||||||
|
if (tbiasflag)
|
||||||
|
temperature->restore_bias(i,v[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (strstr(update->integrate_style,"verlet"))
|
if (strstr(update->integrate_style,"verlet"))
|
||||||
post_force(vflag);
|
post_force(vflag);
|
||||||
else {
|
else {
|
||||||
|
@ -290,6 +373,61 @@ void FixLangevin::setup(int vflag)
|
||||||
post_force_respa(vflag,nlevels_respa-1,0);
|
post_force_respa(vflag,nlevels_respa-1,0);
|
||||||
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
|
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
|
||||||
}
|
}
|
||||||
|
if (gjfflag){
|
||||||
|
double dtfm;
|
||||||
|
double dt = update->dt;
|
||||||
|
double **f = atom->f;
|
||||||
|
double **v = atom->v;
|
||||||
|
int *mask = atom->mask;
|
||||||
|
int nlocal = atom->nlocal;
|
||||||
|
double *rmass = atom->rmass;
|
||||||
|
double *mass = atom->mass;
|
||||||
|
int *type = atom->type;
|
||||||
|
if (rmass) {
|
||||||
|
for (int i = 0; i < nlocal; i++)
|
||||||
|
if (mask[i] & groupbit) {
|
||||||
|
dtfm = 0.5 * dt / rmass[i];
|
||||||
|
v[i][0] += dtfm * f[i][0];
|
||||||
|
v[i][1] += dtfm * f[i][1];
|
||||||
|
v[i][2] += dtfm * f[i][2];
|
||||||
|
lv[i][0] = v[i][0];
|
||||||
|
lv[i][1] = v[i][1];
|
||||||
|
lv[i][2] = v[i][2];
|
||||||
|
}
|
||||||
|
//
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < nlocal; i++)
|
||||||
|
if (mask[i] & groupbit) {
|
||||||
|
dtfm = 0.5 * dt / mass[type[i]];
|
||||||
|
v[i][0] += dtfm * f[i][0];
|
||||||
|
v[i][1] += dtfm * f[i][1];
|
||||||
|
v[i][2] += dtfm * f[i][2];
|
||||||
|
lv[i][0] = v[i][0];
|
||||||
|
lv[i][1] = v[i][1];
|
||||||
|
lv[i][2] = v[i][2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void FixLangevin::initial_integrate(int /* vflag */)
|
||||||
|
{
|
||||||
|
double **v = atom->v;
|
||||||
|
double **f = atom->f;
|
||||||
|
int *mask = atom->mask;
|
||||||
|
int nlocal = atom->nlocal;
|
||||||
|
|
||||||
|
for (int i = 0; i < nlocal; i++)
|
||||||
|
if (mask[i] & groupbit){
|
||||||
|
f[i][0] /= gjfa;
|
||||||
|
f[i][1] /= gjfa;
|
||||||
|
f[i][2] /= gjfa;
|
||||||
|
v[i][0] = lv[i][0];
|
||||||
|
v[i][1] = lv[i][1];
|
||||||
|
v[i][2] = lv[i][2];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
@ -304,7 +442,7 @@ void FixLangevin::post_force(int /*vflag*/)
|
||||||
|
|
||||||
if (tstyle == ATOM)
|
if (tstyle == ATOM)
|
||||||
if (gjfflag)
|
if (gjfflag)
|
||||||
if (tallyflag)
|
if (tallyflag || osflag)
|
||||||
if (tbiasflag == BIAS)
|
if (tbiasflag == BIAS)
|
||||||
if (rmass)
|
if (rmass)
|
||||||
if (zeroflag) post_force_templated<1,1,1,1,1,1>();
|
if (zeroflag) post_force_templated<1,1,1,1,1,1>();
|
||||||
|
@ -511,7 +649,10 @@ void FixLangevin::post_force_templated()
|
||||||
if (Tp_TSTYLEATOM) tsqrt = sqrt(tforce[i]);
|
if (Tp_TSTYLEATOM) tsqrt = sqrt(tforce[i]);
|
||||||
if (Tp_RMASS) {
|
if (Tp_RMASS) {
|
||||||
gamma1 = -rmass[i] / t_period / ftm2v;
|
gamma1 = -rmass[i] / t_period / ftm2v;
|
||||||
gamma2 = sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
|
if (Tp_GJF)
|
||||||
|
gamma2 = sqrt(rmass[i]) * sqrt(2.0*boltz/t_period/dt/mvv2e) / ftm2v;
|
||||||
|
else
|
||||||
|
gamma2 = sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
|
||||||
gamma1 *= 1.0/ratio[type[i]];
|
gamma1 *= 1.0/ratio[type[i]];
|
||||||
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
|
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
|
||||||
} else {
|
} else {
|
||||||
|
@ -519,9 +660,16 @@ void FixLangevin::post_force_templated()
|
||||||
gamma2 = gfactor2[type[i]] * tsqrt;
|
gamma2 = gfactor2[type[i]] * tsqrt;
|
||||||
}
|
}
|
||||||
|
|
||||||
fran[0] = gamma2*(random->uniform()-0.5);
|
if (Tp_GJF){
|
||||||
fran[1] = gamma2*(random->uniform()-0.5);
|
fran[0] = gamma2*random->gaussian();
|
||||||
fran[2] = gamma2*(random->uniform()-0.5);
|
fran[1] = gamma2*random->gaussian();
|
||||||
|
fran[2] = gamma2*random->gaussian();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
fran[0] = gamma2*(random->uniform()-0.5);
|
||||||
|
fran[1] = gamma2*(random->uniform()-0.5);
|
||||||
|
fran[2] = gamma2*(random->uniform()-0.5);
|
||||||
|
}
|
||||||
|
|
||||||
if (Tp_BIAS) {
|
if (Tp_BIAS) {
|
||||||
temperature->remove_bias(i,v[i]);
|
temperature->remove_bias(i,v[i]);
|
||||||
|
@ -539,6 +687,16 @@ void FixLangevin::post_force_templated()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Tp_GJF) {
|
if (Tp_GJF) {
|
||||||
|
if (Tp_BIAS)
|
||||||
|
temperature->remove_bias(i,v[i]);
|
||||||
|
lv[i][0] = gjfsib*v[i][0];
|
||||||
|
lv[i][1] = gjfsib*v[i][1];
|
||||||
|
lv[i][2] = gjfsib*v[i][2];
|
||||||
|
if (Tp_BIAS)
|
||||||
|
temperature->restore_bias(i,v[i]);
|
||||||
|
if (Tp_BIAS)
|
||||||
|
temperature->restore_bias(i,lv[i]);
|
||||||
|
|
||||||
fswap = 0.5*(fran[0]+franprev[i][0]);
|
fswap = 0.5*(fran[0]+franprev[i][0]);
|
||||||
franprev[i][0] = fran[0];
|
franprev[i][0] = fran[0];
|
||||||
fran[0] = fswap;
|
fran[0] = fswap;
|
||||||
|
@ -549,32 +707,44 @@ void FixLangevin::post_force_templated()
|
||||||
franprev[i][2] = fran[2];
|
franprev[i][2] = fran[2];
|
||||||
fran[2] = fswap;
|
fran[2] = fswap;
|
||||||
|
|
||||||
fdrag[0] *= gjffac;
|
fdrag[0] *= gjfa;
|
||||||
fdrag[1] *= gjffac;
|
fdrag[1] *= gjfa;
|
||||||
fdrag[2] *= gjffac;
|
fdrag[2] *= gjfa;
|
||||||
fran[0] *= gjffac;
|
fran[0] *= gjfa;
|
||||||
fran[1] *= gjffac;
|
fran[1] *= gjfa;
|
||||||
fran[2] *= gjffac;
|
fran[2] *= gjfa;
|
||||||
f[i][0] *= gjffac;
|
f[i][0] *= gjfa;
|
||||||
f[i][1] *= gjffac;
|
f[i][1] *= gjfa;
|
||||||
f[i][2] *= gjffac;
|
f[i][2] *= gjfa;
|
||||||
}
|
}
|
||||||
|
|
||||||
f[i][0] += fdrag[0] + fran[0];
|
f[i][0] += fdrag[0] + fran[0];
|
||||||
f[i][1] += fdrag[1] + fran[1];
|
f[i][1] += fdrag[1] + fran[1];
|
||||||
f[i][2] += fdrag[2] + fran[2];
|
f[i][2] += fdrag[2] + fran[2];
|
||||||
|
|
||||||
if (Tp_TALLY) {
|
|
||||||
flangevin[i][0] = fdrag[0] + fran[0];
|
|
||||||
flangevin[i][1] = fdrag[1] + fran[1];
|
|
||||||
flangevin[i][2] = fdrag[2] + fran[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Tp_ZERO) {
|
if (Tp_ZERO) {
|
||||||
fsum[0] += fran[0];
|
fsum[0] += fran[0];
|
||||||
fsum[1] += fran[1];
|
fsum[1] += fran[1];
|
||||||
fsum[2] += fran[2];
|
fsum[2] += fran[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Tp_TALLY) {
|
||||||
|
if (Tp_GJF){
|
||||||
|
fdrag[0] = gamma1*lv[i][0]/gjfsib/gjfsib;
|
||||||
|
fdrag[1] = gamma1*lv[i][1]/gjfsib/gjfsib;
|
||||||
|
fdrag[2] = gamma1*lv[i][2]/gjfsib/gjfsib;
|
||||||
|
fswap = (2*fran[0]/gjfa - franprev[i][0])/gjfsib;
|
||||||
|
fran[0] = fswap;
|
||||||
|
fswap = (2*fran[1]/gjfa - franprev[i][1])/gjfsib;
|
||||||
|
fran[1] = fswap;
|
||||||
|
fswap = (2*fran[2]/gjfa - franprev[i][2])/gjfsib;
|
||||||
|
fran[2] = fswap;
|
||||||
|
}
|
||||||
|
flangevin[i][0] = fdrag[0] + fran[0];
|
||||||
|
flangevin[i][1] = fdrag[1] + fran[1];
|
||||||
|
flangevin[i][2] = fdrag[2] + fran[2];
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -754,18 +924,72 @@ void FixLangevin::angmom_thermostat()
|
||||||
|
|
||||||
void FixLangevin::end_of_step()
|
void FixLangevin::end_of_step()
|
||||||
{
|
{
|
||||||
if (!tallyflag) return;
|
if (!tallyflag && !gjfflag) return;
|
||||||
|
|
||||||
double **v = atom->v;
|
double **v = atom->v;
|
||||||
int *mask = atom->mask;
|
int *mask = atom->mask;
|
||||||
int nlocal = atom->nlocal;
|
int nlocal = atom->nlocal;
|
||||||
|
double dtfm;
|
||||||
|
double dt = update->dt;
|
||||||
|
double *mass = atom->mass;
|
||||||
|
double *rmass = atom->rmass;
|
||||||
|
double **f = atom->f;
|
||||||
|
int *type = atom->type;
|
||||||
|
|
||||||
energy_onestep = 0.0;
|
energy_onestep = 0.0;
|
||||||
|
|
||||||
for (int i = 0; i < nlocal; i++)
|
if (tallyflag){
|
||||||
if (mask[i] & groupbit)
|
if (gjfflag){
|
||||||
energy_onestep += flangevin[i][0]*v[i][0] + flangevin[i][1]*v[i][1] +
|
for (int i = 0; i < nlocal; i++)
|
||||||
flangevin[i][2]*v[i][2];
|
if (mask[i] & groupbit) {
|
||||||
|
if (tbiasflag)
|
||||||
|
temperature->remove_bias(i, lv[i]);
|
||||||
|
energy_onestep += flangevin[i][0]*lv[i][0] + flangevin[i][1]*lv[i][1] +
|
||||||
|
flangevin[i][2]*lv[i][2];
|
||||||
|
if (tbiasflag)
|
||||||
|
temperature->restore_bias(i, lv[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
for (int i = 0; i < nlocal; i++)
|
||||||
|
if (mask[i] & groupbit)
|
||||||
|
energy_onestep += flangevin[i][0]*v[i][0] + flangevin[i][1]*v[i][1] +
|
||||||
|
flangevin[i][2]*v[i][2];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gjfflag){
|
||||||
|
double tmp[3];
|
||||||
|
for (int i = 0; i < nlocal; i++)
|
||||||
|
if (mask[i] & groupbit){
|
||||||
|
tmp[0] = v[i][0];
|
||||||
|
tmp[1] = v[i][1];
|
||||||
|
tmp[2] = v[i][2];
|
||||||
|
if (!osflag){
|
||||||
|
v[i][0] = lv[i][0];
|
||||||
|
v[i][1] = lv[i][1];
|
||||||
|
v[i][2] = lv[i][2];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (atom->rmass) {
|
||||||
|
dtfm = force->ftm2v * 0.5 * dt / rmass[i];
|
||||||
|
} else {
|
||||||
|
dtfm = force->ftm2v * 0.5 * dt / mass[type[i]];
|
||||||
|
}
|
||||||
|
v[i][0] = 0.5 * gjfsib*gjfsib*(v[i][0] + dtfm * f[i][0] / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * flangevin[i][0] - franprev[i][0]) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * lv[i][0];
|
||||||
|
v[i][1] = 0.5 * gjfsib*gjfsib*(v[i][1] + dtfm * f[i][1] / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * flangevin[i][1] - franprev[i][1]) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * lv[i][1];
|
||||||
|
v[i][2] = 0.5 * gjfsib*gjfsib*(v[i][2] + dtfm * f[i][2] / gjfa) +
|
||||||
|
dtfm * 0.5 * (gjfsib * flangevin[i][2] - franprev[i][2]) +
|
||||||
|
(gjfsib * gjfa * 0.5 + dt * 0.25 / t_period / gjfsib) * lv[i][2];
|
||||||
|
}
|
||||||
|
lv[i][0] = tmp[0];
|
||||||
|
lv[i][1] = tmp[1];
|
||||||
|
lv[i][2] = tmp[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
energy += energy_onestep*update->dt;
|
energy += energy_onestep*update->dt;
|
||||||
}
|
}
|
||||||
|
@ -831,11 +1055,25 @@ double FixLangevin::compute_scalar()
|
||||||
|
|
||||||
if (update->ntimestep == update->beginstep) {
|
if (update->ntimestep == update->beginstep) {
|
||||||
energy_onestep = 0.0;
|
energy_onestep = 0.0;
|
||||||
for (int i = 0; i < nlocal; i++)
|
if (!gjfflag){
|
||||||
if (mask[i] & groupbit)
|
for (int i = 0; i < nlocal; i++)
|
||||||
energy_onestep += flangevin[i][0]*v[i][0] + flangevin[i][1]*v[i][1] +
|
if (mask[i] & groupbit)
|
||||||
flangevin[i][2]*v[i][2];
|
energy_onestep += flangevin[i][0]*v[i][0] + flangevin[i][1]*v[i][1] +
|
||||||
energy = 0.5*energy_onestep*update->dt;
|
flangevin[i][2]*v[i][2];
|
||||||
|
energy = 0.5*energy_onestep*update->dt;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
for (int i = 0; i < nlocal; i++)
|
||||||
|
if (mask[i] & groupbit){
|
||||||
|
if (tbiasflag)
|
||||||
|
temperature->remove_bias(i, lv[i]);
|
||||||
|
energy_onestep += flangevin[i][0]*lv[i][0] + flangevin[i][1]*lv[i][1] +
|
||||||
|
flangevin[i][2]*lv[i][2];
|
||||||
|
if (tbiasflag)
|
||||||
|
temperature->restore_bias(i, lv[i]);
|
||||||
|
}
|
||||||
|
energy = -0.5*energy_onestep*update->dt;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert midstep energy back to previous fullstep energy
|
// convert midstep energy back to previous fullstep energy
|
||||||
|
@ -867,8 +1105,8 @@ void *FixLangevin::extract(const char *str, int &dim)
|
||||||
double FixLangevin::memory_usage()
|
double FixLangevin::memory_usage()
|
||||||
{
|
{
|
||||||
double bytes = 0.0;
|
double bytes = 0.0;
|
||||||
if (gjfflag) bytes += atom->nmax*3 * sizeof(double);
|
if (gjfflag) bytes += atom->nmax*6 * sizeof(double);
|
||||||
if (tallyflag) bytes += atom->nmax*3 * sizeof(double);
|
if (tallyflag || osflag) bytes += atom->nmax*3 * sizeof(double);
|
||||||
if (tforce) bytes += atom->nmax * sizeof(double);
|
if (tforce) bytes += atom->nmax * sizeof(double);
|
||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
|
@ -880,6 +1118,7 @@ double FixLangevin::memory_usage()
|
||||||
void FixLangevin::grow_arrays(int nmax)
|
void FixLangevin::grow_arrays(int nmax)
|
||||||
{
|
{
|
||||||
memory->grow(franprev,nmax,3,"fix_langevin:franprev");
|
memory->grow(franprev,nmax,3,"fix_langevin:franprev");
|
||||||
|
memory->grow(lv,nmax,3,"fix_langevin:lv");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
@ -888,8 +1127,12 @@ void FixLangevin::grow_arrays(int nmax)
|
||||||
|
|
||||||
void FixLangevin::copy_arrays(int i, int j, int /*delflag*/)
|
void FixLangevin::copy_arrays(int i, int j, int /*delflag*/)
|
||||||
{
|
{
|
||||||
for (int m = 0; m < nvalues; m++)
|
franprev[j][0] = franprev[i][0];
|
||||||
franprev[j][m] = franprev[i][m];
|
franprev[j][1] = franprev[i][1];
|
||||||
|
franprev[j][2] = franprev[i][2];
|
||||||
|
lv[j][0] = lv[i][0];
|
||||||
|
lv[j][1] = lv[i][1];
|
||||||
|
lv[j][2] = lv[i][2];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
@ -898,8 +1141,14 @@ void FixLangevin::copy_arrays(int i, int j, int /*delflag*/)
|
||||||
|
|
||||||
int FixLangevin::pack_exchange(int i, double *buf)
|
int FixLangevin::pack_exchange(int i, double *buf)
|
||||||
{
|
{
|
||||||
for (int m = 0; m < nvalues; m++) buf[m] = franprev[i][m];
|
int n = 0;
|
||||||
return nvalues;
|
buf[n++] = franprev[i][0];
|
||||||
|
buf[n++] = franprev[i][1];
|
||||||
|
buf[n++] = franprev[i][2];
|
||||||
|
buf[n++] = lv[i][0];
|
||||||
|
buf[n++] = lv[i][1];
|
||||||
|
buf[n++] = lv[i][2];
|
||||||
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
@ -908,6 +1157,12 @@ int FixLangevin::pack_exchange(int i, double *buf)
|
||||||
|
|
||||||
int FixLangevin::unpack_exchange(int nlocal, double *buf)
|
int FixLangevin::unpack_exchange(int nlocal, double *buf)
|
||||||
{
|
{
|
||||||
for (int m = 0; m < nvalues; m++) franprev[nlocal][m] = buf[m];
|
int n = 0;
|
||||||
return nvalues;
|
franprev[nlocal][0] = buf[n++];
|
||||||
|
franprev[nlocal][1] = buf[n++];
|
||||||
|
franprev[nlocal][2] = buf[n++];
|
||||||
|
lv[nlocal][0] = buf[n++];
|
||||||
|
lv[nlocal][1] = buf[n++];
|
||||||
|
lv[nlocal][2] = buf[n++];
|
||||||
|
return n;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ class FixLangevin : public Fix {
|
||||||
int setmask();
|
int setmask();
|
||||||
void init();
|
void init();
|
||||||
void setup(int);
|
void setup(int);
|
||||||
|
virtual void initial_integrate(int);
|
||||||
virtual void post_force(int);
|
virtual void post_force(int);
|
||||||
void post_force_respa(int, int, int);
|
void post_force_respa(int, int, int);
|
||||||
virtual void end_of_step();
|
virtual void end_of_step();
|
||||||
|
@ -46,7 +47,7 @@ class FixLangevin : public Fix {
|
||||||
int unpack_exchange(int, double *);
|
int unpack_exchange(int, double *);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int gjfflag,oflag,tallyflag,zeroflag,tbiasflag;
|
int gjfflag,nvalues,osflag,oflag,tallyflag,zeroflag,tbiasflag;
|
||||||
int flangevin_allocated;
|
int flangevin_allocated;
|
||||||
double ascale;
|
double ascale;
|
||||||
double t_start,t_stop,t_period,t_target;
|
double t_start,t_stop,t_period,t_target;
|
||||||
|
@ -54,7 +55,7 @@ class FixLangevin : public Fix {
|
||||||
double energy,energy_onestep;
|
double energy,energy_onestep;
|
||||||
double tsqrt;
|
double tsqrt;
|
||||||
int tstyle,tvar;
|
int tstyle,tvar;
|
||||||
double gjffac;
|
double gjfa, gjfsib; //gjf a and gjf sqrt inverse b
|
||||||
char *tstr;
|
char *tstr;
|
||||||
|
|
||||||
class AtomVecEllipsoid *avec;
|
class AtomVecEllipsoid *avec;
|
||||||
|
@ -63,7 +64,7 @@ class FixLangevin : public Fix {
|
||||||
double **flangevin;
|
double **flangevin;
|
||||||
double *tforce;
|
double *tforce;
|
||||||
double **franprev;
|
double **franprev;
|
||||||
int nvalues;
|
double **lv; //half step velocity
|
||||||
|
|
||||||
char *id_temp;
|
char *id_temp;
|
||||||
class Compute *temperature;
|
class Compute *temperature;
|
||||||
|
@ -139,6 +140,18 @@ E: Fix_modify temperature ID does not compute temperature
|
||||||
|
|
||||||
The compute ID assigned to the fix must compute temperature.
|
The compute ID assigned to the fix must compute temperature.
|
||||||
|
|
||||||
|
E: Fix langevin gjf cannot have period equal to dt/2
|
||||||
|
|
||||||
|
If the period is equal to dt/2 then division by zero will happen.
|
||||||
|
|
||||||
|
E: Fix langevin gjf should come before fix nve
|
||||||
|
|
||||||
|
Self-explanatory
|
||||||
|
|
||||||
|
E: Fix langevin gjf and respa are not compatible
|
||||||
|
|
||||||
|
Self-explanatory
|
||||||
|
|
||||||
W: Group for fix_modify temp != fix group
|
W: Group for fix_modify temp != fix group
|
||||||
|
|
||||||
The fix_modify command is specifying a temperature computation that
|
The fix_modify command is specifying a temperature computation that
|
||||||
|
|
Loading…
Reference in New Issue