mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-16 15:20:24 +01:00
Documentation updated
This commit is contained in:
parent
e83a0e41e3
commit
98b478b100
2 changed files with 183 additions and 44 deletions
|
@ -83,6 +83,7 @@
|
|||
<span class="kn">import</span> <span class="nn">re</span>
|
||||
<span class="kn">import</span> <span class="nn">struct</span>
|
||||
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="c1"># Thinly-wrapped numpy</span>
|
||||
<span class="kn">import</span> <span class="nn">warnings</span>
|
||||
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
|
||||
<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">gridspec</span>
|
||||
<span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span>
|
||||
|
@ -149,8 +150,7 @@
|
|||
<span class="n">r_start</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'r_start'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'r_start does not match number of replicas'</span><span class="p">)</span>
|
||||
<span class="c1"># Adjust Configuration numbering to python index</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
|
||||
|
||||
|
@ -185,6 +185,10 @@
|
|||
|
||||
<span class="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="n">configlist</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">r_start_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">r_stop_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">):</span>
|
||||
<span class="n">tmp_array</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s1">'/'</span> <span class="o">+</span> <span class="n">ls</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="s1">'rb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
|
||||
|
@ -221,15 +225,13 @@
|
|||
<span class="k">if</span> <span class="ow">not</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s1">'something is wrong!'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
||||
<span class="n">configlist</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
|
||||
<span class="k">while</span> <span class="mi">0</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o"><</span> <span class="mi">4</span><span class="p">:</span>
|
||||
<span class="k">break</span>
|
||||
<span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
|
||||
<span class="n">config_no</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
<span class="n">config_no</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">config_no</span><span class="p">)</span>
|
||||
<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="n">nrw</span><span class="p">):</span>
|
||||
<span class="k">if</span><span class="p">(</span><span class="n">version</span> <span class="o">==</span> <span class="s1">'2.0'</span><span class="p">):</span>
|
||||
<span class="n">tmpd</span> <span class="o">=</span> <span class="n">_read_array_openQCD2</span><span class="p">(</span><span class="n">fp</span><span class="p">)</span>
|
||||
|
@ -259,14 +261,37 @@
|
|||
<span class="nb">print</span><span class="p">(</span><span class="s1">'Sources:'</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)))</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s1">'Partial factor:'</span><span class="p">,</span> <span class="n">tmp_nfct</span><span class="p">)</span>
|
||||
<span class="n">tmp_array</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_nfct</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Config </span><span class="si">%d</span><span class="s1"> not in file with range [</span><span class="si">%d</span><span class="s1">, </span><span class="si">%d</span><span class="s1">]'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">tmp_array</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
<span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Config </span><span class="si">%d</span><span class="s1"> not in file with range [</span><span class="si">%d</span><span class="s1">, </span><span class="si">%d</span><span class="s1">]'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nrw</span><span class="p">):</span>
|
||||
<span class="n">deltas</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_array</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]:</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]][::</span><span class="n">r_step</span><span class="p">])</span>
|
||||
<span class="n">deltas</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_array</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]:</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]][::</span><span class="n">r_step</span><span class="p">])</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Irregular spaced data in input file!'</span><span class="p">,</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">])</span>
|
||||
<span class="n">stepsizes</span> <span class="o">=</span> <span class="p">[</span><span class="nb">list</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">step</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">step</span> <span class="ow">in</span> <span class="n">stepsizes</span><span class="p">]):</span>
|
||||
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s1">'Stepsize between configurations is greater than one!'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">stepsizes</span><span class="p">),</span> <span class="ne">RuntimeWarning</span><span class="p">)</span>
|
||||
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s1">','</span><span class="p">,</span> <span class="n">nrw</span><span class="p">,</span> <span class="s1">'reweighting factors with'</span><span class="p">,</span> <span class="n">nsrc</span><span class="p">,</span> <span class="s1">'sources'</span><span class="p">)</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">r_step</span><span class="p">)</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">)]</span>
|
||||
<span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]],</span> <span class="n">configlist</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]],</span> <span class="n">r_step</span><span class="p">)</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">)]</span>
|
||||
<span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nrw</span><span class="p">):</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">t</span><span class="p">],</span> <span class="n">rep_names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">idl</span><span class="p">))</span>
|
||||
<span class="k">return</span> <span class="n">result</span>
|
||||
|
@ -281,7 +306,12 @@
|
|||
<span class="sd"> The data around the zero crossing of t^2<E> - 0.3</span>
|
||||
<span class="sd"> is fitted with a linear function</span>
|
||||
<span class="sd"> from which the exact root is extracted.</span>
|
||||
<span class="sd"> Only works with openQCD v 1.2.</span>
|
||||
<span class="sd"> Only works with openQCD</span>
|
||||
|
||||
<span class="sd"> It is assumed that one measurement is performed for each config.</span>
|
||||
<span class="sd"> If this is not the case, the resulting idl, as well as the handling</span>
|
||||
<span class="sd"> of r_start, r_stop and r_step is wrong and the user has to correct</span>
|
||||
<span class="sd"> this in the resulting observable.</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
|
@ -318,6 +348,11 @@
|
|||
<span class="sd"> files performed if given.</span>
|
||||
<span class="sd"> plot_fit : bool</span>
|
||||
<span class="sd"> If true, the fit for the extraction of t0 is shown together with the data.</span>
|
||||
<span class="sd"> assume_thermalization : bool</span>
|
||||
<span class="sd"> If True: If the first record divided by the distance between two measurements is larger than</span>
|
||||
<span class="sd"> 1, it is assumed that this is due to thermalization and the first measurement belongs</span>
|
||||
<span class="sd"> to the first config (default).</span>
|
||||
<span class="sd"> If False: The config numbers are assumed to be traj_number // difference</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">ls</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
@ -342,7 +377,7 @@
|
|||
<span class="n">r_start</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'r_start'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'r_start does not match number of replicas'</span><span class="p">)</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
|
||||
|
||||
|
@ -371,6 +406,10 @@
|
|||
|
||||
<span class="n">Ysum</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="n">configlist</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">r_start_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">r_stop_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">):</span>
|
||||
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s1">'/'</span> <span class="o">+</span> <span class="n">ls</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="s1">'rb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
|
||||
|
@ -392,15 +431,13 @@
|
|||
|
||||
<span class="n">Ysl</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
||||
<span class="n">cfgcount</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
|
||||
<span class="n">configlist</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
|
||||
<span class="k">while</span> <span class="mi">0</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
||||
<span class="k">if</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o"><</span> <span class="mi">4</span><span class="p">):</span>
|
||||
<span class="k">break</span>
|
||||
<span class="n">nc</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">nc</span><span class="p">)</span>
|
||||
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="p">(</span><span class="n">nn</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
|
||||
<span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'plaquette'</span><span class="p">):</span>
|
||||
|
@ -412,16 +449,44 @@
|
|||
<span class="n">Ysl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'d'</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="p">(</span><span class="n">nn</span> <span class="o">+</span> <span class="mi">1</span><span class="p">),</span> <span class="n">t</span><span class="p">))</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="p">(</span><span class="n">nn</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
|
||||
|
||||
<span class="n">cfgcount</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">=</span> <span class="n">cfgcount</span>
|
||||
<span class="n">Ysum</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
|
||||
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Ysl</span><span class="p">):</span>
|
||||
<span class="n">Ysum</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">current</span> <span class="o">+</span> <span class="n">xmin</span><span class="p">:</span>
|
||||
<span class="n">current</span> <span class="o">+</span> <span class="n">tmax</span> <span class="o">-</span> <span class="n">xmin</span><span class="p">])</span>
|
||||
<span class="k">for</span> <span class="n">current</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">item</span><span class="p">),</span> <span class="n">tmax</span><span class="p">)])</span>
|
||||
|
||||
<span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">r_step</span><span class="p">)</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">))]</span>
|
||||
<span class="n">diffmeas</span> <span class="o">=</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">item</span> <span class="o">//</span> <span class="n">diffmeas</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span>
|
||||
<span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'assume_thermalization'</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> <span class="ow">and</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s1">'Assume thermalization and that the first measurement belongs to the first config.'</span><span class="p">)</span>
|
||||
<span class="n">offset</span> <span class="o">=</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
|
||||
<span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">item</span> <span class="o">-</span> <span class="n">offset</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Config </span><span class="si">%d</span><span class="s1"> not in file with range [</span><span class="si">%d</span><span class="s1">, </span><span class="si">%d</span><span class="s1">]'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Config </span><span class="si">%d</span><span class="s1"> not in file with range [</span><span class="si">%d</span><span class="s1">, </span><span class="si">%d</span><span class="s1">]'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Irregular spaced data in input file!'</span><span class="p">,</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">])</span>
|
||||
<span class="n">stepsizes</span> <span class="o">=</span> <span class="p">[</span><span class="nb">list</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">step</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">step</span> <span class="ow">in</span> <span class="n">stepsizes</span><span class="p">]):</span>
|
||||
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s1">'Stepsize between configurations is greater than one!'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">stepsizes</span><span class="p">),</span> <span class="ne">RuntimeWarning</span><span class="p">)</span>
|
||||
|
||||
<span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]],</span> <span class="n">configlist</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]],</span> <span class="n">r_step</span><span class="p">)</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">)]</span>
|
||||
<span class="n">t2E_dict</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nn</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
|
||||
<span class="n">samples</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
@ -429,7 +494,7 @@
|
|||
<span class="n">samples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
|
||||
<span class="k">for</span> <span class="n">cnfg</span> <span class="ow">in</span> <span class="n">rep</span><span class="p">:</span>
|
||||
<span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cnfg</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
|
||||
<span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="n">r_start</span><span class="p">[</span><span class="n">nrep</span><span class="p">]:</span><span class="n">r_stop</span><span class="p">[</span><span class="n">nrep</span><span class="p">]][::</span><span class="n">r_step</span><span class="p">]</span>
|
||||
<span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">nrep</span><span class="p">]:</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">nrep</span><span class="p">]][::</span><span class="n">r_step</span><span class="p">]</span>
|
||||
<span class="n">new_obs</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">samples</span><span class="p">,</span> <span class="n">rep_names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">idl</span><span class="p">)</span>
|
||||
<span class="n">t2E_dict</span><span class="p">[</span><span class="n">n</span> <span class="o">*</span> <span class="n">dn</span> <span class="o">*</span> <span class="n">eps</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">n</span> <span class="o">*</span> <span class="n">dn</span> <span class="o">*</span> <span class="n">eps</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">new_obs</span> <span class="o">/</span> <span class="p">(</span><span class="n">spatial_extent</span> <span class="o">**</span> <span class="mi">3</span><span class="p">)</span> <span class="o">-</span> <span class="mf">0.3</span>
|
||||
|
||||
|
@ -835,8 +900,7 @@
|
|||
<span class="n">r_start</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'r_start'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'r_start does not match number of replicas'</span><span class="p">)</span>
|
||||
<span class="c1"># Adjust Configuration numbering to python index</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
|
||||
|
||||
|
@ -871,6 +935,10 @@
|
|||
|
||||
<span class="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="n">configlist</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">r_start_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">r_stop_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">):</span>
|
||||
<span class="n">tmp_array</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s1">'/'</span> <span class="o">+</span> <span class="n">ls</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="s1">'rb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
|
||||
|
@ -907,15 +975,13 @@
|
|||
<span class="k">if</span> <span class="ow">not</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s1">'something is wrong!'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
||||
<span class="n">configlist</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
|
||||
<span class="k">while</span> <span class="mi">0</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o"><</span> <span class="mi">4</span><span class="p">:</span>
|
||||
<span class="k">break</span>
|
||||
<span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
|
||||
<span class="n">config_no</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
<span class="n">config_no</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">config_no</span><span class="p">)</span>
|
||||
<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="n">nrw</span><span class="p">):</span>
|
||||
<span class="k">if</span><span class="p">(</span><span class="n">version</span> <span class="o">==</span> <span class="s1">'2.0'</span><span class="p">):</span>
|
||||
<span class="n">tmpd</span> <span class="o">=</span> <span class="n">_read_array_openQCD2</span><span class="p">(</span><span class="n">fp</span><span class="p">)</span>
|
||||
|
@ -945,14 +1011,37 @@
|
|||
<span class="nb">print</span><span class="p">(</span><span class="s1">'Sources:'</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)))</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s1">'Partial factor:'</span><span class="p">,</span> <span class="n">tmp_nfct</span><span class="p">)</span>
|
||||
<span class="n">tmp_array</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_nfct</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Config </span><span class="si">%d</span><span class="s1"> not in file with range [</span><span class="si">%d</span><span class="s1">, </span><span class="si">%d</span><span class="s1">]'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">tmp_array</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
<span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Config </span><span class="si">%d</span><span class="s1"> not in file with range [</span><span class="si">%d</span><span class="s1">, </span><span class="si">%d</span><span class="s1">]'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nrw</span><span class="p">):</span>
|
||||
<span class="n">deltas</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_array</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]:</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]][::</span><span class="n">r_step</span><span class="p">])</span>
|
||||
<span class="n">deltas</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_array</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]:</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]][::</span><span class="n">r_step</span><span class="p">])</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Irregular spaced data in input file!'</span><span class="p">,</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">])</span>
|
||||
<span class="n">stepsizes</span> <span class="o">=</span> <span class="p">[</span><span class="nb">list</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">step</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">step</span> <span class="ow">in</span> <span class="n">stepsizes</span><span class="p">]):</span>
|
||||
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s1">'Stepsize between configurations is greater than one!'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">stepsizes</span><span class="p">),</span> <span class="ne">RuntimeWarning</span><span class="p">)</span>
|
||||
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s1">','</span><span class="p">,</span> <span class="n">nrw</span><span class="p">,</span> <span class="s1">'reweighting factors with'</span><span class="p">,</span> <span class="n">nsrc</span><span class="p">,</span> <span class="s1">'sources'</span><span class="p">)</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">r_step</span><span class="p">)</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">)]</span>
|
||||
<span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]],</span> <span class="n">configlist</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]],</span> <span class="n">r_step</span><span class="p">)</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">)]</span>
|
||||
<span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nrw</span><span class="p">):</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">t</span><span class="p">],</span> <span class="n">rep_names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">idl</span><span class="p">))</span>
|
||||
<span class="k">return</span> <span class="n">result</span>
|
||||
|
@ -1014,7 +1103,12 @@ Print additional information that is useful for debugging.</li>
|
|||
<span class="sd"> The data around the zero crossing of t^2<E> - 0.3</span>
|
||||
<span class="sd"> is fitted with a linear function</span>
|
||||
<span class="sd"> from which the exact root is extracted.</span>
|
||||
<span class="sd"> Only works with openQCD v 1.2.</span>
|
||||
<span class="sd"> Only works with openQCD</span>
|
||||
|
||||
<span class="sd"> It is assumed that one measurement is performed for each config.</span>
|
||||
<span class="sd"> If this is not the case, the resulting idl, as well as the handling</span>
|
||||
<span class="sd"> of r_start, r_stop and r_step is wrong and the user has to correct</span>
|
||||
<span class="sd"> this in the resulting observable.</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
|
@ -1051,6 +1145,11 @@ Print additional information that is useful for debugging.</li>
|
|||
<span class="sd"> files performed if given.</span>
|
||||
<span class="sd"> plot_fit : bool</span>
|
||||
<span class="sd"> If true, the fit for the extraction of t0 is shown together with the data.</span>
|
||||
<span class="sd"> assume_thermalization : bool</span>
|
||||
<span class="sd"> If True: If the first record divided by the distance between two measurements is larger than</span>
|
||||
<span class="sd"> 1, it is assumed that this is due to thermalization and the first measurement belongs</span>
|
||||
<span class="sd"> to the first config (default).</span>
|
||||
<span class="sd"> If False: The config numbers are assumed to be traj_number // difference</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">ls</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
@ -1075,7 +1174,7 @@ Print additional information that is useful for debugging.</li>
|
|||
<span class="n">r_start</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'r_start'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'r_start does not match number of replicas'</span><span class="p">)</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
|
||||
|
||||
|
@ -1104,6 +1203,10 @@ Print additional information that is useful for debugging.</li>
|
|||
|
||||
<span class="n">Ysum</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="n">configlist</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">r_start_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">r_stop_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">):</span>
|
||||
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s1">'/'</span> <span class="o">+</span> <span class="n">ls</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="s1">'rb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
|
||||
|
@ -1125,15 +1228,13 @@ Print additional information that is useful for debugging.</li>
|
|||
|
||||
<span class="n">Ysl</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
||||
<span class="n">cfgcount</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
|
||||
<span class="n">configlist</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
|
||||
<span class="k">while</span> <span class="mi">0</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
||||
<span class="k">if</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o"><</span> <span class="mi">4</span><span class="p">):</span>
|
||||
<span class="k">break</span>
|
||||
<span class="n">nc</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">nc</span><span class="p">)</span>
|
||||
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="p">(</span><span class="n">nn</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
|
||||
<span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'plaquette'</span><span class="p">):</span>
|
||||
|
@ -1145,16 +1246,44 @@ Print additional information that is useful for debugging.</li>
|
|||
<span class="n">Ysl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'d'</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="p">(</span><span class="n">nn</span> <span class="o">+</span> <span class="mi">1</span><span class="p">),</span> <span class="n">t</span><span class="p">))</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="p">(</span><span class="n">nn</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
|
||||
|
||||
<span class="n">cfgcount</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">=</span> <span class="n">cfgcount</span>
|
||||
<span class="n">Ysum</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
|
||||
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Ysl</span><span class="p">):</span>
|
||||
<span class="n">Ysum</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">current</span> <span class="o">+</span> <span class="n">xmin</span><span class="p">:</span>
|
||||
<span class="n">current</span> <span class="o">+</span> <span class="n">tmax</span> <span class="o">-</span> <span class="n">xmin</span><span class="p">])</span>
|
||||
<span class="k">for</span> <span class="n">current</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">item</span><span class="p">),</span> <span class="n">tmax</span><span class="p">)])</span>
|
||||
|
||||
<span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">r_step</span><span class="p">)</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">))]</span>
|
||||
<span class="n">diffmeas</span> <span class="o">=</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">item</span> <span class="o">//</span> <span class="n">diffmeas</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span>
|
||||
<span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'assume_thermalization'</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> <span class="ow">and</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s1">'Assume thermalization and that the first measurement belongs to the first config.'</span><span class="p">)</span>
|
||||
<span class="n">offset</span> <span class="o">=</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
|
||||
<span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">item</span> <span class="o">-</span> <span class="n">offset</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Config </span><span class="si">%d</span><span class="s1"> not in file with range [</span><span class="si">%d</span><span class="s1">, </span><span class="si">%d</span><span class="s1">]'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Config </span><span class="si">%d</span><span class="s1"> not in file with range [</span><span class="si">%d</span><span class="s1">, </span><span class="si">%d</span><span class="s1">]'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Irregular spaced data in input file!'</span><span class="p">,</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">])</span>
|
||||
<span class="n">stepsizes</span> <span class="o">=</span> <span class="p">[</span><span class="nb">list</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">step</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">step</span> <span class="ow">in</span> <span class="n">stepsizes</span><span class="p">]):</span>
|
||||
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s1">'Stepsize between configurations is greater than one!'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">stepsizes</span><span class="p">),</span> <span class="ne">RuntimeWarning</span><span class="p">)</span>
|
||||
|
||||
<span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]],</span> <span class="n">configlist</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]],</span> <span class="n">r_step</span><span class="p">)</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">)]</span>
|
||||
<span class="n">t2E_dict</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nn</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
|
||||
<span class="n">samples</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
@ -1162,7 +1291,7 @@ Print additional information that is useful for debugging.</li>
|
|||
<span class="n">samples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
|
||||
<span class="k">for</span> <span class="n">cnfg</span> <span class="ow">in</span> <span class="n">rep</span><span class="p">:</span>
|
||||
<span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cnfg</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
|
||||
<span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="n">r_start</span><span class="p">[</span><span class="n">nrep</span><span class="p">]:</span><span class="n">r_stop</span><span class="p">[</span><span class="n">nrep</span><span class="p">]][::</span><span class="n">r_step</span><span class="p">]</span>
|
||||
<span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">samples</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">nrep</span><span class="p">]:</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">nrep</span><span class="p">]][::</span><span class="n">r_step</span><span class="p">]</span>
|
||||
<span class="n">new_obs</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">samples</span><span class="p">,</span> <span class="n">rep_names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">idl</span><span class="p">)</span>
|
||||
<span class="n">t2E_dict</span><span class="p">[</span><span class="n">n</span> <span class="o">*</span> <span class="n">dn</span> <span class="o">*</span> <span class="n">eps</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">n</span> <span class="o">*</span> <span class="n">dn</span> <span class="o">*</span> <span class="n">eps</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">new_obs</span> <span class="o">/</span> <span class="p">(</span><span class="n">spatial_extent</span> <span class="o">**</span> <span class="mi">3</span><span class="p">)</span> <span class="o">-</span> <span class="mf">0.3</span>
|
||||
|
||||
|
@ -1222,7 +1351,12 @@ sufficiently decayed at x0=xmin.
|
|||
The data around the zero crossing of t^2<E> - 0.3
|
||||
is fitted with a linear function
|
||||
from which the exact root is extracted.
|
||||
Only works with openQCD v 1.2.</p>
|
||||
Only works with openQCD</p>
|
||||
|
||||
<p>It is assumed that one measurement is performed for each config.
|
||||
If this is not the case, the resulting idl, as well as the handling
|
||||
of r_start, r_stop and r_step is wrong and the user has to correct
|
||||
this in the resulting observable.</p>
|
||||
|
||||
<h6 id="parameters">Parameters</h6>
|
||||
|
||||
|
@ -1260,6 +1394,11 @@ list which contains the filenames to be read. No automatic detection of
|
|||
files performed if given.</li>
|
||||
<li><strong>plot_fit</strong> (bool):
|
||||
If true, the fit for the extraction of t0 is shown together with the data.</li>
|
||||
<li><strong>assume_thermalization</strong> (bool):
|
||||
If True: If the first record divided by the distance between two measurements is larger than
|
||||
1, it is assumed that this is due to thermalization and the first measurement belongs
|
||||
to the first config (default).
|
||||
If False: The config numbers are assumed to be traj_number // difference</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue