(git:281339c)
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 LOGICAL :: use_virial = .false.
40 INTEGER, ALLOCATABLE :: el_num(:)
41
42 REAL(kind=dp), DIMENSION(3, 3) :: sigma = -1.0_dp
43 REAL(kind=dp), ALLOCATABLE :: e_hal(:)
44 REAL(kind=dp), ALLOCATABLE :: e_rep(:)
45 REAL(kind=dp), ALLOCATABLE :: e_disp(:)
46 REAL(kind=dp), ALLOCATABLE :: e_scd(:)
47 REAL(kind=dp), ALLOCATABLE :: e_es(:)
48 REAL(kind=dp), ALLOCATABLE :: selfenergy(:)
49 REAL(kind=dp), ALLOCATABLE :: cn(:)
50
51 REAL(kind=dp), ALLOCATABLE :: grad(:, :)
52 !derivatives w. r. t. coordination number
53 REAL(kind=dp), ALLOCATABLE :: dsedcn(:)
54 REAL(kind=dp), ALLOCATABLE :: dcndr(:, :, :)
55 REAL(kind=dp), ALLOCATABLE :: dcndl(:, :, :)
56
57 TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: dipbra => null(), &
58 dipket => null()
59 TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: quadbra => null(), &
60 quadket => null()
61
62#if defined(__TBLITE)
63 TYPE(structure_type) :: mol = structure_type()
64 TYPE(xtb_calculator) :: calc = xtb_calculator()
65 TYPE(container_cache) :: cache = container_cache()
66 TYPE(container_cache) :: dcache = container_cache()
67 TYPE(wavefunction_type) :: wfn = wavefunction_type()
68 TYPE(potential_type) :: pot = potential_type()
69#endif
70
71 END TYPE tblite_type
72
73CONTAINS
74
75! **************************************************************************************************
76!> \brief ...
77!> \param tb_tblite ...
78! **************************************************************************************************
79 SUBROUTINE allocate_tblite_type(tb_tblite)
80
81 TYPE(tblite_type), POINTER :: tb_tblite
82
83 CALL deallocate_tblite_type(tb_tblite)
84
85 ALLOCATE (tb_tblite)
86
87 END SUBROUTINE allocate_tblite_type
88
89! **************************************************************************************************
90!> \brief ...
91!> \param tb_tblite ...
92! **************************************************************************************************
93 SUBROUTINE deallocate_tblite_type(tb_tblite)
94
95 TYPE(tblite_type), POINTER :: tb_tblite
96
97 IF (ASSOCIATED(tb_tblite)) THEN
98 IF (ALLOCATED(tb_tblite%el_num)) DEALLOCATE (tb_tblite%el_num)
99
100 IF (ALLOCATED(tb_tblite%e_hal)) DEALLOCATE (tb_tblite%e_hal)
101 IF (ALLOCATED(tb_tblite%e_rep)) DEALLOCATE (tb_tblite%e_rep)
102 IF (ALLOCATED(tb_tblite%e_disp)) DEALLOCATE (tb_tblite%e_disp)
103 IF (ALLOCATED(tb_tblite%e_scd)) DEALLOCATE (tb_tblite%e_scd)
104 IF (ALLOCATED(tb_tblite%e_es)) DEALLOCATE (tb_tblite%e_es)
105 IF (ALLOCATED(tb_tblite%selfenergy)) DEALLOCATE (tb_tblite%selfenergy)
106 IF (ALLOCATED(tb_tblite%cn)) DEALLOCATE (tb_tblite%cn)
107
108 IF (ALLOCATED(tb_tblite%grad)) DEALLOCATE (tb_tblite%grad)
109 IF (ALLOCATED(tb_tblite%dsedcn)) DEALLOCATE (tb_tblite%dsedcn)
110 IF (ALLOCATED(tb_tblite%dcndr)) DEALLOCATE (tb_tblite%dcndr)
111 IF (ALLOCATED(tb_tblite%dcndL)) DEALLOCATE (tb_tblite%dcndL)
112
113 IF (ASSOCIATED(tb_tblite%dipbra)) &
114 CALL dbcsr_deallocate_matrix_set(tb_tblite%dipbra)
115 IF (ASSOCIATED(tb_tblite%dipket)) &
116 CALL dbcsr_deallocate_matrix_set(tb_tblite%dipket)
117 IF (ASSOCIATED(tb_tblite%quadbra)) &
118 CALL dbcsr_deallocate_matrix_set(tb_tblite%quadbra)
119 IF (ASSOCIATED(tb_tblite%quadket)) &
120 CALL dbcsr_deallocate_matrix_set(tb_tblite%quadket)
121
122 DEALLOCATE (tb_tblite)
123 END IF
124
125 END SUBROUTINE deallocate_tblite_type
126
127END 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)
...