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
Currently the stress tensor does not account for the possibility of complex wave functions.
The problem is that some of the involved quantities and routines do not have a complex "twin".
An example -- which causes the code crashing if one forces the calculation of the stress tensor with do_wf_cmplx=.true. -- is the calls to the routine dennl in any of the rhoofr_cp_* routines (see chargedensity.f90). In those calls to dennl one passes alwaysbec%rvec, i.e. the real member of bec (type twin_matrix), also in the case of complex wfc calculations. For such calculation, only the complex member bec%cvec is defined while bec%rvec is not defined. One should then:
pass the proper member of bec (depending on whether bec%iscmplx is True or False)
adapt the routines receiving bec%rvec/cvec to deal with real or complex variables (i.e. creating twin versions of such routines in order to accept also complex values and creating the corresponding interfaces)
When do_wf_cmplx=.false., in principle the stress tensor is computed and one can perform a vc-relax calculation. However, it has not been tested whether the stress tensor is well computed for ODD functionals.
The text was updated successfully, but these errors were encountered:
Currently the stress tensor does not account for the possibility of complex wave functions.
The problem is that some of the involved quantities and routines do not have a complex "twin".
An example -- which causes the code crashing if one forces the calculation of the stress tensor with
do_wf_cmplx=.true.
-- is the calls to the routinedennl
in any of therhoofr_cp_*
routines (seechargedensity.f90
). In those calls todennl
one passes alwaysbec%rvec
, i.e. the real member ofbec
(typetwin_matrix
), also in the case of complex wfc calculations. For such calculation, only the complex memberbec%cvec
is defined whilebec%rvec
is not defined. One should then:bec%iscmplx
is True or False)bec%rvec/cvec
to deal with real or complex variables (i.e. creating twin versions of such routines in order to accept also complex values and creating the corresponding interfaces)When
do_wf_cmplx=.false.
, in principle the stress tensor is computed and one can perform avc-relax
calculation. However, it has not been tested whether the stress tensor is well computed for ODD functionals.The text was updated successfully, but these errors were encountered: