PC GAMESS/Firefly DFT MODULE DOCUMENTATION.
I. Limitations. The present implementation does not support multithreading.
Analytical energy and energy gradients (and hence numerical hessians)
are supported for both R-DFT and RO/U-DFT. Parallel mode is supported
both for DFT energy and gradients. The molecular symmetry is only partially
used during calculation of the DFT contributions to the Fock matrix, namely
the so-called octant symmetry is not used at present. Starting from the
PC GAMESS v. 7.0 build # 3448, DFT code allows calculation of static and
dynamic polarizabilities using runtyp=tdhf. Visit this link
for TDDFT-related information.
II. Compatibility. The grid-based DFT code in PC GAMESS/Firefly is completely
different from that of GAMESS (US). This includes both implementation
and input specification. As to implementation details, in PC GAMESS/Firefly,
angular integration is based on Lebedev quadratures, radial integration
is based on Mura-Knowles quadratures, while the partitioning function used
is the modification of SSF. The default implementation of B3LYP functional
differs from that of GAMESS (US) as well.
III. Performance. The main goal of the current PC GAMESS/Firefly DFT module
is to allow (hopefully fast) B3LYP type (and other implemented hybrid
functionals) calculations for medium and large-size molecules. Thus,
the Resolution of Identity / Coulomb fitting techniques are not implemented
at present. One might expect that other DFT programs that exploit these
techniques for pure DFT functionals (e.g., TURBOMOLE) will outperform
PC GAMESS/Firefly on pure DFT calculations. The RODFT energy/gradient code
is routed through the generic UDFT code, thus the RODFT performance is
identical to that of UDFT. This situation will be changed in the future by
adding separate RODFT driver routines, leading to speedup of approx. 15-20%
for small and medium size molecules.
IV. Scaling. For large molecules, the time for pure DFT part of calculations
depends approximately linearly on the number of atoms in molecule. Thus, while
for small molecular systems the pure DFT part of the calculations is usually
the time-limiting step, for large systems, the costs of standard Coulomb (and
possible exchange for hybrid functionals) contributions to the Fock matrix due
to two-electron integrals become the dominant part of the calculations. This
shortcoming will be solved in the future PC GAMESS/Firefly versions by
implementing Coulomb fitting. For related information, see fastints
and qfmm specific sections of documentation.
V. Input description.
To activate PC GAMESS/Firefly DFT module, you should specify the valid
value of the DFTTYP variable found in the $CONTRL group (note not in the $DFT
group!). At present, supported functionals are as follows:
DFTTYP Functional
pure exchange functionals (no correlation)
LDA exchange:
SLATER Slater exchange, no correlation
LSDA the same as SLATER
GGA exchange:
B88 Becke 1988 exchange, no correlation
XPW91 Perdew-Wang 1991 exchange, no correlation
GILL96 Gill 1996 exchange, no correlation
XPBE96 Perdew-Burke-Ernzerhof 1996 exchange, no correlation
OPTX Handy-Cohen 2001 OPTX exchange, no correlation (available since the
PC GAMESS v. 7.0.3)
pure correlation functionals (Hartree-Fock exchange)
LDA correlation:
VWN1RPA Hartree-Fock exchange, VWN formula 1 RPA LDA correlation
VWN5 Hartree-Fock exchange, VWN formula 5 LDA correlation
PW91LDA Hartree-Fock exchange, Perdew-Wang 1991 LDA correlation
GGA correlation:
LYP Hartree-Fock exchange, Lee-Yang-Parr 1988 correlation
CPBE96 Hartree-Fock exchange, Perdew-Burke-Ernzerhof 1996 nonlocal +
Perdew-Wang 1991 LDA correlation
CPW91 Hartree-Fock exchange, Perdew 1991 nonlocal +
Perdew-Wang 1991 LDA correlation
exchange-correlation functionals
SLYP Slater exchange, Lee-Yang-Parr 1988 correlation
BLYP Becke 1988 exchange, Lee-Yang-Parr 1988 correlation
GLYP Gill 1996 exchange, Lee-Yang-Parr 1988 correlation
XLYP Extended exchange functional (a combination of Slater, Becke 88,
and Perdew-Wang 91 exchange functionals) of Xu and Goddard III,
Lee-Yang-Parr 1988 correlation
OLYP OPTX exchange, Lee-Yang-Parr 1988 correlation (available since the
PC GAMESS v. 7.0.3)
SVWN1RPA Slater exchange, VWN formula 1 RPA correlation
BVWN1RPA Becke 1988 exchange, VWN formula 1 RPA correlation
SVWN5 Slater exchange, VWN formula 5 correlation
BVWN5 Becke 1988 exchange, VWN formula 5 correlation
PBE96 Perdew-Burke-Ernzerhof 1996 exchange,
Perdew-Burke-Ernzerhof 1996 nonlocal +
Perdew-Wang 1991 LDA correlation
PBEPW91 Perdew-Burke-Ernzerhof 1996 exchange,
Perdew 1991 nonlocal + Perdew-Wang 1991 LDA correlation
PW91 Perdew-Wang 1991 exchange,
Perdew 1991 nonlocal + Perdew-Wang 1991 LDA correlation
hybrid functionals
B3LYP1 B3LYP as implemented in NWCHEM and GAUSSIAN 98,
using VWN formula 1 RPA correlation
B3LYP5 B3LYP as implemented in GAMESS (US),
using VWN formula 5 correlation
B3LYP either B3LYP1 or B3LYP5 depending on the value of B3LYP keyword
in the $DFT group, see later.
X3LYP Extended exchange functional (a combination of Slater, Becke 88,
and Perdew-Wang 91 exchange functionals) of Xu and Goddard III +
Hartree-Fock exchange,
O3LYP1 Slater + OPTX + Hartree-Fock exchange,
VWN formula 1 RPA + Lee-Yang-Parr 1988 correlation
O3LYP5 Slater + OPTX + Hartree-Fock exchange,
VWN formula 5 + Lee-Yang-Parr 1988 correlation
O3LYP The synonym of O3LYP5
NOTE: FOR ALL O3LYP FAMILY FUNCTIONALS,
SEE THE DESCRIPTION OF THE O3LYP OPTION BELOW!
BHHLYP Becke 1988 + Hartree-Fock exchange, Lee-Yang-Parr 1988 correlation
PBE0 Perdew-Burke-Ernzerhof 1996 + Hartree-Fock exchange,
Perdew-Burke-Ernzerhof 1996 nonlocal +
Perdew-Wang 1991 LDA correlation
PBE1PW91 Perdew-Burke-Ernzerhof 1996 + Hartree-Fock exchange,
Perdew 1991 nonlocal + Perdew-Wang 1991 LDA correlation
B3PW91 Slater + Becke 1988 + Hartree-Fock exchange,
Perdew 1991 nonlocal + Perdew-Wang 1991 LDA correlation
Additional options can be specified in the $DFT group. The keywords are as
follows:
NRAD (integer) the default number of radial points per atom used.
Default value is 63.
NRDATM (integer array, dimension 128) An array to change the actual
value of NRAD on per element number basis. For example, setting
NRDATM(6)=128 will apply the radial grid of 128 points to all
carbon atoms. The entry NRDATM(128) is used for dummy atoms
with no charge. The default values are all equal to NRAD.
LMAX (integer) the default order of Lebedev angular grid to be used.
The default value is 29. Valid values are:
LMAX Number of points per radial shell
3 6
5 14
7 26
9 38
11 50
13 74
15 86
17 110
19 146
21 170
23 194
25 230
27 266
29 302
31 350
35 434
41 590
47 770
53 974
59 1202
65 1454
71 1730
77 2030
83 2354
89 2702
95 3074
101 3470
107 3890
113 4334
119 4802
125 5294
131 5810
LMXATM (integer array, dimension 128) An array to change the actual
value of LMAX on per element number basis. For example, setting
NRDATM(1)=25 will apply the angular grid of 25th order to all
hydrogen atoms. The entry LMXATM(128) is used for dummy atoms
with no charge. The default values are all equal to LMAX.
ANGPRN (logical) flag to activate the angular grid pruning as function
of radius, uses the scheme similar to proposed by Murray, Handy
and Laming (MHL).
Default is .true. Setting it to false will slow down the
calculations but will result to the more accurate results.
KAP (double precision) The parameter Ktheta used for angular
pruning. The default value is 5.0 as recommended by MHL.
Increasing this value to, say, 10.0 will improve precision
by the cost of performance. This parameter has no effect if
angular pruning is not used.
RADPRN (logical) flag to activate the radial grid pruning.
Default is .true. Setting it to false will slow down
calculations to some degree but may improve precision.
Note that to get correct results you must explicitly
disable radial pruning if your system has any basisless atoms!
RMXATM (integer array, dimension 128). An array to change the atomic
cutoff radii used during radial pruning on per element number
basis. For example, setting RMXATM(8)=6 will set the effective
radius of all oxygen atoms to 6 Angstrom. The entry RMXATM(128)
is used for dummy atoms with no charge. The default values
are probably much larger than is actually necessary and depend
on the basis set used.
CUTOFF (double precision). Contributions to the DFT Fock matrix due to
batch of angular points, which are smaller than CUTOFF, are
ignored. The default value is 1.0d-10.
CUTAO (double precision). If the absolute numerical value of AO is
smaller than CUTAO, it will be set to zero during calculations.
The default value is 1.0d-10.
CUTWGT (double precision). If the absolute value of weight associated
with grid point is less than CUTWGT, this point will not be
taken into account during DFT calculations. The default value
is 1.0d-20.
CUTORB (double precision). Contributions to the DFT Fock matrix due to
batch of orbitals, which are smaller than CUTORB, are ignored.
The default value is 1.0d-15.
CUTGG1,
CUTGG2,
CUTGG3,
CUTGG4 (double precision). Various cutoffs used during calculation
of grid weights derivatives contributions to the molecular
gradients. The default values are 1.0d-13, 1.0d-13, 1.0d-13,
and 1.0d-30 correspondingly and are probably too strict.
B3LYP (symbolic). Selects the default implementation of B3LYP
functional. The default value is NWCHEM which makes B3LYP
to be synonym of B3LYP1. Setting this value to GAMESS will
change B3LYP to be the same as B3LYP5.
O3LYP (symbolic). Setting it to GAUSSIAN changes the weight of
non-local exchange in all O3LYP functionals so that the
resulting functional will be identical to one used in
Gaussian 03 Rev D.01 and above. The default value is DEFAULT
which makes code compatible with O3LYP implementations in other
programs. Note there are some ambiguities in O3LYP-related
papers which do not allow to decide which implementation
(default or Gaussian) is correct. These two implementations
should be considered as just two different xc functionals.
Below is the sample input file.
! GAMESS (US) STYLE B3LYP OPTIMIZATION+HESSIAN CALCULATION OF WATER MOLECULE
$CONTRL SCFTYP=RHF DFTTYP=B3LYP5 runtyp=optimize $END
$SYSTEM TIMLIM=3000 MEMORY=3000000 $END
$BASIS GBASIS=n31 ngauss=6 NDFUNC=1 $END
$statpt hssend=.t. nprt=-2 $end
$force nvib=2 $end
$DATA
H2O
CNV 2
O 8.0 0.0000000000 0.0000000000 0.7205815395
H 1.0 0.0000000000 0.7565140024 0.1397092302
$END
Last updated: March 18, 2009