source: sphinxdocs/build/html/_modules/G2pwd_GPX.html @ 1709

Last change on this file since 1709 was 1709, checked in by toby, 8 years ago

change sphinx docs links; rebuild & fixing minor formatting

  • Property svn:mime-type set to text/html
File size: 25.5 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>G2pwd_GPX &mdash; GSAS-II 0.2.0 documentation</title>
10   
11    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../',
17        VERSION:     '0.2.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../_static/jquery.js"></script>
24    <script type="text/javascript" src="../_static/underscore.js"></script>
25    <script type="text/javascript" src="../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="GSAS-II 0.2.0 documentation" href="../index.html" />
28    <link rel="up" title="Module code" href="index.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../index.html">GSAS-II 0.2.0 documentation</a> &raquo;</li>
41          <li><a href="index.html" accesskey="U">Module code</a> &raquo;</li> 
42      </ul>
43    </div> 
44
45    <div class="document">
46      <div class="documentwrapper">
47        <div class="bodywrapper">
48          <div class="body">
49           
50  <h1>Source code for G2pwd_GPX</h1><div class="highlight"><pre>
51<span class="c"># -*- coding: utf-8 -*-</span>
52<span class="c">########### SVN repository information ###################</span>
53<span class="c"># $Date: 2014-11-20 12:57:51 -0600 (Thu, 20 Nov 2014) $</span>
54<span class="c"># $Author: toby $</span>
55<span class="c"># $Revision: 1574 $</span>
56<span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/imports/G2pwd_GPX.py $</span>
57<span class="c"># $Id: G2pwd_GPX.py 1574 2014-11-20 18:57:51Z toby $</span>
58<span class="c">########### SVN repository information ###################</span>
59<span class="sd">&#39;&#39;&#39;</span>
60<span class="sd">*Module G2pwd_GPX: GSAS-II projects*</span>
61<span class="sd">------------------------------------</span>
62<span class="sd">Routine to import powder data from GSAS-II .gpx files</span>
63
64<span class="sd">&#39;&#39;&#39;</span>
65<span class="kn">import</span> <span class="nn">sys</span>
66<span class="kn">import</span> <span class="nn">cPickle</span>
67<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
68<span class="kn">import</span> <span class="nn">GSASIIIO</span> <span class="kn">as</span> <span class="nn">G2IO</span>
69<span class="kn">import</span> <span class="nn">GSASIIpath</span>
70<span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1574 $&quot;</span><span class="p">)</span>
71
72<div class="viewcode-block" id="GSAS2_ReaderClass"><a class="viewcode-back" href="../imports.html#G2pwd_GPX.GSAS2_ReaderClass">[docs]</a><span class="k">class</span> <span class="nc">GSAS2_ReaderClass</span><span class="p">(</span><span class="n">G2IO</span><span class="o">.</span><span class="n">ImportPowderData</span><span class="p">):</span>
73    <span class="sd">&quot;&quot;&quot;Routines to import powder data from a GSAS-II file</span>
74<span class="sd">    This should work to pull data out from a out of date .GPX file</span>
75<span class="sd">    as long as the details of the histogram data itself don&#39;t change</span>
76<span class="sd">    &quot;&quot;&quot;</span>
77    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
78        <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="p">,</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span> <span class="c"># fancy way to say ImportPhase.__init__</span>
79            <span class="n">extensionlist</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;.gpx&#39;</span><span class="p">,),</span>
80            <span class="n">strictExtension</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
81            <span class="n">formatName</span> <span class="o">=</span> <span class="s">&#39;GSAS-II gpx&#39;</span><span class="p">,</span>
82            <span class="n">longFormatName</span> <span class="o">=</span> <span class="s">&#39;GSAS-II project (.gpx file) import&#39;</span>
83            <span class="p">)</span>
84       
85<div class="viewcode-block" id="GSAS2_ReaderClass.ContentsValidator"><a class="viewcode-back" href="../imports.html#G2pwd_GPX.GSAS2_ReaderClass.ContentsValidator">[docs]</a>    <span class="k">def</span> <span class="nf">ContentsValidator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepointer</span><span class="p">):</span>
86        <span class="s">&quot;Test if the 1st section can be read as a cPickle block, if not it can&#39;t be .GPX!&quot;</span>
87        <span class="k">try</span><span class="p">:</span> 
88            <span class="n">cPickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filepointer</span><span class="p">)</span>
89        <span class="k">except</span><span class="p">:</span>
90            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;This is not a valid .GPX file. Not recognized by cPickle&#39;</span>
91            <span class="k">return</span> <span class="bp">False</span>
92        <span class="k">return</span> <span class="bp">True</span>
93</div>
94<div class="viewcode-block" id="GSAS2_ReaderClass.Reader"><a class="viewcode-back" href="../imports.html#G2pwd_GPX.GSAS2_ReaderClass.Reader">[docs]</a>    <span class="k">def</span> <span class="nf">Reader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">filename</span><span class="p">,</span><span class="n">filepointer</span><span class="p">,</span> <span class="n">ParentFrame</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwarg</span><span class="p">):</span>
95        <span class="sd">&#39;&#39;&#39;Read a dataset from a .GPX file.</span>
96<span class="sd">        If multiple datasets are requested, use self.repeat and buffer caching.</span>
97<span class="sd">        &#39;&#39;&#39;</span>
98        <span class="n">histnames</span> <span class="o">=</span> <span class="p">[]</span>
99        <span class="n">poslist</span> <span class="o">=</span> <span class="p">[]</span>
100        <span class="n">rdbuffer</span> <span class="o">=</span> <span class="n">kwarg</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;buffer&#39;</span><span class="p">)</span>
101        <span class="c"># reload previously saved values</span>
102        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="ow">and</span> <span class="n">rdbuffer</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
103            <span class="n">selections</span> <span class="o">=</span> <span class="n">rdbuffer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;selections&#39;</span><span class="p">)</span>
104            <span class="n">poslist</span> <span class="o">=</span> <span class="n">rdbuffer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;poslist&#39;</span><span class="p">)</span>
105            <span class="n">histnames</span> <span class="o">=</span> <span class="n">rdbuffer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;histnames&#39;</span><span class="p">)</span>
106        <span class="k">else</span><span class="p">:</span>
107            <span class="k">try</span><span class="p">:</span>
108                <span class="n">fl</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="s">&#39;rb&#39;</span><span class="p">)</span>
109                <span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
110                    <span class="n">pos</span> <span class="o">=</span> <span class="n">fl</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
111                    <span class="k">try</span><span class="p">:</span>
112                        <span class="n">data</span> <span class="o">=</span> <span class="n">cPickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">fl</span><span class="p">)</span>
113                    <span class="k">except</span> <span class="ne">EOFError</span><span class="p">:</span>
114                        <span class="k">break</span>
115                    <span class="k">if</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">][:</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;PWDR&#39;</span><span class="p">:</span>
116                        <span class="n">histnames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
117                        <span class="n">poslist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
118            <span class="k">except</span><span class="p">:</span>
119                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Reading of histogram names failed&#39;</span>
120                <span class="k">return</span> <span class="bp">False</span>
121            <span class="k">finally</span><span class="p">:</span>
122                <span class="n">fl</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
123        <span class="k">if</span> <span class="ow">not</span> <span class="n">histnames</span><span class="p">:</span>
124            <span class="k">return</span> <span class="bp">False</span>            <span class="c"># no blocks with powder data</span>
125        <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">histnames</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> <span class="c"># one block, no choices</span>
126            <span class="n">selblk</span> <span class="o">=</span> <span class="mi">0</span>
127        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="ow">and</span> <span class="n">selections</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
128            <span class="c"># we were called to repeat the read</span>
129            <span class="c">#print &#39;debug: repeat #&#39;,self.repeatcount,&#39;selection&#39;,selections[self.repeatcount]</span>
130            <span class="n">selblk</span> <span class="o">=</span> <span class="n">selections</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span><span class="p">]</span>
131            <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span> <span class="o">+=</span> <span class="mi">1</span>
132            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span> <span class="o">&gt;=</span> <span class="nb">len</span><span class="p">(</span><span class="n">selections</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="o">=</span> <span class="bp">False</span>
133        <span class="k">else</span><span class="p">:</span>                       <span class="c"># choose from options                </span>
134            <span class="n">selections</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">MultipleBlockSelector</span><span class="p">(</span>
135                <span class="n">histnames</span><span class="p">,</span>
136                <span class="n">ParentFrame</span><span class="o">=</span><span class="n">ParentFrame</span><span class="p">,</span>
137                <span class="n">title</span><span class="o">=</span><span class="s">&#39;Select histogram(s) to read from the list below&#39;</span><span class="p">,</span>
138                <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">600</span><span class="p">,</span><span class="mi">250</span><span class="p">),</span>
139                <span class="n">header</span><span class="o">=</span><span class="s">&#39;Dataset Selector&#39;</span><span class="p">)</span>
140            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selections</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
141                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;No histogram selected&#39;</span>
142                <span class="k">return</span> <span class="bp">False</span>
143            <span class="n">selblk</span> <span class="o">=</span> <span class="n">selections</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c"># select first in list</span>
144            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selections</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span> <span class="c"># prepare to loop through again</span>
145                <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="o">=</span> <span class="bp">True</span>
146                <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span> <span class="o">=</span> <span class="mi">1</span>
147                <span class="k">if</span> <span class="n">rdbuffer</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
148                    <span class="n">rdbuffer</span><span class="p">[</span><span class="s">&#39;poslist&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">poslist</span>
149                    <span class="n">rdbuffer</span><span class="p">[</span><span class="s">&#39;histnames&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">histnames</span>
150                    <span class="n">rdbuffer</span><span class="p">[</span><span class="s">&#39;selections&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">selections</span>
151
152        <span class="k">try</span><span class="p">:</span>
153            <span class="n">fl</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="s">&#39;rb&#39;</span><span class="p">)</span>
154            <span class="n">fl</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">poslist</span><span class="p">[</span><span class="n">selblk</span><span class="p">])</span>
155            <span class="n">data</span> <span class="o">=</span> <span class="n">cPickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">fl</span><span class="p">)</span>
156            <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
157            <span class="c">#self.powderdata = data[0][1][1]</span>
158            <span class="bp">self</span><span class="o">.</span><span class="n">powderdata</span> <span class="o">=</span> <span class="p">[</span>
159                <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="c"># x-axis values</span>
160                <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span> <span class="c"># powder pattern intensities</span>
161                <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span> <span class="c"># 1/sig(intensity)^2 values (weights)</span>
162                <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span> <span class="c"># calc. intensities (zero)</span>
163                <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span> <span class="c"># calc. background (zero)</span>
164                <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span> <span class="c"># obs-calc profiles</span>
165            <span class="p">]</span>
166            <span class="bp">self</span><span class="o">.</span><span class="n">powderentry</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">filename</span>
167            <span class="bp">self</span><span class="o">.</span><span class="n">powderentry</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">selblk</span><span class="o">+</span><span class="mi">1</span>
168            <span class="c"># pull some sections from the PWDR children</span>
169            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)):</span>
170                <span class="k">if</span> <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;Comments&#39;</span><span class="p">:</span>
171                    <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
172                    <span class="k">continue</span>
173                <span class="k">elif</span> <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;Sample Parameters&#39;</span><span class="p">:</span>
174                    <span class="bp">self</span><span class="o">.</span><span class="n">Sample</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
175                    <span class="k">continue</span>
176                <span class="k">for</span> <span class="n">keepitem</span> <span class="ow">in</span> <span class="p">(</span><span class="s">&#39;Limits&#39;</span><span class="p">,</span><span class="s">&#39;Background&#39;</span><span class="p">,</span><span class="s">&#39;Instrument Parameters&#39;</span><span class="p">):</span> 
177                    <span class="k">if</span> <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">keepitem</span><span class="p">:</span>
178                        <span class="bp">self</span><span class="o">.</span><span class="n">pwdparms</span><span class="p">[</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
179                        <span class="k">break</span>
180            <span class="bp">self</span><span class="o">.</span><span class="n">idstring</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="mi">5</span><span class="p">:]</span>
181            <span class="bp">self</span><span class="o">.</span><span class="n">repeat_instparm</span> <span class="o">=</span> <span class="bp">False</span> <span class="c"># prevent reuse of iparm when several hists are read</span>
182            <span class="k">return</span> <span class="bp">True</span>
183        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">detail</span><span class="p">:</span>
184            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading selected histogram</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">detail</span><span class="p">)</span>
185            <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">formatName</span><span class="o">+</span><span class="s">&#39; error:&#39;</span><span class="p">,</span><span class="n">detail</span> <span class="c"># for testing</span>
186            <span class="k">print</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> <span class="c"># for testing</span>
187            <span class="kn">import</span> <span class="nn">traceback</span>
188            <span class="k">print</span> <span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">()</span>
189            <span class="k">return</span> <span class="bp">False</span>
190        <span class="k">finally</span><span class="p">:</span>
191            <span class="n">fl</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div></div>
192</pre></div>
193
194          </div>
195        </div>
196      </div>
197      <div class="sphinxsidebar">
198        <div class="sphinxsidebarwrapper">
199            <p class="logo"><a href="../index.html">
200              <img class="logo" src="../_static/G2_html_logo.png" alt="Logo"/>
201            </a></p>
202<div id="searchbox" style="display: none">
203  <h3>Quick search</h3>
204    <form class="search" action="../search.html" method="get">
205      <input type="text" name="q" />
206      <input type="submit" value="Go" />
207      <input type="hidden" name="check_keywords" value="yes" />
208      <input type="hidden" name="area" value="default" />
209    </form>
210    <p class="searchtip" style="font-size: 90%">
211    Enter search terms or a module, class or function name.
212    </p>
213</div>
214<script type="text/javascript">$('#searchbox').show(0);</script>
215        </div>
216      </div>
217      <div class="clearer"></div>
218    </div>
219    <div class="related">
220      <h3>Navigation</h3>
221      <ul>
222        <li class="right" style="margin-right: 10px">
223          <a href="../genindex.html" title="General Index"
224             >index</a></li>
225        <li class="right" >
226          <a href="../py-modindex.html" title="Python Module Index"
227             >modules</a> |</li>
228        <li><a href="../index.html">GSAS-II 0.2.0 documentation</a> &raquo;</li>
229          <li><a href="index.html" >Module code</a> &raquo;</li> 
230      </ul>
231    </div>
232    <div class="footer">
233        &copy; Copyright 2013, Von Dreele and Toby for Argonne National Laboratory.
234      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
235    </div>
236  </body>
237</html>
Note: See TracBrowser for help on using the repository browser.