dftd4_param Module



Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: df_enum = kind(p_invalid)

Enumerations

enum, bind(c)

Enumerators

enumerator:: p_invalid = 0
enumerator:: p_hf = 1
enumerator:: p_blyp = 2
enumerator:: p_bpbe = 3
enumerator:: p_bp = 4
enumerator:: p_bpw = 5
enumerator:: p_lb94 = 6
enumerator:: p_mpwlyp = 7
enumerator:: p_mpwpw = 8
enumerator:: p_olyp = 9
enumerator:: p_opbe = 10
enumerator:: p_pbe = 11
enumerator:: p_rpbe = 12
enumerator:: p_revpbe = 13
enumerator:: p_pw86pbe = 14
enumerator:: p_rpw86pbe = 15
enumerator:: p_pw91 = 16
enumerator:: p_pwp = 17
enumerator:: p_xlyp = 18
enumerator:: p_b97 = 19
enumerator:: p_tpss = 20
enumerator:: p_revtpss = 21
enumerator:: p_scan = 22
enumerator:: p_rscan = 23
enumerator:: p_r2scan = 24
enumerator:: p_b1lyp = 25
enumerator:: p_b3lyp = 26
enumerator:: p_bhlyp = 27
enumerator:: p_b1p = 28
enumerator:: p_b3p = 29
enumerator:: p_b1pw = 30
enumerator:: p_b3pw = 31
enumerator:: p_o3lyp = 32
enumerator:: p_revpbe0 = 33
enumerator:: p_revpbe38 = 34
enumerator:: p_pbe0 = 35
enumerator:: p_pwp1 = 36
enumerator:: p_pw1pw = 37
enumerator:: p_mpw1pw = 38
enumerator:: p_mpw1lyp = 39
enumerator:: p_pw6b95 = 40
enumerator:: p_tpssh = 41
enumerator:: p_tpss0 = 42
enumerator:: p_x3lyp = 43
enumerator:: p_m06l = 44
enumerator:: p_m06 = 45
enumerator:: p_b97d = 46
enumerator:: p_wb97 = 47
enumerator:: p_wb97x = 48
enumerator:: p_b97m = 49
enumerator:: p_wb97m = 50
enumerator:: p_camb3lyp = 51
enumerator:: p_lcblyp = 52
enumerator:: p_lh07tsvwn = 53
enumerator:: p_lh07ssvwn = 54
enumerator:: p_lh12ctssirpw92 = 55
enumerator:: p_lh12ctssifpw92 = 56
enumerator:: p_lh14tcalpbe = 57
enumerator:: p_lh20t = 58
enumerator:: p_b2plyp = 59
enumerator:: p_b2gpplyp = 60
enumerator:: p_mpw2plyp = 61
enumerator:: p_pwpb95 = 62
enumerator:: p_dsdblyp = 63
enumerator:: p_dsdpbe = 64
enumerator:: p_dsdpbeb95 = 65
enumerator:: p_dsdpbep86 = 66
enumerator:: p_dsdsvwn = 67
enumerator:: p_dodblyp = 68
enumerator:: p_dodpbe = 69
enumerator:: p_dodpbeb95 = 70
enumerator:: p_dodpbep86 = 71
enumerator:: p_dodsvwn = 72
enumerator:: p_pbe0_2 = 73
enumerator:: p_pbe0_dh = 74
enumerator:: p_hsesol = 75
enumerator:: p_dftb_3ob = 76
enumerator:: p_dftb_mio = 77
enumerator:: p_dftb_ob2 = 78
enumerator:: p_dftb_matsci = 79
enumerator:: p_dftb_pbc = 80
enumerator:: p_b1b95 = 81
enumerator:: p_pbesol = 82
enumerator:: p_hse06 = 83
enumerator:: p_mpwb1k = 84
enumerator:: p_hse03 = 85
enumerator:: p_revtpssh = 86
enumerator:: p_mn12sx = 87
enumerator:: p_glyp = 88
enumerator:: p_mpw1b95 = 89
enumerator:: p_revpbe0dh = 90
enumerator:: p_revtpss0 = 91
enumerator:: p_revdsdpbep86 = 92
enumerator:: p_revdsdpbe = 93
enumerator:: p_revdsdblyp = 94
enumerator:: p_revdodpbep86 = 95
enumerator:: p_am05 = 96
enumerator:: p_hse12 = 97
enumerator:: p_hse12s = 98
enumerator:: p_r2scanh = 99
enumerator:: p_r2scan0 = 100
enumerator:: p_r2scan50 = 101
enumerator:: p_r2scan_3c = 102
enumerator:: p_camqtp01 = 103
enumerator:: p_lcwpbe = 104
enumerator:: p_lcwpbeh = 105
enumerator:: p_wb97x_rev = 106
enumerator:: p_wb97m_rev = 107
enumerator:: p_wb97x_3c = 108
enumerator:: p_wr2scan = 109
enumerator:: p_r2scan0_dh = 110
enumerator:: p_r2scan_cidh = 111
enumerator:: p_r2scan_qidh = 112
enumerator:: p_r2scan0_2 = 113
enumerator:: p_pr2scan50 = 114
enumerator:: p_pr2scan69 = 115
enumerator:: p_kpr2scan50 = 116
enumerator:: p_wpr2scan50 = 117
enumerator:: p_last = 118

Interfaces

public interface get_rational_damping

Retrieve rational damping parameters from functional name or ID

  • private subroutine get_rational_damping_name(functional, param, s9)

    Retrieve rational damping parameters from functional name

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: functional
    class(damping_param), intent(out), allocatable :: param
    real(kind=wp), intent(in), optional :: s9
  • private subroutine get_rational_damping_id(id, param, s9)

    Retrieve rational damping parameters from functional ID

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: id
    class(damping_param), intent(out), allocatable :: param
    real(kind=wp), intent(in), optional :: s9

Derived Types

type, public ::  functional_group

Group different spellings/names of functionals

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: names(:)

Functions

public pure function get_functional_id(df) result(num)

Get the unique identifier for most functionals, returns none if the functional was not known at the time I implemented this mapping

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: df

Return Value integer(kind=df_enum)

private function new_funcgroup(input_names) result(group)

Create a new group of functional names

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: input_names(:)

List of spellings/names of the functional

Return Value type(functional_group)

Functional with possibly different spellings


Subroutines

private subroutine get_d4eeq_bj_parameter(dfnum, param, s9)

Arguments

Type IntentOptional Attributes Name
integer(kind=df_enum), intent(in) :: dfnum
class(damping_param), intent(out), allocatable :: param
real(kind=wp), intent(in), optional :: s9

private subroutine get_d4eeq_bjatm_parameter(dfnum, param, s9)

Arguments

Type IntentOptional Attributes Name
integer(kind=df_enum), intent(in) :: dfnum
class(damping_param), intent(out), allocatable :: param
real(kind=wp), intent(in), optional :: s9

public subroutine get_functionals(funcs)

Collect all supported functionals

Arguments

Type IntentOptional Attributes Name
type(functional_group), intent(out), allocatable :: funcs(:)

Collection of functionals with possibly different spellings/names

private subroutine get_rational_damping_id(id, param, s9)

Retrieve rational damping parameters from functional ID

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: id
class(damping_param), intent(out), allocatable :: param
real(kind=wp), intent(in), optional :: s9

private subroutine get_rational_damping_name(functional, param, s9)

Retrieve rational damping parameters from functional name

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: functional
class(damping_param), intent(out), allocatable :: param
real(kind=wp), intent(in), optional :: s9