I am running a calculation for electro-optic coefficients using version 10.2.7.
I successfully completed the calculation for the tutorial for AlP using the PEAD method. When I used the tutorial input file as a templet for my system, the calculation can successfully finish up to the 1st-order WF derivatives with respect to atomic displacements, and electric field (in dataset 4). However, when it calculates the 1st-order WF derivatives with respect to strain, it stopped after completing the SCF loop for the first strain calculation (uniaxial xx strain perturbation). The error messages are follows,
Program received signal SIGABRT: Process abort signal.
Backtrace for this error:
…
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
======================================
I should mention that the code (version 10.2.7) does not have any issues in my other Abinit calculations. It also does not have issues when I run the AlP tutorial by using MPI with 256 cores.
It seems to be crashing when allocating a 0 length array. gfort is usually fine with that, but in case it’s the issue, replace line 608 in src/66_nonlocal/m_nonlop.F90 with
ABI_MALLOC(enl_ndat_ptr, (1,1,1,1,1))
recompile, pray, and re-run.
This said, from your output it seems that only DATASET 1 was being run. Could be clipped by the buffering of the output, and it would be crashing in DATASET 2 actually (DFPT).
With reduced convergence parameters everything runs fine, so I don’t think there is a bug. Probably a config/compile/platform problem.
Since v9.4.1 woks well on my platform, v10,2.7 was re-compiled by using the
same compilers and configure as those used for v9.4.1.
Now, I split the EO job into two jobs. The first job is to calculate response functions (2nd derivatives of E) and corresponding 1st order WF derivatives
with respect to phonons, electric fields, and strains.
I run the job (first job mentioned above) by v9.4.1 and v10.2.7. The job by v9.4.1
completed successfully, while the job by v10.2.7 failed in 1st order WF derivatives with respect to strains. Maybe it is a bug in v10.2.7 related to strain?
I attached the input file. I also attached the output and log files from v9.4.1 and v10.2.7. The error file from v10.2.7 was attached as well.
Since v9.4.1 cannot calculate 3rd derivatives of energy, and v10.2.7 does not work for response function in my case, I did follow trick.
I first calculated response function (2nd derivatives of E and corresponding 1st order WF derivatives) by v9.4.1. I got data of eo_2_1o_DS4_DDB (attached). I then run v10.2.7 and got data for 3rd derivatives of energy, eo_2_1o_DS5_DDB (attached). However, when I tried to combine two DDB files by mrgddb, it did not work no matter mrgddb is from v9.4.1 or v10.2.7 because two DDBs have different versions (100401 vs 20230401).
I replaced line 608 in src/66_nonlocal/m_nonlop.F90 with
ABI_MALLOC(enl_ndat_ptr, (1,1,1,1,1))
recompiled and re-run. I got the same issue.
I recompiled 10.2.7 using the same compilers as those used for 9.4.1 on the same platform. I tested a job by 9.4.1 and 10.2.7. The job successfully completed by 9.4.1, while failed by 10.2.7. I attached all relevant files in the previous email.
Would you please take a look at the files and give further insights, suggestions or comments. Appreciated.