MPI-SCATCI
2.0
An MPI version of SCATCI
Diagonalizer_module.f90
Go to the documentation of this file.
1
! Copyright 2019
2
!
3
! For a comprehensive list of the developers that contributed to these codes
4
! see the UK-AMOR website.
5
!
6
! This file is part of UKRmol-in (UKRmol+ suite).
7
!
8
! UKRmol-in is free software: you can redistribute it and/or modify
9
! it under the terms of the GNU General Public License as published by
10
! the Free Software Foundation, either version 3 of the License, or
11
! (at your option) any later version.
12
!
13
! UKRmol-in is distributed in the hope that it will be useful,
14
! but WITHOUT ANY WARRANTY; without even the implied warranty of
15
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
! GNU General Public License for more details.
17
!
18
! You should have received a copy of the GNU General Public License
19
! along with UKRmol-in (in source/COPYING). Alternatively, you can also visit
20
! <https://www.gnu.org/licenses/>.
21
30
module
diagonalizer_module
31
32
implicit none
33
34
type
,
abstract
::
basediagonalizer
35
contains
36
procedure
(
generic_diagonalize
),
deferred
:: diagonalize
37
end type
basediagonalizer
38
39
abstract
interface
40
subroutine
generic_diagonalize
(this, matrix_elements, num_eigenpair, dresult, all_procs, option, integrals)
41
use
diagonalizerresult_module
,
only
:
diagonalizerresult
42
use
baseintegral_module
,
only
:
baseintegral
43
use
basematrix_module
,
only
:
basematrix
44
use
options_module
,
only
:
options
45
use
precisn,
only
: wp
46
47
import
::
basediagonalizer
48
49
class
(
basediagonalizer
) :: this
50
class
(
diagonalizerresult
) :: dresult
51
class
(
basematrix
),
intent(in)
:: matrix_elements
52
class
(
baseintegral
),
intent(in)
:: integrals
53
type
(
options
),
intent(in)
:: option
54
integer
,
intent(in)
:: num_eigenpair
55
logical
,
intent(in)
:: all_procs
56
end subroutine
generic_diagonalize
57
end interface
58
59
end module
diagonalizer_module
diagonalizer_module::generic_diagonalize
Definition:
Diagonalizer_module.f90:40
diagonalizerresult_module::diagonalizerresult
Output from diagonalization.
Definition:
DiagonalizerResult_module.f90:48
options_module::options
Calculation setup for a single Hamiltonian diagonalization.
Definition:
Options_module.f90:74
basematrix_module
Base matrix module.
Definition:
BaseMatrix_module.f90:28
basematrix_module::basematrix
Base matrix type.
Definition:
BaseMatrix_module.f90:47
baseintegral_module
Base integral module.
Definition:
BaseIntegral_module.f90:28
diagonalizerresult_module
Diagonalizer result data object.
Definition:
DiagonalizerResult_module.f90:28
diagonalizer_module
Base type for all diagonalizers.
Definition:
Diagonalizer_module.f90:30
diagonalizer_module::basediagonalizer
Definition:
Diagonalizer_module.f90:34
baseintegral_module::baseintegral
Definition:
BaseIntegral_module.f90:41
options_module
Options module.
Definition:
Options_module.f90:41
Modules
Diagonalizers
Diagonalizer_module.f90
Generated on Thu Nov 26 2020 16:37:08 for MPI-SCATCI by
1.8.20