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:


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.



How to constrain an internal coordinate with Turbomole

Constraints are set up with define in the coordinate menu.
  1. Run define
  2. Enter the coordinate menu by hitting return one and the answer yes.
  3. In the coordinate menu write
    idef 
  4. 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
  5. 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
  6. 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
  7. You can add serveral constraints
  8. A blank input ends this menu
  9. If you want to fix the internal coordinate to another value, write
  10. iman
  11. 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
  12. Hit return until you get back the the main coordinate menu
  13. Write ired
  14. 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.
  15. Quit this menu by q and then the coordinate menu by *
  16. If you have already defined the rest of the calculation, you may quit define now by qq.
  17. 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

  1. 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, ...
  2. 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.
  3. rungOpenMol
  4. Import the coordinates from coord.xyz (File - Import - Coord - select file - Apply - Dissmiss).
  5. 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
  6. 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
  1. Use the minix basis set
    bb all minix
  2. Turn off dft
  3. Turn off ri
  4. 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.

  1. Set up the system as usual with define (use the def2-TZVPP or QZVPP basis sets)
  2. Do not use RI
  3. Do not use rijk
  4. Go to the cc menu
  5. ricc2 submenue
    ccsd(t)
  6. Freeze the core orbitals (command freeze). For metals, not the 3s 3p subcore.
  7. Activate the cbasis with the cbas keyword.
  8. Select the amount of memory ($maxcor in MB; set it to 66–75% of available memory).
  9. Turbomole recommends the keywords (under $ricc2):
      conv=7
      oconv=6
      mxdiis=10
      maxiter=25
  10. Run the HF calculation (ROHF for open shell systems; UHF works also, but not DFT) with ridft
  11. 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
  1. Run define and set the fragments and their charge in the coordinate menu, command frag
  2. Run jobbsse  (typically without any options)
  3. Result in bsse.out

screwer

A tool to distort along a vibrational mode (typically to get rid of an imaginary frequency)
  1. Run screwer
  2. Select mode
  3. Take default step
  4. mv $newcoord from file control to file coord
  5. jobex

Utilities



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

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.
* The logic for calculating frequencies like this is described in references contained e.g. in this paper: https://molmod.ugent.be/publications/efficient-calculation-qmmm-frequencies-mobile-block-hessian (where a much more complicated procedure is used, but the references are useful).
* 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

  1. Start from a normal sequential Turbomole job.
  2. Run /sw/turbomole/Parallel/bin/iris64_mpi/turbo_preproc

  3. and select alt. 3 (Statistics for dscf).
    The four default values are OK.
  4. mv control_par control
  5. Run /sw/turbomole/bin/iris64/dscf

  6. (run a dscf statistics using the normal sequential Turbomole version)
  7. /sw/turbomole/Parallel/bin/iris64_mpi/turbo_preproc

  8. 6 (statistics for grad)
    The two default values are OK.
  9. mv control_par control
  10. /sw/turbomole/bin/iris64/grad

  11. (run a grad statistics using the sequential Turbomole version)
  12. /sw/turbomole/Parallel/bin/iris64_mpi/turbo_preproc

  13. 7 (jobex)
    <return>
    <return>
    3
    <number_of_nodes-1>
    <actual scratch dir on /pools>
    y
    200
    n
    n
  14. mv control_par control
  15. Use the following script to submit the job to the queue

  16. (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:

New features in version 5.6:
The most interesting new features in version 5.5 are

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.
  1. Update jobex with -backup (do this in scripts/jobex after
    cp jobex jobex-orig
    1. Insert just after stepgrep

      # UR Copy files from local to global disk
      backup() {
        if [ "$backup" = "y" ]
        then
            cp -p * $PBS_O_WORKDIR
        fi
        }

    2. Insert after           "-ri"    | "ri")    ri="y" ;;
               "-backup" | "backup") backup="y" ;;
       
    3. Insert after       fi; inc_counter (third last row in routine checkconv)
            backup

  2. Update comqum and comqumx.
    Search old comqum file for comqum and molmec (or make xdiff).
    14 blocks of data are add
  3. ed or changed. (17 compared to jobex_orig)

  4. Update jobexe and comqume the same way (look for cqe; only on 2 or 4 places).

  5. No longer used: comqumn is not updated
    comqum510_2qm is not updated

  6. 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)

  7. 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




LibXC in Turbomole 7.5: Advances and number codes
« 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)

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