MPI-SCATCI  2.0
An MPI version of SCATCI
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 
32 
33  use precisn, only: shortint, longint, wp
34 
35  implicit none
36 
37  public
38 
40  integer, parameter :: mxint = 1000
41 
43  integer, parameter :: max_neig = 400
44 
46  real(wp), parameter :: default_archer_memory = 2.5
47 
49  integer, parameter :: name_len_max = 120
50 
51  !------------------SYMMETRIES--------------------------!
53  integer, parameter :: symtype_cinfv = 0
55  integer, parameter :: symtype_dinfh = 1
57  integer, parameter :: symtype_d2h = 2
58 
59  !-------CI TARGET_FLAG------------------------!
61  integer, parameter :: no_ci_target = 0
63  integer, parameter :: do_ci_target_contract = 1
64 
65  !------IEXPC FLAG
67  integer, parameter :: normal_csf = 0
69  integer, parameter :: prototype_csf = 1
71  integer, parameter :: generate_target_wf = 0
72 
73  !-----MATRIX_EVALUATION---------------------!
75  integer, parameter :: matrix_evaluate_diff = 0
77  integer, parameter :: matrix_evaluate_full = 1
79  integer, parameter :: no_pure_target_integral_diff = 2
81  integer, parameter :: no_pure_target_integral = 3
82 
83  !-----DIAGONALIZATION-----------------------!
85  integer, parameter :: no_diagonalization = 0
87  integer, parameter :: diagonalize = 1
89  integer, parameter :: diagonalize_no_restart = 2
90 
91  !----PHASE_CORRECTION------------------------!
93  integer, parameter :: normal_phase = -1
95  integer, parameter :: neglect_continuum = 0
96 
97  !--------DIAGONALIZER CHOICE--------------------------!
99  integer, parameter :: scatci_decide = -10
101  integer, parameter :: dense_diag = 1
103  integer, parameter :: davidson_diag = 0
105  integer, parameter :: iterative_diag = -1
106 
108  integer, parameter :: save_continuum_coeffs = 1 ! b'001'
110  integer, parameter :: pass_to_cdenprop = 2 ! b'010'
112  integer, parameter :: save_l2_coeffs = 4 ! b'100'
114  integer, parameter :: save_all_coeffs = save_continuum_coeffs + save_l2_coeffs ! = b'101' = 5
115 
116  !--------------------MATRIX CONSTANTS ---------------------------------!
118  integer, parameter :: mat_dense = 0
120  integer, parameter :: mat_sparse = 1
122  real(wp), parameter :: default_matelem_threshold = 1e-15
124  integer, parameter :: matrix_index_c = 0
126  integer, parameter :: matrix_index_fortran = 1
127 
129  integer, parameter :: matrix_order_ij = 1
131  integer, parameter :: matrix_order_ji = 2
133  integer, parameter :: default_expand_size = 100000
134 
135  !--------------------HAMILTONIAN CONSTANTS ---------------------------------!
137  integer, parameter :: main_hamiltonian = 0
139  integer, parameter :: target_hamiltonian = 1
140 
142  real(wp), parameter :: default_integral_threshold = 0
143 
144  !----------ECP CONSTANTS----------------------------------------------!
145  integer, parameter :: ecp_type_null = 0
146  integer, parameter :: ecp_type_molpro = 1
147 
148  integer, parameter :: slepc_max_eigenvalues = 100 !This is for the spectrum slicing method
149 
150 end module consts_mpi_ci
consts_mpi_ci::max_neig
integer, parameter max_neig
Default limit on the number of eigenvalues printed.
Definition: consts_mpi_ci.f90:43
consts_mpi_ci::mxint
integer, parameter mxint
Maximal length of integer arrays in input namelists.
Definition: consts_mpi_ci.f90:40
consts_mpi_ci::mat_sparse
integer, parameter mat_sparse
Matrix is sparse.
Definition: consts_mpi_ci.f90:120
consts_mpi_ci::save_l2_coeffs
integer, parameter save_l2_coeffs
Keep only L2 section of the eigenvectors (omit continuum channels)
Definition: consts_mpi_ci.f90:112
consts_mpi_ci::normal_csf
integer, parameter normal_csf
Use configuration state functions as is.
Definition: consts_mpi_ci.f90:67
consts_mpi_ci::matrix_index_c
integer, parameter matrix_index_c
Matrix uses C indexing.
Definition: consts_mpi_ci.f90:124
consts_mpi_ci::matrix_order_ij
integer, parameter matrix_order_ij
Sort via IJ ordering.
Definition: consts_mpi_ci.f90:129
consts_mpi_ci::symtype_d2h
integer, parameter symtype_d2h
This describes D_2_h symmetries.
Definition: consts_mpi_ci.f90:57
consts_mpi_ci::dense_diag
integer, parameter dense_diag
Force a dense diagonalizer (all eigenvalues)
Definition: consts_mpi_ci.f90:101
consts_mpi_ci::no_ci_target
integer, parameter no_ci_target
No Ci target contraction (target only run)
Definition: consts_mpi_ci.f90:61
consts_mpi_ci::default_expand_size
integer, parameter default_expand_size
Default expansion size for the cache.
Definition: consts_mpi_ci.f90:133
consts_mpi_ci::save_continuum_coeffs
integer, parameter save_continuum_coeffs
Omit L2 section of the eigenvectors (only keep continuum channels)
Definition: consts_mpi_ci.f90:108
consts_mpi_ci::scatci_decide
integer, parameter scatci_decide
SCATCI chooses the diagonalizer.
Definition: consts_mpi_ci.f90:99
consts_mpi_ci::matrix_order_ji
integer, parameter matrix_order_ji
Sort via JI ordering.
Definition: consts_mpi_ci.f90:131
consts_mpi_ci
MPI SCATCI Constants module.
Definition: consts_mpi_ci.f90:31
consts_mpi_ci::symtype_dinfh
integer, parameter symtype_dinfh
This describes D_inf_h symmetries.
Definition: consts_mpi_ci.f90:55
consts_mpi_ci::name_len_max
integer, parameter name_len_max
The maximum length of a name.
Definition: consts_mpi_ci.f90:49
consts_mpi_ci::matrix_evaluate_diff
integer, parameter matrix_evaluate_diff
Matrix is evaluated as a difference from the first element.
Definition: consts_mpi_ci.f90:75
consts_mpi_ci::diagonalize_no_restart
integer, parameter diagonalize_no_restart
Diagonalize but with no restart.
Definition: consts_mpi_ci.f90:89
consts_mpi_ci::matrix_evaluate_full
integer, parameter matrix_evaluate_full
Matrix is evaluated as full.
Definition: consts_mpi_ci.f90:77
consts_mpi_ci::default_integral_threshold
real(wp), parameter default_integral_threshold
Default threshold to store integrals.
Definition: consts_mpi_ci.f90:142
consts_mpi_ci::mat_dense
integer, parameter mat_dense
Matrix is dense.
Definition: consts_mpi_ci.f90:118
consts_mpi_ci::no_pure_target_integral_diff
integer, parameter no_pure_target_integral_diff
Same as diff but dont evalute integrals belonging to the target state.
Definition: consts_mpi_ci.f90:79
consts_mpi_ci::default_archer_memory
real(wp), parameter default_archer_memory
A default memory value (in GiB), we use the default given for per proc in archer.
Definition: consts_mpi_ci.f90:46
consts_mpi_ci::no_pure_target_integral
integer, parameter no_pure_target_integral
Same as full but dont evalute integrals belonging to the target state.
Definition: consts_mpi_ci.f90:81
consts_mpi_ci::main_hamiltonian
integer, parameter main_hamiltonian
Hamiltonain is a scattering one.
Definition: consts_mpi_ci.f90:137
consts_mpi_ci::do_ci_target_contract
integer, parameter do_ci_target_contract
Perform CI target contraction (target+scattering run)
Definition: consts_mpi_ci.f90:63
consts_mpi_ci::generate_target_wf
integer, parameter generate_target_wf
Generate target wavefunction parameter.
Definition: consts_mpi_ci.f90:71
consts_mpi_ci::ecp_type_molpro
integer, parameter ecp_type_molpro
Definition: consts_mpi_ci.f90:146
consts_mpi_ci::ecp_type_null
integer, parameter ecp_type_null
Definition: consts_mpi_ci.f90:145
consts_mpi_ci::diagonalize
integer, parameter diagonalize
Diagonalize.
Definition: consts_mpi_ci.f90:87
consts_mpi_ci::slepc_max_eigenvalues
integer, parameter slepc_max_eigenvalues
Definition: consts_mpi_ci.f90:148
consts_mpi_ci::symtype_cinfv
integer, parameter symtype_cinfv
This describes C_inf_v symmetries.
Definition: consts_mpi_ci.f90:53
consts_mpi_ci::save_all_coeffs
integer, parameter save_all_coeffs
Do not discard any coefficients.
Definition: consts_mpi_ci.f90:114
consts_mpi_ci::neglect_continuum
integer, parameter neglect_continuum
Phase correct by negelcting continuum orbitals.
Definition: consts_mpi_ci.f90:95
consts_mpi_ci::default_matelem_threshold
real(wp), parameter default_matelem_threshold
Matrix element storage threshold.
Definition: consts_mpi_ci.f90:122
consts_mpi_ci::iterative_diag
integer, parameter iterative_diag
Force an iterative (like ARPACK) diagonalizer.
Definition: consts_mpi_ci.f90:105
consts_mpi_ci::prototype_csf
integer, parameter prototype_csf
The configuration state functions are prototypes and therefore require expansion.
Definition: consts_mpi_ci.f90:69
consts_mpi_ci::davidson_diag
integer, parameter davidson_diag
Force a Davidson diagonalizer.
Definition: consts_mpi_ci.f90:103
consts_mpi_ci::no_diagonalization
integer, parameter no_diagonalization
No diagonalization.
Definition: consts_mpi_ci.f90:85
consts_mpi_ci::pass_to_cdenprop
integer, parameter pass_to_cdenprop
Eigenpairs will be saved in memory and passed to CDENPROP and outer interface.
Definition: consts_mpi_ci.f90:110
consts_mpi_ci::normal_phase
integer, parameter normal_phase
No phase correction.
Definition: consts_mpi_ci.f90:93
consts_mpi_ci::target_hamiltonian
integer, parameter target_hamiltonian
Hamiltonain is target one.
Definition: consts_mpi_ci.f90:139
consts_mpi_ci::matrix_index_fortran
integer, parameter matrix_index_fortran
Matrix uses FORTRAN indexing.
Definition: consts_mpi_ci.f90:126