Header

Table 10. Turbomole - General Info - Main fields

FieldSourceSample value
Title Set on Browse calculation publication Sample calculation
Browse Item URL pointing Browse published item https://argo.urv.es:8080/jspui/handle/123456789/6
Program <scalar dictRef="cc:program"> templateTurbomole 5.3.2
Author Username fullname Alvarez Moreno, Moises
Formula Atom count from final geometry C 6 H 12 Fe 1 N 24
Calculation typeCustom logic[5] Geometry optimization Minimum
Method(s)Custom logic[6] DFT (b3-lyp, D3, ri-j, gridsize:m3)


Example 59. Turbomole - General Info - HTML example/s


[5]

[6]



[5]

string turbo:getCalcType (isRestrictedOptimization,  
 isOptimization,  
 isIncomplete,  
 vibrations,  
 statpt,  
 soes); 
boolean isRestrictedOptimization ;
boolean isOptimization ;
boolean isIncomplete ;
nodeset vibrations ;
nodeset statpt ;
nodeset soes ;
 

    $isRestrictedOptimization       Exists module <module cmlx:templateRef="restrictions" > ?
    $isOptimization                 Exists module <module cmlx:templateRef="convergence.info" > ?
    $isIncomplete                   Last module <module cmlx:templateRef="convergence.info" > has a "NO" on converged fields?   
    $vibrations                     Vibrational frequencies information, headers and displacements. Refer to <module cmlx:templateRef="vibrations" > 
    $statpt                         statpt parameters section readed from control file
    $soes                           soes parameters section readed from control file
               
        <xsl:param name="isRestrictedOptimization" as="xs:boolean"/>
        <xsl:param name="isOptimization" as="xs:boolean"/>
        <xsl:param name="isIncomplete" as="xs:boolean"/>
        <xsl:param name="vibrations" as="node()?"/>
        <xsl:param name="statpt" as="node()?"/>
        <xsl:param name="soes" as="node()?"/>
        
        <xsl:variable name="isMinimum" select="not(contains(replace($vibrations/cml:module[@cmlx:templateRef='spectrum']/array[@dictRef='cc:frequency'],'-0.00',''), '-'))"/>
        <xsl:variable name="isExcitedState">           
            <xsl:if test="exists($soes) and number($soes/cml:array[@dictRef='t:irrep']/@size) = 1">
                <xsl:value-of select="$turbo:ExcitedState"/>
                <xsl:text> </xsl:text>
                <xsl:if test="$isRestrictedOptimization or $isOptimization">
                    (<xsl:value-of select="$soes/cml:array[@dictRef='t:lowest']"/><xsl:value-of select="$soes/cml:array[@dictRef='t:irrep']"/>)    
                </xsl:if>                                
            </xsl:if>              
        </xsl:variable>
        
        <xsl:variable name="isTS" select="
            if(exists($statpt) and number($statpt//cml:scalar[@dictRef='t:itrvec']) > 0) then
                $turbo:TransitionState
            else
                ''
            "/>
        <xsl:variable name="itrvecdsd" select="number($statpt//cml:scalar[@dictRef='t:itrvec'])"/>
        <xsl:variable name="calcType" select="
            if($isRestrictedOptimization) then               
                $turbo:RestrictedGeometryOptimization                 
            else if($isOptimization) then
                concat($turbo:GeometryOptimization, ' ', $isTS)
            else 
                $turbo:SinglePoint                
       "/>
        
        
        <xsl:variable name="vibration" select="
            if(exists($vibrations) and not($isRestrictedOptimization) and compare($isTS,'') = 0) then
                if($isMinimum) then 
                    $turbo:Minimum
                else
                    $turbo:TransitionState             
            else ''
        "/>
        <xsl:sequence select="concat($calcType, ' ', $vibration, ' ', $isExcitedState)"/>
     
                        

[6]

string turbo:getMehod (soes,  
 methodScalar); 
nodeset soes ;
nodeset methodScalar ;
 

 
        $soes           soes parameters section readed from control file <module cmlx:templateRef="soes">  
        $methodScalar   methods readed from control file ($dft|$uhf)   <module cmlx:templateRef="methods">
                            
                            
        <xsl:variable name="methodsTmp">
            <xsl:for-each select="$methodScalar">
                <xsl:for-each select="tokenize(.,'\s+')">
                    <xsl:element name="method">
                        <xsl:value-of select="upper-case(.)"/>
                        <xsl:text> </xsl:text>
                    </xsl:element>                    
                </xsl:for-each>
            </xsl:for-each>
        </xsl:variable>
        <xsl:choose>            
            <xsl:when test="not(exists($methodScalar))">
                <xsl:sequence select="                 
                    if(exists($soes)) then
                        'TDHF'
                    else
                        'HF'                                          
                    ">
                </xsl:sequence>                
            </xsl:when>      
            <xsl:otherwise>
                <xsl:variable name="step1">
                    <xsl:choose>
                        <xsl:when test="contains($methodsTmp, 'RIR12') and contains($methodsTmp, 'MP2') and contains($methodsTmp, 'RICC2')">
                            <xsl:text>MP2-F12 </xsl:text>
                            <xsl:value-of select="replace(replace(replace($methodsTmp,'RIR12', ''), 'MP2', ''), 'RICC2', '')"></xsl:value-of>
                        </xsl:when>
                        <xsl:otherwise><xsl:value-of select="$methodsTmp"/></xsl:otherwise>
                    </xsl:choose>           
                </xsl:variable>
                
                <xsl:variable name="step2">
                    <xsl:choose>
                        <xsl:when test="contains($step1, 'UHF') and contains($step1, 'DFT')">
                            <xsl:text>U-DFT </xsl:text>
                            <xsl:value-of select="replace(replace($step1,'UHF',''), 'DFT','')"/>
                        </xsl:when>
                        <xsl:otherwise><xsl:value-of select="$step1"/></xsl:otherwise>
                    </xsl:choose>           
                </xsl:variable>
                
                <xsl:variable name="step3">
                    <xsl:choose>
                        <xsl:when test="contains($step2, 'DFT') and exists($soes)">
                            <xsl:value-of select="replace($step2,'DFT', 'TDDFT')"/>
                        </xsl:when>
                        <xsl:otherwise><xsl:value-of select="$step2"/></xsl:otherwise>
                    </xsl:choose>               
                </xsl:variable>
                
                <xsl:value-of select="$step3"/>                
            </xsl:otherwise>
        </xsl:choose>