Documentation for module pexsi_types

Environment storing all data that is needed in order to call the DFT driver of the PEXSI library with data from the linear scaling quickstep SCF environment, mainly parameters and intermediate data for the matrix conversion between DBCSR and CSR format.

source: pexsi_types.F
Loading...

public Types:

lib_pexsi_env
All PEXSI related data

public Subroutines/Functions:

Scale various quantities with factors of 2. This converts spin restricted DFT calculations (PEXSI) to the unrestricted case (as is the case where the density matrix method is called in the linear scaling code).
Release all PEXSI data
Initialize PEXSI

Parameters:

INTEGER
:: cp2k_to_pexsi = 1
INTEGER
:: pexsi_to_cp2k = 2

public Types:

TYPE :: lib_pexsi_env

All PEXSI related data


:: dbcsr_template_matrix_sym Symmetric template matrix fixing DBCSR sparsity pattern
:: dbcsr_template_matrix_nonsym Nonsymmetric template matrix fixing DBCSR sparsity pattern
TYPE(csr_type)
:: csr_mat_p ...
TYPE(csr_type)
:: csr_mat_ks ...
TYPE(csr_type)
:: csr_mat_s ...
TYPE(csr_type)
:: csr_mat_e ...
TYPE(csr_type)
:: csr_mat_f ...
:: options PEXSI options
REAL(dp),
DIMENSION(:), POINTER :: kts => NULL() entropic energy contribution
DIMENSION(:), POINTER :: matrix_w => NULL() energy-weighted density matrix as needed for the forces
INTEGER(int_8)
:: plan PEXSI plan
INTEGER
:: nspin number of spins
INTEGER
:: num_ranks_per_pole number of MPI ranks per pole in PEXSI
INTEGER
:: mp_group message-passing group ID
TYPE(dbcsr_type),
DIMENSION(:), POINTER :: max_ev_vector eigenvector corresponding to the largest energy eigenvalue, returned by the Arnoldi method used to determine the spectral radius deltaE
:: csr_sparsity DBCSR matrix defining CSR sparsity
INTEGER,
DIMENSION(2) :: mp_dims dimensions of the MPI cartesian grid used for PEXSI
LOGICAL
:: csr_screening whether distance screening should be applied to CSR matrices
LOGICAL
:: do_adaptive_tol_nel Whether or not to use adaptive threshold for PEXSI convergence
REAL(dp)
:: adaptive_nel_alpha constants for adaptive thresholding
REAL(dp)
:: adaptive_nel_beta ...
REAL(dp)
:: tol_nel_initial Initial convergence threshold (in number of electrons)
REAL(dp)
:: tol_nel_target Target convergence threshold (in number of electrons)

SUBROUTINEconvert_nspin_cp2k_pexsi(direction, numelectron, matrix_p, matrix_w, kts)

Scale various quantities with factors of 2. This converts spin restricted DFT calculations (PEXSI) to the unrestricted case (as is the case where the density matrix method is called in the linear scaling code).

Arguments:
INTEGER,
INTENT(in)
:: direction ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: numelectron ...
TYPE(dbcsr_type),
INTENT(inout),
OPTIONAL
:: matrix_p ...
INTENT(inout),
OPTIONAL
:: matrix_w ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: kts ...

SUBROUTINElib_pexsi_finalize(pexsi_env)

Release all PEXSI data

Arguments:
INTENT(inout)
:: pexsi_env ...

SUBROUTINElib_pexsi_init(pexsi_env, mp_group, nspin)

Initialize PEXSI

Arguments:
INTENT(inout)
:: pexsi_env All data needed by PEXSI
INTEGER,
INTENT(in)
:: mp_group message-passing group ID
INTEGER,
INTENT(in)
:: nspin number of spins