atoms

Implementation level

Type

Status

CML extraction template

image1

HTML5 representation

image2

Template attributes

Attribute

Value

source

CASTEP log

id

atoms

pattern

\s*\-{10,}.*$\s*Cell\sContents.*

endPattern

\s*$\s*\-{10,}

endOffset

0

xml:base

setup/atoms.xml

Input

               -------------------------------
                         Cell Contents
               -------------------------------
             Total number of ions in cell =    8
          Total number of species in cell =    1
            Max number of any one species =    8

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x  Element    Atom        Fractional coordinates of atoms  x
x            Number           u          v          w      x
x----------------------------------------------------------x
x  Si           1         0.000000   0.000000   0.000000   x
x  Si           2         0.000000   0.500000   0.500000   x
x  Si           3         0.500000   0.000000   0.500000   x
x  Si           4         0.500000   0.500000   0.000000   x
x  Si           5         0.750000   0.250000   0.750000   x
x  Si           6         0.250000   0.250000   0.250000   x
x  Si           7         0.250000   0.750000   0.750000   x
x  Si           8         0.750000   0.750000   0.250000   x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


             No user defined ionic velocities

               -------------------------------

Output text

 1<comment class="example.output" id="atoms">
 2        <module cmlx:templateRef="atoms">
 3            <module cmlx:templateRef="atomtable">
 4               <list cmlx:templateRef="atom">
 5                  <list>
 6                     <scalar dataType="xsd:string" dictRef="cc:elementType">Si</scalar>
 7                     <scalar dataType="xsd:integer" dictRef="cc:serial">1</scalar>
 8                     <scalar dataType="xsd:double" dictRef="cc:xFract">0.000000</scalar>
 9                     <scalar dataType="xsd:double" dictRef="cc:yFract">0.000000</scalar>
10                     <scalar dataType="xsd:double" dictRef="cc:zFract">0.000000</scalar>
11                  </list>
12                  <list>
13                     <scalar dataType="xsd:string" dictRef="cc:elementType">Si</scalar>
14                     <scalar dataType="xsd:integer" dictRef="cc:serial">2</scalar>
15                     <scalar dataType="xsd:double" dictRef="cc:xFract">0.000000</scalar>
16                     <scalar dataType="xsd:double" dictRef="cc:yFract">0.500000</scalar>
17                     <scalar dataType="xsd:double" dictRef="cc:zFract">0.500000</scalar>
18                  </list>
19                  <list>
20                     <scalar dataType="xsd:string" dictRef="cc:elementType">Si</scalar>
21                     <scalar dataType="xsd:integer" dictRef="cc:serial">3</scalar>
22                     <scalar dataType="xsd:double" dictRef="cc:xFract">0.500000</scalar>
23                     <scalar dataType="xsd:double" dictRef="cc:yFract">0.000000</scalar>
24                     <scalar dataType="xsd:double" dictRef="cc:zFract">0.500000</scalar>
25                  </list>
26                  <list>
27                     <scalar dataType="xsd:string" dictRef="cc:elementType">Si</scalar>
28                     <scalar dataType="xsd:integer" dictRef="cc:serial">4</scalar>
29                     <scalar dataType="xsd:double" dictRef="cc:xFract">0.500000</scalar>
30                     <scalar dataType="xsd:double" dictRef="cc:yFract">0.500000</scalar>
31                     <scalar dataType="xsd:double" dictRef="cc:zFract">0.000000</scalar>
32                  </list>
33                  <list>
34                     <scalar dataType="xsd:string" dictRef="cc:elementType">Si</scalar>
35                     <scalar dataType="xsd:integer" dictRef="cc:serial">5</scalar>
36                     <scalar dataType="xsd:double" dictRef="cc:xFract">0.750000</scalar>
37                     <scalar dataType="xsd:double" dictRef="cc:yFract">0.250000</scalar>
38                     <scalar dataType="xsd:double" dictRef="cc:zFract">0.750000</scalar>
39                  </list>
40                  <list>
41                     <scalar dataType="xsd:string" dictRef="cc:elementType">Si</scalar>
42                     <scalar dataType="xsd:integer" dictRef="cc:serial">6</scalar>
43                     <scalar dataType="xsd:double" dictRef="cc:xFract">0.250000</scalar>
44                     <scalar dataType="xsd:double" dictRef="cc:yFract">0.250000</scalar>
45                     <scalar dataType="xsd:double" dictRef="cc:zFract">0.250000</scalar>
46                  </list>
47                  <list>
48                     <scalar dataType="xsd:string" dictRef="cc:elementType">Si</scalar>
49                     <scalar dataType="xsd:integer" dictRef="cc:serial">7</scalar>
50                     <scalar dataType="xsd:double" dictRef="cc:xFract">0.250000</scalar>
51                     <scalar dataType="xsd:double" dictRef="cc:yFract">0.750000</scalar>
52                     <scalar dataType="xsd:double" dictRef="cc:zFract">0.750000</scalar>
53                  </list>
54                  <list>
55                     <scalar dataType="xsd:string" dictRef="cc:elementType">Si</scalar>
56                     <scalar dataType="xsd:integer" dictRef="cc:serial">8</scalar>
57                     <scalar dataType="xsd:double" dictRef="cc:xFract">0.750000</scalar>
58                     <scalar dataType="xsd:double" dictRef="cc:yFract">0.750000</scalar>
59                     <scalar dataType="xsd:double" dictRef="cc:zFract">0.250000</scalar>
60                  </list>
61               </list>
62               <atomArray>
63                  <atom elementType="Si" id="a1" xFract="0.000000" yFract="0.000000" zFract="0.000000">Si</atom>
64                  <atom elementType="Si" id="a2" xFract="0.000000" yFract="0.500000" zFract="0.500000">Si</atom>
65                  <atom elementType="Si" id="a3" xFract="0.500000" yFract="0.000000" zFract="0.500000">Si</atom>
66                  <atom elementType="Si" id="a4" xFract="0.500000" yFract="0.500000" zFract="0.000000">Si</atom>
67                  <atom elementType="Si" id="a5" xFract="0.750000" yFract="0.250000" zFract="0.750000">Si</atom>
68                  <atom elementType="Si" id="a6" xFract="0.250000" yFract="0.250000" zFract="0.250000">Si</atom>
69                  <atom elementType="Si" id="a7" xFract="0.250000" yFract="0.750000" zFract="0.750000">Si</atom>
70                  <atom elementType="Si" id="a8" xFract="0.750000" yFract="0.750000" zFract="0.250000">Si</atom>
71               </atomArray>
72            </module>
73         </module>
74    </comment>

Template definition

1<templateList>  <template id="atomtable" pattern="\s+x{20,}x.*" endPattern="\s+x{20,}x.*">    <record repeat="4" />    <record repeat="*" id="atom">\s*x{A,cc:elementType}{I,cc:serial}{F,cc:xFract}{F,cc:yFract}{F,cc:zFract}\s*x.*</record>    <transform process="addChild" xpath=".//cml:list[@cmlx:templateRef='atom']/cml:list" elementName="cml:atom" id="atom" />    <transform process="addAttribute" xpath=".//cml:atom" name="id" value="$string(concat('a', count(preceding::cml:atom)+1))" />    <transform process="addAttribute" xpath=".//cml:atom" name="elementType" value="$string(preceding-sibling::cml:scalar[@dictRef='cc:elementType']/text())" />    <transform process="addAttribute" xpath=".//cml:atom" name="xFract" value="$string(preceding-sibling::cml:scalar[@dictRef='cc:xFract']/text())" />    <transform process="addAttribute" xpath=".//cml:atom" name="yFract" value="$string(preceding-sibling::cml:scalar[@dictRef='cc:yFract']/text())" />    <transform process="addAttribute" xpath=".//cml:atom" name="zFract" value="$string(preceding-sibling::cml:scalar[@dictRef='cc:zFract']/text())" />    <transform process="setValue" xpath=".//cml:atom" value="$string(preceding-sibling::cml:scalar[@dictRef='cc:elementType']/text())" />    <transform process="addChild" xpath="." elementName="cml:atomArray" />    <transform process="move" xpath=".//cml:atom" to="./cml:atomArray" />
2            </template>
3        </templateList>
4<transform process="delete" xpath=".//cml:list[count(*) = 0]" />
5<transform process="delete" xpath=".//cml:list[count(*) = 0]" />