qtaim ​
Implementation level ​
Type | Status |
---|---|
CML extraction template | |
HTML5 representation |
Template attributes ​
Attribute | Value |
---|---|
source | AMS 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 6 -1.625772 2.821169 0.011007
2 1 -0.780176 3.160038 -0.600405
3 1 -2.558918 3.228874 -0.397255
4 1 -1.669552 1.724981 -0.000837
5 1 -1.494411 3.170738 1.042628
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: -1.625772 2.821169 0.011007
VALUES OF SOME FUNCTIONS AT CPs (a.u.):
Rho = 0.1240652E+03
--------------------------------------------------------
CP # 2
(RANK,SIGNATURE): (3,-3)
CP COORDINATES: -0.780176 3.160038 -0.600405
VALUES OF SOME FUNCTIONS AT CPs (a.u.):
Rho = 0.4970016E+00
--------------------------------------------------------
CP # 3
(RANK,SIGNATURE): (3,-3)
CP COORDINATES: -2.558918 3.228874 -0.397255
VALUES OF SOME FUNCTIONS AT CPs (a.u.):
Rho = 0.4969989E+00
--------------------------------------------------------
CP # 9
(RANK,SIGNATURE): (3,-1)
CP COORDINATES: -2.214438 3.078366 -0.246541
EIGENVALUES OF HESSIAN MATRIX:
-0.6774897E+00 -0.6774878E+00 0.5166115E+00
EIGENVECTORS (ORTHONORMAL) OF HESSIAN MATRIX (COLUMNS):
0.5094958E+00 -0.1303148E+00 0.8505481E+00
0.4069349E+00 -0.8344515E+00 -0.3716109E+00
-0.7581676E+00 -0.5354519E+00 0.3721199E+00
HESSIAN MATRIX:
0.1863615E+00 -0.3774229E+00 0.3779402E+00
-0.5125894E+00 -0.1651240E+00
-0.5121381E+00
VALUES OF SOME FUNCTIONS AT CPs (a.u.):
Rho = 0.2636369E+00
|GRAD(Rho)| = 0.3317931E-15
GRAD(Rho)x = 0.2989145E-15
GRAD(Rho)y = 0.8950089E-16
GRAD(Rho)z = 0.1128112E-15
Laplacian = -0.8383660E+00
(-1/4)Del**2(Rho)) = 0.2095915E+00
Diamond = 0.1184869E+01
Metallicity = -0.8909566E+01 Comput.Theor.Chem. 1053 (2015) 112
Ellipticity = 0.2716282E-05
INHOMOGENEITY PARAMETERS AT CPs (a.u.)
Delta_u = 0.6266899E+00 J.Phys.Chem.A, 113 (2009) 12322; PCCP, 16 (2014) 14539
Delta_s = 0.5991571E+00 >>
Delta_t = 0.7478656E+00 >>
Inhom_s = 0.1669011E+01 Chem.Phys.Lett. 579 (2013) 122
Inhom_ex = 0.1228964E+01 >>
ENERGY COMPONENTS AT CPs (a.u.)
Gb(Abramov) = 0.1715006E+00 ActaCryst. 153 (1997) 264; Chem.Phys.Lett. 285 (1998) 170
Vb(Abramov) = -0.5525926E+00 >>
Hb(Abramov) = -0.3810921E+00 >>
Ex_ueg = -0.1248514E+00 PCCP, 16 (2014) 14539
Ec_ueg = -0.1608835E-01 >>
Delta_ex = 0.8266378E-01 >>
Delta_ec = 0.1977484E-01 >>
Delta_et = -0.4621819E+00 >>
Pxc = 0.7760357E+01 JCP, 132 (2010) 211101
Qxc = 0.4180250E+01 >>
----------------------------------------------------------------
BOND PATHS (BP) AND PROPERTIES ALONG THEM ARE WRITTEN TO TAPE21
----------------------------------------------------------------
#BP #CP Atom Atom Distance BP Lenth BP Steps
-----------------------------------------------------------
1 6 1 2 1.097129 1.097129 16
2 9 1 3 1.097115 1.097115 15
3 8 1 4 1.097126 1.097126 16
4 7 1 5 1.097130 1.097131 15
-----------------------------------------------------------
Output text ​
xml
<comment class="example.output" id="qtaim">
<module cmlx:templateRef="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">6 1 1 1 1</array>
<array dataType="xsd:double" dictRef="x:coords" size="15">-1.625772 2.821169 0.011007 -0.780176 3.160038 -0.600405 -2.558918 3.228874 -0.397255 -1.669552 1.724981 -0.000837 -1.494411 3.170738 1.042628</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">-1.625772</scalar>
<scalar dataType="xsd:double" dictRef="cc:y3">2.821169</scalar>
<scalar dataType="xsd:double" dictRef="cc:z3">0.011007</scalar>
</list>
<module cmlx:templateRef="functions">
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Rho</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.1240652E+03</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">-0.780176</scalar>
<scalar dataType="xsd:double" dictRef="cc:y3">3.160038</scalar>
<scalar dataType="xsd:double" dictRef="cc:z3">-0.600405</scalar>
</list>
<module cmlx:templateRef="functions">
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Rho</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.4970016E+00</scalar>
</list>
</module>
<scalar dictRef="a:ranksignature">3,-3</scalar>
</module>
<module cmlx:templateRef="point">
<scalar dataType="xsd:integer" dictRef="a:id">3</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">-2.558918</scalar>
<scalar dataType="xsd:double" dictRef="cc:y3">3.228874</scalar>
<scalar dataType="xsd:double" dictRef="cc:z3">-0.397255</scalar>
</list>
<module cmlx:templateRef="functions">
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Rho</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.4969989E+00</scalar>
</list>
</module>
<scalar dictRef="a:ranksignature">3,-3</scalar>
</module>
<module cmlx:templateRef="point">
<scalar dataType="xsd:integer" dictRef="a:id">9</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">-2.214438</scalar>
<scalar dataType="xsd:double" dictRef="cc:y3">3.078366</scalar>
<scalar dataType="xsd:double" dictRef="cc:z3">-0.246541</scalar>
</list>
<module cmlx:templateRef="functions">
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Rho</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.2636369E+00</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">|GRAD(Rho)|</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.3317931E-15</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">GRAD(Rho)x</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.2989145E-15</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">GRAD(Rho)y</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.8950089E-16</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">GRAD(Rho)z</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.1128112E-15</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Laplacian</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">-0.8383660E+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.2095915E+00</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Diamond</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.1184869E+01</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Metallicity</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">-0.8909566E+01</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Ellipticity</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.2716282E-05</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.1715006E+00</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Vb(Abramov)</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">-0.5525926E+00</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Hb(Abramov)</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">-0.3810921E+00</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Ex_ueg</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">-0.1248514E+00</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Ec_ueg</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">-0.1608835E-01</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Delta_ex</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.8266378E-01</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Delta_ec</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.1977484E-01</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Delta_et</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">-0.4621819E+00</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Pxc</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.7760357E+01</scalar>
</list>
<list>
<scalar dataType="xsd:string" dictRef="cc:parameter">Qxc</scalar>
<scalar dataType="xsd:double" dictRef="cc:value">0.4180250E+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">6 9 8 7</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.097129 1.097115 1.097126 1.097130</array>
<array dataType="xsd:double" dictRef="a:length" size="4">1.097129 1.097115 1.097126 1.097131</array>
<array dataType="xsd:double" dictRef="a:steps" size="4">16 15 16 15</array>
</list>
</module>
</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]" />
</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="delete" xpath=".//cml:module[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()))" />