##master-page:HelpTemplate ##master-date:Unknown-Date #format wiki #language en #Please change following line to BDF module name = SCF = <> {{{ HF/DFT. }}} == General keywords == === RHF/UHF/ROHF === {{{#!wiki 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 === {{{#!wiki Must input one of them if Kohn-Sham calculation is required. Required for restricted/unrestricted/restricted open shell Kohn-Sham calculations. }}} === Occupy === {{{#!wiki Used in RHF/RKS. Set double occupied number of each irreps. The following line is an integer array, $noccu(i),i=1,\cdots, nirreps$. }}} === Alpha === {{{#!wiki 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,\cdots, nirreps$. }}} === Beta === {{{#!wiki 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,\cdots , nirreps$. }}} === Charge === {{{#!wiki Charge of the state. }}} === Spin === {{{#!wiki Spin of the state. The value is 2S+1. }}} === keyword === {{{#!wiki }}} == DFT functional keywords == === DFT === {{{#!wiki DFT functional used in Korn-Sham calculation. Commonly used functionals: SVWN5, BLYP, B3LYP, CAM-B3LYP, etc. }}} {{{#!wiki 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 ex_fun=104 co_fun=8 CAM-B3LYP alpha=0.19d0 beta=0.46d0 ex_fun=120 co_fun=0 B3PW91 ex_fun=27 co_fun=0 PBE . PBE0 . VBLYP . GBLYP . GB3LYP (The B3LYP functional used in Gaussian, etc.) . SF5050 . LC-BVWN5 . LC-BLYP . SAOP . BP86 . }}} === RS === {{{#!wiki 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 === {{{#!wiki Grimme's dispersion corrrection for DFT. }}} == DFT grid keywords == === NPTRAD === {{{#!wiki Number of radius grid points. }}} === NPTANG === {{{#!wiki Number of angular grid points. }}} === COSXNGRID === {{{#!wiki 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 === {{{#!wiki Set DFT grid. Supported values are: Ultra Coarse, Coarse, Medium, Fine, Ultra Fine, SG1. }}} === Gridtype === {{{#!wiki 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 === {{{#!wiki DFT grid partition type control, integer. 0: Becke partition. 1: Stratmann-Scuseria-Frisch partition. Default: 0 }}} === Numinttype === {{{#!wiki 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 === {{{#!wiki Do not use symmetry dependent grid. Only for debugging. }}} === DirectGrid === {{{#!wiki 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 === {{{#!wiki Force to do not use direct grid. }}} === NoGridSwitch === {{{#!wiki 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 === {{{#!wiki 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: <> When use default numerical integration: Neglect the basis <>, if <>. The <> is defined as <> If input values is <>, <> }}} === ThreshBSS === {{{#!wiki Only useful when use default numerical integration. Neglect the basis <> at grid batch k, if <>. The <> is defined as <> If input values is <>, <> }}} === Coulpot === {{{#!wiki 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 === {{{#!wiki Max L value for coulomb potential multipolar expansion. Default value: 8 }}} === Coulpottol === {{{#!wiki Cutoff threshold parameter for coulomb potential multipolar expansion, more higher more accurate. Default value: 8. }}} == SCF convergence == === MAXITER === {{{ The maximum Number of SCF iteration. }}} === NODIIS === {{{ Logical control parameter. Disable DIIS. }}} === MaxDiis === {{{#!wiki Maxim number of Diis space. Default: 8 }}} === THRENE === {{{#!wiki Convergence threshhold for energy. Default: 1.d-8. }}} === THRDEN === {{{#!wiki Convergence threshhold for density matrix. Default: 3.d-6. }}} === ThreshConverg === {{{#!wiki Convergence threhhold. Two float value: DeltaE DeltaD }}} {{{ $SCF threshconverg 1.d-6 1.d-4 $END }}} === THRDIIS === {{{#!wiki 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 === {{{#!wiki Level shift value. }}} === Damp === {{{#!wiki Damping value. }}} === Icheck === {{{#!wiki 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. == 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 and output SCF orbital == === 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 === {{{#!wiki 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 === {{{#!wiki Use Jengin method calculate J matrix. In debugging, not support now. }}} === LinK === {{{#!wiki Use LinK calculate K matrix. In debugging, not support now. }}} === Guess === {{{#!wiki 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. }}} === Cutlmotail === {{{#!wiki 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 === {{{#!wiki 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 === {{{#!wiki Tolerance of basis set linear dependent. Default value 1.d-7. }}} {{{ $SCF tollin 1.d-5 $END }}} === ifPair === {{{#!wiki 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 }}} {{{#!wiki 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 === {{{#!wiki 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 <> <
> }}} = 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 }}}