abacus-develop icon indicating copy to clipboard operation
abacus-develop copied to clipboard

Issue in cell-relax calculation

Open kogareru1z opened this issue 9 months ago • 4 comments

Details

When using BFGS for structural optimization, the following error occurred: trust radius is too small! Break down When I use the CG method, the step of relaxation continues indefinitely and cannot converge to the final result, and the following warning appeared: WARNING: PRICELL: NCELL != NTRANS! NCELL=24, NTRANS=13. Suggested solution: Use a larger symmetry_prec. Now regard the structure as a primitive cell

INPUT_PARAMETERS

#Parameters (1.General) suffix C_600_test calculation cell-relax
out_stru 1 cal_force 1
cal_stress 1 ntype 1
symmetry 1
vdw_method d3_bj pseudo_dir ./ orbital_dir ./ relax_nmax 500 relax_new True device gpu

#Parameters (2.Iteration) ecutwfc 80
scf_thr 1.0e-7
scf_nmax 120

#Parameters (3.Basis)
basis_type pw
relax_method bfgs symmetry_prec 5.0e-5 relax_bfgs_rmin 1e-6

#Parameters (4.Smearing) smearing_method gaussian smearing_sigma 0.001 force_thr_ev 0.001

ATOMIC_SPECIES C 12.011 C_ONCV_PBE-1.2.upf

LATTICE_CONSTANT 1.889726

LATTICE_VECTORS 8.6465800000 0.0000000000 0.0000000000
0.0000000000 7.4881580000 0.0000000000
0.0000000000 0.0000000000 7.4907400000

ATOMIC_POSITIONS Direct

C 0.0000000000 48 0.0824720000 0.1649430000 0.2500000000 1 1 1 mag 0.0 0.3350560000 0.0000000000 0.2500000000 1 1 1 mag 0.0 0.8324720000 0.3350560000 0.2500000000 1 1 1 mag 0.0 0.1675280000 0.3350560000 0.2500000000 1 1 1 mag 0.0 0.1649430000 0.0000000000 0.2500000000 1 1 1 mag 0.0 0.9175280000 0.1649430000 0.2500000000 1 1 1 mag 0.0 0.5824720000 0.1649400000 0.2500000000 1 1 1 mag 0.0 0.8350560000 0.0000000000 0.2500000000 1 1 1 mag 0.0 0.3324720000 0.3350620000 0.2500000000 1 1 1 mag 0.0 0.6675280000 0.3350560000 0.2500000000 1 1 1 mag 0.0 0.6649430000 0.0000000000 0.2500000000 1 1 1 mag 0.0 0.4175280000 0.1649430000 0.2500000000 1 1 1 mag 0.0 0.8324720000 0.6649430000 0.2500000000 1 1 1 mag 0.0 0.0850570000 0.5000000000 0.2500000000 1 1 1 mag 0.0 0.5824720000 0.8350560000 0.2500000000 1 1 1 mag 0.0 0.9175280000 0.8350560000 0.2500000000 1 1 1 mag 0.0 0.9149440000 0.5000000000 0.2500000000 1 1 1 mag 0.0 0.6675280000 0.6649430000 0.2500000000 1 1 1 mag 0.0 0.3324720000 0.6649430000 0.2500000000 1 1 1 mag 0.0 0.5850570000 0.5000000000 0.2500000000 1 1 1 mag 0.0 0.0824720000 0.8350560000 0.2500000000 1 1 1 mag 0.0 0.4175280000 0.8350560000 0.2500000000 1 1 1 mag 0.0 0.4149440000 0.5000000000 0.2500000000 1 1 1 mag 0.0 0.1675280000 0.6649430000 0.2500000000 1 1 1 mag 0.0 0.0824720000 0.1649430000 0.7500000000 1 1 1 mag 0.0 0.3350560000 0.0000000000 0.7500000000 1 1 1 mag 0.0 0.8324720000 0.3350560000 0.7500000000 1 1 1 mag 0.0 0.1675280000 0.3350560000 0.7500000000 1 1 1 mag 0.0 0.1649430000 0.0000000000 0.7500000000 1 1 1 mag 0.0 0.9175280000 0.1649430000 0.7500000000 1 1 1 mag 0.0 0.5824720000 0.1649430000 0.7500000000 1 1 1 mag 0.0 0.8350560000 0.0000000000 0.7500000000 1 1 1 mag 0.0 0.3324720000 0.3350560000 0.7500000000 1 1 1 mag 0.0 0.6675280000 0.3350560000 0.7500000000 1 1 1 mag 0.0 0.6649430000 0.0000000000 0.7500000000 1 1 1 mag 0.0 0.4175280000 0.1649430000 0.7500000000 1 1 1 mag 0.0 0.8324720000 0.6649430000 0.7500000000 1 1 1 mag 0.0 0.0850570000 0.5000000000 0.7500000000 1 1 1 mag 0.0 0.5824720000 0.8350560000 0.7500000000 1 1 1 mag 0.0 0.9175280000 0.8350560000 0.7500000000 1 1 1 mag 0.0 0.9149440000 0.5000000000 0.7500000000 1 1 1 mag 0.0 0.6675280000 0.6649430000 0.7500000000 1 1 1 mag 0.0 0.3324720000 0.6649430000 0.7500000000 1 1 1 mag 0.0 0.5850570000 0.5000000000 0.7500000000 1 1 1 mag 0.0 0.0824720000 0.8350520000 0.7500000000 1 1 1 mag 0.0 0.4175280000 0.8350560000 0.7500000000 1 1 1 mag 0.0 0.4149440000 0.5000000000 0.7500000000 1 1 1 mag 0.0 0.1675280000 0.6649430000 0.7500000000 1 1 1 mag 0.0

Have you read FAQ on the online manual http://abacus.deepmodeling.com/en/latest/community/faq.html

  • [X] Yes, I have read the FAQ part on online manual.

Task list for Issue attackers (only for developers)

  • [ ] Understand the problem or question described by the user.
  • [ ] Check if the issue is a known problem or has been addressed in the documentation.
  • [ ] Test the issue or problem on a similar system or environment, if possible.
  • [ ] Identify the root cause or provide clarification on the user's question.
  • [ ] Provide a step-by-step guide, including any necessary resources, to resolve the issue or answer the question.
  • [ ] If the issue is related to documentation, update the documentation to prevent future confusion (optional).
  • [ ] If the issue is related to code, consider implementing a fix or improvement (optional).
  • [ ] Review and incorporate any relevant feedback from users or developers.
  • [ ] Ensure the user's issue is resolved or their question is answered and close the ticket.

kogareru1z avatar May 09 '24 11:05 kogareru1z

@pxlxingliang could you have a look?

WHUweiqingzhou avatar May 10 '24 08:05 WHUweiqingzhou

Can you upload your INPUT files in this Issue?

dyzheng avatar May 10 '24 09:05 dyzheng

test.zip

kogareru1z avatar May 10 '24 09:05 kogareru1z

Can you upload your INPUT files in this Issue?

I have upload my file, please check it

kogareru1z avatar May 10 '24 13:05 kogareru1z

I did some tests, and found abacus may raise the error of " trust radius is too small! Break down" after the first change of cell (some times raising error after 3 or 4 changes of cell).

I have noticed that the energy after cell-changed may be not consistent with the energy of single SCF job. (I use the STRU after several cell-changed to run a single SCF job, and energy in these two calculations are different.) This is not a unique issue for ABACUS, and similar issues can also occur in other software using planewave basis.

Initially, I suspect it is the inconsistent of energy leads to the error. So, I try to do the same calculation with LCAO basis, but abacus also raise the same error in the 13-th ION step of 2nd cell relax. This indicate there may have some bugs in the BFGS algorithm.

pxlxingliang avatar May 15 '24 12:05 pxlxingliang

Here is the energies of each ION step in the LCAO cell-relax

     1	 final etot is -7626.8581853 eV
     2	 final etot is -7626.59287266190 eV
     3	 final etot is -7627.31601440061 eV
     4	 final etot is -7627.30152822028 eV
     5	 final etot is -7627.32129424860 eV
     6	 final etot is -7627.32430508587 eV
     7	 final etot is -7627.32440163847 eV
     8	 final etot is -7627.32463978079 eV
     9	 final etot is -7627.32466417965 eV
    10	 final etot is -7627.32473436150 eV
Here begining the relax after the changed cell
    11	 final etot is -7627.34799569358 eV
    12	 final etot is -7627.34588754335 eV
    13	 final etot is -7627.34583180096 eV
    14	 final etot is -7627.34580092413 eV
    15	 final etot is -7627.34578563616 eV
    16	 final etot is -7627.34577840438 eV
    17	 final etot is -7627.34577504755 eV
    18	 final etot is -7627.34577350336 eV
    19	 final etot is -7627.34577279541 eV
    20	 final etot is -7627.34577247129 eV
    21	 final etot is -7627.34577232235 eV
    22	 final etot is -7627.34577225479 eV
    23	 final etot is -7627.34577225895 eV

The energy in the first cell loop decrease normally, but after 11 step, the energy is increasing.

pxlxingliang avatar May 15 '24 12:05 pxlxingliang

The energy in the first cell loop decrease normally, but after 11 step, the energy is increasing.

How can I solve this issue? Is it necessary to use another relaxation method?

kogareru1z avatar May 16 '24 18:05 kogareru1z

The energy in the first cell loop decrease normally, but after 11 step, the energy is increasing.

How can I solve this issue? Is it necessary to use another relaxation method?

Suggest you to do cell-relax by using cg, and I will figure out this issue ASAP.

pxlxingliang avatar May 20 '24 01:05 pxlxingliang

As QE also has BFGS trust region method to do the cell relax, I try to use QE doing the vc-relax, and it is converged in 47 relax stps.

pxlxingliang avatar May 20 '24 07:05 pxlxingliang