1#!/usr/bin/env python 2 3''' 4Set the default XC functional library to XCFun (https://github.com/dftlibs/xcfun) 5''' 6 7from pyscf import gto, dft, grad 8 9mol = gto.M( 10 atom = ''' 11 F 0. 0. 0. 12 H 0. 0. 1.587 ''', 13 basis = 'ccpvdz') 14 15# 16# Scheme 1: Change ._numint of MF object for a single calculation. 17# 18mf = dft.RKS(mol) 19mf._numint.libxc = dft.xcfun 20mf.xc = 'b88,lyp' 21mf.kernel() 22mf.nuc_grad_method().run() 23 24mf.xc = 'scan' 25mf.kernel() 26 27# 28# Scheme 2: Change the default XC library globally. All DFT calculations will 29# call xcfun for XC functional values. 30# 31dft.numint.NumInt.libxc = dft.xcfun 32mf = dft.RKS(mol) 33mf.xc = 'b88,lyp' 34mf.kernel() 35mf.nuc_grad_method().run() 36 37mf.xc = 'scan' 38mf.kernel() 39