Hi Lesheng,
The error comes from the fact that the bisection command is used when the wave function size is zero. At that point in the script, the plane wave energy cutoff has not yet been defined, so the wave function size is zero. Of course Qbox should do a better job and print an error message rather than crash. We will file a bug report and fix that.
Regarding the use of the bisection algorithm, it appears that bisection will not be very effective on such a small system, and it is not likely to bring a significant speedup of the PBE0 calculation.
For a PBE0 calculation of the ground state, I have the following advice:
- The HSCV potentials are not the best choice we have today. I recommend using the more recent ONCV pseudopotentials available at http://www.quantum-simulation.org/poten ... /index.htm. The ONCV potentials are more accurate and have been tested against all-electron calculations of solids (see M. Schlipf and F. Gygi, Computer Physics Communications 196, 36 (2015).http://dx.doi.org/10.1016/j.cpc.2015.05.011).
- A plane wave cutoff of 60 Ry is advisable for accurate calculations involving the N atom, although you may want to test accuracy with different Ecut values.
- The default value of alpha_PBE0 is 0.25, so there is no need to set it if the normal PBE0 approximation is used.
- Using the JD algorithm for wave function optimization leads to faster convergence.
- The ecutprec variable can be left to its default value (zero) which leads to automatic preconditioning.
- Using the -atomic_density option with the run command help converging faster by starting from a sum of atomic densities.
- When computing a PBE0 ground state, it is usually more efficient to first compute the PBE ground state and then switch to PBE0 and run a few additional iterations. This can all be done in the same script, as you can see below.
I suggest the following script for the PBE0 ground state calculation:
Code: Select all
set cell 14.235305872 0 0 7.117652936 12.328136516 0 0 0 32.125341806
species boron B_ONCV_PBE-1.0.xml
species nitrogen N_ONCV_PBE-1.0.xml
species lithium Li_ONCV_PBE-1.0.xml
atom B1 boron 0.00641352 0.00434673 -0.114416
atom B2 boron 4.74927 0.0232024 0.0478804
atom B3 boron 9.49084 0.00531087 -0.118418
atom N1 nitrogen 2.37662 1.37271 0.0282404
atom N2 nitrogen 7.12087 1.37298 0.0229718
atom N3 nitrogen 11.8669 1.37134 -0.136053
atom B4 boron 2.39404 4.1024 0.0478262
atom B5 boron 7.10568 4.10309 0.046615
atom B6 boron 11.8662 4.08375 -0.0559615
atom N4 nitrogen 4.74897 5.48128 0.0224294
atom N5 nitrogen 9.50574 5.48884 0.137381
atom N6 nitrogen 14.2289 5.48917 0.140786
atom B7 boron 4.74946 8.21746 -0.118873
atom B8 boron 9.46917 8.23534 -0.0568062
atom B9 boron 14.2651 8.23639 -0.0631715
atom N7 nitrogen 7.1206 9.59217 -0.136521
atom N8 nitrogen 11.8676 9.579 0.141165
atom N9 nitrogen 16.6133 9.59229 -0.140056
atom Li1 lithium 11.9147 6.88693 3.61816
set ecut 60
set xc PBE
set wf_dyn JD
set nempty 36
randomize_wf
set scf_tol 1.E-8
set net_charge 1
run -atomic_density 0 200 2
set xc PBE0
run 0 30 2
save gspbe0.xml
Since this system appears to have a sizeable band gap, you may consider running your MD simulation using occupied states only. This makes the calculation substantially faster. Of course, it only works if you can safely assume that the band gap will not close during the simulation.
For a calculation of the PBE0 ground state using occupied states only, I would suggest the following script:
Code: Select all
set cell 14.235305872 0 0 7.117652936 12.328136516 0 0 0 32.125341806
species boron B_ONCV_PBE-1.0.xml
species nitrogen N_ONCV_PBE-1.0.xml
species lithium Li_ONCV_PBE-1.0.xml
atom B1 boron 0.00641352 0.00434673 -0.114416
atom B2 boron 4.74927 0.0232024 0.0478804
atom B3 boron 9.49084 0.00531087 -0.118418
atom N1 nitrogen 2.37662 1.37271 0.0282404
atom N2 nitrogen 7.12087 1.37298 0.0229718
atom N3 nitrogen 11.8669 1.37134 -0.136053
atom B4 boron 2.39404 4.1024 0.0478262
atom B5 boron 7.10568 4.10309 0.046615
atom B6 boron 11.8662 4.08375 -0.0559615
atom N4 nitrogen 4.74897 5.48128 0.0224294
atom N5 nitrogen 9.50574 5.48884 0.137381
atom N6 nitrogen 14.2289 5.48917 0.140786
atom B7 boron 4.74946 8.21746 -0.118873
atom B8 boron 9.46917 8.23534 -0.0568062
atom B9 boron 14.2651 8.23639 -0.0631715
atom N7 nitrogen 7.1206 9.59217 -0.136521
atom N8 nitrogen 11.8676 9.579 0.141165
atom N9 nitrogen 16.6133 9.59229 -0.140056
atom Li1 lithium 11.9147 6.88693 3.61816
set ecut 60
set xc PBE
set wf_dyn JD
randomize_wf
set scf_tol 1.E-8
set net_charge 1
set wf_diag T
run -atomic_density 0 200 2
set xc PBE0
run 0 30 2
save gspbe0_occ.xml
I will post below other suggestions for the MD simulation scripts.
Francois