![]() |
(git:f56c6e3)
|
used for collecting some of the diagonalization schemes available for cp_fm_type. cp_fm_power also moved here as it is very related More...
Functions/Subroutines | |
| subroutine, public | diag_init (diag_lib, fallback_applied, elpa_kernel, elpa_neigvec_min_input, elpa_qr, elpa_print, elpa_qr_unsafe, dlaf_neigvec_min_input, eps_check_diag_input) |
| Setup the diagonalization library to be used. | |
| subroutine, public | diag_finalize () |
| Finalize the diagonalization library. | |
| subroutine, public | choose_eigv_solver (matrix, eigenvectors, eigenvalues, info) |
| Choose the Eigensolver depending on which library is available ELPA seems to be unstable for small systems. | |
| subroutine, public | cp_fm_syevd (matrix, eigenvectors, eigenvalues, info) |
| Computes all eigenvalues and vectors of a real symmetric matrix significantly faster than syevx, scales also much better. Needs workspace to allocate all the eigenvectors. | |
| subroutine, public | cp_fm_syevx (matrix, eigenvectors, eigenvalues, neig, work_syevx) |
| compute eigenvalues and optionally eigenvectors of a real symmetric matrix using scalapack. If eigenvectors are required this routine will replicate a full matrix on each CPU... if more than a handful of vectors are needed, use cp_fm_syevd instead | |
| subroutine, public | cp_fm_svd (matrix_a, matrix_eigvl, matrix_eigvr_t, eigval, info) |
| decomposes a quadratic matrix into its singular value decomposition | |
| subroutine, public | cp_fm_power (matrix, work, exponent, threshold, n_dependent, verbose, eigvals) |
| ... | |
| subroutine, public | cp_fm_block_jacobi (matrix, eigenvectors, eigval, thresh, start_sec_block) |
| ... | |
| subroutine, public | cp_fm_geeig (amatrix, bmatrix, eigenvectors, eigenvalues, work) |
| General Eigenvalue Problem AX = BXE Single option version: Cholesky decomposition of B. | |
| subroutine, public | cp_fm_geeig_canon (amatrix, bmatrix, eigenvectors, eigenvalues, work, epseig) |
| General Eigenvalue Problem AX = BXE Use canonical diagonalization : U*s**(-1/2) | |
Variables | |
| real(kind=dp), parameter, public | eps_check_diag_default = 5.0E-14_dp |
| integer, save, public | diag_type = 0 |
| integer, parameter, public | fm_diag_type_scalapack = 101 |
| integer, parameter, public | fm_diag_type_elpa = 102 |
| integer, parameter, public | fm_diag_type_cusolver = 103 |
| integer, parameter, public | fm_diag_type_dlaf = 104 |
| integer, parameter, public | fm_diag_type_default = FM_DIAG_TYPE_SCALAPACK |
used for collecting some of the diagonalization schemes available for cp_fm_type. cp_fm_power also moved here as it is very related
| subroutine, public cp_fm_diag::diag_init | ( | character(len=*), intent(in) | diag_lib, |
| logical, intent(out) | fallback_applied, | ||
| integer, intent(in) | elpa_kernel, | ||
| integer, intent(in) | elpa_neigvec_min_input, | ||
| logical, intent(in) | elpa_qr, | ||
| logical, intent(in) | elpa_print, | ||
| logical, intent(in) | elpa_qr_unsafe, | ||
| integer, intent(in) | dlaf_neigvec_min_input, | ||
| real(kind=dp), intent(in) | eps_check_diag_input | ||
| ) |
Setup the diagonalization library to be used.
| diag_lib | diag_library flag from GLOBAL section in input |
| fallback_applied | .TRUE. if support for the requested library was not compiled-in and fallback to ScaLAPACK was applied, .FALSE. otherwise. |
| elpa_kernel | integer that determines which ELPA kernel to use for diagonalization |
| elpa_neigvec_min_input | ... |
| elpa_qr | logical that determines if ELPA should try to use QR to accelerate the diagonalization procedure of suitably sized matrices |
| elpa_print | logical that determines if information about the ELPA diagonalization should be printed |
| elpa_qr_unsafe | logical that enables potentially unsafe ELPA options |
| dlaf_neigvec_min_input | ... |
| eps_check_diag_input | ... |
Definition at line 147 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::diag_finalize |
Finalize the diagonalization library.
Definition at line 209 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::choose_eigv_solver | ( | type(cp_fm_type), intent(in) | matrix, |
| type(cp_fm_type), intent(in) | eigenvectors, | ||
| real(kind=dp), dimension(:), intent(out) | eigenvalues, | ||
| integer, intent(out), optional | info | ||
| ) |
Choose the Eigensolver depending on which library is available ELPA seems to be unstable for small systems.
| matrix | ... |
| eigenvectors | ... |
| eigenvalues | ... |
| info | ... |
Definition at line 233 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::cp_fm_syevd | ( | type(cp_fm_type), intent(in) | matrix, |
| type(cp_fm_type), intent(in) | eigenvectors, | ||
| real(kind=dp), dimension(:), intent(out) | eigenvalues, | ||
| integer, intent(out), optional | info | ||
| ) |
Computes all eigenvalues and vectors of a real symmetric matrix significantly faster than syevx, scales also much better. Needs workspace to allocate all the eigenvectors.
| matrix | ... |
| eigenvectors | ... |
| eigenvalues | ... |
| info | ... |
Definition at line 442 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::cp_fm_syevx | ( | type(cp_fm_type), intent(in) | matrix, |
| type(cp_fm_type), intent(in), optional | eigenvectors, | ||
| real(kind=dp), dimension(:), intent(out) | eigenvalues, | ||
| integer, intent(in), optional | neig, | ||
| real(kind=dp), intent(in), optional | work_syevx | ||
| ) |
compute eigenvalues and optionally eigenvectors of a real symmetric matrix using scalapack. If eigenvectors are required this routine will replicate a full matrix on each CPU... if more than a handful of vectors are needed, use cp_fm_syevd instead
| matrix | ... |
| eigenvectors | ... |
| eigenvalues | ... |
| neig | ... |
| work_syevx | ... |
Definition at line 666 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::cp_fm_svd | ( | type(cp_fm_type), intent(in) | matrix_a, |
| type(cp_fm_type), intent(inout) | matrix_eigvl, | ||
| type(cp_fm_type), intent(inout) | matrix_eigvr_t, | ||
| real(kind=dp), dimension(:), intent(inout), pointer | eigval, | ||
| integer, intent(out), optional | info | ||
| ) |
decomposes a quadratic matrix into its singular value decomposition
| matrix_a | ... |
| matrix_eigvl | ... |
| matrix_eigvr_t | ... |
| eigval | ... |
| info | ... |
Definition at line 899 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::cp_fm_power | ( | type(cp_fm_type), intent(in) | matrix, |
| type(cp_fm_type), intent(in) | work, | ||
| real(kind=dp), intent(in) | exponent, | ||
| real(kind=dp), intent(in) | threshold, | ||
| integer, intent(out) | n_dependent, | ||
| logical, intent(in), optional | verbose, | ||
| real(kind=dp), dimension(2), intent(out), optional | eigvals | ||
| ) |
...
| matrix | ... |
| work | ... |
| exponent | ... |
| threshold | ... |
| n_dependent | ... |
| verbose | ... |
| eigvals | ... |
Definition at line 996 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::cp_fm_block_jacobi | ( | type(cp_fm_type), intent(in) | matrix, |
| type(cp_fm_type), intent(in) | eigenvectors, | ||
| real(kind=dp), dimension(:), intent(in) | eigval, | ||
| real(kind=dp), intent(in) | thresh, | ||
| integer, intent(in) | start_sec_block | ||
| ) |
...
| matrix | ... |
| eigenvectors | ... |
| eigval | ... |
| thresh | ... |
| start_sec_block | ... |
Definition at line 1157 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::cp_fm_geeig | ( | type(cp_fm_type), intent(in) | amatrix, |
| type(cp_fm_type), intent(in) | bmatrix, | ||
| type(cp_fm_type), intent(in) | eigenvectors, | ||
| real(kind=dp), dimension(:) | eigenvalues, | ||
| type(cp_fm_type), intent(in) | work | ||
| ) |
General Eigenvalue Problem AX = BXE Single option version: Cholesky decomposition of B.
| amatrix | ... |
| bmatrix | ... |
| eigenvectors | ... |
| eigenvalues | ... |
| work | ... |
Definition at line 1354 of file cp_fm_diag.F.
| subroutine, public cp_fm_diag::cp_fm_geeig_canon | ( | type(cp_fm_type), intent(in) | amatrix, |
| type(cp_fm_type), intent(in) | bmatrix, | ||
| type(cp_fm_type), intent(in) | eigenvectors, | ||
| real(kind=dp), dimension(:), intent(out) | eigenvalues, | ||
| type(cp_fm_type), intent(in) | work, | ||
| real(kind=dp), intent(in) | epseig | ||
| ) |
General Eigenvalue Problem AX = BXE Use canonical diagonalization : U*s**(-1/2)
| amatrix | ... |
| bmatrix | ... |
| eigenvectors | ... |
| eigenvalues | ... |
| work | ... |
| epseig | ... |
Definition at line 1407 of file cp_fm_diag.F.
| real(kind=dp), parameter, public cp_fm_diag::eps_check_diag_default = 5.0E-14_dp |
Definition at line 85 of file cp_fm_diag.F.
| integer, save, public cp_fm_diag::diag_type = 0 |
Definition at line 89 of file cp_fm_diag.F.
| integer, parameter, public cp_fm_diag::fm_diag_type_scalapack = 101 |
Definition at line 103 of file cp_fm_diag.F.
| integer, parameter, public cp_fm_diag::fm_diag_type_elpa = 102 |
Definition at line 103 of file cp_fm_diag.F.
| integer, parameter, public cp_fm_diag::fm_diag_type_cusolver = 103 |
Definition at line 103 of file cp_fm_diag.F.
| integer, parameter, public cp_fm_diag::fm_diag_type_dlaf = 104 |
Definition at line 103 of file cp_fm_diag.F.
| integer, parameter, public cp_fm_diag::fm_diag_type_default = FM_DIAG_TYPE_SCALAPACK |
Definition at line 112 of file cp_fm_diag.F.