1<?xml version="1.0" encoding="UTF-8"?>
2<!-- edited with XMLSPY v5 rel. 4 U
3 (http://www.xmlspy.com) by Jeongnim Kim (University of Illinois) -->
4<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
5 elementFormDefault="qualified" attributeFormDefault="unqualified">
6 <xs:simpleType name="ArrayDataTypeEnum">
7  <xs:restriction base="xs:NMTOKEN">
8   <xs:enumeration value="posArray" />
9   <xs:enumeration value="indexArray" />
10   <xs:enumeration value="scalarArray" />
11   <xs:enumeration value="stringArray" />
12   <xs:enumeration value="tensorArray" />
13  </xs:restriction>
14 </xs:simpleType>
15 <xs:simpleType name="SelectEnum">
16  <xs:restriction base="xs:NMTOKEN">
17   <xs:enumeration value="yes" />
18   <xs:enumeration value="no" />
19  </xs:restriction>
20 </xs:simpleType>
21 <xs:simpleType name="JastrowFunctionEnum">
22  <xs:restriction base="xs:NMTOKENS">
23   <xs:enumeration value="One-Body" />
24   <xs:enumeration value="Two-Body" />
25   <xs:enumeration value="Three-Body" />
26   <xs:enumeration value="Polarization" />
27  </xs:restriction>
28 </xs:simpleType>
29 <xs:simpleType name="FunctorEnum">
30  <xs:restriction base="xs:NMTOKEN">
31   <xs:enumeration value="Gaussian" />
32   <xs:enumeration value="Slater" />
33   <xs:enumeration value="Pade" />
34  </xs:restriction>
35 </xs:simpleType>
36 <xs:simpleType name="QHamiltonianEnum">
37  <xs:restriction base="xs:NMTOKEN">
38   <xs:enumeration value="generic" />
39   <xs:enumeration value="molecule" />
40  </xs:restriction>
41 </xs:simpleType>
42 <xs:simpleType name="QSystemEnum">
43  <xs:restriction base="xs:NMTOKEN">
44   <xs:enumeration value="quantum" />
45   <xs:enumeration value="molecule" />
46   <xs:enumeration value="crystal" />
47  </xs:restriction>
48 </xs:simpleType>
49 <xs:simpleType name="PairPotEnum">
50  <xs:restriction base="xs:NMTOKEN">
51   <xs:enumeration value="coulomb" />
52   <xs:enumeration value="pseudo" />
53   <xs:enumeration value="cpp" />
54  </xs:restriction>
55 </xs:simpleType>
56 <xs:simpleType name="AOTypeEnum">
57  <xs:restriction base="xs:NMTOKEN">
58   <xs:enumeration value="Any" />
59   <xs:enumeration value="Numerical" />
60   <xs:enumeration value="Gaussian" />
61   <xs:enumeration value="STO" />
62  </xs:restriction>
63 </xs:simpleType>
64 <xs:simpleType name="AngularTypeEnum">
65  <xs:restriction base="xs:NMTOKEN">
66   <xs:enumeration value="spherical" />
67   <xs:enumeration value="explicit" />
68  </xs:restriction>
69 </xs:simpleType>
70 <xs:simpleType name="JastrowFunctorEnum">
71  <xs:restriction base="xs:NMTOKENS">
72   <xs:enumeration value="pade" />
73   <xs:enumeration value="pade2" />
74   <xs:enumeration value="no-cusp" />
75  </xs:restriction>
76 </xs:simpleType>
77 <xs:simpleType name="SPOTypeEnum">
78  <xs:restriction base="xs:NMTOKEN">
79   <xs:enumeration value="PW" />
80   <xs:enumeration value="bspline" />
81   <xs:enumeration value="MolecularOrbital" />
82   <xs:enumeration value="NumericalOrbital" />
83  </xs:restriction>
84 </xs:simpleType>
85 <xs:simpleType name="GridTypeEnum">
86  <xs:restriction base="xs:NMTOKEN">
87   <xs:enumeration value="log" />
88   <xs:enumeration value="linear" />
89   <xs:enumeration value="numerical" />
90   <xs:enumeration value="log0" />
91  </xs:restriction>
92 </xs:simpleType>
93 <xs:simpleType name="QMCMoveEnum">
94  <xs:restriction base="xs:NMTOKEN">
95   <xs:enumeration value="pbyp" />
96   <xs:enumeration value="walker" />
97  </xs:restriction>
98 </xs:simpleType>
99 <xs:simpleType name="QMCEngineEnum">
100  <xs:restriction base="xs:NMTOKEN">
101   <xs:enumeration value="vmc" />
102   <xs:enumeration value="dmc" />
103   <xs:enumeration value="rmc" />
104   <xs:enumeration value="optimize" />
105   <xs:enumeration value="test" />
106  </xs:restriction>
107 </xs:simpleType>
108 <xs:simpleType name="StateEnum">
109  <xs:restriction base="xs:NMTOKEN">
110   <xs:enumeration value="ground" />
111   <xs:enumeration value="excited" />
112  </xs:restriction>
113 </xs:simpleType>
114 <xs:complexType name="parameterType">
115  <xs:annotation>
116   <xs:documentation>
117    named parameter. The data type of the parameter can be any atomic
118    data, e.g., int, double, fixed-length vector. Any datatype which
119    implements io operators (&lt;&lt; and &gt;&gt; in C++) is valid.
120   </xs:documentation>
121  </xs:annotation>
122  <xs:simpleContent>
123   <xs:extension base="xs:string">
124    <xs:attribute name="id" type="xs:ID" use="optional">
125     <xs:annotation>
126      <xs:documentation>ID of the parameter.</xs:documentation>
127     </xs:annotation>
128    </xs:attribute>
129    <xs:attribute name="ref" type="xs:IDREF" use="optional">
130     <xs:annotation>
131      <xs:documentation>Reference to other parameter</xs:documentation>
132     </xs:annotation>
133    </xs:attribute>
134    <xs:attribute name="name" type="xs:string" use="required">
135     <xs:annotation>
136      <xs:documentation>
137       Name of the parameter in the application. The parameters are
138       extensively used to set the simulation parameters with default
139       values. The parammeters with the same names are accepted and the
140       last value is used.
141      </xs:documentation>
142     </xs:annotation>
143    </xs:attribute>
144    <xs:attribute name="unit" type="xs:string" use="optional" />
145   </xs:extension>
146  </xs:simpleContent>
147 </xs:complexType>
148 <xs:complexType name="attribType">
149  <xs:annotation>
150   <xs:documentation>
151    generic attribute of an object which is a collection of atomic
152    components. For example, particleset consists of 1 to any number of
153    particles and each particle has attributes, e.g., position, id,
154    velocity etc. The particles that belong to a particleset have the
155    same number of attributes.
156   </xs:documentation>
157  </xs:annotation>
158  <xs:simpleContent>
159   <xs:extension base="xs:string">
160    <xs:attribute name="name" type="xs:string" use="required">
161     <xs:annotation>
162      <xs:documentation>Name of the attribute type.</xs:documentation>
163     </xs:annotation>
164    </xs:attribute>
165    <xs:attribute name="datatype" type="ArrayDataTypeEnum"
166     use="required">
167     <xs:annotation>
168      <xs:documentation>Data type of the attribType.</xs:documentation>
169     </xs:annotation>
170    </xs:attribute>
171    <xs:attribute name="units" type="xs:anySimpleType" use="optional"
172     default="none" />
173    <xs:attribute name="condition" type="xs:boolean" use="optional"
174     default="0">
175     <xs:annotation>
176      <xs:documentation>
177       True if the values are in the unit. An example is posArray which
178       can be in the unit of a supercell or Cartesian unit.
179      </xs:documentation>
180     </xs:annotation>
181    </xs:attribute>
182    <xs:attribute name="size" type="xs:int" use="optional"
183     default="0">
184     <xs:annotation>
185      <xs:documentation>The size of this attribute.</xs:documentation>
186     </xs:annotation>
187    </xs:attribute>
188   </xs:extension>
189  </xs:simpleContent>
190 </xs:complexType>
191 <xs:complexType name="arrayDataType">
192  <xs:annotation>
193   <xs:documentation>
194    Class to encapsulate array types. Attributes are used to define the
195    dimensionality and the datatype of the array.
196   </xs:documentation>
197  </xs:annotation>
198  <xs:simpleContent>
199   <xs:extension base="xs:string">
200    <xs:attribute name="id" type="xs:ID" use="optional" />
201    <xs:attribute name="name" type="xs:string" use="optional" />
202    <xs:attribute name="datatype" type="xs:string" use="required">
203     <xs:annotation>
204      <xs:documentation>
205       Type of the array elements. Intrisic data types of C++ and user
206       classes which implement the basic I/O operators, e.g. TinyVector
207       of a fixed dimension of any type.
208      </xs:documentation>
209     </xs:annotation>
210    </xs:attribute>
211    <xs:attribute name="dims" type="xs:string" use="optional"
212     default="1">
213     <xs:annotation>
214      <xs:documentation>
215       The dimension of an array. The dimensions of a multi-dimensional
216       array are given by integers separated by commas.
217      </xs:documentation>
218     </xs:annotation>
219    </xs:attribute>
220    <xs:attribute name="dataset" type="xs:string" use="optional">
221     <xs:annotation>
222      <xs:documentation>
223       Link to an external data source, e.g., the full path of a hdf5
224       dataset.
225      </xs:documentation>
226     </xs:annotation>
227    </xs:attribute>
228   </xs:extension>
229  </xs:simpleContent>
230 </xs:complexType>
231 <xs:complexType name="groupType">
232  <xs:annotation>
233   <xs:documentation>
234    A group to which any number of components of an object belong.
235   </xs:documentation>
236  </xs:annotation>
237  <xs:sequence>
238   <xs:element name="parameter" type="parameterType" minOccurs="0"
239    maxOccurs="unbounded">
240    <xs:annotation>
241     <xs:documentation>
242      Common properties of the elements in this group. The reserved
243      names of the parameters are charge, valencecharge, and mass.
244     </xs:documentation>
245    </xs:annotation>
246   </xs:element>
247   <xs:element name="attrib" type="attribType" minOccurs="0"
248    maxOccurs="unbounded">
249    <xs:annotation>
250     <xs:documentation>
251      Attributes of the elements of this group. The reserved names are
252      position, id, and ionid.
253     </xs:documentation>
254    </xs:annotation>
255   </xs:element>
256  </xs:sequence>
257  <xs:attribute name="name" type="xs:string" use="required" />
258  <xs:attribute name="size" type="xs:int" use="optional" default="0" />
259 </xs:complexType>
260 <xs:complexType name="applicationType">
261  <xs:annotation>
262   <xs:documentation>
263    descriptins of the application including the version of an
264    application and special features of the application.
265   </xs:documentation>
266  </xs:annotation>
267  <xs:simpleContent>
268   <xs:extension base="xs:string">
269    <xs:attribute name="name" type="xs:string" default="qmcpack" />
270    <xs:attribute name="role" type="xs:string" />
271    <xs:attribute name="class" type="xs:string" />
272    <xs:attribute name="version" type="xs:string" />
273   </xs:extension>
274  </xs:simpleContent>
275 </xs:complexType>
276 <xs:complexType name="projectType">
277  <xs:annotation>
278   <xs:documentation>Define a project.</xs:documentation>
279  </xs:annotation>
280  <xs:simpleContent>
281   <xs:extension base="xs:string">
282    <xs:attribute name="id" type="xs:string" use="required">
283     <xs:annotation>
284      <xs:documentation>Title of the project.</xs:documentation>
285     </xs:annotation>
286    </xs:attribute>
287    <xs:attribute name="series" type="xs:string" use="required">
288     <xs:annotation>
289      <xs:documentation>
290       Serial number to manage multiple runs of a project.
291      </xs:documentation>
292     </xs:annotation>
293    </xs:attribute>
294   </xs:extension>
295  </xs:simpleContent>
296 </xs:complexType>
297 <xs:complexType name="randomType">
298  <xs:annotation>
299   <xs:documentation>random generator.</xs:documentation>
300  </xs:annotation>
301  <xs:simpleContent>
302   <xs:extension base="xs:string">
303    <xs:attribute name="parallel" type="xs:string" default="true" />
304    <xs:attribute name="seed" type="xs:string" default="-1" />
305   </xs:extension>
306  </xs:simpleContent>
307 </xs:complexType>
308 <xs:complexType name="hdfFileType">
309  <xs:annotation>
310   <xs:documentation>hdf5 file</xs:documentation>
311  </xs:annotation>
312 </xs:complexType>
313 <xs:complexType name="unitcellType">
314  <xs:annotation>
315   <xs:documentation>
316    unit cell of a simulation.
317    <![CDATA[
318  <unitcell>
319    <parameter name="scale">1.0</parameter>
320    <parameter name="lattice">
321     13.66536560e+00 0.0000000000e+00 0.0000000000e+00
322     0.0000000000e+00 13.66536560e+00 0.0000000000e+00
323     0.0000000000e+00 0.0000000000e+00 13.66536560e+00
324    </parameter>
325    <parameter name="bconds">p p p</parameter>
326    <parameter name="LR_dim_cutoff">10</parameter>
327  </unitcell>
328    ]]>
329   </xs:documentation>
330  </xs:annotation>
331  <xs:sequence>
332   <xs:element name="parameter" type="parameterType" minOccurs="0"
333    maxOccurs="unbounded" />
334  </xs:sequence>
335 </xs:complexType>
336 <xs:complexType name="ParticleSetType">
337  <xs:annotation>
338   <xs:documentation>
339    Define a set of particles. Typically used to give an input
340    configuration. UnitCell is optional.
341   </xs:documentation>
342  </xs:annotation>
343  <xs:sequence minOccurs="0">
344   <xs:element name="unitcell" type="unitcellType" minOccurs="0">
345    <xs:annotation>
346     <xs:documentation>
347      Define the unit cell of a simulation.
348     </xs:documentation>
349    </xs:annotation>
350   </xs:element>
351   <xs:element name="group" type="groupType" minOccurs="0"
352    maxOccurs="unbounded">
353    <xs:annotation>
354     <xs:documentation>
355      Define distinct groups of the particles in this particleset.
356     </xs:documentation>
357    </xs:annotation>
358   </xs:element>
359   <xs:element name="attrib" type="attribType" minOccurs="0"
360    maxOccurs="unbounded">
361    <xs:annotation>
362     <xs:documentation>
363      Add generic particle attributes. The number of data per attribute
364      is defined by num of ParticleSetType. Reserved names are position,
365      id and ionid.
366     </xs:documentation>
367    </xs:annotation>
368   </xs:element>
369  </xs:sequence>
370  <xs:attribute name="id" type="xs:ID" use="optional" />
371  <xs:attribute name="name" type="xs:string" use="required" />
372  <xs:attribute name="size" type="xs:int" use="optional" default="0">
373   <xs:annotation>
374    <xs:documentation>
375     The number of particles contained in a ParticleSet. If it is
376     non-zero integer, ohmms assumes that the input attributes
377     (attribType) contain the same number of data.
378    </xs:documentation>
379   </xs:annotation>
380  </xs:attribute>
381  <xs:attribute name="src" type="xs:string" use="optional" />
382  <xs:attribute name="type" type="QSystemEnum">
383   <xs:annotation>
384    <xs:documentation>
385     Keyword/enumeration to describe a particleset.
386    </xs:documentation>
387   </xs:annotation>
388  </xs:attribute>
389 </xs:complexType>
390 <xs:complexType name="qmcHamiltonianType">
391  <xs:annotation>
392   <xs:documentation>Hamiltonian</xs:documentation>
393  </xs:annotation>
394  <xs:sequence>
395   <xs:element name="pairpot" type="pairpotType" minOccurs="0"
396    maxOccurs="unbounded" />
397   <xs:element name="constant" type="pairpotType" minOccurs="0"
398    maxOccurs="unbounded" />
399  </xs:sequence>
400  <xs:attribute name="name" type="xs:string" use="optional" />
401  <xs:attribute name="type" type="QHamiltonianEnum" use="optional"
402   default="generic">
403  </xs:attribute>
404  <xs:attribute name="target" type="xs:string" use="optional"
405   default="e" />
406 </xs:complexType>
407 <xs:complexType name="pairpotType">
408  <xs:annotation>
409   <xs:documentation>
410    Operators that make up a Hamiltonian
411   </xs:documentation>
412  </xs:annotation>
413  <xs:sequence>
414   <xs:element name="pseudo" type="pseudopotType" minOccurs="0"
415    maxOccurs="unbounded" />
416  </xs:sequence>
417  <xs:attribute name="name" type="xs:string" use="required" />
418  <xs:attribute name="type" type="PairPotEnum" use="required" />
419  <xs:attribute name="source" type="xs:string" use="optional"
420   default="i" />
421  <xs:attribute name="target" type="xs:string" use="optional"
422   default="e" />
423  <xs:attribute name="wavefunction" type="xs:string" use="optional"
424   default="psi0" />
425  <xs:attribute name="format" type="xs:string" use="optional"
426   default="xml" />
427 </xs:complexType>
428 <xs:complexType name="pseudopotType">
429  <xs:annotation>
430   <xs:documentation>Pseudopotential for a species</xs:documentation>
431  </xs:annotation>
432  <xs:attribute name="elementType" type="xs:string" use="required" />
433  <xs:attribute name="href" type="xs:string" use="optional" />
434 </xs:complexType>
435 <xs:complexType name="basisGroupType">
436  <xs:annotation>
437   <xs:documentation>
438    Define a basisGroup for each channel. The number of basisGroupType
439    elements is related to the size of a bsis set.
440   </xs:documentation>
441  </xs:annotation>
442  <xs:sequence>
443   <xs:element name="radfunc" type="radfuncType" minOccurs="0"
444    maxOccurs="unbounded" />
445  </xs:sequence>
446  <xs:attribute name="rid" type="xs:string" use="required" />
447  <xs:attribute name="n" type="xs:integer" />
448  <xs:attribute name="l" type="xs:integer" default="0" />
449  <xs:attribute name="m" type="xs:integer" default="0" />
450  <xs:attribute name="type" type="FunctorEnum" default="Gaussian">
451  </xs:attribute>
452 </xs:complexType>
453 <xs:complexType name="atomicBasisSetType">
454  <xs:annotation>
455   <xs:documentation>
456    basisSet associated with an atom or any object identified a
457    coordinate.
458   </xs:documentation>
459  </xs:annotation>
460  <xs:sequence>
461   <xs:element name="grid" type="gridType" minOccurs="0" />
462   <xs:element name="basisGroup" type="basisGroupType"
463    maxOccurs="unbounded" />
464  </xs:sequence>
465  <xs:attribute name="name" type="xs:string" use="optional" />
466  <xs:attribute name="type" type="AOTypeEnum" use="optional"
467   default="Any">
468  </xs:attribute>
469  <xs:attribute name="elementType" type="xs:string" use="required" />
470  <xs:attribute name="normalized" type="SelectEnum" use="optional"
471   default="no" />
472  <xs:attribute name="angular" type="AngularTypeEnum" use="optional"
473   default="spherical" />
474  <xs:attribute name="expandYlm" type="SelectEnum" use="optional"
475   default="yes" />
476 </xs:complexType>
477 <xs:complexType name="detType">
478  <xs:annotation>
479   <xs:documentation>Dirac determinant.</xs:documentation>
480  </xs:annotation>
481  <xs:sequence>
482   <xs:element name="occupation" type="occupationType" minOccurs="0" />
483   <xs:element name="coefficient" type="arrayDataType" minOccurs="0" />
484  </xs:sequence>
485  <xs:attribute name="id" type="xs:ID" use="optional" />
486  <xs:attribute name="spin" type="xs:integer" use="optional" />
487  <xs:attribute name="orbitals" type="xs:integer" use="required" />
488  <xs:attribute name="href" type="xs:string" use="optional" />
489 </xs:complexType>
490 <xs:complexType name="basissetType">
491  <xs:annotation>
492   <xs:documentation>general basis set.</xs:documentation>
493  </xs:annotation>
494  <xs:sequence>
495   <xs:element name="atomicBasisSet" type="atomicBasisSetType"
496    minOccurs="0" maxOccurs="unbounded" />
497   <xs:element name="grid" type="gridType" minOccurs="0" />
498  </xs:sequence>
499 </xs:complexType>
500 <xs:complexType name="slaterDetType">
501  <xs:annotation>
502   <xs:documentation>Slater determinant</xs:documentation>
503  </xs:annotation>
504  <xs:sequence>
505   <xs:element name="coefficient" type="xs:double" default="1.0"
506    minOccurs="0" />
507   <xs:element name="determinant" type="detType" maxOccurs="unbounded" />
508  </xs:sequence>
509 </xs:complexType>
510 <xs:complexType name="jastrowFuncType">
511  <xs:annotation>
512   <xs:documentation>
513    elementary scaling functor for Jastrow function
514   </xs:documentation>
515  </xs:annotation>
516  <xs:sequence>
517   <xs:element name="parameter" type="parameterType" minOccurs="0"
518    maxOccurs="unbounded" />
519  </xs:sequence>
520  <xs:attribute name="speciesA" type="xs:string" use="required" />
521  <xs:attribute name="speciesB" type="xs:string" use="required" />
522  <xs:attribute name="type" type="xs:string" use="optional" />
523 </xs:complexType>
524 <xs:complexType name="jastrowType">
525  <xs:annotation>
526   <xs:documentation>Jastrow correlation function</xs:documentation>
527  </xs:annotation>
528  <xs:sequence>
529   <xs:element name="correlation" type="jastrowFuncType"
530    maxOccurs="unbounded" />
531  </xs:sequence>
532  <xs:attribute name="name" type="xs:string" use="required" />
533  <xs:attribute name="type" type="JastrowFunctionEnum" use="required">
534  </xs:attribute>
535  <xs:attribute name="spin" type="SelectEnum" use="optional"
536   default="no" />
537  <xs:attribute name="transform" type="SelectEnum" use="optional"
538   default="no" />
539  <xs:attribute name="function" type="JastrowFunctorEnum"
540   use="required" />
541 </xs:complexType>
542 <xs:complexType name="detSetType">
543  <xs:annotation>
544   <xs:documentation>Set of Slater Determinants</xs:documentation>
545  </xs:annotation>
546  <xs:sequence>
547   <xs:element name="basisSet" type="basissetType" minOccurs="0" />
548   <xs:element name="slaterDeterminant" type="slaterDetType"
549    maxOccurs="unbounded" />
550  </xs:sequence>
551  <xs:attribute name="type" type="SPOTypeEnum" />
552  <xs:attribute name="source" type="xs:string" use="optional"
553   default="i" />
554  <xs:attribute name="transform" type="SelectEnum" use="optional"
555   default="no" />
556 </xs:complexType>
557 <xs:complexType name="wavefunctionType">
558  <xs:annotation>
559   <xs:documentation>Many-body trial wave function</xs:documentation>
560  </xs:annotation>
561  <xs:sequence>
562   <xs:element name="jastrow" minOccurs="0" maxOccurs="unbounded">
563    <xs:annotation>
564     <xs:documentation>
565      Any number of correlation functions
566     </xs:documentation>
567    </xs:annotation>
568    <xs:complexType>
569     <xs:complexContent>
570      <xs:extension base="jastrowType">
571       <xs:attribute name="source" type="xs:string" use="optional"
572        default="ion" />
573      </xs:extension>
574     </xs:complexContent>
575    </xs:complexType>
576   </xs:element>
577   <xs:element name="determinantSet" type="detSetType" minOccurs="0" />
578  </xs:sequence>
579  <xs:attribute name="id" type="xs:ID" use="optional" />
580  <xs:attribute name="name" type="xs:string" use="optional"
581   default="psi0" />
582  <xs:attribute name="target" type="xs:string" use="optional"
583   default="e" />
584 </xs:complexType>
585 <xs:complexType name="radfuncType">
586  <xs:annotation>
587   <xs:documentation>
588    Generic one-dimensional function with respect to an origin
589   </xs:documentation>
590  </xs:annotation>
591  <xs:attribute name="id" type="xs:ID" use="optional" />
592  <xs:attribute name="exponent" type="xs:double" use="required" />
593  <xs:attribute name="contraction" type="xs:double" use="optional"
594   default="1.0" />
595  <xs:attribute name="node" type="xs:integer" use="optional"
596   default="1" />
597 </xs:complexType>
598 <xs:complexType name="gridType">
599  <xs:annotation>
600   <xs:documentation>One-dimensional grid</xs:documentation>
601  </xs:annotation>
602  <xs:attribute name="id" type="xs:ID" use="optional" />
603  <xs:attribute name="ri" type="xs:double" use="optional"
604   default="1e-6">
605   <xs:annotation>
606    <xs:documentation>First value of the grid</xs:documentation>
607   </xs:annotation>
608  </xs:attribute>
609  <xs:attribute name="rf" type="xs:double" use="optional"
610   default="100">
611   <xs:annotation>
612    <xs:documentation>Last value of the grid</xs:documentation>
613   </xs:annotation>
614  </xs:attribute>
615  <xs:attribute name="type" type="GridTypeEnum" use="optional"
616   default="log">
617   <xs:annotation>
618    <xs:documentation>Grid type</xs:documentation>
619   </xs:annotation>
620  </xs:attribute>
621  <xs:attribute name="npts" type="xs:integer" use="optional"
622   default="1001">
623   <xs:annotation>
624    <xs:documentation>
625     Number of grid points where the data are defined. The valid range
626     of the indices depends on closed attribute.
627    </xs:documentation>
628   </xs:annotation>
629  </xs:attribute>
630  <xs:attribute name="closed" type="SelectEnum" use="optional"
631   default="no">
632   <xs:annotation>
633    <xs:documentation>
634     If closed="yes", the data are defined on [ri,rf]. If closed="no",
635     on [ri,rf).
636    </xs:documentation>
637   </xs:annotation>
638  </xs:attribute>
639 </xs:complexType>
640 <xs:complexType name="occupationType">
641  <xs:annotation>
642   <xs:documentation>occuation number</xs:documentation>
643  </xs:annotation>
644  <xs:attribute name="id" type="xs:ID" use="optional" />
645  <xs:attribute name="mode" type="StateEnum" use="optional"
646   default="ground" />
647  <xs:attribute name="size" type="xs:integer" use="optional"
648   default="1" />
649 </xs:complexType>
650 <xs:complexType name="qmcSystemType">
651  <xs:annotation>
652   <xs:documentation>
653    Complex type defining a system for a QMC simulation.
654   </xs:documentation>
655  </xs:annotation>
656  <xs:sequence>
657   <xs:element name="simulationcell" type="unitcellType" minOccurs="0"
658    maxOccurs="1">
659    <xs:annotation>
660     <xs:documentation>
661      Define a simulation cell for the particlesets within this
662      qmcsystem declaration.
663     </xs:documentation>
664    </xs:annotation>
665   </xs:element>
666   <xs:element name="particleset" type="ParticleSetType" minOccurs="0"
667    maxOccurs="unbounded" />
668   <xs:element name="wavefunction" type="wavefunctionType" minOccurs="0"
669    maxOccurs="unbounded" />
670   <xs:element name="hamiltonian" type="qmcHamiltonianType"
671    minOccurs="0" maxOccurs="unbounded" />
672  </xs:sequence>
673  <xs:attribute name="id" type="xs:ID" use="optional" />
674  <xs:attribute name="name" type="xs:string" use="optional" />
675 </xs:complexType>
676 <xs:attributeGroup name="qmcAttribGroup">
677  <xs:annotation>
678   <xs:documentation>
679    Common attributes for qmc drivers
680   </xs:documentation>
681  </xs:annotation>
682  <xs:attribute name="title" type="xs:string">
683   <xs:annotation>
684    <xs:documentation>A title of this qmc secton.</xs:documentation>
685   </xs:annotation>
686  </xs:attribute>
687  <xs:attribute name="target" type="xs:string" use="optional"
688   default="e" />
689  <xs:attribute name="move" type="QMCMoveEnum" use="optional"
690   default="walker">
691   <xs:annotation>
692    <xs:documentation>
693     Update mode of a qmc driver. pbyp: particle-by-particle update
694     walker: walker-by-walker update
695    </xs:documentation>
696   </xs:annotation>
697  </xs:attribute>
698  <xs:attribute name="append" type="SelectEnum" use="optional"
699   default="no">
700   <xs:annotation>
701    <xs:documentation>
702     If yes, the section is appended to a preceding qmc section.
703    </xs:documentation>
704   </xs:annotation>
705  </xs:attribute>
706 </xs:attributeGroup>
707 <xs:attributeGroup name="multipleAttribGroup">
708  <xs:annotation>
709   <xs:documentation>Attributes for umbrella sampling</xs:documentation>
710  </xs:annotation>
711  <xs:attribute name="multiple" type="SelectEnum" use="optional"
712   default="no" />
713  <xs:attribute name="warp" type="SelectEnum" use="optional"
714   default="no" />
715 </xs:attributeGroup>
716 <xs:complexType name="qmcSystemRefType">
717  <xs:annotation>
718   <xs:documentation>
719    reference to a set of particleset, wavefunction and hamiltonian for
720    correlated sampling
721   </xs:documentation>
722  </xs:annotation>
723  <xs:attribute name="wavefunction" type="xs:string" use="required">
724   <xs:annotation>
725    <xs:documentation>The name of wavefunction.</xs:documentation>
726   </xs:annotation>
727  </xs:attribute>
728  <xs:attribute name="hamiltonian" type="xs:string" use="required">
729   <xs:annotation>
730    <xs:documentation>The name of hamiltonian.</xs:documentation>
731   </xs:annotation>
732  </xs:attribute>
733 </xs:complexType>
734 <xs:complexType name="qmcType">
735  <xs:annotation>
736   <xs:documentation>QMC section</xs:documentation>
737  </xs:annotation>
738  <xs:choice minOccurs="0" maxOccurs="unbounded">
739   <xs:element name="qmcsystem" type="qmcSystemRefType" minOccurs="0"
740    maxOccurs="unbounded" />
741   <xs:element name="parameter" type="parameterType" minOccurs="0"
742    maxOccurs="unbounded" />
743   <xs:element name="cost" type="parameterType" minOccurs="0"
744    maxOccurs="unbounded" />
745   <xs:element name="optimize" minOccurs="0">
746    <xs:complexType>
747     <xs:simpleContent>
748      <xs:extension base="xs:string" />
749     </xs:simpleContent>
750    </xs:complexType>
751   </xs:element>
752   <xs:element name="optimizer" minOccurs="0">
753    <xs:complexType>
754     <xs:sequence>
755      <xs:element name="parameter" type="parameterType" minOccurs="0"
756       maxOccurs="unbounded" />
757     </xs:sequence>
758     <xs:attribute name="method" />
759    </xs:complexType>
760   </xs:element>
761  </xs:choice>
762  <xs:attributeGroup ref="qmcAttribGroup" />
763  <xs:attribute name="method" type="QMCEngineEnum" use="optional"
764   default="test" />
765 </xs:complexType>
766 <xs:complexType name="qmcLoopType">
767  <xs:annotation>
768   <xs:documentation>
769    A loop of QMC sections to execute multiple times with the same
770    simulation parameters.
771   </xs:documentation>
772  </xs:annotation>
773  <xs:sequence>
774   <xs:element name="qmc" type="qmcType" minOccurs="1"
775    maxOccurs="unbounded" />
776  </xs:sequence>
777  <xs:attribute name="max" type="xs:int" use="optional" default="1">
778   <xs:annotation>
779    <xs:documentation>
780     Maximum number of iterations of this loop. The state, parameters
781     and execution orders are preserved within a loop. project/@series
782     is automatically increted whenever a loop is completed.
783    </xs:documentation>
784   </xs:annotation>
785  </xs:attribute>
786 </xs:complexType>
787 <!-- Simulation -->
788 <xs:element name="simulation">
789  <xs:annotation>
790   <xs:documentation>root of qmc simulation</xs:documentation>
791  </xs:annotation>
792  <xs:complexType>
793   <xs:sequence>
794    <xs:element name="project" type="projectType">
795     <xs:annotation>
796      <xs:documentation>
797       Describe a project. id and series are used to group the runs.
798      </xs:documentation>
799     </xs:annotation>
800    </xs:element>
801    <xs:element name="application" type="applicationType"
802     minOccurs="0">
803     <xs:annotation>
804      <xs:documentation>
805       Comments on the application used for a run.
806      </xs:documentation>
807     </xs:annotation>
808    </xs:element>
809    <xs:element name="random" type="randomType" minOccurs="0">
810     <xs:annotation>
811      <xs:documentation>
812       Set the seeds for the random number generators. Default is to
813       assign parallel random numbers based on the date and time of a
814       run.
815      </xs:documentation>
816     </xs:annotation>
817    </xs:element>
818    <xs:choice minOccurs="0" maxOccurs="unbounded">
819     <xs:element name="particleset" type="ParticleSetType">
820      <xs:annotation>
821       <xs:documentation>Define a particleset.</xs:documentation>
822      </xs:annotation>
823     </xs:element>
824     <xs:element name="wavefunction" type="wavefunctionType">
825      <xs:annotation>
826       <xs:documentation>Define a trial wavefunction.</xs:documentation>
827      </xs:annotation>
828     </xs:element>
829     <xs:element name="hamiltonian" type="qmcHamiltonianType">
830      <xs:annotation>
831       <xs:documentation>Define a hamiltonian.</xs:documentation>
832      </xs:annotation>
833     </xs:element>
834     <xs:element name="qmcsystem">
835      <xs:annotation>
836       <xs:documentation>
837        A composite class which can have particlesets, wavefunction and
838        hamiltonian.
839       </xs:documentation>
840      </xs:annotation>
841      <xs:complexType>
842       <xs:complexContent>
843        <xs:extension base="qmcSystemType">
844         <xs:attribute name="href" type="xs:string" use="optional" />
845        </xs:extension>
846       </xs:complexContent>
847      </xs:complexType>
848     </xs:element>
849     <xs:element name="include">
850      <xs:annotation>
851       <xs:documentation>
852        Interface to include an external xml file.
853       </xs:documentation>
854      </xs:annotation>
855      <xs:complexType>
856       <xs:attribute name="href" type="xs:string" use="required" />
857      </xs:complexType>
858     </xs:element>
859    </xs:choice>
860    <xs:choice minOccurs="0" maxOccurs="unbounded">
861     <xs:element name="qmc" type="qmcType">
862      <xs:annotation>
863       <xs:documentation>Execute a qmc section.</xs:documentation>
864      </xs:annotation>
865     </xs:element>
866     <xs:element name="loop" type="qmcLoopType">
867      <xs:annotation>
868       <xs:documentation>
869        Execute the enclosed qmc sections multiple times.
870       </xs:documentation>
871      </xs:annotation>
872     </xs:element>
873    </xs:choice>
874   </xs:sequence>
875  </xs:complexType>
876 </xs:element>
877 <xs:element name="qmcsystem" type="qmcSystemType">
878  <xs:annotation>
879   <xs:documentation>
880    Root of external xml documents to define a QMC system. In general,
881    tools generate a xml file which contains particlesets and
882    wavefunctions extracted from the outputs of DFT/QC packages.
883   </xs:documentation>
884  </xs:annotation>
885 </xs:element>
886</xs:schema>