dft_parameters Derived Type

type, public, bind(C) :: dft_parameters


Inherited by

type~~dft_parameters~~InheritedByGraph type~dft_parameters dft_parameters type~information information type~information->type~dft_parameters dft

Components

Type Visibility Attributes Name Initial
character(kind=c_char, len=1), public :: XC_functional_name(20)
real(kind=c_double), public :: hfscale = 1.0_dp
real(kind=c_double), public :: cam_alpha = 0.0_dp
real(kind=c_double), public :: cam_beta = 0.0_dp
real(kind=c_double), public :: cam_mu = 0.0_dp
real(kind=c_double), public :: MP2SS_Scale = 0.0_dp
real(kind=c_double), public :: MP2OS_Scale = 0.0_dp
logical(kind=c_bool), public :: cam_flag = .false.
logical(kind=c_bool), public :: dh_flag = .false.
logical(kind=c_bool), public :: grid_pruned = .false.
logical(kind=c_bool), public :: grid_ao_pruned = .true.
real(kind=c_double), public :: grid_ao_threshold = 0.0_dp
real(kind=c_double), public :: grid_ao_sparsity_ratio = 0.9_dp
character(len=c_char), public :: grid_pruned_name(16) = ''
integer(kind=c_int64_t), public :: grid_num_ang_grids = 0
integer(kind=c_int64_t), public :: grid_rad_size = 96
integer(kind=c_int64_t), public :: grid_ang_size = 302
real(kind=c_double), public :: grid_density_cutoff = 0.0d0
integer(kind=c_int64_t), public :: dft_partfun = 0
integer(kind=c_int64_t), public :: rad_grid_type = 0
integer(kind=c_int64_t), public :: dft_bfc_algo = 0
logical(kind=c_bool), public :: dft_wt_der = .false.

Source Code

  type, public, bind(C) :: dft_parameters
    character(kind=c_char) :: XC_functional_name(20)  !< Name of XC functional
    real(c_double) :: hfscale               = 1.0_dp  !< HF scale for global hybrids
    real(c_double) :: cam_alpha             = 0.0_dp  !< alpha coefficient
    real(c_double) :: cam_beta              = 0.0_dp  !< beta coefficient
    real(c_double) :: cam_mu                = 0.0_dp  !< mu coefficient
    real(c_double) :: MP2SS_Scale           = 0.0_dp  !< coefficient of non-local MP2 same-spin correlation
    real(c_double) :: MP2OS_Scale           = 0.0_dp  !< coefficient of non-local MP2 opposite-spin correlation
    logical(c_bool) :: cam_flag             = .false. !< switch Coulomb-Attenuating Method (CAM-) \frac{1}{r_{12}} = \frac{1-[cam_{alpha}+cam_{beta}*\erf(cam_{mu}*r_{12})]}{r_{12}} + \frac{cam_{alpha}+cam_{beta}*\erf(cam_{mu}*r_{12})}{r_{12}}
    logical(c_bool) :: dh_flag              = .false. !< logical flag of using DH-DFT functionals
    logical(c_bool) :: grid_pruned          = .false. !< true if pruned grid (e.g. sg1) is used
    logical(c_bool) :: grid_ao_pruned           = .true.  !< true if grid is pruned by AO distance
    real(c_double) :: grid_ao_threshold         = 0.0_dp  !< Prune grid AOs with threshold
    real(c_double) :: grid_ao_sparsity_ratio    = 0.9_dp  !< Prune grid AOs if sparsity exceeds 10%
    character(c_char) :: grid_pruned_name(16)   = ''  !< prune grid name
    integer(c_int64_t) :: grid_num_ang_grids    = 0      !< number of angular grids, >1 means pruned grid
    integer(c_int64_t) :: grid_rad_size         = 96     !< number of radial grid pts.
    integer(c_int64_t) :: grid_ang_size         = 302    !< number of angular grid pts.
    real(c_double)     :: grid_density_cutoff   = 0.0d0  !< grid DFT density cutoff
    integer(c_int64_t) :: dft_partfun           = 0  !< partition function type in grid-based DFT
                                                     !< -  0 (default) - SSF original polynomial
                                                     !< -  1           - Becke's 4th degree polynomial
                                                     !< -  2           - Modified SSF ( erf(x/(1-x**2)) )
                                                     !< -  3           - Modified SSF (smoothstep-2, 5th order)
                                                     !< -  4           - Modified SSF (smoothstep-3, 7rd order)
                                                     !< -  5           - Modified SSF (smoothstep-4, 9th order)
                                                     !< -  6           - Modified SSF (smoothstep-5,11th order)
                                                     !< Note: Becke's polynomial with 1 iteration is actually
                                                     !< a smoothstep-1 polynomial (3*x**2 - 2*x**3)
    integer(c_int64_t) :: rad_grid_type         = 0  !< type of the radial grid in DFT:
                                                     !< - 0 (default) - Euler-Maclaurin grid (Murray et al.)
                                                     !< - 1           - Log3 grid (Mura and Knowles)
                                                     !< - 2           - Treutler and Ahlrichs radial grid
                                                     !< - 3           - Becke's grid

    integer(c_int64_t) :: dft_bfc_algo          = 0  !< type of the Becke's fuzzy cell method
                                                     !< - 0 (default) - SSF-like algorithm
                                                     !< - 1           - Becke's algorithm
    logical(c_bool)    :: dft_wt_der            = .false.   !< .TRUE. if quadrature weights derivative
                                                            !<  contribution to the nuclear gradient is needed
                                                            !< Weight derivatives are not always required,
                                                            !< especially if the fine grid is used


  end type dft_parameters