Turbomole
General Info
Field |
Source |
Sample value |
---|---|---|
Title |
Set on Browse calculation publication |
Sample calculation |
Browse Item |
URL pointing Browse published item |
|
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) |
Field |
Source |
Sample value |
---|---|---|
Temperature |
<scalar dictRef=”cc:temp”> |
298.15 K |
Pressure |
<scalar dictRef=”cc:press”> |
1.0 atm |
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.
Molecular Info
This section captures molecule additional information not captured on previous section.
Field |
Source |
Description |
---|---|---|
Symmetry |
Appears in symmetry module. |
Symmetry information about the molecule (if it exists) |
Multiplicity |
Its value is set:
|
|
Charge |
Readed from:
|
|
Geometry restrictions |
<module cmlx:templateRef=”restrictions”> |
User defined geometry restrictions |
Solvation |
<module cmlx:templateRef=”cosmo”> |
Solvation parameters |
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)
Electrostatic moments
Data source: <module cmlx:templateRef=’electrostatic.moments’>
This module will display charge, dipole and multipole values.
Orbital specification
Data source: <module cmlx:templateRef=’orbitals’>
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’>
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.
TDDFT/TDHF
Data source: <module cmlx:templateRef=’excitation’>
- 1
string
turbo:getCalcType
booleanisRestrictedOptimization
booleanisOptimization
booleanisIncomplete
nodesetvibrations
nodesetstatpt
nodesetsoes
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
nodesetsoes
nodesetmethodScalar
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>