(git:5e7fe52)
Loading...
Searching...
No Matches
rt_bse Module Reference

Routines for the propagation via RT-BSE method. More...

Data Types

interface  get_sigma
interface  get_hartree

Functions/Subroutines

subroutine, public run_propagation_bse (force_env)
 Runs the electron-only real time BSE propagation.
subroutine, public initialize_rtbse_env (rtbse_env)
 Calculates the initial values, based on restart/scf density, and other non-trivial values.
subroutine, public initialize_singleparticle_hamiltonian (rtbse_env)
 Calculates the single particle Hamiltonian.
subroutine, public initialize_hartree_potential (rtbse_env)
 Calculates the Hartree potential.
subroutine, public initialize_cohsex_selfenergy (rtbse_env)
 Calculates the COHSEX reference self-energy.
real(kind=dp) function, public rho_metric (rho_new, rho_old, nspin, workspace_opt)
 Determines the metric for the density matrix, used for convergence criterion.
subroutine, public antiherm_metric (real_fm, imag_fm, workspace, metric)
 Determines the metric of the antihermitian part of the matrix.
subroutine, public propagate_density (rtbse_env, exponential, rho_old, rho_new)
 Updates the density in rtbse_env, using the provided exponential The new density is saved to a different matrix, which enables for comparison of matrices.
subroutine, public get_electron_number (rtbse_env, rho, electron_n_re, electron_n_im)
 Outputs the number of electrons in the system from the density matrix.
subroutine, public get_idempotence_deviation (rtbse_env, rho, deviation_metric)
 Outputs the deviation from idempotence of density matrix.
subroutine, public init_hartree (rtbse_env, v_dbcsr)
 Creates the RI matrix and populates it with correct values.
subroutine, public cp_cfm_gexp (amatrix, bmatrix, exponential, eig_scale_opt, work_opt)
 Calculates the exponential of a matrix in a generalized eigenvalue problem. Specifically, it assumes we have a Hermitian matrix A in the eigenvalue problem AX = BXE, where B is some overlap matrix and E is a diagonal matrix of real eigenvalues. Then, it calculates exp(B^(-1) A) = X exp(E) X^C B.

Detailed Description

Routines for the propagation via RT-BSE method.

Note
The control is handed directly from cp2k_runs
Author
Stepan Marek (12.23)

Function/Subroutine Documentation

◆ run_propagation_bse()

subroutine, public rt_bse::run_propagation_bse ( type(force_env_type), pointer force_env)

Runs the electron-only real time BSE propagation.

Parameters
force_envForce environment data, entry point of the calculation

Definition at line 151 of file rt_bse.F.

Here is the call graph for this function:

◆ initialize_rtbse_env()

subroutine, public rt_bse::initialize_rtbse_env ( type(rtbse_env_type), pointer rtbse_env)

Calculates the initial values, based on restart/scf density, and other non-trivial values.

Parameters
rtbse_envRT-BSE environment
Author
Stepan Marek (09.24)

Definition at line 272 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_singleparticle_hamiltonian()

subroutine, public rt_bse::initialize_singleparticle_hamiltonian ( type(rtbse_env_type), pointer rtbse_env)

Calculates the single particle Hamiltonian.

Parameters
rtbse_envRT-BSE environment
Author
Stepan Marek (09.24)
Maximilian Graml (03.26) - refactor in prep. of linearized propagation

Definition at line 410 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_hartree_potential()

subroutine, public rt_bse::initialize_hartree_potential ( type(rtbse_env_type), pointer rtbse_env)

Calculates the Hartree potential.

Parameters
rtbse_envRT-BSE environment
Author
Stepan Marek (09.24)
Maximilian Graml (03.26) - refactor in prep. of linearized propagation

Definition at line 457 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_cohsex_selfenergy()

subroutine, public rt_bse::initialize_cohsex_selfenergy ( type(rtbse_env_type), pointer rtbse_env)

Calculates the COHSEX reference self-energy.

Parameters
rtbse_envRT-BSE environment
Author
Stepan Marek (09.24)
Maximilian Graml (03.26) - refactor in prep. of linearized propagation

Definition at line 492 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rho_metric()

real(kind=dp) function, public rt_bse::rho_metric ( type(cp_cfm_type), dimension(:), intent(in), pointer rho_new,
type(cp_cfm_type), dimension(:), intent(in), pointer rho_old,
integer, intent(in) nspin,
type(cp_cfm_type), optional, pointer workspace_opt )

Determines the metric for the density matrix, used for convergence criterion.

Parameters
rho_newArray of new density matrices (one for each spin index)
rho_oldArray of old density matrices (one for each spin index)
nspinNumber of spin indices
workspace_optOptionally provide external workspace to save some allocation time

Definition at line 605 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ antiherm_metric()

subroutine, public rt_bse::antiherm_metric ( type(cp_fm_type), intent(in) real_fm,
type(cp_fm_type), intent(in), optional imag_fm,
type(cp_cfm_type), dimension(:), pointer workspace,
real(kind=dp), intent(out) metric )

Determines the metric of the antihermitian part of the matrix.

Parameters
real_fmReal part of the full matrix
imag_fmImaginary part of the full matrix

Definition at line 648 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ propagate_density()

subroutine, public rt_bse::propagate_density ( type(rtbse_env_type) rtbse_env,
type(cp_cfm_type), dimension(:), pointer exponential,
type(cp_cfm_type), dimension(:), pointer rho_old,
type(cp_cfm_type), dimension(:), pointer rho_new )

Updates the density in rtbse_env, using the provided exponential The new density is saved to a different matrix, which enables for comparison of matrices.

Parameters
rtbse_envEntry point of the calculation - contains current state of variables
exponentialReal and imaginary parts ( + spin) of the exponential propagator

Definition at line 937 of file rt_bse.F.

Here is the caller graph for this function:

◆ get_electron_number()

subroutine, public rt_bse::get_electron_number ( type(rtbse_env_type) rtbse_env,
type(cp_cfm_type), dimension(:), pointer rho,
real(kind=dp), intent(out) electron_n_re,
real(kind=dp), intent(out) electron_n_im )

Outputs the number of electrons in the system from the density matrix.

Note
Moments matrix is provided by the rtbse_env, uses rho_workspace(1:3)
Parameters
rtbse_envEntry point - rtbse environment
rhoDensity matrix in AO basis
electron_n_reReal number of electrons
electron_n_imImaginary number of electrons, which can arise from numerical non-hermiticity

Definition at line 977 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_idempotence_deviation()

subroutine, public rt_bse::get_idempotence_deviation ( type(rtbse_env_type) rtbse_env,
type(cp_cfm_type), dimension(:), pointer rho,
real(kind=dp), intent(out) deviation_metric )

Outputs the deviation from idempotence of density matrix.

Note
Moments matrix is provided by the rtbse_env, uses rho_workspace(1:3)
Parameters
rtbse_envEntry point - rtbse environment
rhoDensity matrix in AO basis
electron_n_reReal number of electrons
electron_n_imImaginary number of electrons, which can arise from numerical non-hermiticity

Definition at line 1004 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_hartree()

subroutine, public rt_bse::init_hartree ( type(rtbse_env_type), intent(in), pointer rtbse_env,
type(dbcsr_type) v_dbcsr )

Creates the RI matrix and populates it with correct values.

Note
Tensor contains Hartree elements in the auxiliary basis
Parameters
qs_envQuickstep environment - entry point of calculation
Author
Stepan Marek
Date
01.2024

Definition at line 1237 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_cfm_gexp()

subroutine, public rt_bse::cp_cfm_gexp ( type(cp_cfm_type), intent(in) amatrix,
type(cp_cfm_type), intent(in) bmatrix,
type(cp_cfm_type) exponential,
complex(kind=dp), intent(in), optional eig_scale_opt,
type(cp_cfm_type), dimension(:), optional, pointer work_opt )

Calculates the exponential of a matrix in a generalized eigenvalue problem. Specifically, it assumes we have a Hermitian matrix A in the eigenvalue problem AX = BXE, where B is some overlap matrix and E is a diagonal matrix of real eigenvalues. Then, it calculates exp(B^(-1) A) = X exp(E) X^C B.

Parameters
amatrixMatrix to exponentiate
bmatrixOverlap matrix
exponentialExponential exp(B^(-1) A) is stored here after the routine is finished
eig_scale_optOptionally scale eigenvalues by a complex number before exponentiating them
work_optOptionally provide workspace (of size at least 4) that is used in the calculation
Author
Stepan Marek
Date
09.2024

Definition at line 1503 of file rt_bse.F.

Here is the call graph for this function:
Here is the caller graph for this function: