1<?xml version="1.0" encoding="UTF-8"?>
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
3  <xs:include schemaLocation="http://www.mcc.uiuc.edu/qmc/schema/qmcbase.xsd"/>
4  <xs:complexType name="gridType">
5    <xs:simpleContent>
6      <xs:extension base="xs:string">
7        <xs:attribute name="ri" type="xs:double" default="1.e-6"/>
8        <xs:attribute name="rf" type="xs:double" default="1.e2"/>
9        <xs:attribute name="npts" type="xs:integer" default="1001"/>
10        <xs:attribute name="step" type="xs:double" default="0.0125"/>
11        <xs:attribute name="scale" type="xs:double" default="-1.0"/>
12        <xs:attribute name="type" default="log">
13          <xs:simpleType>
14            <xs:restriction base="xs:NMTOKEN">
15              <xs:enumeration value="log"/>
16              <xs:enumeration value="linear"/>
17              <xs:enumeration value="numerical"/>
18            </xs:restriction>
19          </xs:simpleType>
20        </xs:attribute>
21      </xs:extension>
22    </xs:simpleContent>
23  </xs:complexType>
24  <xs:complexType name="radfuncType">
25    <xs:annotation>
26      <xs:documentation>
27      Type representing a radial functor, generic function on an one-dimensional grid.
28      </xs:documentation>
29    </xs:annotation>
30    <xs:simpleContent>
31      <xs:attribute name="id" type="xs:string"></xs:attribute>
32      <xs:attribute name="exponent" type="xs:double" default="0.0"/>
33      <xs:attribute name="contraction" type="xs:double" default="1.0"/>
34      <xs:attribute name="node" type="xs:integer" default="1"/>
35      <xs:attribute name="rcut" type="xs:double" use="optional" default="10"></xs:attribute>
36    </xs:simpleContent>
37  </xs:complexType>
38  <xs:complexType name="basisGroupType">
39    <xs:sequence>
40      <xs:element name="radfunc" type="radfuncType" minOccurs="0" maxOccurs="unbounded"/>
41    </xs:sequence>
42    <xs:attribute name="rid" type="xs:string" use="required"/>
43    <xs:attribute name="n" type="xs:integer"/>
44    <xs:attribute name="l" type="xs:integer" default="0"/>
45    <xs:attribute name="m" type="xs:integer" default="0"/>
46    <xs:attribute name="type" default="Gaussian">
47      <xs:simpleType>
48        <xs:restriction base="xs:NMTOKEN">
49          <xs:enumeration value="Gaussian"/>
50          <xs:enumeration value="Slater"/>
51          <xs:enumeration value="Pade"/>
52          <xs:enumeration value="WM"/>
53        </xs:restriction>
54      </xs:simpleType>
55    </xs:attribute>
56  </xs:complexType>
57  <xs:complexType name="atomicBasisSetType">
58    <xs:sequence>
59      <xs:element name="grid" type="gridType" minOccurs="0"/>
60      <xs:element name="basisGroup" type="basisGroupType" maxOccurs="unbounded"/>
61    </xs:sequence>
62    <xs:attribute name="name" type="xs:string" use="optional"/>
63    <xs:attribute name="type" use="optional" default="Any">
64      <xs:simpleType>
65        <xs:restriction base="xs:NMTOKEN">
66          <xs:enumeration value="Any"/>
67          <xs:enumeration value="Numerical"/>
68          <xs:enumeration value="Gaussian"/>
69          <xs:enumeration value="STO"/>
70          <xs:enumeration value="WM"/>
71        </xs:restriction>
72      </xs:simpleType>
73    </xs:attribute>
74    <xs:attribute name="elementType" type="xs:string" use="required"/>
75    <xs:attribute name="normalized" use="optional" default="no">
76      <xs:simpleType>
77        <xs:restriction base="xs:NMTOKEN">
78          <xs:enumeration value="yes"/>
79          <xs:enumeration value="no"/>
80        </xs:restriction>
81      </xs:simpleType>
82    </xs:attribute>
83    <xs:attribute name="angular" use="optional" default="spherical">
84      <xs:simpleType>
85        <xs:restriction base="xs:NMTOKEN">
86          <xs:enumeration value="spherical"/>
87          <xs:enumeration value="explicit"/>
88        </xs:restriction>
89      </xs:simpleType>
90    </xs:attribute>
91    <xs:attribute name="expandYlm" use="optional" default="yes">
92      <xs:simpleType>
93        <xs:restriction base="xs:NMTOKEN">
94          <xs:enumeration value="yes"/>
95          <xs:enumeration value="no"/>
96        </xs:restriction>
97      </xs:simpleType>
98    </xs:attribute>
99  </xs:complexType>
100  <xs:complexType name="detType">
101    <xs:sequence>
102      <xs:element name="occupation" type="arrayDataType" minOccurs="0"/>
103      <xs:element name="coefficient" type="arrayDataType" minOccurs="0"/>
104    </xs:sequence>
105    <xs:attribute name="id" type="xs:ID" use="optional"/>
106    <xs:attribute name="spin" type="xs:integer" use="optional"/>
107    <xs:attribute name="orbitals" type="xs:integer" use="required"/>
108    <xs:attribute name="ref" type="xs:string"/>
109    <!-- this should be idref -->
110  </xs:complexType>
111  <xs:complexType name="basissetType">
112    <xs:sequence>
113      <xs:element name="atomicBasisSet" type="atomicBasisSetType" maxOccurs="unbounded"/>
114    </xs:sequence>
115  </xs:complexType>
116  <xs:complexType name="slaterDetType">
117    <xs:sequence>
118      <xs:element name="determinant" type="detType" maxOccurs="2"/>
119    </xs:sequence>
120  </xs:complexType>
121  <xs:complexType name="jastrowFuncType">
122    <xs:annotation>
123      <xs:documentation>jastrow functor</xs:documentation>
124    </xs:annotation>
125    <xs:sequence>
126      <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"/>
127    </xs:sequence>
128    <xs:attribute name="speciesA" type="xs:string" use="required"/>
129    <xs:attribute name="speciesB" type="xs:string" use="required"/>
130  </xs:complexType>
131  <xs:complexType name="jastrowType">
132    <xs:annotation>
133      <xs:documentation>Jastrow correlation function</xs:documentation>
134    </xs:annotation>
135    <xs:sequence>
136      <xs:element name="parameter" type="parameterType"
137        minOccurs="0" maxOccurs="unbounded" />
138      <xs:element name="correlation" type="jastrowFuncType"
139        minOccurs="0" maxOccurs="unbounded" />
140      <xs:element name="basisset" type="basissetType"
141        minOccurs="0" maxOccurs="1" />
142      <xs:element name="coefficient" type="sparseArrayType"></xs:element>
143    </xs:sequence>
144    <xs:attribute name="name" type="xs:string" use="required"/>
145    <xs:attribute name="type" use="required">
146      <xs:simpleType>
147        <xs:restriction base="xs:NMTOKENS">
148          <xs:enumeration value="One-Body"/>
149          <xs:enumeration value="Two-Body"/>
150          <xs:enumeration value="Three-Body"/>
151          <xs:enumeration value="Polarization"/>
152        </xs:restriction>
153      </xs:simpleType>
154    </xs:attribute>
155    <xs:attribute name="function" type="xs:string" use="required"/>
156  </xs:complexType>
157  <xs:complexType name="detSetType">
158    <xs:sequence>
159      <xs:element name="basisset" type="basissetType" minOccurs="0"/>
160      <xs:element name="slaterdeterminant" type="slaterDetType" maxOccurs="unbounded"/>
161    </xs:sequence>
162    <xs:attribute name="type">
163      <xs:simpleType>
164        <xs:restriction base="xs:NMTOKEN">
165          <xs:enumeration value="MolecularOrbital"/>
166          <xs:enumeration value="PlaneWave"/>
167          <xs:enumeration value="PW"/>
168          <xs:enumeration value="bspline"/>
169        </xs:restriction>
170      </xs:simpleType>
171    </xs:attribute>
172    <xs:attribute name="source" type="xs:string" use="optional" default="i"/>
173    <xs:attribute name="usegrid" default="no">
174      <xs:simpleType>
175        <xs:restriction base="xs:NMTOKEN">
176          <xs:enumeration value="yes"/>
177          <xs:enumeration value="no"/>
178        </xs:restriction>
179      </xs:simpleType>
180    </xs:attribute>
181  </xs:complexType>
182  <xs:complexType name="wavefunctionType">
183    <xs:annotation>
184      <xs:documentation>A many-body trial wave function</xs:documentation>
185    </xs:annotation>
186    <xs:sequence>
187      <xs:element name="jastrow" type="jastrowType" minOccurs="0" maxOccurs="unbounded">
188        <xs:annotation>
189          <xs:documentation>Any number of correlation functions</xs:documentation>
190        </xs:annotation>
191      </xs:element>
192      <xs:element name="determinantset" type="detSetType" minOccurs="0"/>
193    </xs:sequence>
194    <xs:attribute name="ref" type="xs:IDREF" use="optional" default="e"/>
195  </xs:complexType>
196</xs:schema>
197