예제 #1
0
def build_b5050lyp_superfunctional(name, npoints, deriv, restricted):
    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('B5050LYP')
    # Tab in, trailing newlines
    sup.set_description('    B5050LYP Hyb-GGA Exchange-Correlation Functional\n')
    # Tab in, trailing newlines
    sup.set_citation('    Y. Shao et. al., J. Chem. Phys., 188, 4807-4818, 2003\n')

    # Add member functionals
    slater = core.LibXCFunctional("XC_LDA_X", restricted)
    slater.set_alpha(0.08)
    sup.add_x_functional(slater)
    becke = core.LibXCFunctional("XC_GGA_X_B88", restricted)
    becke.set_alpha(0.42)
    sup.add_x_functional(becke)
    sup.set_x_alpha(0.50)

    vwn = core.LibXCFunctional("XC_LDA_C_VWN", restricted)
    vwn.set_alpha(0.19)
    sup.add_c_functional(vwn)
    lyp = core.LibXCFunctional("XC_GGA_C_LYP", restricted)
    lyp.set_alpha(0.81)
    sup.add_c_functional(lyp)

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #2
0
def build_dldf_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('dlDF')
    sup.set_description('    Dispersionless Hybrid Meta-GGA XC Functional\n')
    sup.set_citation(
        '    Pernal et. al., Phys. Rev. Lett., 103, 263201, 2009\n')

    # Add member functionals
    x_coef = 0.6144129
    dldf_x = core.LibXCFunctional('XC_HYB_MGGA_X_DLDF', restricted)
    # dldf_x.set_alpha(1.0 - x_coef)
    sup.add_x_functional(dldf_x)
    sup.add_c_functional(core.LibXCFunctional('XC_MGGA_C_DLDF', restricted))

    sup.set_x_alpha(x_coef)

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #3
0
def build_wpbe_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('wPBE')
    # Tab in, trailing newlines
    sup.set_description('    PBE SR-XC Functional (HJS Model)\n')
    # Tab in, trailing newlines
    sup.set_citation(
        '    Henderson et. al., J. Chem. Phys., 128, 194105, 2008\n    Weintraub, Henderson, and Scuseria, J. Chem. Theory. Comput., 5, 754 (2009)\n'
    )

    # Add member functionals
    pbe_x = core.LibXCFunctional('XC_GGA_X_HJS_PBE', restricted)
    pbe_x.set_omega(0.4)
    sup.add_x_functional(pbe_x)
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_PBE', restricted))

    # Set GKS up after adding functionals
    sup.set_x_omega(0.4)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.0)
    sup.set_c_alpha(0.0)

    # => End User-Customization <= #

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #4
0
def build_pbe0_2_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('PBE0-2')
    # Tab in, trailing newlines
    sup.set_description('    PBE0-2 Double Hybrid Exchange-Correlation Functional\n')
    # Tab in, trailing newlines
    sup.set_citation('    J. Chai, Chem. Phys. Lett., 538, 121-125, 2012\n')

    # Add member functionals
    X = core.LibXCFunctional('XC_GGA_X_PBE', restricted)
    X.set_alpha(0.206299)
    sup.add_x_functional(X)
    C = core.LibXCFunctional('XC_GGA_C_PBE', restricted)
    C.set_alpha(0.5)
    sup.add_c_functional(C)

    # Set GKS up after adding functionals
    sup.set_x_omega(0.0)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.793701)
    sup.set_c_alpha(0.5)

    # => End User-Customization <= #

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #5
0
def build_pbe0_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('PBE0')
    # Tab in, trailing newlines
    sup.set_description('    PBE GGA Exchange-Correlation Functional\n')
    # Tab in, trailing newlines
    sup.set_citation(
        '    J.P. Perdew et. al., Phys. Rev. Lett., 77(18), 3865-3868, 1996\n')

    # Add member functionals
    pbe_x = core.LibXCFunctional('XC_GGA_X_PBE', restricted)
    pbe_x.set_alpha(0.75)
    sup.add_x_functional(pbe_x)
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_PBE', restricted))

    sup.set_x_alpha(0.25)

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #6
0
def build_scan_superfunctional(name, npoints, deriv, restricted):
    # Disabled below, no SCAN correlation in LibXC 3.0.0
    # SCAN correlation results unreliable.

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('SCAN')
    sup.set_description('    SCAN Meta-GGA XC Functional\n')
    sup.set_citation(
        '    J. Sun, A. Ruzsinszky, and J. P. Perdew, Phys. Rev. Lett. 115, 036402, 2015\n'
    )

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_MGGA_X_SCAN', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_MGGA_C_SCAN', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #7
0
def build_pbeh3c_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('PBEH3C')
    # tab in, trailing newlines
    sup.set_description('    PBEH-3C Hybrid GGA Exchange-Correlation Functional plus 3C\n')
    # tab in, trailing newlines
    sup.set_citation('    Grimme et. al., J. Chem. Phys., 143, 054107, 2015\n')

    # Add member functionals
    pbe_x3c = core.LibXCFunctional('XC_GGA_X_PBE', restricted)
    pbe_x3c.set_alpha(0.58)
    pbe_x3c.set_tweak([1.0245, 0.12345679])
    sup.add_x_functional(pbe_x3c)

    pbe_c3c = core.LibXCFunctional('XC_GGA_C_PBE', restricted)
    pbe_c3c.set_tweak([0.03])
    sup.add_c_functional(pbe_c3c)

    # set gks up after adding functionals
    sup.set_x_omega(0.0)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.42)
    sup.set_c_alpha(0.0)

    # Call this last
    sup.allocate()
    return (sup, ("PBEH3C", "-d3bj"))
예제 #8
0
def build_b2plyp_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('B2PLYP')
    # Tab in, trailing newlines
    sup.set_description('    B2PLYP Double Hybrid Exchange-Correlation Functional\n')
    # Tab in, trailing newlines
    sup.set_citation('    S. Grimme, J. Chem. Phys., 124, 034108, 2006\n')

    # Add member functionals
    becke = core.LibXCFunctional('XC_GGA_X_B88', restricted)
    becke.set_alpha(0.47)
    sup.add_x_functional(becke)
    lyp = core.LibXCFunctional('XC_GGA_C_LYP', restricted)
    lyp.set_alpha(0.73)
    sup.add_c_functional(lyp)

    # Set GKS up after adding functionals
    sup.set_x_omega(0.0)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.53)
    sup.set_c_alpha(0.27)

    # => End User-Customization <= #

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #9
0
def build_pbe0_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('PBE0')
    # Tab in, trailing newlines
    sup.set_description('    PBE0 Hyb-GGA Exchange-Correlation Functional\n')
    # Tab in, trailing newlines
    sup.set_citation(
        '    J.P. Perdew et. al., J. Chem. Phys., 105(22), 9982-9985, 1996\n    C. Adamo et. a., J. Chem Phys., 110(13), 6158-6170, 1999\n'
    )

    # Add member functionals
    pbe_x = core.LibXCFunctional('XC_GGA_X_PBE', restricted)
    pbe_x.set_alpha(0.75)
    sup.add_x_functional(pbe_x)
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_PBE', restricted))

    sup.set_x_alpha(0.25)

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #10
0
def build_pw6b95_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('pw6b95')
    # Tab in, trailing newlines
    sup.set_description('    PW6B95 Hybrid-meta XC Functional\n')
    # Tab in, trailing newlines
    sup.set_citation('  Y. Zhao and D. Truhlar, J. Phys. Chem. A., 109,5656-5667, 2005\n')
    #PW6B95(hybrid) 0.00538      1.7382  3.8901  0.00262 0.03668 0.28
    # Add member functionals
    pw6 = core.LibXCFunctional('XC_GGA_X_PW91', restricted)
    # modify PW91 suitable for libxc b=1/X2S is unchanged
    #  a    =  6.0*bt/X2S;
    #  b    =  1.0/X2S;
    #  c    =  bt/(X_FACTOR_C*X2S*X2S);
    #  d    = -(bt - beta)/(X_FACTOR_C*X2S*X2S);
    #  f    = 1.0e-6/(X_FACTOR_C*POW(X2S, expo));
    beta = 0.0018903811666999256  # 5.0*(36.0*math.pi)**(-5.0/3.0)
    X2S = 0.1282782438530421943003109254455883701296
    X_FACTOR_C = 0.9305257363491000250020102180716672510262  #    /* 3/8*cur(3/pi)*4^(2/3) */
    bt = 0.00538  # paper values
    c_pw = 1.7382  # paper values
    expo_pw6 = 3.8901  # paperl values

    alpha_pw6 = c_pw / X2S / X2S
    a_pw6 = 6.0 * bt / X2S
    b_pw6 = 1.0 / X2S
    c_pw6 = bt / (X_FACTOR_C * X2S * X2S)
    d_pw6 = -(bt - beta) / (X_FACTOR_C * X2S * X2S)
    f_pw6 = 1.0e-6 / (X_FACTOR_C * X2S**expo_pw6)
    pw6.set_tweak([a_pw6, b_pw6, c_pw6, d_pw6, f_pw6, alpha_pw6, expo_pw6])
    pw6.set_alpha(0.72)
    sup.add_x_functional(pw6)

    mb95 = core.LibXCFunctional('XC_MGGA_C_BC95', restricted)
    copp = 0.00262
    css = 0.03668
    mb95.set_tweak([css, copp])
    sup.add_c_functional(mb95)

    # Set GKS up after adding functionals
    sup.set_x_omega(0.0)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.28)
    sup.set_c_alpha(0.0)

    # => End User-Customization <= #

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #11
0
def build_pwpb95_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('PWPB95')
    # Tab in, trailing newlines
    sup.set_description('    PWPB95  SOS Double Hybrid XC Functional\n')
    # Tab in, trailing newlines
    sup.set_citation('    L. Goerigk, S.Grimme, J.Chem. Theory Compt. 7, 291-309, 2011 \n')
    # Add member functionals
    pw6 = core.LibXCFunctional('XC_GGA_X_PW91', restricted)
    # modify PW91 suitable for libxc
    #   beta=0.0018903811666999256 # 5.0*(36.0*math.pi)**(-5.0/3.0)
    beta = 5.0 * (36.0 * 3.141592653589793)**(-5.0 / 3.0)
    X2S = 0.1282782438530421943003109254455883701296
    X_FACTOR_C = 0.9305257363491000250020102180716672510262  #    /* 3/8*cur(3/pi)*4^(2/3) */
    bt = 0.004440  # paper values
    c_pw = 0.32620  # paper values
    expo_pw6 = 3.7868  # paper values

    alpha_pw6 = c_pw / X2S / X2S
    a_pw6 = 6.0 * bt / X2S
    b_pw6 = 1.0 / X2S
    c_pw6 = bt / (X_FACTOR_C * X2S * X2S)
    d_pw6 = -(bt - beta) / (X_FACTOR_C * X2S * X2S)
    f_pw6 = 1.0e-6 / (X_FACTOR_C * X2S**expo_pw6)
    pw6.set_tweak([a_pw6, b_pw6, c_pw6, d_pw6, f_pw6, alpha_pw6, expo_pw6])
    pw6.set_alpha(0.50)
    sup.add_x_functional(pw6)

    mb95 = core.LibXCFunctional('XC_MGGA_C_BC95', restricted)
    copp = 0.00250
    css = 0.03241
    mb95.set_tweak([css, copp])
    mb95.set_alpha(0.731)
    sup.add_c_functional(mb95)

    # Set GKS up after adding functionals
    sup.set_x_omega(0.0)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.50)
    sup.set_c_alpha(1.0)
    sup.set_c_ss_alpha(0.00)
    sup.set_c_os_alpha(0.269)

    # => End User-Customization <= #

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #12
0
def _compute_fxc(PQrho, half_Saux, halfp_Saux, rho_thresh=1.e-8):
    """
    Computes the gridless (P|fxc|Q) ALDA tensor.
    """

    naux = PQrho.shape[0]

    # Level it out
    PQrho_lvl = core.Matrix.triplet(half_Saux, PQrho, half_Saux, False, False,
                                    False)

    # Rotate into a diagonal basis
    rho = core.Vector("rho eigenvalues", naux)
    U = core.Matrix("rho eigenvectors", naux, naux)
    PQrho_lvl.diagonalize(U, rho, core.DiagonalizeOrder.Ascending)

    # "Gridless DFT"
    mask = rho.np < rho_thresh  # Values too small cause singularities
    rho.np[mask] = rho_thresh

    dft_size = rho.shape[0]

    inp = {"RHO_A": rho}
    out = {
        "V": core.Vector(dft_size),
        "V_RHO_A": core.Vector(dft_size),
        "V_RHO_A_RHO_A": core.Vector(dft_size)
    }

    func_x = core.LibXCFunctional('XC_LDA_X', True)
    func_x.compute_functional(inp, out, dft_size, 2)

    func_c = core.LibXCFunctional('XC_LDA_C_VWN', True)
    func_c.compute_functional(inp, out, dft_size, 2)

    out["V_RHO_A_RHO_A"].np[mask] = 0

    # Rotate back
    Ul = U.clone()
    Ul.np[:] *= out["V_RHO_A_RHO_A"].np
    tmp = core.Matrix.doublet(Ul, U, False, True)

    # Undo the leveling
    return core.Matrix.triplet(halfp_Saux, tmp, halfp_Saux, False, False,
                               False)
예제 #13
0
def build_ptpss_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('PTPSS')
    # Tab in, trailing newlines
    sup.set_description('    PTPSS SOS Double Hybrid XC Functional\n')
    # Tab in, trailing newlines
    sup.set_citation('    L. Goerigk, S.Grimme, J. Chem. Theory Comput., 7, 291-309, 2011 \n')

    # Add member functionals
    X = core.LibXCFunctional('XC_MGGA_X_TPSS', restricted)
    # needs modified TPSS
    X.set_tweak([0.15, 0.88491, 0.047, 0.872, 0.16952])
    X.set_alpha(0.50)
    sup.add_x_functional(X)
    C = core.LibXCFunctional('XC_MGGA_C_TPSS', restricted)
    # needs modified TPSS
    C.set_tweak([0.06080, 6.3, 0.53, 0.87, 0.50, 2.26])
    #   C.set_tweak([0.06672455060314922, 2.8, 0.53, 0.87, 0.50, 2.26]) # =TPSS

    C.set_alpha(0.625)
    sup.add_c_functional(C)

    # Set GKS up after adding functionals
    sup.set_x_omega(0.0)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.50)
    sup.set_c_alpha(1.0)
    sup.set_c_ss_alpha(0.00)
    sup.set_c_os_alpha(0.375)

    # => End User-Customization <= #

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #14
0
def build_bp86_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('BP86')
    sup.set_description('    BP86 GGA Exchange-Correlation Functional\n')
    sup.set_citation('    Null\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_GGA_X_B88', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_P86', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #15
0
def build_mgga_ms2_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('MGGA_MS2')
    sup.set_description('    MGGA_MS2 Meta-GGA XC Functional\n')
    sup.set_citation('    J. Sun et. al., J. Chem. Phys. 138, 044113, 2013\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_MGGA_X_MS2', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_REGTPSS', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #16
0
def build_b86bpbe_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('B86BPBE')
    sup.set_description('    B86BPBE GGA Exchange-Correlation Functional\n')
    sup.set_citation('    A. D. Becke, J. Chem. Phys. 85:7184, 1986.\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_GGA_X_B86_MGC', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_PBE', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #17
0
def build_revtpss_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('REVTPSS')
    sup.set_description('    revised TPSS Meta-GGA XC Functional\n')
    sup.set_citation('   J. Sun  et. al., Phys. Rev. B, 84, 035117, 2011\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_MGGA_X_REVTPSS', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_MGGA_C_REVTPSS', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #18
0
def build_dsd_pbepbe_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('DSD-PBEPBE')
    # Tab in, trailing newlines
    sup.set_description(
        '    DSD-PBEPBE Dispersion-corrected SCS Double Hybrid XC Functional\n'
    )
    # Tab in, trailing newlines
    sup.set_citation(
        '    S. Kozuch, Phys. Chem. Chem. Phys., 13, 20104, 2011\n')

    # Add member functionals
    X = core.LibXCFunctional('XC_GGA_X_PBE', restricted)
    X.set_alpha(0.34)
    sup.add_x_functional(X)
    C = core.LibXCFunctional('XC_GGA_C_PBE', restricted)
    C.set_alpha(0.51)
    sup.add_c_functional(C)

    # Set GKS up after adding functionals
    sup.set_x_omega(0.0)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.66)
    sup.set_c_alpha(1.0)
    sup.set_c_ss_alpha(0.12)
    sup.set_c_os_alpha(0.53)

    # => End User-Customization <= #

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #19
0
def build_mn15_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('MN15')
    sup.set_description('   MN15 Hybrid Exchange-Correlation Functional\n')
    sup.set_citation('    H. S. Yu, X. He, S. L. Li, and D. G. Truhlar, Chem. Sci. 7, 5032-5051, 2016\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_HYB_MGGA_X_MN15', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_MGGA_C_MN15', restricted))
    sup.set_x_alpha(0.44)

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #20
0
def build_core_dsd_blyp_superfunctional(name, npoints, deriv, restricted):
    # This is the version from the GMTKN30/55 benchmarks
    # GMTKN55 used full-core parametrization with frozen-core approximation for consistency with GMTKN30
    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('CORE-DSD-BLYP')
    # Tab in, trailing newlines
    sup.set_description('    DSD-BLYP Dispersion-corrected SCS Double Hybrid XC Functional\n')
    sup.set_description('    (full-core parameterization) \n')
    # Tab in, trailing newlines
    sup.set_citation('    S. Kozuch, Phys. Chem. Chem. Phys., 13, 20104, 2011\n')

    # Add member functionals
    X = core.LibXCFunctional('XC_GGA_X_B88', restricted)
    X.set_alpha(0.31)
    sup.add_x_functional(X)
    C = core.LibXCFunctional('XC_GGA_C_LYP', restricted)
    C.set_alpha(0.54)
    sup.add_c_functional(C)

    # Set GKS up after adding functionals
    sup.set_x_omega(0.0)
    sup.set_c_omega(0.0)
    sup.set_x_alpha(0.69)
    sup.set_c_alpha(1.0)
    sup.set_c_os_alpha(0.46)
    sup.set_c_ss_alpha(0.37)

    # => End User-Customization <= #

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #21
0
def build_m06_l_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('M06-L')
    sup.set_description('    M06-L Meta-GGA XC Functional\n')
    sup.set_citation(
        '    Y. Zhao and D. G. Truhlar, J. Chem. Phys. 125, 194101, 2006\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_MGGA_X_M06_L', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_MGGA_C_M06_L', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #22
0
def build_bop_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('BOP')
    sup.set_description('    BOP GGA Exchange-Correlation Functional\n')
    sup.set_citation(
        '    T. Tsuneda et. al., J. Chem. Phys. 110, 10664-10678, 1999\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_GGA_X_B88', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_OP_B88', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #23
0
def build_sogga11_x_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('SOGGA11-X')
    sup.set_description('   SOGGA11-X Hybrid Exchange-Correlation Functional\n')
    sup.set_citation('    R. Peverati and D. G. Truhlar, J. Chem. Phys. 135, 191102, 2011\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_HYB_GGA_X_SOGGA11_X', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_SOGGA11_X', restricted))
    sup.set_x_alpha(0.4015)

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #24
0
def build_svwn_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('SVWN')
    sup.set_description('    SVWN3 (RPA) LSDA Functional\n')
    sup.set_citation(
        '    Adamson et. al., J. Comput. Chem., 20(9), 921-927, 1999\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_LDA_X', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_LDA_C_VWN_RPA', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #25
0
def build_mpwpw_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('MPWPW')
    sup.set_description('    mPWPW GGA Exchange-Correlation Functional\n')
    sup.set_citation(
        '    C. Adamo, V. Barone, J. Chem. Phys., 108, 664, 1998\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_GGA_X_mPW91', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_PW91', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #26
0
def build_pw91_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('PW91')
    sup.set_description('    PW91 GGA Exchange-Correlation Functional\n')
    sup.set_citation(
        '    J.P. Perdew et. al., Phys. Rev. B., 46(11), 6671-6687, 1992\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_GGA_X_PW91', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_PW91', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #27
0
def build_pw86pbe_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('PW86PBE')
    sup.set_description('    PW86PBE GGA Exchange-Correlation Functional\n')
    sup.set_citation(
        '    J. P. Perdew and W. Yue, Phys. Rev. B 33:8800(R), 1986.\n')

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_GGA_X_PW86', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_PBE', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #28
0
def build_blyp_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('BLYP')
    sup.set_description('    BLYP GGA Exchange-Correlation Functional\n')
    sup.set_citation(
        '    P.J. Stephens et. al., J. Phys. Chem., 98, 11623-11627, 1994\n    B. Miehlich et. al., Chem. Phys. Lett., 157(3), 200-206 1989\n'
    )

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_GGA_X_B88', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_LYP', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #29
0
def build_ft97_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('FT97')
    sup.set_description('   FT97 GGA Exchange-Correlation Functional\n')
    sup.set_citation(
        '    M. Filatov and W. Theil, Int. J. Quant. Chem., 62, 603-616, 1997\n'
    )

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_GGA_X_FT97_B', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_GGA_C_FT97', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)
예제 #30
0
def build_tpss_superfunctional(name, npoints, deriv, restricted):

    # Call this first
    sup = core.SuperFunctional.blank()
    sup.set_max_points(npoints)
    sup.set_deriv(deriv)

    # => User-Customization <= #

    # No spaces, keep it short and according to convention
    sup.set_name('TPSS')
    sup.set_description('    TPSS Meta-GGA XC Functional\n')
    sup.set_citation(
        '   J. Tao, J. P. Perdew, V. N. Staroverov, G. E. Scuseria, Phys. Rev. Lett., 91, 146401, 2003\n'
    )

    # Add member functionals
    sup.add_x_functional(core.LibXCFunctional('XC_MGGA_X_TPSS', restricted))
    sup.add_c_functional(core.LibXCFunctional('XC_MGGA_C_TPSS', restricted))

    # Call this last
    sup.allocate()
    return (sup, False)