Documentation for module dm_ls_scf_qs

Routines for a linear scaling quickstep SCF run based on the density matrix, with a focus on the interface between dm_ls_scf and qs

source: dm_ls_scf_qs.F
Loading...

public Subroutines/Functions:

use the density matrix in ls_scf_env to compute the new energy and KS matrix
SUBROUTINE
ls_scf_init_qs (qs_env)
further required initialization of QS. Might be factored-out since this seems common code with the other SCF.
get an atomic initial guess
Reverses molecular blocking and reduction to single precision if enabled
create a matrix for use (and as a template) in ls based on a qs template
second link to QS, copy a LS matrix to QS matrix used to isolate QS style matrices from LS style will be useful for future features (e.g. precision, symmetry, blocking, ...)
first link to QS, copy a QS matrix to LS matrix used to isolate QS style matrices from LS style will be useful for future features (e.g. precision, symmetry, blocking, ...)
Initialize g-space density mixing
...

SUBROUTINEls_scf_dm_to_ks(qs_env, ls_scf_env, energy_new, iscf)

use the density matrix in ls_scf_env to compute the new energy and KS matrix

Arguments:
POINTER
:: qs_env ...
:: ls_scf_env ...
REAL(dp)
:: energy_new ...
INTEGER,
INTENT(in)
:: iscf ...

SUBROUTINEls_scf_init_qs(qs_env)

further required initialization of QS. Might be factored-out since this seems common code with the other SCF.

Arguments:
POINTER
:: qs_env ...

SUBROUTINEls_scf_qs_atomic_guess(qs_env, energy)

get an atomic initial guess

Arguments:
POINTER
:: qs_env ...
REAL(dp)
:: energy ...

SUBROUTINEmatrix_decluster(matrix_out, matrix_in, ls_mstruct)

Reverses molecular blocking and reduction to single precision if enabled

Arguments:
:: matrix_out ...
:: matrix_in ...
INTENT(in)
:: ls_mstruct ...

SUBROUTINEmatrix_ls_create(matrix_ls, matrix_qs, ls_mstruct)

create a matrix for use (and as a template) in ls based on a qs template

Arguments:
:: matrix_ls ...
:: matrix_qs ...
INTENT(in)
:: ls_mstruct ...

SUBROUTINEmatrix_ls_to_qs(matrix_qs, matrix_ls, ls_mstruct, covariant, keep_sparsity)

second link to QS, copy a LS matrix to QS matrix used to isolate QS style matrices from LS style will be useful for future features (e.g. precision, symmetry, blocking, ...)

Arguments:
:: matrix_qs ...
:: matrix_ls ...
INTENT(in),
TARGET
:: ls_mstruct ...
LOGICAL
:: covariant ...
LOGICAL,
OPTIONAL
:: keep_sparsity If set dbcsr_copy_into_existing will be used, by default set to .TRUE.

SUBROUTINEmatrix_qs_to_ls(matrix_ls, matrix_qs, ls_mstruct, covariant)

first link to QS, copy a QS matrix to LS matrix used to isolate QS style matrices from LS style will be useful for future features (e.g. precision, symmetry, blocking, ...)

Arguments:
:: matrix_ls ...
:: matrix_qs ...
INTENT(in),
TARGET
:: ls_mstruct ...
LOGICAL,
INTENT(in)
:: covariant ...

SUBROUTINErho_mixing_ls_init(qs_env, ls_scf_env)

Initialize g-space density mixing

Arguments:
POINTER
:: qs_env ...
:: ls_scf_env ...

SUBROUTINEwrite_matrix_to_cube(qs_env, ls_scf_env, matrix_p_ls, unit_nr, title, stride)

...

Arguments:
POINTER
:: qs_env ...
:: ls_scf_env ...
TYPE(dbcsr_type),
INTENT(in)
:: matrix_p_ls ...
INTEGER,
INTENT(in)
:: unit_nr ...
CHARACTER(*),
INTENT(in)
:: title ...
INTEGER,
POINTER
:: stride(:) ...