General Info

Table 8. Orca - 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 header template Orca 3.0.1
Author Username fullname Alvarez Moreno, Moises
Formula Atom count from final geometry H 2 Fe 1 O 1
Calculation typeCustom logic[3] Geometry optimization Minimum
Method(s)Custom logic[4] DFT ( PBE0 )


Example 36. Orca - General Info - HTML example/s


[3]

[4]



[3]

string orca:getCalcType (isOptimization,  
 isBrokenSymm,  
 hasVibrations,  
 negativeFrequenciesCount); 
boolean isOptimization ;
boolean isBrokenSymm ;
boolean hasVibrations ;
integer negativeFrequenciesCount ;
 

    $isOptimization        Refers to function orca:isOptimization($commands), which searches optimitzation keywords from <module cmlx:templateRef="input" > module  
    $isBrokenSymm          Refers to function orca:isBrokenSymm($commands)  which searches BrokenSymm keyword from <module cmlx:templateRef="input" > module
    $hasVibrations         Exists module <module cmlx:templateRef="vibrations" > ?
    $negativeFrequenciesCount   Count negative frequencies from <module cmlx:templateRef="vibrations" > ?                            
               
    
    <!-- Calculation type related constants -->
    <xsl:variable name="orca:GeometryOptimization" select="'Geometry optimization'" />
    <xsl:variable name="orca:SinglePoint" select="'Single point'" />
    <xsl:variable name="orca:BrokenSymmetry" select="'Broken symmetry'" />    
    <xsl:variable name="orca:TransitionState" select="'TS'" />
    <xsl:variable name="orca:Minimum" select="'Minimum'"/>

    <!-- Calculation type variables -->
    <xsl:param name="isOptimization" as="xs:boolean"/>
	<xsl:param name="isBrokenSymm" as="xs:boolean"/>
	<xsl:param name="hasVibrations" as="xs:boolean"/>
    <xsl:param name="negativeFrequenciesCount" as="xs:integer"/>
    
    <xsl:variable name="type">
        <xsl:choose>
            <xsl:when test="$isOptimization">
                <xsl:value-of select="$orca:GeometryOptimization"/>
            </xsl:when>
            <xsl:when test="$isBrokenSymm">
                <xsl:value-of select="$orca:BrokenSymmetry"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="$orca:SinglePoint"/>
            </xsl:otherwise>
        </xsl:choose>     
    </xsl:variable>
    
    <xsl:variable name="type2">
        <xsl:if test="$hasVibrations">
            <xsl:choose>
                <xsl:when test="$negativeFrequenciesCount > 0">
                    <xsl:value-of select="$orca:TransitionState"/>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="$orca:Minimum"/>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:if>	       
    </xsl:variable>
    
    <xsl:value-of select="concat($type, ' ', $type2)"/>                              
                        
                        

[4]

string orca:getMehods (section,  
 isTddft); 
nodeset section ;
boolean isTddft ;
 

 
        $section    Input section elements from <module cmlx:templateRef="input"> module  
        $isTddft    Refers to function orca:isTddft($commands) which searches tddft keywords from <module cmlx:templateRef="input" > module                           
                            
        <xsl:for-each select="$section/cml:array[@dictRef='cc:keywords']">
            <xsl:variable name="line" select="./text()"/>
            <xsl:for-each select="tokenize($line,'\s+')">
                <xsl:variable name="command" select="."/>
                <xsl:choose>
                    <xsl:when test="matches(upper-case($command), $orca:methodsRegex)">
                        <xsl:if test="$isTddft and matches(upper-case($command), '(DFT|HF)')">TD</xsl:if><xsl:value-of select="$command"/><xsl:text> </xsl:text>    
                    </xsl:when>                   
                    <xsl:when test="matches(upper-case($command),$orca:calculationLevelRegex)">
                        <xsl:if test="$isTddft">TD</xsl:if><xsl:value-of select="$orca:calculationLevels/level[@id=upper-case($command)]/@method"/><xsl:text> </xsl:text>
                    </xsl:when>
                </xsl:choose>                             
            </xsl:for-each>
        </xsl:for-each>
        
        <xsl:variable name="blocklines" select="$section//cml:module[@cmlx:templateRef='block']/cml:scalar"/>
        <xsl:for-each select="$blocklines">
            <xsl:variable name="line" select="./text()"/>                    
            <xsl:for-each select="tokenize($line,'\s+')">
                <xsl:variable name="command" select="."/>                
                <xsl:choose>
                    <xsl:when test="matches(upper-case($command), $orca:methodsRegex)">
                        <xsl:if test="$isTddft and matches(upper-case($command), '(DFT|HF)')">TD</xsl:if><xsl:value-of select="$command"/><xsl:text> </xsl:text>    
                    </xsl:when>
                    <xsl:when test="matches(upper-case($command),$orca:calculationLevelRegex)">
                        <xsl:if test="$isTddft">TD</xsl:if><xsl:value-of select="$orca:calculationLevels/level[@id=upper-case($command)]/@method"/><xsl:text> </xsl:text>
                    </xsl:when>
                </xsl:choose>             
            </xsl:for-each>                
        </xsl:for-each>