SCF
Contents
HF/DFT.
General keywords
RHF/UHF/ROHF
- Must input one of them if Hartree-Fock calculation is required. Required for restricted/unrestricted/restricted open shell Hartree-Fock calculations.
Example:
$scf RHF $end
RKS/UKS/ROKS
- Must input one of them if Kohn-Sham calculation is required. Required for restricted/unrestricted/restricted open shell Kohn-Sham calculations.
Occupy
- Used in RHF/RKS. Set double occupied number of each irreps.
The following line is an integer array, .
Alpha
- Used in UHF/ROHF/UKS/ROKS. Set number of alpha orbitals in each irreps.
The following line is an integer array, .
Beta
- Used in UHF/ROHF/UKS/ROKS. Set number of beta orbitals in each irreps.
The following line is an integer array, .
Charge
- Charge of the state.
Spin
- Spin of the state. The value is 2S+1.
Atomorb
- Calculate atomic orbitals and save atomic orbitals on file $BDF_WORKDIR/$BDFTASK.atmorb when this keyword is used.
Guess
- Method to get initial guess orbital. The following line is a string.
Values: Atom, Hcore, Huckel, Read.
If Read is used, the old orbital will be read. The program searches for the following files, in that order:
(1) $BDF_TMPDIR/[taskname].inporb
(2) $BDF_TMPDIR/inporb
(3) $BDF_WORKDIR/[taskname].scforb
The initial guess orbitals will be read from the first file that exists, and will be Lowdin orthogonalized before they are used in the SCF calculation. If the orbital file is invalid, corrupted, or incompatible with the current calculation (e.g. the number of basis functions is different), then the atomic guess will be used instead.
Notice that we recommend users choose Hcore for the following MCSCF calculations.
Mixorb
Mix the orbitals of the initial guess wavefunction. This is useful in two contexts: (1) generation of broken-symmetry wavefunctions, and (2) swapping of one or more occupied orbital(s) with virtual orbital(s) in order to converge to a different electronic state. Note that normally Mixorb is only useful when the initial guess is read from a file (see the Guess keyword), otherwise the initial guess orbitals are not known at the time the input file is written, which means that the behavior of Mixorb will be unpredictable.
The first line after the keyword is an integer, N, that specifies how many orbital pairs need to be mixed. The 2nd to (N+1)th lines each consists of 5 numbers: the spin of the orbital pair (1=alpha, 2=beta), the irreducible representation (irrep) of the orbital pair, the index of the first orbital, the index of the second orbital, and the mixing angle (in degrees).
- For example:
$scf RHF guess read mixorb 1 1,3,10,11,45 $end
will mix the 10th alpha orbital of the 3rd irrep with the 11th alpha orbital of the 3rd irrep like and , while
$scf UHF guess read mixorb 1 2,5,7,8,90 $end
- will simply swap the 7th beta orbital of the 5th irrep with the 8th beta orbital of the 5th irrep, since mixing two orbitals by an angle of 90 degrees is equivalent to swapping them. If orbital 7 was previously an occupied orbital and orbital 8 was a virtual orbital, then after swapping the occupation pattern will be reversed, with orbital 7 vacant and orbital 8 occupied.
DFT functional keywords
DFT
- DFT functional used in Kohn-Sham calculation. Example:
$scf RKS DFT B3LYP $end
Below is a list of functionals supported by the SCF module, together with whether they are supported by other modules, and whether they are supported by the DFT-D3 dispersion correction:
Functional |
SCF/Elecoup |
TDDFT/NMR |
Resp (excluding gradients & NACMEs) |
Resp (gradients & NACMEs) |
DFT-D3 |
LDA functionals |
|||||
LSDA |
√ |
√ |
√ |
√ |
× |
SVWN5 |
√ |
√ |
√ |
√ |
× |
SAOP |
√ |
√ |
× |
× |
× |
GGA functionals |
|||||
BP86 |
√ |
√ |
√ |
√ |
√ |
BLYP |
√ |
√ |
√ |
√ |
√ |
PBE |
√ |
√ |
√ |
√ |
√ |
PW91 |
√ |
√ |
× |
× |
× |
OLYP |
√ |
√ |
√ |
√ |
× |
KT2 |
√ |
√ |
× |
× |
× |
Hybrid GGA functionals |
|||||
B3LYP [a] |
√ |
√ |
√ |
√ |
√ |
GB3LYP [b] |
√ |
√ |
√ |
√ |
√ |
BHHLYP |
√ |
√ |
√ |
√ |
√ |
B3PW91 |
√ |
√ |
× |
× |
√ |
PBE0 |
√ |
√ |
√ |
√ |
√ |
HFLYP |
√ |
√ |
√ |
√ |
× |
VBLYP |
√ |
√ |
× |
× |
× |
SF5050 |
√ |
√ |
× |
× |
× |
Range-separated hybrid GGA functionals |
|||||
CAM-B3LYP [c] |
√ |
√ [f] |
√ |
× |
√ |
LC-BLYP [c] |
√ |
√ [f] |
√ |
× |
× |
wB97 [d] |
√ |
√ [f] |
× |
× |
× |
wB97X [e] |
√ |
√ [f] |
× |
× |
× |
wB97X-D [e] |
√ |
√ [f] |
× |
× |
√ |
Meta-GGA and hybrid meta-GGA functionals |
|||||
M06L |
√ |
√ [f] |
× |
√ [g] |
× |
M062X |
√ |
√ [f] |
× |
√ [g] |
× |
M11L |
√ |
√ [f] |
× |
√ [g] |
× |
MN12L |
√ |
√ [f] |
× |
√ [g] |
× |
MN15L |
√ |
√ [f] |
× |
√ [g] |
× |
TPSS |
√ |
√ [f] |
× |
√ [g] |
× |
TPSSh |
√ |
√ [f] |
× |
√ [g] |
× |
SCAN |
√ |
√ [f] |
× |
√ [g] |
× |
r2SCAN |
√ |
√ [f] |
× |
√ [g] |
× |
SCAN0 |
√ |
√ [f] |
× |
√ [g] |
× |
PW6B95 |
√ |
√ [f] |
× |
√ [g] |
× |
Double hybrid functionals |
|||||
B2PLYP [h] |
√ [i] |
× |
× |
× |
√ |
[a] The B3LYP functional used in Turbomole, ORCA, etc., where the LDA correlation is VWN5.
[b] The B3LYP functional used in Gaussian, etc., where the LDA correlation is VWN3.
[c] Must specify rs 0.33 in $xuanyuan.
[d] Must specify rs 0.40 in $xuanyuan.
[e] Must specify rs 0.30 in $xuanyuan.
[f] TDDFT only.
[g] Ground-state gradients only.
[h] Must add a $mp2 block after the $scf block to calculate the MP2 contribution to B2PLYP.
[i] Elecoup nominally supported, but the contribution of perturbative doubles is not included, i.e. the elecoup results are approximate.
Alternatively, the user may specify the exchange and correlation functionals separately, for example
$scf RKS DFT B88 VWN5 $end
specifies the functional BVWN5. The supported exchange and correlation functionals are:
Exchange functionals: LDA, B3, PW91, B88, LC-B88, FT97, PBE Correlation functionals: VWN, VWN5, PW91, PW92, P86, PBE, FT97, LYP, PZ81
FACEX
- Specify the ratio of HF exchange of the functional. This keyword is only supported for the following functionals: LSDA, SVWN5, PBE, PBE0, PW91, BP86, BLYP, B3LYP, GB3LYP, B3PW91, BHHLYP, SF5050 and B2PLYP. For example, the following input defines the PBE38 functional (cx=0.375):
$scf ... DFT PBE facex 0.375 $end
FACCO
- Specify the ratio of MP2 correlation of the functional. This keyword is only supported for B2PLYP.
For example, the following input defines the DSD-BLYP functional (herein the fss and fos keywords are the spin-component-scaling (SCS) parameters. For details, see mp2):
$scf ... dft B2PLYP facex 0.75 facco # One minus DFT correlation factor 0.47 $end $mp2 fss 0.60 fos 0.46 $end
RS
- Alpha and beta value in range-separated functional calculation (CAM-B3LYP, LC-BLYP). The following line are two float number. For example : 0.33 0.15
D3
- Grimme's dispersion corrrection for DFT.
DFT grid keywords
NPTRAD
- Number of radius grid points.
NPTANG
- Number of angular grid points.
COSXNGRID
Numbers of radius and angular grids of each atomic type in COSX calculation. Example: CH2 molecule 20 194 # Grid for C 20 194 # Grid for H
Grid
- Set DFT grid. Supported values are: Ultra Coarse, Coarse, Medium, Fine, Ultra Fine, SG1.
Gridtype
- DFT grid type control, integer.
- 0, Radial(new kind Chebeshev used by Becke) Angular(Lebedev).
- 1, Radial(Chebeshev) Angular(Lebedev).
- 2, Radial(Eular-Maclarin) Angular(Lebedev).
- 3, Radial(ut_rad) Angular(Lebedev).
Partitiontype
- DFT grid partition type control, integer.
- 0: Becke partition. 1: Stratmann-Scuseria-Frisch partition.
Numinttype
- Numerical integration code control, in form x*10+y.
- y: 0, use default numerical integration code, else debug old numerical integration code.
- x: print control parameter for default numerical integration code, only useful when y==0
NoSymGrid
- Do not use symmetry dependent grid. Only for debugging.
DirectGrid
Use DirectGrid. Basis set values on the grid points are calculated directly. Default: Direct SCF, use direct grid. None Direct SCF, do not use direct grid.
NoDirectGrid
- Force to do not use direct grid.
NoGridSwitch
- For direct SCF, DFT grid can be switched. At the beging of iteration, Ultra coarse grid will be used. After energer change is little than a value, such as 1.d-4, the medium grid or user setted grid
will be used. NoGridSwitch dissiable grid switch and use default grid directly.
ThreshRho
- When use debug numerical integration (see NUMINTTYPE):
If the numerical integral , the basis will be neglected at grid batch k. The is defined as
Default value:
Neglect the basis , if . The is defined as
If input values is ,
ThreshBSS
- Only useful when use default numerical integration.
Neglect the basis at grid batch k, if . The is defined as
If input values is ,
MPEC
- Integer number, control parameter for generation of Coulomb (Vc) and Nuclear attraction (Vn) matrix.
- in form: jop*1000+kop*100+iop default value 0, i.e. not use MPEC. When do SCF with MPEC, recommend input -1 (equal to input 4 for SCF), or just use MPEC+COSX. NOTE, when do Hartree-Fock or Hybrid DFT with numerical integration of coulomb matrix, must use sketeleton matrix method to do 2e-integral, i.e., need keywork skeleton in module Compass.
- kop :
- 0 get Vn matrix by analytical integration.
- 1 get Vn matrix by numerical integration.
- jop and iop:
: (uv|rs) D_{rs}, D_{rs} ==> Atom diagonal D matrix
: (uv|rs) D_{rs}, D_{rs} ==> Shell diagonal D matrix
: (uv|rs) D_{rs}, D_{rs} ==> Atom Occupied shell diagonal D matrix
: (uv|rs) D_{rs}, u and v belong to one atom, same as r and s
- OMPEC : Original MPEC method, full numerical
- ACP : Analytical Coulomb Potential at grid
: model coulpot got by modpotz
: model coulpot got by ACP (Atom Occupied shell diagonal D)
Method(1) == +OMPEC
Method(2) == +OMPEC,
Method(3) == OMPEC for
Method(4) == ACP +OMPEC for
- Method(5) == Full ERI (the final Iteration) or OMPEC (middle iteration)
Coulpotlmax
- Max L value for coulomb potential multipolar expansion. Default value: 8
Coulpottol
- Cutoff threshold parameter for coulomb potential multipolar expansion, more higher more accurate. Default value: 8.
MPEC+COSX
- Invoke both MPEC and COSX. It may be requested in Compass now.
SCF convergence
MAXITER
The maximum Number of SCF iteration. Default: 100.
NODIIS
Logical control parameter. Disable DIIS.
XIISID
Set DIIS algorithm. XIISID=0, DIIS; XIISID=1, LCIIS. Default: XIISID=0.
MaxDiis
- Maxim number of Diis space. Default: 8
THRENE
- Convergence threshhold for energy. Default: 1.d-8.
THRDEN
- Convergence threshhold for RMS change of density matrix. Default: 5.d-6.
ThreshConv
- Convergence threhhold. Two float values: DeltaE DeltaD
$SCF threshconv 1.d-6 1.d-4 $END
THRDIIS
- Threshold to turn on DIIS. Default: 0.15.
DIISmode
DIISmode: 0: diisdim goes from 0 to maxdiis, then cycles to 0. And reset to 0 when diis fails. 1: diisdim goes from 0 to maxdiis, keeps maxdiis. And throw the oldest vector (reduce diisdim) when diis fails. Default: 0.
Vshift
- Level shift value (unit: au). Recommended range: 0.2-1.0. Default: 0.
Damp
- Damping value. Valid range: [0,1). The larger the damping value is, the smaller the SCF step will be. Default: 0.
SMH
Invokes the Semiempirical Model Hamiltonian (SMH) converger. Can be used in conjunction with DIIS, damp or vshift. On average, SMH reduces the number of SCF iterations by 10-15 %, with the largest savings observed in systems with charge transfer character and/or strong correlation, where savings can reach 30 % to 6 fold. At this point, the SMH converger is available for RHF/RKS and UHF/UKS, but not for ROHF/ROKS. Besides, the SMH converger cannot be used when Fermi smearing is turned on, or when the basis set is linearly dependent. NOTE: SMH is turned on by default whenever it is supported.
NoSMH
- Disable SMH.
Icheck
- Check Aufbau law.
IAUFBAU
Control parameter of electron occupation protocol in each SCF iteration. IAUFBAU = 1, electron occupation obeys Aufbau principle(default); IAUFBAU = 2, electrons complies with specific occupation pattern based on maximum occupation method(mom); IAUFBAU = 3, electrons complies with specific occupation pattern based on maximum occupation method(mom). Update MO coefficients and reorder occupied orbitals in each iteration. WARNING if IAUFBAU=2 or 3 without initial guess=read (this means initial guess is bad), the result is unpredictable.
Smeartemp
Temperature (in Kelvin) used in Fermi smearing. A realistic temperature (e.g. 300 K) allows one to probe the finite-temperature effects of the electronic structure, while much higher temperatures (5000 K for pure functionals, 10000 K for hybrid functionals, or 20000 K for HF) may be useful for stabilizing SCF convergence. Note that the final energy includes the electronic entropy contribution, which is printed in the "Final scf result" section under the name "-TS_ele". Subtracting this contribution from the final energy (E_tot) gives the electronic energy. Note: Smeartemp must not be used together with vshift and/or SMH, nor can it be used in bottom-up FLMO calculations or other calculations where the keyword sylv is set to a non-zero value.
Fock diagonalization
sylv
Block-diagonalize the Fock matrix by solving the Sylvester equation (recommended when the Fock diagonalization time takes a significant fraction of the total computational time, and the basis set is small, e.g. minimal or double zeta). This automatically sets Blkiop=3.
iviop
Diagonalize the Fock matrix using the iVI method (recommended when the Fock diagonalization time takes a significant fraction of the total computational time, AND the basis set is large, e.g. at least triple zeta). 1:CHC rotation with Fock screen, automatic switch betwwen iVI and Dsyev. 2:iVI for GEP (generalized eigenvalue problem) diagonalization. 3:iVI for EP (eigenvalue problem) with Cholesky decomposition of S.
Blkiop
7 and 8 for iVI diagonalization otherwise specific pFLMO diagonalization: 1: SAI, 2: DDS, 3: DNR, 4: DGN, 5: FNR, 6: FGN 8: CHC rotation with Fock screen, full diagonalization 7: iVI diagonalization, specific by iviop. Recommended value of Blkiop: 3
Print and output SCF orbital
- Print level.
iprtmo
- Print MO coefficients. Values: 0 - do not print MO coefficients, 1 - print the MO coefficients of frontier orbitals (HOMO-5 to LUMO+5 of each irrep). 2 - print the MO coefficients of all orbitals.
Noscforb
- Not output SCF orbital in .scforb file.
Pyscforb
- Output SCF orbital into Pyscf format file.
Molden
- Output SCF orbital into Molden format file.
Relativistic properties
- The following relativistic properties have been programmed for the X2C Hamiltonian (Heff must be 21, 22, or 23).
RelED (effective contact density)
Calculate effective contact densities for the atoms with ZA ≥ minza. The finite nucleus model must be used which is specified in xuanyuan .
NOTE The effective contact densities are very sensitive to basis functions. Very steep primitive s-functions (and p-functions for p-block elements) have to be used to get accurate results.
RelEFG (electric field gradient)
Calculate electric field gradient (EFG) tensor and nuclear quadrupole coupling constant (NQCC) for the atoms with ZA ≥ minza. The finite nucleus model must be used which is specified in xuanyuan .
NOTE The EFG tensor is very sensitive to basis functions. Both steep and diffuse primitive s, p, d, and f-functions, if they are involved in the occupied atomic orbitals, have to be used to get accurate results. In addition, (static and dynamic) electronic correlations are also important for EFG. For example, EFG of a degenerate state by HF/DFT may be unreliable.
An example,
$xuanyuan scalar heff 23 nuclear 1 $end $scf rhf reled 10 relefg 10 $end
Expert keywords
IfNoDeltaP
- Dissable using DeltaP to update Fock matrix.
IfDeltaP
- Delta P is used to update density matrix. In direct SCF calculation, delta P will be used in integral prescreening instead of P. Default: true.
Optscreen
- For debugging. Set a strict threshold (thresh_rho=1.d-4) for integral prescreening directly.
Nok2Prim
- Disable primative integral screenning via K2 integrals. Use (SS|SS) esitimating primative integral value and perform screening. Default: Direct SCF, use K2 primative screening.
- None Direct SCF, use (SS|SS) integral.
FixDif
- Fix factor for incremental fock update. If the factor is not fixed, use the formular
- if using fixed factor, fac=1.d0.
Jengin
- Use Jengin method calculate J matrix. In debugging, not support now.
LinK
- Use LinK calculate K matrix. In debugging, not support now.
Cutlmotail
- Methods to cut long Coulomb tails of Local molecular orital. Values: -1 Do not cut tail. 1 Project a LMO into fragment with largest Lowdin population.
- 2 Similar with 1, but project a LMO into predefined group of fragments with largest Lowdin population. 3 Very stick cutoff. Project LMO to a fragment plus several atoms. The threshhold is 1.d-4.
- SCF calcualtion based on LMO because diffirent fragment interaction policy can be predefined, which will reduce ERIs need to be calculated.
CHECKLIN
Check if the basis sets is linear dependent. If diffuse basis set is used, SCF do not converge or ridiculous energy observed, it is better to check linear dependent of the basis set.
$SCF checklin $END
TOLLIN
Tolerance of basis set linear dependent. Default value 1.d-7.
$SCF tollin 1.d-5 $END
ifPair
used to excite electrons (MOM)with following keywords:
hpalpha,hpbeta
then with number of partical-hole pairs N
then with 2N lines specificate partical-hole pairs. (0 is do nothing, indexes start from 1)
eg. the molecular is has 4 irreducible representation, we want to excite electrons from orb 5,6 to 8,9 in rep 1 and 3 to 4 in rep 3 (alpha) & 7 to 8 in rep 1(beta):
ifpair hpalpha 2 5 0 3 0 8 0 4 0 6 0 0 0 9 0 0 0 hpbeta 1 7 0 0 0 8 0 0 0
this should be combined with iaufbau=2 or 3.
WARNING: this function will not check whether partical orbital is filled or whether hole orbiltal is not filled.
pinalpha , pinbeta
specificate fix orbitals
first line specificates the number of fix orbitals
then with N lines specificate fix orbitals. (0 is do nothing, indexes start from 1)
(somewhat likes hpalpha/hpbeta input)
these keywords leads to SCF_solver from solve FC=SCE to
RSOMEGA
Set parameter omega in RS Hybrid functional as CAM-B3lyp, LC-Blyp, etc. Only used in debugging.
RSALPHABETA
Set alpha, beta parameters in RS Hybrid functionals. Only used in debugging.
Depend Files
Filename |
Description |
Format |
|
|
|
Examples
How to perform a direct DFT calculation with B3LYP functional?
$COMPASS Title Cocaine Molecule test run, CC-PVDZ Basis CC-PVDZ Geometry XYZ # The molecule geometry will be read from file $BDFTASK.xyz End Geometry Skeleton # This keyword must be used. $End $xuanyuan Direct # Direct SCF. Schwarz # Schwarz prescreening. $end $scf RKS DFT functional B3LYP Molden # This keyword is used to output SCF orbital to molden format file. $end
How to read molecular orbital as initial guess orbital or restart SCF calculation?
Suppose you have performed a calculation and generated aSCF orbital file in your work directory as test.scforb. Usually, this file atomically generated by SCF module. This file also can be used to restart SCF calculation via read it as initial guess orbital.
$COMPASS Title Cocaine Molecule test run, CC-PVDZ Basis CC-PVDZ Geometry XYZ # The molecule geometry will be read from file $BDFTASK.xyz. End Geometry Skeleton # This keyword must be used. $End $xuanyuan Direct # Direct SCF. Schwarz # Schwarz prescreening. $end # Copy orbital file test.scforb as inporb in BDF_TMPDIR % cp $BDF_WORKDIR/test.scforb $BDF_TMPDIR/inporb $scf RKS DFT functional B3LYP Guess # Read orbital as initial guess orbital Read Molden # This keyword is used to output SCF orbital to molden format file. $end
How to accelarate SCF and TDDFT calculation with Multipole Expansion of Coulomb Potential (COULPOT) and Chain-Of-Sphere eXact exchange (COSX)?
In HF/DFT calculation, the J and K matrices could be calculated with the different algorithms. One can calculate J and K operators with four-index electron repulsion (denote as J-ERI and K-ERI). One can also calculate J operator by using multipole-expansion to calculate coulomb potential (J-Coulpot). Coulpot is much faster than J-ERI. For K matrix, one can also use Chain-of-Spheres for exchange (K-COSX) scheme introduced by Frank Neese. Therefore, there are possible four combination to calculate J+K operatros in BDF. Here is example input.
### # Molecule: Trypophane # DFT/B3lyp, Direct SCF/ERI, Direct SCF/Coulpot+COSX, ### $COMPASS Title Trypophane Molecule test. Different SCF algoritm Basis def2-svp Geometry C -5.180310 1.350093 -0.761602 N -4.541127 1.810914 1.512755 C -4.214871 1.026972 0.352222 C -4.314616 -0.453360 0.696018 C -2.985178 -1.107032 0.480801 C -2.691578 -2.435732 0.687001 N -1.371378 -2.626032 0.374901 C -0.802178 -1.440032 -0.031299 C 0.506322 -1.158132 -0.441399 C 0.800622 0.160368 -0.802499 C -0.175278 1.153768 -0.754599 C -1.479078 0.854668 -0.341999 C -1.799378 -0.466032 0.026601 O -6.055556 2.163783 -0.585200 O -5.066908 0.735342 -1.944592 H -3.986324 1.717755 2.363587 H -5.327349 2.460137 1.485110 H -3.177889 1.263584 0.024424 H -4.615011 -0.566763 1.761696 H -5.075156 -0.935542 0.041917 H -3.392007 -3.207186 1.039501 H -0.866143 -3.544417 0.436596 H 1.274481 -1.944628 -0.478218 H 1.818909 0.417434 -1.129621 H 0.081435 2.183514 -1.043948 H -2.245318 1.643076 -0.306108 H -5.688781 0.943476 -2.662045 End geometry Check skeleton $END $XUANYUAN direct schwarz $END #This is a DFT calculation with J-ERI + K-ERI %echo "CHECKDATA: RKS with ZY-NI and ERI" $SCF RKS dft functional b3lyp $END #This is a DFT calcualtion with J-Coulpot + K-ERI %echo "CHECKDATA: RKS with ZY-NI, Coulomb potential+COSX" $SCF RKS dft functional b3lyp COULPOT $END #This is a DFT calcualtion with J-ERI + K-COSX %echo "CHECKDATA: RKS with ZY-NI, Coulomb potential+COSX" $SCF RKS dft functional b3lyp COSX $END #This is a DFT calcualtion with J-Coulpot + K-COSX %echo "CHECKDATA: RKS with ZY-NI, Coulomb potential+COSX" $SCF RKS dft functional b3lyp COULPOT+COSX $END