Documentation for module kpoint_methods

Routines needed for kpoint calculation

source: kpoint_methods.F
Loading...

public Subroutines/Functions:

Calculate kpoint density matrices (rho(k), owned by kpoint groups)
generate real space density matrices in DBCSR format
Initialize the kpoint environment
Generate the kpoints and initialize the kpoint environment
Initialize a set of MOs and density matrix for each kpoint (kpoint group)
Generates the mapping of cell indices and linear RS index CELL (0,0,0) is always mapped to index 1
Given the eigenvalues of all kpoints, calculates the occupation numbers
Transformation of real space matrices to a kpoint

SUBROUTINEkpoint_density_matrices(kpoint, energy_weighted)

Calculate kpoint density matrices (rho(k), owned by kpoint groups)

Arguments:
POINTER
:: kpoint kpoint environment
LOGICAL,
OPTIONAL
:: energy_weighted calculate energy weighted density matrix

SUBROUTINEkpoint_density_transform(kpoint, denmat, wtype, tempmat, sab_nl, fmwork)

generate real space density matrices in DBCSR format

Arguments:
POINTER
:: kpoint Kpoint environment
POINTER
:: denmat(:,:) Real space (DBCSR) density matrices
LOGICAL,
INTENT(in)
:: wtype True = energy weighted density matrix False = normal density matrix
TYPE(dbcsr_type),
POINTER
:: tempmat DBCSR matrix to be used as template
POINTER
:: sab_nl(:) ...
POINTER
:: fmwork(:) FM work matrices (kpoint group)

SUBROUTINEkpoint_env_initialize(kpoint)

Initialize the kpoint environment

Arguments:
POINTER
:: kpoint Kpoint environment

SUBROUTINEkpoint_initialize(kpoint, particle_set, cell)

Generate the kpoints and initialize the kpoint environment

Arguments:
POINTER
:: kpoint The kpoint environment
POINTER
:: particle_set(:) Particle types and coordinates
TYPE(cell_type),
POINTER
:: cell Computational cell information

SUBROUTINEkpoint_initialize_mos(kpoint, mos, added_mos)

Initialize a set of MOs and density matrix for each kpoint (kpoint group)

Arguments:
POINTER
:: kpoint Kpoint environment
POINTER
:: mos(:) Reference MOs (global)
INTEGER,
INTENT(in),
OPTIONAL
:: added_mos ...

SUBROUTINEkpoint_init_cell_index(kpoint, sab_nl, para_env, dft_control)

Generates the mapping of cell indices and linear RS index CELL (0,0,0) is always mapped to index 1

Arguments:
POINTER
:: kpoint Kpoint environment
POINTER
:: sab_nl(:) Defining neighbour list
POINTER
:: para_env Parallel environment
POINTER
:: dft_control ...

SUBROUTINEkpoint_set_mo_occupation(kpoint, smear)

Given the eigenvalues of all kpoints, calculates the occupation numbers

Arguments:
POINTER
:: kpoint Kpoint environment
TYPE(smear_type),
POINTER
:: smear Smearing information

SUBROUTINErskp_transform(rmatrix, cmatrix, rsmat, ispin, xkp, cell_to_index, sab_nl, is_complex, rs_sign)

Transformation of real space matrices to a kpoint

Arguments:
:: rmatrix Real part of kpoint matrix
TYPE(dbcsr_type),
OPTIONAL
:: cmatrix Complex part of kpoint matrix (optional)
POINTER
:: rsmat(:,:) Real space matrices
INTEGER,
INTENT(in)
:: ispin Spin index
REAL(dp),
INTENT(in)
:: xkp(3) Kpoint coordinates
INTEGER,
POINTER
:: cell_to_index(:,:,:) mapping of cell indices to RS index
POINTER
:: sab_nl(:) Defining neighbor list
LOGICAL,
INTENT(in),
OPTIONAL
:: is_complex Matrix to be transformed is imaginary
REAL(dp),
INTENT(in),
OPTIONAL
:: rs_sign Matrix to be transformed is csaled by rs_sign