[QE-users] Random seed for MD calculations

Han Hsu (徐翰) hanhsu at ncu.edu.tw
Sun Aug 27 09:32:53 CEST 2023


Dear Professor Giannozzi,

Thank you very much for the update. I am glad that my suggestion helps. I
look forward to the next release.

Best wishes,

Han

On Fri, Aug 25, 2023 at 8:58 PM Paolo Giannozzi <paolo.giannozzi at uniud.it>
wrote:

> Thank you for noticing again a problem. It will be fixed in next release:
>    https://gitlab.com/QEF/q-e/-/merge_requests/2137
> Paolo
>
> On 8/14/23 19:24, 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 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
> > <mailto: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 <mailto: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
> >         <mailto:hanhsu at ncu.edu.tw>. Learn why this is
> >          > important <https://aka.ms/LearnAboutSenderIdentification
> >         <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>
> >         <mailto:hanhsu at ncu.edu.tw <mailto:hanhsu at ncu.edu.tw>>
> >          >   Web: sites.google.com/site/hanhsuphys
> >         <http://sites.google.com/site/hanhsuphys>
> >          > <https://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
> >         <http://www.max-centre.eu>)
> >          > users mailing list users at lists.quantum-espresso.org
> >         <mailto:users at lists.quantum-espresso.org>
> >          > https://lists.quantum-espresso.org/mailman/listinfo/users
> >         <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
> > =========================
>
> --
> Paolo Giannozzi, Dip. Scienze Matematiche Informatiche e Fisiche,
> Univ. Udine, via delle Scienze 208, 33100 Udine Italy, +39-0432-558216
>


-- 
=========================
 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/20230827/84d78763/attachment.html>


More information about the users mailing list