This pull request is created to open the discussion.
It contains a development used to compute circular dichroism on molecules beyond IP
Changes related to natural circular dichroism (and in part magnetic circular dichroism) in the BSE subroutines.
The most affected is the K_diago solver, where the logic of the residuals has been changed.
There are now two key subroutines for the residuals:
Changes to reduce the memory usage of the BSE solver. The kernel subroutine K.F now renamed K_kernel.F computes the "x" and the "c" inside a loop. Similarly also the TDDFT part is done independently.
do iHxc=1,3
!
if ((.not.l_bs_exch).and.iHxc==1) cycle
!
if ((.not.BS_K_is_ALDA).and.iHxc==2) cycle
!
if ((.not.l_bs_corr).and.iHxc==3) cycle
!
The main advantage is that first only the variables required for "x" are allocated and later only the variables required for "c"
Another advantage is that, by doing so, the cutoff on the correlation and the exchange part do not need to be related
It is possible to compile yambo with an extra configure variable --enable-gamma-only. Doing so the WFs in real-space are allocated using a real variable (see below, from mod_wave_function.F). This reduces by a factor 2 the memory usage
type WAVEs
...
WF_RSPACE(SP), allocatable :: r(:,:,:)
complex(SP), allocatable :: c(:,:,:)
...
end type WAVEs
This is a test for pull requests from forks.
This pull request is created to open the discussion. It contains a development used to compute circular dichroism on molecules beyond IP
Changes related to natural circular dichroism (and in part magnetic circular dichroism) in the BSE subroutines. The most affected is the K_diago solver, where the logic of the residuals has been changed. There are now two key subroutines for the residuals:
Changes to reduce the memory usage of the BSE solver. The kernel subroutine
K.F
now renamedK_kernel.F
computes the"x"
and the"c"
inside a loop. Similarly also theTDDFT
part is done independently.The main advantage is that first only the variables required for
"x"
are allocated and later only the variables required for"c"
Another advantage is that, by doing so, the cutoff on the correlation and the exchange part do not need to be relatedIt is possible to compile yambo with an extra configure variable
--enable-gamma-only
. Doing so the WFs in real-space are allocated using a real variable (see below, from mod_wave_function.F). This reduces by a factor 2 the memory usage