Skip to content

convergence.info ​

Implementation level ​

TypeStatus
CML extraction template
HTML5 representation

Template attributes ​

AttributeValue
sourceTurbomole log
idconvergence.info
nameConvergence information section
pattern\s*\*{10,}\s*$\s*CONVERGENCE\sINFORMATION.*
endPattern\s*\*{10,}\s*
endOffset1
repeat*
xml:baseminimumts/convergence.info.xml

Input ​

      ****************************************************************** 
                          CONVERGENCE INFORMATION

                               Converged?     Value      Criterion
             Energy change         yes      0.0000004   0.0000010
             RMS of displacement   yes      0.0000800   0.0005000
             RMS of gradient       yes      0.0000092   0.0005000
             MAX displacement      yes      0.0003920   0.0010000
             MAX gradient          yes      0.0000313   0.0010000
      ******************************************************************                             

Input ​

      ****************************************************************** 
                          CONVERGENCE INFORMATION

                               Converged?     Value      Criterion
             Energy change         yes      0.0000020   0.0001000
             MAX geom. grad.       yes      0.0008366   0.0010000
      ******************************************************************                            

Output text ​

xml
<comment class="example.output" id="convergence.info">
        <module cmlx:lineCount="10" cmlx:templateRef="convergence.info">
            <list cmlx:templateRef="energyChange">
              <scalar dataType="xsd:string" dictRef="cc:converged">yes</scalar>
              <scalar dataType="xsd:string" dictRef="cc:value">0.0000004</scalar>
              <scalar dataType="xsd:string" dictRef="cc:criterion">0.0000010</scalar>
            </list>
            <list cmlx:templateRef="rmsDisplacement">
              <scalar dataType="xsd:string" dictRef="cc:converged">yes</scalar>
              <scalar dataType="xsd:string" dictRef="cc:value">0.0000800</scalar>
              <scalar dataType="xsd:string" dictRef="cc:criterion">0.0005000</scalar>
            </list>
            <list cmlx:templateRef="rmsGradient">
              <scalar dataType="xsd:string" dictRef="cc:converged">yes</scalar>
              <scalar dataType="xsd:string" dictRef="cc:value">0.0000092</scalar>
              <scalar dataType="xsd:string" dictRef="cc:criterion">0.0005000</scalar>
            </list>
            <list cmlx:templateRef="maxDisplacement">
              <scalar dataType="xsd:string" dictRef="cc:converged">yes</scalar>
              <scalar dataType="xsd:string" dictRef="cc:value">0.0003920</scalar>
              <scalar dataType="xsd:string" dictRef="cc:criterion">0.0010000</scalar>
            </list>
            <list cmlx:templateRef="maxGradient">
              <scalar dataType="xsd:string" dictRef="cc:converged">yes</scalar>
              <scalar dataType="xsd:string" dictRef="cc:value">0.0000313</scalar>
              <scalar dataType="xsd:string" dictRef="cc:criterion">0.0010000</scalar>
            </list>
        </module>
    </comment>

Output text ​

xml
<comment class="example.output2" id="convergence.info">
       <module cmlx:lineCount="7" cmlx:templateRef="convergence.info">
        <list cmlx:templateRef="energyChange">
         <scalar dataType="xsd:string" dictRef="cc:converged">yes</scalar>
         <scalar dataType="xsd:string" dictRef="cc:value">0.0000020</scalar>
         <scalar dataType="xsd:string" dictRef="cc:criterion">0.0001000</scalar>
        </list>
        <list cmlx:templateRef="maxGradient">
         <scalar dataType="xsd:string" dictRef="cc:converged">yes</scalar>
         <scalar dataType="xsd:string" dictRef="cc:value">0.0008366</scalar>
         <scalar dataType="xsd:string" dictRef="cc:criterion">0.0010000</scalar>
        </list>
       </module>  
    </comment>

Template definition ​

xml
<record repeat="4" />
<templateList>  <template pattern="\s*Energy\schange.*" endPattern=".*">    <record id="energyChange">\s*Energy\schange\s*&#123;A,cc:converged&#125;&#123;A,cc:value&#125;&#123;A,cc:criterion&#125;</record>
        </template>  <template pattern="\s*RMS\sof\sdisplacement.*" endPattern=".*">    <record id="rmsDisplacement">\s*RMS\sof\sdisplacement\s*&#123;A,cc:converged&#125;&#123;A,cc:value&#125;&#123;A,cc:criterion&#125;</record>
        </template>  <template pattern="\s*RMS\sof\sgradient.*" endPattern=".*">    <record id="rmsGradient">\s*RMS\sof\sgradient\s*&#123;A,cc:converged&#125;&#123;A,cc:value&#125;&#123;A,cc:criterion&#125;</record>
        </template>  <template pattern="\s*MAX\sdisplacement.*" endPattern=".*">    <record id="maxDisplacement">\s*MAX\sdisplacement\s*&#123;A,cc:converged&#125;&#123;A,cc:value&#125;&#123;A,cc:criterion&#125;</record>
        </template>  <template pattern="\s*MAX.*(gradient|grad\.).*" endPattern=".*">    <record id="maxGradient">\s*MAX.*(?:gradient|grad\.)\s*&#123;A,cc:converged&#125;&#123;A,cc:value&#125;&#123;A,cc:criterion&#125;</record>
        </template>
    </templateList>
<transform process="pullup" xpath=".//cml:scalar" />
<transform process="delete" xpath=".//cml:list[count(*)=0]" />
<transform process="delete" xpath=".//cml:list[count(*)=0]" />
<transform process="pullup" xpath=".//cml:list" />
<transform process="delete" xpath=".//cml:module[count(*)=0]" />