Skip to content

Conversation

@StepanMarek
Copy link
Contributor

In this patch, I propose several changes to (my) RT-BSE code such that it is more extendable. I also fix several small bugs

  • the time step loop and ETRS self-consistency loop are now separated
  • the guess density at the start of the ETRS loop has more accurate value
  • 3c integral storage for RI-Hartree now reports the correct value
  • instead of keywords in the &REAL_TIME_PROPAGATION section, a subsection &RTBSE was added to the input specification
    • docs are updated accordingly
    • tests are updated accordingly
    • in case RT-BSE is not run but RT-BSE specific print sections are included in &REAL_TIME_PROPAGATION%PRINT section, a warning message is displayed to the user
  • the regularization of Cholesky decomposition in precursor GW calculation is extended to all minimax grids with number of points >20
  • get_sigma and get_hartree methods now transformed to interfaces which include functions that do not require call with rtbse_env struct and therefore can be in principle called outside of the context of RT-BSE
    • builder routines of the 3c integrals and some other constructs necessary to actually run these are also provided (create_hartree_ri_3c and create_sigma_workspace_qs_only)

Štěpán Marek added 20 commits January 29, 2025 13:39
Instead of midpoint density, propagate the whole timestep and
guess the final density before the self-consistent iterations start.
Some handling of matrices could have been a bit confusing in the
apply_delta_pulse subroutine - this has now been harmonized with the
rest of the code.
As more options specialized for the RT-BSE scheme emerge (with still
more on the horizon) a specialized input section is designated,
which handles the options separately from TDDFT options
The regularization parameter set in `gw_utils.F` was set only for the
original limit of size for the minimax grid, which was 20. However,
additional larger grids are now available, but remain unregularized - no
small number is added to stabilize the singular value decomposition.

The effect is observed by difference in the reported correlation
self-energy for different number of MPI ranks in an otherwise identical
setup.

This change allows the same regularization procedure to be applicable to
all grids of size > 20.
A TDDFT run does not use certain print sections, while RTBSE run does
not use certain other sections. In order to not confuse the user about
which section is available for which code, explicitly print out warning
message when an unused print section is present.
So that they can be called from other places in the code
get_sigma can now in principle be called without the reference to
rtbse_env
Added conditions that require screened potential to be calculated even
when starting from initial energy run.

On some architectures, it might be better to run the GW calculation
beforehand and RTBSE calculation afterwards. This patch simplifies the
rerun procedure.
@StepanMarek StepanMarek marked this pull request as ready for review January 29, 2025 15:05
@oschuett oschuett merged commit 26096ef into cp2k:master Jan 31, 2025
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants