Documentation for module cp_fm_elpa

Wrapper for ELPA

source: cp_fm_elpa.F
Loading...

public Subroutines/Functions:

...
Returns the description texts of the availabel ELPA kernels
Returns the names of the availabel ELPA kernels
FUNCTION
INTEGER PURE
get_elpa_number_kernels
Return the number of available ELPA kernels
SUBROUTINE
set_elpa_kernel (kernel)
Sets the active ELPA kernel.
SUBROUTINE
set_elpa_print (flag)
Sets a flag that determines if additional information about the ELPA diagonalization should be printed
Sets flags that determines if ELPA should try to use QR during diagonalization If use_qr = .TRUE., the QR step is performed only if the size of the input matrix is suitable. Check cp_fm_diag_elpa for further details.

SUBROUTINEcp_fm_diag_elpa(matrix, eigenvectors, eigenvalues)

...

Arguments:
TYPE(cp_fm_type),
POINTER
:: matrix ...
TYPE(cp_fm_type),
POINTER
:: eigenvectors ...
REAL(dp)
:: eigenvalues(:) ...

FUNCTIONget_elpa_kernel_descriptions()

Returns the description texts of the availabel ELPA kernels

Return Value ::

FUNCTIONget_elpa_kernel_names()

Returns the names of the availabel ELPA kernels

Return Value ::

PURE FUNCTIONget_elpa_number_kernels()

Return the number of available ELPA kernels

Return Value ::
INTEGER

SUBROUTINEset_elpa_kernel(kernel)

Sets the active ELPA kernel.

Arguments:
INTEGER,
INTENT(in)
:: kernel Integer between 1 and get_elpa_number_kernels()

SUBROUTINEset_elpa_print(flag)

Sets a flag that determines if additional information about the ELPA diagonalization should be printed

Arguments:
LOGICAL,
INTENT(in)
:: flag the logical flag

SUBROUTINEset_elpa_qr(use_qr, use_qr_unsafe)

Sets flags that determines if ELPA should try to use QR during diagonalization If use_qr = .TRUE., the QR step is performed only if the size of the input matrix is suitable. Check cp_fm_diag_elpa for further details.

Arguments:
LOGICAL,
INTENT(in)
:: use_qr the logical flag
LOGICAL,
INTENT(in)
:: use_qr_unsafe logical which determines if block size checks should be bypassed for some ELPA versions, potentially leading to incorrect eigenvalues