welcome: please sign in
location: Diff for "scf"
Differences between revisions 92 and 93
Revision 92 as of 2021-03-05 10:32:44
Size: 21281
Editor: wzou
Comment:
Revision 93 as of 2021-03-10 09:39:54
Size: 21281
Editor: wangzikuan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 96: Line 96:
 will simply swap the 7th beta orbital of the 5th irrep with the 8th beta orbital of the 5rd 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.  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.

SCF

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, $noccu(i),i=1,\ldots, nirreps$.

Alpha

  • Used in UHF/ROHF/UKS/ROKS. Set number of alpha orbitals in each irreps.

    The following line is an integer array, $nalpha(i),i=1,\ldots, nirreps$.

Beta

  • Used in UHF/ROHF/UKS/ROKS. Set number of beta orbitals in each irreps.

    The following line is an integer array, $nbeta(i),i=1,\ldots , nirreps$.

Charge

  • Charge of the state.

Spin

  • Spin of the state. The value is 2S+1.

Atomorb

  • Calculate atomic orbitals 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. 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.
    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
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 $\psi_{10}^{new}=\frac{1}{\sqrt{2}}(\psi_{10}+\psi_{11})$ and $\psi_{11}^{new}=\frac{1}{\sqrt{2}}(\psi_{10}-\psi_{11})$, while

$scf
RHF
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. Commonly used functionals: SVWN5, BLYP, B3LYP, CAM-B3LYP, etc.

  • LSDA:
    • ex_fun=1 co_fun=1
    SVWN5:
    • ex_fun=1 co_fun=2
    PW91:
    • ex_fun=3 co_fun=3
    SAOP:
    • ex_fun=30 co_fun=30
    BLYP:
    • ex_fun=4 co_fun=8
    BHHLYP
    • ex_fun=21 co_fun=8
    B2PLYP
    • ex_fun=22 co_fun=8
    B3LYP (The B3LYP functional used in Turbomole, ORCA, etc.)
    • ex_fun=20 co_fun=0
    LC-BLYP (must specify rs 0.33 in $xuanyuan)
    • ex_fun=104 co_fun=8
    CAM-B3LYP (must specify rs 0.33 in $xuanyuan)
    • alpha=0.19d0 beta=0.46d0 ex_fun=120 co_fun=0
    wB97 (must specify rs 0.40 in $xuanyuan)
    wB97X (must specify rs 0.30 in $xuanyuan)
    B3PW91
    • ex_fun=27 co_fun=0
    PBE
    PBE0
    VBLYP
    GBLYP
    GB3LYP (The B3LYP functional used in Gaussian, etc.)
    SF5050
    LC-BVWN5
    SAOP
    BP86
    HFLYP

RS

  • Alpha and beta value in range-separated functional calculation (CAM-B3LYP, LC-BVWN5, 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).
    Default: 0

Partitiontype

  • DFT grid partition type control, integer.
    • 0: Becke partition. 1: Stratmann-Scuseria-Frisch partition.
    Default: 0

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
    Default: 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 $\rho_{\mu}^k<threshRho$, the basis $\chi_{\mu}$ will be neglected at grid batch k. The $\rho_{\mu}^k$ is defined as

      • $\rho_{\mu}^k=\sum_{i\in batch k} w_i*\chi_{\mu}(r_i)\chi_{\mu}(r_i)$

      Default value: $ThreshRho=\frac{thresh\_{ene}}{maxradgrid*maxanggrid*natom}$

    When use default numerical integration:
    • Neglect the basis $\chi_{\mu}(r)$, if $r\geq r_{\mu}$. The $r_{\mu}$ is defined as

      • $f(r_{\mu})=\int_{r_{\mu}}^{\infty} \chi_{\mu}^2 r^2dr = ThreshRho$

      If input values is $\eta$,

      • $ ThreshRho = \left \{ \begin{array}{ll} 10^{-10} & default \\ 10^{-\eta} & \eta \geq 1 \\ \eta & \eta < 1 \end{array} \right. $

ThreshBSS

  • Only useful when use default numerical integration.
    • Neglect the basis $\chi_{\mu}(r)$ at grid batch k, if $f_{\mu}\leq ThreshBSS$. The $f_{\mu}$ is defined as

      • $f_{\mu}=\sum_{r_g \in k} |\chi_{\mu}| \sqrt{w(r_g)}$

      If input values is $\eta$,

      • $ ThreshBSS = \left \{ \begin{array}{ll} min(10^{-8}, \sqrt{ThreshRho}/N) & default,\ N=\frac{NumberOfGridBatch\times 10}{NumberOfAtom} \\ 10^{-\eta} & \eta \geq 1 \\ \eta & \eta < 1 \end{array} \right. $

Coulpot

  • Integer number, control parameter for generation of Coulomb (Vc) and Nuclear attraction (Vn) matrix.
    • 0 get both Vc and Vn by analytical integration.
    • 1 get coulomb potential with multipolar expansion, and get Vc by numerical integration.
    • 2 get coulomb potential with multipolar expansion, and get both Vc and Vn by numerical integration.
    default: 0
    • 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.

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.

SCF convergence

MAXITER

The maximum Number of SCF iteration. Default: 100.

NODIIS

Logical control parameter. Disable DIIS.

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.5-2. 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, which can be loosely understood as an approximate second-order SCF converger with step control. 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 antiferromagnetic coupling, where savings can reach up to 40 %. May need further debugging for ROKS.

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.

Diagonalization

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

iviop

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.

print

  • Print level.

iprtmo

  • Require to print MO coefficients. Values: 1 Only print orbital energy and occupation numbers. 2 Print all information.

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

  • Relativistic properties are called by Relprp. The following properties have been programmed for the X2C Hamiltonian (Heff must be 21, 22, or 23).

RelCD (contact density)

Relprp relcd minza

  • Calculate contact densities for the atoms with ZA ≥ minza. The finite nucleus model must be used which is specified in xuanyuan . For example,

$xuanyuan
scalar
heff
 21
nuclear
  1
$end

$scf
 rhf
 relprp relcd 10
$end
  • NOTE The contact densities are very sensitive to basis functions. Very steep primitive s-functions (and p-functions in the case of spin-orbit coupling) have to be used to get accurate results.

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

$fac=1-\frac{D^{n+1}-D^n}{D^{n+1}*D^{n+1}}$

$F^{n+1}=F^n+fac*\delta F$

  • if using fixed factor, fac=1.d0.

Jengin

  • Use Jengin method calculate J matrix. In debugging, not support now.

  • 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.
    Comment: Method 1 is prefered if fragments are well defined. We can easy reduce compuations times in post
    • 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 $\tilde{F}U=UE,\tilde{F}=C^\dagger FC$

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

scf (last edited 2022-11-03 14:37:07 by bsuo)