You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Current ABACUS sometimes faces convergence challenge for some complicated metal/surface and spin-polarized systems. In order to improve the convergence performance of ABACUS, we will try new algorithms in ABACUS, and a feasible roadmap is as follows:
Step IV:(Optional) Increase history dimension in DIIS calculations.
Current default value is 8 in ABACUS, which is 45 in VASP. Increasing ndim is quite important in some calculations. To this end, we need to reduce the memory cost of residual. We can make this reduction by using a cutoff in G-space, which is effective for PW calculation, but does not work in LCAO calculation.
Step V:(Optional) Try metric of inner product.
As mentioned in Ref. Physical review B, 54(16), 11169, the metric of inner product sometimes is even more important than kerker preconditioner, which is worth to try.
Step VI:Build an automated workflow for Mixing
During all above development, we will make heavy tests to make sure every modification is meaningful. During this process, we will gradually optimize an automated workflow.
Step VII:Polish default value of mixing parameter
Taking advantage of automated workflow, we will delete Charge::auto_set() and polish default value of mixing parameter. Current default value is mixing_beta=0.2, mixing_gg0=1.0 for metals; mixing_beta=0.7, mixing_gg0=1.0 for semimetals.
We just list some practical and promising choice to improve ABACUS's convergence performance, any other suggestion is welcomed to discuss.
Background
Current ABACUS sometimes faces convergence challenge for some complicated metal/surface and spin-polarized systems. In order to improve the convergence performance of ABACUS, we will try new algorithms in ABACUS, and a feasible roadmap is as follows:
Done.
Issue Feature: change criterion in kerker dielectric matrix calculations for charge mixing #3094
PR Feature: improved implementation of kerker preconditioner #3133
Issue Feature: add a new parameter mixing_gg0_min #3294
PR Feature: add a new parameter 'mixing_gg0_min' #3305
Currently, ABACUS calculate residual using charge density and magnetic density together. Ref: Journal of the Physical Society of Japan 82 (2013) 114706. This modification is expected to greatly improve the convergence calculation problem of magnetic materials.
nspin=2 Done.
Issue Feature: mix charge density and magnetic density separately #3225
PR Feature: a new mixing method for magnetic calculations #3226
nspin=2 for metaGGA Done.
Issue Poor performance of mGGA functional in ABACUS for spin-polarized SCF #3260
PR Bug: Fix convergence problem of spin-polarized metaGGA calculation for nspin=2 #3328
nspin=4
Issue Feature: update mixing method for non-colinear calculation #3285
PR Feature: mixing density and magnetism {mx,my,mz} separately for non-colinear calculation #3330
nspin=4 angle mixing
Issue Feature: more advanced mixing method for non-colinear calculations #3336
PR Feature: a promising angle mixing method for non-colinear calculations #3356
Now, ABACUS only mix charge density instead of density matrix. This modification is expected to greatly improve the convergence calculation problem of several calculations, in which use density matrix as projector, f.e. DFT+U/DeepKS/EXX.
Issue Feature: mix density matrix by the coefficients of charge density mixing #3535
PR Feature: mix real-space density matrix for better convergence of DFT+U #3549
Current default value is 8 in ABACUS, which is 45 in VASP. Increasing
ndimis quite important in some calculations. To this end, we need to reduce the memory cost of residual. We can make this reduction by using a cutoff in G-space, which is effective for PW calculation, but does not work in LCAO calculation.As mentioned in Ref. Physical review B, 54(16), 11169, the metric of inner product sometimes is even more important than kerker preconditioner, which is worth to try.
During all above development, we will make heavy tests to make sure every modification is meaningful. During this process, we will gradually optimize an automated workflow.
Taking advantage of automated workflow, we will delete
Charge::auto_set()and polish default value of mixing parameter. Current default value ismixing_beta=0.2,mixing_gg0=1.0for metals;mixing_beta=0.7,mixing_gg0=1.0for semimetals.We just list some practical and promising choice to improve ABACUS's convergence performance, any other suggestion is welcomed to discuss.
Describe the solution you'd like
Realize this roadmap step by step.