Skip to content

qtaim ​

Implementation level ​

TypeStatus
CML extraction template
HTML5 representation

Template attributes ​

AttributeValue
sourceADF log
idqtaim
nameQTAIM module
pattern\s*L\s*O\s*C\s*A\s*L\s*Q\s*T\s*A\s*I\s*M\s*P\s*R\s*O\s*P\s*E\s*R\s*T\s*I\s*E\s*S.*
endPattern(\s+\S+){7}\s*$\s*-{20,}$\s*
endOffset2
repeat*
xml:baseresults/qtaim.xml

Input ​

        ===========================================
        L O C A L Q T A I M P R O P E R T I E S
        ===========================================

        Module written by Juan I. Rodriguez-Hernandez,
        ESFM-Instituto Politecnico Nacional-Mexico.
        Any questions/comments to: juan@esfm.ipn.mx and/or SCM technical support.
        This subroutine was vectorized, its efficientcy is reported in
        Juan I. Rodriguez et. al., J. Comput. Chem. 34, 681 (2013).
        Additional CP properties added by L. Joubert and V. Tognetti,
        University of Rouen, France.


        THIS IS THE GEOMETRY IN THE CP SEARCH (ANGSTROM):

        Atom X Y Z
        1 42 0.000000 0.000000 0.000000
        2 8 -1.041144 1.041144 1.041144
        3 8 1.041144 -1.041144 1.041144
        4 8 -1.041144 -1.041144 -1.041144
        5 8 1.041144 1.041144 -1.041144

        TOTAL NUMBER OF CRITICAL POINTS: 9
        NUMBER OF (3,-1) CRITICAL POINTS: 4
        NUMBER OF (3,+1) CRITICAL POINTS: 0
        NUMBER OF (3,+3) CRITICAL POINTS: 0
        NUMBER OF (3,-3) CRITICAL POINTS: 5
        Poincare-Hopf satisfied

        --------------------------------------------------------
        CP # 1
        (RANK,SIGNATURE): (3,-3)

        CP COORDINATES: 0.000000 0.000000 0.000000

        VALUES OF SOME FUNCTIONS AT CPs (a.u.):

        Rho = 0.1240656E+06
        --------------------------------------------------------
        CP # 2
        (RANK,SIGNATURE): (3,-3)

        CP COORDINATES: -1.041144 1.041144 1.041144

        VALUES OF SOME FUNCTIONS AT CPs (a.u.):

        Rho = 0.3191590E+03
        --------------------------------------------------------
        CP # 6
        (RANK,SIGNATURE): (3,-1)

        CP COORDINATES: -0.554253 -0.554253 -0.554253

        EIGENVALUES OF HESSIAN MATRIX:

        -0.3035201E+00 -0.3035201E+00 0.1309658E+01

        EIGENVECTORS (ORTHONORMAL) OF HESSIAN MATRIX (COLUMNS):

        0.4751277E+00 0.6640183E+00 0.5773503E+00
        0.3374929E+00 -0.7434818E+00 0.5773503E+00
        -0.8126206E+00 0.7946350E-01 0.5773503E+00


        HESSIAN MATRIX:

        0.2342059E+00 0.5377260E+00 0.5377260E+00
        0.2342059E+00 0.5377260E+00
        0.2342059E+00

        VALUES OF SOME FUNCTIONS AT CPs (a.u.):

        Rho = 0.1923726E+00
        |GRAD(Rho)| = 0.2382734E-15
        GRAD(Rho)x = 0.1654221E-15
        GRAD(Rho)y = 0.1101278E-15
        GRAD(Rho)z = 0.1314595E-15
        Laplacian = 0.7026176E+00
        (-1/4)Del**2(Rho)) = -0.1756544E+00
        Diamond = 0.1899452E+01
        Metallicity = 0.6287331E+01
        Ellipticity = 0.4440892E-15

        INHOMOGENEITY PARAMETERS AT CPs (a.u.)

        Delta_u = 0.7322439E+00
        Delta_s = 0.1065682E+01
        Delta_t = 0.1262118E+01
        Inhom_s = 0.9383660E+00
        Inhom_ex = 0.1011597E+01

        ENERGY COMPONENTS AT CPs (a.u.)

        Gb(Abramov) = 0.3011692E+00
        Vb(Abramov) = -0.4266839E+00
        Hb(Abramov) = -0.1255148E+00
        Ex_ueg = -0.8201805E-01
        Ec_ueg = -0.1120922E-01
        Delta_ex = -0.8014834E-01
        Delta_ec = 0.1645809E-01
        Delta_et = -0.2246648E+00
        Pxc = 0.7317017E+01
        Qxc = -0.4869843E+01


        ----------------------------------------------------------------
        BOND PATHS (BP) AND PROPERTIES ALONG THEM ARE WRITTEN TO TAPE21
        ----------------------------------------------------------------
        #BP #CP Atom Atom Distance BP Lenth BP Steps
        -----------------------------------------------------------
        1 9 1 2 1.803314 1.803314 21
        2 7 1 3 1.803314 1.803314 21
        3 6 1 4 1.803314 1.803314 21
        4 8 1 5 1.803314 1.803314 21
        -----------------------------------------------------------

Output text ​

xml
<comment class="example.output" id="qtaim">
        <module cmlx:templateRef="qtaim">
            <list cmlx:templateRef="atoms">
                <array dataType="xsd:integer" dictRef="a:id" size="5">1 2 3 4 5</array>
                <array dataType="xsd:integer" dictRef="cc:atomicNumber" size="5">42 8 8 8 8</array>
                <array dataType="xsd:double" dictRef="x:coords" size="15">0.000000 0.000000 0.000000 -1.041144 1.041144 1.041144 1.041144 -1.041144 1.041144 -1.041144 -1.041144 -1.041144 1.041144 1.041144 -1.041144</array>
            </list>
            <module cmlx:templateRef="point">
                <scalar dataType="xsd:integer" dictRef="a:id">1</scalar>
                <scalar dataType="xsd:integer" dictRef="a:rank">3</scalar>
                <scalar dataType="xsd:integer" dictRef="a:signature">-3</scalar>
                <list cmlx:templateRef="coords">
                    <scalar dataType="xsd:double" dictRef="cc:x3">0.000000</scalar>
                    <scalar dataType="xsd:double" dictRef="cc:y3">0.000000</scalar>
                    <scalar dataType="xsd:double" dictRef="cc:z3">0.000000</scalar>
                </list>
                <module cmlx:templateRef="functions">
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Rho</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.1240656E+06</scalar>
                    </list>
                </module>
                <scalar dictRef="a:ranksignature">3,-3</scalar>
            </module>
            <module cmlx:templateRef="point">
                <scalar dataType="xsd:integer" dictRef="a:id">2</scalar>
                <scalar dataType="xsd:integer" dictRef="a:rank">3</scalar>
                <scalar dataType="xsd:integer" dictRef="a:signature">-3</scalar>
                <list cmlx:templateRef="coords">
                    <scalar dataType="xsd:double" dictRef="cc:x3">-1.041144</scalar>
                    <scalar dataType="xsd:double" dictRef="cc:y3">1.041144</scalar>
                    <scalar dataType="xsd:double" dictRef="cc:z3">1.041144</scalar>
                </list>
                <module cmlx:templateRef="functions">
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Rho</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.3191590E+03</scalar>
                    </list>
                </module>
                <scalar dictRef="a:ranksignature">3,-3</scalar>
            </module>
            <module cmlx:templateRef="point">
                <scalar dataType="xsd:integer" dictRef="a:id">6</scalar>
                <scalar dataType="xsd:integer" dictRef="a:rank">3</scalar>
                <scalar dataType="xsd:integer" dictRef="a:signature">-1</scalar>
                <list cmlx:templateRef="coords">
                    <scalar dataType="xsd:double" dictRef="cc:x3">-0.554253</scalar>
                    <scalar dataType="xsd:double" dictRef="cc:y3">-0.554253</scalar>
                    <scalar dataType="xsd:double" dictRef="cc:z3">-0.554253</scalar>
                </list>
                <module cmlx:templateRef="functions">
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Rho</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.1923726E+00</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">|GRAD(Rho)|</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.2382734E-15</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">GRAD(Rho)x</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.1654221E-15</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">GRAD(Rho)y</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.1101278E-15</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">GRAD(Rho)z</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.1314595E-15</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Laplacian</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.7026176E+00</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">(-1/4)Del**2(Rho))</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">-0.1756544E+00</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Diamond</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.1899452E+01</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Metallicity</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.6287331E+01</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Ellipticity</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.4440892E-15</scalar>
                    </list>
                </module>
                <module cmlx:templateRef="energycomp">
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Gb(Abramov)</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.3011692E+00</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Vb(Abramov)</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">-0.4266839E+00</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Hb(Abramov)</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">-0.1255148E+00</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Ex_ueg</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">-0.8201805E-01</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Ec_ueg</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">-0.1120922E-01</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Delta_ex</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">-0.8014834E-01</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Delta_ec</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.1645809E-01</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Delta_et</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">-0.2246648E+00</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Pxc</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">0.7317017E+01</scalar>
                    </list>
                    <list>
                        <scalar dataType="xsd:string" dictRef="cc:parameter">Qxc</scalar>
                        <scalar dataType="xsd:double" dictRef="cc:value">-0.4869843E+01</scalar>
                    </list>
                </module>
                <scalar dictRef="a:ranksignature">3,-1</scalar>
            </module>
            <list cmlx:templateRef="bondPaths">
                <array dataType="xsd:integer" dictRef="a:bondPath" size="4">1 2 3 4</array>
                <array dataType="xsd:integer" dictRef="a:cp" size="4">9 7 6 8</array>
                <array dataType="xsd:integer" dictRef="x:atomInx1" size="4">1 1 1 1</array>
                <array dataType="xsd:integer" dictRef="x:atomInx2" size="4">2 3 4 5</array>
                <array dataType="xsd:double" dictRef="a:distance" size="4">1.803314 1.803314 1.803314 1.803314</array>
                <array dataType="xsd:double" dictRef="a:length" size="4">1.803314 1.803314 1.803314 1.803314</array>
                <array dataType="xsd:double" dictRef="a:steps" size="4">21 21 21 21</array>
             </list>
        </module>
    </comment>

Template definition ​

xml
<templateList>  <template id="atoms" pattern="\s*Atom\s+X\s+Y\s*Z.*" endPattern="\s*" endOffset="0">    <record />    <record id="atoms" repeat="*" makeArray="true">&#123;I,a:id&#125;&#123;I, cc:atomicNumber&#125;&#123;3E,x:coords&#125;</record>    <transform process="pullup" xpath="//cml:list[@cmlx:templateRef='atoms']" />
        </template>  <template id="point" pattern="\s*CP.*" endPattern="\s*-&#123;20,&#125;" repeat="*" endOffset="1">    <record>\s*CP\s*\#&#123;I,a:id&#125;</record>    <record>\s*.RANK\,SIGNATURE.:\s*\(&#123;I,a:rank&#125;,&#123;I,a:signature&#125;\)\s*</record>    <record />    <record id="coords">.*:&#123;E,cc:x3&#125;&#123;E,cc:y3&#125;&#123;E,cc:z3&#125;</record>    <templateList>      <template id="functions" pattern="\s*VALUES\s*OF\s*SOME\s*FUNCTIONS.*" endPattern="(\s+\S+)&#123;3&#125;\s*$\s*-&#123;20,&#125;.*" endPattern2="(\s+\S+)&#123;3&#125;\s*$\s*" endOffset="1">        <record repeat="2" />        <record repeat="*">&#123;X,cc:parameter&#125;=&#123;E,cc:value&#125;.*</record>        <transform process="pullup" xpath=".//cml:list[cml:scalar]" />        <transform process="delete" xpath=".//cml:list[count(*) =0]" />        <transform process="delete" xpath=".//cml:list[count(*) =0]" />
                </template>      <template id="energycomp" pattern="\s*ENERGY\s*COMPONENTS\s*AT\s*CPs.*" endPattern="(\s+\S+)&#123;3&#125;.*$\s*-&#123;20,&#125;.*" endPattern2="(\s+\S+)&#123;3&#125;.*$\s*" endOffset="1">        <record repeat="2" />        <record repeat="*">&#123;X,cc:parameter&#125;=&#123;E,cc:value&#125;.*</record>        <transform process="pullup" xpath=".//cml:list[cml:scalar]" />        <transform process="delete" xpath=".//cml:list[count(*) =0]" />        <transform process="delete" xpath=".//cml:list[count(*) =0]" />
                </template>
            </templateList>    <transform process="pullup" xpath=".//cml:list[@*:templateRef='coords']//cml:scalar" />    <transform process="pullup" xpath=".//cml:scalar[@dictRef='a:rank' or @dictRef='a:signature']" repeat="2" />    <transform process="pullup" xpath=".//cml:scalar[@dictRef='a:id']" />    <transform process="addChild" xpath="." elementName="cml:scalar" dictRef="a:ranksignature" />    <transform process="delete" xpath=".//cml:list[count(*) =0]" />    <transform process="delete" xpath=".//cml:list[count(*) =0]" />    <transform process="delete" xpath=".//cml:module[count(*) =0]" />

        </template>  <template id="bondPaths" pattern="\s*BOND\s*PATHS.*AND\s*PROPERTIES.*" endPattern="\s*-&#123;20,&#125;-*$\s*" endPattern2="~" endOffset="0">    <record repeat="4" />    <record id="bondPaths" repeat="*" makeArray="true">&#123;I,a:bondPath&#125;&#123;I, a:cp&#125;&#123;I,x:atomInx1&#125;&#123;I,x:atomInx2&#125;&#123;F,a:distance&#125;&#123;F,a:length&#125;&#123;F,a:steps&#125;</record>    <transform process="pullup" xpath=".//cml:list[@cmlx:templateRef='bondPaths']" />
        </template>
    </templateList>
<transform process="delete" xpath=".//cml:list[count(*) =0]" />
<transform process="delete" xpath=".//cml:list[count(*) =0]" />
<transform process="setValue" xpath=".//cml:scalar[@dictRef='a:ranksignature']" value="$string(concat(..//cml:scalar[@dictRef='a:rank']/text(),',', ..//cml:scalar[@dictRef='a:signature']/text()))" />