[Pw_forum] Problem with bfgs relaxation

Carlo Sbraccia sbraccia at sissa.it
Sat Nov 20 13:37:08 CET 2004


Dear Serge,

First a comment on forc_conv_thr:

the threshold on the forces means that the convergence is achieved when 
all the components of the force vector are smaller than forc_conv_thr.
Mathematicians would say that you ask the L-infinity-norm of the vector 
F to be smaller than forc_conv_thr.
Instead Total force is the L-2-norm of the force vector and is generally 
used to check that the threshold on the self-consistency is adeguate for 
the forces (this is roughly true when Total force >> Total SCF correction).

Nevertheless BFGS claims that it's converged because the trust radius is 
smaller that the minimum value, even if the minimum has not been found.
This means that something wrong is appening during the relaxation. If 
you post the complete output file I'll try to trace where is the error.

best,

carlo

Serge Nakhmanson wrote:

> Dear All,
>
> I am trying to relax a small (BaTiO_3)_1/(CaTiO_3)_1 superlattice with 
> new
> bfgs routine (PWscf in ESPRESSO 2.1). However, the routine seems to 
> completely
> ignore the force convergence threshold (forc_conv_thr) in my input 
> file and
> claims that it has converged even when forces in the system are large.
>
> Here is my input file:
>
> **********************************
>
>  &CONTROL
>                        title = '(BaTiO_3)_1/(CaTiO_3)_1 superlattice' ,
>                  calculation = 'relax' ,
>                 restart_mode = 'from_scratch' ,
>                       outdir = './',
>                   pseudo_dir = 
> '/home/nakhmans/Codes/PWSCF/PSP/Ultrasoft/USPP_UPF/' ,
>                       prefix = 'B1C1.c_fit' ,
>                    verbosity = 'high',
>                      tstress = .true.,
>                        nstep = 100,
>                etot_conv_thr = 5.e-5,
>                forc_conv_thr = 4.e-5,
>  /
>  &SYSTEM
>                        ibrav = 6,
>                    celldm(1) = 7.29064,
>                    celldm(3) = 2.00,
>                          nat = 10,
>                         ntyp = 4,
>                      ecutwfc = 25,
>                      ecutrho = 225,
>  /
>  &ELECTRONS
>                     conv_thr = 1.e-8 ,
>                  startingpot = 'atomic' ,
>                  startingwfc = 'atomic' ,
>                  mixing_mode = 'plain' ,
>                  mixing_beta = 0.7 ,
>  /
>
>  &IONS
>                 ion_dynamics = 'bfgs',
>  /
> ATOMIC_SPECIES
>    Ba  137.32700  056-Ba-ca-sp-vgrp.uspp.UPF
>    Ca   40.07800  020-Ca-ca-sp-vgrp.uspp.UPF
>    Ti   47.86700  022-Ti-ca-sp-vgrp.uspp.UPF
>     O   16.00000  008-O-ca--vgrp.uspp.UPF
> ATOMIC_POSITIONS alat
>    Ba      0.000000000    0.000000000    0.000000000
>    Ti      0.500000000    0.500000000    0.500000000
>     O      0.000000000    0.500000000    0.500000000
>     O      0.500000000    0.000000000    0.500000000
>     O      0.500000000    0.500000000    0.000000000
>    Ca      0.000000000    0.000000000    1.005000000
>    Ti      0.500000000    0.500000000    1.500000000
>     O      0.000000000    0.500000000    1.500000000
>     O      0.500000000    0.000000000    1.500000000
>     O      0.500000000    0.500000000    1.000000000
> K_POINTS automatic
>   6 6 3   0 0 0
>
> *********************************
>
> A small change in the Ca atom position along Z is to enforce P4mm 
> symmetry
> during relaxation.
>
> Here's what I get in the output:
>
> ***********************************
>
> !    total energy              =  -552.10767780 ryd
>      estimated scf accuracy    <        7.8E-10 ryd
>
>
>      band energy sum           =   -26.93676693 ryd
>      one-electron contribution =  -158.68930900 ryd
>      hartree contribution      =   123.78105246 ryd
>      xc contribution           =   -88.35663862 ryd
>      ewald contribution        =  -428.84278264 ryd
>
>
>      convergence has been achieved
>
>
>      Forces acting on atoms (Ry/au):
>
>
>      atom   1 type  1   force =     0.00000000    0.00000000    
> 0.00111050
>      atom   2 type  3   force =     0.00000000    0.00000000    
> 0.00011367
>      atom   3 type  4   force =     0.00000000    0.00000000   
> -0.00017387
>      atom   4 type  4   force =     0.00000000    0.00000000   
> -0.00017387
>      atom   5 type  4   force =     0.00000000    0.00000000   
> -0.00064692
>      atom   6 type  2   force =     0.00000000    0.00000000    
> 0.00067175
>      atom   7 type  3   force =     0.00000000    0.00000000   
> -0.00046149
>      atom   8 type  4   force =     0.00000000    0.00000000    
> 0.00008750
>      atom   9 type  4   force =     0.00000000    0.00000000    
> 0.00008750
>      atom  10 type  4   force =     0.00000000    0.00000000   
> -0.00061476
>
>
>      Total force =     0.001668     Total SCF correction =     0.000063
>
>
>      entering subroutine stress ...
>
>
>           total   stress  (ryd/bohr**3)                  (kbar)     
> P=  -26.63
>   -0.00016828   0.00000000   0.00000000        -24.75      0.00      0.00
>    0.00000000  -0.00016828   0.00000000          0.00    -24.75      0.00
>    0.00000000   0.00000000  -0.00020644          0.00      0.00    -30.37
>
>
>
>
> [ ... cut ... ]
>
>
>      number of scf cycles    =  38
>      number of bfgs steps    =  23
>
>      energy old              =    -552.1076788015 ryd
>      energy new              =    -552.1076778004 ryd
>
>
>      CASE: energy_new > energy_old
>
>
>      new trust radius        =       0.0000000818 bohr
>
>
>
>
>      bfgs converged in  38 scf cycles and  23 bfgs steps
>
>
>      End of BFGS geometry calculation
>
>
>      Final energy            =    -552.1076788015 ryd
>
>
>      Saving the approximate inverse hessian
>
>
>  [ ... cut ... ]
>
>
> **************************
>
> How could this thing be converged if total force is 0.001668 and I
> asked for < 0.00004?
>
> Here's grep on "Total force" in my output file:
>
> **************************
>
>      Total force =     0.058112     Total SCF correction =     0.000056
>      Total force =     0.124018     Total SCF correction =     0.000195
>      Total force =     0.156460     Total SCF correction =     0.000459
>      Total force =     0.016897     Total SCF correction =     0.000249
>      Total force =     0.007370     Total SCF correction =     0.000379
>      Total force =     0.000659     Total SCF correction =     0.000384
>      Total force =     0.000629     Total SCF correction =     0.000263
>      Total force =     0.000587     Total SCF correction =     0.000093
>      Total force =     0.000705     Total SCF correction =     0.000024
>      Total force =     0.001393     Total SCF correction =     0.000055
>      Total force =     0.001880     Total SCF correction =     0.000052
>      Total force =     0.001596     Total SCF correction =     0.000088
>      Total force =     0.002010     Total SCF correction =     0.000037
>      Total force =     0.001721     Total SCF correction =     0.000059
>      Total force =     0.002024     Total SCF correction =     0.000051
>      Total force =     0.001842     Total SCF correction =     0.000032
>      Total force =     0.001772     Total SCF correction =     0.000145
>      Total force =     0.001728     Total SCF correction =     0.000180
>      Total force =     0.001743     Total SCF correction =     0.000130
>      Total force =     0.001733     Total SCF correction =     0.000094
>      Total force =     0.001745     Total SCF correction =     0.000154
>      Total force =     0.001726     Total SCF correction =     0.000095
>      Total force =     0.001744     Total SCF correction =     0.000144
>      Total force =     0.001718     Total SCF correction =     0.000101
>      Total force =     0.001677     Total SCF correction =     0.000142
>      Total force =     0.001705     Total SCF correction =     0.000066
>      Total force =     0.001675     Total SCF correction =     0.000196
>      Total force =     0.001706     Total SCF correction =     0.000082
>      Total force =     0.001674     Total SCF correction =     0.000058
>      Total force =     0.001674     Total SCF correction =     0.000056
>      Total force =     0.001661     Total SCF correction =     0.000164
>      Total force =     0.001673     Total SCF correction =     0.000032
>      Total force =     0.001668     Total SCF correction =     0.000100
>      Total force =     0.001653     Total SCF correction =     0.000168
>      Total force =     0.001662     Total SCF correction =     0.000085
>      Total force =     0.001666     Total SCF correction =     0.000043
>      Total force =     0.001657     Total SCF correction =     0.000069
>      Total force =     0.001668     Total SCF correction =     0.000063
>
> **************************
>
> The force does not go down and something is definitely wrong here!
> I run a few similar calculations with a slightly different c
> (celldm(3) = 2.05 and 2.10), which converge much better, to total
> force of 0.000018 and 0.000064 respectively. In the latter case it
> is still not what I asked for.
>
> Would appreciate any ideas on how to fix this and get forces below
> the treshold that I want. If this treshold is ridiculous or I need
> to switch to a different relaxation routine, PLZ let me know as well.
>
> Thanks,
>
> Serge
>






More information about the users mailing list