[QE-users] Random seed for MD calculations

Paolo Giannozzi paolo.giannozzi at uniud.it
Fri Aug 25 14:57:55 CEST 2023


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


More information about the users mailing list