(git:32ddf85)
Loading...
Searching...
No Matches
tblite_types.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2025 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief types for tblite
10!> \author JVP
11!> \history creation 09.2024
12! **************************************************************************************************
13
15
16#if defined(__TBLITE)
17 USE mctc_io, ONLY: structure_type, new
18 USE tblite_xtb_calculator, ONLY: xtb_calculator
19 USE tblite_container, ONLY: container_cache
20 USE tblite_wavefunction_type, ONLY: wavefunction_type
21 USE tblite_scf_potential, ONLY: potential_type
22#endif
23
24 USE cp_dbcsr_api, ONLY: dbcsr_p_type
26 USE kinds, ONLY: dp
27
28#include "./base/base_uses.f90"
29 IMPLICIT NONE
30
31 PRIVATE
32
33 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'tblite_types'
34
36
38
39 INTEGER, ALLOCATABLE :: el_num(:)
40
41 REAL(kind=dp), DIMENSION(3, 3) :: sigma = -1.0_dp
42 REAL(kind=dp), ALLOCATABLE :: e_hal(:)
43 REAL(kind=dp), ALLOCATABLE :: e_rep(:)
44 REAL(kind=dp), ALLOCATABLE :: e_disp(:)
45 REAL(kind=dp), ALLOCATABLE :: e_scd(:)
46 REAL(kind=dp), ALLOCATABLE :: e_es(:)
47 REAL(kind=dp), ALLOCATABLE :: selfenergy(:)
48 REAL(kind=dp), ALLOCATABLE :: cn(:)
49
50 REAL(kind=dp), ALLOCATABLE :: grad(:, :)
51 REAL(kind=dp), ALLOCATABLE :: dsedcn(:)
52 REAL(kind=dp), ALLOCATABLE :: dcndr(:, :, :)
53 REAL(kind=dp), ALLOCATABLE :: dcndl(:, :, :)
54
55 TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: dipbra => null(), &
56 dipket => null()
57 TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: quadbra => null(), &
58 quadket => null()
59
60#if defined(__TBLITE)
61 TYPE(structure_type) :: mol = structure_type()
62 TYPE(xtb_calculator) :: calc = xtb_calculator()
63 TYPE(container_cache) :: cache = container_cache()
64 TYPE(container_cache) :: dcache = container_cache()
65 TYPE(wavefunction_type) :: wfn = wavefunction_type()
66 TYPE(potential_type) :: pot = potential_type()
67#endif
68
69 END TYPE tblite_type
70
71CONTAINS
72
73! **************************************************************************************************
74!> \brief ...
75!> \param tb_tblite ...
76! **************************************************************************************************
77 SUBROUTINE allocate_tblite_type(tb_tblite)
78
79 TYPE(tblite_type), POINTER :: tb_tblite
80
81 CALL deallocate_tblite_type(tb_tblite)
82
83 ALLOCATE (tb_tblite)
84
85 END SUBROUTINE allocate_tblite_type
86
87! **************************************************************************************************
88!> \brief ...
89!> \param tb_tblite ...
90! **************************************************************************************************
91 SUBROUTINE deallocate_tblite_type(tb_tblite)
92
93 TYPE(tblite_type), POINTER :: tb_tblite
94
95 IF (ASSOCIATED(tb_tblite)) THEN
96 IF (ALLOCATED(tb_tblite%el_num)) DEALLOCATE (tb_tblite%el_num)
97
98 IF (ALLOCATED(tb_tblite%e_hal)) DEALLOCATE (tb_tblite%e_hal)
99 IF (ALLOCATED(tb_tblite%e_rep)) DEALLOCATE (tb_tblite%e_rep)
100 IF (ALLOCATED(tb_tblite%e_disp)) DEALLOCATE (tb_tblite%e_disp)
101 IF (ALLOCATED(tb_tblite%e_scd)) DEALLOCATE (tb_tblite%e_scd)
102 IF (ALLOCATED(tb_tblite%e_es)) DEALLOCATE (tb_tblite%e_es)
103 IF (ALLOCATED(tb_tblite%selfenergy)) DEALLOCATE (tb_tblite%selfenergy)
104 IF (ALLOCATED(tb_tblite%cn)) DEALLOCATE (tb_tblite%cn)
105
106 IF (ALLOCATED(tb_tblite%grad)) DEALLOCATE (tb_tblite%grad)
107 IF (ALLOCATED(tb_tblite%dsedcn)) DEALLOCATE (tb_tblite%dsedcn)
108 IF (ALLOCATED(tb_tblite%dcndr)) DEALLOCATE (tb_tblite%dcndr)
109 IF (ALLOCATED(tb_tblite%dcndL)) DEALLOCATE (tb_tblite%dcndL)
110
111 IF (ASSOCIATED(tb_tblite%dipbra)) &
112 CALL dbcsr_deallocate_matrix_set(tb_tblite%dipbra)
113 IF (ASSOCIATED(tb_tblite%dipket)) &
114 CALL dbcsr_deallocate_matrix_set(tb_tblite%dipket)
115 IF (ASSOCIATED(tb_tblite%quadbra)) &
116 CALL dbcsr_deallocate_matrix_set(tb_tblite%quadbra)
117 IF (ASSOCIATED(tb_tblite%quadket)) &
118 CALL dbcsr_deallocate_matrix_set(tb_tblite%quadket)
119
120 DEALLOCATE (tb_tblite)
121 END IF
122
123 END SUBROUTINE deallocate_tblite_type
124
125END MODULE tblite_types
DBCSR operations in CP2K.
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
types for tblite
subroutine, public allocate_tblite_type(tb_tblite)
...
subroutine, public deallocate_tblite_type(tb_tblite)
...