Documentation for module qs_overlap

Calculation of overlap matrix, its derivatives and forces

source: qs_overlap.F
Loading...

Generic procedures:

create_sab_matrix

public Subroutines/Functions:

Calculation of the force contribution from an overlap matrix over Cartesian Gaussian functions.
Calculation of the overlap matrix over Cartesian Gaussian functions.
Calculation of the overlap matrix over Cartesian Gaussian functions.

Generic procedure create_sab_matrix

...

POINTER
:: ks_env × ×
POINTER
:: matrix_s(:) ×
POINTER
:: matrix_s(:,:) ×
CHARACTER(*),
INTENT(in),
OPTIONAL
:: matrix_name × ×
POINTER
:: basis_set_list_a(:) × ×
POINTER
:: basis_set_list_b(:) × ×
POINTER
:: sab_nl(:) × ×
LOGICAL,
INTENT(in)
:: symmetric × ×

SUBROUTINEbuild_overlap_force(ks_env, force, basis_type_a, basis_type_b, sab_nl, matrix_p)

Calculation of the force contribution from an overlap matrix over Cartesian Gaussian functions.

Arguments:
POINTER
:: ks_env the QS environment
REAL(dp),
INTENT(inout)
:: force(:,:) holds the calcuated force Tr(P dS/dR)
CHARACTER(*),
INTENT(in)
:: basis_type_a basis set to be used for bra in
CHARACTER(*),
INTENT(in)
:: basis_type_b basis set to be used for ket in
POINTER
:: sab_nl(:) pair list (must be consistent with basis sets!)
TYPE(dbcsr_type),
POINTER
:: matrix_p density matrix for force calculation

SUBROUTINEbuild_overlap_matrix(ks_env, matrix_s, matrixkp_s, matrix_name, nderivative, basis_type_a, basis_type_b, sab_nl, calculate_forces, matrix_p, matrixkp_p)

Calculation of the overlap matrix over Cartesian Gaussian functions.

Arguments:
POINTER
:: ks_env the QS env
OPTIONAL, POINTER
:: matrix_s(:) The overlap matrix to be calculated (optional)
OPTIONAL, POINTER
:: matrixkp_s(:,:) The overlap matrices to be calculated (kpoints, optional)
CHARACTER(*),
INTENT(in),
OPTIONAL
:: matrix_name The name of the overlap matrix (i.e. for output)
INTEGER,
INTENT(in),
OPTIONAL
:: nderivative Derivative with respect to basis origin
CHARACTER(*),
INTENT(in)
:: basis_type_a basis set to be used for bra in
CHARACTER(*),
INTENT(in)
:: basis_type_b basis set to be used for ket in
POINTER
:: sab_nl(:) pair list (must be consistent with basis sets!)
LOGICAL,
INTENT(in),
OPTIONAL
:: calculate_forces ...
TYPE(dbcsr_type),
OPTIONAL, POINTER
:: matrix_p density matrix for force calculation (optional)
OPTIONAL, POINTER
:: matrixkp_p(:,:) density matrix for force calculation with k_points (optional)

SUBROUTINEbuild_overlap_matrix_simple(ks_env, matrix_s, basis_set_list_a, basis_set_list_b, sab_nl)

Calculation of the overlap matrix over Cartesian Gaussian functions.

Arguments:
POINTER
:: ks_env the QS env
POINTER
:: matrix_s(:) The overlap matrix to be calculated
POINTER
:: basis_set_list_a(:) basis set list to be used for bra in
POINTER
:: basis_set_list_b(:) basis set list to be used for ket in
POINTER
:: sab_nl(:) pair list (must be consistent with basis sets!)

SUBROUTINEcreate_sab_matrix_1d(ks_env, matrix_s, matrix_name, basis_set_list_a, basis_set_list_b, sab_nl, symmetric)

Setup the structure of a sparse matrix based on the overlap neighbor list

Arguments:
POINTER
:: ks_env The QS environment
POINTER
:: matrix_s(:) Matrices to be constructed
CHARACTER(*),
INTENT(in),
OPTIONAL
:: matrix_name Matrix base name
POINTER
:: basis_set_list_a(:) Basis set used for
POINTER
:: basis_set_list_b(:) Basis set used for |b>
POINTER
:: sab_nl(:) Overlap neighbor list
LOGICAL,
INTENT(in)
:: symmetric Is symmetry used in the neighbor list?

SUBROUTINEcreate_sab_matrix_2d(ks_env, matrix_s, matrix_name, basis_set_list_a, basis_set_list_b, sab_nl, symmetric)

Setup the structure of a sparse matrix based on the overlap neighbor list, 2d version

Arguments:
POINTER
:: ks_env The QS environment
POINTER
:: matrix_s(:,:) Matrices to be constructed
CHARACTER(*),
INTENT(in),
OPTIONAL
:: matrix_name Matrix base name
POINTER
:: basis_set_list_a(:) Basis set used for
POINTER
:: basis_set_list_b(:) Basis set used for |b>
POINTER
:: sab_nl(:) Overlap neighbor list
LOGICAL,
INTENT(in)
:: symmetric Is symmetry used in the neighbor list?