mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-05-14 19:43:41 +02:00
Documentation updated
This commit is contained in:
parent
1311d70308
commit
738d04ec97
1 changed files with 330 additions and 328 deletions
|
@ -816,266 +816,268 @@
|
|||
</span><span id="L-723"><a href="#L-723"><span class="linenos">723</span></a> <span class="k">if</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">"*"</span> <span class="o">+</span> <span class="n">postfix</span><span class="p">):</span>
|
||||
</span><span id="L-724"><a href="#L-724"><span class="linenos">724</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
|
||||
</span><span id="L-725"><a href="#L-725"><span class="linenos">725</span></a>
|
||||
</span><span id="L-726"><a href="#L-726"><span class="linenos">726</span></a> <span class="k">if</span> <span class="s1">'r_start'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <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><span id="L-728"><a href="#L-728"><span class="linenos">728</span></a> <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="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">):</span>
|
||||
</span><span id="L-729"><a href="#L-729"><span class="linenos">729</span></a> <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><span id="L-730"><a href="#L-730"><span class="linenos">730</span></a> <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><span id="L-731"><a href="#L-731"><span class="linenos">731</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-732"><a href="#L-732"><span class="linenos">732</span></a> <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="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
|
||||
</span><span id="L-733"><a href="#L-733"><span class="linenos">733</span></a>
|
||||
</span><span id="L-734"><a href="#L-734"><span class="linenos">734</span></a> <span class="k">if</span> <span class="s1">'r_stop'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-735"><a href="#L-735"><span class="linenos">735</span></a> <span class="n">r_stop</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_stop'</span><span class="p">)</span>
|
||||
</span><span id="L-736"><a href="#L-736"><span class="linenos">736</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_stop</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">):</span>
|
||||
</span><span id="L-737"><a href="#L-737"><span class="linenos">737</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'r_stop does not match number of replicas'</span><span class="p">)</span>
|
||||
</span><span id="L-738"><a href="#L-738"><span class="linenos">738</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-739"><a href="#L-739"><span class="linenos">739</span></a> <span class="n">r_stop</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
|
||||
</span><span id="L-740"><a href="#L-740"><span class="linenos">740</span></a> <span class="n">rep_names</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a>
|
||||
</span><span id="L-742"><a href="#L-742"><span class="linenos">742</span></a> <span class="n">zeuthen</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">'Zeuthen_flow'</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
||||
</span><span id="L-743"><a href="#L-743"><span class="linenos">743</span></a> <span class="k">if</span> <span class="n">zeuthen</span> <span class="ow">and</span> <span class="n">version</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'sfqcd'</span><span class="p">]:</span>
|
||||
</span><span id="L-744"><a href="#L-744"><span class="linenos">744</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Zeuthen flow can only be used for version==sfqcd'</span><span class="p">)</span>
|
||||
</span><span id="L-745"><a href="#L-745"><span class="linenos">745</span></a>
|
||||
</span><span id="L-746"><a href="#L-746"><span class="linenos">746</span></a> <span class="n">r_start_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-747"><a href="#L-747"><span class="linenos">747</span></a> <span class="n">r_stop_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-748"><a href="#L-748"><span class="linenos">748</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-749"><a href="#L-749"><span class="linenos">749</span></a> <span class="n">configlist</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-750"><a href="#L-750"><span class="linenos">750</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">zeuthen</span><span class="p">:</span>
|
||||
</span><span id="L-751"><a href="#L-751"><span class="linenos">751</span></a> <span class="n">obspos</span> <span class="o">+=</span> <span class="mi">8</span>
|
||||
</span><span id="L-752"><a href="#L-752"><span class="linenos">752</span></a> <span class="k">for</span> <span class="n">rep</span><span class="p">,</span> <span class="n">file</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">files</span><span class="p">):</span>
|
||||
</span><span id="L-753"><a href="#L-753"><span class="linenos">753</span></a> <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="s2">"/"</span> <span class="o">+</span> <span class="n">file</span><span class="p">,</span> <span class="s2">"rb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
|
||||
</span><span id="L-754"><a href="#L-754"><span class="linenos">754</span></a>
|
||||
</span><span id="L-755"><a href="#L-755"><span class="linenos">755</span></a> <span class="n">Q</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-756"><a href="#L-756"><span class="linenos">756</span></a> <span class="n">traj_list</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-757"><a href="#L-757"><span class="linenos">757</span></a> <span class="k">if</span> <span class="n">version</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'sfqcd'</span><span class="p">]:</span>
|
||||
</span><span id="L-758"><a href="#L-758"><span class="linenos">758</span></a> <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">12</span><span class="p">)</span>
|
||||
</span><span id="L-759"><a href="#L-759"><span class="linenos">759</span></a> <span class="n">header</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">'<iii'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
</span><span id="L-760"><a href="#L-760"><span class="linenos">760</span></a> <span class="n">zthfl</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># Zeuthen flow -> if it's equal to 2 it means that the Zeuthen flow is also 'measured' (apart from the Wilson flow)</span>
|
||||
</span><span id="L-761"><a href="#L-761"><span class="linenos">761</span></a> <span class="n">ncs</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="c1"># number of different values for c in t_flow=1/8 c² L² -> measurements done for ncs c's</span>
|
||||
</span><span id="L-762"><a href="#L-762"><span class="linenos">762</span></a> <span class="n">tmax</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="c1"># lattice T/a</span>
|
||||
</span><span id="L-763"><a href="#L-763"><span class="linenos">763</span></a>
|
||||
</span><span id="L-764"><a href="#L-764"><span class="linenos">764</span></a> <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">12</span><span class="p">)</span>
|
||||
</span><span id="L-765"><a href="#L-765"><span class="linenos">765</span></a> <span class="n">Ls</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">'<iii'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
</span><span id="L-766"><a href="#L-766"><span class="linenos">766</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">Ls</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">Ls</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="n">Ls</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="n">Ls</span><span class="p">[</span><span class="mi">2</span><span class="p">]):</span>
|
||||
</span><span id="L-767"><a href="#L-767"><span class="linenos">767</span></a> <span class="n">L</span> <span class="o">=</span> <span class="n">Ls</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-768"><a href="#L-768"><span class="linenos">768</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">supposed_L</span> <span class="o">==</span> <span class="n">L</span><span class="p">)</span> <span class="ow">and</span> <span class="n">supposed_L</span><span class="p">:</span>
|
||||
</span><span id="L-769"><a href="#L-769"><span class="linenos">769</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It seems the length given in the header and by you contradict each other"</span><span class="p">)</span>
|
||||
</span><span id="L-770"><a href="#L-770"><span class="linenos">770</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-771"><a href="#L-771"><span class="linenos">771</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Found more than one spatial length in header!"</span><span class="p">)</span>
|
||||
</span><span id="L-772"><a href="#L-772"><span class="linenos">772</span></a>
|
||||
</span><span id="L-773"><a href="#L-773"><span class="linenos">773</span></a> <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">16</span><span class="p">)</span>
|
||||
</span><span id="L-774"><a href="#L-774"><span class="linenos">774</span></a> <span class="n">header2</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">'<dd'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
</span><span id="L-775"><a href="#L-775"><span class="linenos">775</span></a> <span class="n">tol</span> <span class="o">=</span> <span class="n">header2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-776"><a href="#L-776"><span class="linenos">776</span></a> <span class="n">cmax</span> <span class="o">=</span> <span class="n">header2</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="c1"># highest value of c used</span>
|
||||
</span><span id="L-777"><a href="#L-777"><span class="linenos">777</span></a>
|
||||
</span><span id="L-778"><a href="#L-778"><span class="linenos">778</span></a> <span class="k">if</span> <span class="n">c</span> <span class="o">></span> <span class="n">cmax</span><span class="p">:</span>
|
||||
</span><span id="L-779"><a href="#L-779"><span class="linenos">779</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Flow has been determined between c=0 and c=</span><span class="si">%lf</span><span class="s1"> with tolerance </span><span class="si">%lf</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">cmax</span><span class="p">,</span> <span class="n">tol</span><span class="p">))</span>
|
||||
</span><span id="L-780"><a href="#L-780"><span class="linenos">780</span></a>
|
||||
</span><span id="L-781"><a href="#L-781"><span class="linenos">781</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">zthfl</span> <span class="o">==</span> <span class="mi">2</span><span class="p">):</span>
|
||||
</span><span id="L-782"><a href="#L-782"><span class="linenos">782</span></a> <span class="n">nfl</span> <span class="o">=</span> <span class="mi">2</span> <span class="c1"># number of flows</span>
|
||||
</span><span id="L-783"><a href="#L-783"><span class="linenos">783</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-784"><a href="#L-784"><span class="linenos">784</span></a> <span class="n">nfl</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
</span><span id="L-785"><a href="#L-785"><span class="linenos">785</span></a> <span class="n">iobs</span> <span class="o">=</span> <span class="mi">8</span> <span class="o">*</span> <span class="n">nfl</span> <span class="c1"># number of flow observables calculated</span>
|
||||
</span><span id="L-786"><a href="#L-786"><span class="linenos">786</span></a>
|
||||
</span><span id="L-787"><a href="#L-787"><span class="linenos">787</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
||||
</span><span id="L-788"><a href="#L-788"><span class="linenos">788</span></a> <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><span id="L-789"><a href="#L-789"><span class="linenos">789</span></a> <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><span id="L-790"><a href="#L-790"><span class="linenos">790</span></a> <span class="k">break</span>
|
||||
</span><span id="L-791"><a href="#L-791"><span class="linenos">791</span></a> <span class="n">traj_list</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">'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="c1"># trajectory number when measurement was done</span>
|
||||
</span><span id="L-792"><a href="#L-792"><span class="linenos">792</span></a>
|
||||
</span><span id="L-793"><a href="#L-793"><span class="linenos">793</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncs</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
|
||||
</span><span id="L-794"><a href="#L-794"><span class="linenos">794</span></a> <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">iobs</span><span class="p">):</span>
|
||||
</span><span id="L-795"><a href="#L-795"><span class="linenos">795</span></a> <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="p">)</span>
|
||||
</span><span id="L-796"><a href="#L-796"><span class="linenos">796</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="n">obspos</span><span class="p">):</span> <span class="c1"># determines the flow observable -> i=0 <-> Zeuthen flow</span>
|
||||
</span><span id="L-797"><a href="#L-797"><span class="linenos">797</span></a> <span class="n">Q</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="p">,</span> <span class="n">t</span><span class="p">))</span>
|
||||
</span><span id="L-798"><a href="#L-798"><span class="linenos">798</span></a>
|
||||
</span><span id="L-799"><a href="#L-799"><span class="linenos">799</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-800"><a href="#L-800"><span class="linenos">800</span></a> <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">12</span><span class="p">)</span>
|
||||
</span><span id="L-801"><a href="#L-801"><span class="linenos">801</span></a> <span class="n">header</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">'<iii'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
</span><span id="L-802"><a href="#L-802"><span class="linenos">802</span></a> <span class="c1"># step size in integration steps "dnms"</span>
|
||||
</span><span id="L-803"><a href="#L-803"><span class="linenos">803</span></a> <span class="n">dn</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-804"><a href="#L-804"><span class="linenos">804</span></a> <span class="c1"># number of measurements, so "ntot"/dn</span>
|
||||
</span><span id="L-805"><a href="#L-805"><span class="linenos">805</span></a> <span class="n">nn</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
|
||||
</span><span id="L-806"><a href="#L-806"><span class="linenos">806</span></a> <span class="c1"># lattice T/a</span>
|
||||
</span><span id="L-807"><a href="#L-807"><span class="linenos">807</span></a> <span class="n">tmax</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
|
||||
</span><span id="L-808"><a href="#L-808"><span class="linenos">808</span></a>
|
||||
</span><span id="L-809"><a href="#L-809"><span class="linenos">809</span></a> <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="p">)</span>
|
||||
</span><span id="L-810"><a href="#L-810"><span class="linenos">810</span></a> <span class="n">eps</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">'d'</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-811"><a href="#L-811"><span class="linenos">811</span></a>
|
||||
</span><span id="L-812"><a href="#L-812"><span class="linenos">812</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
||||
</span><span id="L-813"><a href="#L-813"><span class="linenos">813</span></a> <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><span id="L-814"><a href="#L-814"><span class="linenos">814</span></a> <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><span id="L-815"><a href="#L-815"><span class="linenos">815</span></a> <span class="k">break</span>
|
||||
</span><span id="L-816"><a href="#L-816"><span class="linenos">816</span></a> <span class="n">traj_list</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">'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><span id="L-817"><a href="#L-817"><span class="linenos">817</span></a> <span class="c1"># Wsl</span>
|
||||
</span><span id="L-818"><a href="#L-818"><span class="linenos">818</span></a> <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><span id="L-819"><a href="#L-819"><span class="linenos">819</span></a> <span class="c1"># Ysl</span>
|
||||
</span><span id="L-726"><a href="#L-726"><span class="linenos">726</span></a> <span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
|
||||
</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a>
|
||||
</span><span id="L-728"><a href="#L-728"><span class="linenos">728</span></a> <span class="k">if</span> <span class="s1">'r_start'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-729"><a href="#L-729"><span class="linenos">729</span></a> <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><span id="L-730"><a href="#L-730"><span class="linenos">730</span></a> <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="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">):</span>
|
||||
</span><span id="L-731"><a href="#L-731"><span class="linenos">731</span></a> <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><span id="L-732"><a href="#L-732"><span class="linenos">732</span></a> <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><span id="L-733"><a href="#L-733"><span class="linenos">733</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-734"><a href="#L-734"><span class="linenos">734</span></a> <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="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
|
||||
</span><span id="L-735"><a href="#L-735"><span class="linenos">735</span></a>
|
||||
</span><span id="L-736"><a href="#L-736"><span class="linenos">736</span></a> <span class="k">if</span> <span class="s1">'r_stop'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-737"><a href="#L-737"><span class="linenos">737</span></a> <span class="n">r_stop</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_stop'</span><span class="p">)</span>
|
||||
</span><span id="L-738"><a href="#L-738"><span class="linenos">738</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_stop</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">):</span>
|
||||
</span><span id="L-739"><a href="#L-739"><span class="linenos">739</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'r_stop does not match number of replicas'</span><span class="p">)</span>
|
||||
</span><span id="L-740"><a href="#L-740"><span class="linenos">740</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a> <span class="n">r_stop</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
|
||||
</span><span id="L-742"><a href="#L-742"><span class="linenos">742</span></a> <span class="n">rep_names</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-743"><a href="#L-743"><span class="linenos">743</span></a>
|
||||
</span><span id="L-744"><a href="#L-744"><span class="linenos">744</span></a> <span class="n">zeuthen</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">'Zeuthen_flow'</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
||||
</span><span id="L-745"><a href="#L-745"><span class="linenos">745</span></a> <span class="k">if</span> <span class="n">zeuthen</span> <span class="ow">and</span> <span class="n">version</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'sfqcd'</span><span class="p">]:</span>
|
||||
</span><span id="L-746"><a href="#L-746"><span class="linenos">746</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Zeuthen flow can only be used for version==sfqcd'</span><span class="p">)</span>
|
||||
</span><span id="L-747"><a href="#L-747"><span class="linenos">747</span></a>
|
||||
</span><span id="L-748"><a href="#L-748"><span class="linenos">748</span></a> <span class="n">r_start_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-749"><a href="#L-749"><span class="linenos">749</span></a> <span class="n">r_stop_index</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-750"><a href="#L-750"><span class="linenos">750</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-751"><a href="#L-751"><span class="linenos">751</span></a> <span class="n">configlist</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-752"><a href="#L-752"><span class="linenos">752</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">zeuthen</span><span class="p">:</span>
|
||||
</span><span id="L-753"><a href="#L-753"><span class="linenos">753</span></a> <span class="n">obspos</span> <span class="o">+=</span> <span class="mi">8</span>
|
||||
</span><span id="L-754"><a href="#L-754"><span class="linenos">754</span></a> <span class="k">for</span> <span class="n">rep</span><span class="p">,</span> <span class="n">file</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">files</span><span class="p">):</span>
|
||||
</span><span id="L-755"><a href="#L-755"><span class="linenos">755</span></a> <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="s2">"/"</span> <span class="o">+</span> <span class="n">file</span><span class="p">,</span> <span class="s2">"rb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
|
||||
</span><span id="L-756"><a href="#L-756"><span class="linenos">756</span></a>
|
||||
</span><span id="L-757"><a href="#L-757"><span class="linenos">757</span></a> <span class="n">Q</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-758"><a href="#L-758"><span class="linenos">758</span></a> <span class="n">traj_list</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-759"><a href="#L-759"><span class="linenos">759</span></a> <span class="k">if</span> <span class="n">version</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'sfqcd'</span><span class="p">]:</span>
|
||||
</span><span id="L-760"><a href="#L-760"><span class="linenos">760</span></a> <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">12</span><span class="p">)</span>
|
||||
</span><span id="L-761"><a href="#L-761"><span class="linenos">761</span></a> <span class="n">header</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">'<iii'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
</span><span id="L-762"><a href="#L-762"><span class="linenos">762</span></a> <span class="n">zthfl</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># Zeuthen flow -> if it's equal to 2 it means that the Zeuthen flow is also 'measured' (apart from the Wilson flow)</span>
|
||||
</span><span id="L-763"><a href="#L-763"><span class="linenos">763</span></a> <span class="n">ncs</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="c1"># number of different values for c in t_flow=1/8 c² L² -> measurements done for ncs c's</span>
|
||||
</span><span id="L-764"><a href="#L-764"><span class="linenos">764</span></a> <span class="n">tmax</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="c1"># lattice T/a</span>
|
||||
</span><span id="L-765"><a href="#L-765"><span class="linenos">765</span></a>
|
||||
</span><span id="L-766"><a href="#L-766"><span class="linenos">766</span></a> <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">12</span><span class="p">)</span>
|
||||
</span><span id="L-767"><a href="#L-767"><span class="linenos">767</span></a> <span class="n">Ls</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">'<iii'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
</span><span id="L-768"><a href="#L-768"><span class="linenos">768</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">Ls</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">Ls</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="n">Ls</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="n">Ls</span><span class="p">[</span><span class="mi">2</span><span class="p">]):</span>
|
||||
</span><span id="L-769"><a href="#L-769"><span class="linenos">769</span></a> <span class="n">L</span> <span class="o">=</span> <span class="n">Ls</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-770"><a href="#L-770"><span class="linenos">770</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">supposed_L</span> <span class="o">==</span> <span class="n">L</span><span class="p">)</span> <span class="ow">and</span> <span class="n">supposed_L</span><span class="p">:</span>
|
||||
</span><span id="L-771"><a href="#L-771"><span class="linenos">771</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It seems the length given in the header and by you contradict each other"</span><span class="p">)</span>
|
||||
</span><span id="L-772"><a href="#L-772"><span class="linenos">772</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-773"><a href="#L-773"><span class="linenos">773</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Found more than one spatial length in header!"</span><span class="p">)</span>
|
||||
</span><span id="L-774"><a href="#L-774"><span class="linenos">774</span></a>
|
||||
</span><span id="L-775"><a href="#L-775"><span class="linenos">775</span></a> <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">16</span><span class="p">)</span>
|
||||
</span><span id="L-776"><a href="#L-776"><span class="linenos">776</span></a> <span class="n">header2</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">'<dd'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
</span><span id="L-777"><a href="#L-777"><span class="linenos">777</span></a> <span class="n">tol</span> <span class="o">=</span> <span class="n">header2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-778"><a href="#L-778"><span class="linenos">778</span></a> <span class="n">cmax</span> <span class="o">=</span> <span class="n">header2</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="c1"># highest value of c used</span>
|
||||
</span><span id="L-779"><a href="#L-779"><span class="linenos">779</span></a>
|
||||
</span><span id="L-780"><a href="#L-780"><span class="linenos">780</span></a> <span class="k">if</span> <span class="n">c</span> <span class="o">></span> <span class="n">cmax</span><span class="p">:</span>
|
||||
</span><span id="L-781"><a href="#L-781"><span class="linenos">781</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Flow has been determined between c=0 and c=</span><span class="si">%lf</span><span class="s1"> with tolerance </span><span class="si">%lf</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">cmax</span><span class="p">,</span> <span class="n">tol</span><span class="p">))</span>
|
||||
</span><span id="L-782"><a href="#L-782"><span class="linenos">782</span></a>
|
||||
</span><span id="L-783"><a href="#L-783"><span class="linenos">783</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">zthfl</span> <span class="o">==</span> <span class="mi">2</span><span class="p">):</span>
|
||||
</span><span id="L-784"><a href="#L-784"><span class="linenos">784</span></a> <span class="n">nfl</span> <span class="o">=</span> <span class="mi">2</span> <span class="c1"># number of flows</span>
|
||||
</span><span id="L-785"><a href="#L-785"><span class="linenos">785</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-786"><a href="#L-786"><span class="linenos">786</span></a> <span class="n">nfl</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
</span><span id="L-787"><a href="#L-787"><span class="linenos">787</span></a> <span class="n">iobs</span> <span class="o">=</span> <span class="mi">8</span> <span class="o">*</span> <span class="n">nfl</span> <span class="c1"># number of flow observables calculated</span>
|
||||
</span><span id="L-788"><a href="#L-788"><span class="linenos">788</span></a>
|
||||
</span><span id="L-789"><a href="#L-789"><span class="linenos">789</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
||||
</span><span id="L-790"><a href="#L-790"><span class="linenos">790</span></a> <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><span id="L-791"><a href="#L-791"><span class="linenos">791</span></a> <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><span id="L-792"><a href="#L-792"><span class="linenos">792</span></a> <span class="k">break</span>
|
||||
</span><span id="L-793"><a href="#L-793"><span class="linenos">793</span></a> <span class="n">traj_list</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">'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="c1"># trajectory number when measurement was done</span>
|
||||
</span><span id="L-794"><a href="#L-794"><span class="linenos">794</span></a>
|
||||
</span><span id="L-795"><a href="#L-795"><span class="linenos">795</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncs</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
|
||||
</span><span id="L-796"><a href="#L-796"><span class="linenos">796</span></a> <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">iobs</span><span class="p">):</span>
|
||||
</span><span id="L-797"><a href="#L-797"><span class="linenos">797</span></a> <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="p">)</span>
|
||||
</span><span id="L-798"><a href="#L-798"><span class="linenos">798</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="n">obspos</span><span class="p">):</span> <span class="c1"># determines the flow observable -> i=0 <-> Zeuthen flow</span>
|
||||
</span><span id="L-799"><a href="#L-799"><span class="linenos">799</span></a> <span class="n">Q</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="p">,</span> <span class="n">t</span><span class="p">))</span>
|
||||
</span><span id="L-800"><a href="#L-800"><span class="linenos">800</span></a>
|
||||
</span><span id="L-801"><a href="#L-801"><span class="linenos">801</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-802"><a href="#L-802"><span class="linenos">802</span></a> <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">12</span><span class="p">)</span>
|
||||
</span><span id="L-803"><a href="#L-803"><span class="linenos">803</span></a> <span class="n">header</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">'<iii'</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
|
||||
</span><span id="L-804"><a href="#L-804"><span class="linenos">804</span></a> <span class="c1"># step size in integration steps "dnms"</span>
|
||||
</span><span id="L-805"><a href="#L-805"><span class="linenos">805</span></a> <span class="n">dn</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-806"><a href="#L-806"><span class="linenos">806</span></a> <span class="c1"># number of measurements, so "ntot"/dn</span>
|
||||
</span><span id="L-807"><a href="#L-807"><span class="linenos">807</span></a> <span class="n">nn</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
|
||||
</span><span id="L-808"><a href="#L-808"><span class="linenos">808</span></a> <span class="c1"># lattice T/a</span>
|
||||
</span><span id="L-809"><a href="#L-809"><span class="linenos">809</span></a> <span class="n">tmax</span> <span class="o">=</span> <span class="n">header</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
|
||||
</span><span id="L-810"><a href="#L-810"><span class="linenos">810</span></a>
|
||||
</span><span id="L-811"><a href="#L-811"><span class="linenos">811</span></a> <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="p">)</span>
|
||||
</span><span id="L-812"><a href="#L-812"><span class="linenos">812</span></a> <span class="n">eps</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">'d'</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-813"><a href="#L-813"><span class="linenos">813</span></a>
|
||||
</span><span id="L-814"><a href="#L-814"><span class="linenos">814</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
||||
</span><span id="L-815"><a href="#L-815"><span class="linenos">815</span></a> <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><span id="L-816"><a href="#L-816"><span class="linenos">816</span></a> <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><span id="L-817"><a href="#L-817"><span class="linenos">817</span></a> <span class="k">break</span>
|
||||
</span><span id="L-818"><a href="#L-818"><span class="linenos">818</span></a> <span class="n">traj_list</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">'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><span id="L-819"><a href="#L-819"><span class="linenos">819</span></a> <span class="c1"># Wsl</span>
|
||||
</span><span id="L-820"><a href="#L-820"><span class="linenos">820</span></a> <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><span id="L-821"><a href="#L-821"><span class="linenos">821</span></a> <span class="c1"># Qsl, which is asked for in this method</span>
|
||||
</span><span id="L-821"><a href="#L-821"><span class="linenos">821</span></a> <span class="c1"># Ysl</span>
|
||||
</span><span id="L-822"><a href="#L-822"><span class="linenos">822</span></a> <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><span id="L-823"><a href="#L-823"><span class="linenos">823</span></a> <span class="c1"># unpack the array of Qtops,</span>
|
||||
</span><span id="L-824"><a href="#L-824"><span class="linenos">824</span></a> <span class="c1"># on each timeslice t=0,...,tmax-1 and the</span>
|
||||
</span><span id="L-825"><a href="#L-825"><span class="linenos">825</span></a> <span class="c1"># measurement number in = 0...nn (see README.qcd1)</span>
|
||||
</span><span id="L-826"><a href="#L-826"><span class="linenos">826</span></a> <span class="n">tmpd</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">'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><span id="L-827"><a href="#L-827"><span class="linenos">827</span></a> <span class="n">Q</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmpd</span><span class="p">)</span>
|
||||
</span><span id="L-828"><a href="#L-828"><span class="linenos">828</span></a>
|
||||
</span><span id="L-829"><a href="#L-829"><span class="linenos">829</span></a> <span class="k">if</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">traj_list</span><span class="p">)))</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
|
||||
</span><span id="L-830"><a href="#L-830"><span class="linenos">830</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Irregularities in stepsize found"</span><span class="p">)</span>
|
||||
</span><span id="L-831"><a href="#L-831"><span class="linenos">831</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-832"><a href="#L-832"><span class="linenos">832</span></a> <span class="k">if</span> <span class="s1">'steps'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-833"><a href="#L-833"><span class="linenos">833</span></a> <span class="k">if</span> <span class="n">steps</span> <span class="o">!=</span> <span class="n">traj_list</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">traj_list</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
|
||||
</span><span id="L-834"><a href="#L-834"><span class="linenos">834</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"steps and the found stepsize are not the same"</span><span class="p">)</span>
|
||||
</span><span id="L-835"><a href="#L-835"><span class="linenos">835</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-836"><a href="#L-836"><span class="linenos">836</span></a> <span class="n">steps</span> <span class="o">=</span> <span class="n">traj_list</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">traj_list</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-837"><a href="#L-837"><span class="linenos">837</span></a>
|
||||
</span><span id="L-838"><a href="#L-838"><span class="linenos">838</span></a> <span class="n">configlist</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">tr</span> <span class="o">//</span> <span class="n">steps</span> <span class="o">//</span> <span class="n">dtr_cnfg</span> <span class="k">for</span> <span class="n">tr</span> <span class="ow">in</span> <span class="n">traj_list</span><span class="p">])</span>
|
||||
</span><span id="L-839"><a href="#L-839"><span class="linenos">839</span></a> <span class="k">if</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><span id="L-840"><a href="#L-840"><span class="linenos">840</span></a> <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><span id="L-841"><a href="#L-841"><span class="linenos">841</span></a> <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. Offset = </span><span class="si">%d</span><span class="s1"> configs (</span><span class="si">%d</span><span class="s1"> trajectories / cycles)'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
</span><span id="L-842"><a href="#L-842"><span class="linenos">842</span></a> <span class="n">offset</span><span class="p">,</span> <span class="n">offset</span> <span class="o">*</span> <span class="n">steps</span><span class="p">))</span>
|
||||
</span><span id="L-843"><a href="#L-843"><span class="linenos">843</span></a> <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><span id="L-844"><a href="#L-844"><span class="linenos">844</span></a>
|
||||
</span><span id="L-845"><a href="#L-845"><span class="linenos">845</span></a> <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><span id="L-846"><a href="#L-846"><span class="linenos">846</span></a> <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><span id="L-847"><a href="#L-847"><span class="linenos">847</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-848"><a href="#L-848"><span class="linenos">848</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-849"><a href="#L-849"><span class="linenos">849</span></a> <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><span id="L-850"><a href="#L-850"><span class="linenos">850</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
</span><span id="L-851"><a href="#L-851"><span class="linenos">851</span></a> <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><span id="L-852"><a href="#L-852"><span class="linenos">852</span></a> <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><span id="L-853"><a href="#L-853"><span class="linenos">853</span></a>
|
||||
</span><span id="L-854"><a href="#L-854"><span class="linenos">854</span></a> <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><span id="L-855"><a href="#L-855"><span class="linenos">855</span></a> <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><span id="L-856"><a href="#L-856"><span class="linenos">856</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-857"><a href="#L-857"><span class="linenos">857</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-858"><a href="#L-858"><span class="linenos">858</span></a> <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><span id="L-859"><a href="#L-859"><span class="linenos">859</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
</span><span id="L-860"><a href="#L-860"><span class="linenos">860</span></a> <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><span id="L-861"><a href="#L-861"><span class="linenos">861</span></a> <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><span id="L-862"><a href="#L-862"><span class="linenos">862</span></a>
|
||||
</span><span id="L-863"><a href="#L-863"><span class="linenos">863</span></a> <span class="k">if</span> <span class="n">version</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'sfqcd'</span><span class="p">]:</span>
|
||||
</span><span id="L-864"><a href="#L-864"><span class="linenos">864</span></a> <span class="n">cstepsize</span> <span class="o">=</span> <span class="n">cmax</span> <span class="o">/</span> <span class="n">ncs</span>
|
||||
</span><span id="L-865"><a href="#L-865"><span class="linenos">865</span></a> <span class="n">index_aim</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span><span class="n">c</span> <span class="o">/</span> <span class="n">cstepsize</span><span class="p">)</span>
|
||||
</span><span id="L-866"><a href="#L-866"><span class="linenos">866</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-867"><a href="#L-867"><span class="linenos">867</span></a> <span class="n">t_aim</span> <span class="o">=</span> <span class="p">(</span><span class="n">c</span> <span class="o">*</span> <span class="n">L</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">/</span> <span class="mi">8</span>
|
||||
</span><span id="L-868"><a href="#L-868"><span class="linenos">868</span></a> <span class="n">index_aim</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span><span class="n">t_aim</span> <span class="o">/</span> <span class="n">eps</span> <span class="o">/</span> <span class="n">dn</span><span class="p">)</span>
|
||||
</span><span id="L-869"><a href="#L-869"><span class="linenos">869</span></a>
|
||||
</span><span id="L-870"><a href="#L-870"><span class="linenos">870</span></a> <span class="n">Q_sum</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-871"><a href="#L-871"><span class="linenos">871</span></a> <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">Q</span><span class="p">):</span>
|
||||
</span><span id="L-872"><a href="#L-872"><span class="linenos">872</span></a> <span class="k">if</span> <span class="n">sum_t</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
|
||||
</span><span id="L-873"><a href="#L-873"><span class="linenos">873</span></a> <span class="n">Q_sum</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="nb">sum</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">current</span><span class="p">:</span><span class="n">current</span> <span class="o">+</span> <span class="n">tmax</span><span class="p">])</span>
|
||||
</span><span id="L-874"><a href="#L-874"><span class="linenos">874</span></a> <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><span id="L-875"><a href="#L-875"><span class="linenos">875</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-876"><a href="#L-876"><span class="linenos">876</span></a> <span class="n">Q_sum</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">item</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">tmax</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)]])</span>
|
||||
</span><span id="L-877"><a href="#L-877"><span class="linenos">877</span></a> <span class="n">Q_top</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-878"><a href="#L-878"><span class="linenos">878</span></a> <span class="k">if</span> <span class="n">version</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'sfqcd'</span><span class="p">]:</span>
|
||||
</span><span id="L-879"><a href="#L-879"><span class="linenos">879</span></a> <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="nb">len</span><span class="p">(</span><span class="n">Q_sum</span><span class="p">)</span> <span class="o">//</span> <span class="p">(</span><span class="n">ncs</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)):</span>
|
||||
</span><span id="L-880"><a href="#L-880"><span class="linenos">880</span></a> <span class="n">Q_top</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Q_sum</span><span class="p">[</span><span class="n">i</span> <span class="o">*</span> <span class="p">(</span><span class="n">ncs</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="n">index_aim</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
|
||||
</span><span id="L-881"><a href="#L-881"><span class="linenos">881</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-882"><a href="#L-882"><span class="linenos">882</span></a> <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="nb">len</span><span class="p">(</span><span class="n">Q</span><span class="p">)</span> <span class="o">//</span> <span class="n">dtr_cnfg</span><span class="p">):</span>
|
||||
</span><span id="L-883"><a href="#L-883"><span class="linenos">883</span></a> <span class="n">Q_top</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Q_sum</span><span class="p">[</span><span class="n">dtr_cnfg</span> <span class="o">*</span> <span class="n">i</span><span class="p">][</span><span class="n">index_aim</span><span class="p">])</span>
|
||||
</span><span id="L-884"><a href="#L-884"><span class="linenos">884</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">Q_top</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">traj_list</span><span class="p">)</span> <span class="o">//</span> <span class="n">dtr_cnfg</span><span class="p">:</span>
|
||||
</span><span id="L-885"><a href="#L-885"><span class="linenos">885</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"qtops and traj_list dont have the same length"</span><span class="p">)</span>
|
||||
</span><span id="L-886"><a href="#L-886"><span class="linenos">886</span></a>
|
||||
</span><span id="L-887"><a href="#L-887"><span class="linenos">887</span></a> <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">'integer_charge'</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
|
||||
</span><span id="L-888"><a href="#L-888"><span class="linenos">888</span></a> <span class="n">Q_top</span> <span class="o">=</span> <span class="p">[</span><span class="nb">round</span><span class="p">(</span><span class="n">q</span><span class="p">)</span> <span class="k">for</span> <span class="n">q</span> <span class="ow">in</span> <span class="n">Q_top</span><span class="p">]</span>
|
||||
</span><span id="L-889"><a href="#L-889"><span class="linenos">889</span></a>
|
||||
</span><span id="L-890"><a href="#L-890"><span class="linenos">890</span></a> <span class="n">truncated_file</span> <span class="o">=</span> <span class="n">file</span><span class="p">[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">postfix</span><span class="p">)]</span>
|
||||
</span><span id="L-823"><a href="#L-823"><span class="linenos">823</span></a> <span class="c1"># Qsl, which is asked for in this method</span>
|
||||
</span><span id="L-824"><a href="#L-824"><span class="linenos">824</span></a> <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><span id="L-825"><a href="#L-825"><span class="linenos">825</span></a> <span class="c1"># unpack the array of Qtops,</span>
|
||||
</span><span id="L-826"><a href="#L-826"><span class="linenos">826</span></a> <span class="c1"># on each timeslice t=0,...,tmax-1 and the</span>
|
||||
</span><span id="L-827"><a href="#L-827"><span class="linenos">827</span></a> <span class="c1"># measurement number in = 0...nn (see README.qcd1)</span>
|
||||
</span><span id="L-828"><a href="#L-828"><span class="linenos">828</span></a> <span class="n">tmpd</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">'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><span id="L-829"><a href="#L-829"><span class="linenos">829</span></a> <span class="n">Q</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmpd</span><span class="p">)</span>
|
||||
</span><span id="L-830"><a href="#L-830"><span class="linenos">830</span></a>
|
||||
</span><span id="L-831"><a href="#L-831"><span class="linenos">831</span></a> <span class="k">if</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">traj_list</span><span class="p">)))</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
|
||||
</span><span id="L-832"><a href="#L-832"><span class="linenos">832</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Irregularities in stepsize found"</span><span class="p">)</span>
|
||||
</span><span id="L-833"><a href="#L-833"><span class="linenos">833</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-834"><a href="#L-834"><span class="linenos">834</span></a> <span class="k">if</span> <span class="s1">'steps'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-835"><a href="#L-835"><span class="linenos">835</span></a> <span class="k">if</span> <span class="n">steps</span> <span class="o">!=</span> <span class="n">traj_list</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">traj_list</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
|
||||
</span><span id="L-836"><a href="#L-836"><span class="linenos">836</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"steps and the found stepsize are not the same"</span><span class="p">)</span>
|
||||
</span><span id="L-837"><a href="#L-837"><span class="linenos">837</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-838"><a href="#L-838"><span class="linenos">838</span></a> <span class="n">steps</span> <span class="o">=</span> <span class="n">traj_list</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">traj_list</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
</span><span id="L-839"><a href="#L-839"><span class="linenos">839</span></a>
|
||||
</span><span id="L-840"><a href="#L-840"><span class="linenos">840</span></a> <span class="n">configlist</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">tr</span> <span class="o">//</span> <span class="n">steps</span> <span class="o">//</span> <span class="n">dtr_cnfg</span> <span class="k">for</span> <span class="n">tr</span> <span class="ow">in</span> <span class="n">traj_list</span><span class="p">])</span>
|
||||
</span><span id="L-841"><a href="#L-841"><span class="linenos">841</span></a> <span class="k">if</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><span id="L-842"><a href="#L-842"><span class="linenos">842</span></a> <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><span id="L-843"><a href="#L-843"><span class="linenos">843</span></a> <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. Offset = </span><span class="si">%d</span><span class="s1"> configs (</span><span class="si">%d</span><span class="s1"> trajectories / cycles)'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
</span><span id="L-844"><a href="#L-844"><span class="linenos">844</span></a> <span class="n">offset</span><span class="p">,</span> <span class="n">offset</span> <span class="o">*</span> <span class="n">steps</span><span class="p">))</span>
|
||||
</span><span id="L-845"><a href="#L-845"><span class="linenos">845</span></a> <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><span id="L-846"><a href="#L-846"><span class="linenos">846</span></a>
|
||||
</span><span id="L-847"><a href="#L-847"><span class="linenos">847</span></a> <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><span id="L-848"><a href="#L-848"><span class="linenos">848</span></a> <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><span id="L-849"><a href="#L-849"><span class="linenos">849</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-850"><a href="#L-850"><span class="linenos">850</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-851"><a href="#L-851"><span class="linenos">851</span></a> <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><span id="L-852"><a href="#L-852"><span class="linenos">852</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
</span><span id="L-853"><a href="#L-853"><span class="linenos">853</span></a> <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><span id="L-854"><a href="#L-854"><span class="linenos">854</span></a> <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><span id="L-855"><a href="#L-855"><span class="linenos">855</span></a>
|
||||
</span><span id="L-856"><a href="#L-856"><span class="linenos">856</span></a> <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><span id="L-857"><a href="#L-857"><span class="linenos">857</span></a> <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><span id="L-858"><a href="#L-858"><span class="linenos">858</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-859"><a href="#L-859"><span class="linenos">859</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-860"><a href="#L-860"><span class="linenos">860</span></a> <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><span id="L-861"><a href="#L-861"><span class="linenos">861</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
</span><span id="L-862"><a href="#L-862"><span class="linenos">862</span></a> <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><span id="L-863"><a href="#L-863"><span class="linenos">863</span></a> <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><span id="L-864"><a href="#L-864"><span class="linenos">864</span></a>
|
||||
</span><span id="L-865"><a href="#L-865"><span class="linenos">865</span></a> <span class="k">if</span> <span class="n">version</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'sfqcd'</span><span class="p">]:</span>
|
||||
</span><span id="L-866"><a href="#L-866"><span class="linenos">866</span></a> <span class="n">cstepsize</span> <span class="o">=</span> <span class="n">cmax</span> <span class="o">/</span> <span class="n">ncs</span>
|
||||
</span><span id="L-867"><a href="#L-867"><span class="linenos">867</span></a> <span class="n">index_aim</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span><span class="n">c</span> <span class="o">/</span> <span class="n">cstepsize</span><span class="p">)</span>
|
||||
</span><span id="L-868"><a href="#L-868"><span class="linenos">868</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-869"><a href="#L-869"><span class="linenos">869</span></a> <span class="n">t_aim</span> <span class="o">=</span> <span class="p">(</span><span class="n">c</span> <span class="o">*</span> <span class="n">L</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">/</span> <span class="mi">8</span>
|
||||
</span><span id="L-870"><a href="#L-870"><span class="linenos">870</span></a> <span class="n">index_aim</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span><span class="n">t_aim</span> <span class="o">/</span> <span class="n">eps</span> <span class="o">/</span> <span class="n">dn</span><span class="p">)</span>
|
||||
</span><span id="L-871"><a href="#L-871"><span class="linenos">871</span></a>
|
||||
</span><span id="L-872"><a href="#L-872"><span class="linenos">872</span></a> <span class="n">Q_sum</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-873"><a href="#L-873"><span class="linenos">873</span></a> <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">Q</span><span class="p">):</span>
|
||||
</span><span id="L-874"><a href="#L-874"><span class="linenos">874</span></a> <span class="k">if</span> <span class="n">sum_t</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
|
||||
</span><span id="L-875"><a href="#L-875"><span class="linenos">875</span></a> <span class="n">Q_sum</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="nb">sum</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">current</span><span class="p">:</span><span class="n">current</span> <span class="o">+</span> <span class="n">tmax</span><span class="p">])</span>
|
||||
</span><span id="L-876"><a href="#L-876"><span class="linenos">876</span></a> <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><span id="L-877"><a href="#L-877"><span class="linenos">877</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-878"><a href="#L-878"><span class="linenos">878</span></a> <span class="n">Q_sum</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">item</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">tmax</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)]])</span>
|
||||
</span><span id="L-879"><a href="#L-879"><span class="linenos">879</span></a> <span class="n">Q_top</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-880"><a href="#L-880"><span class="linenos">880</span></a> <span class="k">if</span> <span class="n">version</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'sfqcd'</span><span class="p">]:</span>
|
||||
</span><span id="L-881"><a href="#L-881"><span class="linenos">881</span></a> <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="nb">len</span><span class="p">(</span><span class="n">Q_sum</span><span class="p">)</span> <span class="o">//</span> <span class="p">(</span><span class="n">ncs</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)):</span>
|
||||
</span><span id="L-882"><a href="#L-882"><span class="linenos">882</span></a> <span class="n">Q_top</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Q_sum</span><span class="p">[</span><span class="n">i</span> <span class="o">*</span> <span class="p">(</span><span class="n">ncs</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="n">index_aim</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
|
||||
</span><span id="L-883"><a href="#L-883"><span class="linenos">883</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-884"><a href="#L-884"><span class="linenos">884</span></a> <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="nb">len</span><span class="p">(</span><span class="n">Q</span><span class="p">)</span> <span class="o">//</span> <span class="n">dtr_cnfg</span><span class="p">):</span>
|
||||
</span><span id="L-885"><a href="#L-885"><span class="linenos">885</span></a> <span class="n">Q_top</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Q_sum</span><span class="p">[</span><span class="n">dtr_cnfg</span> <span class="o">*</span> <span class="n">i</span><span class="p">][</span><span class="n">index_aim</span><span class="p">])</span>
|
||||
</span><span id="L-886"><a href="#L-886"><span class="linenos">886</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">Q_top</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">traj_list</span><span class="p">)</span> <span class="o">//</span> <span class="n">dtr_cnfg</span><span class="p">:</span>
|
||||
</span><span id="L-887"><a href="#L-887"><span class="linenos">887</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"qtops and traj_list dont have the same length"</span><span class="p">)</span>
|
||||
</span><span id="L-888"><a href="#L-888"><span class="linenos">888</span></a>
|
||||
</span><span id="L-889"><a href="#L-889"><span class="linenos">889</span></a> <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">'integer_charge'</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
|
||||
</span><span id="L-890"><a href="#L-890"><span class="linenos">890</span></a> <span class="n">Q_top</span> <span class="o">=</span> <span class="p">[</span><span class="nb">round</span><span class="p">(</span><span class="n">q</span><span class="p">)</span> <span class="k">for</span> <span class="n">q</span> <span class="ow">in</span> <span class="n">Q_top</span><span class="p">]</span>
|
||||
</span><span id="L-891"><a href="#L-891"><span class="linenos">891</span></a>
|
||||
</span><span id="L-892"><a href="#L-892"><span class="linenos">892</span></a> <span class="k">if</span> <span class="s2">"names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-893"><a href="#L-893"><span class="linenos">893</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-894"><a href="#L-894"><span class="linenos">894</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">truncated_file</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">'r'</span><span class="p">)</span>
|
||||
</span><span id="L-895"><a href="#L-895"><span class="linenos">895</span></a> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
|
||||
</span><span id="L-896"><a href="#L-896"><span class="linenos">896</span></a> <span class="k">if</span> <span class="s2">"names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-897"><a href="#L-897"><span class="linenos">897</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Automatic recognition of replicum failed, please enter the key word 'names'."</span><span class="p">)</span>
|
||||
</span><span id="L-898"><a href="#L-898"><span class="linenos">898</span></a> <span class="n">ens_name</span> <span class="o">=</span> <span class="n">truncated_file</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span>
|
||||
</span><span id="L-899"><a href="#L-899"><span class="linenos">899</span></a> <span class="n">rep_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ens_name</span> <span class="o">+</span> <span class="s1">'|'</span> <span class="o">+</span> <span class="n">truncated_file</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
|
||||
</span><span id="L-900"><a href="#L-900"><span class="linenos">900</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-901"><a href="#L-901"><span class="linenos">901</span></a> <span class="n">names</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="s2">"names"</span><span class="p">)</span>
|
||||
</span><span id="L-902"><a href="#L-902"><span class="linenos">902</span></a> <span class="n">rep_names</span> <span class="o">=</span> <span class="n">names</span>
|
||||
</span><span id="L-903"><a href="#L-903"><span class="linenos">903</span></a> <span class="n">deltas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Q_top</span><span class="p">)</span>
|
||||
</span><span id="L-904"><a href="#L-904"><span class="linenos">904</span></a>
|
||||
</span><span id="L-905"><a href="#L-905"><span class="linenos">905</span></a> <span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="nb">int</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="nb">int</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="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</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">deltas</span><span class="p">))]</span>
|
||||
</span><span id="L-906"><a href="#L-906"><span class="linenos">906</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[</span><span class="n">deltas</span><span class="p">[</span><span class="n">nrep</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="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">nrep</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">deltas</span><span class="p">))]</span>
|
||||
</span><span id="L-907"><a href="#L-907"><span class="linenos">907</span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">deltas</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><span id="L-908"><a href="#L-908"><span class="linenos">908</span></a> <span class="n">result</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"T"</span><span class="p">:</span> <span class="n">tmax</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span>
|
||||
</span><span id="L-909"><a href="#L-909"><span class="linenos">909</span></a> <span class="s2">"L"</span><span class="p">:</span> <span class="n">L</span><span class="p">}</span>
|
||||
</span><span id="L-910"><a href="#L-910"><span class="linenos">910</span></a> <span class="k">return</span> <span class="n">result</span>
|
||||
</span><span id="L-911"><a href="#L-911"><span class="linenos">911</span></a>
|
||||
</span><span id="L-912"><a href="#L-912"><span class="linenos">912</span></a>
|
||||
</span><span id="L-913"><a href="#L-913"><span class="linenos">913</span></a><span class="k">def</span> <span class="nf">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
|
||||
</span><span id="L-914"><a href="#L-914"><span class="linenos">914</span></a> <span class="sd">"""Returns the projection to the topological charge sector defined by target.</span>
|
||||
</span><span id="L-915"><a href="#L-915"><span class="linenos">915</span></a>
|
||||
</span><span id="L-916"><a href="#L-916"><span class="linenos">916</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="L-917"><a href="#L-917"><span class="linenos">917</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="L-918"><a href="#L-918"><span class="linenos">918</span></a><span class="sd"> path : Obs</span>
|
||||
</span><span id="L-919"><a href="#L-919"><span class="linenos">919</span></a><span class="sd"> Topological charge.</span>
|
||||
</span><span id="L-920"><a href="#L-920"><span class="linenos">920</span></a><span class="sd"> target : int</span>
|
||||
</span><span id="L-921"><a href="#L-921"><span class="linenos">921</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
|
||||
</span><span id="L-922"><a href="#L-922"><span class="linenos">922</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-923"><a href="#L-923"><span class="linenos">923</span></a> <span class="k">if</span> <span class="n">qtop</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
</span><span id="L-924"><a href="#L-924"><span class="linenos">924</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'You can not use a reweighted observable for reweighting!'</span><span class="p">)</span>
|
||||
</span><span id="L-925"><a href="#L-925"><span class="linenos">925</span></a>
|
||||
</span><span id="L-926"><a href="#L-926"><span class="linenos">926</span></a> <span class="n">proj_qtop</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-927"><a href="#L-927"><span class="linenos">927</span></a> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">:</span>
|
||||
</span><span id="L-928"><a href="#L-928"><span class="linenos">928</span></a> <span class="n">proj_qtop</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">array</span><span class="p">([</span><span class="mi">1</span> <span class="k">if</span> <span class="nb">round</span><span class="p">(</span><span class="n">qtop</span><span class="o">.</span><span class="n">value</span> <span class="o">+</span> <span class="n">q</span><span class="p">)</span> <span class="o">==</span> <span class="n">target</span> <span class="k">else</span> <span class="mi">0</span> <span class="k">for</span> <span class="n">q</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">]]))</span>
|
||||
</span><span id="L-929"><a href="#L-929"><span class="linenos">929</span></a>
|
||||
</span><span id="L-930"><a href="#L-930"><span class="linenos">930</span></a> <span class="n">reto</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">proj_qtop</span><span class="p">,</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="n">qtop</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">])</span>
|
||||
</span><span id="L-931"><a href="#L-931"><span class="linenos">931</span></a> <span class="n">reto</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">qtop</span><span class="o">.</span><span class="n">is_merged</span>
|
||||
</span><span id="L-932"><a href="#L-932"><span class="linenos">932</span></a> <span class="k">return</span> <span class="n">reto</span>
|
||||
</span><span id="L-933"><a href="#L-933"><span class="linenos">933</span></a>
|
||||
</span><span id="L-934"><a href="#L-934"><span class="linenos">934</span></a>
|
||||
</span><span id="L-935"><a href="#L-935"><span class="linenos">935</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="L-936"><a href="#L-936"><span class="linenos">936</span></a> <span class="sd">"""Constructs reweighting factors to a specified topological sector.</span>
|
||||
</span><span id="L-937"><a href="#L-937"><span class="linenos">937</span></a>
|
||||
</span><span id="L-938"><a href="#L-938"><span class="linenos">938</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="L-939"><a href="#L-939"><span class="linenos">939</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="L-940"><a href="#L-940"><span class="linenos">940</span></a><span class="sd"> path : str</span>
|
||||
</span><span id="L-941"><a href="#L-941"><span class="linenos">941</span></a><span class="sd"> path of the measurement files</span>
|
||||
</span><span id="L-942"><a href="#L-942"><span class="linenos">942</span></a><span class="sd"> prefix : str</span>
|
||||
</span><span id="L-943"><a href="#L-943"><span class="linenos">943</span></a><span class="sd"> prefix of the measurement files, e.g. <prefix>_id0_r0.ms.dat</span>
|
||||
</span><span id="L-944"><a href="#L-944"><span class="linenos">944</span></a><span class="sd"> c : double</span>
|
||||
</span><span id="L-945"><a href="#L-945"><span class="linenos">945</span></a><span class="sd"> Smearing radius in units of the lattice extent, c = sqrt(8 t0) / L</span>
|
||||
</span><span id="L-946"><a href="#L-946"><span class="linenos">946</span></a><span class="sd"> target : int</span>
|
||||
</span><span id="L-947"><a href="#L-947"><span class="linenos">947</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
|
||||
</span><span id="L-948"><a href="#L-948"><span class="linenos">948</span></a><span class="sd"> dtr_cnfg : int</span>
|
||||
</span><span id="L-949"><a href="#L-949"><span class="linenos">949</span></a><span class="sd"> (optional) parameter that specifies the number of trajectories</span>
|
||||
</span><span id="L-950"><a href="#L-950"><span class="linenos">950</span></a><span class="sd"> between two configs.</span>
|
||||
</span><span id="L-951"><a href="#L-951"><span class="linenos">951</span></a><span class="sd"> if it is not set, the distance between two measurements</span>
|
||||
</span><span id="L-952"><a href="#L-952"><span class="linenos">952</span></a><span class="sd"> in the file is assumed to be the distance between two configurations.</span>
|
||||
</span><span id="L-953"><a href="#L-953"><span class="linenos">953</span></a><span class="sd"> steps : int</span>
|
||||
</span><span id="L-954"><a href="#L-954"><span class="linenos">954</span></a><span class="sd"> (optional) Distance between two configurations in units of trajectories /</span>
|
||||
</span><span id="L-955"><a href="#L-955"><span class="linenos">955</span></a><span class="sd"> cycles. Assumed to be the distance between two measurements * dtr_cnfg if not given</span>
|
||||
</span><span id="L-956"><a href="#L-956"><span class="linenos">956</span></a><span class="sd"> version : str</span>
|
||||
</span><span id="L-957"><a href="#L-957"><span class="linenos">957</span></a><span class="sd"> version string of the openQCD (sfqcd) version used to create</span>
|
||||
</span><span id="L-958"><a href="#L-958"><span class="linenos">958</span></a><span class="sd"> the ensemble. Default is 2.0. May also be set to sfqcd.</span>
|
||||
</span><span id="L-959"><a href="#L-959"><span class="linenos">959</span></a><span class="sd"> L : int</span>
|
||||
</span><span id="L-960"><a href="#L-960"><span class="linenos">960</span></a><span class="sd"> spatial length of the lattice in L/a.</span>
|
||||
</span><span id="L-961"><a href="#L-961"><span class="linenos">961</span></a><span class="sd"> HAS to be set if version != sfqcd, since openQCD does not provide</span>
|
||||
</span><span id="L-962"><a href="#L-962"><span class="linenos">962</span></a><span class="sd"> this in the header</span>
|
||||
</span><span id="L-963"><a href="#L-963"><span class="linenos">963</span></a><span class="sd"> r_start : list</span>
|
||||
</span><span id="L-964"><a href="#L-964"><span class="linenos">964</span></a><span class="sd"> offset of the first ensemble, making it easier to match</span>
|
||||
</span><span id="L-965"><a href="#L-965"><span class="linenos">965</span></a><span class="sd"> later on with other Obs</span>
|
||||
</span><span id="L-966"><a href="#L-966"><span class="linenos">966</span></a><span class="sd"> r_stop : list</span>
|
||||
</span><span id="L-967"><a href="#L-967"><span class="linenos">967</span></a><span class="sd"> last configurations that need to be read (per replicum)</span>
|
||||
</span><span id="L-968"><a href="#L-968"><span class="linenos">968</span></a><span class="sd"> files : list</span>
|
||||
</span><span id="L-969"><a href="#L-969"><span class="linenos">969</span></a><span class="sd"> specify the exact files that need to be read</span>
|
||||
</span><span id="L-970"><a href="#L-970"><span class="linenos">970</span></a><span class="sd"> from path, practical if e.g. only one replicum is needed</span>
|
||||
</span><span id="L-971"><a href="#L-971"><span class="linenos">971</span></a><span class="sd"> names : list</span>
|
||||
</span><span id="L-972"><a href="#L-972"><span class="linenos">972</span></a><span class="sd"> Alternative labeling for replicas/ensembles.</span>
|
||||
</span><span id="L-973"><a href="#L-973"><span class="linenos">973</span></a><span class="sd"> Has to have the appropriate length</span>
|
||||
</span><span id="L-974"><a href="#L-974"><span class="linenos">974</span></a><span class="sd"> Zeuthen_flow : bool</span>
|
||||
</span><span id="L-975"><a href="#L-975"><span class="linenos">975</span></a><span class="sd"> (optional) If True, the Zeuthen flow is used for Qtop. Only possible</span>
|
||||
</span><span id="L-976"><a href="#L-976"><span class="linenos">976</span></a><span class="sd"> for version=='sfqcd' If False, the Wilson flow is used.</span>
|
||||
</span><span id="L-977"><a href="#L-977"><span class="linenos">977</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-978"><a href="#L-978"><span class="linenos">978</span></a>
|
||||
</span><span id="L-979"><a href="#L-979"><span class="linenos">979</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
|
||||
</span><span id="L-980"><a href="#L-980"><span class="linenos">980</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"'target' has to be an integer."</span><span class="p">)</span>
|
||||
</span><span id="L-981"><a href="#L-981"><span class="linenos">981</span></a>
|
||||
</span><span id="L-982"><a href="#L-982"><span class="linenos">982</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'integer_charge'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
</span><span id="L-983"><a href="#L-983"><span class="linenos">983</span></a> <span class="n">qtop</span> <span class="o">=</span> <span class="n">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
</span><span id="L-984"><a href="#L-984"><span class="linenos">984</span></a>
|
||||
</span><span id="L-985"><a href="#L-985"><span class="linenos">985</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
|
||||
</span><span id="L-892"><a href="#L-892"><span class="linenos">892</span></a> <span class="n">truncated_file</span> <span class="o">=</span> <span class="n">file</span><span class="p">[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">postfix</span><span class="p">)]</span>
|
||||
</span><span id="L-893"><a href="#L-893"><span class="linenos">893</span></a>
|
||||
</span><span id="L-894"><a href="#L-894"><span class="linenos">894</span></a> <span class="k">if</span> <span class="s2">"names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-895"><a href="#L-895"><span class="linenos">895</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-896"><a href="#L-896"><span class="linenos">896</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">truncated_file</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">'r'</span><span class="p">)</span>
|
||||
</span><span id="L-897"><a href="#L-897"><span class="linenos">897</span></a> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
|
||||
</span><span id="L-898"><a href="#L-898"><span class="linenos">898</span></a> <span class="k">if</span> <span class="s2">"names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-899"><a href="#L-899"><span class="linenos">899</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Automatic recognition of replicum failed, please enter the key word 'names'."</span><span class="p">)</span>
|
||||
</span><span id="L-900"><a href="#L-900"><span class="linenos">900</span></a> <span class="n">ens_name</span> <span class="o">=</span> <span class="n">truncated_file</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span>
|
||||
</span><span id="L-901"><a href="#L-901"><span class="linenos">901</span></a> <span class="n">rep_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ens_name</span> <span class="o">+</span> <span class="s1">'|'</span> <span class="o">+</span> <span class="n">truncated_file</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
|
||||
</span><span id="L-902"><a href="#L-902"><span class="linenos">902</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-903"><a href="#L-903"><span class="linenos">903</span></a> <span class="n">names</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="s2">"names"</span><span class="p">)</span>
|
||||
</span><span id="L-904"><a href="#L-904"><span class="linenos">904</span></a> <span class="n">rep_names</span> <span class="o">=</span> <span class="n">names</span>
|
||||
</span><span id="L-905"><a href="#L-905"><span class="linenos">905</span></a> <span class="n">deltas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Q_top</span><span class="p">)</span>
|
||||
</span><span id="L-906"><a href="#L-906"><span class="linenos">906</span></a>
|
||||
</span><span id="L-907"><a href="#L-907"><span class="linenos">907</span></a> <span class="n">idl</span> <span class="o">=</span> <span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="nb">int</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="nb">int</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="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</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">deltas</span><span class="p">))]</span>
|
||||
</span><span id="L-908"><a href="#L-908"><span class="linenos">908</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[</span><span class="n">deltas</span><span class="p">[</span><span class="n">nrep</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="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">nrep</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">deltas</span><span class="p">))]</span>
|
||||
</span><span id="L-909"><a href="#L-909"><span class="linenos">909</span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">deltas</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><span id="L-910"><a href="#L-910"><span class="linenos">910</span></a> <span class="n">result</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"T"</span><span class="p">:</span> <span class="n">tmax</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span>
|
||||
</span><span id="L-911"><a href="#L-911"><span class="linenos">911</span></a> <span class="s2">"L"</span><span class="p">:</span> <span class="n">L</span><span class="p">}</span>
|
||||
</span><span id="L-912"><a href="#L-912"><span class="linenos">912</span></a> <span class="k">return</span> <span class="n">result</span>
|
||||
</span><span id="L-913"><a href="#L-913"><span class="linenos">913</span></a>
|
||||
</span><span id="L-914"><a href="#L-914"><span class="linenos">914</span></a>
|
||||
</span><span id="L-915"><a href="#L-915"><span class="linenos">915</span></a><span class="k">def</span> <span class="nf">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
|
||||
</span><span id="L-916"><a href="#L-916"><span class="linenos">916</span></a> <span class="sd">"""Returns the projection to the topological charge sector defined by target.</span>
|
||||
</span><span id="L-917"><a href="#L-917"><span class="linenos">917</span></a>
|
||||
</span><span id="L-918"><a href="#L-918"><span class="linenos">918</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="L-919"><a href="#L-919"><span class="linenos">919</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="L-920"><a href="#L-920"><span class="linenos">920</span></a><span class="sd"> path : Obs</span>
|
||||
</span><span id="L-921"><a href="#L-921"><span class="linenos">921</span></a><span class="sd"> Topological charge.</span>
|
||||
</span><span id="L-922"><a href="#L-922"><span class="linenos">922</span></a><span class="sd"> target : int</span>
|
||||
</span><span id="L-923"><a href="#L-923"><span class="linenos">923</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
|
||||
</span><span id="L-924"><a href="#L-924"><span class="linenos">924</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-925"><a href="#L-925"><span class="linenos">925</span></a> <span class="k">if</span> <span class="n">qtop</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
</span><span id="L-926"><a href="#L-926"><span class="linenos">926</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'You can not use a reweighted observable for reweighting!'</span><span class="p">)</span>
|
||||
</span><span id="L-927"><a href="#L-927"><span class="linenos">927</span></a>
|
||||
</span><span id="L-928"><a href="#L-928"><span class="linenos">928</span></a> <span class="n">proj_qtop</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-929"><a href="#L-929"><span class="linenos">929</span></a> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">:</span>
|
||||
</span><span id="L-930"><a href="#L-930"><span class="linenos">930</span></a> <span class="n">proj_qtop</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">array</span><span class="p">([</span><span class="mi">1</span> <span class="k">if</span> <span class="nb">round</span><span class="p">(</span><span class="n">qtop</span><span class="o">.</span><span class="n">value</span> <span class="o">+</span> <span class="n">q</span><span class="p">)</span> <span class="o">==</span> <span class="n">target</span> <span class="k">else</span> <span class="mi">0</span> <span class="k">for</span> <span class="n">q</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">]]))</span>
|
||||
</span><span id="L-931"><a href="#L-931"><span class="linenos">931</span></a>
|
||||
</span><span id="L-932"><a href="#L-932"><span class="linenos">932</span></a> <span class="n">reto</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">proj_qtop</span><span class="p">,</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="n">qtop</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">])</span>
|
||||
</span><span id="L-933"><a href="#L-933"><span class="linenos">933</span></a> <span class="n">reto</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">qtop</span><span class="o">.</span><span class="n">is_merged</span>
|
||||
</span><span id="L-934"><a href="#L-934"><span class="linenos">934</span></a> <span class="k">return</span> <span class="n">reto</span>
|
||||
</span><span id="L-935"><a href="#L-935"><span class="linenos">935</span></a>
|
||||
</span><span id="L-936"><a href="#L-936"><span class="linenos">936</span></a>
|
||||
</span><span id="L-937"><a href="#L-937"><span class="linenos">937</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="L-938"><a href="#L-938"><span class="linenos">938</span></a> <span class="sd">"""Constructs reweighting factors to a specified topological sector.</span>
|
||||
</span><span id="L-939"><a href="#L-939"><span class="linenos">939</span></a>
|
||||
</span><span id="L-940"><a href="#L-940"><span class="linenos">940</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="L-941"><a href="#L-941"><span class="linenos">941</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="L-942"><a href="#L-942"><span class="linenos">942</span></a><span class="sd"> path : str</span>
|
||||
</span><span id="L-943"><a href="#L-943"><span class="linenos">943</span></a><span class="sd"> path of the measurement files</span>
|
||||
</span><span id="L-944"><a href="#L-944"><span class="linenos">944</span></a><span class="sd"> prefix : str</span>
|
||||
</span><span id="L-945"><a href="#L-945"><span class="linenos">945</span></a><span class="sd"> prefix of the measurement files, e.g. <prefix>_id0_r0.ms.dat</span>
|
||||
</span><span id="L-946"><a href="#L-946"><span class="linenos">946</span></a><span class="sd"> c : double</span>
|
||||
</span><span id="L-947"><a href="#L-947"><span class="linenos">947</span></a><span class="sd"> Smearing radius in units of the lattice extent, c = sqrt(8 t0) / L</span>
|
||||
</span><span id="L-948"><a href="#L-948"><span class="linenos">948</span></a><span class="sd"> target : int</span>
|
||||
</span><span id="L-949"><a href="#L-949"><span class="linenos">949</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
|
||||
</span><span id="L-950"><a href="#L-950"><span class="linenos">950</span></a><span class="sd"> dtr_cnfg : int</span>
|
||||
</span><span id="L-951"><a href="#L-951"><span class="linenos">951</span></a><span class="sd"> (optional) parameter that specifies the number of trajectories</span>
|
||||
</span><span id="L-952"><a href="#L-952"><span class="linenos">952</span></a><span class="sd"> between two configs.</span>
|
||||
</span><span id="L-953"><a href="#L-953"><span class="linenos">953</span></a><span class="sd"> if it is not set, the distance between two measurements</span>
|
||||
</span><span id="L-954"><a href="#L-954"><span class="linenos">954</span></a><span class="sd"> in the file is assumed to be the distance between two configurations.</span>
|
||||
</span><span id="L-955"><a href="#L-955"><span class="linenos">955</span></a><span class="sd"> steps : int</span>
|
||||
</span><span id="L-956"><a href="#L-956"><span class="linenos">956</span></a><span class="sd"> (optional) Distance between two configurations in units of trajectories /</span>
|
||||
</span><span id="L-957"><a href="#L-957"><span class="linenos">957</span></a><span class="sd"> cycles. Assumed to be the distance between two measurements * dtr_cnfg if not given</span>
|
||||
</span><span id="L-958"><a href="#L-958"><span class="linenos">958</span></a><span class="sd"> version : str</span>
|
||||
</span><span id="L-959"><a href="#L-959"><span class="linenos">959</span></a><span class="sd"> version string of the openQCD (sfqcd) version used to create</span>
|
||||
</span><span id="L-960"><a href="#L-960"><span class="linenos">960</span></a><span class="sd"> the ensemble. Default is 2.0. May also be set to sfqcd.</span>
|
||||
</span><span id="L-961"><a href="#L-961"><span class="linenos">961</span></a><span class="sd"> L : int</span>
|
||||
</span><span id="L-962"><a href="#L-962"><span class="linenos">962</span></a><span class="sd"> spatial length of the lattice in L/a.</span>
|
||||
</span><span id="L-963"><a href="#L-963"><span class="linenos">963</span></a><span class="sd"> HAS to be set if version != sfqcd, since openQCD does not provide</span>
|
||||
</span><span id="L-964"><a href="#L-964"><span class="linenos">964</span></a><span class="sd"> this in the header</span>
|
||||
</span><span id="L-965"><a href="#L-965"><span class="linenos">965</span></a><span class="sd"> r_start : list</span>
|
||||
</span><span id="L-966"><a href="#L-966"><span class="linenos">966</span></a><span class="sd"> offset of the first ensemble, making it easier to match</span>
|
||||
</span><span id="L-967"><a href="#L-967"><span class="linenos">967</span></a><span class="sd"> later on with other Obs</span>
|
||||
</span><span id="L-968"><a href="#L-968"><span class="linenos">968</span></a><span class="sd"> r_stop : list</span>
|
||||
</span><span id="L-969"><a href="#L-969"><span class="linenos">969</span></a><span class="sd"> last configurations that need to be read (per replicum)</span>
|
||||
</span><span id="L-970"><a href="#L-970"><span class="linenos">970</span></a><span class="sd"> files : list</span>
|
||||
</span><span id="L-971"><a href="#L-971"><span class="linenos">971</span></a><span class="sd"> specify the exact files that need to be read</span>
|
||||
</span><span id="L-972"><a href="#L-972"><span class="linenos">972</span></a><span class="sd"> from path, practical if e.g. only one replicum is needed</span>
|
||||
</span><span id="L-973"><a href="#L-973"><span class="linenos">973</span></a><span class="sd"> names : list</span>
|
||||
</span><span id="L-974"><a href="#L-974"><span class="linenos">974</span></a><span class="sd"> Alternative labeling for replicas/ensembles.</span>
|
||||
</span><span id="L-975"><a href="#L-975"><span class="linenos">975</span></a><span class="sd"> Has to have the appropriate length</span>
|
||||
</span><span id="L-976"><a href="#L-976"><span class="linenos">976</span></a><span class="sd"> Zeuthen_flow : bool</span>
|
||||
</span><span id="L-977"><a href="#L-977"><span class="linenos">977</span></a><span class="sd"> (optional) If True, the Zeuthen flow is used for Qtop. Only possible</span>
|
||||
</span><span id="L-978"><a href="#L-978"><span class="linenos">978</span></a><span class="sd"> for version=='sfqcd' If False, the Wilson flow is used.</span>
|
||||
</span><span id="L-979"><a href="#L-979"><span class="linenos">979</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-980"><a href="#L-980"><span class="linenos">980</span></a>
|
||||
</span><span id="L-981"><a href="#L-981"><span class="linenos">981</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
|
||||
</span><span id="L-982"><a href="#L-982"><span class="linenos">982</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"'target' has to be an integer."</span><span class="p">)</span>
|
||||
</span><span id="L-983"><a href="#L-983"><span class="linenos">983</span></a>
|
||||
</span><span id="L-984"><a href="#L-984"><span class="linenos">984</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'integer_charge'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
</span><span id="L-985"><a href="#L-985"><span class="linenos">985</span></a> <span class="n">qtop</span> <span class="o">=</span> <span class="n">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
</span><span id="L-986"><a href="#L-986"><span class="linenos">986</span></a>
|
||||
</span><span id="L-987"><a href="#L-987"><span class="linenos">987</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
|
@ -1907,26 +1909,26 @@ postfix of the file to read, e.g. '.gfms.dat' for openQCD-files</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#qtop_projection"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="qtop_projection-914"><a href="#qtop_projection-914"><span class="linenos">914</span></a><span class="k">def</span> <span class="nf">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
|
||||
</span><span id="qtop_projection-915"><a href="#qtop_projection-915"><span class="linenos">915</span></a> <span class="sd">"""Returns the projection to the topological charge sector defined by target.</span>
|
||||
</span><span id="qtop_projection-916"><a href="#qtop_projection-916"><span class="linenos">916</span></a>
|
||||
</span><span id="qtop_projection-917"><a href="#qtop_projection-917"><span class="linenos">917</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="qtop_projection-918"><a href="#qtop_projection-918"><span class="linenos">918</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="qtop_projection-919"><a href="#qtop_projection-919"><span class="linenos">919</span></a><span class="sd"> path : Obs</span>
|
||||
</span><span id="qtop_projection-920"><a href="#qtop_projection-920"><span class="linenos">920</span></a><span class="sd"> Topological charge.</span>
|
||||
</span><span id="qtop_projection-921"><a href="#qtop_projection-921"><span class="linenos">921</span></a><span class="sd"> target : int</span>
|
||||
</span><span id="qtop_projection-922"><a href="#qtop_projection-922"><span class="linenos">922</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
|
||||
</span><span id="qtop_projection-923"><a href="#qtop_projection-923"><span class="linenos">923</span></a><span class="sd"> """</span>
|
||||
</span><span id="qtop_projection-924"><a href="#qtop_projection-924"><span class="linenos">924</span></a> <span class="k">if</span> <span class="n">qtop</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
</span><span id="qtop_projection-925"><a href="#qtop_projection-925"><span class="linenos">925</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'You can not use a reweighted observable for reweighting!'</span><span class="p">)</span>
|
||||
</span><span id="qtop_projection-926"><a href="#qtop_projection-926"><span class="linenos">926</span></a>
|
||||
</span><span id="qtop_projection-927"><a href="#qtop_projection-927"><span class="linenos">927</span></a> <span class="n">proj_qtop</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="qtop_projection-928"><a href="#qtop_projection-928"><span class="linenos">928</span></a> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">:</span>
|
||||
</span><span id="qtop_projection-929"><a href="#qtop_projection-929"><span class="linenos">929</span></a> <span class="n">proj_qtop</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">array</span><span class="p">([</span><span class="mi">1</span> <span class="k">if</span> <span class="nb">round</span><span class="p">(</span><span class="n">qtop</span><span class="o">.</span><span class="n">value</span> <span class="o">+</span> <span class="n">q</span><span class="p">)</span> <span class="o">==</span> <span class="n">target</span> <span class="k">else</span> <span class="mi">0</span> <span class="k">for</span> <span class="n">q</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">]]))</span>
|
||||
</span><span id="qtop_projection-930"><a href="#qtop_projection-930"><span class="linenos">930</span></a>
|
||||
</span><span id="qtop_projection-931"><a href="#qtop_projection-931"><span class="linenos">931</span></a> <span class="n">reto</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">proj_qtop</span><span class="p">,</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="n">qtop</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">])</span>
|
||||
</span><span id="qtop_projection-932"><a href="#qtop_projection-932"><span class="linenos">932</span></a> <span class="n">reto</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">qtop</span><span class="o">.</span><span class="n">is_merged</span>
|
||||
</span><span id="qtop_projection-933"><a href="#qtop_projection-933"><span class="linenos">933</span></a> <span class="k">return</span> <span class="n">reto</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="qtop_projection-916"><a href="#qtop_projection-916"><span class="linenos">916</span></a><span class="k">def</span> <span class="nf">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
|
||||
</span><span id="qtop_projection-917"><a href="#qtop_projection-917"><span class="linenos">917</span></a> <span class="sd">"""Returns the projection to the topological charge sector defined by target.</span>
|
||||
</span><span id="qtop_projection-918"><a href="#qtop_projection-918"><span class="linenos">918</span></a>
|
||||
</span><span id="qtop_projection-919"><a href="#qtop_projection-919"><span class="linenos">919</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="qtop_projection-920"><a href="#qtop_projection-920"><span class="linenos">920</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="qtop_projection-921"><a href="#qtop_projection-921"><span class="linenos">921</span></a><span class="sd"> path : Obs</span>
|
||||
</span><span id="qtop_projection-922"><a href="#qtop_projection-922"><span class="linenos">922</span></a><span class="sd"> Topological charge.</span>
|
||||
</span><span id="qtop_projection-923"><a href="#qtop_projection-923"><span class="linenos">923</span></a><span class="sd"> target : int</span>
|
||||
</span><span id="qtop_projection-924"><a href="#qtop_projection-924"><span class="linenos">924</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
|
||||
</span><span id="qtop_projection-925"><a href="#qtop_projection-925"><span class="linenos">925</span></a><span class="sd"> """</span>
|
||||
</span><span id="qtop_projection-926"><a href="#qtop_projection-926"><span class="linenos">926</span></a> <span class="k">if</span> <span class="n">qtop</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
</span><span id="qtop_projection-927"><a href="#qtop_projection-927"><span class="linenos">927</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'You can not use a reweighted observable for reweighting!'</span><span class="p">)</span>
|
||||
</span><span id="qtop_projection-928"><a href="#qtop_projection-928"><span class="linenos">928</span></a>
|
||||
</span><span id="qtop_projection-929"><a href="#qtop_projection-929"><span class="linenos">929</span></a> <span class="n">proj_qtop</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="qtop_projection-930"><a href="#qtop_projection-930"><span class="linenos">930</span></a> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">:</span>
|
||||
</span><span id="qtop_projection-931"><a href="#qtop_projection-931"><span class="linenos">931</span></a> <span class="n">proj_qtop</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">array</span><span class="p">([</span><span class="mi">1</span> <span class="k">if</span> <span class="nb">round</span><span class="p">(</span><span class="n">qtop</span><span class="o">.</span><span class="n">value</span> <span class="o">+</span> <span class="n">q</span><span class="p">)</span> <span class="o">==</span> <span class="n">target</span> <span class="k">else</span> <span class="mi">0</span> <span class="k">for</span> <span class="n">q</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">]]))</span>
|
||||
</span><span id="qtop_projection-932"><a href="#qtop_projection-932"><span class="linenos">932</span></a>
|
||||
</span><span id="qtop_projection-933"><a href="#qtop_projection-933"><span class="linenos">933</span></a> <span class="n">reto</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">proj_qtop</span><span class="p">,</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="n">qtop</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">])</span>
|
||||
</span><span id="qtop_projection-934"><a href="#qtop_projection-934"><span class="linenos">934</span></a> <span class="n">reto</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">qtop</span><span class="o">.</span><span class="n">is_merged</span>
|
||||
</span><span id="qtop_projection-935"><a href="#qtop_projection-935"><span class="linenos">935</span></a> <span class="k">return</span> <span class="n">reto</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
|
@ -1955,57 +1957,57 @@ Specifies the topological sector to be reweighted to (default 0)</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#read_qtop_sector"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="read_qtop_sector-936"><a href="#read_qtop_sector-936"><span class="linenos">936</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="read_qtop_sector-937"><a href="#read_qtop_sector-937"><span class="linenos">937</span></a> <span class="sd">"""Constructs reweighting factors to a specified topological sector.</span>
|
||||
</span><span id="read_qtop_sector-938"><a href="#read_qtop_sector-938"><span class="linenos">938</span></a>
|
||||
</span><span id="read_qtop_sector-939"><a href="#read_qtop_sector-939"><span class="linenos">939</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="read_qtop_sector-940"><a href="#read_qtop_sector-940"><span class="linenos">940</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="read_qtop_sector-941"><a href="#read_qtop_sector-941"><span class="linenos">941</span></a><span class="sd"> path : str</span>
|
||||
</span><span id="read_qtop_sector-942"><a href="#read_qtop_sector-942"><span class="linenos">942</span></a><span class="sd"> path of the measurement files</span>
|
||||
</span><span id="read_qtop_sector-943"><a href="#read_qtop_sector-943"><span class="linenos">943</span></a><span class="sd"> prefix : str</span>
|
||||
</span><span id="read_qtop_sector-944"><a href="#read_qtop_sector-944"><span class="linenos">944</span></a><span class="sd"> prefix of the measurement files, e.g. <prefix>_id0_r0.ms.dat</span>
|
||||
</span><span id="read_qtop_sector-945"><a href="#read_qtop_sector-945"><span class="linenos">945</span></a><span class="sd"> c : double</span>
|
||||
</span><span id="read_qtop_sector-946"><a href="#read_qtop_sector-946"><span class="linenos">946</span></a><span class="sd"> Smearing radius in units of the lattice extent, c = sqrt(8 t0) / L</span>
|
||||
</span><span id="read_qtop_sector-947"><a href="#read_qtop_sector-947"><span class="linenos">947</span></a><span class="sd"> target : int</span>
|
||||
</span><span id="read_qtop_sector-948"><a href="#read_qtop_sector-948"><span class="linenos">948</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
|
||||
</span><span id="read_qtop_sector-949"><a href="#read_qtop_sector-949"><span class="linenos">949</span></a><span class="sd"> dtr_cnfg : int</span>
|
||||
</span><span id="read_qtop_sector-950"><a href="#read_qtop_sector-950"><span class="linenos">950</span></a><span class="sd"> (optional) parameter that specifies the number of trajectories</span>
|
||||
</span><span id="read_qtop_sector-951"><a href="#read_qtop_sector-951"><span class="linenos">951</span></a><span class="sd"> between two configs.</span>
|
||||
</span><span id="read_qtop_sector-952"><a href="#read_qtop_sector-952"><span class="linenos">952</span></a><span class="sd"> if it is not set, the distance between two measurements</span>
|
||||
</span><span id="read_qtop_sector-953"><a href="#read_qtop_sector-953"><span class="linenos">953</span></a><span class="sd"> in the file is assumed to be the distance between two configurations.</span>
|
||||
</span><span id="read_qtop_sector-954"><a href="#read_qtop_sector-954"><span class="linenos">954</span></a><span class="sd"> steps : int</span>
|
||||
</span><span id="read_qtop_sector-955"><a href="#read_qtop_sector-955"><span class="linenos">955</span></a><span class="sd"> (optional) Distance between two configurations in units of trajectories /</span>
|
||||
</span><span id="read_qtop_sector-956"><a href="#read_qtop_sector-956"><span class="linenos">956</span></a><span class="sd"> cycles. Assumed to be the distance between two measurements * dtr_cnfg if not given</span>
|
||||
</span><span id="read_qtop_sector-957"><a href="#read_qtop_sector-957"><span class="linenos">957</span></a><span class="sd"> version : str</span>
|
||||
</span><span id="read_qtop_sector-958"><a href="#read_qtop_sector-958"><span class="linenos">958</span></a><span class="sd"> version string of the openQCD (sfqcd) version used to create</span>
|
||||
</span><span id="read_qtop_sector-959"><a href="#read_qtop_sector-959"><span class="linenos">959</span></a><span class="sd"> the ensemble. Default is 2.0. May also be set to sfqcd.</span>
|
||||
</span><span id="read_qtop_sector-960"><a href="#read_qtop_sector-960"><span class="linenos">960</span></a><span class="sd"> L : int</span>
|
||||
</span><span id="read_qtop_sector-961"><a href="#read_qtop_sector-961"><span class="linenos">961</span></a><span class="sd"> spatial length of the lattice in L/a.</span>
|
||||
</span><span id="read_qtop_sector-962"><a href="#read_qtop_sector-962"><span class="linenos">962</span></a><span class="sd"> HAS to be set if version != sfqcd, since openQCD does not provide</span>
|
||||
</span><span id="read_qtop_sector-963"><a href="#read_qtop_sector-963"><span class="linenos">963</span></a><span class="sd"> this in the header</span>
|
||||
</span><span id="read_qtop_sector-964"><a href="#read_qtop_sector-964"><span class="linenos">964</span></a><span class="sd"> r_start : list</span>
|
||||
</span><span id="read_qtop_sector-965"><a href="#read_qtop_sector-965"><span class="linenos">965</span></a><span class="sd"> offset of the first ensemble, making it easier to match</span>
|
||||
</span><span id="read_qtop_sector-966"><a href="#read_qtop_sector-966"><span class="linenos">966</span></a><span class="sd"> later on with other Obs</span>
|
||||
</span><span id="read_qtop_sector-967"><a href="#read_qtop_sector-967"><span class="linenos">967</span></a><span class="sd"> r_stop : list</span>
|
||||
</span><span id="read_qtop_sector-968"><a href="#read_qtop_sector-968"><span class="linenos">968</span></a><span class="sd"> last configurations that need to be read (per replicum)</span>
|
||||
</span><span id="read_qtop_sector-969"><a href="#read_qtop_sector-969"><span class="linenos">969</span></a><span class="sd"> files : list</span>
|
||||
</span><span id="read_qtop_sector-970"><a href="#read_qtop_sector-970"><span class="linenos">970</span></a><span class="sd"> specify the exact files that need to be read</span>
|
||||
</span><span id="read_qtop_sector-971"><a href="#read_qtop_sector-971"><span class="linenos">971</span></a><span class="sd"> from path, practical if e.g. only one replicum is needed</span>
|
||||
</span><span id="read_qtop_sector-972"><a href="#read_qtop_sector-972"><span class="linenos">972</span></a><span class="sd"> names : list</span>
|
||||
</span><span id="read_qtop_sector-973"><a href="#read_qtop_sector-973"><span class="linenos">973</span></a><span class="sd"> Alternative labeling for replicas/ensembles.</span>
|
||||
</span><span id="read_qtop_sector-974"><a href="#read_qtop_sector-974"><span class="linenos">974</span></a><span class="sd"> Has to have the appropriate length</span>
|
||||
</span><span id="read_qtop_sector-975"><a href="#read_qtop_sector-975"><span class="linenos">975</span></a><span class="sd"> Zeuthen_flow : bool</span>
|
||||
</span><span id="read_qtop_sector-976"><a href="#read_qtop_sector-976"><span class="linenos">976</span></a><span class="sd"> (optional) If True, the Zeuthen flow is used for Qtop. Only possible</span>
|
||||
</span><span id="read_qtop_sector-977"><a href="#read_qtop_sector-977"><span class="linenos">977</span></a><span class="sd"> for version=='sfqcd' If False, the Wilson flow is used.</span>
|
||||
</span><span id="read_qtop_sector-978"><a href="#read_qtop_sector-978"><span class="linenos">978</span></a><span class="sd"> """</span>
|
||||
</span><span id="read_qtop_sector-979"><a href="#read_qtop_sector-979"><span class="linenos">979</span></a>
|
||||
</span><span id="read_qtop_sector-980"><a href="#read_qtop_sector-980"><span class="linenos">980</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
|
||||
</span><span id="read_qtop_sector-981"><a href="#read_qtop_sector-981"><span class="linenos">981</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"'target' has to be an integer."</span><span class="p">)</span>
|
||||
</span><span id="read_qtop_sector-982"><a href="#read_qtop_sector-982"><span class="linenos">982</span></a>
|
||||
</span><span id="read_qtop_sector-983"><a href="#read_qtop_sector-983"><span class="linenos">983</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'integer_charge'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
</span><span id="read_qtop_sector-984"><a href="#read_qtop_sector-984"><span class="linenos">984</span></a> <span class="n">qtop</span> <span class="o">=</span> <span class="n">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
</span><span id="read_qtop_sector-985"><a href="#read_qtop_sector-985"><span class="linenos">985</span></a>
|
||||
</span><span id="read_qtop_sector-986"><a href="#read_qtop_sector-986"><span class="linenos">986</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="read_qtop_sector-938"><a href="#read_qtop_sector-938"><span class="linenos">938</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="read_qtop_sector-939"><a href="#read_qtop_sector-939"><span class="linenos">939</span></a> <span class="sd">"""Constructs reweighting factors to a specified topological sector.</span>
|
||||
</span><span id="read_qtop_sector-940"><a href="#read_qtop_sector-940"><span class="linenos">940</span></a>
|
||||
</span><span id="read_qtop_sector-941"><a href="#read_qtop_sector-941"><span class="linenos">941</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="read_qtop_sector-942"><a href="#read_qtop_sector-942"><span class="linenos">942</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="read_qtop_sector-943"><a href="#read_qtop_sector-943"><span class="linenos">943</span></a><span class="sd"> path : str</span>
|
||||
</span><span id="read_qtop_sector-944"><a href="#read_qtop_sector-944"><span class="linenos">944</span></a><span class="sd"> path of the measurement files</span>
|
||||
</span><span id="read_qtop_sector-945"><a href="#read_qtop_sector-945"><span class="linenos">945</span></a><span class="sd"> prefix : str</span>
|
||||
</span><span id="read_qtop_sector-946"><a href="#read_qtop_sector-946"><span class="linenos">946</span></a><span class="sd"> prefix of the measurement files, e.g. <prefix>_id0_r0.ms.dat</span>
|
||||
</span><span id="read_qtop_sector-947"><a href="#read_qtop_sector-947"><span class="linenos">947</span></a><span class="sd"> c : double</span>
|
||||
</span><span id="read_qtop_sector-948"><a href="#read_qtop_sector-948"><span class="linenos">948</span></a><span class="sd"> Smearing radius in units of the lattice extent, c = sqrt(8 t0) / L</span>
|
||||
</span><span id="read_qtop_sector-949"><a href="#read_qtop_sector-949"><span class="linenos">949</span></a><span class="sd"> target : int</span>
|
||||
</span><span id="read_qtop_sector-950"><a href="#read_qtop_sector-950"><span class="linenos">950</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
|
||||
</span><span id="read_qtop_sector-951"><a href="#read_qtop_sector-951"><span class="linenos">951</span></a><span class="sd"> dtr_cnfg : int</span>
|
||||
</span><span id="read_qtop_sector-952"><a href="#read_qtop_sector-952"><span class="linenos">952</span></a><span class="sd"> (optional) parameter that specifies the number of trajectories</span>
|
||||
</span><span id="read_qtop_sector-953"><a href="#read_qtop_sector-953"><span class="linenos">953</span></a><span class="sd"> between two configs.</span>
|
||||
</span><span id="read_qtop_sector-954"><a href="#read_qtop_sector-954"><span class="linenos">954</span></a><span class="sd"> if it is not set, the distance between two measurements</span>
|
||||
</span><span id="read_qtop_sector-955"><a href="#read_qtop_sector-955"><span class="linenos">955</span></a><span class="sd"> in the file is assumed to be the distance between two configurations.</span>
|
||||
</span><span id="read_qtop_sector-956"><a href="#read_qtop_sector-956"><span class="linenos">956</span></a><span class="sd"> steps : int</span>
|
||||
</span><span id="read_qtop_sector-957"><a href="#read_qtop_sector-957"><span class="linenos">957</span></a><span class="sd"> (optional) Distance between two configurations in units of trajectories /</span>
|
||||
</span><span id="read_qtop_sector-958"><a href="#read_qtop_sector-958"><span class="linenos">958</span></a><span class="sd"> cycles. Assumed to be the distance between two measurements * dtr_cnfg if not given</span>
|
||||
</span><span id="read_qtop_sector-959"><a href="#read_qtop_sector-959"><span class="linenos">959</span></a><span class="sd"> version : str</span>
|
||||
</span><span id="read_qtop_sector-960"><a href="#read_qtop_sector-960"><span class="linenos">960</span></a><span class="sd"> version string of the openQCD (sfqcd) version used to create</span>
|
||||
</span><span id="read_qtop_sector-961"><a href="#read_qtop_sector-961"><span class="linenos">961</span></a><span class="sd"> the ensemble. Default is 2.0. May also be set to sfqcd.</span>
|
||||
</span><span id="read_qtop_sector-962"><a href="#read_qtop_sector-962"><span class="linenos">962</span></a><span class="sd"> L : int</span>
|
||||
</span><span id="read_qtop_sector-963"><a href="#read_qtop_sector-963"><span class="linenos">963</span></a><span class="sd"> spatial length of the lattice in L/a.</span>
|
||||
</span><span id="read_qtop_sector-964"><a href="#read_qtop_sector-964"><span class="linenos">964</span></a><span class="sd"> HAS to be set if version != sfqcd, since openQCD does not provide</span>
|
||||
</span><span id="read_qtop_sector-965"><a href="#read_qtop_sector-965"><span class="linenos">965</span></a><span class="sd"> this in the header</span>
|
||||
</span><span id="read_qtop_sector-966"><a href="#read_qtop_sector-966"><span class="linenos">966</span></a><span class="sd"> r_start : list</span>
|
||||
</span><span id="read_qtop_sector-967"><a href="#read_qtop_sector-967"><span class="linenos">967</span></a><span class="sd"> offset of the first ensemble, making it easier to match</span>
|
||||
</span><span id="read_qtop_sector-968"><a href="#read_qtop_sector-968"><span class="linenos">968</span></a><span class="sd"> later on with other Obs</span>
|
||||
</span><span id="read_qtop_sector-969"><a href="#read_qtop_sector-969"><span class="linenos">969</span></a><span class="sd"> r_stop : list</span>
|
||||
</span><span id="read_qtop_sector-970"><a href="#read_qtop_sector-970"><span class="linenos">970</span></a><span class="sd"> last configurations that need to be read (per replicum)</span>
|
||||
</span><span id="read_qtop_sector-971"><a href="#read_qtop_sector-971"><span class="linenos">971</span></a><span class="sd"> files : list</span>
|
||||
</span><span id="read_qtop_sector-972"><a href="#read_qtop_sector-972"><span class="linenos">972</span></a><span class="sd"> specify the exact files that need to be read</span>
|
||||
</span><span id="read_qtop_sector-973"><a href="#read_qtop_sector-973"><span class="linenos">973</span></a><span class="sd"> from path, practical if e.g. only one replicum is needed</span>
|
||||
</span><span id="read_qtop_sector-974"><a href="#read_qtop_sector-974"><span class="linenos">974</span></a><span class="sd"> names : list</span>
|
||||
</span><span id="read_qtop_sector-975"><a href="#read_qtop_sector-975"><span class="linenos">975</span></a><span class="sd"> Alternative labeling for replicas/ensembles.</span>
|
||||
</span><span id="read_qtop_sector-976"><a href="#read_qtop_sector-976"><span class="linenos">976</span></a><span class="sd"> Has to have the appropriate length</span>
|
||||
</span><span id="read_qtop_sector-977"><a href="#read_qtop_sector-977"><span class="linenos">977</span></a><span class="sd"> Zeuthen_flow : bool</span>
|
||||
</span><span id="read_qtop_sector-978"><a href="#read_qtop_sector-978"><span class="linenos">978</span></a><span class="sd"> (optional) If True, the Zeuthen flow is used for Qtop. Only possible</span>
|
||||
</span><span id="read_qtop_sector-979"><a href="#read_qtop_sector-979"><span class="linenos">979</span></a><span class="sd"> for version=='sfqcd' If False, the Wilson flow is used.</span>
|
||||
</span><span id="read_qtop_sector-980"><a href="#read_qtop_sector-980"><span class="linenos">980</span></a><span class="sd"> """</span>
|
||||
</span><span id="read_qtop_sector-981"><a href="#read_qtop_sector-981"><span class="linenos">981</span></a>
|
||||
</span><span id="read_qtop_sector-982"><a href="#read_qtop_sector-982"><span class="linenos">982</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
|
||||
</span><span id="read_qtop_sector-983"><a href="#read_qtop_sector-983"><span class="linenos">983</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"'target' has to be an integer."</span><span class="p">)</span>
|
||||
</span><span id="read_qtop_sector-984"><a href="#read_qtop_sector-984"><span class="linenos">984</span></a>
|
||||
</span><span id="read_qtop_sector-985"><a href="#read_qtop_sector-985"><span class="linenos">985</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'integer_charge'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
</span><span id="read_qtop_sector-986"><a href="#read_qtop_sector-986"><span class="linenos">986</span></a> <span class="n">qtop</span> <span class="o">=</span> <span class="n">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
</span><span id="read_qtop_sector-987"><a href="#read_qtop_sector-987"><span class="linenos">987</span></a>
|
||||
</span><span id="read_qtop_sector-988"><a href="#read_qtop_sector-988"><span class="linenos">988</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue