[QE-users] Random seed for MD calculations

Han Hsu (徐翰) hanhsu at ncu.edu.tw
Mon Aug 14 19:24:06 CEST 2023


Dear Professor Giannozzi, QE developers, and QE users:

Previously, I reported that while the patch file provided by Prof.
Giannozzi works (namely, not all restart MD calculations got the same
sequence of the random numbers), a particular sequence of random numbers is
generated much more frequently than the others: Nearly half of my restart
calculations got that sequence of random numbers. Now I think I have found
out the reason why. By modifying Modules/random_numbers.f90, in particular,
its subroutine "set_random_seed" (lines 74–87), this problem can be
resolved, as described below.

In the subroutine "set_random_seed" , the parameter "iseed" is generated
based on the system time (lines 81–84), as shown below. By calling
"date_and_time", the system time is extracted in terms of eight numbers
(year, month, ..., milliseonds). Four of these numbers are adopted to
generate "iseed", including the time difference with respect to UTC (in
minutes) [itime(4)], and minutes, seconds, and milliseconds [itime(6–8)].
Among them, I find the inclusion of itime(4) incomprehensible, as this term
is a constant based on the location of the computer. Remarkably, in the UK,
itime(4)= 0, meaning this term has ZERO effects on "iseed", so why should
it be included anyway? By contrast, in my country Taiwan (GMT+8), itime(4)=
480, which results in a much larger "iseed" than in the UK, by up to
hundreds of times...

CALL date_and_time ( values = itime )
! itime contains: year, month, day, time difference in minutes, hours,
!                 minutes, seconds and milliseconds.
iseed = ( itime(8) + itime(6) ) * ( itime(7) + itime(4) )
irand = randy ( iseed )

Given the above analysis, I modified this subroutine by replacing itime(4)
with itime(5) (namely, hours), making "iseed" fully time-dependent. With
this modification, all my test calculations (from_scratch and all the
restart rounds) got different sequences of random numbers. If this
modification is correct, perhaps it can be included in the next release of
Quantum Espresso (7.3)?

Thank you for your suggestions and advice.

Best regards,

Han Hsu

On Sat, Aug 12, 2023 at 1:25 AM Han Hsu (徐翰) <hanhsu at ncu.edu.tw> wrote:

> Dear Professor Giannozzi
>
> Thank you very much for the patch file. It works!! Now, the random numbers
> generated in all rounds of calculations (including from_scratch and all the
> restart calculations) are not always repetitive.
>
> After more tests, however, I noticed that some "random numbers" are
> generated much much more frequently than the others. Not surprisingly, this
> occurs in both 'andersen' and 'svr' thermostats. What surprises me is that
> this occurs on different machines at different institutes as well. I
> therefore believe this should be reported, as further described below.
>
> Again, all the test runs were performed using a 8-atom cell of fcc Si,
> with dt = 20, tempw = 600. Each run lasts for 12000 steps, divided into a
> from_scratch (steps 1–1000) and 11 restart calculations (steps 1001–2000,
> 2001–3000, ..., 11001–12000). Both 'andersen' and 'svr' are tested (nraise
> = 100). A few representative results obtained on two different machines are
> shown below (JobID on these two machines are very different). In order to
> print out the random numbers, additional WRITE statements are added to the
> patched dynamics_module.f90 file.
>
>
> (1) svr (random numbers R1, R2, ..., R_Nf are generated in each step)
>
> In run_4323, same sequence of random numbers were generated in rounds 2,
> 4, 6, 8, 10, and 12. In run_6632321 (on a different machine), same sequence
> of random numbers were generated in rounds 3, 5, 6, 7, 8, and 12.
> Furthermore, all these 12 rounds on two different machines got the same
> sequence of random numbers...
>
> ===========
> run_4323
> ===========
> In pwscf.md.1.out, ...
>      Entering Dynamics:    iteration =     1
>      rr**2 = R1**2 =  0.5153
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     26.0457
>      Entering Dynamics:    iteration =     2
>      rr**2 = R1**2 =  0.0411
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     14.9090
>      Entering Dynamics:    iteration =     3
>      rr**2 = R1**2 =  0.2940
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.9707
>      Entering Dynamics:    iteration =     4
>      rr**2 = R1**2 =  1.0311
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.6863
>      Entering Dynamics:    iteration =     5
>      rr**2 = R1**2 =  0.0971
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =      8.4677
>      Entering Dynamics:    iteration =     6
>      rr**2 = R1**2 =  0.1053
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     16.8005
>      Entering Dynamics:    iteration =     7
>      rr**2 = R1**2 =  1.3552
> In pwscf.md.2.out, ...
>      Entering Dynamics:    iteration =  1001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  1002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  1003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  1004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  1005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  1006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  1007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.3.out, ...
>      Entering Dynamics:    iteration =  2001
>      rr**2 = R1**2 =  0.0243
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.0970
>      Entering Dynamics:    iteration =  2002
>      rr**2 = R1**2 =  0.8330
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     16.2563
>      Entering Dynamics:    iteration =  2003
>      rr**2 = R1**2 =  1.2013
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.2091
>      Entering Dynamics:    iteration =  2004
>      rr**2 = R1**2 =  2.0586
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =      8.7939
>      Entering Dynamics:    iteration =  2005
>      rr**2 = R1**2 =  0.1827
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.2563
>      Entering Dynamics:    iteration =  2006
>      rr**2 = R1**2 =  0.0228
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     12.6388
>      Entering Dynamics:    iteration =  2007
>      rr**2 = R1**2 =  2.0902
> In pwscf.md.4.out, ...
>      Entering Dynamics:    iteration =  3001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  3002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  3003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  3004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  3005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  3006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  3007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.5.out, ...
>      Entering Dynamics:    iteration =  4001
>      rr**2 = R1**2 =  0.2530
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     32.6780
>      Entering Dynamics:    iteration =  4002
>      rr**2 = R1**2 =  1.3396
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.7820
>      Entering Dynamics:    iteration =  4003
>      rr**2 = R1**2 =  1.5373
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.2314
>      Entering Dynamics:    iteration =  4004
>      rr**2 = R1**2 =  0.1242
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.5036
>      Entering Dynamics:    iteration =  4005
>      rr**2 = R1**2 =  3.9032
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     29.7656
>      Entering Dynamics:    iteration =  4006
>      rr**2 = R1**2 =  0.2589
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     34.8099
>      Entering Dynamics:    iteration =  4007
>      rr**2 = R1**2 =  0.7697
> In pwscf.md.6.out, ...
>      Entering Dynamics:    iteration =  5001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  5002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  5003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  5004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  5005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  5006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  5007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.7.out, ...
>      Entering Dynamics:    iteration =  6001
>      rr**2 = R1**2 =  2.6903
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     37.9392
>      Entering Dynamics:    iteration =  6002
>      rr**2 = R1**2 =  0.0692
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     28.5578
>      Entering Dynamics:    iteration =  6003
>      rr**2 = R1**2 =  2.1152
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     27.7485
>      Entering Dynamics:    iteration =  6004
>      rr**2 = R1**2 =  0.9331
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     14.8966
>      Entering Dynamics:    iteration =  6005
>      rr**2 = R1**2 =  2.9484
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     21.5477
>      Entering Dynamics:    iteration =  6006
>      rr**2 = R1**2 =  3.1608
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.2826
>      Entering Dynamics:    iteration =  6007
>      rr**2 = R1**2 =  1.1782
> In pwscf.md.8.out, ...
>      Entering Dynamics:    iteration =  7001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  7002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  7003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  7004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  7005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  7006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  7007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.9.out, ...
>      Entering Dynamics:    iteration =  8001
>      rr**2 = R1**2 =  0.3924
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     13.3758
>      Entering Dynamics:    iteration =  8002
>      rr**2 = R1**2 =  0.0280
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.0291
>      Entering Dynamics:    iteration =  8003
>      rr**2 = R1**2 =  0.4009
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =      9.2801
>      Entering Dynamics:    iteration =  8004
>      rr**2 = R1**2 =  7.4547
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     12.8219
>      Entering Dynamics:    iteration =  8005
>      rr**2 = R1**2 =  0.1901
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.8295
>      Entering Dynamics:    iteration =  8006
>      rr**2 = R1**2 =  3.9323
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =      7.4508
>      Entering Dynamics:    iteration =  8007
>      rr**2 = R1**2 =  0.5293
> In pwscf.md.10.out, ...
>      Entering Dynamics:    iteration =  9001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  9002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  9003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  9004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  9005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  9006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  9007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.11.out, ...
>      Entering Dynamics:    iteration = 10001
>      rr**2 = R1**2 =  0.3791
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.5365
>      Entering Dynamics:    iteration = 10002
>      rr**2 = R1**2 =  0.0077
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     29.3416
>      Entering Dynamics:    iteration = 10003
>      rr**2 = R1**2 =  0.6284
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     32.4019
>      Entering Dynamics:    iteration = 10004
>      rr**2 = R1**2 =  0.4572
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     16.9506
>      Entering Dynamics:    iteration = 10005
>      rr**2 = R1**2 =  4.8563
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.8781
>      Entering Dynamics:    iteration = 10006
>      rr**2 = R1**2 =  5.3850
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     16.7095
>      Entering Dynamics:    iteration = 10007
>      rr**2 = R1**2 =  2.0461
> In pwscf.md.12.out, ...
>      Entering Dynamics:    iteration = 11001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration = 11002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration = 11003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration = 11004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration = 11005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration = 11006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration = 11007
>      rr**2 = R1**2 =  0.0441
>
> ===========
> run_6632321
> ===========
> In pwscf.md.1.out, ...
>      Entering Dynamics:    iteration =     1
>      rr**2 = R1**2 =  0.0002
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     16.0931
>      Entering Dynamics:    iteration =     2
>      rr**2 = R1**2 =  0.4551
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     16.9707
>      Entering Dynamics:    iteration =     3
>      rr**2 = R1**2 =  0.4066
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.9916
>      Entering Dynamics:    iteration =     4
>      rr**2 = R1**2 =  0.1343
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.5648
>      Entering Dynamics:    iteration =     5
>      rr**2 = R1**2 =  0.0178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.4946
>      Entering Dynamics:    iteration =     6
>      rr**2 = R1**2 =  0.0675
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.0069
>      Entering Dynamics:    iteration =     7
>      rr**2 = R1**2 =  0.0900
> In pwscf.md.2.out, ...
>      Entering Dynamics:    iteration =  1001
>      rr**2 = R1**2 =  0.0005
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.2561
>      Entering Dynamics:    iteration =  1002
>      rr**2 = R1**2 =  5.9788
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     17.5861
>      Entering Dynamics:    iteration =  1003
>      rr**2 = R1**2 =  6.3549
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     21.5348
>      Entering Dynamics:    iteration =  1004
>      rr**2 = R1**2 =  0.2456
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     21.4447
>      Entering Dynamics:    iteration =  1005
>      rr**2 = R1**2 =  3.4239
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.1115
>      Entering Dynamics:    iteration =  1006
>      rr**2 = R1**2 =  7.3649
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     27.9920
>      Entering Dynamics:    iteration =  1007
>      rr**2 = R1**2 =  0.0014
> In pwscf.md.3.out, ...
>      Entering Dynamics:    iteration =  2001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  2002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  2003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  2004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  2005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  2006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  2007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.4.out, ...
>      Entering Dynamics:    iteration =  3001
>      rr**2 = R1**2 =  5.4303
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.3932
>      Entering Dynamics:    iteration =  3002
>      rr**2 = R1**2 =  1.8734
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     13.0914
>      Entering Dynamics:    iteration =  3003
>      rr**2 = R1**2 =  2.5076
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.2020
>      Entering Dynamics:    iteration =  3004
>      rr**2 = R1**2 =  0.1433
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.0210
>      Entering Dynamics:    iteration =  3005
>      rr**2 = R1**2 =  0.0064
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.3024
>      Entering Dynamics:    iteration =  3006
>      rr**2 = R1**2 =  0.0149
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.2369
>      Entering Dynamics:    iteration =  3007
>      rr**2 = R1**2 =  0.0167
> In pwscf.md.5.out, ...
>      Entering Dynamics:    iteration =  4001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  4002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  4003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  4004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  4005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  4006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  4007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.6.out, ...
>      Entering Dynamics:    iteration =  5001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  5002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  5003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  5004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  5005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  5006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  5007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.7.out, ...
>      Entering Dynamics:    iteration =  6001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  6002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  6003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  6004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  6005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  6006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  6007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.8.out, ...
>      Entering Dynamics:    iteration =  7001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration =  7002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration =  7003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration =  7004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration =  7005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration =  7006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration =  7007
>      rr**2 = R1**2 =  0.0441
> In pwscf.md.9.out, ...
>      Entering Dynamics:    iteration =  8001
>      rr**2 = R1**2 =  0.4205
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     14.5080
>      Entering Dynamics:    iteration =  8002
>      rr**2 = R1**2 =  0.3050
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.6254
>      Entering Dynamics:    iteration =  8003
>      rr**2 = R1**2 =  0.0240
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     30.3102
>      Entering Dynamics:    iteration =  8004
>      rr**2 = R1**2 =  0.3059
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     27.2656
>      Entering Dynamics:    iteration =  8005
>      rr**2 = R1**2 =  1.3938
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     25.6995
>      Entering Dynamics:    iteration =  8006
>      rr**2 = R1**2 =  0.1644
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.0694
>      Entering Dynamics:    iteration =  8007
>      rr**2 = R1**2 =  0.9569
> In pwscf.md.10.out, ...
>      Entering Dynamics:    iteration =  9001
>      rr**2 = R1**2 =  0.0004
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.3357
>      Entering Dynamics:    iteration =  9002
>      rr**2 = R1**2 =  0.6318
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     29.0240
>      Entering Dynamics:    iteration =  9003
>      rr**2 = R1**2 =  1.6068
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     16.8952
>      Entering Dynamics:    iteration =  9004
>      rr**2 = R1**2 =  8.1291
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     20.1966
>      Entering Dynamics:    iteration =  9005
>      rr**2 = R1**2 =  0.3745
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     17.5602
>      Entering Dynamics:    iteration =  9006
>      rr**2 = R1**2 =  0.2051
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =      9.9412
>      Entering Dynamics:    iteration =  9007
>      rr**2 = R1**2 =  0.6497
> In pwscf.md.11.out, ...
>      Entering Dynamics:    iteration = 10001
>      rr**2 = R1**2 =  0.2037
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     12.8909
>      Entering Dynamics:    iteration = 10002
>      rr**2 = R1**2 =  1.7910
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     25.1091
>      Entering Dynamics:    iteration = 10003
>      rr**2 = R1**2 =  0.0001
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.1760
>      Entering Dynamics:    iteration = 10004
>      rr**2 = R1**2 =  1.5191
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     28.9042
>      Entering Dynamics:    iteration = 10005
>      rr**2 = R1**2 =  0.1570
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     16.3407
>      Entering Dynamics:    iteration = 10006
>      rr**2 = R1**2 =  1.5338
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     22.1876
>      Entering Dynamics:    iteration = 10007
>      rr**2 = R1**2 =  0.8845
> In pwscf.md.12.out, ...
>      Entering Dynamics:    iteration = 11001
>      rr**2 = R1**2 =  1.4715
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     24.4598
>      Entering Dynamics:    iteration = 11002
>      rr**2 = R1**2 =  1.1178
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     19.6385
>      Entering Dynamics:    iteration = 11003
>      rr**2 = R1**2 =  1.3458
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     15.8245
>      Entering Dynamics:    iteration = 11004
>      rr**2 = R1**2 =  0.6379
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     18.7133
>      Entering Dynamics:    iteration = 11005
>      rr**2 = R1**2 =  0.0146
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     11.9063
>      Entering Dynamics:    iteration = 11006
>      rr**2 = R1**2 =  2.2273
>      sum_of_gaussians2 = R2**2+...+R_Nf**2 =     23.3447
>      Entering Dynamics:    iteration = 11007
>      rr**2 = R1**2 =  0.0441
>
>
> (2) andersen (atoms are randomly selected in each step)
>
> In run_4347, rounds 2, 5, 7, 8, 9, 11, and 12, atoms were randomly
> selected in the same manner. In run_6632450 (on a different machine),
> rounds 2, 4, 5, 6, 7, 8, 10, and 11, atoms were randomly selected in the
> same manner. Furthermore, in all these 15 rounds on two different machines,
> atoms were randomly selected in the same manner...
>
> ===========
> run_4347
> ===========
> In pwscf.md.1.out, ...
>      Entering Dynamics:    iteration =     1
>      Atom #    2 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =     2
>      Entering Dynamics:    iteration =     3
>      Entering Dynamics:    iteration =     4
>      Entering Dynamics:    iteration =     5
>      Entering Dynamics:    iteration =     6
>      Entering Dynamics:    iteration =     7
>      Entering Dynamics:    iteration =     8
>      Entering Dynamics:    iteration =     9
>      Entering Dynamics:    iteration =    10
>      Entering Dynamics:    iteration =    11
>      Entering Dynamics:    iteration =    12
>      Entering Dynamics:    iteration =    13
>      Entering Dynamics:    iteration =    14
>      Entering Dynamics:    iteration =    15
>      Entering Dynamics:    iteration =    16
>      Entering Dynamics:    iteration =    17
>      Entering Dynamics:    iteration =    18
> In pwscf.md.2.out, ...
>      Entering Dynamics:    iteration =  1001
>      Entering Dynamics:    iteration =  1002
>      Entering Dynamics:    iteration =  1003
>      Entering Dynamics:    iteration =  1004
>      Entering Dynamics:    iteration =  1005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  1006
>      Entering Dynamics:    iteration =  1007
>      Entering Dynamics:    iteration =  1008
>      Entering Dynamics:    iteration =  1009
>      Entering Dynamics:    iteration =  1010
>      Entering Dynamics:    iteration =  1011
>      Entering Dynamics:    iteration =  1012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  1013
>      Entering Dynamics:    iteration =  1014
>      Entering Dynamics:    iteration =  1015
>      Entering Dynamics:    iteration =  1016
> In pwscf.md.3.out, ...
>      Entering Dynamics:    iteration =  2001
>      Entering Dynamics:    iteration =  2002
>      Entering Dynamics:    iteration =  2003
>      Entering Dynamics:    iteration =  2004
>      Entering Dynamics:    iteration =  2005
>      Entering Dynamics:    iteration =  2006
>      Entering Dynamics:    iteration =  2007
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  2008
>      Entering Dynamics:    iteration =  2009
>      Entering Dynamics:    iteration =  2010
>      Entering Dynamics:    iteration =  2011
>      Atom #    1 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  2012
>      Entering Dynamics:    iteration =  2013
>      Entering Dynamics:    iteration =  2014
>      Entering Dynamics:    iteration =  2015
>      Entering Dynamics:    iteration =  2016
> In pwscf.md.4.out, ...
>      Entering Dynamics:    iteration =  3001
>      Entering Dynamics:    iteration =  3002
>      Entering Dynamics:    iteration =  3003
>      Entering Dynamics:    iteration =  3004
>      Entering Dynamics:    iteration =  3005
>      Entering Dynamics:    iteration =  3006
>      Entering Dynamics:    iteration =  3007
>      Entering Dynamics:    iteration =  3008
>      Entering Dynamics:    iteration =  3009
>      Entering Dynamics:    iteration =  3010
>      Entering Dynamics:    iteration =  3011
>      Atom #    5 is randomly selected
>      Atom #    7 is randomly selected
>      Andersen thermostat:    2 collisions
>      Entering Dynamics:    iteration =  3012
>      Entering Dynamics:    iteration =  3013
>      Atom #    1 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  3014
>      Atom #    4 is randomly selected
> In pwscf.md.5.out, ...
>      Entering Dynamics:    iteration =  4001
>      Entering Dynamics:    iteration =  4002
>      Entering Dynamics:    iteration =  4003
>      Entering Dynamics:    iteration =  4004
>      Entering Dynamics:    iteration =  4005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  4006
>      Entering Dynamics:    iteration =  4007
>      Entering Dynamics:    iteration =  4008
>      Entering Dynamics:    iteration =  4009
>      Entering Dynamics:    iteration =  4010
>      Entering Dynamics:    iteration =  4011
>      Entering Dynamics:    iteration =  4012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  4013
>      Entering Dynamics:    iteration =  4014
>      Entering Dynamics:    iteration =  4015
>      Entering Dynamics:    iteration =  4016
> In pwscf.md.6.out, ...
>      Entering Dynamics:    iteration =  5001
>      Entering Dynamics:    iteration =  5002
>      Entering Dynamics:    iteration =  5003
>      Entering Dynamics:    iteration =  5004
>      Atom #    4 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  5005
>      Entering Dynamics:    iteration =  5006
>      Entering Dynamics:    iteration =  5007
>      Atom #    2 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  5008
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  5009
>      Entering Dynamics:    iteration =  5010
>      Entering Dynamics:    iteration =  5011
>      Entering Dynamics:    iteration =  5012
>      Entering Dynamics:    iteration =  5013
>      Entering Dynamics:    iteration =  5014
> In pwscf.md.7.out, ...
>      Entering Dynamics:    iteration =  6001
>      Entering Dynamics:    iteration =  6002
>      Entering Dynamics:    iteration =  6003
>      Entering Dynamics:    iteration =  6004
>      Entering Dynamics:    iteration =  6005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  6006
>      Entering Dynamics:    iteration =  6007
>      Entering Dynamics:    iteration =  6008
>      Entering Dynamics:    iteration =  6009
>      Entering Dynamics:    iteration =  6010
>      Entering Dynamics:    iteration =  6011
>      Entering Dynamics:    iteration =  6012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  6013
>      Entering Dynamics:    iteration =  6014
>      Entering Dynamics:    iteration =  6015
>      Entering Dynamics:    iteration =  6016
> In pwscf.md.8.out, ...
>      Entering Dynamics:    iteration =  7001
>      Entering Dynamics:    iteration =  7002
>      Entering Dynamics:    iteration =  7003
>      Entering Dynamics:    iteration =  7004
>      Entering Dynamics:    iteration =  7005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  7006
>      Entering Dynamics:    iteration =  7007
>      Entering Dynamics:    iteration =  7008
>      Entering Dynamics:    iteration =  7009
>      Entering Dynamics:    iteration =  7010
>      Entering Dynamics:    iteration =  7011
>      Entering Dynamics:    iteration =  7012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  7013
>      Entering Dynamics:    iteration =  7014
>      Entering Dynamics:    iteration =  7015
>      Entering Dynamics:    iteration =  7016
> In pwscf.md.9.out, ...
>      Entering Dynamics:    iteration =  8001
>      Entering Dynamics:    iteration =  8002
>      Entering Dynamics:    iteration =  8003
>      Entering Dynamics:    iteration =  8004
>      Entering Dynamics:    iteration =  8005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  8006
>      Entering Dynamics:    iteration =  8007
>      Entering Dynamics:    iteration =  8008
>      Entering Dynamics:    iteration =  8009
>      Entering Dynamics:    iteration =  8010
>      Entering Dynamics:    iteration =  8011
>      Entering Dynamics:    iteration =  8012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  8013
>      Entering Dynamics:    iteration =  8014
>      Entering Dynamics:    iteration =  8015
>      Entering Dynamics:    iteration =  8016
> In pwscf.md.10.out, ...
>      Entering Dynamics:    iteration =  9001
>      Entering Dynamics:    iteration =  9002
>      Entering Dynamics:    iteration =  9003
>      Entering Dynamics:    iteration =  9004
>      Entering Dynamics:    iteration =  9005
>      Entering Dynamics:    iteration =  9006
>      Entering Dynamics:    iteration =  9007
>      Entering Dynamics:    iteration =  9008
>      Entering Dynamics:    iteration =  9009
>      Entering Dynamics:    iteration =  9010
>      Entering Dynamics:    iteration =  9011
>      Entering Dynamics:    iteration =  9012
>      Entering Dynamics:    iteration =  9013
>      Entering Dynamics:    iteration =  9014
>      Atom #    3 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  9015
>      Atom #    3 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  9016
> In pwscf.md.11.out, ...
>      Entering Dynamics:    iteration = 10001
>      Entering Dynamics:    iteration = 10002
>      Entering Dynamics:    iteration = 10003
>      Entering Dynamics:    iteration = 10004
>      Entering Dynamics:    iteration = 10005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration = 10006
>      Entering Dynamics:    iteration = 10007
>      Entering Dynamics:    iteration = 10008
>      Entering Dynamics:    iteration = 10009
>      Entering Dynamics:    iteration = 10010
>      Entering Dynamics:    iteration = 10011
>      Entering Dynamics:    iteration = 10012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration = 10013
>      Entering Dynamics:    iteration = 10014
>      Entering Dynamics:    iteration = 10015
>      Entering Dynamics:    iteration = 10016
> In pwscf.md.12.out, ...
>      Entering Dynamics:    iteration = 11001
>      Entering Dynamics:    iteration = 11002
>      Entering Dynamics:    iteration = 11003
>      Entering Dynamics:    iteration = 11004
>      Entering Dynamics:    iteration = 11005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration = 11006
>      Entering Dynamics:    iteration = 11007
>      Entering Dynamics:    iteration = 11008
>      Entering Dynamics:    iteration = 11009
>      Entering Dynamics:    iteration = 11010
>      Entering Dynamics:    iteration = 11011
>      Entering Dynamics:    iteration = 11012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration = 11013
>      Entering Dynamics:    iteration = 11014
>      Entering Dynamics:    iteration = 11015
>      Entering Dynamics:    iteration = 11016
>
>
> ===========
> run_6632450
> ===========
> In pwscf.md.1.out, ...
>      Entering Dynamics:    iteration =     1
>      Atom #    2 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =     2
>      Entering Dynamics:    iteration =     3
>      Entering Dynamics:    iteration =     4
>      Entering Dynamics:    iteration =     5
>      Entering Dynamics:    iteration =     6
>      Entering Dynamics:    iteration =     7
>      Entering Dynamics:    iteration =     8
>      Entering Dynamics:    iteration =     9
>      Entering Dynamics:    iteration =    10
>      Entering Dynamics:    iteration =    11
>      Entering Dynamics:    iteration =    12
>      Entering Dynamics:    iteration =    13
>      Entering Dynamics:    iteration =    14
>      Entering Dynamics:    iteration =    15
>      Entering Dynamics:    iteration =    16
>      Entering Dynamics:    iteration =    17
>      Entering Dynamics:    iteration =    18
> In pwscf.md.2.out, ...
>      Entering Dynamics:    iteration =  1001
>      Entering Dynamics:    iteration =  1002
>      Entering Dynamics:    iteration =  1003
>      Entering Dynamics:    iteration =  1004
>      Entering Dynamics:    iteration =  1005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  1006
>      Entering Dynamics:    iteration =  1007
>      Entering Dynamics:    iteration =  1008
>      Entering Dynamics:    iteration =  1009
>      Entering Dynamics:    iteration =  1010
>      Entering Dynamics:    iteration =  1011
>      Entering Dynamics:    iteration =  1012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  1013
>      Entering Dynamics:    iteration =  1014
>      Entering Dynamics:    iteration =  1015
>      Entering Dynamics:    iteration =  1016
> In pwscf.md.3.out, ...
>      Entering Dynamics:    iteration =  2001
>      Entering Dynamics:    iteration =  2002
>      Entering Dynamics:    iteration =  2003
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  2004
>      Entering Dynamics:    iteration =  2005
>      Entering Dynamics:    iteration =  2006
>      Entering Dynamics:    iteration =  2007
>      Entering Dynamics:    iteration =  2008
>      Entering Dynamics:    iteration =  2009
>      Entering Dynamics:    iteration =  2010
>      Entering Dynamics:    iteration =  2011
>      Entering Dynamics:    iteration =  2012
>      Entering Dynamics:    iteration =  2013
>      Entering Dynamics:    iteration =  2014
>      Entering Dynamics:    iteration =  2015
>      Entering Dynamics:    iteration =  2016
>      Entering Dynamics:    iteration =  2017
>      Entering Dynamics:    iteration =  2018
> In pwscf.md.4.out, ...
>      Entering Dynamics:    iteration =  3001
>      Entering Dynamics:    iteration =  3002
>      Entering Dynamics:    iteration =  3003
>      Entering Dynamics:    iteration =  3004
>      Entering Dynamics:    iteration =  3005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  3006
>      Entering Dynamics:    iteration =  3007
>      Entering Dynamics:    iteration =  3008
>      Entering Dynamics:    iteration =  3009
>      Entering Dynamics:    iteration =  3010
>      Entering Dynamics:    iteration =  3011
>      Entering Dynamics:    iteration =  3012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  3013
>      Entering Dynamics:    iteration =  3014
>      Entering Dynamics:    iteration =  3015
>      Entering Dynamics:    iteration =  3016
> In pwscf.md.5.out, ...
>      Entering Dynamics:    iteration =  4001
>      Entering Dynamics:    iteration =  4002
>      Entering Dynamics:    iteration =  4003
>      Entering Dynamics:    iteration =  4004
>      Entering Dynamics:    iteration =  4005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  4006
>      Entering Dynamics:    iteration =  4007
>      Entering Dynamics:    iteration =  4008
>      Entering Dynamics:    iteration =  4009
>      Entering Dynamics:    iteration =  4010
>      Entering Dynamics:    iteration =  4011
>      Entering Dynamics:    iteration =  4012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  4013
>      Entering Dynamics:    iteration =  4014
>      Entering Dynamics:    iteration =  4015
>      Entering Dynamics:    iteration =  4016
> In pwscf.md.6.out, ...
>      Entering Dynamics:    iteration =  5001
>      Entering Dynamics:    iteration =  5002
>      Entering Dynamics:    iteration =  5003
>      Entering Dynamics:    iteration =  5004
>      Entering Dynamics:    iteration =  5005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  5006
>      Entering Dynamics:    iteration =  5007
>      Entering Dynamics:    iteration =  5008
>      Entering Dynamics:    iteration =  5009
>      Entering Dynamics:    iteration =  5010
>      Entering Dynamics:    iteration =  5011
>      Entering Dynamics:    iteration =  5012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  5013
>      Entering Dynamics:    iteration =  5014
>      Entering Dynamics:    iteration =  5015
>      Entering Dynamics:    iteration =  5016
> In pwscf.md.7.out, ...
>      Entering Dynamics:    iteration =  6001
>      Entering Dynamics:    iteration =  6002
>      Entering Dynamics:    iteration =  6003
>      Entering Dynamics:    iteration =  6004
>      Entering Dynamics:    iteration =  6005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  6006
>      Entering Dynamics:    iteration =  6007
>      Entering Dynamics:    iteration =  6008
>      Entering Dynamics:    iteration =  6009
>      Entering Dynamics:    iteration =  6010
>      Entering Dynamics:    iteration =  6011
>      Entering Dynamics:    iteration =  6012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  6013
>      Entering Dynamics:    iteration =  6014
>      Entering Dynamics:    iteration =  6015
>      Entering Dynamics:    iteration =  6016
> In pwscf.md.8.out, ...
>      Entering Dynamics:    iteration =  7001
>      Entering Dynamics:    iteration =  7002
>      Entering Dynamics:    iteration =  7003
>      Entering Dynamics:    iteration =  7004
>      Entering Dynamics:    iteration =  7005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  7006
>      Entering Dynamics:    iteration =  7007
>      Entering Dynamics:    iteration =  7008
>      Entering Dynamics:    iteration =  7009
>      Entering Dynamics:    iteration =  7010
>      Entering Dynamics:    iteration =  7011
>      Entering Dynamics:    iteration =  7012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  7013
>      Entering Dynamics:    iteration =  7014
>      Entering Dynamics:    iteration =  7015
>      Entering Dynamics:    iteration =  7016
> In pwscf.md.9.out, ...
>      Entering Dynamics:    iteration =  8001
>      Entering Dynamics:    iteration =  8002
>      Entering Dynamics:    iteration =  8003
>      Entering Dynamics:    iteration =  8004
>      Entering Dynamics:    iteration =  8005
>      Entering Dynamics:    iteration =  8006
>      Entering Dynamics:    iteration =  8007
>      Entering Dynamics:    iteration =  8008
>      Entering Dynamics:    iteration =  8009
>      Entering Dynamics:    iteration =  8010
>      Entering Dynamics:    iteration =  8011
>      Entering Dynamics:    iteration =  8012
>      Entering Dynamics:    iteration =  8013
>      Entering Dynamics:    iteration =  8014
>      Entering Dynamics:    iteration =  8015
>      Entering Dynamics:    iteration =  8016
>      Entering Dynamics:    iteration =  8017
>      Entering Dynamics:    iteration =  8018
>      Entering Dynamics:    iteration =  8019
>      Entering Dynamics:    iteration =  8020
> In pwscf.md.10.out, ...
>      Entering Dynamics:    iteration =  9001
>      Entering Dynamics:    iteration =  9002
>      Entering Dynamics:    iteration =  9003
>      Entering Dynamics:    iteration =  9004
>      Entering Dynamics:    iteration =  9005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  9006
>      Entering Dynamics:    iteration =  9007
>      Entering Dynamics:    iteration =  9008
>      Entering Dynamics:    iteration =  9009
>      Entering Dynamics:    iteration =  9010
>      Entering Dynamics:    iteration =  9011
>      Entering Dynamics:    iteration =  9012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration =  9013
>      Entering Dynamics:    iteration =  9014
>      Entering Dynamics:    iteration =  9015
>      Entering Dynamics:    iteration =  9016
> In pwscf.md.11.out, ...
>      Entering Dynamics:    iteration = 10001
>      Entering Dynamics:    iteration = 10002
>      Entering Dynamics:    iteration = 10003
>      Entering Dynamics:    iteration = 10004
>      Entering Dynamics:    iteration = 10005
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration = 10006
>      Entering Dynamics:    iteration = 10007
>      Entering Dynamics:    iteration = 10008
>      Entering Dynamics:    iteration = 10009
>      Entering Dynamics:    iteration = 10010
>      Entering Dynamics:    iteration = 10011
>      Entering Dynamics:    iteration = 10012
>      Atom #    6 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration = 10013
>      Entering Dynamics:    iteration = 10014
>      Entering Dynamics:    iteration = 10015
>      Entering Dynamics:    iteration = 10016
> In pwscf.md.12.out, ...
>      Entering Dynamics:    iteration = 11001
>      Entering Dynamics:    iteration = 11002
>      Entering Dynamics:    iteration = 11003
>      Entering Dynamics:    iteration = 11004
>      Entering Dynamics:    iteration = 11005
>      Entering Dynamics:    iteration = 11006
>      Entering Dynamics:    iteration = 11007
>      Entering Dynamics:    iteration = 11008
>      Entering Dynamics:    iteration = 11009
>      Entering Dynamics:    iteration = 11010
>      Entering Dynamics:    iteration = 11011
>      Entering Dynamics:    iteration = 11012
>      Entering Dynamics:    iteration = 11013
>      Atom #    3 is randomly selected
>      Andersen thermostat:    1 collisions
>      Entering Dynamics:    iteration = 11014
>      Entering Dynamics:    iteration = 11015
>      Entering Dynamics:    iteration = 11016
>      Entering Dynamics:    iteration = 11017
>      Entering Dynamics:    iteration = 11018
>
>
> Again, thank you very much for the patch file. I hope this report could
> provide some useful information for QE development.
>
> Best regards,
>
> Han Hsu
>
>
> On Thu, Aug 10, 2023 at 9:48 PM Paolo Giannozzi <paolo.giannozzi at uniud.it>
> wrote:
>
>> Thank you for reporting this. Could you please try the attached patch
>> and report if it fixes your problem?
>>
>> Paolo
>>
>> On 8/10/23 12:36, Han Hsu (徐翰) wrote:
>> >
>> > You don't often get email from hanhsu at ncu.edu.tw. Learn why this is
>> > important <https://aka.ms/LearnAboutSenderIdentification>
>> >
>> >
>> > Dear QE developers and users,
>> >
>> > I've been performing Born-Oppenheimer molecular dynamics (BOMD)
>> > calculations for hcp Fe at high-PT conditions using Quantum Espresso
>> > (pw.x, calculation= 'md'). For the thermostats, I am testing stochastic
>> > velocity rescaling (svr) and Andersen, as they are the only ones (in
>> QE)
>> > that generate canonical ensembles. For these two thermostats, random
>> > numbers are generated in each time step. I find, however, that in
>> > restart calculations (restart_mode= 'restart'), the random numbers are
>> > not generated properly. In each restart calculation, the same sequence
>> > of random numbers are generated, as shown in detail in the next few
>> > paragraphs. Consequently, the calculation results (e.g pressure,
>> > temperature) exhibit a periodic behavior, with a period same as the
>> > length of each restart calculation. My question is: Can we avoid this
>> > problem by properly setting the random seed in restart calculations? If
>> > so, how to do that? (For restart_mode= 'from_scratch', such a problem
>> > does not occur, as also shown in the next few paragraphs).
>> >
>> > Note: To print out the random numbers generated in each time step, a
>> few
>> > more lines (write statements) have to be added to the file
>> > PW/src/dynamics_module.f90. Also, to obtain lots of data within a short
>> > time, I use fcc Si (8-atom cells) to run extensive tests. For these
>> > tests, each run consists of 12000 time steps divided into 12 rounds of
>> > calculations: A from_scratch round (steps 1–1000) followed by 11
>> restart
>> > rounds (steps 1001–2000, 2001–3000, ..., 11001–12000).
>> >
>> > For the 'svr' thermostat, random numbers (R1, R2,..., R_Nf) from
>> > gaussian distribution are generated in teach time step. In the
>> > from_scratch calculation (steps 1–1000), the random numbers generated
>> in
>> > steps 1–4 are are as below:
>> >
>> >       Entering Dynamics:    iteration =     1
>> >       rr**2 = R1**2 =  2.2273
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 23.3447
>> >       Entering Dynamics:    iteration =     2
>> >       rr**2 = R1**2 =  0.0441
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 17.0921
>> >       Entering Dynamics:    iteration =     3
>> >       rr**2 = R1**2 =  0.6032
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 16.4800
>> >       Entering Dynamics:    iteration =     4
>> >       rr**2 = R1**2 =  1.2989
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 13.2204
>> >
>> > Next, in the restart calculation for steps 1001–2000, the random
>> numbers
>> > generated in steps 1001–1004 are are as below:
>> >
>> >       Entering Dynamics:    iteration =  1001
>> >       rr**2 = R1**2 =  0.0008
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 18.0810
>> >       Entering Dynamics:    iteration =  1002
>> >       rr**2 = R1**2 =  0.8306
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 19.9568
>> >       Entering Dynamics:    iteration =  1003
>> >       rr**2 = R1**2 =  1.0171
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 14.5561
>> >       Entering Dynamics:    iteration =  1004
>> >       rr**2 = R1**2 =  0.0605
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 28.3579
>> >
>> > Next, in the restart calculation for steps 2001–3000, the random
>> numbers
>> > generated in steps 2001–2004 are are as below:
>> >
>> >       Entering Dynamics:    iteration =  2001
>> >       rr**2 = R1**2 =  0.0008
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 18.0810
>> >       Entering Dynamics:    iteration =  2002
>> >       rr**2 = R1**2 =  0.8306
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 19.9568
>> >       Entering Dynamics:    iteration =  2003
>> >       rr**2 = R1**2 =  1.0171
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 14.5561
>> >       Entering Dynamics:    iteration =  2004
>> >       rr**2 = R1**2 =  0.0605
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 28.3579
>> >
>> > Next, in the restart calculation for steps 3001–4000, the random
>> numbers
>> > generated in steps 3001–3004 are are as below:
>> >
>> >       Entering Dynamics:    iteration =  3001
>> >       rr**2 = R1**2 =  0.0008
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 18.0810
>> >       Entering Dynamics:    iteration =  3002
>> >       rr**2 = R1**2 =  0.8306
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 19.9568
>> >       Entering Dynamics:    iteration =  3003
>> >       rr**2 = R1**2 =  1.0171
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 14.5561
>> >       Entering Dynamics:    iteration =  3004
>> >       rr**2 = R1**2 =  0.0605
>> >       sum_of_gaussians2 = R2**2+...+R_Nf**2 = 28.3579
>> >
>> > Clearly, the same sequence of random numbers are generated in all
>> > restart rounds (steps 1001–2000, 2001–3000, 3001–4000, ..., etc.),
>> while
>> > the from_scratch round (steps 1–1000) is an exception. I am thus
>> > wondering how to properly generate/seed the random numbers in restart
>> > calculations?
>> >
>> > A few more remarks:
>> > (1) I have done this test on different facilities at different
>> > institutes. The same pattern persists.
>> > (2) For Andersen thermostat, the same pattern persists: In the restart
>> > calculations, at the same respective time steps (e.g. steps 1001, 2001,
>> > 3001, ...), the same atoms are "randomly" chosen to interact with the
>> > heat bath.
>> >
>> > Finally, my understanding is that in Quantum Espresso, generation and
>> > seed of random numbers are controlled by Modules/random_numbers.f90 and
>> > a subroutine set_random_seed(). To properly set the random seed in
>> > restart calculations, perhaps the subroutine set_random_seed() should
>> be
>> > called somewhere? (Probably not in dynamics_module.f90, as we do not
>> > want to reseed the random number in every time step...)
>> >
>> > Any suggestions and advice are appreciated. Thank you very much for the
>> > help!!
>> >
>> >
>> > Best regards,
>> >
>> >
>> > Han Hsu
>> > Department of Physics
>> > National Central University (Taiwan)
>> >
>> > --
>> > ===============================
>> >   Han Hsu (徐翰)
>> >   Associate Professor
>> >   Department of Physics
>> >   National Central University
>> >   Taoyuan 32001, Taiwan
>> >   Email: hanhsu at ncu.edu.tw <mailto:hanhsu at ncu.edu.tw>
>> >   Web: sites.google.com/site/hanhsuphys
>> > <https://sites.google.com/site/hanhsuphys/>
>> >   Tel: +886-3-422-7151 ext 65303
>> >   Fax: +886-3-425-1175
>> > ===============================
>> >
>> > _______________________________________________
>> > The Quantum ESPRESSO community stands by the Ukrainian
>> > people and expresses its concerns about the devastating
>> > effects that the Russian military offensive has on their
>> > country and on the free and peaceful scientific, cultural,
>> > and economic cooperation amongst peoples
>> > _______________________________________________
>> > Quantum ESPRESSO is supported by MaX (www.max-centre.eu)
>> > users mailing list users at lists.quantum-espresso.org
>> > https://lists.quantum-espresso.org/mailman/listinfo/users
>>
>> --
>> Paolo Giannozzi, Dip. Scienze Matematiche Informatiche e Fisiche,
>> Univ. Udine, via delle Scienze 208, 33100 Udine, Italy
>> Phone +39-0432-558216, fax +39-0432-558222
>
>
>
> --
> =========================
>  Han Hsu (徐翰)
>  NCU Physics, Taoyuan, Taiwan
>  +886-3-422-7151 ext 65303
> =========================
>


-- 
=========================
 Han Hsu (徐翰)
 NCU Physics, Taoyuan, Taiwan
 +886-3-422-7151 ext 65303
=========================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20230815/3e622960/attachment.html>


More information about the users mailing list