LCOV - code coverage report
Current view: top level - src - rel_control_types.F (source / functions) Coverage Total Hit
Test: CP2K Regtests (git:42dac4a) Lines: 95.2 % 21 20
Test Date: 2025-07-25 12:55:17 Functions: 75.0 % 4 3

            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 parameters that control a relativistic calculation
      10              : !> \par History
      11              : !>      09.2002 created [fawzi] (as scf_control_types.F)
      12              : !>      10.2008 modified for relativistic control types (Jens Thar)
      13              : !> \author Fawzi Mohamed
      14              : ! **************************************************************************************************
      15              : MODULE rel_control_types
      16              : 
      17              :    USE input_constants,                 ONLY: rel_none,&
      18              :                                               rel_pot_full,&
      19              :                                               rel_trans_full,&
      20              :                                               rel_zora_full
      21              :    USE input_section_types,             ONLY: section_vals_get_subs_vals,&
      22              :                                               section_vals_type,&
      23              :                                               section_vals_val_get
      24              : #include "./base/base_uses.f90"
      25              : 
      26              :    IMPLICIT NONE
      27              : 
      28              :    PRIVATE
      29              : 
      30              :    CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'rel_control_types'
      31              :    LOGICAL, PRIVATE, PARAMETER :: debug_this_module = .TRUE.
      32              : 
      33              :    ! Public data types
      34              : 
      35              :    PUBLIC :: rel_control_type
      36              : 
      37              :    ! Public subroutines
      38              : 
      39              :    PUBLIC :: rel_c_create, &
      40              :              rel_c_read_parameters, &
      41              :              rel_c_release
      42              : 
      43              : ! **************************************************************************************************
      44              : !> \brief contains the parameters needed by a relativistic calculation
      45              : !> \param method used relativistic method (NONE, DKH)
      46              : !> \param DKH_order order of the DKH transformation (2,3)
      47              : !> \param transformation used blocks of the full matrix (FULL, MOLECULE, ATOM)
      48              : !> \param z_cutoff considered range of the Coulomb interaction
      49              : !> \param potential nuclear electron Coulomb potential (FULL, ERFC)
      50              : !> \par History
      51              : !>      09.2002 created [fawzi] for scf_control_type
      52              : !>      10.2008 copied to rel_control_type [JT]
      53              : !> \author Fawzi Mohamed
      54              : ! **************************************************************************************************
      55              :    TYPE rel_control_type
      56              :       INTEGER                               :: rel_method = -1
      57              :       INTEGER                               :: rel_DKH_order = -1
      58              :       INTEGER                               :: rel_ZORA_type = -1
      59              :       INTEGER                               :: rel_transformation = -1
      60              :       INTEGER                               :: rel_z_cutoff = -1
      61              :       INTEGER                               :: rel_potential = -1
      62              :    END TYPE rel_control_type
      63              : 
      64              : CONTAINS
      65              : 
      66              : ! **************************************************************************************************
      67              : !> \brief allocates and initializes an rel control object with the default values
      68              : !> \param rel_control the object to initialize
      69              : !> \par History
      70              : !>      09.2002 created [fawzi] for scf_control_type
      71              : !>      10.2008 copied to rel_control_type [JT]
      72              : !> \author Fawzi Mohamed
      73              : ! **************************************************************************************************
      74         7404 :    SUBROUTINE rel_c_create(rel_control)
      75              : 
      76              :       TYPE(rel_control_type), INTENT(OUT)                :: rel_control
      77              : 
      78              :       ! Load the default values
      79              : 
      80         7404 :       rel_control%rel_method = rel_none
      81         7404 :       rel_control%rel_DKH_order = 2
      82         7404 :       rel_control%rel_ZORA_type = rel_zora_full
      83         7404 :       rel_control%rel_transformation = rel_trans_full
      84         7404 :       rel_control%rel_z_cutoff = 1
      85         7404 :       rel_control%rel_potential = rel_pot_full
      86              : 
      87         7404 :    END SUBROUTINE rel_c_create
      88              : 
      89              : ! **************************************************************************************************
      90              : !> \brief releases the given rel_control (see cp2k/doc/ReferenceCounting.html)
      91              : !> \param rel_control the object to free
      92              : !> \par History
      93              : !>      09.2002 created [fawzi] for scf_control_type
      94              : !>      10.2008 copied to rel_control_type [JT]
      95              : !> \author Fawzi Mohamed
      96              : !> \note
      97              : !>      at the moment does nothing
      98              : ! **************************************************************************************************
      99         7404 :    SUBROUTINE rel_c_release(rel_control)
     100              : 
     101              :       TYPE(rel_control_type), INTENT(IN)                 :: rel_control
     102              : 
     103              :       MARK_USED(rel_control)
     104              : 
     105         7404 :    END SUBROUTINE rel_c_release
     106              : 
     107              : ! **************************************************************************************************
     108              : !> \brief reads the parameters of the relativistic section into the given rel_control
     109              : !> \param rel_control the object that wil contain the values read
     110              : !> \param dft_section ...
     111              : !> \par History
     112              : !>      05.2001 created [Matthias] for scf_control_type
     113              : !>      09.2002 created separated scf_control type [fawzi]
     114              : !>      10.2008 copied to rel_control_type [JT]
     115              : !> \author Matthias Krack
     116              : ! **************************************************************************************************
     117         7404 :    SUBROUTINE rel_c_read_parameters(rel_control, dft_section)
     118              : 
     119              :       TYPE(rel_control_type), INTENT(INOUT)              :: rel_control
     120              :       TYPE(section_vals_type), POINTER                   :: dft_section
     121              : 
     122              :       TYPE(section_vals_type), POINTER                   :: rel_section
     123              : 
     124         7404 :       CPASSERT(ASSOCIATED(dft_section))
     125              : 
     126         7404 :       rel_section => section_vals_get_subs_vals(dft_section, "RELATIVISTIC")
     127              :       CALL section_vals_val_get(rel_section, "method", &
     128         7404 :                                 i_val=rel_control%rel_method)
     129              :       CALL section_vals_val_get(rel_section, "DKH_order", &
     130         7404 :                                 i_val=rel_control%rel_DKH_order)
     131              :       CALL section_vals_val_get(rel_section, "ZORA_TYPE", &
     132         7404 :                                 i_val=rel_control%rel_zora_type)
     133              :       CALL section_vals_val_get(rel_section, "transformation", &
     134         7404 :                                 i_val=rel_control%rel_transformation)
     135              :       CALL section_vals_val_get(rel_section, "z_cutoff", &
     136         7404 :                                 i_val=rel_control%rel_z_cutoff)
     137              :       CALL section_vals_val_get(rel_section, "potential", &
     138         7404 :                                 i_val=rel_control%rel_potential)
     139              : 
     140         7404 :    END SUBROUTINE rel_c_read_parameters
     141              : 
     142            0 : END MODULE rel_control_types
        

Generated by: LCOV version 2.0-1