MPI-SCATCI
2.0
An MPI version of SCATCI
Loading...
Searching...
No Matches
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
22
!> \brief Base type for all diagonalizers
23
!> \authors A Al-Refaie
24
!> \date 2017
25
!>
26
!> Individual specializations are included in the build depending on the CMake configuration flags.
27
!>
28
!> \note 16/01/2019 - Jakub Benda: Unifom coding style and expanded documentation.
29
!>
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
Modules
Diagonalizers
Diagonalizer_module.f90
Generated on
for MPI-SCATCI by
1.14.0