LCOV - code coverage report
Current view: top level - src - tblite_types.F (source / functions) Coverage Total Hit
Test: CP2K Regtests (git:936074a) Lines: 0.0 % 29 0
Test Date: 2025-12-04 06:27:48 Functions: 0.0 % 4 0

            Line data    Source code
       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              : 
      14              : MODULE tblite_types
      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
      25              :    USE cp_dbcsr_operations, ONLY: dbcsr_deallocate_matrix_set
      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              : 
      35              :    PUBLIC :: tblite_type, deallocate_tblite_type, allocate_tblite_type
      36              : 
      37              :    TYPE tblite_type
      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              : 
      73              : CONTAINS
      74              : 
      75              : ! **************************************************************************************************
      76              : !> \brief ...
      77              : !> \param tb_tblite ...
      78              : ! **************************************************************************************************
      79            0 :    SUBROUTINE allocate_tblite_type(tb_tblite)
      80              : 
      81              :       TYPE(tblite_type), POINTER                         :: tb_tblite
      82              : 
      83            0 :       CALL deallocate_tblite_type(tb_tblite)
      84              : 
      85            0 :       ALLOCATE (tb_tblite)
      86              : 
      87            0 :    END SUBROUTINE allocate_tblite_type
      88              : 
      89              : ! **************************************************************************************************
      90              : !> \brief ...
      91              : !> \param tb_tblite ...
      92              : ! **************************************************************************************************
      93            0 :    SUBROUTINE deallocate_tblite_type(tb_tblite)
      94              : 
      95              :       TYPE(tblite_type), POINTER                         :: tb_tblite
      96              : 
      97            0 :       IF (ASSOCIATED(tb_tblite)) THEN
      98            0 :          IF (ALLOCATED(tb_tblite%el_num)) DEALLOCATE (tb_tblite%el_num)
      99              : 
     100            0 :          IF (ALLOCATED(tb_tblite%e_hal)) DEALLOCATE (tb_tblite%e_hal)
     101            0 :          IF (ALLOCATED(tb_tblite%e_rep)) DEALLOCATE (tb_tblite%e_rep)
     102            0 :          IF (ALLOCATED(tb_tblite%e_disp)) DEALLOCATE (tb_tblite%e_disp)
     103            0 :          IF (ALLOCATED(tb_tblite%e_scd)) DEALLOCATE (tb_tblite%e_scd)
     104            0 :          IF (ALLOCATED(tb_tblite%e_es)) DEALLOCATE (tb_tblite%e_es)
     105            0 :          IF (ALLOCATED(tb_tblite%selfenergy)) DEALLOCATE (tb_tblite%selfenergy)
     106            0 :          IF (ALLOCATED(tb_tblite%cn)) DEALLOCATE (tb_tblite%cn)
     107              : 
     108            0 :          IF (ALLOCATED(tb_tblite%grad)) DEALLOCATE (tb_tblite%grad)
     109            0 :          IF (ALLOCATED(tb_tblite%dsedcn)) DEALLOCATE (tb_tblite%dsedcn)
     110            0 :          IF (ALLOCATED(tb_tblite%dcndr)) DEALLOCATE (tb_tblite%dcndr)
     111            0 :          IF (ALLOCATED(tb_tblite%dcndL)) DEALLOCATE (tb_tblite%dcndL)
     112              : 
     113            0 :          IF (ASSOCIATED(tb_tblite%dipbra)) &
     114            0 :             CALL dbcsr_deallocate_matrix_set(tb_tblite%dipbra)
     115            0 :          IF (ASSOCIATED(tb_tblite%dipket)) &
     116            0 :             CALL dbcsr_deallocate_matrix_set(tb_tblite%dipket)
     117            0 :          IF (ASSOCIATED(tb_tblite%quadbra)) &
     118            0 :             CALL dbcsr_deallocate_matrix_set(tb_tblite%quadbra)
     119            0 :          IF (ASSOCIATED(tb_tblite%quadket)) &
     120            0 :             CALL dbcsr_deallocate_matrix_set(tb_tblite%quadket)
     121              : 
     122            0 :          DEALLOCATE (tb_tblite)
     123              :       END IF
     124              : 
     125            0 :    END SUBROUTINE deallocate_tblite_type
     126              : 
     127            0 : END MODULE tblite_types
        

Generated by: LCOV version 2.0-1