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)
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)
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)
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)
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)
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)
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"))
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)