MPI-SCATCI 2.0
An MPI version of SCATCI
Loading...
Searching...
No Matches
consts_mpi_ci.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 MPI SCATCI Constants module
23!> \authors A Al-Refaie
24!> \date 2017
25!>
26!> This module provides constants used by MPI SCATCI.
27!>
28!> \note 30/01/2017 - Ahmed Al-Refaie: Initial revision.
29!> \note 16/01/2019 - Jakub Benda: Unifom coding style and expanded documentation.
30!>
32
33 use precisn, only: shortint, longint, wp
34
35 implicit none
36
37 public
38
39 !> Maximal length of integer arrays in input namelists
40 integer, parameter :: mxint = 1000
41
42 !> Number of long integers used to store up to 8 (packed) integral indices
43 integer, parameter :: nidx = 2
44
45 !> Default limit on the number of eigenvalues printed
46 integer, parameter :: max_neig = 400
47
48 !> A default memory value (in GiB), we use the default given for per proc in archer
49 real(wp), parameter :: default_archer_memory = 2.5
50
51 !> The maximum length of a name
52 integer, parameter :: name_len_max = 120
53
54 !------------------SYMMETRIES--------------------------!
55 !>This describes C_inf_v symmetries
56 integer, parameter :: symtype_cinfv = 0
57 !>This describes D_inf_h symmetries
58 integer, parameter :: symtype_dinfh = 1
59 !>This describes D_2_h symmetries
60 integer, parameter :: symtype_d2h = 2
61
62 !-------CI TARGET_FLAG------------------------!
63 !> No Ci target contraction (target only run)
64 integer, parameter :: no_ci_target = 0
65 !>Perform CI target contraction (target+scattering run)
66 integer, parameter :: do_ci_target_contract = 1
67
68 !------IEXPC FLAG
69 !> Use configuration state functions as is
70 integer, parameter :: normal_csf = 0
71 !> The configuration state functions are prototypes and therefore require expansion
72 integer, parameter :: prototype_csf = 1
73 !> Generate target wavefunction parameter
74 integer, parameter :: generate_target_wf = 0
75
76 !-----MATRIX_EVALUATION---------------------!
77 !> Matrix is evaluated as a difference from the first element
78 integer, parameter :: matrix_evaluate_diff = 0
79 !> Matrix is evaluated as full
80 integer, parameter :: matrix_evaluate_full = 1
81 !> Same as diff but dont evalute integrals belonging to the target state
82 integer, parameter :: no_pure_target_integral_diff = 2
83 !> Same as full but dont evalute integrals belonging to the target state
84 integer, parameter :: no_pure_target_integral = 3
85
86 !-----DIAGONALIZATION-----------------------!
87 !> No diagonalization
88 integer, parameter :: no_diagonalization = 0
89 !> Diagonalize
90 integer, parameter :: diagonalize = 1
91 !> Diagonalize but with no restart
92 integer, parameter :: diagonalize_no_restart = 2
93 !> Do not diagonalize, just read from file
94 integer, parameter :: read_from_file = 3
95
96 !----PHASE_CORRECTION------------------------!
97 !> No phase correction
98 integer, parameter :: normal_phase = -1
99 !> Phase correct by negelcting continuum orbitals
100 integer, parameter :: neglect_continuum = 0
101
102 !--------DIAGONALIZER CHOICE--------------------------!
103 !> SCATCI chooses the diagonalizer
104 integer, parameter :: scatci_decide = -10
105 !> Force a dense diagonalizer (all eigenvalues)
106 integer, parameter :: dense_diag = 1
107 !> Force a Davidson diagonalizer
108 integer, parameter :: davidson_diag = 0
109 !> Force an iterative (like ARPACK) diagonalizer
110 integer, parameter :: iterative_diag = -1
111
112 !> Omit L2 section of the eigenvectors (only keep continuum channels)
113 integer, parameter :: save_continuum_coeffs = 1 ! b'001'
114 !> Eigenpairs will be saved in memory and passed to CDENPROP and outer interface
115 integer, parameter :: pass_to_cdenprop = 2 ! b'010'
116 !> Keep only L2 section of the eigenvectors (omit continuum channels)
117 integer, parameter :: save_l2_coeffs = 4 ! b'100'
118 !> Do not discard any coefficients
119 integer, parameter :: save_all_coeffs = save_continuum_coeffs + save_l2_coeffs ! = b'101' = 5
120
121 !--------------------MATRIX CONSTANTS ---------------------------------!
122 !> Matrix is dense
123 integer, parameter :: mat_dense = 0
124 !> Matrix is sparse
125 integer, parameter :: mat_sparse = 1
126 !> Matrix element storage threshold
127 real(wp), parameter :: default_matelem_threshold = 1e-15
128 !> Matrix uses C indexing
129 integer, parameter :: matrix_index_c = 0
130 !> Matrix uses FORTRAN indexing
131 integer, parameter :: matrix_index_fortran = 1
132
133 !> Sort via IJ ordering
134 integer, parameter :: matrix_order_ij = 1
135 !> Sort via JI ordering
136 integer, parameter :: matrix_order_ji = 2
137 !> Default expansion size for the cache
138 integer, parameter :: default_expand_size = 100000
139
140 !--------------------HAMILTONIAN CONSTANTS ---------------------------------!
141 !> Hamiltonain is a scattering one
142 integer, parameter :: main_hamiltonian = 0
143 !> Hamiltonain is target one
144 integer, parameter :: target_hamiltonian = 1
145
146 !> Default threshold to store integrals
147 real(wp), parameter :: default_integral_threshold = 0
148
149 !----------ECP CONSTANTS----------------------------------------------!
150 integer, parameter :: ecp_type_null = 0
151 integer, parameter :: ecp_type_molpro = 1
152
153 integer, parameter :: slepc_max_eigenvalues = 100 !This is for the spectrum slicing method
154
155end module consts_mpi_ci
MPI SCATCI Constants module.
integer, parameter normal_csf
Use configuration state functions as is.
integer, parameter matrix_index_fortran
Matrix uses FORTRAN indexing.
integer, parameter read_from_file
Do not diagonalize, just read from file.
integer, parameter matrix_evaluate_diff
Matrix is evaluated as a difference from the first element.
integer, parameter nidx
Number of long integers used to store up to 8 (packed) integral indices.
integer, parameter scatci_decide
SCATCI chooses the diagonalizer.
integer, parameter neglect_continuum
Phase correct by negelcting continuum orbitals.
integer, parameter symtype_cinfv
This describes C_inf_v symmetries.
integer, parameter normal_phase
No phase correction.
integer, parameter max_neig
Default limit on the number of eigenvalues printed.
integer, parameter diagonalize
Diagonalize.
integer, parameter do_ci_target_contract
Perform CI target contraction (target+scattering run)
integer, parameter pass_to_cdenprop
Eigenpairs will be saved in memory and passed to CDENPROP and outer interface.
integer, parameter slepc_max_eigenvalues
integer, parameter symtype_dinfh
This describes D_inf_h symmetries.
integer, parameter matrix_index_c
Matrix uses C indexing.
integer, parameter no_diagonalization
No diagonalization.
integer, parameter prototype_csf
The configuration state functions are prototypes and therefore require expansion.
real(wp), parameter default_matelem_threshold
Matrix element storage threshold.
integer, parameter iterative_diag
Force an iterative (like ARPACK) diagonalizer.
integer, parameter davidson_diag
Force a Davidson diagonalizer.
real(wp), parameter default_archer_memory
A default memory value (in GiB), we use the default given for per proc in archer.
integer, parameter ecp_type_molpro
integer, parameter default_expand_size
Default expansion size for the cache.
integer, parameter name_len_max
The maximum length of a name.
integer, parameter main_hamiltonian
Hamiltonain is a scattering one.
integer, parameter ecp_type_null
real(wp), parameter default_integral_threshold
Default threshold to store integrals.
integer, parameter diagonalize_no_restart
Diagonalize but with no restart.
integer, parameter dense_diag
Force a dense diagonalizer (all eigenvalues)
integer, parameter mat_sparse
Matrix is sparse.
integer, parameter save_all_coeffs
Do not discard any coefficients.
integer, parameter symtype_d2h
This describes D_2_h symmetries.
integer, parameter matrix_order_ji
Sort via JI ordering.
integer, parameter no_pure_target_integral_diff
Same as diff but dont evalute integrals belonging to the target state.
integer, parameter no_pure_target_integral
Same as full but dont evalute integrals belonging to the target state.
integer, parameter mat_dense
Matrix is dense.
integer, parameter save_l2_coeffs
Keep only L2 section of the eigenvectors (omit continuum channels)
integer, parameter matrix_evaluate_full
Matrix is evaluated as full.
integer, parameter no_ci_target
No Ci target contraction (target only run)
integer, parameter mxint
Maximal length of integer arrays in input namelists.
integer, parameter target_hamiltonian
Hamiltonain is target one.
integer, parameter matrix_order_ij
Sort via IJ ordering.
integer, parameter save_continuum_coeffs
Omit L2 section of the eigenvectors (only keep continuum channels)
integer, parameter generate_target_wf
Generate target wavefunction parameter.