<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href='http://www.xml-cml.org/common/style/dictionary.xsl' type='text/xsl'?>
<dictionary convention="convention:dictionary" dictionaryPrefix="compchem" namespace="http://www.xml-cml.org/dictionary/compchem/" title="Computational Chemistry - Core Concepts" xmlns="http://www.xml-cml.org/schema" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:cml="http://www.xml-cml.org/schema/cml" xmlns:cmlx="http://www.xml-cml.org/schema/cmlx" xmlns:convention="http://www.xml-cml.org/convention/" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:nonSi="http://www.xml-cml.org/unit/nonSi/" xmlns:si="http://www.xml-cml.org/unit/si/" xmlns:unitType="http://www.xml-cml.org/unit/unitType/">

    <dc:contributor>Peter Murray-Rust</dc:contributor>
    <dc:contributor>Weerapong Phadungsukanan</dc:contributor>
    <dc:contributor>Jens Thomas</dc:contributor>

    <description>
        <h:p>Toplevel dictionary for computational chemistry</h:p>
        <h:p>
            Concepts in this dictionary are general throughout computational chemistry and
            are used extensively in the CompChem convention to describe the structure of
            computational chemistry.
        </h:p>
    </description>
    <dc:author>Weerapong Phadungsukanan</dc:author>

<!--Modules-->

    <entry id="calculation" term="calculation" dataType="cml:module" units="si:none" unitType="unitType:none">
        <definition>
            <h:p>A calculation module for a computational job.</h:p>
        </definition>
        <description>
            <h:p>
                A calculation module represents the concept of the model calculation,
                optimisation or iteration processes for a computational job. Almost any computational procedure is a
                calculation, and calculations can be nested to any level. As an example, an SCF calculation consists 
                of an initial guess calculation, and a number of iterative calculations, the output of the final iteration
                constituting the results. An SCF geometry optimisation process consists of multiple calculation steps,
                each of which consists of an SCF calculation, followed by a gradient calculation.</h:p>
                
             <h:p>A calculation must contain an <h:a href="#initialization">initialization</h:a> module, which defines
             the inputs to the calculation (and therefore the calculation), and a <h:a href="#finalization">finalization </h:a> 
             module, which holds all outputs. The calculation module may contain many other modules describing the process 
             of the calculation, but that may not necessarily be desirable as results.</h:p>
        </description>
    </entry>

    <entry id="environment" term="environment" dataType="cml:module" units="si:none" unitType="unitType:none">
        <definition>
            <h:p>Module holding concepts relating to the environment that
                the job used or required</h:p>
        </definition>
        <description>
            <h:p>
                The computing environment concept refers to a hardware platform,
                software application, the operating system and any hardware and 
                software configurations used in order to run the job or computational
                task. The environment includes the metadata such as machine id, 
                username, starting and finishing date time, tools, compilers, IP, etc.
            </h:p>
            <h:p>
                This information is not related to input and output of the model but is
                supplementary to the software application to run properly and may vary 
                from machine to machine. Therefore, the computing environment is OPTIONAL 
                element in the CompChem convention.
            </h:p>
        </description>
    </entry>

    <entry id="finalization" term="finalization" dataType="cml:module" units="si:none" unitType="unitType:none">
        <definition>
            <h:p>A finalization module for a computational job or calculation.</h:p>
        </definition>
        <description>
            <h:p>
                A finalization module represents the concept of the model results for a
                computational job or calculation. This will usually be the output properties of the
                final calculation carried out by the job. The finalization module should
                contain a propertyList with scalar, array and matrix quantities, but may
                also contain more complex objects such as molecules or orbitals as cml:lists. For a job
                or calculation with multiple child calculations, the finalization may consist
                of an aggregation of the key results from the child calculations.
            </h:p>
           <h:p class="example">For an SCF calculation, the 
                finalization module should contain the calculated energies, together with information
                on the attained convergence (e.g. norm of the gradient) and the orbitals. For an SCF optimisation,
                it will contain the above, together with the final molecular coordinates and information
                on the geometry convergence criteria.</h:p>
            
        </description>
    </entry>

    <entry id="initialization" term="initialization" dataType="cml:module" units="si:none" unitType="unitType:none">
        <definition>
            <h:p>An initialization module for a computational job or calculation</h:p>
        </definition>
        <description>
            <h:p>
                An initialization module represents the concept of the model
                parameters and inputs for computational job. The module defines the
                calculation, so that it should be possible to reproduce the calculation
                based soley on the data in this module. The initialization module should
                contain a parameterList with scalar, array and matrix quantities, and the
                starting molecule, but may also contain more complex objects as cml:lists, such as the
                <h:a href="#basis_set">basis set</h:a>.
            </h:p>
        </description>
    </entry>

    <entry id="job" term="job" dataType="cml:module" units="si:none" unitType="unitType:none">
        <definition>
            <h:p>A job or computational task</h:p>
        </definition>
        <description>
            <h:p>
                The job concept represents a computational job performed by  quantum chemistry software, 
                e.g. geometry optimisation job,  frequency analysis job. The job can be considered as the unit of work
                that would be submitted to a computational resource. In almost all respects a job is identical
                to a <h:a href="#calculation">calculation</h:a>, in that it has an <h:a href="#initialization">initialization</h:a> 
                module, which holds the inputs for the calculation(s) to be run, and a <h:a href="#finalization">finalization</h:a>
                 module, which holds all outputs.  In addition, a job may contain an <h:a href="#environment">environment</h:a> 
                 module, which describes the conditions under which the job was run, such as the program (and version) used, 
                 hostname, number of CPUs etc.</h:p>
        </description>
    </entry>

    <entry id="jobList" term="job list" dataType="cml:module" units="si:none" unitType="unitType:none">
        <definition>
            <h:p>A list of computational jobs</h:p>
        </definition>
        <description>
            <h:p>
                A quantum chemistry calculation is often comprised of a
                series of subtasks, <h:i>e.g.</h:i> coarse optimisation -&gt; 
                fine optimisation -&gt; NMR Spectrum Analysis; this is because 
                most quantum chemistry software s are designed to be
                modularised and only to perform a single task at a time.
                The joblist concept is introduced to capture these series of 
                successive subtasks and links the information from one subtask 
                to the next subtask.
            </h:p>
        </description>
    </entry>

    <!--Environment terms-->

    <entry id="compileDate" term="compilation date" dataType="xsd:string" unitType="unitType:unknown">
        <definition>
            <h:p>The date that the executable was compiled.</h:p>
        </definition>
        <description>
            <h:p>The date that the executable used to run the job was compiled. This 
            can be useful for determining the version of the code that was used.</h:p>
            <h:p><h:a href="https://bitbucket.org/wwmm/jumbo-converters/src/9372621bca82/jumbo-converters-compchem/jumbo-converters-compchem-nwchem/src/main/resources/org/xmlcml/cml/converters/compchem/nwchem/log/templates/job.info.xml">Jumbo NWChem template</h:a></h:p>
        </description>
    </entry>

    <entry id="runDate" dataType="xsd:string" unitType="unitType:unknown" term="date">
        <definition>
            <h:p>The date that the job commenced.</h:p>
        </definition>
        <description>
            <h:p>The date that the job was started. For long-running jobs,
             this may not be the same as the completion date.</h:p>
            <h:p><h:a href="https://bitbucket.org/wwmm/jumbo-converters/src/9372621bca82/jumbo-converters-compchem/jumbo-converters-compchem-nwchem/src/main/resources/org/xmlcml/cml/converters/compchem/nwchem/log/templates/job.info.xml">Jumbo NWChem template</h:a></h:p>
        </description>
    </entry>

    <entry id="executable" dataType="xsd:string" unitType="unitType:none" units="si:none" term="executable program">
        <definition>
            <h:p>The path to the executable program</h:p>
        </definition>
        <description>
            <h:p>Many programs print the path of the executable in the output. This can 
            be used to help determine which version of a code was used to run the job.</h:p>
            <h:p><h:a href="https://bitbucket.org/wwmm/jumbo-converters/src/9372621bca82/jumbo-converters-compchem/jumbo-converters-compchem-nwchem/src/main/resources/org/xmlcml/cml/converters/compchem/nwchem/log/templates/job.info.xml">Jumbo NWChem template</h:a></h:p>
        </description>
    </entry>

    <entry id="hostName" dataType="xsd:string" unitType="unitType:none" units="si:none" term="host name">
        <definition>
            <h:p>The name of the host that the program was run on.</h:p>
        </definition>
        <description>
            <h:p>For multi-processor jobs that were run on multiple hosts this should be the master
            node or may be undefined.</h:p>
            <h:p><h:a href="https://bitbucket.org/wwmm/jumbo-converters/src/9372621bca82/jumbo-converters-compchem/jumbo-converters-compchem-nwchem/src/main/resources/org/xmlcml/cml/converters/compchem/nwchem/log/templates/job.info.xml">Jumbo NWChem template</h:a></h:p>
        </description>
    </entry>
    
    <entry id="inputFile" term="Input File" unitType="unitType:none" units="si:none" dataType="cml:module">
        <definition>
            <h:p>A cml module for a single literal representation of an input file.</h:p>
        </definition>
        <description>
            <h:p>The module will usually contain a list of scalars that represent the text of
            the input file.</h:p>
            <h:p>See the <h:a href="#inputFileList">inputFileList</h:a> for an example.</h:p>
        </description>
    </entry>
 
    <entry id="inputFileList" term="Input File List" unitType="unitType:none" units="si:none" dataType="cml:module">
        <definition>
            <h:p>A cml module containing a list of input files.</h:p>
        </definition>
        <description>
            <h:p>The cml module that is the outer most container for the 
            literal representation of one or more input files. An example for the 
            <h:a href="http://projects.ivec.org/gulp/">Gulp</h:a> code follows below:</h:p>
            <h:pre>
&lt;module dictRef="compchem:inputFileList"&gt;
&lt;module dictRef="compchem:inputFile"&gt;
  &lt;metadataList&gt;
    &lt;metadata name="compchem:inputFileName" content="test_cmlDumpDec_4a.in"/&gt;
  &lt;/metadataList&gt;
  &lt;scalar dataType="xsd:string"&gt;opti prop conp                                                                  &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;title                                                                           &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;alumina test file                                                               &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;end                                                                             &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;cell                                                                            &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;4.7602   4.7602  12.9933  90.000000  90.000000 120.0                            &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;frac                                                                            &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Al core 0.000000   0.000000   0.352160                                          &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Al shel 0.000000   0.000000   0.352160                                          &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O  core 0.306240   0.000000   0.250000                                          &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O  shel 0.306240   0.000000   0.250000                                          &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;space                                                                           &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;167                                                                             &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;species                                                                         &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Al core  0.043                                                                  &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Al shel  2.957                                                                  &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O  core  0.513                                                                  &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O  shel -2.513                                                                  &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;buckingham                                                                      &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Al shel O shel  2409.505 0.2649  0.00 0.0 10.0                                  &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O  shel O shel    25.410 0.6937 32.32 0.0 12.0                                  &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;spring                                                                          &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Al 403.98                                                                       &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O   20.53                                                                       &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;output xr example1                                                              &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;output marvin example1.mvn                                                      &lt;/scalar&gt;
&lt;/module&gt;
&lt;module dictRef="compchem:inputFile"&gt;
  &lt;metadataList&gt;
    &lt;metadata name="compchem:inputFileName" content="test_cmlDumpDec_4b.in"/&gt;
  &lt;/metadataList&gt;
  &lt;scalar dataType="xsd:string"&gt;fit conp simul opti                                                             &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;cell                                                                            &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;   4.914730   4.914730   5.406570  90.000000  90.000000 120.0                   &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;fractional                                                                      &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Si core  0.468200   0.000000   0.333333    4.000000                             &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O  core  0.413100   0.266100   0.213100    0.869020                             &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O  shel  0.431813   0.264902   0.204106   -2.869020                             &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;space                                                                           &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;152                                                                             &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;general 0 6 grad                                                                &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Si core O shel 1283.037674      0.320500     10.660000   0.0  8.0 1 0 0         &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;buck                                                                            &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O shel O shel 22764.0 0.149 27.88  0.0000  8.0000 0 0 0                         &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;spring                                                                          &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;O 74.92 0                                                                       &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;three                                                                           &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;Si core O shel O shel 2.097240   109.470000  1.8000  1.8000  3.2000 0 0         &lt;/scalar&gt;
  &lt;scalar dataType="xsd:string"&gt;dump example2.res                                                               &lt;/scalar&gt;
&lt;/module&gt;
&lt;/module&gt;
</h:pre>
        </description>
    </entry>

    
    <entry id="inputFileName" term="Input File Name" unitType="unitType:none" units="si:none" dataType="xsd:string">
        <definition>
            <h:p>A representation of the name of a single input file.</h:p>
        </definition>
        <description>
            <h:p>See the <h:a href="#inputFileList">inputFileList</h:a> for an example.</h:p>
        </description>
    </entry>

    <entry id="numProcs" dataType="xsd:string" unitType="unitType:dimensionless" units="si:none" term="number of processors">
        <definition>
            <h:p>The number of processors used to run the job.</h:p>
        </definition>
        <description>
            <h:p>The number of processors the job was executed on.</h:p>
            <h:p><h:a href="https://bitbucket.org/wwmm/jumbo-converters/src/9372621bca82/jumbo-converters-compchem/jumbo-converters-compchem-nwchem/src/main/resources/org/xmlcml/cml/converters/compchem/nwchem/log/templates/job.info.xml">Jumbo NWChem template</h:a></h:p>
        </description>
    </entry>

    <entry id="program" dataType="xsd:string" unitType="unitType:none" units="si:none" term="program">
        <definition>
            <h:p>The program being run</h:p>
        </definition>
        <description>
            <h:p>This is the name of the computational chemistry program
                being run.
                Known values for this are listed in the table below.
            </h:p>
            <h:table>

                <h:tr>
                    <h:th>Program</h:th>
                    <h:th>Description</h:th>
                </h:tr>

                <h:tr>
                    <h:td><h:a href="http://www.nwchem-sw.org/">nwchem</h:a></h:td>
                    <h:td>The Northwest Computational Chemistry Package
                        (NWChem)
                    </h:td>
                </h:tr>

                <h:tr>
                    <h:td><h:a href="http://www.gaussian.com/">gaussian</h:a></h:td>
                    <h:td>The Gaussian electronic structure code</h:td>
                </h:tr>

            </h:table>
            <h:p><h:a href="https://bitbucket.org/wwmm/jumbo-converters/src/9372621bca82/jumbo-converters-compchem/jumbo-converters-compchem-nwchem/src/main/resources/org/xmlcml/cml/converters/compchem/nwchem/log/templates/nccp.xml">Jumbo NWChem template</h:a></h:p>
        </description>
    </entry>

    <entry id="programVersion" dataType="xsd:string" unitType="unitType:none" units="si:none" term="program version">
        <definition>
            <h:p>program version</h:p>
        </definition>
        <description>
            <h:p>This specifies the version of the code that was used to
                run the calculation. Ideally it should specify a version
                in a version control system, although the version number
                (e.g. 6.1, Development) of the code is acceptable.</h:p>
            <h:p><h:a href="https://bitbucket.org/wwmm/jumbo-converters/src/9372621bca82/jumbo-converters-compchem/jumbo-converters-compchem-nwchem/src/main/resources/org/xmlcml/cml/converters/compchem/nwchem/log/templates/nccp.xml">Jumbo NWChem template</h:a></h:p>
        </description>
    </entry>

<!--Miscellaneous -->


    <entry id="method" term="method" dataType="xsd:string" unitType="unitType:unknown">
      <definition>
        <h:p>The type of computational method that is being used in the calculation. Example values are:</h:p>
        <h:ul>
        <h:li>SCF</h:li>
        <h:li>DFT</h:li>
        <h:li>MP2</h:li>
        </h:ul>
      </definition>
      <description>
        <h:p>This identifies the type of computation that is being carried out and should be a string that
        identifies the broad class of computation that is being undertaken. There are many different variants
        of the various computational methods (e.g. DFT with different functionals) and approximations that can 
        be applied to each one (e.g. Resolution of the Identity to DFT and MP2), which would lead to a large
        number of possibilities and difficulty identifying calculations of a particular class. For this reason,
        this term only describes the main method.</h:p>
      </description>
    </entry>

    <entry id="task" term="task" dataType="xsd:string" unitType="unitType:unknown">
      <definition>
        <h:p>The task that is being carried out by the job or calculation. Example values are:</h:p>
        <h:ul>
        <h:li>energy</h:li>
        <h:li>frequency</h:li>
        <h:li>geometry_optimization</h:li>
        <h:li>gradient</h:li>
        <h:li>initial_guess</h:li>
        <h:li>iteration</h:li>
        <h:li>step</h:li>
        </h:ul>
      </definition>
      <description>
        <h:p>The describes what the job or calcualtion is aiming to do. For a single SCF calculation, the
        task is an energy, while the task for an individual SCF iteration calculation within the SCF is an iteration.</h:p>
        <h:p>Jobs and calculation both use the task term, although a job would only be expected to use the 
        more general terms (such as energy or geometry_optimization).</h:p>
      </description>
    </entry>

    <entry id="id" dataType="xsd:string" unitType="unitType:unknown" term="CML id">
      <definition>
        <h:p>A CML id</h:p>
      </definition>
      <description>
        <h:p>Usable throughout cml documents. Need not be unique</h:p>
      </description>
    </entry>

    <entry id="index" term="index" unitType="unitType:unknown" dataType="xsd:integer">
      <definition>
        <h:p>An index.</h:p>
      </definition>
      <description>
        <h:p>An integer used as an index..</h:p>
      </description>
    </entry>
    
    <entry id="iterationIndex" term="serial number of iteration" unitType="unitType:unknown" dataType="xsd:integer">
      <definition>
        <h:p>The serial number of an iteration.</h:p>
      </definition>
      <description>
        <h:p>The serial number of an iteration.</h:p>
      </description>
    </entry>

    <entry id="parameter" dataType="xsd:string" unitType="unitType:unknown" term="parameter">
      <definition>
        <h:p>parameter</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>
    
    <entry id="property" dataType="xsd:string" unitType="unitType:unknown" term="property">
      <definition>
        <h:p>property</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>
    
    <entry id="title" term="title" unitType="unitType:none" units="si:none" dataType="xsd:string">
        <definition>
            <h:p>An arbitrary title.</h:p>
        </definition>
        <description>
            <h:p>A title is not used for reference, though could be used
                for lexical indexing (e.g. by Solr). It often contains important metadata
                that is not otherwise available in the output.
            </h:p>
        </description>
    </entry>
    
    <entry id="uuid" term="UUID" unitType="unitType:none" units="si:none" dataType="xsd:string">
        <definition>
            <h:p>A Universally Unique IDentifier.</h:p>
        </definition>
        <description>
            <h:p>A Universally Unique IDentifier as per <h:a href="http://www.ietf.org/rfc/rfc4122">RFC 4122</h:a>.
            Any of the five versions or the special nil identifier are acceptable. This will usually be applied to
            a cml metadata element as shown below:</h:p>
<h:pre>
&lt;metadata name="compchem:UUID" content="d1056d90-a29b-11e1-54a6-d61df6dfef7c"/&gt;
</h:pre>
        </description>
    </entry>

<!--  Timing Data -->
    <entry id="cputime" term="CPU time" dataType="xsd:string" unitType="unitType:time">
      <definition>
        <h:p>Elapsed CPU time.</h:p>
      </definition>
      <dc:source>Wikipedia</dc:source>
      <description>
        <h:p>CPU time (or CPU usage, process time) is the amount of time for which a central processing unit (CPU) 
        was used for processing instructions of a computer program, as opposed to, for example, waiting for 
        input/output (I/O) operations.</h:p>
        <h:a href="http://en.wikipedia.org/wiki/CPU_time">wikipedia entry.</h:a>
      </description>
    </entry>
    

    <entry id="wallTime" term="wallclock time" dataType="xsd:string" unitType="unitType:time">
      <definition>
        <h:p>Elapsed wallclock time.</h:p>
      </definition>
      <dc:source>Wikipedia</dc:source>
      <description>
        <h:p>Wall-clock time is a measure of the real time that elapses from start to end, including 
        time that passes due to programmed (artificial) delays or waiting for resources to become available.
         In other words, it is the difference between the time at which a task finishes and the time at which 
         the task started as would be measured by a clock, such as one on the wall.</h:p>
        <h:a href="http://en.wikipedia.org/wiki/Wall_clock_time">wikipedia entry.</h:a>
      </description>
    </entry>


<!--Static properties-->

    <entry id="centerOfMass" dataType="xsd:string" unitType="unitType:unknown" term="center of mass">
      <definition>
        <h:p>center of mass</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
        <h:p class="example">TODO</h:p>
      </description>
    </entry>

    <entry id="charge" term="charge" dataType="xsd:double" unitType="unitType:electric_charge" units="nonSi:elementary_charge">
      <definition>
        <h:p>The total charge on the system in elementary charge units.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

    <entry id="elementType" dataType="xsd:string" unitType="unitType:unknown" term="element type">
      <definition>
        <h:p>the type of the element</h:p>
      </definition>
      <description>
        <h:p>the atomic symbol as in CML:@elementTypeS</h:p>
        <h:p class="example">TODO</h:p>
      </description>
    </entry>

   <entry id="groupNumber" dataType="xsd:string" unitType="unitType:unknown" term="group number">
      <definition>
        <h:p>TODO</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

  <entry id="groupName" dataType="xsd:string" unitType="unitType:unknown" term="group name">
      <definition>
        <h:p>TODO</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

    <entry id="groupOrder" dataType="xsd:string" unitType="unitType:unknown" term="group order">
      <definition>
        <h:p>TODO</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>


    <entry id="irrep" dataType="xsd:string" unitType="unitType:unknown" term="irreducible representation">
      <definition>
        <h:p>Irreducible representation</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
        <h:p class="example">TODO</h:p>
      </description>
    </entry>

<entry id="nuclearDipoleMoment" term="nuclear dipole moment">

      <definition>
        <h:p>The nuclear electric dipole moment</h:p>
      </definition>
      
      <!-- Work in progress...
      <description class="description">
        <h:p>The electric dipole moment arising from the nuclear charges.</h:p>
      </description>
      
      <description class="prototype">
          <scalar dictRef="compchem:nuclear_dipole_moment" 
                  unitType="unitType:electric_dipole_moment" 
                  dataType="xsd:double"/>
      </description>
       -->
</entry>


    <entry id="numAtoms" term="atom count" dataType="xsd:integer" unitType="unitType:dimensionless" units="si:none">
           
           
      <definition>
        <h:p>The number of atoms</h:p>
      </definition>
      <description>
        <h:p>Normally the count of atoms in a molecule or other collection of atoms</h:p>
        <h:p class="example">TODO</h:p>
      </description>
    </entry>
    
    
    <entry id="numElectrons" term="electron count" dataType="xsd:integer" unitType="unitType:dimensionless" units="si:none">
      <definition>
        <h:p>The total number of electrons in a system.</h:p>
      </definition>
      <description>
        <h:p>TODO.</h:p>
        <h:p class="example">TODO</h:p>
      </description>
    </entry>
    
    <entry id="numAlphaElectrons" term="alpha spin electron count" dataType="xsd:integer" unitType="unitType:dimensionless" units="si:none">
      <definition>
        <h:p>The total number of alpha spin electrons in a system.</h:p>
      </definition>
      <description>
        <h:p>TODO.</h:p>
        <h:p class="example">TODO</h:p>
      </description>
    </entry>
    
    <entry id="numBetaElectrons" term="beta spin electron count" dataType="xsd:integer" unitType="unitType:dimensionless" units="si:none">
      <definition>
        <h:p>The total number of beta spin electrons in a system.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
        <h:p class="example">TODO</h:p>
      </description>
    </entry>
    
        <entry id="numClosedShells" term="closed shell count" dataType="xsd:integer" unitType="unitType:dimensionless" units="si:none">
           
           
      <definition>
        <h:p>The number of closed shells</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>
    
        <entry id="numOpenShells" term="open shell count" dataType="xsd:integer" unitType="unitType:dimensionless" units="si:none">
           
      <definition>
        <h:p>The number of open shells</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

    <entry id="pointGroup" term="molecular point group" dataType="xsd:string" unitType="unitType:none" units="si:none">
        <dc:source>Wikipedia</dc:source>
      <definition>
        <h:p>The molecular point group in Schoenflies notation.</h:p>
      </definition>
      <description>
        <h:p>The point group of the molecule defines the symmetry operations under which the molecule
        remains unchanged.</h:p>
        <h:a href="http://en.wikipedia.org/wiki/Molecular_symmetry">wikipedia entry.</h:a>
        <h:p><h:a href="https://bitbucket.org/wwmm/jumbo-converters/src/9372621bca82/jumbo-converters-compchem/jumbo-converters-compchem-nwchem/src/main/resources/org/xmlcml/cml/converters/compchem/nwchem/log/templates/symminfo.xml">Jumbo NWChem template</h:a></h:p>
      </description>
    </entry>

    <entry id="spinMultiplicity" term="spin mulitplicity" dataType="xsd:integer" unitType="unitType:dimensionless" units="si:none">
     <dc:source>Wikipedia</dc:source>
      <definition>
        <h:p>The spin multiplicity is equal to the number of alpha electrons,
         minus beta electrons, plus 1</h:p>
      </definition>
      <description>
        <h:p>When all electrons are paired, the spin multiplicity is 1, and the state is a 
        singlet, with one unpaired electron, a doublet, two, a triplet, etc.</h:p>
        <h:a href="http://en.wikipedia.org/wiki/Multiplicity_(chemistry)">wikipedia entry.</h:a>
      </description>
    </entry>
    
   <entry id="wavefunctionType" term="wavefunction type" dataType="xsd:string" units="si:none">
      <definition>
        <h:p>The type of wavefunction. Acceptable values are:</h:p>
        <h:ul>
            <h:li>closed</h:li>
            <h:li>open</h:li>
            <h:li>restricted open</h:li>
       </h:ul>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

    <entry id="x3" dataType="xsd:string" unitType="unitType:unknown" term="CML cartesian x">
      <definition>
        <h:p>CML x3 coordinate</h:p>
      </definition>
      <description>
        <h:p>The x-component of the Cartesian coordinates (x,y,z) of an entity.</h:p>
      </description>
    </entry>

    <entry id="y3" dataType="xsd:string" unitType="unitType:unknown" term="CML cartesian y">
      <definition>
        <h:p>CML y3 coordinate</h:p>
      </definition>
      <description>
        <h:p>The y-component of the Cartesian coordinates (x,y,z) of an entity.</h:p>
      </description>
    </entry>

    <entry id="z3" dataType="xsd:string" unitType="unitType:unknown" term="CML cartesian z">
      <definition>
        <h:p>CML z3 coordinate</h:p>
      </definition>
      <description>
        <h:p>The z-component of the Cartesian coordinates (x,y,z) of an entity.</h:p>
      </description>
    </entry>

<!--Calculation properties-->


<!-- Basis set properties -->
    <entry id="basisSet" term="basis set" dataType="cml:list" unitType="unitType:none" units="si:none">
        <definition>
            <h:p>A cml list container for all information related to the basis set.
            </h:p>
        </definition>
        <description>
            <h:p>The basis set is the set of functions from which the electron orbitals are constructed.
            More information can be found on 
            <h:a href="http://en.wikipedia.org/wiki/Basis_set_(chemistry)">wikipedia</h:a> or in Jan Labanowsk's
            <h:a href="http://www.ccl.net/cca/documents/basis-sets/basis.html">CCL article</h:a>.</h:p>
            <h:p>
                The model here draws heavily from the work done by the
                <h:a href="https://bse.pnl.gov/bse">EMSL basis set exchange</h:a>
                , which is described in the paper:
                <h:a href="http://pubs.acs.org/doi/abs/10.1021/ci600510j">
                Basis Set Exchange: A Community Database for Computational Sciences
                </h:a>.</h:p>
           <h:p>Their <h:a href="https://bse.pnl.gov/bse/docs/schemas/">schemas</h:a>
                are the basis for what we have done here and we would hope to keep the 
                two efforts aligned as far as possible. </h:p>
           <h:p>Within the context of conventions and dictionaries as detailed in the
          <h:a href="http://dx.doi.org/10.1186/1758-2946-3-44">CML: Evolution and Design</h:a>
                paper, we are using existing CML datatypes to hold all complex
                data structures, with dictionary entries describing the elements. Rather then using
                matricies to hold the exponents and coefficients, arrays will be used.
                Attributes (e.g. elementType on contractions) will be moved into separate elements,
                with the convention used to enforce their appearance. This also means that the attributes 
                will appear as dictionary entries here with an associated explanation.
                </h:p>
            <h:p>To illustrate this, the mixed basis set for a calculation on water would be printed as
            follows in the NWChem output:</h:p>
            <h:pre>
                      Basis "ao basis" -&gt; "" (cartesian)
                      -----
  h1 (Hydrogen)
  -------------
            Exponent  Coefficients 
       -------------- ---------------------------------------------------------
  1 S  1.30100000E+01  0.019685
  1 S  1.96200000E+00  0.137977
  1 S  4.44600000E-01  0.478148

  2 S  1.22000000E-01  1.000000

  3 P  7.27000000E-01  1.000000

  h2 (Hydrogen)
  -------------
            Exponent  Coefficients 
       -------------- ---------------------------------------------------------
  1 S  3.42525091E+00  0.154329
  1 S  6.23913730E-01  0.535328
  1 S  1.68855400E-01  0.444635

  o (Oxygen)
  ----------
            Exponent  Coefficients 
       -------------- ---------------------------------------------------------
  1 S  4.71055180E+01 -0.014408
  1 S  5.91134600E+00  0.129568
  1 S  9.76483000E-01 -0.563118

  2 S  2.96070000E-01  1.000000

  3 P  1.66922190E+01  0.044856
  3 P  3.90070200E+00  0.222613
  3 P  1.07825300E+00  0.500188

  4 P  2.84189000E-01  1.000000

  5 P  7.02000000E-02  1.000000



 Summary of "ao basis" -&gt; "" (cartesian)
 ------------------------------------------------------------------------------
       Tag                 Description            Shells   Functions and Types
 ---------------- ------------------------------  ------  ---------------------
 h1                         cc-pvdz                  3        5   2s1p
 h2                          sto-3g                  1        1   1s
 o                     Stuttgart RLC ECP             5       11   2s3p
</h:pre>
<h:p>This would be marked up as follows:</h:p>
<h:pre>&lt;list dictRef="compchem:basisSet" id="basisSet"&gt;
    &lt;list dictRef="compchem:basisSetContractions" id="basisSetContractions"&gt;
      &lt;scalar dataType="xsd:string" id="atomType" dictRef="compchem:atomType"&gt;h1&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="elementType" dictRef="compchem:elementType"&gt;H&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetType" dictRef="compchem:basis_set_type"&gt;orbital&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetLabel" dictRef="compchem:basisSetLabel"&gt;cc-pvdz&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetHarmonicType" dictRef="compchem:basisSetHarmonicType"&gt;cartesian&lt;/scalar&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;s&lt;/scalar&gt;
        &lt;array size="3" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;1.301000000000e1 1.962000000000e0 4.446000000000e-1&lt;/array&gt;
        &lt;array size="3" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;1.968500000000e-2 1.379770000000e-1 4.781480000000e-1&lt;/array&gt;
      &lt;/list&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;s&lt;/scalar&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;1.220000000000e-1&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;1.000000000000e0&lt;/array&gt;
      &lt;/list&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;p&lt;/scalar&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;7.270000000000e-1&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;1.000000000000e0&lt;/array&gt;
      &lt;/list&gt;
    &lt;/list&gt;
    &lt;list dictRef="compchem:basisSetContractions" id="basisSetContractions"&gt;
      &lt;scalar dataType="xsd:string" id="atomType" dictRef="compchem:atomType"&gt;h2&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="elementType" dictRef="compchem:elementType"&gt;H&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetType" dictRef="compchem:basis_set_type"&gt;orbital&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetLabel" dictRef="compchem:basisSetLabel"&gt;sto-3g&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetHarmonicType" dictRef="compchem:basisSetHarmonicType"&gt;cartesian&lt;/scalar&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;s&lt;/scalar&gt;
        &lt;array size="3" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;3.425250910000e0 6.239137300000e-1 1.688554000000e-1&lt;/array&gt;
        &lt;array size="3" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;1.543289700000e-1 5.353281400000e-1 4.446345400000e-1&lt;/array&gt;
      &lt;/list&gt;
    &lt;/list&gt;
    &lt;list dictRef="compchem:basisSetContractions" id="basisSetContractions"&gt;
      &lt;scalar dataType="xsd:string" id="atomType" dictRef="compchem:atomType"&gt;o&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="elementType" dictRef="compchem:elementType"&gt;O&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetType" dictRef="compchem:basis_set_type"&gt;orbital&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetLabel" dictRef="compchem:basisSetLabel"&gt;Stuttgart RLC ECP&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetHarmonicType" dictRef="compchem:basisSetHarmonicType"&gt;cartesian&lt;/scalar&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;s&lt;/scalar&gt;
        &lt;array size="3" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;4.710551800000e1 5.911346000000e0 9.764830000000e-1&lt;/array&gt;
        &lt;array size="3" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;-1.440800000000e-2 1.295680000000e-1 -5.631180000000e-1&lt;/array&gt;
      &lt;/list&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;s&lt;/scalar&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;2.960700000000e-1&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;1.000000000000e0&lt;/array&gt;
      &lt;/list&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;p&lt;/scalar&gt;
        &lt;array size="3" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;1.669221900000e1 3.900702000000e0 1.078253000000e0&lt;/array&gt;
        &lt;array size="3" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;4.485600000000e-2 2.226130000000e-1 5.001880000000e-1&lt;/array&gt;
      &lt;/list&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;p&lt;/scalar&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;2.841890000000e-1&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;1.000000000000e0&lt;/array&gt;
      &lt;/list&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;p&lt;/scalar&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;7.020000000000e-2&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;1.000000000000e0&lt;/array&gt;
      &lt;/list&gt;
    &lt;/list&gt;
    &lt;list dictRef="compchem:basisSetContractions" id="basisSetContractions"&gt;
      &lt;scalar dataType="xsd:string" id="atomType" dictRef="compchem:atomType"&gt;o&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="elementType" dictRef="compchem:elementType"&gt;O&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetType" dictRef="compchem:basis_set_type"&gt;ecporb&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetLabel" dictRef="compchem:basisSetLabel"&gt;Stuttgart RLC ECP&lt;/scalar&gt;
      &lt;scalar dataType="xsd:string" id="basisSetHarmonicType" dictRef="compchem:basisSetHarmonicType"&gt;cartesian&lt;/scalar&gt;
      &lt;scalar dataType="xsd:integer" id="numElectronsReplaced" dictRef="compchem:numElectronsReplaced"&gt;2&lt;/scalar&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;s&lt;/scalar&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetRExponent"&gt;2.000000000000e0&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;1.044567000000e1&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;5.077106900000e1&lt;/array&gt;
      &lt;/list&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;p&lt;/scalar&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetRExponent"&gt;2.000000000000e0&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;1.804517400000e1&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;-4.903551000000e0&lt;/array&gt;
      &lt;/list&gt;
      &lt;list dictRef="compchem:basisSetContraction" id="basisSetContraction"&gt;
        &lt;scalar dataType="xsd:string" dictRef="compchem:basisSetShell"&gt;d&lt;/scalar&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetRExponent"&gt;2.000000000000e0&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetExponent"&gt;8.164798000000e0&lt;/array&gt;
        &lt;array size="1" dataType="fpx:real" dictRef="compchem:basisSetCoefficient"&gt;-3.312124000000e0&lt;/array&gt;
      &lt;/list&gt;
    &lt;/list&gt;
&lt;/list&gt;
</h:pre>
        </description>
</entry>

    
    <entry id="basisSetLabel" term="basis set label" dataType="xsd:string" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>The name of the basis set.</h:p>
      </definition>
      <description>
        <h:p>This is the name or title of the basis set and should be one of names used within the
        <h:a href="http://bse.pnl.gov/">EMSL Basis Set Exchange</h:a>. This corresponds to the Dublin
         core <h:a href="http://dublincore.org/documents/dces">title</h:a> element of the "basisSet" in the 
         BSE schema.</h:p>
         <h:p>The basisSetLabel will usually be applied within a <h:a href="#basisSetContractions">basisSetContractions</h:a>
         list, as this permits different named basis sets to be applied to different atoms.</h:p>
         <h:p> The basisSetLabel may be applied to the whole basis set (i.e. at the same level as the basisSetContrations)
         if the same basis set was applied to all atoms in the calculation. This is to permit logfiles to be converted to
         valid CML where the basis set is not printed explictly on each atom.</h:p>
      </description>
    </entry>
 
 
     <entry id="basisSetType" term="basis set type" dataType="xsd:string" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>The type of the basis set.</h:p>
      </definition>
      <description>
        <h:p>This corresponds to the "basisSetType" in the EMSL schema. Valid values are:</h:p>
        <h:ul>
            <h:li>orbital</h:li>
            <h:li>dftorb</h:li>
            <h:li>dftxfit</h:li>
            <h:li>dftcfit</h:li>
            <h:li>periodic</h:li>
            <h:li>ecporb</h:li>
            <h:li>spinorb</h:li>
            <h:li>polarization</h:li>
            <h:li>diffuse</h:li>
            <h:li>tight</h:li>
            <h:li>rydberg</h:li>
       </h:ul>
      </description>
    </entry>
    
     <entry id="basisSetHarmonicType" term="basis set type" dataType="xsd:string" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>The type of the angular functions used in basis set.</h:p>
      </definition>
      <description>
        <h:p/>
        <h:p>This corresponds to the "harmonicType" in the EMSL schema. Valid values are:</h:p>
        <h:ul>
            <h:li>cartesian</h:li>
            <h:li>spherical</h:li>
       </h:ul>
       <h:p>For higher angular momentum (l&gt;2), basis functions can be described in cartesian 
       (6 d, 10 f, 15 g, ...) or spherical form (5 d, 7 f, 9 g, ...). Most programs work in cartesians
       by default, although, particularly for correlated calculations, the higher number of functions
       in the cartesian form becomes significant, and it becomes more efficient to use the spherical form.
        This is described more fully in the following paper:  <h:a href="http://dx.doi.org/10.1002/qua.560540202">
       Transformation between Cartesian and pure spherical harmonic Gaussians</h:a></h:p>
      </description>
    </entry>
    
    <entry id="basisSetContractionType" term="basis set contraction type" dataType="xsd:string" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>The contraction type of the basis set.</h:p>
      </definition>
      <description>
      <h:p>This describes how the gaussian functions in the basis are contracted to generate
        the basis functions. With segmented, each gaussian primitive only contributes to one 
        contraction, whereas with a general contraction, each primitive can contribute to every
        contraction.</h:p>
        <h:p>This corresponds to the "contractionType" in the EMSL schema. Valid values are:</h:p>
        <h:ul>
            <h:li>segmented</h:li>
            <h:li>general</h:li>
            <h:li>uncontracted</h:li>
       </h:ul>
      </description>
    </entry>
    
   <entry id="basisSetDescription" term="basis set description" dataType="xsd:string" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>A description of the basis set.</h:p>
      </definition>
      <description>
      <h:p>TODO</h:p>
      </description>
    </entry>
    
   <entry id="basisSetContractions" term="basis set contractions" dataType="cml:list" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>The cml:list container for the contractions relating to a particular atom type.</h:p>
      </definition>
      <description>
      <h:p>This holds all the information relating to a basis set on an atom. It contains an element
      for the atom_type which is the "tag" that was used to link it to an individual atom
      in the calculation, an element_type which describes the type of element the contractions relate
      to, the harmonic_type of the contractions, and then a list of contraction elements.</h:p>
      </description>
    </entry>
    
    <entry id="basisSetShell" term="basis set shell" dataType="xsd:string" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>The label for the contraction shell.</h:p>
      </definition>
      <description>
        <h:p>This corresponds to the "shellType" in the EMSL schema. Valid values are:</h:p>
        <h:ul>
            <h:li>S</h:li>
            <h:li>P</h:li>
            <h:li>SP</h:li>
            <h:li>D</h:li>
            <h:li>F</h:li>
            <h:li>G</h:li>
            <h:li>H</h:li>
            <h:li>I</h:li>
            <h:li>K</h:li>
            <h:li>L</h:li>
            <h:li>M</h:li>
       </h:ul>
      </description>
    </entry>
    
   <entry id="basisSetContraction" term="basis set contraction" dataType="cml:list" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>The cml:list container for an individual contraction.</h:p>
      </definition>
      <description>
        <h:p>This corresponds to an individual "contraction" element in the EMSL schema, and 
        holds the data for the contraction, including the shell_type, and exponents and coefficients.</h:p>
      </description>
    </entry>
    
   <entry id="basisSetExponent" term="basis set exponent" dataType="cml:array" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>A cml:array holding the list of exponents for an individual contraction.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>
    
   <entry id="basisSetRExponent" term="basis set R exponent" dataType="cml:array" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>A cml:array holding the list of R exponents for an individual Effective Core Potential (ECP) contraction.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>
    
    <entry id="basisSetCoefficient" term="basis set coefficient " dataType="cml:array" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>A cml:array holding the list of coefficients for an individual contraction.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>
    
    <entry id="numElectronsReplaced" term="Number of replaced electrons" dataType="xsd:integer" unitType="unitType:dimensionless" units="si:none">
      <definition>
        <h:p>The number of electrons replaced by an Effective Core Potential (ECP).</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

    <entry id="molecularOrbital" term="molecular orbital" dataType="cml:list" unitType="unitType:none" units="si:none">
        <definition>
            <h:p>A cml list container for all information related to an Orbital. This is currently being developed
            so feel free to get involved.</h:p>
        </definition>
        <description>
        <h:p>A sketch of the current thinking is below.</h:p>
        <h:pre>
&lt;!-- the number of the orbital --&gt;
&lt;index dataType="xsd:integer"&gt;3&lt;/index&gt;

&lt;!-- Energy/Eigenvalue? --&gt;
&lt;energy dataType="xsd:double"&gt;-1.341678D+00&lt;/energy&gt;

&lt;!-- the symmetry irrep this orbital belongs to --&gt;
&lt;symmetry dataType="xsd:string"&gt;a2&lt;/symmetry&gt;

&lt;!-- degeneracy --&gt;
&lt;degeneracy dataType="xsd:integer"&gt;2&lt;/degeneracy&gt;

&lt;!-- occupancy --&gt;
&lt;occupancy dataType="xsd:double"&gt;2.0&lt;/occupancy&gt;

&lt;eigenVectors&gt;
&lt;!-- List of eigenVectors with links to the basis functions --&gt;
&lt;/eigenVectors&gt;
</h:pre>
     </description>
     </entry>

  <!-- DFT Terms -->

    <entry id="dftFunctional" term="DFT functional" dataType="cml:list" unitType="unitType:none" units="si:none">
        <definition>
            <h:p>A cml list container for all information related to a DFT Functional.</h:p>
        </definition>
        <description>
        <h:p>A container for a DFT Functional. Currently the only attribute that is used is the 
        <h:a href="#dft_functional_title">dft_functional_title </h:a>.</h:p>
        <h:p>In the tradition of wikipedia, this is a stub and needs someone who knows about DFT to
        expand it.</h:p>
        </description>
        </entry>

    <entry id="dftFunctionalLabel" term="DFT functional label" dataType="xsd:string" units="si:none" unitType="unitType:none">
      <definition>
        <h:p>The name of the DFT functional used, if a standard functional was used.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

<!--Calculated Energies-->

    <entry id="coulombEnergy" term="coulomb energy" unitType="unitType:energy" dataType="xsd:double">
      <definition>
        <h:p>The Coulomb compoment of the electronic energy in a Density Functional Calculation.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>
    
    <entry id="correlationEnergy" term="correlation energy" unitType="unitType:energy" dataType="xsd:double">
      <definition>
        <h:p>The Correlation Energy.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

    <entry id="e1Energy" term="1-electron energy" unitType="unitType:energy" dataType="xsd:double">
      <definition>
        <h:p>The one-electron energy.</h:p>
      </definition>
      <description>
        <h:p>The one-electron kinetic energy compment of the Hamiltonian operator for a system 
        of electrons and nuclei.</h:p>
      </description>
    </entry>
    
    <entry id="e2Energy" term="2-electron energy" unitType="unitType:energy" dataType="xsd:double">
      <definition>
        <h:p>The two-electron energy.</h:p>
      </definition>
      <description>
        <h:p>TODO.</h:p>
      </description>
    </entry>
    
    <entry id="nuclearRepulsionEnergy" term="nuclear repulsion energy" units="nonSi:hartree" unitType="unitType:energy" dataType="xsd:double">
    <definition>
        <h:p>The potential energy arising from Coulombic nuclei-nuclei repulsions.</h:p>
        <h:p>
        <m:math>
            <m:mrow>

                <m:msub>
                    <m:mover>
                        <m:mi>T</m:mi>
                        <!-- <m:mo>&Hat;-->
                                <m:mo>^
                                </m:mo>
                            </m:mover>
                            <m:mi>n</m:mi>
                        </m:msub>

                        <m:mo>=</m:mo>

                        <m:mo>-</m:mo>
                        <m:munder>
<!--                            <m:mo>&Sum;-->
                            <m:mo>∑
                            </m:mo>
                            <m:mi>i</m:mi>
                        </m:munder>

                        <m:mfrac>
                            <m:mrow>
                                <m:msup>
<!--                                    <m:mo>&hbar; -->
                                    <m:mo>ℏ
                                    </m:mo>
                                    <m:mn>2</m:mn>
                                </m:msup>
                            </m:mrow>

                            <m:mrow>
                                <m:mn>2</m:mn>
                                <m:msub>
                                    <m:mi>M</m:mi>
                                    <m:mi>i</m:mi>
                                </m:msub>
                            </m:mrow>
                        </m:mfrac>

                        <m:msubsup>
<!--                            <m:mi>&nabla;-->
                    <m:mi>∇
                    </m:mi>
                    <m:msub>
                        <m:mi>R</m:mi>
                        <m:mi>i</m:mi>
                    </m:msub>
                    <m:mn>2</m:mn>
                </m:msubsup>

            </m:mrow>
        </m:math>
        </h:p>
    </definition>
    <description>
        <h:p>The nuclear repulsion energy is the sum of the repulsive Coulombic 
        interaction energies between the positively charged nuclei.</h:p>
    </description>
</entry>
    
    <entry id="scfEnergy" term="energy" dataType="xsd:double" unitType="unitType:energy">
      <definition>
        <h:p>The Hartree-Fock Self-Consistent Field component of the energy.</h:p>
      </definition>
      <description>
        <h:p>This is the SCF energy, where the SCF energy is a compment of another energy, such as the
        MP2 energy. The scf_energy term should NOT be used for the total energy of an SCF calculation, for this
        the <h:a href="#total_energy">total energy</h:a> term should be used, as the exact meaning of the SCF
        energy will be properly determined by the parameters in the <h:a href="#initialization">initialization</h:a> 
        module.</h:p>
      </description>
    </entry>
    
    
   <entry id="totalEnergy" term="total energy" dataType="xsd:string" unitType="unitType:energy">
      <definition>
        <h:p>The total energy for a system of electrons and nuclei.</h:p>
      </definition>
      <description>
        <h:p>The total energy is formed from the sum of the nuclear, one- and two-electron energies for
        a system of electrons and nuclei.</h:p>
        <h:p>The meaning of any energy is dependent on the context in which it is found. An energy will usually be 
        located in the <h:a href="#finalization">finalization</h:a> module of a <h:a href="#calculation">calculation</h:a>,
        and it is the parameters in the calculation's <h:a href="#initialization">initialization</h:a> module that will
        define the type of energy. So if the calculation's <h:a href="#method">method</h:a> parameter is MP2, 
        then this will be an MP2 energy, with the exact definition determined by the associated SCF and MP2 parameters
        in the SCF and MP2 initialization modules.</h:p>
      </description>
    </entry>

   
    <entry id="xcEnergy" term="exchange correlation energy" dataType="xsd:double" unitType="unitType:energy">
      <definition>
        <h:p>The Exchange correlation energy.</h:p>
      </definition>
      <description>
        <h:p>TODO</h:p>
      </description>
    </entry>

</dictionary>
