Skip to content

l601.anisospin ​

Implementation level ​

TypeStatus
CML extraction template
HTML5 representation

Template attributes ​

AttributeValue
sourceGaussian log
idl601.anisospin
nameAnisotropic Spin Dipole Couplings (Include)
repeat*
newline$
pattern\s*\-+\s*$.*Anisotropic Spin Dipole.*
endPattern\s*$\s*
xml:basel601/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&#123;F,g:aniso.a.au&#125;&#123;F,g:aniso.a.mhz&#125;&#123;F,g:aniso.a.gauss&#125;&#123;F,g:aniso.a.ten-4cml-1&#125;&#123;F,x:x.x&#125;&#123;F,x:x.y&#125;&#123;F,x:x.z&#125;</record>    <record id="bbb">\s*&#123;I,x:serial&#125;&#123;A,x:elementType&#125;\(&#123;I,x:isotopeNumber&#125;\)\s*Bbb&#123;F,g:aniso.b.au&#125;&#123;F,g:aniso.b.mhz&#125;&#123;F,g:aniso.b.gauss&#125;&#123;F,g:aniso.b.ten-4cml-1&#125;&#123;F,x:y.x&#125;&#123;F,x:y.y&#125;&#123;F,x:y.z&#125;</record>    <record id="bcc">\s*Bcc&#123;F,g:aniso.c.au&#125;&#123;F,g:aniso.c.mhz&#125;&#123;F,g:aniso.c.gauss&#125;&#123;F,g:aniso.c.ten-4cml-1&#125;&#123;F,x:z.x&#125;&#123;F,x:z.y&#125;&#123;F,x:z.z&#125;</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]" />