Line data Source code
1 : !--------------------------------------------------------------------------------------------------!
2 : ! CP2K: A general program to perform molecular dynamics simulations !
3 : ! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
4 : ! !
5 : ! SPDX-License-Identifier: GPL-2.0-or-later !
6 : !--------------------------------------------------------------------------------------------------!
7 :
8 : ! **************************************************************************************************
9 : !> \brief Library choices for electronic integral APIs.
10 : ! **************************************************************************************************
11 : MODULE integral_library_types
12 : USE input_constants, ONLY: do_potential_coulomb
13 : USE kinds, ONLY: default_path_length,&
14 : dp
15 :
16 : IMPLICIT NONE
17 :
18 : PRIVATE
19 :
20 : INTEGER, PARAMETER, PUBLIC :: library_native = 0, &
21 : library_libint = 1
22 :
23 : TYPE, PUBLIC :: integral_library_type
24 : INTEGER :: coulomb2_library = library_native
25 : INTEGER :: coulomb3_library = library_native
26 : END TYPE integral_library_type
27 :
28 : TYPE, PUBLIC :: coulomb_operator_type
29 : INTEGER :: potential_type = do_potential_coulomb
30 : REAL(dp) :: omega = 0.0_dp ! SR: erfc(omega*r)/r
31 : REAL(dp) :: cutoff_radius = 0.0_dp ! TC cutoff/effective SR range
32 : CHARACTER(default_path_length) :: filename = ""
33 : REAL(dp) :: scale_coulomb = 0.0_dp ! Only for WFC methods
34 : REAL(dp) :: scale_longrange = 0.0_dp ! Only for WFC methods
35 : END TYPE coulomb_operator_type
36 :
37 : TYPE(integral_library_type), SAVE, PUBLIC :: active_integral_library = integral_library_type()
38 :
39 0 : END MODULE integral_library_types
|