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 han...@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 (徐翰) <han...@ncu.edu.tw <mailto:han...@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.gianno...@uniud.it <mailto:paolo.gianno...@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 han...@ncu.edu.tw
        <mailto:han...@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: han...@ncu.edu.tw <mailto:han...@ncu.edu.tw>
        <mailto:han...@ncu.edu.tw <mailto:han...@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@lists.quantum-espresso.org
        <mailto:users@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
_______________________________________________
The Quantum ESPRESSO community stands by the Ukrainian
people and expresses its concerns about the devastating
effects that the Russian military offensive has on their
country and on the free and peaceful scientific, cultural,
and economic cooperation amongst peoples
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu)
users mailing list users@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/users

Reply via email to