[Pw_forum] bfgs and trust radius

Carlo Sbraccia sbraccia at sissa.it
Thu Oct 26 21:38:19 CEST 2006


My advise is that you should not reduce trust_radius_min. 
Instead, increase the accuracy of your forces by reducing conv_thr even 
more (or by increasing upscale).
You can monitor the error on the forces due to lack of self-consistency by checking 
the size of total scf correction (it must be much smaller than the total 
force). However this is not the only source of numerical errors. Since 
some terms are computed in real space on a equispaced grid, the energy of 
the system is not invariant for arbitrary translations. This can easily 
confuse BFGS algorithm when the convergence criteria are too tight.
To reduce this error you should increase ecutrho. However I don't see the 
reason to waste cpu-time by using such a tight criteria. Also, consider 
that the self-consistency itself is going to fail if you ask conv_thr < 
1.D-12 because the iterative diagonalization schemes we use can suffer 
numerical instabilities when the required accuracy for eigenvalues/eigenvectors is 
to high.

carlo

On Tue, 24 Oct 2006, Vivek Ranjan wrote:

> Hi !
>
> I getting the following message :
>
> ---------------------------------------------------------------------------
>     number of scf cycles    =  14
>     number of bfgs steps    =   1
>
>     energy old              =   -1402.7124539122 ryd
>     energy new              =   -1402.7077099529 ryd
>
>     CASE: energy_new > energy_old
>
>     new trust radius        =       0.0000480606 bohr
>
>     trust_radius < trust_radius_min
>
>     resetting bfgs history
>
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>     from bfgs : error #         1
>     bfgs history already reset at previous step
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>     stopping ...
> ---------------------------------------------------------------------------------
>
> Based on earlier discussions I feel the following are important
> parameters, which I have set as  :
>
>     etot_conv_thr = 1.0d-4
>     forc_conv_thr = 1.0d-5
> &system
>     ibrav=  0,
>     nat=  31,
>     ntyp= 6,
>     celldm(1) =  7.2225240402,
>     ecutwfc = 35.0,
>     ecutrho = 420.0
>     occupations='smearing', smearing='mv', degauss=0.05
>     nosym=.true.
> /
> &electrons
>     mixing_mode = 'plain'
>     mixing_beta = 0.5
>     conv_thr =  1.0d-8
>     diagonalization = 'david' ,
> /
> &ions
>     upscale=100
> /
> -------------------------------------------------------------------------
>
> I have faced the above problem several times. But changing one thing or
> the another may result in convergence. The above generally happens when
> the system is already close to convergence.
>
> I would like to know if it is a good idea to reduce the trust_radius_min
> below its present default value set in pwscf ?
>
> Thank you,
> Vivek
>
>
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
>



More information about the Pw_forum mailing list