Greetings!
I have a problem in ground state calculation with exciting_mpismp when dealing with a large system (Exactly 100 atoms) with both heavy atoms (like Sn) and light atoms (like Hydrogen). Can we set different rgkmax values and gmaxvr values for different elements in a single exciting task to speed up the calculation?
Below is the detailed description for this problem:
According to examples in tutorials (e.g. How to Run Calculations for Simple Molecules - exciting), the rmt for Hydrogen is set as 0.9. Then the default value of rgkmax(7.0) and gmaxvr(12.0) will bring an error in input.out file: “Error(Get_gkmax): 2*gkmax > gmaxvr”. Here the gkmax is the ratio of rgkmax and rmtmin(which is 0.9 for Hydrogen in my systems). Thus, the rgkmax is reset as 5.0. I dare not to set a smaller value for rgkmax(e.g. 3.5 or 4.0), because I think it will decrease the accuracy for heavy atoms (like Sn in my system).
The part of input.xml file is shown as below.
<structure speciespath=…>
…
<species speciesfile=“Sn.xml” rmt=“2.5”>
<atom coord=…/>
…
</species>
\<species speciesfile="H.xml" rmt="0.9"\>
...
\</species\>
...
</structure>
<groundstate
ngridk=“2 2 1”
outputlevel=“high”
rgkmax=“5.0”
xctype=“GGA_PBE_SOL”
gmaxvr=“12”
…
>
</groundstate>
However, such high level of rgkmax value for Hydrogen makes the calculation very expensive. I tried a system (SYSTEM 1) with 100 atoms (48 Hydrogen atoms and 52 non-hydrogen atoms). The first step of SCF iteration takes about 95000 seconds: (Here we used 4 cores of CPU, and the same below. We find that parallelization of more CPU processors has no help for lowering the running time on our machine.)
- SCF iteration number : 1 +
Wall time (seconds) : 94825.56
Then, I deleted all of the hydrogen atoms without any other changes in the input file. The system (SYSTEM 2 only for test) contains only 52 non-hydrogen atoms now (624 electrons in total). And there are 32 Carbon(rmt=1.10) atoms currently the lightest element in this system). The first step of SCF iteration takes about 21000 seconds:
- SCF iteration number : 1 +
Wall time (seconds) : 21210.43- SCF iteration number : 2 +
Wall time (seconds) : 42074.30
These results means the hydrogen atoms can greatly increase the cost of calculation, although there is only one electron in each hydrogen atom.
I also tried another system (SYSTEM 3 only for test) with 42 atoms (1652 electrons in total), among which there are 14 Phosphorus atoms (rmt=1.80) as the lightest element. The first step of SCF iteration takes about only 600 seconds, far shorter than 21000 seconds for the SYSTEM 2 mentioned above. Note that the number of electrons in total for SYSTEM 3 is greatly larger than that of SYSTEM 2, but SYSTEM 3 runs faster.
The Hamiltonian information for these 3 systems are summarized from input files and shown as below:
SYSTEM1 SYSTEM2 SYSTEM3
Maximum Hamiltonian size: 24030 15201 3817
Maximum number of plane-waves: 23722 14941 3327
Total number of local-orbitals: 308 260 490
So, I think if we can set different rgkmax values and gmaxvr values for different elements in a single exciting task, then the size of Maximum Hamiltonian can be reduced, and the calculating in exciting for such complex systems like SYSTEM 1 (which we are focusing on) can speed up significantly. Can we realize this, and how to? Or are there any other useful strategies (maybe like pseudo-potentials) to improve the efficiency?
Thanks in advance. Any help would be appreciated!