Turbomole

General Info

Turbomole - General Info - Main fields

Field

Source

Sample value

Title

Set on Browse calculation publication

Sample calculation

Browse Item

URL pointing Browse published item

https://iochem-bd.iciq.es/browse/handle/100/1722

Program

<scalar dictRef=”cc:program”> template

Turbomole 5.3.2

Author

Username fullname

Doe, John

Formula

Atom count from final geometry

C 6 H 12 Fe 1 N 24

Calculation type

Custom logic 1

Geometry optimization Minimum

Method(s)

Custom logic 2

DFT (b3-lyp, D3, ri-j, gridsize:m3)

Turbomole - General Info with additional fields (if freeh module exists)

Field

Source

Sample value

Temperature

<scalar dictRef=”cc:temp”>

298.15 K

Pressure

<scalar dictRef=”cc:press”>

1.0 atm

../_images/TURBOMOLE_header.png ../_images/TURBOMOLE_header2.png

Atoms and Basis Sets

After header section, our HTML resume will output a xyz coordinates table with current molecule atoms.

Initially its read from coord file

Then we will read all instances from module <module cmlx:templateRef=”atomcoord”> and use last instance as final geometry

For every atom, we will output it’s serial number, atom type, coordinates in angstroms, and basis used.

In geometry optimizations calculations, next to geometry section header there will appear the word (optimized), pointing that this geometry is the last one from all optimization steps and has converged.

If the geometry optimization did not converge, there will appear the phrase (calculation did not converge).

If there are multiple geometries we’ll capture it’s last appearance.

../_images/TURBOMOLE_geometry.png

Molecular Info

This section captures molecule additional information not captured on previous section.

Molecular Info - Main fields

Field

Source

Description

Symmetry

Appears in symmetry module.

Symmetry information about the molecule (if it exists)

Multiplicity

Its value is set:

  • Set to 1 on closed shell calculations

  • On open shell calculations = alpha - beta electrons on occupied orbitals

Charge

Readed from:

Geometry restrictions

<module cmlx:templateRef=”restrictions”>

User defined geometry restrictions

Solvation

<module cmlx:templateRef=”cosmo”>

Solvation parameters

../_images/TURBOMOLE_molecularinfo.png

Modules

Population analysis

Data source: <module cmlx:templateRef=’population.analysis’>

Data source: <module cmlx:templateRef=’fit.pointcharges’>

This module will hold Mulliken, Loewdin and Natural population analysis, will also contain (if exists) information from unpaired electrons from D(alpha)-D(beta)

../_images/TURBOMOLE_module_popanalysis.png

Electrostatic moments

Data source: <module cmlx:templateRef=’electrostatic.moments’>

This module will display charge, dipole and multipole values.

../_images/TURBOMOLE_module_electromoments.png

Orbital specification

Data source: <module cmlx:templateRef=’orbitals’>

../_images/TURBOMOLE_module_orbspecification.png

Final results

Data source: <module cmlx:templateRef=’turbomole.energy’> Taken from last line of energy file

Data source: <module cmlx:templateRef=’energy’>

Data source: <module cmlx:templateRef=’nuclear.repulsion’>

Data source: <module cmlx:templateRef=’zero.point.energy’>

../_images/TURBOMOLE_module_finalresults.png

IR spectrum

Data source: <module cmlx:templateRef=’vibrations’>

This module will display JSpecView + JSmol plugins (using javascript libraries) working together to represent molecule IR spectrum.

All information will come from “$vibrational normal modes” and “$vibrational spectrum” sections inside Turbomole control file, in case they are defined on external files such as vib_normal_modes and vibspectrum we must copy them inside control file.

../_images/TURBOMOLE_module_irspectrum.png

TDDFT/TDHF

Data source: <module cmlx:templateRef=’excitation’>

../_images/TURBOMOLE_module_tddft1.png
1

string turbo:getCalcType boolean isRestrictedOptimization boolean isOptimization boolean isIncomplete nodeset vibrations nodeset statpt nodeset soes

 1    $isRestrictedOptimization       Exists module <module cmlx:templateRef="restrictions" > ?
 2    $isOptimization                 Exists module <module cmlx:templateRef="convergence.info" > ?
 3    $isIncomplete                   Last module <module cmlx:templateRef="convergence.info" > has a "NO" on converged fields?
 4    $vibrations                     Vibrational frequencies information, headers and displacements. Refer to <module cmlx:templateRef="vibrations" >
 5    $statpt                         statpt parameters section read from control file
 6    $soes                           soes parameters section read from control file
 7
 8        <xsl:param name="isRestrictedOptimization" as="xs:boolean"/>
 9        <xsl:param name="isOptimization" as="xs:boolean"/>
10        <xsl:param name="isIncomplete" as="xs:boolean"/>
11        <xsl:param name="vibrations" as="node()?"/>
12        <xsl:param name="statpt" as="node()?"/>
13        <xsl:param name="soes" as="node()?"/>
14
15        <xsl:variable name="isMinimum" select="not(contains(replace($vibrations/cml:module[@cmlx:templateRef='spectrum']/array[@dictRef='cc:frequency'],'-0.00',''), '-'))"/>
16        <xsl:variable name="isExcitedState">
17            <xsl:if test="exists($soes) and number($soes/cml:array[@dictRef='t:irrep']/@size) = 1">
18                <xsl:value-of select="$turbo:ExcitedState"/>
19                <xsl:text> </xsl:text>
20                <xsl:if test="$isRestrictedOptimization or $isOptimization">
21                    (<xsl:value-of select="$soes/cml:array[@dictRef='t:lowest']"/><xsl:value-of select="$soes/cml:array[@dictRef='t:irrep']"/>)
22                </xsl:if>
23            </xsl:if>
24        </xsl:variable>
25
26        <xsl:variable name="isTS" select="
27            if(exists($statpt) and number($statpt//cml:scalar[@dictRef='t:itrvec']) > 0) then
28                $turbo:TransitionState
29            else
30                ''
31            "/>
32        <xsl:variable name="itrvecdsd" select="number($statpt//cml:scalar[@dictRef='t:itrvec'])"/>
33        <xsl:variable name="calcType" select="
34            if($isRestrictedOptimization) then
35                $turbo:RestrictedGeometryOptimization
36            else if($isOptimization) then
37                concat($turbo:GeometryOptimization, ' ', $isTS)
38            else
39                $turbo:SinglePoint
40       "/>
41
42
43        <xsl:variable name="vibration" select="
44            if(exists($vibrations) and not($isRestrictedOptimization) and compare($isTS,'') = 0) then
45                if($isMinimum) then
46                    $turbo:Minimum
47                else
48                    $turbo:TransitionState
49            else ''
50        "/>
51        <xsl:sequence select="concat($calcType, ' ', $vibration, ' ', $isExcitedState)"/>
2

string turbo:getMehod nodeset soes nodeset methodScalar

 1        $soes           soes parameters section read from control file <module cmlx:templateRef="soes">
 2        $methodScalar   methods read from control file ($dft|$uhf)   <module cmlx:templateRef="methods">
 3
 4
 5        <xsl:variable name="methodsTmp">
 6            <xsl:for-each select="$methodScalar">
 7                <xsl:for-each select="tokenize(.,'\s+')">
 8                    <xsl:element name="method">
 9                        <xsl:value-of select="upper-case(.)"/>
10                        <xsl:text> </xsl:text>
11                    </xsl:element>
12                </xsl:for-each>
13            </xsl:for-each>
14        </xsl:variable>
15        <xsl:choose>
16            <xsl:when test="not(exists($methodScalar))">
17                <xsl:sequence select="
18                    if(exists($soes)) then
19                        'TDHF'
20                    else
21                        'HF'
22                    ">
23                </xsl:sequence>
24            </xsl:when>
25            <xsl:otherwise>
26                <xsl:variable name="step1">
27                    <xsl:choose>
28                        <xsl:when test="contains($methodsTmp, 'RIR12') and contains($methodsTmp, 'MP2') and contains($methodsTmp, 'RICC2')">
29                            <xsl:text>MP2-F12 </xsl:text>
30                            <xsl:value-of select="replace(replace(replace($methodsTmp,'RIR12', ''), 'MP2', ''), 'RICC2', '')"></xsl:value-of>
31                        </xsl:when>
32                        <xsl:otherwise><xsl:value-of select="$methodsTmp"/></xsl:otherwise>
33                    </xsl:choose>
34                </xsl:variable>
35
36                <xsl:variable name="step2">
37                    <xsl:choose>
38                        <xsl:when test="contains($step1, 'UHF') and contains($step1, 'DFT')">
39                            <xsl:text>U-DFT </xsl:text>
40                            <xsl:value-of select="replace(replace($step1,'UHF',''), 'DFT','')"/>
41                        </xsl:when>
42                        <xsl:otherwise><xsl:value-of select="$step1"/></xsl:otherwise>
43                    </xsl:choose>
44                </xsl:variable>
45
46                <xsl:variable name="step3">
47                    <xsl:choose>
48                        <xsl:when test="contains($step2, 'DFT') and exists($soes)">
49                            <xsl:value-of select="replace($step2,'DFT', 'TDDFT')"/>
50                        </xsl:when>
51                        <xsl:otherwise><xsl:value-of select="$step2"/></xsl:otherwise>
52                    </xsl:choose>
53                </xsl:variable>
54
55                <xsl:value-of select="$step3"/>
56            </xsl:otherwise>
57        </xsl:choose>