Documentation for module almo_scf_qs

Interface between ALMO SCF and QS

source: almo_scf_qs.F
Loading...

public Subroutines/Functions:

Creates the matrix that imposes absolute locality on MOs
use the density matrix in almo_scf_env to compute the new energy and KS matrix
Initialization of QS and ALMOs Some parts can be factored-out since they are common for the other SCF methods
update qs_env total energy
Compute matrix W (energy-weighted density matrix) that is needed for the evaluation of forces
create the ALMO matrix templates
convert between two types of matrices: ALMO style to QS style
convert between two types of matrices: QS style to ALMO style

SUBROUTINEalmo_scf_construct_quencher(qs_env, almo_scf_env)

Creates the matrix that imposes absolute locality on MOs

Arguments:
POINTER
:: qs_env ...
INTENT(inout)
:: almo_scf_env ...

SUBROUTINEalmo_scf_dm_to_ks(qs_env, almo_scf_env, energy_new)

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

Arguments:
POINTER
:: qs_env ...
:: almo_scf_env ...
REAL(dp)
:: energy_new ...

SUBROUTINEalmo_scf_init_qs(qs_env, almo_scf_env)

Initialization of QS and ALMOs Some parts can be factored-out since they are common for the other SCF methods

Arguments:
POINTER
:: qs_env ...
:: almo_scf_env ...

SUBROUTINEalmo_scf_update_ks_energy(qs_env, energy, energy_singles_corr)

update qs_env total energy

Arguments:
POINTER
:: qs_env ...
REAL(dp),
INTENT(in),
OPTIONAL
:: energy ...
REAL(dp),
INTENT(in),
OPTIONAL
:: energy_singles_corr ...

SUBROUTINEcalculate_w_matrix_almo(matrix_w, almo_scf_env)

Compute matrix W (energy-weighted density matrix) that is needed for the evaluation of forces

Arguments:
POINTER
:: matrix_w(:) ...
:: almo_scf_env ...

SUBROUTINEmatrix_almo_create(matrix_new, matrix_qs, almo_scf_env, name_new, size_keys, symmetry_new, spin_key, init_domains)

create the ALMO matrix templates

Arguments:
:: matrix_new ...
:: matrix_qs ...
INTENT(in)
:: almo_scf_env ...
CHARACTER(*),
INTENT(in)
:: name_new ...
INTEGER,
INTENT(in)
:: size_keys(2) ...
CHARACTER,
INTENT(in)
:: symmetry_new ...
INTEGER,
INTENT(in)
:: spin_key ...
LOGICAL,
INTENT(in)
:: init_domains ...

SUBROUTINEmatrix_almo_to_qs(matrix_almo, matrix_qs, almo_scf_env)

convert between two types of matrices: ALMO style to QS style

Arguments:
:: matrix_almo ...
:: matrix_qs ...
INTENT(in)
:: almo_scf_env ...

SUBROUTINEmatrix_qs_to_almo(matrix_qs, matrix_almo, almo_scf_env, keep_sparsity)

convert between two types of matrices: QS style to ALMO style

Arguments:
:: matrix_qs ...
:: matrix_almo ...
:: almo_scf_env ...
LOGICAL,
INTENT(in)
:: keep_sparsity ...