qtaim ​
Implementation level ​
Type | Status |
---|---|
CML extraction template | |
HTML5 representation |
Template attributes ​
Attribute | Value |
---|---|
source | ADF log |
id | qtaim |
name | QTAIM 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* |
endOffset | 2 |
repeat | * |
xml:base | results/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">{I,a:id}{I, cc:atomicNumber}{3E,x:coords}</record> <transform process="pullup" xpath="//cml:list[@cmlx:templateRef='atoms']" />
</template> <template id="point" pattern="\s*CP.*" endPattern="\s*-{20,}" repeat="*" endOffset="1"> <record>\s*CP\s*\#{I,a:id}</record> <record>\s*.RANK\,SIGNATURE.:\s*\({I,a:rank},{I,a:signature}\)\s*</record> <record /> <record id="coords">.*:{E,cc:x3}{E,cc:y3}{E,cc:z3}</record> <templateList> <template id="functions" pattern="\s*VALUES\s*OF\s*SOME\s*FUNCTIONS.*" endPattern="(\s+\S+){3}\s*$\s*-{20,}.*" endPattern2="(\s+\S+){3}\s*$\s*" endOffset="1"> <record repeat="2" /> <record repeat="*">{X,cc:parameter}={E,cc:value}.*</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+){3}.*$\s*-{20,}.*" endPattern2="(\s+\S+){3}.*$\s*" endOffset="1"> <record repeat="2" /> <record repeat="*">{X,cc:parameter}={E,cc:value}.*</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*-{20,}-*$\s*" endPattern2="~" endOffset="0"> <record repeat="4" /> <record id="bondPaths" repeat="*" makeArray="true">{I,a:bondPath}{I, a:cp}{I,x:atomInx1}{I,x:atomInx2}{F,a:distance}{F,a:length}{F,a:steps}</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()))" />