Pseudo-spectral methods (COSX, PS, SN-K)
get_jk(dm, hermi=1, with_j=True, with_k=True, direct_scf_tol=1e-13, omega=None)¶
Kernel function is the main driver of a method. Every method should define the kernel function as the entry of the calculation. Note the return value of kernel function is not strictly defined. It can be anything related to the method (such as the energy, the wave-function, the DFT mesh grids etc.).
Reset mol and clean up relevant attributes for scanner mode
sgx_fit(mf, auxbasis=None, with_df=None)¶
For the given SCF object, update the J, K matrix constructor with corresponding SGX or density fitting integrals.
mf : an SCF object
- auxbasisstr or basis dict
Same format to the input attribute mol.basis. If auxbasis is None, optimal auxiliary basis based on AO basis (if possible) or even-tempered Gaussian basis will be used.
An SCF object with a modified J, K matrix constructor which uses density fitting integrals to compute J and K
>>> mol = gto.M(atom='H 0 0 0; F 0 0 1', basis='ccpvdz', verbose=0) >>> mf = sgx_fit(scf.RHF(mol)) >>> mf.scf() -100.00978770917165
>>> mol.symmetry = 1 >>> mol.build(0, 0) >>> mf = sgx_fit(scf.UHF(mol)) >>> mf.scf() -100.00978770951018
semi-grid Coulomb and eXchange without differencial density matrix
To lower the scaling of coulomb and exchange matrix construction for large system, one coordinate is analitical and the other is grid. The traditional two electron integrals turn to analytical one electron integrals and numerical integration based on grid.(see Friesner, R. A. Chem. Phys. Lett. 1985, 116, 39)
Minimizing numerical errors using overlap fitting correction.(see Lzsak, R. et. al. J. Chem. Phys. 2011, 135, 144105) Grid screening for weighted AO value and DktXkg. Two SCF steps: coarse grid then fine grid. There are 5 parameters can be changed: # threshold for Xg and Fg screening gthrd = 1e-10 # initial and final grids level grdlvl_i = 0 grdlvl_f = 1 # norm_ddm threshold for grids change thrd_nddm = 0.03 # set block size to adapt memory sblk = 200
Set mf.direct_scf = False because no traditional 2e integrals
get_gridss(mol, level=1, gthrd=1e-10)¶
get_jk(sgx, dm, hermi=1, with_j=True, with_k=True, direct_scf_tol=1e-13)¶
get_jk_favorj(sgx, dm, hermi=1, with_j=True, with_k=True, direct_scf_tol=1e-13)¶
get_jk_favork(sgx, dm, hermi=1, with_j=True, with_k=True, direct_scf_tol=1e-13)¶