Turbomole
The current version is 7.5
(installed 5/10-20).
The current version is 7.4
(installed 28/8-19).
Home page of Turbomole: http://www.turbomole.org
To run it, you must add/change two rows to your profile:
On our local system:
export TURBODIR=/temp4/bio/TURBO/Turbo7.4
export PATH=$TURBODIR/bin/em64t-unknown-linux-gnu:$TURBODIR/scripts:$PATH
On aurora
export TURBODIR=/common/sw/alarik/pkg/bio/TURBO/Turbo7.4
export PATH=$TURBODIR/bin/x86_64-unknown-linux-gnu:$TURBODIR/scripts:$PATH
On Kebnekaise
export TURBODIR=/pfs/nobackup/home/r/ryde/Bio/TURBO/Turbo7.4
export
PATH=$TURBODIR/scripts:$TURBODIR/bin/em64t-unknown-linux-gnu:$PATH
The files are in $TURBODIR
The
documentation can be found in $TURBODIR/DOC/DOC.pdf. It is very long
(~300 pages).
TmoleX
is an interactive graphical interface, molecule builder and QM job
environment for Turbomole.
New in Turbomole 7.5:
- Range-separated DFT functionals
- PNO-CCSD(T) methods
- simple input files without need of define
- Local hybrid functionals
Elementary tutorial
1. Log in to the computer.
2. Go to the desired directory designated to your group
cd your_directory or
mkdir a_new_directory.
Make sure that you have not any old Turbomole calculation in this
directory.
3. Make sure that you have
some sort of starting coordinates; usually a PDB file.
4. Convert the PDB
coordinates to a Turbomole control file:
changepdb
Enter the name of the PDB file.
c (control)
Press return twice (i.e. default suggestions are OK).
Now you have got a file called control which contains
the coordinates.
5. Next, we will put in the
appropriate basis set, etc. for the calculation. This is done with
the interactive Turbomole program Define.
define
Enter an appropriate title.
Press return (we do not need to change the geometry)
Next we will define the basis set for the calculation. We will use
the 6-31G* basis set for all atoms, except Cu for which we use a
basis set called DZP.
bb all 6-31g*
Press return (there is no 6-31G* basis for Cu)
bb "cu" DZP (use the
DZP basis for Cu instead)
* (to exit this menu)
Now we will make a starting guess for the wavefunction. This is
done with the so-called Extended Hückel method
eht
Press return twice.
1 (the molecular
charge is +1)
y (accept the
suggested occupation)
dft (we will select a
density functional method)
on (turn it on)
Press return to come back to the last menu.
ri (we will use a
fast but approximate method, called the Resolution of Identity'
on (turn it on)
m 700 (we use a
larger memory than default to speed up the calculations)
Press return to come back to the last menu.
* (we are finished so we stop define)
How to converge the wavefunction
Converging
the wavefunction is typically the hardest problem when running DFT and
it is sometimes a matter of art rather than science.
However, there are some rules of thumb that you may follow.
- If you have problems with convergence for simple systems
(e.g. closed-shell or high-spin metals), it is worth checking that
the total charge and spin is correct. This is the case also if you have
very large problems with open-shell systems (but big systems are harder
to converge than small systems).
- Otherwise, the first thing you play with is
$scforbitalshift
0.3 or 0.4 is a good starting point for an open-shell system.
If the energy is oscillating, increase it (up to 2.0 maximum),
if it is converging, but very slowly, you may decrease it (or increase $scfiterlimit).
listen
is a good tool to get a summary of the convergence.
If the energy is jumping heavily (by several Hartree or more), the
wavefunction has typically been destroyed and it is better to restart
from your original wavefunction again. - It is almost never useful
to just restart the calculation (or increase $scfiterlimit) - if it has
started to oscillate, it normally never converges.
Therefore, I never use more than 300 iterations and less than 100 is
enough to see if the wavefunction is converging or oscillating.
- Uwe at Turbomole recommends the augmented Roothaan-Hall solver ($arh) as the first remedy for non-converging calculations.
- Unfortunately, they did something strange a few versions back of Turbomole. Therefore adding
$oldvshift
to the control file may give better scf convergence (in fact, some metal systems never converge without it). - The starting wavefunction matters a lot.
We normally use the eht guess from define
or an expanded wavefunction obtained by the "use" command of define.
These are rather poor starting points (eht worst).
If you have a converged wavefunction with another method (e.g. TPSS
instead of B3LYP) or for a slightly different geometry (e.g. Fix
instead of Free), this is a much better start. Simply copy the alpha and
beta files (provided that you have exactly the same atoms in the same
order).
If you do not have that, a fragment calculation (with command makebs) is appreciably better than eht or use, but more tedious to set up.
It might be the last way out. - All this said, we have had some
systems for which we failed to converge a B3LYP/def2-TZVDP wavefunction.
We reported it to Turbomole, but never got any answer why.
Suggestions from Turbomole (8/2-24):
- Perhaps gridsize m4 does help, it uses a finer grid during the SCF iterations
- $scfdamp start=1.000 step=0.050 min=0.100
is pretty small damping, if the electronic structure is complicated, the
first number might need to be increased (to 1.5 or even 5.0)
- $scforbitalshift closedshell=.5
I personally prefer automatic instead of closedshell, because I feel (and it is just a feeling) that this is more stable
- What does ‘eiger’ report – a hole in the occupation or not? If yes, $fermi should help.
- For systems that are hard to converge, try to switch to augmented Roothaan-Hall solver by adding $arh
- With B3LYP, using semi-numerical exchange should be (much) faster,
so if you do not care for 0.01 kcal/mol accuracy, just add $senex
How to constrain an internal coordinate with Turbomole
Constraints are set up with define in the coordinate menu.
- Run define
- Enter the coordinate menu by hitting return one and the answer
yes.
- In the coordinate menu write
idef
- For a constrained bond between atoms with numbers 1 and 2
write
f stre 1 2
f means a fixed bond
stre means a bond
and the two numbers are atom number
- For a constrained angle between atoms with numbers 1, 2 and 3
write (i.e. 1-2-3; note the order)
f bend 2 1 3
f means a fixed angle
bend means an angle
and the three numbers are atom number
- For a constrained dihedral angle between atoms with numbers 1,
2, 3 and 4 write (i.e. 1-2-3-4)
f dihe 1 2 3 4
f means a fixed dihedral
dihe means a dihedral
and the four numbers are atom number
- You can add serveral constraints
- A blank input ends this menu
- If you want to fix the internal coordinate to another value,
write
- iman
- Turbomole will then go through all defined internals, and you
will be asked to change them.
Note that the default units for bonds is atomic units. Use a
final A to denote Angstrom, e.g.
1.3 A
- Hit return until you get back the the main coordinate menu
- Write ired
- Write red_info
At the top of this information, you will get information about
fixed coordinates (in atomic units). Check that you got what you
wanted.
- Quit this menu by q and then the coordinate menu by *
- If you have already defined the rest of the calculation, you
may quit define now by qq.
- Note that if you used iman to change the coordinates, you will
not see any effect of this until after relax/statpt in the first
cycle of the geometry optimisation.
Set up a standard TPSS-D3(bj)/def2-SV(P) calculation with define
define <<EOF
y
ired
*
bb all def2-SV(P)
bl
*
eht
0 ***** set the correct charge here
****
dft
on
func tpss
*
ri
on
m 2500
*
dsp
bj
*
*
EOF
How to plot spin densities or orbitals from Turbomole
- Insert into the control file:
$pointval dens
for the spin density and
$pointval mo 207-266
for some molecular orbitals. For open-shell systems, the
orbitals are listed in the order alpha1, beta1, alpha2, ...
Run
ridft -proper >logd
This gives you the files coord.xyz and sd.plt (as well as td.plt
= total density).
More info for Turbomole here.
- rungOpenMol
- Import the coordinates from coord.xyz (File - Import - Coord -
select file - Apply - Dissmiss).
- Import the spin density: Plot - Contour - Select sd.plt -
Import - Select proper values for the contours
(e.g. 0.005 - blue and -0.005 red for spin density and
0.05 - blue and -0.05 red for molecular orbitals)
Apply and play with the contours
- Print to a file with
File - Hardcopy
Available formats are bmp, jpg, ps, rgb, tga, and xwd.
PostScript works exelently.
New def2 basis sets
F. Weigend & R. Ahlrichs,
Phys. Chem. Chem. Phys. 7 (2005) 3297-3305.
Recommendation:
DFT. def2-SV(P) or def2-TZVP
MP2: (SVP) TZVPP or QZVPP
atom
|
SV(P)
|
SVP
|
TZVP
|
TZVPP
|
QZV
|
QZVP
|
QZVPP
|
H
|
SV
|
SVP
|
TZVP
|
TZVP+2p1d
|
QZV
|
QZV+3p2d1f
|
QZV+3p2d1f |
CNO
|
SV+1d
|
SV+1d |
TZV+2d1f
|
TZV+2d1f |
QZV
|
QZV+3d2f1g
|
QZV+3d2f1g |
S
|
SV+1d
|
SV+1d |
TZV'+2d1f
|
TZV'+3d1f
|
QZV
|
QZV+4d2f1g
|
QZV+4d2f1g |
Fe
|
SV+1p
|
SV+1p1f
|
TZV+2p1f
|
TZV+2p1df1g
|
QZV
|
QZV+3f1g
|
QZV+4f2g
|
PBEh-3c
To run the new PBEh-3c method, use
$dft
functional pbeh-3c
$disp3 bj abc
The latter cannot be done by define, and has to be done manually
HF-3c
To run the new HF-3c method
- Use the minix basis set
bb all minix
- Turn off dft
- Turn off ri
- Set
$disp3 bj func hf-3c
This cannot be done by define but has to be done manually
sed -i "s/$disp3 bj/$disp3 -bj func hf-3c/" control
define <<EOF
y
bb all minix
*
k
k
k
k
use ../control
dft
off
*
ri
off
*
dsp
bj
*
*
EOF
sed -i "s/$disp3 bj/$disp3 -bj func hf-3c/" control
M06-L and M06
To run the M06-L method, use
$dft
functional xcfun set-mgga
functional xcfun m06L 1.0
gridsize m3
or equivalently (energy agrees within 1E-5 H)
$dft
functional xcfun set-mgga
functional xcfun m06Lx 1.0
functional xcfun m06Lc 1.0
gridsize m3
Likewise, the following are also equivalent:
$dft
functional m06
$dft
functional xcfun set-mgga
functional xcfun m06 1.0
functional xcfun set-hybrid 0.27
$dft
functional xcfun set-mgga
functional xcfun m06x 1.0
functional xcfun m06c 1.0
functional xcfun set-hybrid 0.27
M06-2X
$dft
functional m06-2x
gridsize m3
To get M06-HF, you write (with Turbomole >7.1)
$dft
functional xcfun set-mgga
functional xcfun m06hfx 1.0
functional xcfun m06hfc 1.0
functional xcfun set-hybrid 1.0
B3LYP*
$dft
functional xcfun set-gga
functional xcfun slaterx 0.13
functional xcfun beckex 0.72
functional xcfun vwn5c 0.19
functional xcfun lypc 0.81
functional xcfun set-hybrid 0.15
or (to get the same as in Gaussian)
functional xcfun vwn3c 0.19
How to set up designed broken-symmetry calculations
Finding the correct broken-symmetry wavefunction for a complicated
multi-metal system may be a pain.
The standard procedure is to first optimise the wavefunction for the
maximum-spin (high-spin) state and then manually change the alpha
and beta occupation numbers and reoptimise the wavefunction.
If this fails, it is hard to solve the problem (sometimes the fermi
keyword works).
However, we have implemented the approach by Szilagyi
(JCC-27-06-1385) to select a broken-symmetry wavefunction from
fragment calculations, the program makebs.
You need a separate QM calculation of each of the fragments,
which you read in (as directories).
For example, if you want to set up the wavefunction for a
Fe2S2(SMe)4 cluster in the mix-valence state, you need separate
calculations of Fe(II), Fe(III) (both high-spin), S2-, and SMe-.
Then, you first read in these four fragments (giving the
directories and ending with a blank line).
Next, you specify the order of these fragments in the full
calculation. A minus sign indicate that you flip the alpha and
beta orbitals:
Example:
makebs <<EOF
Ch3s
Fe3
Fe2
S2-
1
1
1
1
2
-3
4
4
EOF
For nitrogenase, we base the calculations on high-spin Fe(II) and
Fe(III), but intermediate-spin (doublet) Mo(III).
The lonely Fe (bound to Cys) is Fe(II) up, then there are one each
of Fe(II) down, Fe(III) down, and Fe(III) up in the next layer,
and finally Fe(III) down, Fe(II) up, and Fe(III) up in the third
layer (closest to Mo).
For big-QM calculations, you need to run makebs-big instead - it
does not read in any wavefunction and is therefore slower.
How to set up a CCSD(T) calculations
Dage and Mikael recommends not to use F12 and to use the def2 basis
sets, rather than Dunning's cc basis sets.
- Set up the system as usual with define (use the def2-TZVPP or
QZVPP basis sets)
- Do not use RI
- Do not use rijk
- Go to the cc menu
- ricc2 submenue
ccsd(t)
- Freeze the core orbitals (command freeze). For metals, not the
3s 3p subcore.
- Activate the cbasis with the cbas keyword.
- Select the amount of memory ($maxcor in MB; set it to 66–75% of available memory).
- Turbomole recommends the keywords (under $ricc2):
conv=7
oconv=6
mxdiis=10
maxiter=25
- Run the HF calculation (ROHF for open shell systems; UHF works also, but not DFT) with
ridft
- Run ccsdf12
The convergence thresholds are very strict. You can significantly
speed up the calculation by using conv=6 or conv=5 (and oconv=conv+1).
The ccsdf12 program is available in SMP parallel mode, but I experienced no speedup at all with 28 processors on Kebnekaise.
Truncated CCSD(T) output
*
C C S D F 1 2 P R O G R A
M
*
| Atomic coordinate, charge and isotop information |
|
basis set
information
|
restricted closed shell
calculation for the wavefunction models:
CCSD(T) - CC Singles and Doubles With Pert.
Triples Corr.
global parameters for ricc2
program:
| Auxiliary basis set
information |
| list of orbitals that will be kept frozen: |
Molecular Orbital Statistic:
=========================================================================
Energy of reference wave
function is -110.0658669233000
Maximum orbital residual
is
0.1559682130442E-04
Number of symmetry-nonredundant
auxiliary basis functions: 197
Block lengths for integral
files:
frozen
occupied (BOI): 1 MiB
active
occupied (BJI): 1 MiB
active
virtual (BAI): 1
MiB
frozen
virtual (BGI): 0
MiB
general (BTI): 1
MiB
=========================================================================
**********************************************************************
*
no explicit correlation will be
included
*
**********************************************************************
time in 3idx,ccsdint
cpu: 0.56 sec wall: 0.57
sec ratio: 1.0
Calculate integrals (ia|jb) for
MP2 start guess
**********************************************************************
*
*
* RHF
energy
: -110.0658669233 *
* MP2 correlation
energy (doubles)
:
-0.4357569984 *
*
*
* Final MP2
energy
: -110.5016239217 *
*
*
*
E(S) =
-0.2830741402 E(T)
=
-0.1526828582 *
* E(OS)
=
-0.3339684263 E(SS)
=
-0.1017885721 *
*
*
* SCS-MP2
energy
: -110.5005585589 *
* (computed
with C(OS) = 1.2000 and C(SS)
=
0.3333) *
*
*
* SOS-MP2
energy
: -110.5000258774 *
* (computed
with C(OS) =
1.3000)
*
*
*
* Norm of MP1 T2
amplitudes
:
0.2092388945 *
*
*
**********************************************************************
time in
ccsdint cpu: 2.45
sec wall: 2.45 sec
ratio: 1.0
**************************************************************************
*
*
*
OPTIMIZATION OF THE GROUND STATE CLUSTER
AMPLITUDES
*
*
*
**************************************************************************
threshold for screening of BF
intermediate: 0.22E-13
start CCSD from scratch because
restart not enabled
Iter. CCSD
energy
Norm(Omega) Norm(t1)
Norm(t2) cpu wall
...........................................................................
1
-110.4941150138
0.1772117026 0.00000
0.24014 0.11 0.11
2
-110.5086478255
0.0520579339 0.05429
0.24670 0.10 0.10
...
12 -110.5093434745
0.0000006703 0.07728
0.27174 0.10 0.10
...........................................................................
CC equations converged in 12 iterations.
last energy
change :
0.20E-08
convergence
threshold : 0.10E-06
norm of the vector function: 0.67E-06
convergence
threshold : 0.10E-05
time in
total cpu:
1 min 15 s wall: 1 min 15 s ratio: 1.0
**********************************************************************
*
*
* RHF
energy
: -110.0658669233 *
* correlation
energy
:
-0.4434765512 *
*
*
* Final CCSD
energy
: -110.5093434745 *
*
*
* D1
diagnostic
:
0.0546
*
*
*
**********************************************************************
time in triples corr
cpu: 4.29 sec wall: 4.29
sec ratio: 1.0
*********************************************************************
*
*
* RHF
energy
: -110.0658669233 *
* CCSD correlation
energy
:
-0.4434765512 *
* E4 doubles and
triples contribution
:
-0.0219657415 *
* E5 singles and
triples contribution
:
0.0006510997 *
* total correlation
energy
:
-0.4647911930 *
*
*
* Final CCSD(T)
energy
: -110.5306581163
*
*
*
* D1 diagnostic
(CCSD)
: 0.0546
*
*
*
*********************************************************************
------------------------------------------------------------------------
total cpu-time : 1 minutes and 23 seconds
total
wall-time : 1 minutes and 23 seconds
------------------------------------------------------------------------
**** ccsdf12 : all done ****
How to tidy up Turbomole calculations
Run purtur when it is finished.
Alternatively for many directories (this is actually for
comqum-2QM):
This is now done by purtur-many
find * -name GEO_OPT_CONVERGED -print -delete
find * -name GEO_OPT_RUNNING -print -delete
find * -name GEO_OPT_FAILED -print -delete
find * -name NodeFile* -print -delete
find * -name a -print -delete
find * -name a0 -print -delete
find * -name b -print -delete
find * -name b0 -print -delete
find * -name calcforce.out1 -print -delete
find * -name calcforce.out2 -print -delete
find * -name comqum.mmout -print -delete
find * -name comqum.qcout -print -delete
find * -name converged -print -delete
find * -name cphf_* -print -delete
find * -name dens_cao -print -delete
find * -name diff_densmat -print -delete
find * -name diff_dft_density -print -delete
find * -name diff_dft_oper -print -delete
find * -name diff_fockmat -print -delete
find * -name diis_errvec -print -delete
find * -name diis_oldfock -print -delete
find * -name dscf_problem -print -delete
find * -name fixcoord1.mmin -print -delete
find * -name fixcoord1.out -print -delete
find * -name fixcoord1.qcin -print -delete
find * -name fixcoord2.mmin -print -delete
find * -name fixcoord2.out -print -delete
find * -name fixcoord2.qcin -print -delete
find * -name fixenergy.mmin -print -delete
find * -name fixenergy.out -print -delete
find * -name fixenergy.qcin -print -delete
find * -name fixforce.mmin -print -delete
find * -name fixforce.out -print -delete
find * -name fixforce.qcin -print -delete
find * -name fort.[1234567890]* -print -delete
find * -name force1 -print -delete
find * -name force2 -print -delete
find * -name force11 -print -delete
find * -name force12 -print -delete
find * -name g1 -print -delete
find * -name gradient -print -delete
find * -name gradient1 -print -delete
find * -name gradient2 -print -delete
find * -name hostlist -print -delete
find * -name hp_mpi_appfile -print -delete
find * -name job.start -print -delete
find * -name job.[1234567890]* -print -delete
find * -name master.output -print -delete
find * -name mden2 -print -delete
find * -name mden11 -print -delete
find * -name mden12 -print -delete
find * -name mdinfo -print -delete
find * -name nextstep -print -delete
find * -name not.converged -print -delete
find * -name rhs_* -print -delete
find * -name slave*.output -print -delete
find * -name slurm-[1234567890]*.out* -print -delete
find * -name statistics -print -delete
find * -name temp.ulf -print -delete
find * -name uff.out -print -delete
find * -name uffenergy -print -delete
find * -name uffgradx -print -delete
find * -name ufftopology -print -delete
find * -name vfile_* -print -delete
find * -name wfile_* -print -delete
find * -name GEO_OPT_CONVERGED.gz -print -delete
find * -name GEO_OPT_RUNNING.gz -print -delete
find * -name GEO_OPT_FAILED.gz -print -delete
find * -name NodeFile_*.gz -print -delete
find * -name a.gz -print -delete
find * -name a0.gz -print -delete
find * -name b.gz -print -delete
find * -name b0.gz -print -delete
find * -name bindividual.pdb_?.gz -print -delete
find * -name calcforce.out1.gz -print -delete
find * -name calcforce.out2.gz -print -delete
find * -name comqum.mmout.gz -print -delete
find * -name comqum.qcout.gz -print -delete
find * -name converged.gz -print -delete
find * -name cphf_*.gz -print -delete
find * -name dens_cao.gz -print -delete
find * -name diff_densmat.gz -print -delete
find * -name diff_dft_density.gz -print -delete
find * -name diff_dft_oper.gz -print -delete
find * -name diff_fockmat.gz -print -delete
find * -name diis_errvec.gz -print -delete
find * -name diis_oldfock.gz -print -delete
find * -name dscf_problem.gz -print -delete
find * -name fixcoord1.mmin.gz -print -delete
find * -name fixcoord1.out.gz -print -delete
find * -name fixcoord1.qcin.gz -print -delete
find * -name fixcoord2.mmin.gz -print -delete
find * -name fixcoord2.out.gz -print -delete
find * -name fixcoord2.qcin.gz -print -delete
find * -name fixenergy.mmin.gz -print -delete
find * -name fixenergy.out.gz -print -delete
find * -name fixenergy.qcin.gz -print -delete
find * -name fixforce.mmin.gz -print -delete
find * -name fixforce.out.gz -print -delete
find * -name fixforce.qcin.gz -print -delete
find * -name fort.[1234567890]* -print -delete
find * -name force1.gz -print -delete
find * -name force2.gz -print -delete
find * -name force1_?.gz -print -delete
find * -name force2_?.gz -print -delete
find * -name force11.gz -print -delete
find * -name force12.gz -print -delete
find * -name g1.gz -print -delete
find * -name gradient.gz -print -delete
find * -name gradient1.gz -print -delete
find * -name gradient2.gz -print -delete
find * -name hostlist.gz -print -delete
find * -name hp_mpi_appfile.gz -print -delete
find * -name job.start.gz -print -delete
find * -name job.[1234567890]* -print -delete
find * -name master.output.gz -print -delete
find * -name mden2.gz -print -delete
find * -name mden11.gz -print -delete
find * -name mden12.gz -print -delete
find * -name mdinfo.gz -print -delete
find * -name minimize.pdb_?.gz -print -delete
find * -name mmen1_?.gz -print -delete
find * -name mmen2_?.gz -print -delete
find * -name mm3.mtf_?.gz -print -delete
find * -name mm3.pdb_?.gz -print -delete
find * -name nextstep.gz -print -delete
find * -name not.converged.gz -print -delete
find * -name q.o[1234567890]* -print -delete
find * -name qq.o[1234567890]* -print -delete
find * -name rhs_*.gz -print -delete
find * -name slurm-[1234567890]*.out* -print -delete
find * -name slave*.output.gz -print -delete
find * -name statistics.gz -print -delete
find * -name temp.ulf.gz -print -delete
find * -name uff.out.gz -print -delete
find * -name uffenergy.gz -print -delete
find * -name uffgradx.gz -print -delete
find * -name ufftopology.gz -print -delete
find * -name vfile_*.gz -print -delete
find * -name wfile_*.gz -print -delete
Integrating Turbomole with Multiwfn and other programs
Add keyword $wfn in the control file.
This gives a wavefunction file, which can be read by many programs.
Multiwfn can calculate many different charges, including Hirshfeld, Hirshfeld-ADCH (atomic dipole corrected Hirshfeld charges), Becke (Becke atomic charge with atomic dipole moment correction), and CM5.
Multiwfn gives almost the same Hirshfeld charges, reading wfn files either from Gaussian or from Turbomole (R2 = 0.99). We also used Gaussian to calculate Hirshfeld charges (pop=Hirshfeld keyword) are quite different from those generated by Multiwfn (R2 = 0.83).
How to calculate ESP charges with Turbomole >=5.8
With Turbomole 5.10, you can calculate MK-like charges by simply
setting (it gives charges within ~0.1 e of those described below):
$mvd
$moments
$pop
$esp_fit kollman
The moloch function is replaced by calls to
dscf -proper >logd
ridft -proper >logd
The -proper keyword is only needed when a postprocessing is wanted
(otherwise, the output comes directly after the wavefunction
optimisation).
For Amber Resp calculations you can alternatively set
$esp_fit resp
which gives all esp points written both to the output file
and to a file esp.dat in Amber format.
Program changepot can read the data in the output file
Proper keywords (giving relativistic corrections, moments up to
octupole (maximum) around the origin, Mulliken population and spin
analysis):
$mvd
$moments
$pop
After $moments a
reference point can be given (if other than the origin)
$moments
1.0 2.0 3.0
You man need to remove old mulliken keywords from the control
file to avoid crashes.
You can get an esp fit with the keyword.
$esp_fit
Note that the ESP fit takes into account also the point
charges. Therefore, this $pointcharges needs to be deleted before
the esp fit is performed. The Mulliken charges, moments, and
relativistic corrections do not change with the point charges.
Moreover, the default radii are very non-standard:
Element
|
Turbomole
|
MK
|
Chelp
|
ChlepG
|
Suggested radii for Tm
|
H
|
0.35
|
1.20
|
1.19
|
1.45
|
3.85504 |
C
|
0.70
|
1.50
|
1.81
|
1.50
|
4.81880 |
N
|
0.60
|
1.50
|
1.67
|
1.70
|
4.81880 |
O
|
0.65
|
1.40
|
1.55
|
1.70
|
4.49755 |
S
|
1.00
|
1.75
|
2.02
|
2.00
|
5.62193 |
Cl
|
|
1.70
|
|
|
5.46131
|
Fe
|
1.35
|
|
|
|
6.42507 |
Ni
|
1.40
|
|
|
|
6.42507 |
Cu
|
1.35
|
|
|
|
6.42507 |
Zn
|
1.35
|
|
|
|
6.42507 |
To reproduce MK results, the following keywords can be used
(but it is much simpler to use $esp_fit kollman with Turbomole 5.10)
$mvd
$moments
$pop
$esp_fit
shell 1000 -0.85
shell 1000 -0.28
shell 1000 0.28
shell 1000 0.85
$vdw_radii
h 3.85504
c 4.81880
n 4.81880
o 4.49755
s 5.62193
mn 6.42507
fe 6.42507
co 6.42507
ni 6.42507
cu 6.42507
zn 6.42507
To get accurate chargefit-like results, I suggest the
following (should give ~2500 ESP points/atom)
It takes ~10 min for 44 atoms.
$mvd
$moments
$pop
$esp_fit
shell 75000 -0.57
shell 75000 -0.38
shell 75000 -0.19
shell 75000 0.00
shell 75000 0.19
shell 75000 0.38
shell 75000 0.57
shell 75000 2.46
shell 75000 4.35
shell 75000 11.91
$vdw_radii
h 3.85504
c 4.81880
n 4.81880
o 4.49755
s 5.62193
cl 5.46130
mn 6.42507
fe 6.42507
co 6.42507
ni 6.42507
cu 6.42507
zn 6.42507
Note that the radii given are approximately the Merz-Kollman
radii * 1.7, so that the fact that Turbomole use additive shifts,
whereas Merz-Kollman used multiplicative shifts has as small
influence as possible.
Merz-Kollman uses five shells with 1.4, 1.6, 1.8, and 2.0 times the
van der Waals radii.
I construct my suggested radii by multiplying the Merz-Kollman radii
by 3.21253 (= 1.7 * 0.52918).
Turbomole wrote (14/7-06):
this is very misleading, indeed! You just have to add $esp_fit without any
options, then you get the bragg-slater radii. The funny thing about the input is
that the so called scaling factor, which can be given as an option to $esp_fit
(which itself is the very same keyword as $vdw_fit) does not scale the radii -
it is an additive constant!!
So,
shell 1000 1.0
means that 1.0 will be added to each vdW radius.
If you do a water calculation and just add $esp_fit without options, you get:
*********************************************************************************
==============================================================================
fit of point charges due to electrostatic potential
==============================================================================
automatic shell generation used, i.e.:
radii: bragg-slater radii, 2160 points
ESP input after point reduction treatment:
shell points radii scaled by
1 1334 1.00000
------------------------------------------------------------------------------
charges resulting from fit:
------------------------------------------------------------------------------
atom radius/au charge
1 o 1.133836 -0.737508
2 h 0.661404 0.370188
3 h 0.661404 0.367319
************************************************************************************
The radius/au is wrong here - the scaling factors (I should not call it
factor...) are _not_ added when printing this output.
You could also specify your own vdW radii by using the keyword $vdw_radii (see
below) - but again, the points will be build at a radius given by the $vdw_radii
plus the scaling "factor" given in $esp_fit -> shell (default is 1.0).
> I have tried the old
> $vdw_radii
> but they were ignored, and I find nothing in the manual.
Another bug in the documentation! You have to set the element name and the radius:
$vdw_radii
o 1.5
h 1.1
not the number of the atom, and it is also not possible to set a different
radius for different atoms of the same element.
Uwe
Sometimes, it is necessary to delete the old moloch keywords
Problem with ired in define
Try to insert in control
$redund_inp
metric 1
and rerun define - ired
DFT functionals
The Truhlar meta functional pw6b95 is available, although it is not
documented or can be seen by define.
Fix atom coordinates in Turbomole calculations
You can fix the positions of certain atoms in a geometry
optimisation.
To do this, you simply add an f after the atom name in the coord
file (with 1-7 spaces between).
Then you submit a normal jobex job.
Relativistic corrections
The old approach would be to add
$mkd
and run
ridft -proper >logd
However, this is considered obsolete today.
A better approach is to use the Doglas-Kroll-Hess Hamiltonian, i.e.
add
$dkhorder 2
It is possible only for single-point energy calculations in C1
symmetry. Note that ecp is not allowed.
Frequency
calculation
1. Run dscf as usual.
2. Run turbofreq.
It automatically adds these keywords to control
$dipgrad file=hessian
$hessian file=hessian
$vibrational normal modes file=hessian
$maxcor <core memory in MB (70% of available memory is
recommended)>
3. If Raman intensities are to be
computed (only for closed shell) include raman
on in $drvopt
4. Run aoforce.
aoforce >logf
You can visualise the frequencies with the TmoleX
software.
You can calculate ZPE, entropy, and thermal corrections with
describe.
Frequencies can be postprocessed by the thermo program by Grimme to
scale down low frequencies:
thermo 100 298.15 1.0 d2h
The first parameter is the cut off for scaling down frequencies
(keep at 100 cm-1)
The second parameter is the temperature
The third parameter is the scaling factor of the frequencies
The four parameter is the symmetry (to get the symmetry number).
However for Turbomole, it is ignored and instead read from
the control file (change it there manually, if necessary, it is not
checked).
Note that the program does not work if there are more letters than
element name in the coord file (reads only 1 atom and no frequencies).
Delete them and rerun.
Frequencies with COSMO and symmetry may run into problems (no convergence in the CPKS iterations).
You may try to decrease $forceconv 4.
PW6B95 is not implemented for frequencies, but use instead:
$dft
functional libxc 451
$disp4 func pw6b95
Fermi keyword
The fermi keyword is useful to obtain the lowest-energy state for a
molecule, especially if you have several metal centres.
I have successfully used the following line
$fermi tmstrt=300.00 tmend=
50.00 tmfac=0.900 hlcrt=1.0E-01 stop=1.0E-03
There has not been any need to increase the level shift or damping,
compared to a system without the fermi keyword
Transition states
In control file you add (and remove possible restrains you have used
to find the approximate transition state):
$statpt
itrvec 1
Then, you start the job with:
jobex -trans -ri -c 200
-backup
For problematic ts cases, try:
$statpt
itrvec 1
hssfreq 1
radmax 3.000000E-02
tradius 3.000000E-02
You calculate the Hessian every step and have decreased the
maximum trust radius by a factor of 10.
If you have a too big molecule for a full frequency calculations,
you can use
$les all 1
$h0hessian
$nomw
Proper output in statpt
Found initial Hessian matrix in $hessian section
Number of zero Hessian eigenvalues: 0
5 first eigenvalues:
-0.44829776 0.00090854 0.00144243
0.00387327 0.00876706
Eigenvalue of transition vector: -0.44829776
Largest and next-largest overlaps:
0.99999782 0.00073345
Old transition vector 1 has
overlap 0.99999782 with the new 1
Statpt
Number of frozen internal coordinates: 1
after Cartesian gradients, energy, and hessaprox read.
*************** Stationary point options ******************
************************************************************
Maximum allowed trust
radius:
3.000000E-01
Minimum allowed trust
radius:
1.000000E-03
Initial trust
radius:
1.500000E-01
GDIIS used if gradient norm
<
1.000000E-02
Number of previous steps for
GDIIS: 5
Hessian update
method:
Powell
Initial index of transition
vector: 1
*** Convergence criteria
***
If you get Segmentation fault for large systems, try to increas the
stack size:
ulimit -s 102400
gives 100 MB stack size, instead of default 10 MB
ulimit -s 12800 normally enough.
Marij and RIK
marij should be used only if the number of basis functions is
>500
$rik should be used for B3LYP with TZVPP or larger basis sets
BSSE calculation
- Run define and set the fragments and their charge in the
coordinate menu, command frag
- Run jobbsse (typically without any options)
- Result in bsse.out
screwer
A tool to distort along a vibrational mode (typically to get rid of
an imaginary frequency)
- Run screwer
- Select mode
- Take default step
- mv $newcoord from file control to file coord
- jobex
Utilities
- actual - Finds the actual and next step; actual -r removes the
actual step keyword
- cgnce logd - Plot energy convergence of scf iterations
- eiger - Shows HOMO-LUMO gap, etc.
- evalgrad - Writes out information from gradient file, e.g.
energies, bonds, etc.
- kdg - removes a data group from file control (exclude $)
- sdg - shows a data group from file control
- t2x - writes out the coordinates in xyz format
- tm2molden - writes out a molden input file
- x2t - converts xyz coordinates to turbomole format
DFT-D
Adding in the control file
$disp
adds the DFT-D2 dispersion correction to the energies and gradients.
$disp3
adds the DFT-D3 dispersion correction with Turbomole >=6.4
The stand-alone program dftd3 from Stefan Grimme can calculate
DFT-D3 (and DFT-D2) energy and gradient corrections (also with
Beck-Johnson damping and 3-body term.
dftd3 coord -func b-p
Note that the program does not allow other characters or numbers in
the atom name than the element.
The program coord2dftd reads a coord file and removes additional
characters and writes the file coord-dftd3:
coord2dftd
dftd3 coord-dftd3 -func tpss
-bj -abc
Check that you do not get the message
Caution: Dummy atoms
found and ignored.
Then, coord2dftd has failed for some (two-letter) atoms
With the 3.1 version of the program, you need to add -zero to get normal
dampling
Otherwise, you get:
inacceptable version number
Automatically add $disp at the end of the control file:
sed -i 's/\$end/\$disp\
\$end/' control
How to automatic scans
Once you have a valid control file as input, you should add the data group
$constraints
under which you should add the constraint that you want to analyze, for example to scan a distance:
stre 5 8 start=3.35 end=3.7 stepsize=0.05
For bending or torsions the keyword would be either bend or tors (in degree).
After that you can run scanprep, or scanprep -c depending on what you want to do.
'scanprep' will create bash script called scan_start.sh.
This script will run in a loop over the subdirectories
and execute the optimization. Afterwards the result files
scan_energy.dat and scan_movie.xyz will be written.
If 'scanprep -c' is executed, an additional script called
concatenated_scan.sh will be created. This will try to
use the coord file from the previous step as inital structure.
This program will automatically generate all the folders for each step and the script to run the calculations.
More information can be found with scanprep -h.
Find energy results from many calculations
grep -B 1 '$end' */energy | grep -v end | grep -v -e --
Change from open-shell to closed-shell calculation
mkdir Cosmo
Automatic set-up of a cosmo calculation
mkdir Cosmo
cd Cosmo
cp ../* .
cosmoprep_huge <<EOF
4
r all o
r "fe" 2
r "ni" 2
r "mg" 2
*
EOF
Change from open-shell to closed-shell calculation
\rm beta
mv alpha mos
sed -i "s/uhfmo_alpha/scfmo/" mos
sed -i "s/uhfmo_alpha/scfmo/" control
sed -i "s/file=alpha/file=mos/" control
sed -i "s/alpha shells/closed shells/" control
sed -i "s/( 1 )/( 2 ) /" control
kdg uhf
kdg beta shells
kdg uhfmo_beta
Change to another dft functional
mkdir Blyp
cd Blyp
cp ../* .
sed -i 's/tpss/b-lyp/' control
qsub q
Change to a B3LYP calculation
mkdir B3
cd B3
cp ../* .
sed 's/tpss/b3-lyp/' control
>tmp.ulf
grep -v rij tmp.ulf | grep -v
ricore | grep -v auxbasis >control
\rm auxbasis
\cp ../../R/B3/q .
qsub q
or simply
sed -i 's/tpss/b3-lyp/'
control
Change to a bigger basis set
mkdir Tz
cd Tz
cp ../* .
define <<EOF
y
bb all def2-TZVP
*
k
k
k
k
k
k
use ../control
ri
off
*
ri
on
m 700
*
*
EOF
qsub q
Change from Cosmo eps=4 to 80
cd ../Eps80
\cp ../Eps4/* .
sed -i
's/epsilon= 4.000/epsilon=
80.000/' control
qsub q
Change the level shift
sed -i
"s/scforbitalshift automatic=.1/scforbitalshift
automatic=.2/" control
for x in *; do sed -i
"s/scforbitalshift automatic=.1/scforbitalshift
automatic=.2/" "$x"/control; done
ridft >$SLURM_SUBMIT_DIR/logd1
sed -i "s/scforbitalshift
closedshell=1.8/scforbitalshift closedshell=0.8/" control
sed -i "s/$scfiterlimit
100/$scfiterlimit 300/" control
cp alpha a
cp beta b
ridft >$SLURM_SUBMIT_DIR/logd
Turbomole 7.3 has updated procedures for the level shift.
Unfortunately, the seem often converge worse than the old ones. To
use the old ones instead, set the following keyword in the control
file:
$oldvshift
Insert $esp_fit kollman
sed -i 's/\$end/\$esp_fit
kollman \
\$end/' control
Now done by the script setkollman
Calculate the potential in a point
New version
$pointval geo=point pot
fmt=xyz
0.0 0.0 0.0
1.0 0.0 0.0
This gives a file with coordinates and the poteintial (tp.xyz).
The EFG can then be processed by the local program efg.
Calculate field gradients
New version
$pointval fldgrd fmt=xyz
prints out the electrostatic field gradient on a 3D-grid in xyz
format (readable
in gopenmol, see the output file for a definition of the format).
To get the EFG tensor on a certain point:
$pointval geo=point fldgrd fmt=xyz
0.0 0.0 0.0
dens stands for the electron density
fldgrd stands for the electrostatic field gradient,
fld stands for the electrostatic field
pot stands for the electrostatic potential
output is in file tg.xyz (total density) and sg.xyz (spin density)
TmoleX 2.0 will have a nice OpenGL viewer for 3D plots for such
purposes, which
is also able to visualize vector fields
ricc2 in Turbomole 5.9.1 has a bug, so it is currently not possible
to calculate
the EFG tensor in ricc2 - for MP2 you should use rimp2 instead.
It is not possible to give atom numbers instead
readmul can read the field gradients and convert them to more usable
units.
Turbomole support, 21/8-07
Old version
Add the keywords to the control file:
$properties
potential
$points
fldgrd
point 1.1 2.2 3.3
atom 1
And then run moloch.
Calculate frequencies for a system with frozen coordinates
Prof. Jeremy Harvey (Leuven) has provided us a program to calculate
frequencies for a system with frozen coordinates (freq-x). He writes
(29/3-17):
I should add that after I discussed this with Per, we discovered
that in Gaussian 09 (and presumably 16, but I have not tested), you
can do all of this automatically, by freezing the atoms in one
particular way (placing a ‘-1’ after the atom label in the
coordinates section). The frequencies obtained from such a run are
identical to those you get from the procedure below, we have tested.
I think you do not use Gaussian, but maybe it is possible in other
codes as well.
The procedure is one to calculate frequencies for
points that are not full minima - which are fully optimized, but
with some atoms frozen. I attach some code and instructions for
doing this.
Basically, the idea is to diagonalize a modified
Hessian matrix, from which the rows and columns for the
coordinates of the frozen atoms have been deleted. If you have N
atoms, with n frozen atoms, then:
* The full Hessian is 3N x 3N.
* At a proper stationary point, there are 3N - 6
meaningful freqeuncies.
* The truncated matrix is 3(N-n) x 3(N-n).
* If all of the (N-n) atoms have been optimized,
diagonalizing this Hessian, after mass-weighting, gives 3(N-n)
freqeuncies, which should all be positive (or 1 should be
negative at a TS). There are not in this case 6 freqs for
rotation/translation.
* This all applies if there are at
least TWO frozen atoms. If there are fewer,
then it is not clear what happens.
This requires these steps:
Step 1: run a frequency calc at the optimized point.
The computed frequencies themselves are not meaningful, but the
Hessian is needed.
Step 2: extract the Hessian from the output file. I have available
code to do this from Gaussian output, based on code for performing
vibrational frequency analysis at an MECP, programmed by my
colleague David Glowacki. The fact that an MECP is not involved
DOES NOT MATTER HERE. Just run the script 'gauread.py’. This is
available from David’s webpage, http://glow-wacky.com/code/.
Step 3: truncate, mass weight, diagonalize. The code to do this is
separate, and is attached.
* This second program is in Fortran. Just untar the
attached, and type ‘make’ (the Makefile currently uses the gnu
compiler, gfortran).
* Input is taken from a file called 'hessian_info'.
Sorry, it is inconvenient to hard-wire this, but it is easier to
write the program that way and I was lazy!!! Likewise, output
goes to a file called 'freqs_results'.
* The input file is a lightly modified version of
the .info file generated by gauread. You need to: (i) check that
the geometry is not included in the
file (I notice that your .info files don't contain it), (ii)
check that the gradient is contained, at the end, (iii) list the
atoms that are frozen, as shown in the sample .info file in the
tarfile.
* Note that if you freeze atoms - e.g. Calpha atoms
- during optimization, it makes sense to remove from the freq
analysis the H atoms to which they are bonded - as done in my
file.
* I was lazy and did not output anything about
eigenvectors. This could in principle be done. If you let me
know the format you need, I can do this.
Parallel Turbomole
If you use --exclusive, it is most likely better to use SMP (shared-memory) than MPI.
Batch script for aurora (no changes in the control file is needed)
(/home/ulf/qp):
#!/bin/sh
#SBATCH -t 168:00:00
#SBATCH -N 1
#SBATCH -n 20
#SBATCH --exclusive
export TURBODIR=/lunarc/nobackup/projects/bio/TURBO/Turbo7.1
export PARA_ARCH=MPI
export PARNODES=20
export CNS_SOLVE=/lunarc/nobackup/projects/bio/CNS/cns_solve_1.21
export MOPAC_LICENSE=/lunarc/nobackup/projects/bio/MOPAC/Mopac-2012
PATH=$PATH:/lunarc/nobackup/projects/bio/Bin:$HOME/Bin:/lunarc/nobackup/projects/bio/Pon_param
PATH=$TURBODIR/scripts:$TURBODIR/bin/x86_64-unknown-linux-gnu_mpi:$PATH
PATH=$AMBERHOME/bin:$PATH
export PATH
cd $SNIC_TMP
#/bin/rm -r *
cp -p $SLURM_SUBMIT_DIR/* .
ridft >$SLURM_SUBMIT_DIR/logd
cp -pu * $SLURM_SUBMIT_DIR
Parallel Turbomole 6.5 (Geng)
Batch script for alarik (no changes in the control file is needed):
/temp3/Ulf/Backup/Sampl5/Hsp90/Geng
#!/bin/sh
#SBATCH -p extra
#SBATCH -N 1
#SBATCH -n 8
#SBATCH -t 168:00:00
module add intel/15.0
module add mkl/11.2
module add openmpi/1.8.3/intel/15.0
module add amber/14
#export TURBODIR=/common/sw/alarik/pkg/bio/TURBO/Turbo6.5
#export TURBOMOLE_SYSNAME=x86_64-unknown-linux-gnu
export PARA_ARCH=MPI
export TURBODIR=/common/sw/alarik/pkg/bio/TURBO/Turbo7.0
export
PATH=$TURBODIR/bin/x86_64-unknown-linux-gnu_mpi:$TURBODIR/scripts:$PATH
export PARNODES=8
export CNS_SOLVE=/common/sw/alarik/pkg/bio/CNS/cns_solve_1.21
PATH=$PATH:/common/sw/alarik/pkg/bio/Bin:$HOME/Bin:/common/sw/alarik/pkg/bio/Pon_param/
#PATH=$TURBODIR/scripts:$TURBODIR/bin/x86_64-unknown-linux-gnu:$PATH
#PATH=$AMBERHOME/bin:$PATH
PATH=$PATH:$PYTHONPATH/bin
export PATH
cd $SNIC_TMP
#/bin/rm -r *
cp -p $SLURM_SUBMIT_DIR/* .
comqum -ri -backup -c 900
cp -pu * $SLURM_SUBMIT_DIR
Parallel Turbomole 6.4
Batch script for alarik (no changes in the control file is needed):
#!/bin/bash
#SBATCH -N 1
#SBATCH
-n 8
#SBATCH -t 168:00:00
#SBATCH
-J jobname
. use_modules
module add gcc/4.6.2
module add
openmpi/1.4.5/gcc/4.6.2
export
AMBERHOME=/lunarc/nobackup/projects/bio/Amber/Amber11
export
PATH=$AMBERHOME/exe:$PATH
export
CNS_SOLVE=/lunarc/nobackup/projects/bio/CNS/cns_solve_1.21
PATH=$PATH:/lunarc/nobackup/projects/bio/Bin/Gfortran:/lunarc/nobackup/projects/bio/Bin:$HOME/Bin
export
PARA_ARCH=SMP
export
TURBODIR=/lunarc/nobackup/projects/bio/TURBO/TURBOMOLE
export
TURBOMOLE_SYSNAME=x86_64-unknown-linux-gnu
export
PATH=$TURBODIR/bin/x86_64-unknown-linux-gnu_smp:$PATH
export
PATH=$TURBODIR/scripts:$PATH
export
PARNODES=8
export
PATH
# SNIC_TMP is node local disk;
copy input data here and start program from here
# SLURM_SUBMIT_DIR is
submission directory where you run sbatch
cd $SNIC_TMP
cp -p $SLURM_SUBMIT_DIR/* .
ridft > ridft.out
rdgrad > rdgrad.out
NumForce -ri -c >
NumForce.out
cp numforce/control .
cp numforce/hessian .
jobex -ri -trans -c 999 >
ts_search.out
aoforce >aoforce.out
cp -pru *
$SLURM_SUBMIT_DIR/
#
(Jilai 24/9-12)
But Lihong says (27/9-12)
To run parallel calculation, the keywords should be added to the control file as follows:
There are two ways(I tried as Jimmy told me) to change the control file, but I am not sure which one really works better.
1. $scfdump (deleted)
$ricore_slave 700 (I checked output file logd1, seems the _slave can't be recognized normally)
$ricore 700
$marij
$rij
2. $scfdump (kept)
$ricore 2700(70% of available memory on nodes)
$marij
$rij
The folder contain these calculations are /backup6/Lihong/Nifehase/Himo/Def2/Himo/50(44)
Parallel Turbomole with 5.8
Add the following lines in control (not needed):
$parallel_parameters maxtask =
3000
$parallel_platform MPP
$numprocs 7
and set (unless you have big local disks)
$thime 0
and ensure that this line does not exist:
$2e-ints_shell_statistics
file=metastase
Just start as a normal calculation with the following qsub script
#!/bin/bash
#PBS -l nodes=8
#PBS -l walltime=96:00:00
##PBS -j e
#PBS -N file
# ------- modules ---------
. use_modules
module add pgi
module add mpich-pgi6
# or on milleotto:
# module add pgi/6.2
# module add mpich-pgi6/1.2.7p1
export
P4_RSHCOMMAND=/usr/bin/rsh
# ------- Turbomole ---------
export PARA_ARCH=MPI
export PARNODES=7
export
TURBODIR=/sw/pkg/bio/TURBO/Turbo5.8
export
PATH=$TURBODIR/scripts:$PATH
export
PATH=$TURBODIR/bin/`sysname`:$PATH
# ------- Ulf's programs
---------
cd $PBS_O_WORKDIR
#ridft
alias mpirun="mpiexec"
dscf > dscf.log
The job then often crashes:
You may need to increase
$parallel_parameters maxtask = 3000
or you may need to change
$scfintunit
unit=30
size=0
file=/disk/local/twoint
USING THE PARALLEL VERSION (5.6; not tested):
- set PARA_ARCH to MPI (ksh-syntax:)
export PARA_ARCH=MPI
sysname will now append '_mpi' to its output
- check that mpirun is in your $PATH and that your MPI-environment runs
without problems (it is called dmpirun on Digital Unix and poe on
IBM SP machines)
- if you want to call the parallel ridft, rdgrad, dscf, grad or mpgrad from
your shell, you have to extend the PATH (ksh syntax):
export PATH=$TURBODIR/bin/`sysname`:$PATH
this is not necessary if you're just using jobex or TEST
- set the Number of CPU's that should be used with the variable PARNODES
export PARNODES=4
(default is 2)
NOTE: all parallel Turbomole programs need an additional server task
which is not doing any calculations. The server will be started
automatically, but there will be $PARNODES+1 tasks running on your system.
This is important if you're going to use a queueing system.
- you can TEST the parallel versions of ridft, dscf, grad and rdgrad with
the Testsuite. Just go to $TURBODIR/TURBOTEST and call 'TEST ridft'
(or TEST dscf, etc.)
- to use the parallel version of mpgrad, please call turbo_preproc, follow
the instructions and then copy the resulting control_par to control.
Parallel Turbomole at embla/ask
- Start from a normal sequential Turbomole job.
- Run /sw/turbomole/Parallel/bin/iris64_mpi/turbo_preproc
and select alt. 3 (Statistics for dscf).
The four default values are OK.
- mv control_par control
- Run /sw/turbomole/bin/iris64/dscf
(run a dscf statistics using the normal sequential Turbomole
version)
- /sw/turbomole/Parallel/bin/iris64_mpi/turbo_preproc
6 (statistics for grad)
The two default values are OK.
- mv control_par control
- /sw/turbomole/bin/iris64/grad
(run a grad statistics using the sequential Turbomole version)
- /sw/turbomole/Parallel/bin/iris64_mpi/turbo_preproc
7 (jobex)
<return>
<return>
3
<number_of_nodes-1>
<actual scratch dir on /pools>
y
200
n
n
- mv control_par control
- Use the following script to submit the job to the queue
(with the appropriate modifications):
#
#QSUB -q pq8p48h # specify the queue
#QSUB -l mpp_p=8 # specify the number of
processors
#QSUB
-x
# export current environment to request
#QSUB -s /bin/ksh # use Korn shell for script
#QSUB -o qout #
specify file for standard output
#QSUB -e qerr #
specify file for standard error
#QSUB -j qlog #
specify file for log file
#QSUB
# end of QSUB directives
#
#
export TURBODIR=/sw/turbomole/Parallel
export PARA_ARCH=MPI
export
PATH=$TURBODIR/bin/iris64_mpi:$TURBODIR/scripts:$QSUB_PATH
cd $QSUB_WORKDIR
jobex -c 200
exit
If you get warnings of the type
<dtasks> : still too many parallelized dscf tasks
!
mxtask = 482
i,jshell = 19 18 (running from 482 --> 1)
costs already distributed
: 353837355530.1
(total costs :
353843530948.9)
safety factor is 36516.940
... and will be increased now to 36517.677 !
when running the dscf statistics, try to double
$parallel_parameters
maxtask=
in the control file manually and then rerun dscf.
Ulf Ryde, 15/12-98
Elementary tutorial (for project workers to
start up and run RPAS)
1. Log in to the computer
(the supervisor will show you how).
2. Go to the desired directory designated to your group
cd your_directory or
mkdir a_new_directory.
Make sure that you have not any old Turbomole calculation in this
directory.
3. Make sure that you have
some sort of starting coordinates; usually a PDB file from
Spartan.
4. Convert the PDB
coordinates to a Turbomole control file:
changepdb
Enter the name of the PDB file.
c (control)
Press return twice (i.e. default suggestions are OK).
Now you have got a file called control which contains
the coordinates.
5. Next, we will put in the
appropriate basis set, etc. for the calculation. This is done with
the interactive Turbomole program Define.
define
Enter an appropriate title.
Press return (we do not need to change the geometry)
Next we will define the basis set for the calculation. We will use
the 6-31G* basis set for all atoms, except Cu for which we use a
basis set called DZP.
`bb all 6-31g*'
Press return (there is no 6-31G* basis for Cu)
`bb "cu" DZP' (use the DZP basis for Cu instead)
`*' (to exit this menu)
Now we will make a starting guess for the wavefunction. This is
done with the so-called Extended Hückel method
`eht'
Press return twice.
`1' (the molecular charge is +1)
`y' (accept the suggested occupation)
`dft' (we will select a density functional method)
`on' (turn it on)
Press return to come back to the last menu.
`ri' (we will use a fast but approximate method, called the
Resolution of Identity'
`on' (turn it on)
`m 80' (we can use a large memory than default, which will speed
up the calculations)
Press return to come back to the last menu.
`*' (we are finished so we stop define)
6. We have to insert two
more keywords into the control file since we want to calculate the
spectrum.
`vi control' (this is a primitive word processor)
`G' (go to the end of the file)
`i' (switch to insert mode)
`$scfinstab rpas 7
$soes a
' (Note the two line-feeds at the end of the lines. This tells the
program that we will calculate the 7 lowest excitations of
symmetry a, using the method RPAS)
Press the esc key (to exit the insert mode).
`ZZ' (exist the word processor and save the changes)
6. Now we have defined
everything and we can start the calculations. This will be done on
the computer hugin. First we will solve the Schrödinger equation
to get the wavefunction, then we will calculate the spectrum
`rlogin hugin' (log in to hugin)
`nice -19 ridft > logd` (calculate the wavefunction)
`nice -19 escf > loga' (calculate the spectrum)
Since these are quite time consuming calculations 10 minutes to 10
hours depending on the systems, you may want to start these jobs
in the background. This is done with
`nohup nice -19 job_run &' (it runs both the wavefunction and
the spectrum calculation)
After this command, you can log out or you can do something else.
For example, you can start another calculation (there are two CPUs
in hugin so you can have two jobs running at the same time).
The result of the calculations can be found in the files `logd'
(wavefunction) and `loga' (spectrum). The supervisor will show you
how to read and interpret these files.
Ulf Ryde,
12/4-00
Parallel Turbomole at PDC
Skriv till supporten och be att få bash som förvalt shell.
Logga in med ett skript som ser ut på följande sätt (för
användare kristina):
#!/bin/sh
#/teo/emma/kerberos/rxtelnet -t -x -l kristina
strindberg.pdc.kth.se
/teo/emma/kerberos/kauth -h strindberg.pdc.kth.se -n
kristina@NADA.KTH.SE
/teo/emma/kerberos/telnet -x -l kristina strindberg.pdc.kth.se
Vill man ha ett exporterat fönster så ta bort # från andra raden.
Kör därefter:
"kauth -n användarnamn -l 40000"
Kör detta då och då (varje gång du loggar in och kanske varje
dag).
Följande rader ska finnas i .profile
(.bashrc om du använder bash): Kopiera enligt punkt 1 nedan.
export
TURBODIR=/usr/local/vol/turbomole
export
TURBO_ARCH=rs6000-ibm-aix4.3_mpi
export PARA_ARCH=MPI
export
PATH="$PATH":/usr/local/bin:/usr/gnu/bin:.:"$home"/bin:"$home"/Mulliken:"$TURBODIR"/bin/"$TURBO_ARCH":"$TURBODIR"/scripts
För att kunna kunna köra turbomole måste du var i rätt grupp och
ha rätt inställningsfiler.
För att få rätt filer så:
1. Kopiera alla punktade filer (.filnamn) från
/afs/pdc.kth.se/home/k/kristina/Public katalogen och
lägg dem i din egen /Public katalog
2. Gör länkar (med samma filnamn) från din hemkatalog till alla
dessa .filerna i din /Public
ex. Jag står i
/afs/pdc.kth.se/home/k/kristina och skriver
ln -sf ./Public/.bashrc .bashrc
3. Kolla igenom alla filer du kopierat och ändra alla syftningar
på kristina eller kristinas hemkatalog till
ditt eget användarnamn och hemkatalog.
Att du är i rätt grupp fixar den som äger turbomole (teoema)
med:
"pts creategroup teoema:turbomole"
(för att skapa gruppen)
och lägger till de användare som
ska ingå i gruppen med ex.vis.
"pts adduser teoulf
teoema:turbomole"
Utgå ifrån en "vanlig" beräkning
(eller skapa en ny med define).
Kör "spattach -i" (för att ansluta
till en nod)
Kör "turbo_start".
Välj "3" (Statistics for DSCF run)
Välj default på allt. Om systemet
är väldigt stort kan ibland "number of tasks" behöva ändras till
t.ex. 900.
Om du ska köra en
geometrioptimering kör "turbo_start" igen.
Välj "6" (Statistics for GRAD run)
Välj default på allt.
De två "turbo_start"-beräkningarna
kan ta lång tid för stora system. Man kan lägga dem i kön. Kör då
antingen med "turbo_start- batch_prepare" eller stoppa beräkningen
med "ctrl C" och starta den med dscf-skriptet nedan.
Statistics behöver inte köras vid
en ri-beräkning.
Kör därefter "turbo_start
-batch_prepare" och välj den beräkning du vill göra ("1" för
vanlig dscf eller "7" för geometrioptimering). Välj default på
allt utom antal processer, där du väljer "antal noder-1" och
scratch-fil där du väljer "/scratch".
Starta jobex med följande skript:
#!/bin/bash
export
TURBODIR=/usr/local/vol/turbomole
export
TURBO_ARCH=rs6000-ibm-aix4.3_mpi
export PARA_ARCH=MPI
export
PATH="$PATH":"$TURBODIR"/bin/"$TURBO_ARCH":"$TURBODIR"/scripts:"$TURBODIR"/parscripts:"$TURBODIR"/makelib
export MP_HOSTFILE=$SP_HOSTLIST
export MP_PROCS=$SP_PROCS
export MP_EUILIB=us
export MP_EUIDEVICE=css0
start_ll "antal noder" "-c 200"
Starta DSCF med:
#!/bin/bash
export
TURBODIR=/usr/local/vol/turbomole
export
TURBO_ARCH=rs6000-ibm-aix4.3_mpi
export PARA_ARCH=MPI
export
PATH="$PATH":"$TURBODIR"/bin/"$TURBO_ARCH":"$TURBODIR"/scripts:"$TURBODIR"/parscripts:"$TURBODIR"/makelib
export MP_HOSTFILE=$SP_HOSTLIST
export MP_PROCS=$SP_PROCS
export MP_EUILIB=us
export MP_EUIDEVICE=css0
turbo_start -batch
Använd "spsubmit -p 32 -t 240 skript" för att starta en beräkning på
32 noder i 240 minuter.
Användbara kommandon:
'spsummary -a|grep 2001-809-24' (ger den tid vår grupp har
kört den senaste månaden (obs numret ändras ibland))
'spq' (visar kön)
'cat /var/easy/strindberg-p2sc/transient/queue/teoema*' visar info
om alla beräkningar som ligger i kön som är teoemas.
Man bör köra 'kdestroy; exit' varje gång man kör exit (gör
förslagsvis "alias exit='kdestroy; exit' ").
'fs lq' visar hur stor del av sin quota man använder
'spwhen' ger någon slags tidsuppskattning om när beräkningen
startar - fungerar dåligt!
För att flytta filer från signe till pdc använder man scp.
För att byta shell mailar man sitt önskemål till pdc.
Se också: http://www.pdc.kth.se/info/
Emma, 9/10 -01
last changed: Kristina 23/10-01
Installation av
Turbomole 5.3 på PDC i Stockholm
Ändrat
$TURBODIR/makelib/sysname
till
$TURBODIR/scripts/sysname
i:
jobex
jobex.slave
turbo_jobex_dscf.ksh
turbo_jobex_grad.ksh
turbo_jobex_mpgrad.ksh
turbo_jobex_rdgrad.ksh
turbo_jobex_relax.ksh
turbo_jobex_ridft.ksh
turbo_start
Lagt till
unalias *
unset noclobber
i:
start_ll
turbo_start
Ändrat
$TURBODIR/parscripts/jobex_par
till
$TURBODIR/parscripts/jobex
i:
turbo_start
Turbomole ligger i /usr/local/vol/turbomole
Storlek:
$ fs listquota
Volume
Name
Quota Used %Used
Partition
rs_aix43.L.turbomole
350000
2
0% 86%
Access till katalogen:
$ fs listacl
Access list for . is
Normal rights:
teoema:turbomole rl
system:administrators rlidwka
teoema rlidwka
Emma, 9/12-00
Parallel Turbomole at HPC2N
Logga in med (but change teoema to your user id)
#!/bin/sh
/teo/emma/kerberos/kauth teoema@hpc2n.umu.se
/teo/emma/kerberos/rxtelnet -t -x -l teoema
knut.hpc2n.umu.se
Kör: "exec dce_login teoema"
(för användare teoema)
Lägg filerna till beräkningen du vill köra i katalogen "pfs".
Flytta dit dem från signe med "scp".
Följande rader ska finnas i profilen:
export TURBODIR=/home/lu/teoema/Turbomole/Turbo5.3
export TURBO_ARCH=rs6000-ibm-aix4.3_mpi
export PARA_ARCH=MPI
export
PATH="$PATH":"$TURBODIR"/bin/"$TURBO_ARCH":"$TURBODIR"/scripts:"$TURBODIR"/parscripts:"$TURBODIR"/makelib:$HOME:$HOME/bin
Kör "spget" för att kunna köra "turbo_start" och "turbo_start
-batch_prepare". Kör dem på samma sätt som på PDC (se ovan). Man
bör inte starta jobb i det shell som startas av spget.
Använd t.ex. följande submit-skript för att starta beräkningen:
#!/bin/sh
#
# where to save stdout output of the program
# @ output = ~/pfs/$(jobid).o
# where to save stderr output of the program
# @ error = ~/pfs/$(jobid).e
# @ job_type = parallel
# @ initialdir = ~/pfs/H2O
# If you remove the following line, an email will be sent
# to you when the your job is completed
# number of processors
# @ min_processors = 6
# @ class = day
# @ wall_clock_limit = 0:15:0
# @ queue
# Run the program without options
~/pfs/H2O/skript
Jag tror inte att man behöver ange någon "class" längre.
~/pfs/H2O/skript kan se ut på följande vis för en
geometrioptimering på 6 noder.
#!/bin/bash
export TURBODIR=/home/lu/teoema/Turbomole/Turbo5.3
export TURBO_ARCH=rs6000-ibm-aix4.3_mpi
export PARA_ARCH=MPI
export
PATH="$PATH":"$TURBODIR"/bin/"$TURBO_ARCH":"$TURBODIR"/scripts:"$TURBODIR
"/parscripts:"$TURBODIR"/makelib
export MP_HOSTFILE=$SP_HOSTLIST
export MP_PROCS=$SP_PROCS
export MP_EUILIB=us
export MP_EUIDEVICE=css0
start_ll 6
Vill man köra en dscf i stället skriver man "turbo_start -batch"
i stället för "start_ll 6". För att starta beräkningen skriver man
"llsubmit submit-skript".
Användbara kommando:
"showq" -visar kön
"llq -l jobb_nr" -visar en massa info om jobbet
Se också http://www.hpc2n.umu.se/support/index.html
Emma 10/10 -01
Installation av
Turbomole 5.3 på HPC2N
För att det ska fungera har jag
ändrat:
dir=`$TURBODIR/makelib/sysname' (ursprungligen)
dir=`$TURBODIR/scripts/sysname` (på pdc)
dir="rs6000-ibm-aix4.3_mpi" ( på hpc2n)
i filerna i parscripts.
Anledningen till att detta måste ändras är: "Vad som händer är
att ditt job startas från knut, som är PowerPC, men körs på
noderna som är Power2. turbo_start försöker vara smart och ta reda
på vilken arkitektur du kör på och hittar då PowerPC, vilket då
blir fel, innan den kör poe ut på noden."
I övrigt fungerar allt som i Stockholm.
Emma 27/11 2000
Visualisation
Use gOpenMol - it works
excellently
Old:
1) the latest version has a turbo2molden program. Just
ask the Ahlrichs group about it.
2) Also, you can use gopenmol which has some small pearl script
programs to convert moloch grid.dat files. (That's what I
prefer)
3) Finally, there is viewmol (ver. 2) from Joerg-Ruediger Hill.
CCL 30 May 2001 11:15:5
Release Notes of Turbomole 5.9
a) Methods
- RI-J for Hartree-Fock and DFT hybrid functionals:
- ridft and rdgrad have been extended to run HF and
hybrid functional calculations with RI-J
- RI-JK:
- Gradients implemented
- DFT hybrid functional calculations enabled
- aoforce has been greatly enhanced an extended:
- Analytical harmonic vibrational frequencies are available for
calculations with basis sets containing up to g functions
- ECPs up to g projectors can be used with aoforce
- RI-CC2/RI-MP2:
- Parallel version for ground and excited state gradients
- Gradients for excited states at ADC(2) and CIS(D_infinity) level
- MD:
- Finite temperature canonical Born-Oppenheimer molecular dynamics
using Nosé-Hoover thermostat
- Properties:
- NPA (Weinhold's Natural Population Analysis) implemented
- STATPT:
- New, improved, and automated optimization method for minima and
transition structures
- Includes now GDIIS method
- Improved redundant coordinates definition
- Automatic recalculation of internal coordinates in a case where
conversion from internal to Cartesian coordinates does not converge
- Improved overall stability of optimization process
- RI-MP2-R12:
- Single-point explicitly-correlated RI-MP2-R12 energies for closed- and
open-shell systems. A spin-unrestricted RI-MP2-R12 correlation energy
can be computed for UHF, RHF, and ROHF reference states
- BSSE:
- Geometry optimizations can be carried out within the framework of the
full function-counterpoise method to avoid basis-set superposition
errors (BSSE)
New features in Turbomole 5.7 include:
- Effective core potentials supporting basis sets with high
l-quantum numbers
- Improved analytic second derivative calculations (for basis
sets with up to d functions)
- Excitation energies for the algebraic diagrammatic
construction through second order ADC(2)
- Visualization of ground and excited state densities and
differential densities
- RI-J approximation for excited state properties, geometry
optimizations, and (numerical) force constant calculations
using TDDFT
- Analytical gradients for multipole accelerated RI-J (MARIJ)
- TPSS and TPSSH meta-GGA functionals (energies and
gradients), including RI-J
- Gradients for the optimization of auxiliary basis functions
for RI-MP2 and RI-CC2 calculations
- Basis sets of quadruple zeta valence quality for atoms H-Kr
- Improved transition state optimization; new optimizer for
ground states (alternative to relax)
- Spin-unrestriced exact exchange methods using the LHF
approximation
- Various other improvements, including a better
documentation
New features in version 5.6:
- Excited state properties, geometry optimization, and
(numerical) force constant calculations using TDDFT, CIS, and
RPA
- RI-CC2 one-electron properties for ground and excited
states, ground geometry optimization and force constant
calculations (using numerical a hessian)
- Improved analytic second derivative calculations (including
partial use of the RI approximation)
- Direct iterative methods for computing the lowest
vibrational modes of a molecule
- Efficient calculation of optical rotations using TDDFT
- "O(N)-RIDFT" using the multipole accelerated RI-J
approximation
- Occupation number optimization using (pseudo-Fermi) thermal
smearing
- RI-JK approximation for Hartree-Fock including highly
accurate optimized auxiliary basis set
- better interfaces to graphics programs
The most interesting new features in version 5.5 are
- transition-state optimisation
- dft frequencies
- open-shell COSMO calculations
- COSMO gradients
The most interesting new feature in
version 5.3 is the posibility to run optimisations in redundant
internal coordinates. This is done by command ired in the geometry menu of
define.
Check that you get in the control file:
$optimize
internal on
redundant
on
Statpt (obsolete)
You can now run transition states with turbomole 5.7
run command " jobex -statpt "
this makes it use the statpt module instead of relax.
In the control file add keywords for $stp or do so in define in the last menu
itrvec should be 1 (or higher) for transition states
Do NOT use the LES method to get an approximate Hessian if working
with porphyrin models, it won't
work. I haven't tried it on other systems.
turbomole manual - the parts about statpt
http://www.ipc.uni-karlsruhe.de/tch/tch1/MANUAL/node57.html
http://www.ipc.uni-karlsruhe.de/tch/tch1/MANUAL/node87.html
http://www.ipc.uni-karlsruhe.de/tch/tch1/MANUAL/node239.html#statptkw
/Patrik 7/6-05
To do for a new
version of Turbomole
Before copying to the batch
mashines.
- Update jobex with -backup (do this in scripts/jobex after
cp jobex jobex-orig
- Insert just after stepgrep
# UR Copy files from
local to global disk
backup() {
if [ "$backup"
= "y" ]
then
cp -p * $PBS_O_WORKDIR
fi
}
- Insert after
"-ri" |
"ri") ri="y" ;;
"-backup" | "backup") backup="y" ;;
- Insert after fi; inc_counter (third
last row in routine checkconv)
backup
- Update comqum and comqumx.
Search old comqum file for comqum and molmec (or make xdiff).
14 blocks of data are add
- ed or changed. (17 compared to
jobex_orig)
- Update jobexe and comqume the same way (look for cqe; only
on 2 or 4 places).
- No longer used: comqumn is not updated
comqum510_2qm is not updated
- No longer needed: Update basen (copy our basis sets from the
beginning of the old files (h, c, n, o, mg, p, s, cl, ca, mn,
fe, co, ni, cu, zn, se, cd; 17 in total)
- No longer needed: Update jbasen (same 17 files)
Efficiency test on Aurora
Nov-20
Nitrogenase model with 175 atoms
Jobex
Conclusion:
SMP better than MPI
exclusive not needed (actually worse)
18.5 speed-up on 20 nodes (0.92 efficiency)
Smp |
h for 200 it or it after 168 h |
time/it |
speed up |
efficiency |
|
20 |
70 |
0.35 |
18.5 |
0.92 |
Exclusive |
20 |
70 |
0.35 |
18.5 |
0.92 |
|
15 |
92 |
0.46 |
14.0 |
0.94 |
|
10 |
134 |
0.67 |
9.6 |
0.96 |
|
5 |
135 |
1.24 |
5.2 |
1.04 |
|
4 |
103 |
1.63 |
4.0 |
0.99 |
|
2 |
52 |
3.23 |
2.0 |
1.00 |
|
1 |
26 |
6.46 |
1.0 |
1.00 |
|
Mpi |
|
|
|
|
|
20 |
82 |
0.41 |
15.8 |
0.79 |
Exclusive |
20 |
82 |
0.41 |
15.8 |
0.79 |
faster |
« on: July 13, 2020, 06:51:56 PM »
From https://forum.turbomole.org/index.php/topic,1205.0.html
Dear Turbomole Users
Turbomole 7.5 has been linked against an (development) version of LibXC
5.0.0. Since this version 2nd derivatives have been added for many
functionals, allowing TD-DFT or vibrational frequency calculations with
nearly all functionals included in the LibXC library. Furthermore for
many functionals 3rd derivatives have been included for excited state
optimizations or hyperpolarizabilites etc. using egrad and escf.
Other changes and advances (list probably not complete)
- Nearly all modules have been interfaced to the LibXC library.
- For
some range-separated functionals "_own" versions (cam-b3lyp_own;
wpbe_own etc) have been implemented to allow for IP-tuning by changing
the range-separation paramter (and in some cases also alpha and beta).
- The VV10 correction has been added to the Interface, allowing the use of popular functionals as wB97M-V.
- The dispersion correction of wB97X-D has been added to allow for energy, gradients, and frequencies of this functional.
We placed a few shortcuts for popular functions from the LibXC, however
if you favorite functional is not among the shortcuts you may simply it
via its number code. Usage (see manual for more detailed description):
# functional consists of a single exchange-correlation functional
$dft
functional libxc 123
# functional consists of an exchange and a separate correlation functional
$dft
functional libxc 123
functional libxc add 1 124
# note that generally the exchange functional must be used as
first/primary functional if it includes information concerning the
Hartree-Fock (exact) exchange. Furthermore separate exchange and
correlation functionals must belong to the same family (e.g. GGA). The
only exception from this rule at the moment is the case of a metaGGA as
the primary exchange functional, which then can also be paired with a
GGA or LDA functional. Note that we will lift this limitation in the
next version, though there is probably a very small number of cases were
this might be relevant.
Simply replace 123 by the corresponding number from the following list:
XC_LDA_X = 1 ! Exchange
XC_LDA_C_WIGNER = 2 ! Wigner parametrization
XC_LDA_C_RPA = 3 ! Random Phase Approximation
XC_LDA_C_HL = 4 ! Hedin & Lundqvist
XC_LDA_C_GL = 5 ! Gunnarson & Lundqvist
XC_LDA_C_XALPHA = 6 ! Slater Xalpha
XC_LDA_C_VWN = 7 ! Vosko, Wilk, & Nusair (5)
XC_LDA_C_VWN_RPA = 8 ! Vosko, Wilk, & Nusair (RPA)
XC_LDA_C_PZ = 9 ! Perdew & Zunger
XC_LDA_C_PZ_MOD = 10 ! Perdew & Zunger (Modified)
XC_LDA_C_OB_PZ = 11 ! Ortiz & Ballone (PZ)
XC_LDA_C_PW = 12 ! Perdew & Wang
XC_LDA_C_PW_MOD = 13 ! Perdew & Wang (Modified)
XC_LDA_C_OB_PW = 14 ! Ortiz & Ballone (PW)
XC_LDA_C_2D_AMGB = 15 ! Attaccalite et al
XC_LDA_C_2D_PRM = 16 ! Pittalis, Rasanen & Marques correlation in 2D
XC_LDA_C_VBH = 17 ! von Barth & Hedin
XC_LDA_C_1D_CSC = 18 ! Casula, Sorella, and Senatore 1D correlation
XC_LDA_X_2D = 19 ! Exchange in 2D
XC_LDA_XC_TETER93 = 20 ! Teter 93 parametrization
XC_LDA_X_1D_SOFT = 21 ! Exchange in 1D for a soft-Coulomb interaction
XC_LDA_C_ML1 = 22 ! Modified LSD (version 1) of Proynov and Salahub
XC_LDA_C_ML2 = 23 ! Modified LSD (version 2) of Proynov and Salahub
XC_LDA_C_GOMBAS = 24 ! Gombas parametrization
XC_LDA_C_PW_RPA = 25 ! Perdew & Wang fit of the RPA
XC_LDA_C_1D_LOOS = 26 ! P-F Loos correlation LDA
XC_LDA_C_RC04 = 27 ! Ragot-Cortona
XC_LDA_C_VWN_1 = 28 ! Vosko, Wilk, & Nusair (1)
XC_LDA_C_VWN_2 = 29 ! Vosko, Wilk, & Nusair (2)
XC_LDA_C_VWN_3 = 30 ! Vosko, Wilk, & Nusair (3)
XC_LDA_C_VWN_4 = 31 ! Vosko, Wilk, & Nusair (4)
XC_LDA_XC_ZLP = 43 ! Zhao, Levy & Parr, Eq. (20)
XC_LDA_K_TF = 50 ! Thomas-Fermi kinetic energy functional
XC_LDA_K_LP = 51 ! Lee and Parr Gaussian ansatz
XC_LDA_XC_KSDT = 259 ! Karasiev et al. parametrization
XC_LDA_C_CHACHIYO = 287 ! Chachiyo simple 2 parameter correlation
XC_LDA_C_LP96 = 289 ! Liu-Parr correlation
XC_LDA_C_CHACHIYO_MOD = 307 ! Chachiyo simple 2 parameter correlation with modified scaling
XC_LDA_C_KARASIEV_MOD = 308 ! Karasiev reparameterization of Chachiyo with modified scaling
XC_LDA_X_REL = 532 ! Relativistic exchange
XC_LDA_XC_1D_EHWLRG_1 = 536 ! LDA constructed from slab-like systems of 1 electron
XC_LDA_XC_1D_EHWLRG_2 = 537 ! LDA constructed from slab-like systems of 2 electrons
XC_LDA_XC_1D_EHWLRG_3 = 538 ! LDA constructed from slab-like systems of 3 electrons
XC_LDA_X_ERF = 546 ! Attenuated exchange LDA (erf)
XC_LDA_XC_LP_A = 547 ! Lee-Parr reparametrization B
XC_LDA_XC_LP_B = 548 ! Lee-Parr reparametrization B
XC_LDA_X_RAE = 549 ! Rae self-energy corrected exchange
XC_LDA_K_ZLP = 550 ! kinetic energy version of ZLP
XC_LDA_C_MCWEENY = 551 ! McWeeny 76
XC_LDA_C_BR78 = 552 ! Brual & Rothstein 78
XC_LDA_C_PK09 = 554 ! Proynov and Kong 2009
XC_LDA_C_OW_LYP = 573 ! Wigner with corresponding LYP parameters
XC_LDA_C_OW = 574 ! Optimized Wigner
XC_LDA_XC_GDSMFB = 577 ! Groth et al. parametrization
XC_LDA_C_GK72 = 578 ! Gordon and Kim 1972
XC_LDA_C_KARASIEV = 579 ! Karasiev reparameterization of Chachiyo
XC_LDA_K_LP96 = 580 ! Liu-Parr kinetic
XC_LDA_XC_BN05 = 588 ! Baer and Neuhauser, gamma=1
XC_LDA_C_PMGB06 = 590 ! Long-range LDA correlation functional
XC_LDA_XC_TIH = 599 ! Neural network LDA from Tozer et al
XC_LDA_X_1D_EXPONENTIAL = 600 ! Exchange in 1D for an exponentially screened interaction
XC_LDA_C_UPW92 = 683 ! Ruggeri, Rios, and Alavi unrestricted fit
XC_LDA_C_RPW92 = 684 ! Ruggeri, Rios, and Alavi restricted fit
XC_LDA_X_SLOC = 692 ! simple local model for Slater potential
XC_HYB_LDA_XC_LDA0 = 177 ! LDA0: hybrid LDA exchange
XC_HYB_LDA_XC_CAM_LDA0 = 178 ! CAM version of LDA0
XC_GGA_X_GAM = 32 ! GAM functional from Minnesota
XC_GGA_C_GAM = 33 ! GAM functional from Minnesota
XC_GGA_X_HCTH_A = 34 ! HCTH-A
XC_GGA_X_EV93 = 35 ! Engel and Vosko
XC_GGA_X_BCGP = 38 ! Burke, Cancio, Gould, and Pittalis
XC_GGA_C_ACGGA = 39 ! acGGA, asymptotically corrected GGA
XC_GGA_X_LAMBDA_OC2_N = 40 ! lambda_OC2(N) version of PBE
XC_GGA_X_B86_R = 41 ! Revised Becke 86 Xalpha,beta,gamma (with mod. grad. correction)
XC_GGA_X_LAMBDA_CH_N = 44 ! lambda_CH(N) version of PBE
XC_GGA_X_LAMBDA_LO_N = 45 ! lambda_LO(N) version of PBE
XC_GGA_X_HJS_B88_V2 = 46 ! HJS screened exchange corrected B88 version
XC_GGA_C_Q2D = 47 ! Chiodo et al
XC_GGA_X_Q2D = 48 ! Chiodo et al
XC_GGA_X_PBE_MOL = 49 ! Del Campo, Gazquez, Trickey and Vela (PBE-like)
XC_GGA_K_TFVW = 52 ! Thomas-Fermi plus von Weiszaecker correction
XC_GGA_K_REVAPBEINT = 53 ! interpolated version of REVAPBE
XC_GGA_K_APBEINT = 54 ! interpolated version of APBE
XC_GGA_K_REVAPBE = 55 ! revised APBE
XC_GGA_X_AK13 = 56 ! Armiento & Kuemmel 2013
XC_GGA_K_MEYER = 57 ! Meyer, Wang, and Young
XC_GGA_X_LV_RPW86 = 58 ! Berland and Hyldgaard
XC_GGA_X_PBE_TCA = 59 ! PBE revised by Tognetti et al
XC_GGA_X_PBEINT = 60 ! PBE for hybrid interfaces
XC_GGA_C_ZPBEINT = 61 ! spin-dependent gradient correction to PBEint
XC_GGA_C_PBEINT = 62 ! PBE for hybrid interfaces
XC_GGA_C_ZPBESOL = 63 ! spin-dependent gradient correction to PBEsol
XC_GGA_XC_OPBE_D = 65 ! oPBE_D functional of Goerigk and Grimme
XC_GGA_XC_OPWLYP_D = 66 ! oPWLYP-D functional of Goerigk and Grimme
XC_GGA_XC_OBLYP_D = 67 ! BLYP-D functional of Goerigk and Grimme
XC_GGA_X_VMT84_GE = 68 ! VMT{8,4} with constraint satisfaction with mu = mu_GE
XC_GGA_X_VMT84_PBE = 69 ! VMT{8,4} with constraint satisfaction with mu = mu_PBE
XC_GGA_X_VMT_GE = 70 ! Vela, Medel, and Trickey with mu = mu_GE
XC_GGA_X_VMT_PBE = 71 ! Vela, Medel, and Trickey with mu = mu_PBE
XC_GGA_C_N12_SX = 79 ! N12-SX functional from Minnesota
XC_GGA_C_N12 = 80 ! N12 functional from Minnesota
XC_GGA_X_N12 = 82 ! N12 functional from Minnesota
XC_GGA_C_REGTPSS = 83 ! Regularized TPSS correlation (ex-VPBE)
XC_GGA_C_OP_XALPHA = 84 ! one-parameter progressive functional (XALPHA version)
XC_GGA_C_OP_G96 = 85 ! one-parameter progressive functional (G96 version)
XC_GGA_C_OP_PBE = 86 ! one-parameter progressive functional (PBE version)
XC_GGA_C_OP_B88 = 87 ! one-parameter progressive functional (B88 version)
XC_GGA_C_FT97 = 88 ! Filatov & Thiel correlation
XC_GGA_C_SPBE = 89 ! PBE correlation to be used with the SSB exchange
XC_GGA_X_SSB_SW = 90 ! Swart, Sola and Bickelhaupt correction to PBE
XC_GGA_X_SSB = 91 ! Swart, Sola and Bickelhaupt
XC_GGA_X_SSB_D = 92 ! Swart, Sola and Bickelhaupt dispersion
XC_GGA_XC_HCTH_407P = 93 ! HCTH/407+
XC_GGA_XC_HCTH_P76 = 94 ! HCTH p=7/6
XC_GGA_XC_HCTH_P14 = 95 ! HCTH p=1/4
XC_GGA_XC_B97_GGA1 = 96 ! Becke 97 GGA-1
XC_GGA_C_HCTH_A = 97 ! HCTH-A
XC_GGA_X_BPCCAC = 98 ! BPCCAC (GRAC for the energy)
XC_GGA_C_REVTCA = 99 ! Tognetti, Cortona, Adamo (revised)
XC_GGA_C_TCA = 100 ! Tognetti, Cortona, Adamo
XC_GGA_X_PBE = 101 ! Perdew, Burke & Ernzerhof exchange
XC_GGA_X_PBE_R = 102 ! Perdew, Burke & Ernzerhof exchange (revised)
XC_GGA_X_B86 = 103 ! Becke 86 Xalpha,beta,gamma
XC_GGA_X_HERMAN = 104 ! Herman et al original GGA
XC_GGA_X_B86_MGC = 105 ! Becke 86 Xalpha,beta,gamma (with mod. grad. correction)
XC_GGA_X_B88 = 106 ! Becke 88
XC_GGA_X_G96 = 107 ! Gill 96
XC_GGA_X_PW86 = 108 ! Perdew & Wang 86
XC_GGA_X_PW91 = 109 ! Perdew & Wang 91
XC_GGA_X_OPTX = 110 ! Handy & Cohen OPTX 01
XC_GGA_X_DK87_R1 = 111 ! dePristo & Kress 87 (version R1)
XC_GGA_X_DK87_R2 = 112 ! dePristo & Kress 87 (version R2)
XC_GGA_X_LG93 = 113 ! Lacks & Gordon 93
XC_GGA_X_FT97_A = 114 ! Filatov & Thiel 97 (version A)
XC_GGA_X_FT97_B = 115 ! Filatov & Thiel 97 (version B)
XC_GGA_X_PBE_SOL = 116 ! Perdew, Burke & Ernzerhof exchange (solids)
XC_GGA_X_RPBE = 117 ! Hammer, Hansen & Norskov (PBE-like)
XC_GGA_X_WC = 118 ! Wu & Cohen
XC_GGA_X_MPW91 = 119 ! Modified form of PW91 by Adamo & Barone
XC_GGA_X_AM05 = 120 ! Armiento & Mattsson 05 exchange
XC_GGA_X_PBEA = 121 ! Madsen (PBE-like)
XC_GGA_X_MPBE = 122 ! Adamo & Barone modification to PBE
XC_GGA_X_XPBE = 123 ! xPBE reparametrization by Xu & Goddard
XC_GGA_X_2D_B86_MGC = 124 ! Becke 86 MGC for 2D systems
XC_GGA_X_BAYESIAN = 125 ! Bayesian best fit for the enhancement factor
XC_GGA_X_PBE_JSJR = 126 ! JSJR reparametrization by Pedroza, Silva & Capelle
XC_GGA_X_2D_B88 = 127 ! Becke 88 in 2D
XC_GGA_X_2D_B86 = 128 ! Becke 86 Xalpha, beta, gamma
XC_GGA_X_2D_PBE = 129 ! Perdew, Burke & Ernzerhof exchange in 2D
XC_GGA_C_PBE = 130 ! Perdew, Burke & Ernzerhof correlation
XC_GGA_C_LYP = 131 ! Lee, Yang & Parr
XC_GGA_C_P86 = 132 ! Perdew 86
XC_GGA_C_PBE_SOL = 133 ! Perdew, Burke & Ernzerhof correlation SOL
XC_GGA_C_PW91 = 134 ! Perdew & Wang 91
XC_GGA_C_AM05 = 135 ! Armiento & Mattsson 05 correlation
XC_GGA_C_XPBE = 136 ! xPBE reparametrization by Xu & Goddard
XC_GGA_C_LM = 137 ! Langreth and Mehl correlation
XC_GGA_C_PBE_JRGX = 138 ! JRGX reparametrization by Pedroza, Silva & Capelle
XC_GGA_X_OPTB88_VDW = 139 ! Becke 88 reoptimized to be used with vdW functional of Dion et al
XC_GGA_X_PBEK1_VDW = 140 ! PBE reparametrization for vdW
XC_GGA_X_OPTPBE_VDW = 141 ! PBE reparametrization for vdW
XC_GGA_X_RGE2 = 142 ! Regularized PBE
XC_GGA_C_RGE2 = 143 ! Regularized PBE
XC_GGA_X_RPW86 = 144 ! refitted Perdew & Wang 86
XC_GGA_X_KT1 = 145 ! Exchange part of Keal and Tozer version 1
XC_GGA_XC_KT2 = 146 ! Keal and Tozer version 2
XC_GGA_C_WL = 147 ! Wilson & Levy
XC_GGA_C_WI = 148 ! Wilson & Ivanov
XC_GGA_X_MB88 = 149 ! Modified Becke 88 for proton transfer
XC_GGA_X_SOGGA = 150 ! Second-order generalized gradient approximation
XC_GGA_X_SOGGA11 = 151 ! Second-order generalized gradient approximation 2011
XC_GGA_C_SOGGA11 = 152 ! Second-order generalized gradient approximation 2011
XC_GGA_C_WI0 = 153 ! Wilson & Ivanov initial version
XC_GGA_XC_TH1 = 154 ! Tozer and Handy v. 1
XC_GGA_XC_TH2 = 155 ! Tozer and Handy v. 2
XC_GGA_XC_TH3 = 156 ! Tozer and Handy v. 3
XC_GGA_XC_TH4 = 157 ! Tozer and Handy v. 4
XC_GGA_X_C09X = 158 ! C09x to be used with the VdW of Rutgers-Chalmers
XC_GGA_C_SOGGA11_X = 159 ! To be used with HYB_GGA_X_SOGGA11_X
XC_GGA_X_LB = 160 ! van Leeuwen & Baerends
XC_GGA_XC_HCTH_93 = 161 ! HCTH functional fitted to 93 molecules
XC_GGA_XC_HCTH_120 = 162 ! HCTH functional fitted to 120 molecules
XC_GGA_XC_HCTH_147 = 163 ! HCTH functional fitted to 147 molecules
XC_GGA_XC_HCTH_407 = 164 ! HCTH functional fitted to 407 molecules
XC_GGA_XC_EDF1 = 165 ! Empirical functionals from Adamson, Gill, and Pople
XC_GGA_XC_XLYP = 166 ! XLYP functional
XC_GGA_XC_KT1 = 167 ! Keal and Tozer version 1
XC_GGA_X_LSPBE = 168 ! PW91-like exchange with simple analytical form
XC_GGA_X_LSRPBE = 169 ! PW91-like modification of RPBE
XC_GGA_XC_B97_D = 170 ! Grimme functional to be used with C6 vdW term
XC_GGA_X_OPTB86B_VDW = 171 ! Becke 86 reoptimized for use with vdW functional of Dion et al
XC_GGA_XC_PBE1W = 173 ! Functionals fitted for water
XC_GGA_XC_MPWLYP1W = 174 ! Functionals fitted for water
XC_GGA_XC_PBELYP1W = 175 ! Functionals fitted for water
XC_GGA_C_ACGGAP = 176 ! Asymptotically corrected GGA +
XC_GGA_X_B88_6311G = 179 ! Becke 88 reoptimized with 6-311G** basis set
XC_GGA_X_NCAP = 180 ! Nearly correct asymptotic potential
XC_GGA_XC_NCAP = 181 ! Nearly correct asymptotic potential + P86 correlation
XC_GGA_X_LBM = 182 ! van Leeuwen & Baerends modified
XC_GGA_X_OL2 = 183 ! Exchange form based on Ou-Yang and Levy v.2
XC_GGA_X_APBE = 184 ! mu fixed from the semiclassical neutral atom
XC_GGA_K_APBE = 185 ! mu fixed from the semiclassical neutral atom
XC_GGA_C_APBE = 186 ! mu fixed from the semiclassical neutral atom
XC_GGA_K_TW1 = 187 ! Tran and Wesolowski set 1 (Table II)
XC_GGA_K_TW2 = 188 ! Tran and Wesolowski set 2 (Table II)
XC_GGA_K_TW3 = 189 ! Tran and Wesolowski set 3 (Table II)
XC_GGA_K_TW4 = 190 ! Tran and Wesolowski set 4 (Table II)
XC_GGA_X_HTBS = 191 ! Haas, Tran, Blaha, and Schwarz
XC_GGA_X_AIRY = 192 ! Constantin et al based on the Airy gas
XC_GGA_X_LAG = 193 ! Local Airy Gas
XC_GGA_XC_MOHLYP = 194 ! Functional for organometallic chemistry
XC_GGA_XC_MOHLYP2 = 195 ! Functional for barrier heights
XC_GGA_XC_TH_FL = 196 ! Tozer and Handy v. FL
XC_GGA_XC_TH_FC = 197 ! Tozer and Handy v. FC
XC_GGA_XC_TH_FCFO = 198 ! Tozer and Handy v. FCFO
XC_GGA_XC_TH_FCO = 199 ! Tozer and Handy v. FCO
XC_GGA_C_OPTC = 200 ! Optimized correlation functional of Cohen and Handy
XC_GGA_X_ECMV92 = 215 ! Engel, Chevary, Macdonald, and Vosko
XC_GGA_C_PBE_VWN = 216 ! Perdew, Burke & Ernzerhof correlation based on VWN LDA
XC_GGA_C_PBELOC = 246 ! Semilocal dynamical correlation
XC_GGA_XC_VV10 = 255 ! Vydrov and Van Voorhis
XC_GGA_C_PBEFE = 258 ! PBE for formation energies
XC_GGA_C_OP_PW91 = 262 ! one-parameter progressive functional (PW91 version)
XC_GGA_X_PBEFE = 265 ! PBE for formation energies
XC_GGA_X_CAP = 270 ! Correct Asymptotic Potential
XC_GGA_X_EB88 = 271 ! Non-empirical (excogitated) B88 functional of Becke and Elliott
XC_GGA_C_PBE_MOL = 272 ! Del Campo, Gazquez, Trickey and Vela (PBE-like)
XC_GGA_K_ABSP3 = 277 ! gamma-TFvW form by Acharya et al [g = 1 - 1.513/N^0.35]
XC_GGA_K_ABSP4 = 278 ! gamma-TFvW form by Acharya et al [g = l = 1/(1 + 1.332/N^(1/3))]
XC_GGA_C_BMK = 280 ! Boese-Martin for kinetics
XC_GGA_C_TAU_HCTH = 281 ! correlation part of tau-hcth
XC_GGA_C_HYB_TAU_HCTH = 283 ! correlation part of hyb_tau-hcth
XC_GGA_X_BEEFVDW = 285 ! BEEF-vdW exchange
XC_GGA_XC_BEEFVDW = 286 ! BEEF-vdW exchange-correlation
XC_GGA_X_PBETRANS = 291 ! Gradient-based interpolation between PBE and revPBE
XC_GGA_X_CHACHIYO = 298 ! Chachiyo exchange
XC_GGA_C_CHACHIYO = 309 ! Chachiyo simple GGA correlation
XC_GGA_K_VW = 500 ! von Weiszaecker functional
XC_GGA_K_GE2 = 501 ! Second-order gradient expansion (l = 1/9)
XC_GGA_K_GOLDEN = 502 ! TF-lambda-vW form by Golden (l = 13/45)
XC_GGA_K_YT65 = 503 ! TF-lambda-vW form by Yonei and Tomishima (l = 1/5)
XC_GGA_K_BALTIN = 504 ! TF-lambda-vW form by Baltin (l = 5/9)
XC_GGA_K_LIEB = 505 ! TF-lambda-vW form by Lieb (l = 0.185909191)
XC_GGA_K_ABSP1 = 506 ! gamma-TFvW form by Acharya et al [g = 1 - 1.412/N^(1/3)]
XC_GGA_K_ABSP2 = 507 ! gamma-TFvW form by Acharya et al [g = 1 - 1.332/N^(1/3)]
XC_GGA_K_GR = 508 ! gamma-TFvW form by Gazquez and Robles
XC_GGA_K_LUDENA = 509 ! gamma-TFvW form by Ludena
XC_GGA_K_GP85 = 510 ! gamma-TFvW form by Ghosh and Parr
XC_GGA_K_PEARSON = 511 ! Pearson
XC_GGA_K_OL1 = 512 ! Ou-Yang and Levy v.1
XC_GGA_K_OL2 = 513 ! Ou-Yang and Levy v.2
XC_GGA_K_FR_B88 = 514 ! Fuentealba & Reyes (B88 version)
XC_GGA_K_FR_PW86 = 515 ! Fuentealba & Reyes (PW86 version)
XC_GGA_K_DK = 516 ! DePristo and Kress
XC_GGA_K_PERDEW = 517 ! Perdew
XC_GGA_K_VSK = 518 ! Vitos, Skriver, and Kollar
XC_GGA_K_VJKS = 519 ! Vitos, Johansson, Kollar, and Skriver
XC_GGA_K_ERNZERHOF = 520 ! Ernzerhof
XC_GGA_K_LC94 = 521 ! Lembarki & Chermette
XC_GGA_K_LLP = 522 ! Lee, Lee & Parr
XC_GGA_K_THAKKAR = 523 ! Thakkar 1992
XC_GGA_X_WPBEH = 524 ! short-range version of the PBE
XC_GGA_X_HJS_PBE = 525 ! HJS screened exchange PBE version
XC_GGA_X_HJS_PBE_SOL = 526 ! HJS screened exchange PBE_SOL version
XC_GGA_X_HJS_B88 = 527 ! HJS screened exchange B88 version
XC_GGA_X_HJS_B97X = 528 ! HJS screened exchange B97x version
XC_GGA_X_ITYH = 529 ! short-range recipe B88 functionals - erf
XC_GGA_X_SFAT = 530 ! short-range recipe for PBE functional
XC_GGA_X_SG4 = 533 ! Semiclassical GGA at fourth order
XC_GGA_C_SG4 = 534 ! Semiclassical GGA at fourth order
XC_GGA_X_GG99 = 535 ! Gilbert and Gill 1999
XC_GGA_X_PBEPOW = 539 ! PBE power
XC_GGA_X_KGG99 = 544 ! Gilbert and Gill 1999 (mixed)
XC_GGA_XC_HLE16 = 545 ! high local exchange 2016
XC_GGA_C_SCAN_E0 = 553 ! GGA component of SCAN
XC_GGA_C_GAPC = 555 ! GapC
XC_GGA_C_GAPLOC = 556 ! Gaploc
XC_GGA_C_ZVPBEINT = 557 ! another spin-dependent correction to PBEint
XC_GGA_C_ZVPBESOL = 558 ! another spin-dependent correction to PBEsol
XC_GGA_C_TM_LYP = 559 ! Takkar and McCarthy reparametrization
XC_GGA_C_TM_PBE = 560 ! Thakkar and McCarthy reparametrization
XC_GGA_C_W94 = 561 ! Wilson 94 (Eq. 25)
XC_GGA_C_CS1 = 565 ! A dynamical correlation functional
XC_GGA_X_B88M = 570 ! Becke 88 reoptimized to be used with mgga_c_tau1
XC_GGA_XC_LB07 = 589 ! Livshits and Baer, empirical functional
XC_GGA_K_GDS08 = 591 ! Combined analytical theory with Monte Carlo sampling
XC_GGA_K_GHDS10 = 592 ! As GDS08 but for an electron gas with spin
XC_GGA_K_GHDS10R = 593 ! Reparametrized GHDS10
XC_GGA_K_TKVLN = 594 ! Trickey, Karasiev, and Vela
XC_GGA_K_PBE3 = 595 ! Three parameter PBE-like expansion
XC_GGA_K_PBE4 = 596 ! Four parameter PBE-like expansion
XC_GGA_K_EXP4 = 597 ! Intermediate form between PBE3 and PBE4
XC_GGA_X_SFAT_PBE = 601 ! short-range recipe for PBE functional
XC_GGA_X_FD_LB94 = 604 ! Functional derivative recovered from the stray LB94 potential
XC_GGA_X_FD_REVLB94 = 605 ! Revised FD_LB94
XC_GGA_C_ZVPBELOC = 606 ! PBEloc variation with enhanced compatibility with exact exchange
XC_HYB_GGA_X_N12_SX = 81 ! N12-SX functional from Minnesota
XC_HYB_GGA_XC_B97_1P = 266 ! version of B97 by Cohen and Handy
XC_HYB_GGA_XC_PBE_MOL0 = 273 ! PBEmol0
XC_HYB_GGA_XC_PBE_SOL0 = 274 ! PBEsol0
XC_HYB_GGA_XC_PBEB0 = 275 ! PBEbeta0
XC_HYB_GGA_XC_PBE_MOLB0 = 276 ! PBEmolbeta0
XC_HYB_GGA_XC_PBE50 = 290 ! PBE0 with 50% exx
XC_HYB_GGA_XC_LC_BLYP = 400 ! Long-range corrected BLYP
XC_HYB_GGA_XC_B3PW91 = 401 ! The original (ACM) hybrid of Becke
XC_HYB_GGA_XC_B3LYP = 402 ! The (in)famous B3LYP
XC_HYB_GGA_XC_B3P86 = 403 ! Perdew 86 hybrid similar to B3PW91
XC_HYB_GGA_XC_O3LYP = 404 ! hybrid using the optx functional
XC_HYB_GGA_XC_MPW1K = 405 ! mixture of mPW91 and PW91 optimized for kinetics
XC_HYB_GGA_XC_PBEH = 406 ! aka PBE0 or PBE1PBE
XC_HYB_GGA_XC_B97 = 407 ! Becke 97
XC_HYB_GGA_XC_B97_1 = 408 ! Becke 97-1
XC_HYB_GGA_XC_APF = 409 ! APF hybrid density functional
XC_HYB_GGA_XC_B97_2 = 410 ! Becke 97-2
XC_HYB_GGA_XC_X3LYP = 411 ! hybrid by Xu and Goddard
XC_HYB_GGA_XC_B1WC = 412 ! Becke 1-parameter mixture of WC and PBE
XC_HYB_GGA_XC_B97_K = 413 ! Boese-Martin for Kinetics
XC_HYB_GGA_XC_B97_3 = 414 ! Becke 97-3
XC_HYB_GGA_XC_MPW3PW = 415 ! mixture with the mPW functional
XC_HYB_GGA_XC_B1LYP = 416 ! Becke 1-parameter mixture of B88 and LYP
XC_HYB_GGA_XC_B1PW91 = 417 ! Becke 1-parameter mixture of B88 and PW91
XC_HYB_GGA_XC_MPW1PW = 418 ! Becke 1-parameter mixture of mPW91 and PW91
XC_HYB_GGA_XC_MPW3LYP = 419 ! mixture of mPW and LYP
XC_HYB_GGA_XC_SB98_1A = 420 ! Schmider-Becke 98 parameterization 1a
XC_HYB_GGA_XC_SB98_1B = 421 ! Schmider-Becke 98 parameterization 1b
XC_HYB_GGA_XC_SB98_1C = 422 ! Schmider-Becke 98 parameterization 1c
XC_HYB_GGA_XC_SB98_2A = 423 ! Schmider-Becke 98 parameterization 2a
XC_HYB_GGA_XC_SB98_2B = 424 ! Schmider-Becke 98 parameterization 2b
XC_HYB_GGA_XC_SB98_2C = 425 ! Schmider-Becke 98 parameterization 2c
XC_HYB_GGA_X_SOGGA11_X = 426 ! Hybrid based on SOGGA11 form
XC_HYB_GGA_XC_HSE03 = 427 ! the 2003 version of the screened hybrid HSE
XC_HYB_GGA_XC_HSE06 = 428 ! the 2006 version of the screened hybrid HSE
XC_HYB_GGA_XC_HJS_PBE = 429 ! HJS hybrid screened exchange PBE version
XC_HYB_GGA_XC_HJS_PBE_SOL = 430 ! HJS hybrid screened exchange PBE_SOL version
XC_HYB_GGA_XC_HJS_B88 = 431 ! HJS hybrid screened exchange B88 version
XC_HYB_GGA_XC_HJS_B97X = 432 ! HJS hybrid screened exchange B97x version
XC_HYB_GGA_XC_CAM_B3LYP = 433 ! CAM version of B3LYP
XC_HYB_GGA_XC_TUNED_CAM_B3LYP = 434 ! CAM version of B3LYP tuned for excitations
XC_HYB_GGA_XC_BHANDH = 435 ! Becke half-and-half
XC_HYB_GGA_XC_BHANDHLYP = 436 ! Becke half-and-half with B88 exchange
XC_HYB_GGA_XC_MB3LYP_RC04 = 437 ! B3LYP with RC04 LDA
XC_HYB_GGA_XC_MPWLYP1M = 453 ! MPW with 1 par. for metals/LYP
XC_HYB_GGA_XC_REVB3LYP = 454 ! Revised B3LYP
XC_HYB_GGA_XC_CAMY_BLYP = 455 ! BLYP with yukawa screening
XC_HYB_GGA_XC_PBE0_13 = 456 ! PBE0-1/3
XC_HYB_GGA_XC_B3LYPS = 459 ! B3LYP* functional
XC_HYB_GGA_XC_QTP17 = 460 ! global hybrid for vertical ionization potentials
XC_HYB_GGA_XC_B3LYP_MCM1 = 461 ! B3LYP reoptimized in 6-31+G(2df,p) for enthalpies of formation
XC_HYB_GGA_XC_B3LYP_MCM2 = 462 ! B3LYP reoptimized in 6-31+G(2df,p) for enthalpies of formation
XC_HYB_GGA_XC_WB97 = 463 ! Chai and Head-Gordon
XC_HYB_GGA_XC_WB97X = 464 ! Chai and Head-Gordon
XC_HYB_GGA_XC_LRC_WPBEH = 465 ! Long-range corrected functional by Rorhdanz et al
XC_HYB_GGA_XC_WB97X_V = 466 ! Mardirossian and Head-Gordon
XC_HYB_GGA_XC_LCY_PBE = 467 ! PBE with yukawa screening
XC_HYB_GGA_XC_LCY_BLYP = 468 ! BLYP with yukawa screening
XC_HYB_GGA_XC_LC_VV10 = 469 ! Vydrov and Van Voorhis
XC_HYB_GGA_XC_CAMY_B3LYP = 470 ! B3LYP with Yukawa screening
XC_HYB_GGA_XC_WB97X_D = 471 ! Chai and Head-Gordon
XC_HYB_GGA_XC_HPBEINT = 472 ! hPBEint
XC_HYB_GGA_XC_LRC_WPBE = 473 ! Long-range corrected functional by Rorhdanz et al
XC_HYB_GGA_XC_B3LYP5 = 475 ! B3LYP with VWN functional 5 instead of RPA
XC_HYB_GGA_XC_EDF2 = 476 ! Empirical functional from Lin, George and Gill
XC_HYB_GGA_XC_CAP0 = 477 ! Correct Asymptotic Potential hybrid
XC_HYB_GGA_XC_LC_WPBE = 478 ! Long-range corrected functional by Vydrov and Scuseria
XC_HYB_GGA_XC_HSE12 = 479 ! HSE12 by Moussa, Schultz and Chelikowsky
XC_HYB_GGA_XC_HSE12S = 480 ! Short-range HSE12 by Moussa, Schultz, and Chelikowsky
XC_HYB_GGA_XC_HSE_SOL = 481 ! HSEsol functional by Schimka, Harl, and Kresse
XC_HYB_GGA_XC_CAM_QTP_01 = 482 ! CAM-QTP-01
XC_HYB_GGA_XC_MPW1LYP = 483 ! Becke 1-parameter mixture of mPW91 and LYP
XC_HYB_GGA_XC_MPW1PBE = 484 ! Becke 1-parameter mixture of mPW91 and PBE
XC_HYB_GGA_XC_KMLYP = 485 ! Kang-Musgrave hybrid
XC_HYB_GGA_XC_LC_WPBE_WHS = 486 ! Long-range corrected functional by Weintraub, Henderson and Scuseria
XC_HYB_GGA_XC_LC_WPBEH_WHS = 487 ! Long-range corrected functional by Weintraub, Henderson and Scuseria
XC_HYB_GGA_XC_LC_WPBE08_WHS = 488 ! Long-range corrected functional by Weintraub, Henderson and Scuseria
XC_HYB_GGA_XC_LC_WPBESOL_WHS = 489 ! Long-range corrected functional by Weintraub, Henderson and Scuseria
XC_HYB_GGA_XC_CAM_QTP_00 = 490 ! CAM-QTP-00
XC_HYB_GGA_XC_CAM_QTP_02 = 491 ! CAM-QTP-02
XC_HYB_GGA_XC_LC_QTP = 492 ! LC-QTP
XC_HYB_GGA_XC_B5050LYP = 572 ! Like B3LYP but more exact exchange
XC_HYB_GGA_XC_APBE0 = 607 ! Hybrid based on APBE
XC_HYB_GGA_XC_HAPBE = 608 ! Hybrid based in APBE and zvPBEloc
XC_HYB_GGA_XC_RCAM_B3LYP = 610 ! Similar to CAM-B3LYP, but trying to reduce the many-electron self-interaction
XC_HYB_GGA_XC_WC04 = 611 ! hybrid fitted to carbon NMR shifts
XC_HYB_GGA_XC_WP04 = 612 ! hybrid fitted to proton NMR shifts
XC_HYB_GGA_XC_CAM_PBEH = 681 ! CAM version of PBEH
XC_HYB_GGA_XC_CAMY_PBEH = 682 ! PBEH with Yukawa screening
XC_MGGA_C_DLDF = 37 ! Dispersionless Density Functional
XC_MGGA_XC_ZLP = 42 ! Zhao, Levy & Parr, Eq. (21)
XC_MGGA_XC_OTPSS_D = 64 ! oTPSS_D functional of Goerigk and Grimme
XC_MGGA_C_CS = 72 ! Colle and Salvetti
XC_MGGA_C_MN12_SX = 73 ! MN12-SX correlation functional from Minnesota
XC_MGGA_C_MN12_L = 74 ! MN12-L correlation functional from Minnesota
XC_MGGA_C_M11_L = 75 ! M11-L correlation functional from Minnesota
XC_MGGA_C_M11 = 76 ! M11 correlation functional from Minnesota
XC_MGGA_C_M08_SO = 77 ! M08-SO correlation functional from Minnesota
XC_MGGA_C_M08_HX = 78 ! M08-HX correlation functional from Minnesota
XC_MGGA_C_REVM11 = 172 ! Revised M11 correlation functional from Minnesota
XC_MGGA_X_LTA = 201 ! Local tau approximation of Ernzerhof & Scuseria
XC_MGGA_X_TPSS = 202 ! Tao, Perdew, Staroverov & Scuseria exchange
XC_MGGA_X_M06_L = 203 ! M06-L exchange functional from Minnesota
XC_MGGA_X_GVT4 = 204 ! GVT4 from Van Voorhis and Scuseria
XC_MGGA_X_TAU_HCTH = 205 ! tau-HCTH from Boese and Handy
XC_MGGA_X_BR89 = 206 ! Becke-Roussel 89, gamma = 0.8
XC_MGGA_X_BJ06 = 207 ! Becke & Johnson correction to Becke-Roussel 89
XC_MGGA_X_TB09 = 208 ! Tran & Blaha correction to Becke & Johnson
XC_MGGA_X_RPP09 = 209 ! Rasanen, Pittalis, and Proetto correction to Becke & Johnson
XC_MGGA_X_2D_PRHG07 = 210 ! Pittalis, Rasanen, Helbig, Gross Exchange Functional
XC_MGGA_X_2D_PRHG07_PRP10 = 211 ! PRGH07 with PRP10 correction
XC_MGGA_X_REVTPSS = 212 ! revised Tao, Perdew, Staroverov & Scuseria exchange
XC_MGGA_X_PKZB = 213 ! Perdew, Kurth, Zupan, and Blaha
XC_MGGA_X_BR89_1 = 214 ! Becke-Roussel 89, gamma = 1.0
XC_MGGA_X_MS0 = 221 ! MS exchange of Sun, Xiao, and Ruzsinszky
XC_MGGA_X_MS1 = 222 ! MS1 exchange of Sun, et al
XC_MGGA_X_MS2 = 223 ! MS2 exchange of Sun, et al
XC_MGGA_X_M11_L = 226 ! M11-L exchange functional from Minnesota
XC_MGGA_X_MN12_L = 227 ! MN12-L exchange functional from Minnesota
XC_MGGA_XC_CC06 = 229 ! Cancio and Chou 2006
XC_MGGA_X_MK00 = 230 ! Exchange for accurate virtual orbital energies
XC_MGGA_C_TPSS = 231 ! Tao, Perdew, Staroverov & Scuseria correlation
XC_MGGA_C_VSXC = 232 ! VSxc from Van Voorhis and Scuseria (correlation part)
XC_MGGA_C_M06_L = 233 ! M06-L correlation functional from Minnesota
XC_MGGA_C_M06_HF = 234 ! M06-HF correlation functional from Minnesota
XC_MGGA_C_M06 = 235 ! M06 correlation functional from Minnesota
XC_MGGA_C_M06_2X = 236 ! M06-2X correlation functional from Minnesota
XC_MGGA_C_M05 = 237 ! M05 correlation functional from Minnesota
XC_MGGA_C_M05_2X = 238 ! M05-2X correlation functional from Minnesota
XC_MGGA_C_PKZB = 239 ! Perdew, Kurth, Zupan, and Blaha
XC_MGGA_C_BC95 = 240 ! Becke correlation 95
XC_MGGA_C_REVTPSS = 241 ! revised TPSS correlation
XC_MGGA_XC_TPSSLYP1W = 242 ! Functionals fitted for water
XC_MGGA_X_MK00B = 243 ! Exchange for accurate virtual orbital energies (v. B)
XC_MGGA_X_BLOC = 244 ! functional with balanced localization
XC_MGGA_X_MODTPSS = 245 ! Modified Tao, Perdew, Staroverov & Scuseria exchange
XC_MGGA_C_TPSSLOC = 247 ! Semilocal dynamical correlation
XC_MGGA_X_MBEEF = 249 ! mBEEF exchange
XC_MGGA_X_MBEEFVDW = 250 ! mBEEF-vdW exchange
XC_MGGA_C_TM = 251 ! Tao and Mo 2016 correlation
XC_MGGA_XC_B97M_V = 254 ! Mardirossian and Head-Gordon
XC_MGGA_X_MVS = 257 ! MVS exchange of Sun, Perdew, and Ruzsinszky
XC_MGGA_X_MN15_L = 260 ! MN15-L exhange functional from Minnesota
XC_MGGA_C_MN15_L = 261 ! MN15-L correlation functional from Minnesota
XC_MGGA_X_SCAN = 263 ! SCAN exchange of Sun, Ruzsinszky, and Perdew
XC_MGGA_C_SCAN = 267 ! SCAN correlation
XC_MGGA_C_MN15 = 269 ! MN15 correlation functional from Minnesota
XC_MGGA_X_B00 = 284 ! Becke 2000
XC_MGGA_XC_HLE17 = 288 ! high local exchange 2017
XC_MGGA_C_SCAN_RVV10 = 292 ! SCAN correlation + rVV10 correlation
XC_MGGA_X_REVM06_L = 293 ! revised M06-L exchange functional from Minnesota
XC_MGGA_C_REVM06_L = 294 ! Revised M06-L correlation functional from Minnesota
XC_MGGA_X_RTPSS = 299 ! Revised TPSS exchange by Garza, Bell and Head-Gordon
XC_MGGA_X_MS2B = 300 ! MS2beta exchange by Furness and Sun
XC_MGGA_X_MS2BS = 301 ! MS2beta* exchange by Furness and Sun
XC_MGGA_X_MVSB = 302 ! MVSBeta exchange of Furness and Sun
XC_MGGA_X_MVSBS = 303 ! MVSBeta* exchange of Furness and Sun
XC_MGGA_C_REVM06 = 306 ! Revised M06 correlation functional from Minnesota
XC_MGGA_X_RSCAN = 493 ! Regularized SCAN exchange
XC_MGGA_C_RSCAN = 494 ! Regularized SCAN correlation
XC_MGGA_X_TM = 540 ! Tao and Mo 2016 exchange
XC_MGGA_X_VT84 = 541 ! meta-GGA version of VT{8,4} GGA
XC_MGGA_X_SA_TPSS = 542 ! TPSS with correct surface asymptotics
XC_MGGA_K_PC07 = 543 ! Perdew and Constantin 2007
XC_MGGA_C_KCIS = 562 ! Krieger, Chen, Iafrate, and Savin
XC_MGGA_XC_LP90 = 564 ! Lee & Parr, Eq. (56)
XC_MGGA_C_B88 = 571 ! Meta-GGA correlation by Becke
XC_MGGA_X_GX = 575 ! GX functional of Loos
XC_MGGA_X_PBE_GX = 576 ! PBE-GX functional of Loos
XC_MGGA_X_REVSCAN = 581 ! revised SCAN
XC_MGGA_C_REVSCAN = 582 ! revised SCAN correlation
XC_MGGA_C_SCAN_VV10 = 584 ! SCAN correlation + VV10 correlation
XC_MGGA_C_REVSCAN_VV10 = 585 ! revised SCAN correlation
XC_MGGA_X_BR89_EXPLICIT = 586 ! Becke-Roussel 89 with an explicit inversion of x(y), gamma = 0.8
XC_MGGA_X_BR89_EXPLICIT_1 = 602 ! Becke-Roussel 89 with an explicit inversion of x(y), gamma = 1.0
XC_MGGA_X_REGTPSS = 603 ! Regularized TPSS
XC_MGGA_X_2D_JS17 = 609 ! JS17 meta-GGA for 2D
XC_MGGA_X_TLDA = 685 ! LDA-type exchange with tau-dependent potential
XC_MGGA_X_EDMGGA = 686 ! Tao 2001
XC_MGGA_X_GDME_NV = 687 ! Generalized density-matrix with a=1/2
XC_MGGA_X_RLDA = 688 ! Reparametrized local-density approximation
XC_MGGA_X_GDME_0 = 689 ! Generalized density-matrix with a=0
XC_MGGA_X_GDME_KOS = 690 ! Generalized density-matrix with a=0.00638
XC_MGGA_X_GDME_VT = 691 ! Varied-terms (VT) mGGA of Koehl, Odom, and Scuseria
XC_MGGA_X_REVTM = 693 ! revised Tao and Mo 2016 exchange
XC_MGGA_C_REVTM = 694 ! revised Tao and Mo 2016 correlation
XC_MGGA_X_MBRXC_BG = 696 ! Modified Becke-Roussel for band gaps - cuspless hole
XC_MGGA_X_MBRXH_BG = 697 ! Modified Becke-Roussel for band gaps - hydrogen hole
XC_MGGA_X_SCANL = 700 ! Deorbitalized SCAN exchange
XC_MGGA_X_REVSCANL = 701 ! Deorbitalized revSCAN exchange
XC_MGGA_C_SCANL = 702 ! SCAN correlation
XC_MGGA_C_SCANL_RVV10 = 703 ! SCAN correlation + rVV10 correlation
XC_MGGA_C_SCANL_VV10 = 704 ! SCAN correlation + VV10 correlation
XC_MGGA_X_TASK = 707 ! TASK exchange of Aschebrock and Kuemmel
XC_HYB_MGGA_X_DLDF = 36 ! Dispersionless Density Functional
XC_HYB_MGGA_X_MS2H = 224 ! MS2 hybrid exchange of Sun, et al
XC_HYB_MGGA_X_MN12_SX = 248 ! MN12-SX hybrid exchange functional from Minnesota
XC_HYB_MGGA_X_SCAN0 = 264 ! SCAN hybrid exchange
XC_HYB_MGGA_X_MN15 = 268 ! MN15 hybrid exchange functional from Minnesota
XC_HYB_MGGA_X_BMK = 279 ! Boese-Martin for kinetics
XC_HYB_MGGA_X_TAU_HCTH = 282 ! Hybrid version of tau-HCTH
XC_HYB_MGGA_X_M08_HX = 295 ! M08-HX exchange functional from Minnesota
XC_HYB_MGGA_X_M08_SO = 296 ! M08-SO exchange functional from Minnesota
XC_HYB_MGGA_X_M11 = 297 ! M11 hybrid exchange functional from Minnesota
XC_HYB_MGGA_X_REVM11 = 304 ! revM11 hybrid exchange functional from Minnesota
XC_HYB_MGGA_X_REVM06 = 305 ! revised M06 hybrid exchange functional from Minnesota
XC_HYB_MGGA_X_M05 = 438 ! M05 hybrid exchange functional from Minnesota
XC_HYB_MGGA_X_M05_2X = 439 ! M05-2X hybrid exchange functional from Minnesota
XC_HYB_MGGA_XC_B88B95 = 440 ! Mixture of B88 with BC95 (B1B95)
XC_HYB_MGGA_XC_B86B95 = 441 ! Mixture of B86 with BC95
XC_HYB_MGGA_XC_PW86B95 = 442 ! Mixture of PW86 with BC95
XC_HYB_MGGA_XC_BB1K = 443 ! Mixture of B88 with BC95 from Zhao and Truhlar
XC_HYB_MGGA_X_M06_HF = 444 ! M06-HF hybrid exchange functional from Minnesota
XC_HYB_MGGA_XC_MPW1B95 = 445 ! Mixture of mPW91 with BC95 from Zhao and Truhlar
XC_HYB_MGGA_XC_MPWB1K = 446 ! Mixture of mPW91 with BC95 for kinetics
XC_HYB_MGGA_XC_X1B95 = 447 ! Mixture of X with BC95
XC_HYB_MGGA_XC_XB1K = 448 ! Mixture of X with BC95 for kinetics
XC_HYB_MGGA_X_M06 = 449 ! M06 hybrid exchange functional from Minnesota
XC_HYB_MGGA_X_M06_2X = 450 ! M06-2X hybrid exchange functional from Minnesota
XC_HYB_MGGA_XC_PW6B95 = 451 ! Mixture of PW91 with BC95 from Zhao and Truhlar
XC_HYB_MGGA_XC_PWB6K = 452 ! Mixture of PW91 with BC95 from Zhao and Truhlar for kinetics
XC_HYB_MGGA_XC_TPSSH = 457 ! TPSS hybrid
XC_HYB_MGGA_XC_REVTPSSH = 458 ! revTPSS hybrid
XC_HYB_MGGA_X_MVSH = 474 ! MVSh hybrid
XC_HYB_MGGA_XC_WB97M_V = 531 ! Mardirossian and Head-Gordon
XC_HYB_MGGA_XC_B0KCIS = 563 ! Hybrid based on KCIS
XC_HYB_MGGA_XC_MPW1KCIS = 566 ! Modified Perdew-Wang + KCIS hybrid
XC_HYB_MGGA_XC_MPWKCIS1K = 567 ! Modified Perdew-Wang + KCIS hybrid with more exact exchange
XC_HYB_MGGA_XC_PBE1KCIS = 568 ! Perdew-Burke-Ernzerhof + KCIS hybrid
XC_HYB_MGGA_XC_TPSS1KCIS = 569 ! TPSS hybrid with KCIS correlation
XC_HYB_MGGA_X_REVSCAN0 = 583 ! revised SCAN hybrid exchange
XC_HYB_MGGA_XC_B98 = 598 ! Becke 98
XC_HYB_MGGA_XC_EDMGGAH = 695 ! Tao 2001 hybrid
XC_HYB_MGGA_X_JS18 = 705 ! a screened version of TM
XC_HYB_MGGA_X_PJS18 = 706 ! a screened version of TM
mkdir B3
cd B3
cp ../* .
sed -i s/tpss/b3-lyp/ control
\cp /lunarc/nobackup/projects/teobio/Ulf/Pmmo/9/9b/Cs/1.7/B3/q .
sbatch q
cd ..
mkdir Tz
cd Tz
cp ../* .
define <<EOF
y
bb all def2-TZVPD
*
k
k
k
k
k
use ../control
ri
off
ri
on
m 4000
*
EOF
\cp /lunarc/nobackup/projects/teobio/Ulf/Pmmo/9/9b/Cs/1.7/B3/q .
sbatch q
cd ../..