l601.anisospin ​
Implementation level ​
Type | Status |
---|---|
CML extraction template | |
HTML5 representation |
Template attributes ​
Attribute | Value |
---|---|
source | Gaussian log |
id | l601.anisospin |
name | Anisotropic Spin Dipole Couplings (Include) |
repeat | * |
newline | $ |
pattern | \s*\-+\s*$.*Anisotropic Spin Dipole.* |
endPattern | \s*$\s* |
xml:base | l601/l601.anisospin.xml |
Comment ​
because this looks like a title it must come early.
It will also be separate from the main l601
Input ​
---------------------------------------------------------------------------------
Anisotropic Spin Dipole Couplings in Principal Axis System
---------------------------------------------------------------------------------
Atom a.u. MegaHertz Gauss 10(-4) cm-1 Axes
Baa 0.0000 0.000 0.000 0.000 0.4655 0.8233 -0.3247
1 Si(29) Bbb 0.0000 0.000 0.000 0.000 0.6169 -0.5649 -0.5480
Bcc 0.0000 0.000 0.000 0.000 0.6346 -0.0547 0.7709
Baa 0.0000 0.000 0.000 0.000 0.8075 -0.0154 -0.5897
2 O(17) Bbb 0.0000 0.000 0.000 0.000 -0.0071 0.9993 -0.0358
Bcc 0.0000 0.000 0.000 0.000 0.5898 0.0331 0.8069
Output text ​
xml
<comment class="example.output" id="l601.anisospin">
<module cmlx:templateRef="l601.anisospin">
<module cmlx:lineCount="3" cmlx:templateRef="atom">
<matrix rows="3" columns="3" dataType="xsd:double" dictRef="g:axis" cmlx:templateRef="baa">0.4655 0.8233 -0.3247 0.6169 -0.5649 -0.548 0.6346 -0.0547 0.7709</matrix>
<vector3 dictRef="g:coupling.au">0.0 0.0 0.0</vector3>
<vector3 dictRef="g:coupling.mhz">0.0 0.0 0.0</vector3>
<vector3 dictRef="g:coupling.g">0.0 0.0 0.0</vector3>
<vector3 dictRef="g:coupling.ten">0.0 0.0 0.0</vector3>
<scalar dataType="xsd:integer" dictRef="x:serial">1</scalar>
<scalar dataType="xsd:string" dictRef="x:elementType">Si</scalar>
<scalar dataType="xsd:integer" dictRef="x:isotopeNumber">29</scalar>
</module>
<module cmlx:lineCount="3" cmlx:templateRef="atom">
<matrix rows="3" columns="3" dataType="xsd:double" dictRef="g:axis" cmlx:templateRef="baa">0.8075 -0.0154 -0.5897 -0.0071 0.9993 -0.0358 0.5898 0.0331 0.8069</matrix>
<vector3 dictRef="g:coupling.au">0.0 0.0 0.0</vector3>
<vector3 dictRef="g:coupling.mhz">0.0 0.0 0.0</vector3>
<vector3 dictRef="g:coupling.g">0.0 0.0 0.0</vector3>
<vector3 dictRef="g:coupling.ten">0.0 0.0 0.0</vector3>
<scalar dataType="xsd:integer" dictRef="x:serial">2</scalar>
<scalar dataType="xsd:string" dictRef="x:elementType">O</scalar>
<scalar dataType="xsd:integer" dictRef="x:isotopeNumber">17</scalar>
</module>
</module>
</comment>
Template definition ​
xml
<record repeat="6" />
<templateList> <template id="atom" name="atom" pattern="\s*Baa.*" endPattern="\s*" repeat="*"> <record id="baa">\s*Baa{F,g:aniso.a.au}{F,g:aniso.a.mhz}{F,g:aniso.a.gauss}{F,g:aniso.a.ten-4cml-1}{F,x:x.x}{F,x:x.y}{F,x:x.z}</record> <record id="bbb">\s*{I,x:serial}{A,x:elementType}\({I,x:isotopeNumber}\)\s*Bbb{F,g:aniso.b.au}{F,g:aniso.b.mhz}{F,g:aniso.b.gauss}{F,g:aniso.b.ten-4cml-1}{F,x:y.x}{F,x:y.y}{F,x:y.z}</record> <record id="bcc">\s*Bcc{F,g:aniso.c.au}{F,g:aniso.c.mhz}{F,g:aniso.c.gauss}{F,g:aniso.c.ten-4cml-1}{F,x:z.x}{F,x:z.y}{F,x:z.z}</record> <transform process="createMatrix33" xpath="." dictRef="g:axis" from=".//cml:scalar[contains(@dictRef,':x.') or contains(@dictRef,':y.') or contains(@dictRef,':z.')]" /> <transform process="createVector3" xpath="." dictRef="g:coupling.g" from="./cml:list/cml:list/cml:scalar[contains(@dictRef,'.a.g') or contains(@dictRef,'.b.g') or contains(@dictRef,'.c.g')]" /> <transform process="createVector3" xpath="." dictRef="g:coupling.au" from="./cml:list/cml:list/cml:scalar[contains(@dictRef,'.a.a') or contains(@dictRef,'.b.a') or contains(@dictRef,'.c.a')]" /> <transform process="createVector3" xpath="." dictRef="g:coupling.mhz" from="./cml:list/cml:list/cml:scalar[contains(@dictRef,'.a.m') or contains(@dictRef,'.b.m') or contains(@dictRef,'.c.m')]" /> <transform process="createVector3" xpath="." dictRef="g:coupling.ten" from="./cml:list/cml:list/cml:scalar[contains(@dictRef,'.a.t') or contains(@dictRef,'.b.t') or contains(@dictRef,'.c.t')]" /> <transform process="move" to="." xpath=".//*[contains(@dictRef,':serial') or contains(@dictRef,':elementType') or contains(@dictRef,':isotop') or contains(@dictRef,':coupling')]" /> <transform process="pullupSingleton" xpath="./cml:list/cml:list" /> <transform process="pullupSingleton" xpath="./cml:list" />
</template>
</templateList>
<transform process="delete" xpath=".//cml:list[count(*)=0]" />
<transform process="delete" xpath=".//cml:list[count(*)=0]" />