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 
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)
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