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
|
||||
|
||||
{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
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
{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
|
||||
{gjf} value = {no} or {yes}
|
||||
{gjf} value = {no} or {vfull} or {vhalf}
|
||||
{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}
|
||||
{no} = do not 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
|
||||
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
|
||||
thermostat. Because the random forces on different atoms are
|
||||
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
|
||||
enable longer timesteps to be used (up to the numerical stability
|
||||
limit of the integrator), while still producing the correct Boltzmann
|
||||
distribution of atom positions. It is implemented within LAMMPS, by
|
||||
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.
|
||||
distribution of atom positions.
|
||||
|
||||
In common with all methods based on Verlet integration, the
|
||||
discretized velocities generated by this method in conjunction with
|
||||
velocity-Verlet time integration are not exactly conjugate to the
|
||||
positions. As a result the temperature (computed from the discretized
|
||||
velocities) will be systematically lower than the target temperature,
|
||||
by a small amount which grows with the timestep. Nonetheless, the
|
||||
distribution of atom positions will still be consistent with the
|
||||
The current implementation provides the user with the option to output
|
||||
the velocity in one of two forms: {vfull} or {vhalf}, which replaces
|
||||
the outdated option {yes}. The {gjf} option {vfull} outputs the on-site
|
||||
velocity given in "Gronbech-Jensen/Farago"_#Gronbech-Jensen; this velocity
|
||||
is shown to be systematically lower than the target temperature by a small
|
||||
amount, which grows quadratically with the timestep.
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
[Restrictions:] none
|
||||
[Restrictions:]
|
||||
|
||||
For {gjf} do not choose damp=dt/2. {gjf} is not compatible
|
||||
with run_style respa.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
|
@ -335,5 +338,10 @@ types, tally = no, zero = no, gjf = no.
|
|||
|
||||
:link(Gronbech-Jensen)
|
||||
[(Gronbech-Jensen)] Gronbech-Jensen and Farago, Mol Phys, 111, 983
|
||||
(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm,
|
||||
185, 524 (2014)
|
||||
(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm, 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
|
||||
qoverride
|
||||
qtb
|
||||
quadratically
|
||||
quadrupolar
|
||||
Quant
|
||||
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>();
|
||||
|
||||
if(gjfflag){
|
||||
nvalues = 3;
|
||||
grow_arrays(atomKK->nmax);
|
||||
atom->add_callback(0);
|
||||
// initialize franprev to zero
|
||||
|
@ -69,8 +68,12 @@ FixLangevinKokkos<DeviceType>::FixLangevinKokkos(LAMMPS *lmp, int narg, char **a
|
|||
franprev[i][0] = 0.0;
|
||||
franprev[i][1] = 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_lv.template modify<LMPHostType>();
|
||||
}
|
||||
if(zeroflag){
|
||||
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_flangevin,flangevin);
|
||||
if(gjfflag) memoryKK->destroy_kokkos(k_franprev,franprev);
|
||||
if(gjfflag) memoryKK->destroy_kokkos(k_lv,lv);
|
||||
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");
|
||||
if(ascale)
|
||||
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
|
||||
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");
|
||||
d_franprev = k_franprev.template view<DeviceType>();
|
||||
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_ratio.template sync<DeviceType>();
|
||||
if(gjfflag) k_franprev.template sync<DeviceType>();
|
||||
if(gjfflag) k_lv.template sync<DeviceType>();
|
||||
|
||||
boltz = force->boltz;
|
||||
dt = update->dt;
|
||||
|
@ -177,7 +220,7 @@ void FixLangevinKokkos<DeviceType>::post_force(int vflag)
|
|||
atomKK->sync(temperature->execution_space,temperature->datamask_read);
|
||||
temperature->compute_scalar();
|
||||
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->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
|
||||
if (gjfflag) k_franprev.template modify<DeviceType>();
|
||||
if (gjfflag) k_lv.template modify<DeviceType>();
|
||||
if (tallyflag) k_flangevin.template modify<DeviceType>();
|
||||
|
||||
// set total force to zero
|
||||
|
@ -550,6 +594,10 @@ FSUM FixLangevinKokkos<DeviceType>::post_force_item(int i) const
|
|||
}
|
||||
|
||||
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));
|
||||
d_franprev(i,0) = fran[0];
|
||||
fran[0] = fswap;
|
||||
|
@ -560,15 +608,15 @@ FSUM FixLangevinKokkos<DeviceType>::post_force_item(int i) const
|
|||
d_franprev(i,2) = fran[2];
|
||||
fran[2] = fswap;
|
||||
|
||||
fdrag[0] *= gjffac;
|
||||
fdrag[1] *= gjffac;
|
||||
fdrag[2] *= gjffac;
|
||||
fran[0] *= gjffac;
|
||||
fran[1] *= gjffac;
|
||||
fran[2] *= gjffac;
|
||||
f(i,0) *= gjffac;
|
||||
f(i,1) *= gjffac;
|
||||
f(i,2) *= gjffac;
|
||||
fdrag[0] *= gjfa;
|
||||
fdrag[1] *= gjfa;
|
||||
fdrag[2] *= gjfa;
|
||||
fran[0] *= gjfa;
|
||||
fran[1] *= gjfa;
|
||||
fran[2] *= gjfa;
|
||||
f(i,0) *= gjfa;
|
||||
f(i,1) *= gjfa;
|
||||
f(i,2) *= gjfa;
|
||||
}
|
||||
|
||||
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];
|
||||
|
||||
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,1) = fdrag[1] + fran[1];
|
||||
d_flangevin(i,2) = fdrag[2] + fran[2];
|
||||
|
@ -719,9 +778,10 @@ double FixLangevinKokkos<DeviceType>::compute_energy_item(int i) const
|
|||
template<class DeviceType>
|
||||
void FixLangevinKokkos<DeviceType>::end_of_step()
|
||||
{
|
||||
if (!tallyflag) return;
|
||||
if (!tallyflag && !gjfflag) return;
|
||||
|
||||
v = atomKK->k_v.template view<DeviceType>();
|
||||
f = atomKK->k_f.template view<DeviceType>();
|
||||
mask = atomKK->k_mask.template view<DeviceType>();
|
||||
|
||||
atomKK->sync(execution_space,V_MASK | MASK_MASK);
|
||||
|
@ -733,9 +793,81 @@ void FixLangevinKokkos<DeviceType>::end_of_step()
|
|||
FixLangevinKokkosTallyEnergyFunctor<DeviceType> tally_functor(this);
|
||||
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;
|
||||
}
|
||||
|
||||
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
|
||||
------------------------------------------------------------------------- */
|
||||
|
@ -743,10 +875,15 @@ void FixLangevinKokkos<DeviceType>::end_of_step()
|
|||
template<class DeviceType>
|
||||
void FixLangevinKokkos<DeviceType>::copy_arrays(int i, int j, int delflag)
|
||||
{
|
||||
for (int m = 0; m < nvalues; m++)
|
||||
h_franprev(j,m) = h_franprev(i,m);
|
||||
h_franprev(j,0) = h_franprev(i,0);
|
||||
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_lv.template modify<LMPHostType>();
|
||||
|
||||
}
|
||||
|
||||
|
@ -765,6 +902,7 @@ void FixLangevinKokkos<DeviceType>::cleanup_copy()
|
|||
tforce = NULL;
|
||||
gjfflag = 0;
|
||||
franprev = NULL;
|
||||
lv = NULL;
|
||||
id = style = NULL;
|
||||
vatom = NULL;
|
||||
}
|
||||
|
|
|
@ -56,6 +56,9 @@ namespace LAMMPS_NS {
|
|||
template<class DeviceType>
|
||||
class FixLangevinKokkos;
|
||||
|
||||
template <class DeviceType>
|
||||
class FixLangevinKokkosInitialIntegrateFunctor;
|
||||
|
||||
template<class DeviceType,int Tp_TSTYLEATOM, int Tp_GJF, int Tp_TALLY,
|
||||
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
||||
class FixLangevinKokkosPostForceFunctor;
|
||||
|
@ -72,6 +75,7 @@ namespace LAMMPS_NS {
|
|||
|
||||
void cleanup_copy();
|
||||
void init();
|
||||
void initial_integrate(int);
|
||||
void post_force(int);
|
||||
void reset_dt();
|
||||
void grow_arrays(int);
|
||||
|
@ -79,6 +83,12 @@ namespace LAMMPS_NS {
|
|||
double compute_scalar();
|
||||
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,
|
||||
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
|
@ -90,14 +100,25 @@ namespace LAMMPS_NS {
|
|||
KOKKOS_INLINE_FUNCTION
|
||||
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:
|
||||
class CommKokkos *commKK;
|
||||
|
||||
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>::t_double_2d d_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>::t_double_2d d_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,
|
||||
int Tp_BIAS, int Tp_RMASS, int Tp_ZERO>
|
||||
struct FixLangevinKokkosPostForceFunctor {
|
||||
|
@ -207,6 +243,21 @@ namespace LAMMPS_NS {
|
|||
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
|
||||
|
@ -231,4 +282,12 @@ E: Fix langevin variable returned negative temperature
|
|||
|
||||
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
|
||||
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"
|
||||
|
@ -35,6 +38,7 @@
|
|||
#include "memory.h"
|
||||
#include "error.h"
|
||||
#include "group.h"
|
||||
#include "utils.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace FixConst;
|
||||
|
@ -50,7 +54,7 @@ enum{CONSTANT,EQUAL,ATOM};
|
|||
FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
||||
Fix(lmp, narg, arg),
|
||||
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");
|
||||
|
||||
|
@ -96,6 +100,7 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
|||
oflag = 0;
|
||||
tallyflag = 0;
|
||||
zeroflag = 0;
|
||||
osflag = 0;
|
||||
|
||||
int iarg = 7;
|
||||
while (iarg < narg) {
|
||||
|
@ -106,8 +111,15 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
|||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"gjf") == 0) {
|
||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix langevin command");
|
||||
if (strcmp(arg[iarg+1],"no") == 0) gjfflag = 0;
|
||||
else if (strcmp(arg[iarg+1],"yes") == 0) gjfflag = 1;
|
||||
if (strcmp(arg[iarg+1],"no") == 0) {gjfflag = 0; osflag = 0;}
|
||||
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");
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"omega") == 0) {
|
||||
|
@ -153,6 +165,7 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
|||
flangevin = NULL;
|
||||
flangevin_allocated = 0;
|
||||
franprev = NULL;
|
||||
lv = NULL;
|
||||
tforce = NULL;
|
||||
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
|
||||
|
||||
if (gjfflag) {
|
||||
nvalues = 3;
|
||||
grow_arrays(atom->nmax);
|
||||
atom->add_callback(0);
|
||||
|
||||
|
@ -172,6 +184,9 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
|
|||
franprev[i][0] = 0.0;
|
||||
franprev[i][1] = 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) {
|
||||
memory->destroy(franprev);
|
||||
memory->destroy(lv);
|
||||
atom->delete_callback(id,0);
|
||||
}
|
||||
}
|
||||
|
@ -201,6 +217,7 @@ FixLangevin::~FixLangevin()
|
|||
int FixLangevin::setmask()
|
||||
{
|
||||
int mask = 0;
|
||||
if (gjfflag) mask |= INITIAL_INTEGRATE;
|
||||
mask |= POST_FORCE;
|
||||
mask |= POST_FORCE_RESPA;
|
||||
mask |= END_OF_STEP;
|
||||
|
@ -212,6 +229,21 @@ int FixLangevin::setmask()
|
|||
|
||||
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)
|
||||
error->all(FLERR,"Fix langevin omega requires atom style sphere");
|
||||
if (ascale && !atom->ellipsoid_flag)
|
||||
|
@ -261,9 +293,14 @@ void FixLangevin::init()
|
|||
if (!atom->rmass) {
|
||||
for (int i = 1; i <= atom->ntypes; i++) {
|
||||
gfactor1[i] = -atom->mass[i] / t_period / force->ftm2v;
|
||||
gfactor2[i] = sqrt(atom->mass[i]) *
|
||||
sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) /
|
||||
force->ftm2v;
|
||||
if (gjfflag)
|
||||
gfactor2[i] = sqrt(atom->mass[i]) *
|
||||
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];
|
||||
gfactor2[i] *= 1.0/sqrt(ratio[i]);
|
||||
}
|
||||
|
@ -275,14 +312,60 @@ void FixLangevin::init()
|
|||
if (strstr(update->integrate_style,"respa"))
|
||||
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)
|
||||
{
|
||||
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"))
|
||||
post_force(vflag);
|
||||
else {
|
||||
|
@ -290,6 +373,61 @@ void FixLangevin::setup(int vflag)
|
|||
post_force_respa(vflag,nlevels_respa-1,0);
|
||||
((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 (gjfflag)
|
||||
if (tallyflag)
|
||||
if (tallyflag || osflag)
|
||||
if (tbiasflag == BIAS)
|
||||
if (rmass)
|
||||
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_RMASS) {
|
||||
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]];
|
||||
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
|
||||
} else {
|
||||
|
@ -519,9 +660,16 @@ void FixLangevin::post_force_templated()
|
|||
gamma2 = gfactor2[type[i]] * tsqrt;
|
||||
}
|
||||
|
||||
fran[0] = gamma2*(random->uniform()-0.5);
|
||||
fran[1] = gamma2*(random->uniform()-0.5);
|
||||
fran[2] = gamma2*(random->uniform()-0.5);
|
||||
if (Tp_GJF){
|
||||
fran[0] = gamma2*random->gaussian();
|
||||
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) {
|
||||
temperature->remove_bias(i,v[i]);
|
||||
|
@ -539,6 +687,16 @@ void FixLangevin::post_force_templated()
|
|||
}
|
||||
|
||||
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]);
|
||||
franprev[i][0] = fran[0];
|
||||
fran[0] = fswap;
|
||||
|
@ -549,32 +707,44 @@ void FixLangevin::post_force_templated()
|
|||
franprev[i][2] = fran[2];
|
||||
fran[2] = fswap;
|
||||
|
||||
fdrag[0] *= gjffac;
|
||||
fdrag[1] *= gjffac;
|
||||
fdrag[2] *= gjffac;
|
||||
fran[0] *= gjffac;
|
||||
fran[1] *= gjffac;
|
||||
fran[2] *= gjffac;
|
||||
f[i][0] *= gjffac;
|
||||
f[i][1] *= gjffac;
|
||||
f[i][2] *= gjffac;
|
||||
fdrag[0] *= gjfa;
|
||||
fdrag[1] *= gjfa;
|
||||
fdrag[2] *= gjfa;
|
||||
fran[0] *= gjfa;
|
||||
fran[1] *= gjfa;
|
||||
fran[2] *= gjfa;
|
||||
f[i][0] *= gjfa;
|
||||
f[i][1] *= gjfa;
|
||||
f[i][2] *= gjfa;
|
||||
}
|
||||
|
||||
f[i][0] += fdrag[0] + fran[0];
|
||||
f[i][1] += fdrag[1] + fran[1];
|
||||
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) {
|
||||
fsum[0] += fran[0];
|
||||
fsum[1] += fran[1];
|
||||
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()
|
||||
{
|
||||
if (!tallyflag) return;
|
||||
if (!tallyflag && !gjfflag) return;
|
||||
|
||||
double **v = atom->v;
|
||||
int *mask = atom->mask;
|
||||
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;
|
||||
|
||||
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 (tallyflag){
|
||||
if (gjfflag){
|
||||
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]);
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
@ -831,11 +1055,25 @@ double FixLangevin::compute_scalar()
|
|||
|
||||
if (update->ntimestep == update->beginstep) {
|
||||
energy_onestep = 0.0;
|
||||
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];
|
||||
energy = 0.5*energy_onestep*update->dt;
|
||||
if (!gjfflag){
|
||||
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];
|
||||
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
|
||||
|
@ -867,8 +1105,8 @@ void *FixLangevin::extract(const char *str, int &dim)
|
|||
double FixLangevin::memory_usage()
|
||||
{
|
||||
double bytes = 0.0;
|
||||
if (gjfflag) bytes += atom->nmax*3 * sizeof(double);
|
||||
if (tallyflag) bytes += atom->nmax*3 * sizeof(double);
|
||||
if (gjfflag) bytes += atom->nmax*6 * sizeof(double);
|
||||
if (tallyflag || osflag) bytes += atom->nmax*3 * sizeof(double);
|
||||
if (tforce) bytes += atom->nmax * sizeof(double);
|
||||
return bytes;
|
||||
}
|
||||
|
@ -880,6 +1118,7 @@ double FixLangevin::memory_usage()
|
|||
void FixLangevin::grow_arrays(int nmax)
|
||||
{
|
||||
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*/)
|
||||
{
|
||||
for (int m = 0; m < nvalues; m++)
|
||||
franprev[j][m] = franprev[i][m];
|
||||
franprev[j][0] = franprev[i][0];
|
||||
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)
|
||||
{
|
||||
for (int m = 0; m < nvalues; m++) buf[m] = franprev[i][m];
|
||||
return nvalues;
|
||||
int n = 0;
|
||||
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)
|
||||
{
|
||||
for (int m = 0; m < nvalues; m++) franprev[nlocal][m] = buf[m];
|
||||
return nvalues;
|
||||
int n = 0;
|
||||
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();
|
||||
void init();
|
||||
void setup(int);
|
||||
virtual void initial_integrate(int);
|
||||
virtual void post_force(int);
|
||||
void post_force_respa(int, int, int);
|
||||
virtual void end_of_step();
|
||||
|
@ -46,7 +47,7 @@ class FixLangevin : public Fix {
|
|||
int unpack_exchange(int, double *);
|
||||
|
||||
protected:
|
||||
int gjfflag,oflag,tallyflag,zeroflag,tbiasflag;
|
||||
int gjfflag,nvalues,osflag,oflag,tallyflag,zeroflag,tbiasflag;
|
||||
int flangevin_allocated;
|
||||
double ascale;
|
||||
double t_start,t_stop,t_period,t_target;
|
||||
|
@ -54,7 +55,7 @@ class FixLangevin : public Fix {
|
|||
double energy,energy_onestep;
|
||||
double tsqrt;
|
||||
int tstyle,tvar;
|
||||
double gjffac;
|
||||
double gjfa, gjfsib; //gjf a and gjf sqrt inverse b
|
||||
char *tstr;
|
||||
|
||||
class AtomVecEllipsoid *avec;
|
||||
|
@ -63,7 +64,7 @@ class FixLangevin : public Fix {
|
|||
double **flangevin;
|
||||
double *tforce;
|
||||
double **franprev;
|
||||
int nvalues;
|
||||
double **lv; //half step velocity
|
||||
|
||||
char *id_temp;
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
The fix_modify command is specifying a temperature computation that
|
||||
|
|
Loading…
Reference in New Issue