[CPMD-list] Stress calculations with USPP

Ari.P.Seitsonen at iki.fi Ari.P.Seitsonen at iki.fi
Thu Aug 22 20:53:56 CEST 2002


Dear Taras,

> is anyone able to calculate stress tensor in 
> simulations with ultrasoft Vanderbilt PPs ?
> 
> Both versions 3.5.2 and 3.5.3 give me the
> following message before crashing:
>  ================================================================
>  ==                     FORCES INITIALIZATION                  ==
>  ================================================================
>  EWALD SUM IN REAL SPACE OVER  1* 1* 1 CELLS
>  ***    STRESS| THE NEW SIZE OF THE PROGRAM IS  139280 kBYTES ***
>  ***    DQVAN2| THE NEW SIZE OF THE PROGRAM IS  139280
> 
> I've got the same crash on multiprocessor SunFire machine and 
> Linux workstations, but have never had problems with the stress 
> calculations while using norm-conserving PPs (even with much more
> memory). 

Uhh... You hit a known "feature": The exchange correlation part of the
stress tensor is not correctly implemented at the momemt. Here's an
earlier discussion:

# Dear Toshi-san,
# 
#   Just a short note: I discussed about the problem with other persons,
# they said that the part in xcstr.F with the xc energy table is there
# because the stress arising from the gradient part is calculated
# elsewhere but from the LDA part, and thus in xcstr.F the part arising
# from the LDA is calculated. Unfortunately it hasn't been upgraded to
# work also with the option 'NEWCODE'... So what should probably be done
# here is to try to call the corresponding LDA routine instead of using
# the xc tables. How easy this is - in the general case with different
# possible LDA parametrisations - I don't know. I also don't have much
# time to look at it now, I'm leaving for holidays on Wednesday, I'll be
# back in the second week of August.
# 
#     Greetings,
# 
#        apsi
# 
# > Thanks for your commnets.
# > 
# > After checking the CPMD codes for a while,
# > I identified the origin of the error message.
# > 
# > The stress calculation of uspp is impimented in CPMD.
# > It uses subroutine 'xcstr.F' which calculates stress from uspp xc-energy.
# > The subroutine 'xcstr.F' uses a table of xc-energy tabulated in 'genxc.F'.
# > However 'genxc.F' generates
# > xc-energy table only for 'OLDCODE'. Therefore when I use 'NEWCODE' for
# > xc-functionals, 'noforce.F' referes to a empty table and produce
# > a 'division by zero' error.
# >  
# > For a quick fix, I commented out IF((TOLDCODE) THEN ....ENDIF in
# > 'genxc.F'.  It seems to work, but I do not know if it gives 
# > correct answer. I will check it and report you later.

So if anyone is willing to look at and fix the problem, please tell
us...!! One could start first check that LDA works, then with GGA etc.

    Greetings,

       apsi

-- 
-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-
 Ari Paavo Seitsonen / Ari.P.Seitsonen at iki.fi / http://www.iki.fi/~apsi/
 Tel +41 1 635 44 97 / Fax +41 1 635 68 38 / GSM +41 79 719 09 35      
 Anschrift: Physikalisch Chemisches Institut (PCI), Universität Zürich (UniZh)
 Indirizzo: Winterthurerstraße 190, CH-8057 Zürich
 Address:   Schweiz / Svizzera / Suisse / Svizra / Switzerland



More information about the CPMD-list mailing list