Merge pull request #15 from FYS3150-G2-2023/develop

Develop
This commit is contained in:
Cory Balaton 2023-12-05 19:33:52 +01:00 committed by GitHub Enterprise
commit c66e00fd52
36 changed files with 575 additions and 1168 deletions

View File

@ -1237,7 +1237,7 @@ VERBATIM_HEADERS = YES
# generated with the -Duse_libclang=ON option for CMake. # generated with the -Duse_libclang=ON option for CMake.
# The default value is: NO. # The default value is: NO.
CLANG_ASSISTED_PARSING = YES CLANG_ASSISTED_PARSING = NO
# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS # If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS
# tag is set to YES then doxygen will add the directory of each input to the # tag is set to YES then doxygen will add the directory of each input to the

View File

@ -45,7 +45,7 @@ Compiling regular binaries is as easy as running this command:
make make
``` ```
The binaries will then be inside the **./bin** directory. The binaries will then be inside the **bin** directory.
### Profiling binaries ### Profiling binaries
@ -55,7 +55,7 @@ If you want to profile the programs (specifically the MPI program), then run thi
make profile make profile
``` ```
The binaries will then be inside the **./prof** directory. The binaries will then be inside the **prof** directory.
### Debugging binaries ### Debugging binaries
@ -65,7 +65,7 @@ If you want to debug the code, then use this command:
make debug make debug
``` ```
The binaries will then be inside the **./debug** directory. The binaries will then be inside the **debug** directory.
## Running programs ## Running programs
@ -113,10 +113,10 @@ If you have any problems running the scripts, you might have to run this instead
### Batch system ### Batch system
For the **phase_transition_mpi** program, there are scripts in the **./slurm_scripts** For the **phase_transition_mpi** program, there are scripts in the **slurm_scripts**
directory that come along with it. This is to be able to run it on a directory that come along with it. This is to be able to run it on a
batch system using Slurm if you have access to one. batch system using Slurm if you have access to one.
The only program that should be executed by the user is the **./slurm_scripts/execute.script** The only program that should be executed by the user is the **slurm_scripts/execute.script**
script. You can see how to use this script by doing: script. You can see how to use this script by doing:
```shell ```shell
@ -139,7 +139,7 @@ this repo on that system, then compile the MPI program like this:
make bin/phase_transition_mpi make bin/phase_transition_mpi
``` ```
After compiling, you can schedule it by using the **./slurm_scripts/execute.script**: After compiling, you can schedule it by using the **slurm_scripts/execute.script**:
```shell ```shell
./slurm_scripts/execute.script <parameters> ./slurm_scripts/execute.script <parameters>

View File

@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('IsingModel_8cpp.html',''); initResizab
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>0.1</dd></dl> <dl class="section version"><dt>Version</dt><dd>0.1</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000003">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000007">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div></div><!-- contents --> </div></div><!-- contents -->

View File

@ -101,175 +101,163 @@ $(document).ready(function(){initNavTree('IsingModel_8cpp_source.html',''); init
<div class="headertitle"><div class="title">IsingModel.cpp</div></div> <div class="headertitle"><div class="title">IsingModel.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="IsingModel_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file IsingModel.cpp</span></div> <a href="IsingModel_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="IsingModel_8hpp.html">IsingModel.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 0.1</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief The implementation of the Ising model</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="IsingModel_8hpp.html" title="The definition of the Ising model.">&quot;IsingModel.hpp&quot;</a></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864"> 14</a></span><a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a>()</div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864"> 14</a></span><a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a>()</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span>{</div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span>{</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">-&gt;</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">(</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">)</a>;</div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a>();</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span>}</div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span>}</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5"> 19</a></span><a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">IsingModel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T)</div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5"> 19</a></span><a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T)</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span>{</div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span>{</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a> = L;</div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> this-&gt;L = <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a> = T;</div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> this-&gt;T = <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">-&gt;</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">(</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">)</a>;</div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a>();</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">-&gt;</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">(</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">)</a>;</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>();</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">-&gt;</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">(</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">)</a>;</div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a>();</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">-&gt;</a><a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a><a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">(</a><a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">)</a>;</div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a>();</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">-&gt;</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">(</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">)</a>;</div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>();</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">-&gt;</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">(</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">)</a>;</div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>();</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15"> 31</a></span><a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">IsingModel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> val)</div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15"> 31</a></span><a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> val)</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>{</div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>{</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a> = L;</div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> this-&gt;L = <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a> = T;</div> <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> this-&gt;T = <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">-&gt;</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">(</a><a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">)</a>;</div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a>();</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">-&gt;</a><a class="code hl_function" href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">initialize_lattice</a><a class="code hl_function" href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">(</a>val<a class="code hl_function" href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">)</a>;</div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>(val);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">-&gt;</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">(</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">)</a>;</div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a>();</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">-&gt;</a><a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a><a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">(</a><a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">)</a>;</div> <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a>();</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">-&gt;</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">(</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">)</a>;</div> <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>();</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">-&gt;</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">(</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">)</a>;</div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>();</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div> <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5"> 43</a></span><span class="keywordtype">void</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a>()</div> <div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5"> 43</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">IsingModel::initialize_engine</a>()</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>{</div> <div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>{</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> std::random_device rd{};</div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> std::random_device rd{};</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a> = std::mt19937{rd()};</div> <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a> = std::mt19937{rd()};</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>}</div> <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>}</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div> <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a"> 49</a></span><span class="keywordtype">void</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>()</div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a"> 49</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a>()</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{</div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">this</span>-&gt;lattice.set_size(<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.set_size(this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> std::uniform_int_distribution&lt;&gt; coin_flip(0, 1);</div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> std::uniform_int_distribution&lt;&gt; coin_flip(0, 1);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; <span class="keyword">this</span>-&gt;lattice.n_elem; i++)</div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.n_elem; i++)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">this</span>-&gt;lattice(i) = 2 * coin_flip(<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>) - 1;</div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(i) = 2 * coin_flip(this-&gt;<a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>) - 1;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78"> 59</a></span><span class="keywordtype">void</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">initialize_lattice</a>(<span class="keywordtype">int</span> val)</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78"> 59</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a>(<span class="keywordtype">int</span> val)</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>{</div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>{</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// If val is neither 1 or -1, then initialize random values.</span></div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// If val is neither 1 or -1, then initialize random values.</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">if</span> (val != 1 &amp;&amp; val != -1) {</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">if</span> (val != 1 &amp;&amp; val != -1) {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">this</span><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">-&gt;</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">(</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">)</a>;</div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>();</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span>;</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">this</span>-&gt;lattice.set_size(<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.set_size(this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">this</span>-&gt;lattice.fill(val);</div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.fill(val);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>}</div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>}</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classIsingModel.html#a6776109105051597c275670dabd0054a"> 70</a></span><span class="keywordtype">void</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a>()</div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classIsingModel.html#a6776109105051597c275670dabd0054a"> 70</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a>()</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>{</div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>{</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">this</span>-&gt;neighbors.set_size(<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, 2);</div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>.set_size(this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, 2);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div> <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// Having i as a signed integer is necessary in this case.</span></div> <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// Having i as a signed integer is necessary in this case.</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; (<span class="keywordtype">int</span>)<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>; i++) {</div> <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; (int)this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>; i++) {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">this</span>-&gt;neighbors(i, <a class="code hl_define" href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a>) = <a class="code hl_define" href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a>(i - 1, <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div> <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(i, <a class="code hl_define" href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a>) = <a class="code hl_define" href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a>(i - 1, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">this</span>-&gt;neighbors(i, <a class="code hl_define" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a>) = <a class="code hl_define" href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a>(i + 1, <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div> <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(i, <a class="code hl_define" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a>) = <a class="code hl_define" href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a>(i + 1, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div> <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>}</div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>}</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div> <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4"> 81</a></span><span class="keywordtype">void</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a>()</div> <div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4"> 81</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">IsingModel::initialize_energy_diff</a>()</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span>{</div> <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span>{</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = -8; i &lt;= 8; i += 4) {</div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = -8; i &lt;= 8; i += 4) {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">energy_diff</a>[i+8] = std::exp(-(<span class="keywordtype">double</span>)i / <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>);</div> <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">energy_diff</a>[i+8] = std::exp(-(<span class="keywordtype">double</span>)i / this-&gt;<a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div> <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>}</div> <div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>}</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div> <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4"> 88</a></span><span class="keywordtype">void</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>()</div> <div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4"> 88</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a>()</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span>{</div> <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span>{</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> = 0.;</div> <div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> = 0.;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; <span class="keyword">this</span>-&gt;lattice.n_elem; i++) {</div> <div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.n_elem; i++) {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> += <span class="keyword">this</span>-&gt;lattice(i);</div> <div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> += this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(i);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div> <div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}</div> <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div> <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1"> 96</a></span><span class="keywordtype">void</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>()</div> <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1"> 96</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a>()</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>{</div> <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>{</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> = 0.;</div> <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> = 0.;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div> <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// Loop through the matrix</span></div> <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// Loop through the matrix</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">for</span> (size_t j = 0; j &lt; <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>; j++) {</div> <div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>; j++) {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>; i++) {</div> <div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>; i++) {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> -= <span class="keyword">this</span>-&gt;lattice(i, j)</div> <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> -= this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(i, j)</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> * (<span class="keyword">this</span>-&gt;lattice(i, <span class="keyword">this</span>-&gt;neighbors(j, <a class="code hl_define" href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a>))</div> <div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> * (this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(i, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(j, <a class="code hl_define" href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a>))</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> + <span class="keyword">this</span>-&gt;lattice(<span class="keyword">this</span>-&gt;neighbors(i, <a class="code hl_define" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a>), j));</div> <div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> + this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(i, <a class="code hl_define" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a>), j));</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div> <div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> }</div> <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> }</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>}</div> <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>}</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div> <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488"> 110</a></span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_class" href="classIsingModel.html">IsingModel</a>::<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>()</div> <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488"> 110</a></span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a>()</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{</div> <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">int</span> ri, rj;</div> <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">int</span> ri, rj;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordtype">int</span> dE;</div> <div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordtype">int</span> dE;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div> <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// Create random distribution for indeces</span></div> <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// Create random distribution for indeces</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> std::uniform_int_distribution&lt;&gt; random_index(0, <span class="keyword">this</span>-&gt;L - 1);</div> <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> std::uniform_int_distribution&lt;&gt; random_index(0, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a> - 1);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// Create random distribution for acceptance</span></div> <div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// Create random distribution for acceptance</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> std::uniform_real_distribution&lt;&gt; random_number(0., 1.);</div> <div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> std::uniform_real_distribution&lt;&gt; random_number(0., 1.);</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div> <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// Loop over the number of spins</span></div> <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// Loop over the number of spins</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; <span class="keyword">this</span>-&gt;lattice.n_elem; i++) {</div> <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.n_elem; i++) {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Get random indeces</span></div> <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Get random indeces</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> ri = random_index(<a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>);</div> <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> ri = random_index(<a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> rj = random_index(<a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>);</div> <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> rj = random_index(<a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div> <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// Calculate the difference in energy</span></div> <div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// Calculate the difference in energy</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> dE = 2 * <span class="keyword">this</span>-&gt;lattice(ri, rj)</div> <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> dE = 2 * this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(ri, rj)</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> * (<span class="keyword">this</span>-&gt;lattice(ri, <span class="keyword">this</span>-&gt;neighbors(rj, <a class="code hl_define" href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54">LEFT</a>))</div> <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> * (this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(ri, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(rj, <a class="code hl_define" href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54">LEFT</a>))</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> + <span class="keyword">this</span>-&gt;lattice(ri, <span class="keyword">this</span>-&gt;neighbors(rj, <a class="code hl_define" href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a>))</div> <div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> + this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(ri, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(rj, <a class="code hl_define" href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a>))</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> + <span class="keyword">this</span>-&gt;lattice(<span class="keyword">this</span>-&gt;neighbors(ri, <a class="code hl_define" href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a>), rj)</div> <div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> + this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(ri, <a class="code hl_define" href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a>), rj)</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> + <span class="keyword">this</span>-&gt;lattice(<span class="keyword">this</span>-&gt;neighbors(ri, <a class="code hl_define" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a>), rj));</div> <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> + this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(ri, <a class="code hl_define" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a>), rj));</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div> <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// Choose whether or not to accept the new configuration</span></div> <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// Choose whether or not to accept the new configuration</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">if</span> (random_number(<a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>) &lt;= <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">energy_diff</a>[dE+8]) {</div> <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">if</span> (random_number(<a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>) &lt;= this-&gt;<a class="code hl_variable" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">energy_diff</a>[dE+8]) {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Update if the configuration is accepted</span></div> <div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Update if the configuration is accepted</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">this</span>-&gt;lattice(ri, rj) *= -1;</div> <div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(ri, rj) *= -1;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> += 2 * <span class="keyword">this</span>-&gt;lattice(ri, rj);</div> <div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> += 2 * this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(ri, rj);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> += dE;</div> <div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> += dE;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div> <div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div> <div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div> <div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classdata__t.html">data_t</a><a class="code hl_function" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">(</a>(<span class="keywordtype">double</span>)<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a><a class="code hl_function" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">,</a> (<span class="keywordtype">double</span>)(<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> * <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a>)<a class="code hl_function" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">,</a> (<span class="keywordtype">double</span>)<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a><a class="code hl_function" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">,</a></div> <div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classdata__t.html">data_t</a>((<span class="keywordtype">double</span>)this-&gt;<a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a>, (<span class="keywordtype">double</span>)(this-&gt;E * this-&gt;E), (<span class="keywordtype">double</span>)this-&gt;<a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a>,</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> (<span class="keywordtype">double</span>)(<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> * <span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a>)<a class="code hl_function" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">,</a> std::fabs((<span class="keywordtype">double</span>)<span class="keyword">this</span><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">-&gt;</a><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a>)<a class="code hl_function" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">)</a>;</div> <div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> (<span class="keywordtype">double</span>)(this-&gt;M * this-&gt;M), std::fabs((<span class="keywordtype">double</span>)this-&gt;M));</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div> <div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div>
<div class="ttc" id="aIsingModel_8hpp_html"><div class="ttname"><a href="IsingModel_8hpp.html">IsingModel.hpp</a></div><div class="ttdoc">The definition of the Ising model.</div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a1965eaca47dbf3f87acdafc2208f04eb"><div class="ttname"><a href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a></div><div class="ttdeci">#define UP</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00026">IsingModel.hpp:26</a></div></div> <div class="ttc" id="aIsingModel_8hpp_html_a1965eaca47dbf3f87acdafc2208f04eb"><div class="ttname"><a href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a></div><div class="ttdeci">#define UP</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00026">IsingModel.hpp:26</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a3039ac753f46401767c38f867787fae6"><div class="ttname"><a href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a></div><div class="ttdeci">#define INDEX(I, N)</div><div class="ttdoc">I modulo N.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00023">IsingModel.hpp:23</a></div></div> <div class="ttc" id="aIsingModel_8hpp_html_a3039ac753f46401767c38f867787fae6"><div class="ttname"><a href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a></div><div class="ttdeci">#define INDEX(I, N)</div><div class="ttdoc">I modulo N.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00023">IsingModel.hpp:23</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a4193cd1c8c2e6ebd0e056fa2364a663f"><div class="ttname"><a href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a></div><div class="ttdeci">#define DOWN</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00028">IsingModel.hpp:28</a></div></div> <div class="ttc" id="aIsingModel_8hpp_html_a4193cd1c8c2e6ebd0e056fa2364a663f"><div class="ttname"><a href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a></div><div class="ttdeci">#define DOWN</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00028">IsingModel.hpp:28</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a437ef08681e7210d6678427030446a54"><div class="ttname"><a href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54">LEFT</a></div><div class="ttdeci">#define LEFT</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00027">IsingModel.hpp:27</a></div></div> <div class="ttc" id="aIsingModel_8hpp_html_a437ef08681e7210d6678427030446a54"><div class="ttname"><a href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54">LEFT</a></div><div class="ttdeci">#define LEFT</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00027">IsingModel.hpp:27</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a80fb826a684cf3f0d306b22aa100ddac"><div class="ttname"><a href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a></div><div class="ttdeci">#define RIGHT</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00029">IsingModel.hpp:29</a></div></div> <div class="ttc" id="aIsingModel_8hpp_html_a80fb826a684cf3f0d306b22aa100ddac"><div class="ttname"><a href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a></div><div class="ttdeci">#define RIGHT</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00029">IsingModel.hpp:29</a></div></div>
<div class="ttc" id="aclassIsingModel_html"><div class="ttname"><a href="classIsingModel.html">IsingModel</a></div><div class="ttdoc">The Ising model in 2 dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00036">IsingModel.hpp:36</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a1bbe0cb10abee98058e7b45b22b9cd0a"><div class="ttname"><a href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">IsingModel::engine</a></div><div class="ttdeci">std::mt19937 engine</div><div class="ttdoc">The RNG that is used for the Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00078">IsingModel.hpp:78</a></div></div> <div class="ttc" id="aclassIsingModel_html_a1bbe0cb10abee98058e7b45b22b9cd0a"><div class="ttname"><a href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">IsingModel::engine</a></div><div class="ttdeci">std::mt19937 engine</div><div class="ttdoc">The RNG that is used for the Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00078">IsingModel.hpp:78</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a1c8a2a4331c7e60c3e1350c0cf8300b9"><div class="ttname"><a href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">IsingModel::E</a></div><div class="ttdeci">int64_t E</div><div class="ttdoc">The current energy state. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00070">IsingModel.hpp:70</a></div></div> <div class="ttc" id="aclassIsingModel_html_a1c8a2a4331c7e60c3e1350c0cf8300b9"><div class="ttname"><a href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">IsingModel::E</a></div><div class="ttdeci">int64_t E</div><div class="ttdoc">The current energy state. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00070">IsingModel.hpp:70</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a20fc4c0c99d8a119f70a1614784d4e5c"><div class="ttname"><a href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">IsingModel::T</a></div><div class="ttdeci">double T</div><div class="ttdoc">The temperature of the model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00062">IsingModel.hpp:62</a></div></div> <div class="ttc" id="aclassIsingModel_html_a20fc4c0c99d8a119f70a1614784d4e5c"><div class="ttname"><a href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">IsingModel::T</a></div><div class="ttdeci">double T</div><div class="ttdoc">The temperature of the model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00062">IsingModel.hpp:62</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a2b8ac43baefeb386186266d5aa4de348"><div class="ttname"><a href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel::L</a></div><div class="ttdeci">int L</div><div class="ttdoc">Size of the lattice.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00066">IsingModel.hpp:66</a></div></div> <div class="ttc" id="aclassIsingModel_html_a2b8ac43baefeb386186266d5aa4de348"><div class="ttname"><a href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel::L</a></div><div class="ttdeci">int L</div><div class="ttdoc">Size of the lattice.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00066">IsingModel.hpp:66</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a2c3c76c79717c968d7c227c58b46df41"><div class="ttname"><a href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">IsingModel::lattice</a></div><div class="ttdeci">arma::Mat&lt; int &gt; lattice</div><div class="ttdoc">matrix where element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00044">IsingModel.hpp:44</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a34a4710949b4a70f3e37ca223aefcf8a"><div class="ttname"><a href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice()</div><div class="ttdoc">Initialize the lattice with a random distribution of 1s and -1s.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00049">IsingModel.cpp:49</a></div></div> <div class="ttc" id="aclassIsingModel_html_a34a4710949b4a70f3e37ca223aefcf8a"><div class="ttname"><a href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice()</div><div class="ttdoc">Initialize the lattice with a random distribution of 1s and -1s.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00049">IsingModel.cpp:49</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a46c9446e94854452f715d307c77c1c15"><div class="ttname"><a href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel(int L, double T, int val)</div><div class="ttdoc">Constructor for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00031">IsingModel.cpp:31</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a4a39ee7fbfbbf566f75bc28900ca9ea5"><div class="ttname"><a href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel(int L, double T)</div><div class="ttdoc">Constructor for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00019">IsingModel.cpp:19</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div> <div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a59fced38c695e2fa647f53be81b9d2a1"><div class="ttname"><a href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a></div><div class="ttdeci">void initialize_energy()</div><div class="ttdoc">Initialize the energy of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00096">IsingModel.cpp:96</a></div></div> <div class="ttc" id="aclassIsingModel_html_a59fced38c695e2fa647f53be81b9d2a1"><div class="ttname"><a href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a></div><div class="ttdeci">void initialize_energy()</div><div class="ttdoc">Initialize the energy of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00096">IsingModel.cpp:96</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a6776109105051597c275670dabd0054a"><div class="ttname"><a href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a></div><div class="ttdeci">void initialize_neighbors()</div><div class="ttdoc">initialize the neighbors matrix.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00070">IsingModel.cpp:70</a></div></div> <div class="ttc" id="aclassIsingModel_html_a6776109105051597c275670dabd0054a"><div class="ttname"><a href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a></div><div class="ttdeci">void initialize_neighbors()</div><div class="ttdoc">initialize the neighbors matrix.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00070">IsingModel.cpp:70</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a7112dd6433b1bb9512150cbdc1a0b77e"><div class="ttname"><a href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">IsingModel::energy_diff</a></div><div class="ttdeci">double energy_diff[17]</div><div class="ttdoc">An array containing all possible energy differences.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00058">IsingModel.hpp:58</a></div></div> <div class="ttc" id="aclassIsingModel_html_a7112dd6433b1bb9512150cbdc1a0b77e"><div class="ttname"><a href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">IsingModel::energy_diff</a></div><div class="ttdeci">double energy_diff[17]</div><div class="ttdoc">An array containing all possible energy differences.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00058">IsingModel.hpp:58</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a926cf4964d190d2ce23e5a17201787a4"><div class="ttname"><a href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a></div><div class="ttdeci">void initialize_magnetization()</div><div class="ttdoc">Initialize the magnetization of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00088">IsingModel.cpp:88</a></div></div> <div class="ttc" id="aclassIsingModel_html_a926cf4964d190d2ce23e5a17201787a4"><div class="ttname"><a href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a></div><div class="ttdeci">void initialize_magnetization()</div><div class="ttdoc">Initialize the magnetization of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00088">IsingModel.cpp:88</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a94093aaf30facca62737f2ac381fdbcd"><div class="ttname"><a href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">IsingModel::neighbors</a></div><div class="ttdeci">arma::Mat&lt; int &gt; neighbors</div><div class="ttdoc">matrix with the neighbors of each element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00054">IsingModel.hpp:54</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aaedc25b7284e04849269f31291590bf5"><div class="ttname"><a href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">IsingModel::initialize_engine</a></div><div class="ttdeci">void initialize_engine()</div><div class="ttdoc">Initialize the RNG.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00043">IsingModel.cpp:43</a></div></div> <div class="ttc" id="aclassIsingModel_html_aaedc25b7284e04849269f31291590bf5"><div class="ttname"><a href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">IsingModel::initialize_engine</a></div><div class="ttdeci">void initialize_engine()</div><div class="ttdoc">Initialize the RNG.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00043">IsingModel.cpp:43</a></div></div>
<div class="ttc" id="aclassIsingModel_html_acc86effd6889bea199a3d70a9f38dc78"><div class="ttname"><a href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice(int val)</div><div class="ttdoc">Initialize the lattice with a specific value.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00059">IsingModel.cpp:59</a></div></div>
<div class="ttc" id="aclassIsingModel_html_acf281f6f5ed02911ca6ab07004449864"><div class="ttname"><a href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel()</div><div class="ttdoc">Constructor used for testing.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00014">IsingModel.cpp:14</a></div></div> <div class="ttc" id="aclassIsingModel_html_acf281f6f5ed02911ca6ab07004449864"><div class="ttname"><a href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel()</div><div class="ttdoc">Constructor used for testing.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00014">IsingModel.cpp:14</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aef7232b28df08e064ef58eb5ef32f738"><div class="ttname"><a href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">IsingModel::M</a></div><div class="ttdeci">int64_t M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00074">IsingModel.hpp:74</a></div></div> <div class="ttc" id="aclassIsingModel_html_aef7232b28df08e064ef58eb5ef32f738"><div class="ttname"><a href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">IsingModel::M</a></div><div class="ttdeci">int64_t M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00074">IsingModel.hpp:74</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aff9a1201933fd5408845a1447e4895b4"><div class="ttname"><a href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">IsingModel::initialize_energy_diff</a></div><div class="ttdeci">void initialize_energy_diff()</div><div class="ttdoc">Initialize the energy_diff array with the correct values.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00081">IsingModel.cpp:81</a></div></div> <div class="ttc" id="aclassIsingModel_html_aff9a1201933fd5408845a1447e4895b4"><div class="ttname"><a href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">IsingModel::initialize_energy_diff</a></div><div class="ttdeci">void initialize_energy_diff()</div><div class="ttdoc">Initialize the energy_diff array with the correct values.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00081">IsingModel.cpp:81</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div> <div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="aclassdata__t_html_a3f2d19ab309e696ba91a2000479bcb83"><div class="ttname"><a href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">data_t::data_t</a></div><div class="ttdeci">data_t(double E, double E2, double M, double M2, double M_abs)</div><div class="ttdoc">Constructor with parameters.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00045">data_type.hpp:45</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -146,7 +146,7 @@ Macros</h2></td></tr>
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>0.1</dd></dl> <dl class="section version"><dt>Version</dt><dd>0.1</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000004">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000002">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p> <p class="definition">Definition in file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2> </div><h2 class="groupheader">Macro Definition Documentation</h2>

View File

@ -101,145 +101,71 @@ $(document).ready(function(){initNavTree('IsingModel_8hpp_source.html',''); init
<div class="headertitle"><div class="title">IsingModel.hpp</div></div> <div class="headertitle"><div class="title">IsingModel.hpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="IsingModel_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file IsingModel.hpp</span></div> <a href="IsingModel_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifndef __ISING_MODEL__</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define __ISING_MODEL__</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 0.1</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief The definition of the Ising model.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">ifndef</span> <span class="preprocessor">__ISING_MODEL__</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">__ISING_MODEL__</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">armadillo</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;armadillo&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">cstdint</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">random</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;random&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">unordered_map</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6"> 23</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">INDEX</span><span class="preprocessor">(</span><span class="preprocessor">I</span><span class="preprocessor">,</span> <span class="preprocessor">N</span><span class="preprocessor">)</span> <span class="preprocessor">(</span><span class="preprocessor">I</span> <span class="preprocessor">+</span> <span class="preprocessor">N</span><span class="preprocessor">)</span> <span class="preprocessor">%</span> <span class="preprocessor">N</span> <span class="comment">///&lt; I modulo N</span></div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6"> 23</a></span><span class="preprocessor">#define INDEX(I, N) (I + N) % N </span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">// Indeces for the neighbor matrix.</span></div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">// Indeces for the neighbor matrix.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb"> 26</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">UP</span> 0 <span class="comment">///&lt; Used for the neighbor matrix in the class</span></div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb"> 26</a></span><span class="preprocessor">#define UP 0 </span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54"> 27</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">LEFT</span> 0 <span class="comment">///&lt; Used for the neighbor matrix in the class</span></div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54"> 27</a></span><span class="preprocessor">#define LEFT 0 </span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f"> 28</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">DOWN</span> 1 <span class="comment">///&lt; Used for the neighbor matrix in the class</span></div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f"> 28</a></span><span class="preprocessor">#define DOWN 1 </span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac"> 29</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">RIGHT</span> 1 <span class="comment">///&lt; Used for the neighbor matrix in the class</span></div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac"> 29</a></span><span class="preprocessor">#define RIGHT 1 </span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">/** @brief The Ising model in 2 dimensions.</span></div>
<div class="line"><span class="lineno"> 32</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 33</span><span class="comment"> * @details None of the methods are parallelized, as there is very little</span></div>
<div class="line"><span class="lineno"> 34</span><span class="comment"> * benefit in doing so.</span></div>
<div class="line"><span class="lineno"> 35</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classIsingModel.html"> 36</a></span><span class="keyword">class </span><a class="code hl_class" href="classIsingModel.html">IsingModel</a> {</div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classIsingModel.html"> 36</a></span><span class="keyword">class </span><a class="code hl_class" href="classIsingModel.html">IsingModel</a> {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">private</span>:</div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/** @brief Give access to private members to the test class IsingModelTest.</span></div>
<div class="line"><span class="lineno"> 39</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classIsingModel.html#a2b1cf104e0bda1fce78ed366e1ec7287"> 40</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classIsingModelTest.html">IsingModelTest</a>;</div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classIsingModel.html#a2b1cf104e0bda1fce78ed366e1ec7287"> 40</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classIsingModelTest.html">IsingModelTest</a>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="comment">/** @brief \f$ L \times L \f$ matrix where element \f$ x \in {-1, 1}\f$.</span></div> <div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41"> 44</a></span> arma::Mat&lt;int&gt; <a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>;</div>
<div class="line"><span class="lineno"> 43</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41"> 44</a></span> arma::Mat&lt;<span class="keywordtype">int</span>&gt; <a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="comment">/** @brief \f$ L \times 2 \f$ matrix with the neighbors of each element</span></div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd"> 54</a></span> arma::Mat&lt;int&gt; <a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>;</div>
<div class="line"><span class="lineno"> 47</span><span class="comment"> * \f$ x_i \f$.</span></div>
<div class="line"><span class="lineno"> 48</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 49</span><span class="comment"> * @details The reason why it&#39;s \f$ L \times 2 \f$ instead of</span></div>
<div class="line"><span class="lineno"> 50</span><span class="comment"> * \f$ L \times 2 \f$, is that we can see that we can use the same column</span></div>
<div class="line"><span class="lineno"> 51</span><span class="comment"> * for the left and upper neighbor, and we can use the same column for the</span></div>
<div class="line"><span class="lineno"> 52</span><span class="comment"> * right and lower neighbor.</span></div>
<div class="line"><span class="lineno"> 53</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd"> 54</a></span> arma::Mat&lt;<span class="keywordtype">int</span>&gt; <a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="comment">/** @brief An array containing all possible energy differences.</span></div>
<div class="line"><span class="lineno"> 57</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e"> 58</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">energy_diff</a>[17];</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e"> 58</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">energy_diff</a>[17];</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">/** @brief The temperature of the model.</span></div>
<div class="line"><span class="lineno"> 61</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c"> 62</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>;</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c"> 62</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="comment">/** @brief Size of the lattice.</span></div>
<div class="line"><span class="lineno"> 65</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348"> 66</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>;</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348"> 66</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="comment">/** @brief The current energy state. unit: \f$ J \f$.</span></div>
<div class="line"><span class="lineno"> 69</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9"> 70</a></span> int64_t <a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a>;</div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9"> 70</a></span> int64_t <a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="comment">/** @brief The current magnetic strength. unit: Unitless.</span></div>
<div class="line"><span class="lineno"> 73</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738"> 74</a></span> int64_t <a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a>;</div> <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738"> 74</a></span> int64_t <a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a>;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div> <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="comment">/** @brief The RNG that is used for the Metropolis algorithm</span></div>
<div class="line"><span class="lineno"> 77</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a"> 78</a></span> std::mt19937 <a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>;</div> <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a"> 78</a></span> std::mt19937 <a class="code hl_variable" href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">engine</a>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="comment">/** @brief Initialize the RNG.</span></div>
<div class="line"><span class="lineno"> 81</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a>();</div> <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">initialize_engine</a>();</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">/** @brief Initialize the lattice with a random distribution of 1s and</span></div>
<div class="line"><span class="lineno"> 85</span><span class="comment"> * -1s.</span></div>
<div class="line"><span class="lineno"> 86</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>();</div> <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>();</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div> <div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="comment">/** @brief Initialize the lattice with a specific value.</span></div> <div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>(<span class="keywordtype">int</span> val);</div>
<div class="line"><span class="lineno"> 90</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">initialize_lattice</a>(<span class="keywordtype">int</span> val);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div> <div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="comment">/** @brief initialize the neighbors matrix.</span></div>
<div class="line"><span class="lineno"> 94</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a>();</div> <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a>();</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div> <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="comment">/** @brief Initialize the energy_diff array with the correct values.</span></div>
<div class="line"><span class="lineno"> 98</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a>();</div> <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a>();</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div> <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="comment">/** @brief Initialize the magnetization of the system.</span></div>
<div class="line"><span class="lineno"> 102</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>();</div> <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>();</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div> <div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="comment">/** @brief Initialize the energy of the system.</span></div>
<div class="line"><span class="lineno"> 106</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>();</div> <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>();</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div> <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="comment">/** @brief Constructor used for testing.</span></div>
<div class="line"><span class="lineno"> 110</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a>();</div> <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a>();</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div> <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="keyword">public</span>:</div> <div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="comment">/** @brief Constructor for the Ising model.</span></div> <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a>(<span class="keywordtype">int</span> <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>);</div>
<div class="line"><span class="lineno"> 115</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 116</span><span class="comment"> * @param L The size of the lattice.</span></div>
<div class="line"><span class="lineno"> 117</span><span class="comment"> * @param T The temperature for the system.</span></div>
<div class="line"><span class="lineno"> 118</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">IsingModel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T);</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div> <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="comment">/** @brief Constructor for the Ising model.</span></div> <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a>(<span class="keywordtype">int</span> <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>, <span class="keywordtype">int</span> val);</div>
<div class="line"><span class="lineno"> 122</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 123</span><span class="comment"> * @param L The size of the lattice.</span></div>
<div class="line"><span class="lineno"> 124</span><span class="comment"> * @param T The temperature for the system.</span></div>
<div class="line"><span class="lineno"> 125</span><span class="comment"> * @param val The value to set for all spins.</span></div>
<div class="line"><span class="lineno"> 126</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_function" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">IsingModel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> val);</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div> <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="comment">/** @brief The Metropolis algorithm.</span></div>
<div class="line"><span class="lineno"> 130</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div> <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>};</div> <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>};</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div> <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="preprocessor">#</span><span class="preprocessor">endif</span></div> <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aIsingModel_8hpp_html_a1965eaca47dbf3f87acdafc2208f04eb"><div class="ttname"><a href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a></div><div class="ttdeci">#define UP</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00026">IsingModel.hpp:26</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a3039ac753f46401767c38f867787fae6"><div class="ttname"><a href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a></div><div class="ttdeci">#define INDEX(I, N)</div><div class="ttdoc">I modulo N.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00023">IsingModel.hpp:23</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a4193cd1c8c2e6ebd0e056fa2364a663f"><div class="ttname"><a href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a></div><div class="ttdeci">#define DOWN</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00028">IsingModel.hpp:28</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a437ef08681e7210d6678427030446a54"><div class="ttname"><a href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54">LEFT</a></div><div class="ttdeci">#define LEFT</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00027">IsingModel.hpp:27</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a80fb826a684cf3f0d306b22aa100ddac"><div class="ttname"><a href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a></div><div class="ttdeci">#define RIGHT</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00029">IsingModel.hpp:29</a></div></div>
<div class="ttc" id="aclassIsingModelTest_html"><div class="ttname"><a href="classIsingModelTest.html">IsingModelTest</a></div><div class="ttdoc">Test class for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00036">test_suite.cpp:36</a></div></div> <div class="ttc" id="aclassIsingModelTest_html"><div class="ttname"><a href="classIsingModelTest.html">IsingModelTest</a></div><div class="ttdoc">Test class for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00036">test_suite.cpp:36</a></div></div>
<div class="ttc" id="aclassIsingModel_html"><div class="ttname"><a href="classIsingModel.html">IsingModel</a></div><div class="ttdoc">The Ising model in 2 dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00036">IsingModel.hpp:36</a></div></div> <div class="ttc" id="aclassIsingModel_html"><div class="ttname"><a href="classIsingModel.html">IsingModel</a></div><div class="ttdoc">The Ising model in 2 dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00036">IsingModel.hpp:36</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a1bbe0cb10abee98058e7b45b22b9cd0a"><div class="ttname"><a href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">IsingModel::engine</a></div><div class="ttdeci">std::mt19937 engine</div><div class="ttdoc">The RNG that is used for the Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00078">IsingModel.hpp:78</a></div></div> <div class="ttc" id="aclassIsingModel_html_a1bbe0cb10abee98058e7b45b22b9cd0a"><div class="ttname"><a href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">IsingModel::engine</a></div><div class="ttdeci">std::mt19937 engine</div><div class="ttdoc">The RNG that is used for the Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00078">IsingModel.hpp:78</a></div></div>
@ -248,8 +174,6 @@ $(document).ready(function(){initNavTree('IsingModel_8hpp_source.html',''); init
<div class="ttc" id="aclassIsingModel_html_a2b8ac43baefeb386186266d5aa4de348"><div class="ttname"><a href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel::L</a></div><div class="ttdeci">int L</div><div class="ttdoc">Size of the lattice.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00066">IsingModel.hpp:66</a></div></div> <div class="ttc" id="aclassIsingModel_html_a2b8ac43baefeb386186266d5aa4de348"><div class="ttname"><a href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel::L</a></div><div class="ttdeci">int L</div><div class="ttdoc">Size of the lattice.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00066">IsingModel.hpp:66</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a2c3c76c79717c968d7c227c58b46df41"><div class="ttname"><a href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">IsingModel::lattice</a></div><div class="ttdeci">arma::Mat&lt; int &gt; lattice</div><div class="ttdoc">matrix where element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00044">IsingModel.hpp:44</a></div></div> <div class="ttc" id="aclassIsingModel_html_a2c3c76c79717c968d7c227c58b46df41"><div class="ttname"><a href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">IsingModel::lattice</a></div><div class="ttdeci">arma::Mat&lt; int &gt; lattice</div><div class="ttdoc">matrix where element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00044">IsingModel.hpp:44</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a34a4710949b4a70f3e37ca223aefcf8a"><div class="ttname"><a href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice()</div><div class="ttdoc">Initialize the lattice with a random distribution of 1s and -1s.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00049">IsingModel.cpp:49</a></div></div> <div class="ttc" id="aclassIsingModel_html_a34a4710949b4a70f3e37ca223aefcf8a"><div class="ttname"><a href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice()</div><div class="ttdoc">Initialize the lattice with a random distribution of 1s and -1s.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00049">IsingModel.cpp:49</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a46c9446e94854452f715d307c77c1c15"><div class="ttname"><a href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel(int L, double T, int val)</div><div class="ttdoc">Constructor for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00031">IsingModel.cpp:31</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a4a39ee7fbfbbf566f75bc28900ca9ea5"><div class="ttname"><a href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel(int L, double T)</div><div class="ttdoc">Constructor for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00019">IsingModel.cpp:19</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div> <div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a59fced38c695e2fa647f53be81b9d2a1"><div class="ttname"><a href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a></div><div class="ttdeci">void initialize_energy()</div><div class="ttdoc">Initialize the energy of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00096">IsingModel.cpp:96</a></div></div> <div class="ttc" id="aclassIsingModel_html_a59fced38c695e2fa647f53be81b9d2a1"><div class="ttname"><a href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a></div><div class="ttdeci">void initialize_energy()</div><div class="ttdoc">Initialize the energy of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00096">IsingModel.cpp:96</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a6776109105051597c275670dabd0054a"><div class="ttname"><a href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a></div><div class="ttdeci">void initialize_neighbors()</div><div class="ttdoc">initialize the neighbors matrix.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00070">IsingModel.cpp:70</a></div></div> <div class="ttc" id="aclassIsingModel_html_a6776109105051597c275670dabd0054a"><div class="ttname"><a href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a></div><div class="ttdeci">void initialize_neighbors()</div><div class="ttdoc">initialize the neighbors matrix.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00070">IsingModel.cpp:70</a></div></div>
@ -257,12 +181,12 @@ $(document).ready(function(){initNavTree('IsingModel_8hpp_source.html',''); init
<div class="ttc" id="aclassIsingModel_html_a926cf4964d190d2ce23e5a17201787a4"><div class="ttname"><a href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a></div><div class="ttdeci">void initialize_magnetization()</div><div class="ttdoc">Initialize the magnetization of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00088">IsingModel.cpp:88</a></div></div> <div class="ttc" id="aclassIsingModel_html_a926cf4964d190d2ce23e5a17201787a4"><div class="ttname"><a href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a></div><div class="ttdeci">void initialize_magnetization()</div><div class="ttdoc">Initialize the magnetization of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00088">IsingModel.cpp:88</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a94093aaf30facca62737f2ac381fdbcd"><div class="ttname"><a href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">IsingModel::neighbors</a></div><div class="ttdeci">arma::Mat&lt; int &gt; neighbors</div><div class="ttdoc">matrix with the neighbors of each element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00054">IsingModel.hpp:54</a></div></div> <div class="ttc" id="aclassIsingModel_html_a94093aaf30facca62737f2ac381fdbcd"><div class="ttname"><a href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">IsingModel::neighbors</a></div><div class="ttdeci">arma::Mat&lt; int &gt; neighbors</div><div class="ttdoc">matrix with the neighbors of each element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00054">IsingModel.hpp:54</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aaedc25b7284e04849269f31291590bf5"><div class="ttname"><a href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">IsingModel::initialize_engine</a></div><div class="ttdeci">void initialize_engine()</div><div class="ttdoc">Initialize the RNG.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00043">IsingModel.cpp:43</a></div></div> <div class="ttc" id="aclassIsingModel_html_aaedc25b7284e04849269f31291590bf5"><div class="ttname"><a href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">IsingModel::initialize_engine</a></div><div class="ttdeci">void initialize_engine()</div><div class="ttdoc">Initialize the RNG.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00043">IsingModel.cpp:43</a></div></div>
<div class="ttc" id="aclassIsingModel_html_acc86effd6889bea199a3d70a9f38dc78"><div class="ttname"><a href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice(int val)</div><div class="ttdoc">Initialize the lattice with a specific value.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00059">IsingModel.cpp:59</a></div></div>
<div class="ttc" id="aclassIsingModel_html_acf281f6f5ed02911ca6ab07004449864"><div class="ttname"><a href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel()</div><div class="ttdoc">Constructor used for testing.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00014">IsingModel.cpp:14</a></div></div> <div class="ttc" id="aclassIsingModel_html_acf281f6f5ed02911ca6ab07004449864"><div class="ttname"><a href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel()</div><div class="ttdoc">Constructor used for testing.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00014">IsingModel.cpp:14</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aef7232b28df08e064ef58eb5ef32f738"><div class="ttname"><a href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">IsingModel::M</a></div><div class="ttdeci">int64_t M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00074">IsingModel.hpp:74</a></div></div> <div class="ttc" id="aclassIsingModel_html_aef7232b28df08e064ef58eb5ef32f738"><div class="ttname"><a href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">IsingModel::M</a></div><div class="ttdeci">int64_t M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00074">IsingModel.hpp:74</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aff9a1201933fd5408845a1447e4895b4"><div class="ttname"><a href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">IsingModel::initialize_energy_diff</a></div><div class="ttdeci">void initialize_energy_diff()</div><div class="ttdoc">Initialize the energy_diff array with the correct values.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00081">IsingModel.cpp:81</a></div></div> <div class="ttc" id="aclassIsingModel_html_aff9a1201933fd5408845a1447e4895b4"><div class="ttname"><a href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">IsingModel::initialize_energy_diff</a></div><div class="ttdeci">void initialize_energy_diff()</div><div class="ttdoc">Initialize the energy_diff array with the correct values.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00081">IsingModel.cpp:81</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div> <div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="aclassdata__t_html_a3f2d19ab309e696ba91a2000479bcb83"><div class="ttname"><a href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">data_t::data_t</a></div><div class="ttdeci">data_t(double E, double E2, double M, double M2, double M_abs)</div><div class="ttdoc">Constructor with parameters.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00045">data_type.hpp:45</a></div></div> <div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -103,39 +103,39 @@ $(document).ready(function(){initNavTree('bug.html',''); initResizable(); });
<div class="contents"> <div class="contents">
<div class="textblock"><dl class="reflist"> <div class="textblock"><dl class="reflist">
<dt>File <a class="el" href="data__type_8cpp.html">data_type.cpp</a> </dt> <dt>File <a class="el" href="data__type_8cpp.html">data_type.cpp</a> </dt>
<dd><a class="anchor" id="_bug000001"></a>No known bugs </dd>
<dt>File <a class="el" href="data__type_8hpp.html">data_type.hpp</a> </dt>
<dd><a class="anchor" id="_bug000002"></a>No known bugs </dd>
<dt>File <a class="el" href="IsingModel_8cpp.html">IsingModel.cpp</a> </dt>
<dd><a class="anchor" id="_bug000003"></a>No known bugs </dd>
<dt>File <a class="el" href="IsingModel_8hpp.html">IsingModel.hpp</a> </dt>
<dd><a class="anchor" id="_bug000004"></a>No known bugs </dd>
<dt>File <a class="el" href="main_8cpp.html">main.cpp</a> </dt>
<dd><a class="anchor" id="_bug000005"></a>No known bugs </dd>
<dt>File <a class="el" href="mcmc__progression_8cpp.html">mcmc_progression.cpp</a> </dt>
<dd><a class="anchor" id="_bug000008"></a>No known bugs </dd>
<dt>File <a class="el" href="monte__carlo_8cpp.html">monte_carlo.cpp</a> </dt>
<dd><a class="anchor" id="_bug000009"></a>No known bugs </dd>
<dt>File <a class="el" href="monte__carlo_8hpp.html">monte_carlo.hpp</a> </dt>
<dd><a class="anchor" id="_bug000006"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000006"></a>No known bugs </dd>
<dt>File <a class="el" href="pd__estimate_8cpp.html">pd_estimate.cpp</a> </dt> <dt>File <a class="el" href="data__type_8hpp.html">data_type.hpp</a> </dt>
<dd><a class="anchor" id="_bug000001"></a>No known bugs </dd>
<dt>File <a class="el" href="IsingModel_8cpp.html">IsingModel.cpp</a> </dt>
<dd><a class="anchor" id="_bug000007"></a>No known bugs </dd>
<dt>File <a class="el" href="IsingModel_8hpp.html">IsingModel.hpp</a> </dt>
<dd><a class="anchor" id="_bug000002"></a>No known bugs </dd>
<dt>File <a class="el" href="main_8cpp.html">main.cpp</a> </dt>
<dd><a class="anchor" id="_bug000008"></a>No known bugs </dd>
<dt>File <a class="el" href="mcmc__progression_8cpp.html">mcmc_progression.cpp</a> </dt>
<dd><a class="anchor" id="_bug000009"></a>No known bugs </dd>
<dt>File <a class="el" href="monte__carlo_8cpp.html">monte_carlo.cpp</a> </dt>
<dd><a class="anchor" id="_bug000010"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000010"></a>No known bugs </dd>
<dt>File <a class="el" href="phase__transition_8cpp.html">phase_transition.cpp</a> </dt> <dt>File <a class="el" href="monte__carlo_8hpp.html">monte_carlo.hpp</a> </dt>
<dd><a class="anchor" id="_bug000003"></a>No known bugs </dd>
<dt>File <a class="el" href="pd__estimate_8cpp.html">pd_estimate.cpp</a> </dt>
<dd><a class="anchor" id="_bug000011"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000011"></a>No known bugs </dd>
<dt>File <a class="el" href="phase__transition__mpi_8cpp.html">phase_transition_mpi.cpp</a> </dt> <dt>File <a class="el" href="phase__transition_8cpp.html">phase_transition.cpp</a> </dt>
<dd><a class="anchor" id="_bug000012"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000012"></a>No known bugs </dd>
<dt>File <a class="el" href="test__suite_8cpp.html">test_suite.cpp</a> </dt> <dt>File <a class="el" href="phase__transition__mpi_8cpp.html">phase_transition_mpi.cpp</a> </dt>
<dd><a class="anchor" id="_bug000013"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000013"></a>No known bugs </dd>
<dt>File <a class="el" href="test__suite_8cpp.html">test_suite.cpp</a> </dt>
<dd><a class="anchor" id="_bug000014"></a>No known bugs </dd>
<dt>File <a class="el" href="testlib_8cpp.html">testlib.cpp</a> </dt> <dt>File <a class="el" href="testlib_8cpp.html">testlib.cpp</a> </dt>
<dd><a class="anchor" id="_bug000015"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000015"></a>No known bugs </dd>
<dt>File <a class="el" href="testlib_8hpp.html">testlib.hpp</a> </dt> <dt>File <a class="el" href="testlib_8hpp.html">testlib.hpp</a> </dt>
<dd><a class="anchor" id="_bug000014"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000004"></a>No known bugs </dd>
<dt>File <a class="el" href="time_8cpp.html">time.cpp</a> </dt> <dt>File <a class="el" href="time_8cpp.html">time.cpp</a> </dt>
<dd><a class="anchor" id="_bug000016"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000016"></a>No known bugs </dd>
<dt>File <a class="el" href="utils_8cpp.html">utils.cpp</a> </dt> <dt>File <a class="el" href="utils_8cpp.html">utils.cpp</a> </dt>
<dd><a class="anchor" id="_bug000017"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000017"></a>No known bugs </dd>
<dt>File <a class="el" href="utils_8hpp.html">utils.hpp</a> </dt> <dt>File <a class="el" href="utils_8hpp.html">utils.hpp</a> </dt>
<dd><a class="anchor" id="_bug000007"></a>No known bugs </dd> <dd><a class="anchor" id="_bug000005"></a>No known bugs </dd>
</dl> </dl>
</div></div><!-- contents --> </div></div><!-- contents -->
</div><!-- PageDoc --> </div><!-- PageDoc -->

View File

@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('data__type_8cpp.html',''); initResizab
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000001">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000006">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="data__type_8cpp_source.html">data_type.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="data__type_8cpp_source.html">data_type.cpp</a>.</p>
</div></div><!-- contents --> </div></div><!-- contents -->

View File

@ -101,18 +101,9 @@ $(document).ready(function(){initNavTree('data__type_8cpp_source.html',''); init
<div class="headertitle"><div class="title">data_type.cpp</div></div> <div class="headertitle"><div class="title">data_type.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="data__type_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file data_type.cpp</span></div> <a href="data__type_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Implementation for the data_t type.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -123,7 +123,7 @@ Classes</h2></td></tr>
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000002">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000001">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p> <p class="definition">Definition in file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div></div><!-- contents --> </div></div><!-- contents -->

View File

@ -101,171 +101,115 @@ $(document).ready(function(){initNavTree('data__type_8hpp_source.html',''); init
<div class="headertitle"><div class="title">data_type.hpp</div></div> <div class="headertitle"><div class="title">data_type.hpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="data__type_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file data_type.hpp</span></div> <a href="data__type_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifndef __DATA_TYPE__</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define __DATA_TYPE__</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Header for the data_t type.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">ifndef</span> <span class="preprocessor">__DATA_TYPE__</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">__DATA_TYPE__</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">sys</span><span class="preprocessor">/</span><span class="preprocessor">types</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;sys/types.h&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">type_traits</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;type_traits&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">/** @brief Type to use with the IsingModel class and montecarlo module.*/</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classdata__t.html"> 19</a></span><span class="keyword">class </span><a class="code hl_class" href="classdata__t.html">data_t</a> {</div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classdata__t.html"> 19</a></span><span class="keyword">class </span><a class="code hl_class" href="classdata__t.html">data_t</a> {</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">public</span>:</div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e"> 21</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>; <span class="comment">///&lt; Energy</span></div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e"> 21</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>; </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a"> 22</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a>; <span class="comment">///&lt; Magnetization</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a"> 22</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a>; </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72"> 23</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a>; <span class="comment">///&lt; Energy squared</span></div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72"> 23</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a>; </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b"> 24</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a>; <span class="comment">///&lt; Magnetization squared</span></div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b"> 24</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a>; </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b"> 25</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>; <span class="comment">///&lt; Absolute Magnetization</span></div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b"> 25</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>; </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="comment">/** @brief constructor with no parameters.</span></div>
<div class="line"><span class="lineno"> 28</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="classdata__t.html#aa2690d3e5d711b4baf3c8f8b9095faf7"> 29</a></span> <a class="code hl_function" href="classdata__t.html#aa2690d3e5d711b4baf3c8f8b9095faf7">data_t</a>()</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="classdata__t.html#aa2690d3e5d711b4baf3c8f8b9095faf7"> 29</a></span> <a class="code hl_function" href="classdata__t.html#aa2690d3e5d711b4baf3c8f8b9095faf7">data_t</a>()</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> {</div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> = 0.;</div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> this-&gt;E = 0.;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">-&gt;</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> = 0.;</div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> this-&gt;E2 = 0.;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">-&gt;</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> = 0.;</div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> this-&gt;M = 0.;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> = 0.;</div> <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> this-&gt;M2 = 0.;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> = 0.;</div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> this-&gt;M_abs = 0.;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/** @brief Constructor with parameters.</span></div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83"> 45</a></span> <a class="code hl_function" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">data_t</a>(<span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>)</div>
<div class="line"><span class="lineno"> 39</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 40</span><span class="comment"> * @param E Initial energy</span></div>
<div class="line"><span class="lineno"> 41</span><span class="comment"> * @param E2 Initial energy squared</span></div>
<div class="line"><span class="lineno"> 42</span><span class="comment"> * @param M Initial magnetization</span></div>
<div class="line"><span class="lineno"> 43</span><span class="comment"> * @param M2 Initial magnetization squared</span></div>
<div class="line"><span class="lineno"> 44</span><span class="comment"> * @param M_abs Initial absolute magnetization*/</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83"> 45</a></span> <a class="code hl_function" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">data_t</a>(<span class="keywordtype">double</span> E, <span class="keywordtype">double</span> E2, <span class="keywordtype">double</span> M, <span class="keywordtype">double</span> M2, <span class="keywordtype">double</span> M_abs)</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> {</div> <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> = E;</div> <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> this-&gt;E = <a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">-&gt;</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> = E2;</div> <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> this-&gt;E2 = <a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">-&gt;</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> = M;</div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> this-&gt;M = <a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> = M2;</div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> this-&gt;M2 = <a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> = M_abs;</div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> this-&gt;M_abs = <a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="comment">/** @brief Overload of the division operator.</span></div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classdata__t.html#a429a11c53ee7fe08f6a4e75db524521d"> 60</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classdata__t.html#a429a11c53ee7fe08f6a4e75db524521d">operator/</a>(T num)</div>
<div class="line"><span class="lineno"> 55</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 56</span><span class="comment"> * @param num The number to divide each field by.</span></div>
<div class="line"><span class="lineno"> 57</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 58</span><span class="comment"> * @return data_t</span></div>
<div class="line"><span class="lineno"> 59</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classdata__t.html#a429a11c53ee7fe08f6a4e75db524521d"> 60</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classdata__t.html#a429a11c53ee7fe08f6a4e75db524521d">operator</a>/(T num)</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> {</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_class" href="classdata__t.html">data_t</a> res;</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_class" href="classdata__t.html">data_t</a> res;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> res<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> / (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> res.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> = this-&gt;E / (double)num;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> res<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">-&gt;</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> / (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> res.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> = this-&gt;E2 / (double)num;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> res<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">.</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">-&gt;</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> / (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> res.<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> = this-&gt;M / (double)num;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> res<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> / (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> res.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> = this-&gt;M2 / (double)num;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> res<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> / (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> res.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> = this-&gt;M_abs / (double)num;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> res;</div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="comment">/** @brief Overload of the division equals operator.</span></div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classdata__t.html#a88da5be78439fbdecfa473ec007dffd8"> 79</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;<a class="code hl_function" href="classdata__t.html#a88da5be78439fbdecfa473ec007dffd8">operator/=</a>(T num)</div>
<div class="line"><span class="lineno"> 74</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 75</span><span class="comment"> * @param num The number to divide each field by.</span></div>
<div class="line"><span class="lineno"> 76</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 77</span><span class="comment"> * @return data_t</span></div>
<div class="line"><span class="lineno"> 78</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classdata__t.html#a88da5be78439fbdecfa473ec007dffd8"> 79</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;<a class="code hl_function" href="classdata__t.html#a88da5be78439fbdecfa473ec007dffd8">operator</a>/=(T num)</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> {</div> <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> /= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> this-&gt;E /= (double)num;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">-&gt;</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> /= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> this-&gt;E2 /= (double)num;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">-&gt;</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> /= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> this-&gt;M /= (double)num;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> /= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> this-&gt;M2 /= (double)num;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> /= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> this-&gt;M_abs /= (double)num;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div> <div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> }</div> <div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> }</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="comment">/** @brief Overload of the multiply operator.</span></div> <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classdata__t.html#a7954efc97086ea50e10c33113b203085"> 96</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classdata__t.html#a7954efc97086ea50e10c33113b203085">operator*</a>(T num)</div>
<div class="line"><span class="lineno"> 91</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 92</span><span class="comment"> * @param num The number to multiply each field by.</span></div>
<div class="line"><span class="lineno"> 93</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 94</span><span class="comment"> * @return data_t</span></div>
<div class="line"><span class="lineno"> 95</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classdata__t.html#a7954efc97086ea50e10c33113b203085"> 96</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classdata__t.html#a7954efc97086ea50e10c33113b203085">operator</a>*(T num)</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> {</div> <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> {</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_class" href="classdata__t.html">data_t</a> res;</div> <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_class" href="classdata__t.html">data_t</a> res;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> res<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> * (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> res.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> = this-&gt;E * (double)num;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> res<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">-&gt;</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> * (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> res.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> = this-&gt;E2 * (double)num;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> res<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">.</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">-&gt;</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> * (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> res.<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> = this-&gt;M * (double)num;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> res<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> * (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> res.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> = this-&gt;M2 * (double)num;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> res<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> * (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> res.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> = this-&gt;M_abs * (double)num;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div> <div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> res;</div> <div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div> <div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div> <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="comment">/** @brief Overload of the multiply equals operator.</span></div> <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="classdata__t.html#a6ddf3a7372730ef2393aee8bbcb34992"> 114</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;<a class="code hl_function" href="classdata__t.html#a6ddf3a7372730ef2393aee8bbcb34992">operator*=</a>(T num)</div>
<div class="line"><span class="lineno"> 109</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 110</span><span class="comment"> * @param num The number to multiply each field by.</span></div>
<div class="line"><span class="lineno"> 111</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 112</span><span class="comment"> * @return data_t</span></div>
<div class="line"><span class="lineno"> 113</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="classdata__t.html#a6ddf3a7372730ef2393aee8bbcb34992"> 114</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;<a class="code hl_function" href="classdata__t.html#a6ddf3a7372730ef2393aee8bbcb34992">operator</a>*=(T num)</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> {</div> <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> {</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> *= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> this-&gt;E *= (double)num;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">-&gt;</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> *= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> this-&gt;E2 *= (double)num;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">-&gt;</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> *= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> this-&gt;M *= (double)num;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> *= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> this-&gt;M2 *= (double)num;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> *= (<span class="keywordtype">double</span>)num;</div> <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> this-&gt;M_abs *= (double)num;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div> <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div> <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div> <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div> <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="comment">/** @brief Overload of the addition operator.</span></div> <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classdata__t.html#a13bc1d73eadeb39c507e89f5872d726f"> 132</a></span> <a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classdata__t.html#a13bc1d73eadeb39c507e89f5872d726f">operator+</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;b)</div>
<div class="line"><span class="lineno"> 127</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 128</span><span class="comment"> * @param b The data_t field to add.</span></div>
<div class="line"><span class="lineno"> 129</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 130</span><span class="comment"> * @return data_t</span></div>
<div class="line"><span class="lineno"> 131</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classdata__t.html#a13bc1d73eadeb39c507e89f5872d726f"> 132</a></span> <a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="classdata__t.html#a13bc1d73eadeb39c507e89f5872d726f">operator</a>+(<span class="keyword">const</span> <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;b)</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> {</div> <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> {</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_class" href="classdata__t.html">data_t</a> res;</div> <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_class" href="classdata__t.html">data_t</a> res;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> res<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> + b<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>;</div> <div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> res.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> = this-&gt;E + b.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> res<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">-&gt;</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> + b<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a>;</div> <div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> res.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> = this-&gt;E2 + b.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a>;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> res<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">.</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">-&gt;</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> + b<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">.</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a>;</div> <div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> res.<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> = this-&gt;M + b.<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a>;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> res<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> + b<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a>;</div> <div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> res.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> = this-&gt;M2 + b.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a>;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> res<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> = <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> + b<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>;</div> <div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> res.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> = this-&gt;M_abs + b.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div> <div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">return</span> res;</div> <div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div> <div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div> <div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="comment">/** @brief Overload of the addition equals operator.</span></div> <div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb"> 150</a></span> <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;<a class="code hl_function" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">operator+=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;b)</div>
<div class="line"><span class="lineno"> 145</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 146</span><span class="comment"> * @param b The data_t field to add.</span></div>
<div class="line"><span class="lineno"> 147</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 148</span><span class="comment"> * @return data_t</span></div>
<div class="line"><span class="lineno"> 149</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb"> 150</a></span> <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;<a class="code hl_function" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">operator</a>+=(<span class="keyword">const</span> <a class="code hl_class" href="classdata__t.html">data_t</a> &amp;b)</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> {</div> <div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> {</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> += b<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>;</div> <div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> this-&gt;E += b.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">-&gt;</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> += b<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a>;</div> <div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> this-&gt;E2 += b.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a>;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">-&gt;</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> += b<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">.</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a>;</div> <div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> this-&gt;M += b.<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a>;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> += b<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a>;</div> <div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> this-&gt;M2 += b.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a>;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">this</span><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">-&gt;</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> += b<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>;</div> <div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> this-&gt;M_abs += b.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>;</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div> <div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> <div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> }</div> <div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> }</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span>};</div> <div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span>};</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div> <div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment">// Declare a custom reduction for the data_t type.</span></div> <div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment">// Declare a custom reduction for the data_t type.</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="preprocessor">#</span><span class="preprocessor">pragma</span> <span class="preprocessor">omp</span> <span class="preprocessor">declare</span> <span class="preprocessor">reduction</span><span class="preprocessor">(</span><span class="preprocessor">+</span> <span class="preprocessor">:</span> <span class="preprocessor">data_t</span> <span class="preprocessor">:</span> <span class="preprocessor">omp_out</span> <span class="preprocessor">+=</span> <span class="preprocessor">omp_in</span><span class="preprocessor">)</span></div> <div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="preprocessor">#pragma omp declare reduction(+ : data_t : omp_out += omp_in)</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div> <div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="preprocessor">#</span><span class="preprocessor">endif</span></div> <div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div> <div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="aclassdata__t_html_a13bc1d73eadeb39c507e89f5872d726f"><div class="ttname"><a href="classdata__t.html#a13bc1d73eadeb39c507e89f5872d726f">data_t::operator+</a></div><div class="ttdeci">data_t operator+(const data_t &amp;b)</div><div class="ttdoc">Overload of the addition operator.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00132">data_type.hpp:132</a></div></div> <div class="ttc" id="aclassdata__t_html_a13bc1d73eadeb39c507e89f5872d726f"><div class="ttname"><a href="classdata__t.html#a13bc1d73eadeb39c507e89f5872d726f">data_t::operator+</a></div><div class="ttdeci">data_t operator+(const data_t &amp;b)</div><div class="ttdoc">Overload of the addition operator.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00132">data_type.hpp:132</a></div></div>
<div class="ttc" id="aclassdata__t_html_a3f2d19ab309e696ba91a2000479bcb83"><div class="ttname"><a href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">data_t::data_t</a></div><div class="ttdeci">data_t(double E, double E2, double M, double M2, double M_abs)</div><div class="ttdoc">Constructor with parameters.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00045">data_type.hpp:45</a></div></div> <div class="ttc" id="aclassdata__t_html_a3f2d19ab309e696ba91a2000479bcb83"><div class="ttname"><a href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">data_t::data_t</a></div><div class="ttdeci">data_t(double E, double E2, double M, double M2, double M_abs)</div><div class="ttdoc">Constructor with parameters.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00045">data_type.hpp:45</a></div></div>

View File

@ -152,17 +152,17 @@ Compiling</h1>
Normal binaries</h2> Normal binaries</h2>
<p>Compiling regular binaries is as easy as running this command:</p> <p>Compiling regular binaries is as easy as running this command:</p>
<div class="fragment"><div class="line">make</div> <div class="fragment"><div class="line">make</div>
</div><!-- fragment --><p>The binaries will then be inside the **./bin** directory.</p> </div><!-- fragment --><p>The binaries will then be inside the <b>bin</b> directory.</p>
<h2><a class="anchor" id="autotoc_md7"></a> <h2><a class="anchor" id="autotoc_md7"></a>
Profiling binaries</h2> Profiling binaries</h2>
<p>If you want to profile the programs (specifically the MPI program), then run this command</p> <p>If you want to profile the programs (specifically the MPI program), then run this command</p>
<div class="fragment"><div class="line">make profile</div> <div class="fragment"><div class="line">make profile</div>
</div><!-- fragment --><p>The binaries will then be inside the **./prof** directory.</p> </div><!-- fragment --><p>The binaries will then be inside the <b>prof</b> directory.</p>
<h2><a class="anchor" id="autotoc_md8"></a> <h2><a class="anchor" id="autotoc_md8"></a>
Debugging binaries</h2> Debugging binaries</h2>
<p>If you want to debug the code, then use this command:</p> <p>If you want to debug the code, then use this command:</p>
<div class="fragment"><div class="line">make debug</div> <div class="fragment"><div class="line">make debug</div>
</div><!-- fragment --><p>The binaries will then be inside the **./debug** directory.</p> </div><!-- fragment --><p>The binaries will then be inside the <b>debug</b> directory.</p>
<h1><a class="anchor" id="autotoc_md9"></a> <h1><a class="anchor" id="autotoc_md9"></a>
Running programs</h1> Running programs</h1>
<h2><a class="anchor" id="autotoc_md10"></a> <h2><a class="anchor" id="autotoc_md10"></a>
@ -186,7 +186,7 @@ Running scripts</h3>
<div class="fragment"><div class="line">python3 python_scripts/&lt;script-name&gt;</div> <div class="fragment"><div class="line">python3 python_scripts/&lt;script-name&gt;</div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md14"></a> </div><!-- fragment --><h2><a class="anchor" id="autotoc_md14"></a>
Batch system</h2> Batch system</h2>
<p>For the <b>phase_transition_mpi</b> program, there are scripts in the **./slurm_scripts** directory that come along with it. This is to be able to run it on a batch system using Slurm if you have access to one. The only program that should be executed by the user is the **./slurm_scripts/execute.script** script. You can see how to use this script by doing:</p> <p>For the <b>phase_transition_mpi</b> program, there are scripts in the <b>slurm_scripts</b> directory that come along with it. This is to be able to run it on a batch system using Slurm if you have access to one. The only program that should be executed by the user is the <b>slurm_scripts/execute.script</b> script. You can see how to use this script by doing:</p>
<div class="fragment"><div class="line">./slurm_scripts/execute.script --help</div> <div class="fragment"><div class="line">./slurm_scripts/execute.script --help</div>
</div><!-- fragment --><p>This is the recommended way of using the program. Here is a table using different parameters on the Fox cluster:</p> </div><!-- fragment --><p>This is the recommended way of using the program. Here is a table using different parameters on the Fox cluster:</p>
<table class="markdownTable"> <table class="markdownTable">
@ -201,7 +201,7 @@ Batch system</h2>
</table> </table>
<p>If you happen to have such a system available to you, then you should clone this repo on that system, then compile the MPI program like this:</p> <p>If you happen to have such a system available to you, then you should clone this repo on that system, then compile the MPI program like this:</p>
<div class="fragment"><div class="line">make bin/phase_transition_mpi</div> <div class="fragment"><div class="line">make bin/phase_transition_mpi</div>
</div><!-- fragment --><p>After compiling, you can schedule it by using the **./slurm_scripts/execute.script**:</p> </div><!-- fragment --><p>After compiling, you can schedule it by using the <b>slurm_scripts/execute.script</b>:</p>
<div class="fragment"><div class="line">./slurm_scripts/execute.script &lt;parameters&gt;</div> <div class="fragment"><div class="line">./slurm_scripts/execute.script &lt;parameters&gt;</div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md15"></a> </div><!-- fragment --><h1><a class="anchor" id="autotoc_md15"></a>
Performance</h1> Performance</h1>

View File

@ -143,7 +143,7 @@ Functions</h2></td></tr>
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>0.1</dd></dl> <dl class="section version"><dt>Version</dt><dd>0.1</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000005">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000008">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2> </div><h2 class="groupheader">Function Documentation</h2>

View File

@ -101,26 +101,13 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html',''); initResiza
<div class="headertitle"><div class="title">main.cpp</div></div> <div class="headertitle"><div class="title">main.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file main.cpp</span></div> <a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="monte__carlo_8hpp.html">monte_carlo.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 0.1</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief The main program</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="monte__carlo_8hpp.html" title="Functions for Monte Carlo simulations.">&quot;monte_carlo.hpp&quot;</a></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">getopt</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;getopt.h&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">/** @brief Create the data for the burn-in time for temperatures 1.0 and 2.4</span></div>
<div class="line"><span class="lineno"> 19</span><span class="comment"> * for both unordered and ordered initial states.</span></div>
<div class="line"><span class="lineno"> 20</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32"> 21</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a>()</div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32"> 21</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a>()</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span>{</div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span>{</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// Test burn-in time</span></div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// Test burn-in time</span></div>
@ -134,32 +121,25 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html',''); initResiza
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="stringliteral">&quot;./data/hp/burn_in_time/ordered_2_4.txt&quot;</span>);</div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="stringliteral">&quot;./data/hp/burn_in_time/ordered_2_4.txt&quot;</span>);</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>}</div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>}</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">/** @brief Create the data used to estimate the probability distribution</span></div>
<div class="line"><span class="lineno"> 35</span><span class="comment"> * for tempratures 1.0 and 2.4.</span></div>
<div class="line"><span class="lineno"> 36</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b"> 37</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a>()</div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b"> 37</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a>()</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>{</div> <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>{</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Estimate pd</span></div> <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Estimate pd</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">pd_estimate</a>(1.0, 20, 1000000,</div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> montecarlo::pd_estimate(1.0, 20, 1000000,</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="stringliteral">&quot;./data/hp/pd_estimate/estimate_1_0.txt&quot;</span>);</div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="stringliteral">&quot;./data/hp/pd_estimate/estimate_1_0.txt&quot;</span>);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">pd_estimate</a>(2.4, 20, 1000000,</div> <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> montecarlo::pd_estimate(2.4, 20, 1000000,</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="stringliteral">&quot;./data/hp/pd_estimate/estimate_2_4.txt&quot;</span>);</div> <div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="stringliteral">&quot;./data/hp/pd_estimate/estimate_2_4.txt&quot;</span>);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div> <div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">/** @brief Create data using the same parameters except one uses burn-in time,</span></div>
<div class="line"><span class="lineno"> 47</span><span class="comment"> * while the other doesn&#39;t.</span></div>
<div class="line"><span class="lineno"> 48</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861"> 49</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a>()</div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861"> 49</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a>()</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{</div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(</div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> montecarlo::phase_transition(</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> 100, 2.1, 2.4, 40, 1e5, montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a>,</div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> 100, 2.1, 2.4, 40, 1e5, montecarlo::mcmc_serial,</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="stringliteral">&quot;./data/hp/test_burn_in_time/burn_in.txt&quot;</span>, 5000);</div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="stringliteral">&quot;./data/hp/test_burn_in_time/burn_in.txt&quot;</span>, 5000);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(</div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> montecarlo::phase_transition(</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> 100, 2.1, 2.4, 40, 1e5, montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a>,</div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> 100, 2.1, 2.4, 40, 1e5, montecarlo::mcmc_serial,</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="stringliteral">&quot;./data/hp/test_burn_in_time/no_burn_in.txt&quot;</span>, 0);</div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="stringliteral">&quot;./data/hp/test_burn_in_time/no_burn_in.txt&quot;</span>, 0);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">/** @brief Test how much Openmp speeds up.*/</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95"> 60</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a>()</div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95"> 60</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a>()</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>{</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>{</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Test the openmp speedup</span></div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Test the openmp speedup</span></div>
@ -167,49 +147,46 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html',''); initResiza
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">double</span> t0, t1, t2;</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">double</span> t0, t1, t2;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">int</span> tries = 5;</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">int</span> tries = 5;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> t0 = omp_get_wtime();</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> t0 = omp_get_wtime();</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; tries; i++)</div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; tries; i++)</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">(</a>20<a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">,</a> 1.0<a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">,</a> 10000<a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">)</a>;</div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> montecarlo::mcmc_serial(20, 1.0, 10000);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> t1 = omp_get_wtime();</div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> t1 = omp_get_wtime();</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; tries; i++)</div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; tries; i++)</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">(</a>20<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">,</a> 1.0<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">,</a> 10000<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">)</a>;</div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> montecarlo::mcmc_parallel(20, 1.0, 10000);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> t2 = omp_get_wtime();</div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> t2 = omp_get_wtime();</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div> <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time serial : &quot;</span> &lt;&lt; (t1 - t0) / tries &lt;&lt; <span class="stringliteral">&quot; seconds&quot;</span></div> <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time serial : &quot;</span> &lt;&lt; (t1 - t0) / tries &lt;&lt; <span class="stringliteral">&quot; seconds&quot;</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time parallel : &quot;</span> &lt;&lt; (t2 - t1) / tries &lt;&lt; <span class="stringliteral">&quot; seconds&quot;</span></div> <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time parallel : &quot;</span> &lt;&lt; (t2 - t1) / tries &lt;&lt; <span class="stringliteral">&quot; seconds&quot;</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Speedup parallel: &quot;</span> &lt;&lt; (t1 - t0) / (t2 - t1) &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Speedup parallel: &quot;</span> &lt;&lt; (t1 - t0) / (t2 - t1) &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>}</div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>}</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div> <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment">/** @brief Create data for studying phase transition.</span></div>
<div class="line"><span class="lineno"> 82</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d"> 83</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a>()</div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d"> 83</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a>()</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>{</div> <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>{</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">double</span> t0, t1;</div> <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">double</span> t0, t1;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div> <div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> t0 = omp_get_wtime();</div> <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> t0 = omp_get_wtime();</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// Phase transition</span></div> <div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// Phase transition</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(20, 2.1, 2.4, 40, 1e4,</div> <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> montecarlo::phase_transition(20, 2.1, 2.4, 40, 1e4,</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>,</div> <div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> montecarlo::mcmc_parallel,</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_20.txt&quot;</span>);</div> <div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_20.txt&quot;</span>);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(40, 2.1, 2.4, 40, 1e4,</div> <div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> montecarlo::phase_transition(40, 2.1, 2.4, 40, 1e4,</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>,</div> <div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> montecarlo::mcmc_parallel,</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_40.txt&quot;</span>);</div> <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_40.txt&quot;</span>);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(60, 2.1, 2.4, 40, 1e4,</div> <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> montecarlo::phase_transition(60, 2.1, 2.4, 40, 1e4,</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>,</div> <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> montecarlo::mcmc_parallel,</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_60.txt&quot;</span>);</div> <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_60.txt&quot;</span>);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(80, 2.1, 2.4, 40, 1e4,</div> <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> montecarlo::phase_transition(80, 2.1, 2.4, 40, 1e4,</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>,</div> <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> montecarlo::mcmc_parallel,</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_80.txt&quot;</span>);</div> <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_80.txt&quot;</span>);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(100, 2.1, 2.4, 40, 1e4,</div> <div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> montecarlo::phase_transition(100, 2.1, 2.4, 40, 1e4,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>,</div> <div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> montecarlo::mcmc_parallel,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_100.txt&quot;</span>);</div> <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="stringliteral">&quot;./data/hp/phase_transition/size_100.txt&quot;</span>);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> t1 = omp_get_wtime();</div> <div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> t1 = omp_get_wtime();</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div> <div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time: &quot;</span> &lt;&lt; t1 - t0 &lt;&lt; std::endl;</div> <div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time: &quot;</span> &lt;&lt; t1 - t0 &lt;&lt; std::endl;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>}</div> <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>}</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div> <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment">/** @brief A function that displays how to use the program and quits.*/</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 110</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div> <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 110</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{</div> <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot; OPTION ...\n&quot;</span></div> <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot; OPTION ...\n&quot;</span></div>
@ -224,8 +201,7 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html',''); initResiza
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> exit(-1);</div> <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> exit(-1);</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span>}</div> <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span>}</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div> <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment">/** @brief The main function.*/</span></div> <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 125</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 125</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span>{</div> <div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span>{</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">static</span> <span class="keyword">struct </span>option long_options[] = {</div> <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">static</span> <span class="keyword">struct </span>option long_options[] = {</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> {<span class="stringliteral">&quot;all&quot;</span>, no_argument, 0, 0},</div> <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> {<span class="stringliteral">&quot;all&quot;</span>, no_argument, 0, 0},</div>
@ -244,52 +220,51 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html',''); initResiza
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div> <div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span> (c == -1)</div> <div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span> (c == -1)</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (c == <span class="stringliteral">&#39;h&#39;</span>)</div> <div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;h&#39;</span>)</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> usage(argv[0]);</div> <div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div> <div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">switch</span> (option_index) {</div> <div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">switch</span> (option_index) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">case</span> 0:</div> <div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">case</span> 0:</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a><a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">(</a><a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">)</a>;</div> <div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a>();</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a><a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">(</a><a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">)</a>;</div> <div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a>();</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a><a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">(</a><a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">)</a>;</div> <div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a>();</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a><a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">(</a><a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">)</a>;</div> <div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a>();</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a><a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">(</a><a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">)</a>;</div> <div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a>();</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">case</span> 1:</div> <div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">case</span> 1:</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a><a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">(</a><a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">)</a>;</div> <div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <a class="code hl_function" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a>();</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">case</span> 2:</div> <div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">case</span> 2:</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a><a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">(</a><a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">)</a>;</div> <div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_function" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a>();</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">case</span> 3:</div> <div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">case</span> 3:</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a><a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">(</a><a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">)</a>;</div> <div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <a class="code hl_function" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a>();</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">case</span> 4:</div> <div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">case</span> 4:</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a><a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">(</a><a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">)</a>;</div> <div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_function" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a>();</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">case</span> 5:</div> <div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">case</span> 5:</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a><a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">(</a><a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">)</a>;</div> <div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_function" href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a>();</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">case</span> 6: <span class="comment">// Not a mistake. This just goes to the default.</span></div> <div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">case</span> 6: <span class="comment">// Not a mistake. This just goes to the default.</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> usage(argv[0]);</div> <div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div> <div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div> <div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div> <div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">return</span> 0;</div> <div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>}</div> <div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>}</div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div> <div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="ttc" id="amain_8cpp_html_a0dfa85080578dffff23b68e372cece95"><div class="ttname"><a href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a></div><div class="ttdeci">void test_parallel_speedup()</div><div class="ttdoc">Test how much Openmp speeds up.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00060">main.cpp:60</a></div></div> <div class="ttc" id="amain_8cpp_html_a0dfa85080578dffff23b68e372cece95"><div class="ttname"><a href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a></div><div class="ttdeci">void test_parallel_speedup()</div><div class="ttdoc">Test how much Openmp speeds up.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00060">main.cpp:60</a></div></div>
<div class="ttc" id="amain_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00125">main.cpp:125</a></div></div>
<div class="ttc" id="amain_8cpp_html_a4f8ea24364d72024915d3753a572cc5b"><div class="ttname"><a href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a></div><div class="ttdeci">void create_pd_estimate_data()</div><div class="ttdoc">Create the data used to estimate the probability distribution for tempratures 1.0 and 2....</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00037">main.cpp:37</a></div></div> <div class="ttc" id="amain_8cpp_html_a4f8ea24364d72024915d3753a572cc5b"><div class="ttname"><a href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a></div><div class="ttdeci">void create_pd_estimate_data()</div><div class="ttdoc">Create the data used to estimate the probability distribution for tempratures 1.0 and 2....</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00037">main.cpp:37</a></div></div>
<div class="ttc" id="amain_8cpp_html_a68406fc2dd8de5849c3984658c171f32"><div class="ttname"><a href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a></div><div class="ttdeci">void create_burn_in_time_data()</div><div class="ttdoc">Create the data for the burn-in time for temperatures 1.0 and 2.4 for both unordered and ordered init...</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00021">main.cpp:21</a></div></div> <div class="ttc" id="amain_8cpp_html_a68406fc2dd8de5849c3984658c171f32"><div class="ttname"><a href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a></div><div class="ttdeci">void create_burn_in_time_data()</div><div class="ttdoc">Create the data for the burn-in time for temperatures 1.0 and 2.4 for both unordered and ordered init...</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00021">main.cpp:21</a></div></div>
<div class="ttc" id="amain_8cpp_html_a746d8dc451b2b2536abbb1ff1acaf861"><div class="ttname"><a href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a></div><div class="ttdeci">void test_burn_in_time()</div><div class="ttdoc">Create data using the same parameters except one uses burn-in time, while the other doesn't.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00049">main.cpp:49</a></div></div> <div class="ttc" id="amain_8cpp_html_a746d8dc451b2b2536abbb1ff1acaf861"><div class="ttname"><a href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a></div><div class="ttdeci">void test_burn_in_time()</div><div class="ttdoc">Create data using the same parameters except one uses burn-in time, while the other doesn't.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00049">main.cpp:49</a></div></div>
<div class="ttc" id="amain_8cpp_html_a9d62cf1399596f4c5a39abdd3196d76d"><div class="ttname"><a href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a></div><div class="ttdeci">void create_phase_transition_data()</div><div class="ttdoc">Create data for studying phase transition.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00083">main.cpp:83</a></div></div> <div class="ttc" id="amain_8cpp_html_a9d62cf1399596f4c5a39abdd3196d76d"><div class="ttname"><a href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a></div><div class="ttdeci">void create_phase_transition_data()</div><div class="ttdoc">Create data for studying phase transition.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00083">main.cpp:83</a></div></div>
<div class="ttc" id="amain_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00110">main.cpp:110</a></div></div> <div class="ttc" id="amain_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00110">main.cpp:110</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a34e9c3e24f26760693266b8a7b6b3d21"><div class="ttname"><a href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">montecarlo::phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, int cycles, std::function&lt; data_t(int, double, int, int)&gt; monte_carlo, std::string outfile, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Perform the MCMC algorithm using a range of temperatures.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00155">monte_carlo.cpp:155</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html"><div class="ttname"><a href="monte__carlo_8hpp.html">monte_carlo.hpp</a></div><div class="ttdoc">Functions for Monte Carlo simulations.</div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae1e7f904ecfc3d8f3c4dd1ef155dd771"><div class="ttname"><a href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">montecarlo::mcmc_parallel</a></div><div class="ttdeci">data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00127">monte_carlo.cpp:127</a></div></div> <div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae67483ff00d1b0594d543261c8283ffd"><div class="ttname"><a href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">montecarlo::mcmc_serial</a></div><div class="ttdeci">data_t mcmc_serial(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00108">monte_carlo.cpp:108</a></div></div> <div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_aea2dd1b5fac7c45633bc6f8dc4541226"><div class="ttname"><a href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">montecarlo::pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Estimate the probability distribution for the energy.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00077">monte_carlo.cpp:77</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -130,7 +130,7 @@ Functions</h2></td></tr>
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000008">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000009">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="mcmc__progression_8cpp_source.html">mcmc_progression.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="mcmc__progression_8cpp_source.html">mcmc_progression.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2> </div><h2 class="groupheader">Function Documentation</h2>

View File

@ -101,28 +101,16 @@ $(document).ready(function(){initNavTree('mcmc__progression_8cpp_source.html',''
<div class="headertitle"><div class="title">mcmc_progression.cpp</div></div> <div class="headertitle"><div class="title">mcmc_progression.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="mcmc__progression_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file mcmc_progression.cpp</span></div> <a href="mcmc__progression_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &quot;<a class="code" href="monte__carlo_8hpp.html">monte_carlo.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Execute the mcmc algorithm and write data to file after each</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> * Monte Carlo cycle.</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 12</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="monte__carlo_8hpp.html" title="Functions for Monte Carlo simulations.">&quot;monte_carlo.hpp&quot;</a></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">getopt</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;getopt.h&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">omp</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;omp.h&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">string</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">/** @brief A function that displays how to use the program and quits.*/</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="mcmc__progression_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 22</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="mcmc__progression_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="mcmc__progression_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 22</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> &lt;&lt; <span class="stringliteral">&quot; &lt;temperature&gt; &lt;lattice size&gt; &quot;</span></div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> &lt;&lt; <span class="stringliteral">&quot; &lt;temperature&gt; &lt;lattice size&gt; &quot;</span></div>
@ -131,8 +119,7 @@ $(document).ready(function(){initNavTree('mcmc__progression_8cpp_source.html',''
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> exit(-1);</div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> exit(-1);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">/** @brief The main function.*/</span></div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="mcmc__progression_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 32</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="mcmc__progression_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 32</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>{</div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>{</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// Command options</span></div> <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// Command options</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">struct </span>option long_options[] = {</div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">struct </span>option long_options[] = {</div>
@ -152,17 +139,17 @@ $(document).ready(function(){initNavTree('mcmc__progression_8cpp_source.html',''
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">switch</span> (option_index) {</div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">switch</span> (option_index) {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">case</span> 0: <span class="comment">// Not a mistake. This just goes to the default.</span></div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">case</span> 0: <span class="comment">// Not a mistake. This just goes to the default.</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> usage(argv[0]);</div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_function" href="mcmc__progression_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> }</div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> }</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">case</span> <span class="stringliteral">&#39;h&#39;</span>:</div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;h&#39;</span>:</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> usage(argv[0]);</div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_function" href="mcmc__progression_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Check that the number of arguments is at least 6.</span></div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Check that the number of arguments is at least 6.</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span> (argc &lt; 6) {</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span> (argc &lt; 6) {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> usage(argv[0]);</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_function" href="mcmc__progression_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">bool</span> ordered = <span class="keyword">false</span>;</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">bool</span> ordered = <span class="keyword">false</span>;</div>
@ -182,7 +169,7 @@ $(document).ready(function(){initNavTree('mcmc__progression_8cpp_source.html',''
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (ordered) {</div> <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (ordered) {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_define" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">DEBUG</a>(<span class="stringliteral">&quot;Hello&quot;</span>);</div> <div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_define" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">DEBUG</a>(<span class="stringliteral">&quot;Hello&quot;</span>);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">progression</a><a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">(</a>temp<a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">,</a> L<a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">,</a> cycles<a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">,</a> 1<a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">,</a> outfile<a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">,</a> burn_in_time<a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">)</a>;</div> <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> montecarlo::progression(temp, L, cycles, 1, outfile, burn_in_time);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">else</span> {</div> <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> montecarlo::progression(temp, L, cycles, outfile, burn_in_time);</div> <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> montecarlo::progression(temp, L, cycles, outfile, burn_in_time);</div>
@ -192,9 +179,11 @@ $(document).ready(function(){initNavTree('mcmc__progression_8cpp_source.html',''
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time: &quot;</span> &lt;&lt; t1 - t0 &lt;&lt; <span class="stringliteral">&quot; seconds\n&quot;</span>;</div> <div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time: &quot;</span> &lt;&lt; t1 - t0 &lt;&lt; <span class="stringliteral">&quot; seconds\n&quot;</span>;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>}</div> <div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>}</div>
<div class="ttc" id="amain_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00125">main.cpp:125</a></div></div> <div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="ttc" id="amain_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00110">main.cpp:110</a></div></div> <div class="ttc" id="amcmc__progression_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="mcmc__progression_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="mcmc__progression_8cpp_source.html#l00022">mcmc_progression.cpp:22</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a1549fc386bd3cdd1cdbe0261b9dd8415"><div class="ttname"><a href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">montecarlo::progression</a></div><div class="ttdeci">void progression(double T, int L, int cycles, int value, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Write the expected values for each Monte Carlo cycles to file.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00046">monte_carlo.cpp:46</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html"><div class="ttname"><a href="monte__carlo_8hpp.html">monte_carlo.hpp</a></div><div class="ttdoc">Functions for Monte Carlo simulations.</div></div>
<div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div>
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
<div class="ttc" id="autils_8hpp_html_aecc1f7a8a2493b9e021e5bff76a00a5b"><div class="ttname"><a href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">DEBUG</a></div><div class="ttdeci">#define DEBUG(msg)</div><div class="ttdoc">Writes a debug message.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8hpp_source.html#l00039">utils.hpp:39</a></div></div> <div class="ttc" id="autils_8hpp_html_aecc1f7a8a2493b9e021e5bff76a00a5b"><div class="ttname"><a href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">DEBUG</a></div><div class="ttdeci">#define DEBUG(msg)</div><div class="ttdoc">Writes a debug message.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8hpp_source.html#l00039">utils.hpp:39</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->

View File

@ -137,7 +137,7 @@ Functions</h2></td></tr>
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000009">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000010">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2> </div><h2 class="groupheader">Function Documentation</h2>

View File

@ -101,18 +101,8 @@ $(document).ready(function(){initNavTree('monte__carlo_8cpp_source.html',''); in
<div class="headertitle"><div class="title">monte_carlo.cpp</div></div> <div class="headertitle"><div class="title">monte_carlo.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="monte__carlo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file monte_carlo.cpp</span></div> <a href="monte__carlo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="monte__carlo_8hpp.html">monte_carlo.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Implementation of the monte carlo functions</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="monte__carlo_8hpp.html" title="Functions for Monte Carlo simulations.">&quot;monte_carlo.hpp&quot;</a></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span>montecarlo {</div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span>montecarlo {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d"> 15</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keyword">const</span> std::string filename,</div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d"> 15</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keyword">const</span> std::string filename,</div>
@ -123,30 +113,30 @@ $(document).ready(function(){initNavTree('monte__carlo_8cpp_source.html',''); in
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">int</span> n_spins = L * L;</div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">int</span> n_spins = L * L;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// File stuff</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// File stuff</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> std::string directory = utils<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">::</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">(</a>filename<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">)</a>;</div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> std::string directory = utils::dirname(filename);</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::ofstream ofile;</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::ofstream ofile;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">(</a>L<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">,</a> T<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">)</a>;</div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising(L, T);</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Create path and open file</span></div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Create path and open file</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> utils<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">::</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">(</a>directory<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">)</a>;</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> utils::mkpath(directory);</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> ofile.open(filename);</div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> ofile.open(filename);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; burn_in_time; i++) {</div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; burn_in_time; i++) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> ising<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div> <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Loop through cycles</span></div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Loop through cycles</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">for</span> (size_t i = 1; i &lt;= cycles; i++) {</div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt;= cycles; i++) {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> data <a class="code hl_function" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">+=</a> ising<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> data += ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> tmp = data / (i * n_spins);</div> <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> tmp = data / (i * n_spins);</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> ofile &lt;&lt; i &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">.</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> ofile &lt;&lt; i &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> }</div> <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> }</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> ofile.close();</div> <div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> ofile.close();</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div> <div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415"> 46</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keywordtype">int</span> value,</div> <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415"> 46</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keywordtype">int</span> value,</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">const</span> std::string filename, <span class="keywordtype">int</span> burn_in_time)</div> <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">const</span> std::string filename, <span class="keywordtype">int</span> burn_in_time)</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>{</div> <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>{</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// Set some variables</span></div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// Set some variables</span></div>
@ -154,25 +144,25 @@ $(document).ready(function(){initNavTree('monte__carlo_8cpp_source.html',''); in
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">int</span> n_spins = L * L;</div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">int</span> n_spins = L * L;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// File stuff</span></div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// File stuff</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> std::string directory = utils<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">::</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">(</a>filename<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">)</a>;</div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> std::string directory = utils::dirname(filename);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> std::ofstream ofile;</div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> std::ofstream ofile;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising<a class="code hl_function" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">(</a>L<a class="code hl_function" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">,</a> T<a class="code hl_function" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">,</a> value<a class="code hl_function" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">)</a>;</div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising(L, T, value);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; burn_in_time; i++) {</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; burn_in_time; i++) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> ising<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// Create path and open file</span></div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// Create path and open file</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> utils<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">::</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">(</a>directory<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">)</a>;</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> utils::mkpath(directory);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> ofile.open(filename);</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> ofile.open(filename);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Loop through cycles</span></div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Loop through cycles</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">for</span> (size_t i = 1; i &lt;= cycles; i++) {</div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt;= cycles; i++) {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> data <a class="code hl_function" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">+=</a> ising<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> data += ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> tmp = data / (i * n_spins);</div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> tmp = data / (i * n_spins);</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> ofile &lt;&lt; i &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">.</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> ofile &lt;&lt; i &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; tmp<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> }</div> <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> }</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> ofile.close();</div> <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> ofile.close();</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span>}</div> <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span>}</div>
@ -185,24 +175,24 @@ $(document).ready(function(){initNavTree('monte__carlo_8cpp_source.html',''); in
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">int</span> n_spins = L * L;</div> <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">int</span> n_spins = L * L;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// File stuff</span></div> <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// File stuff</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> std::string directory = utils<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">::</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">(</a>filename<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">)</a>;</div> <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> std::string directory = utils::dirname(filename);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> std::ofstream ofile;</div> <div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> std::ofstream ofile;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div> <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">(</a>L<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">,</a> T<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">)</a>;</div> <div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising(L, T);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; burn_in_time; i++) {</div> <div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; burn_in_time; i++) {</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> ising<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> }</div> <div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> }</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div> <div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Create path and open file</span></div> <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Create path and open file</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> utils<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">::</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">(</a>directory<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">)</a>;</div> <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> utils::mkpath(directory);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> ofile.open(filename);</div> <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> ofile.open(filename);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div> <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// Loop through cycles</span></div> <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// Loop through cycles</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">for</span> (size_t i = 1; i &lt;= cycles; i++) {</div> <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt;= cycles; i++) {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> data = ising<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a> / n_spins;</div> <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> data = ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>() / n_spins;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> ofile &lt;&lt; data<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; data<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; data<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">.</a><a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; data<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a></div> <div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> ofile &lt;&lt; data.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; data.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; data.<a class="code hl_variable" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; data.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; data<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; data.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div> <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> ofile.close();</div> <div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> ofile.close();</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>}</div> <div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>}</div>
@ -211,18 +201,18 @@ $(document).ready(function(){initNavTree('monte__carlo_8cpp_source.html',''); in
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd"> 108</a></span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> cycles, <span class="keywordtype">int</span> burn_in_time)</div> <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd"> 108</a></span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> cycles, <span class="keywordtype">int</span> burn_in_time)</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span>{</div> <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span>{</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div> <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> model<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">(</a>L<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">,</a> T<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">)</a>;</div> <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> model(L, T);</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div> <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; burn_in_time; i++) {</div> <div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; burn_in_time; i++) {</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> model<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> model.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div> <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div> <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">double</span> E, M;</div> <div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">double</span> E, M;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; (uint)cycles; i++) {</div> <div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; (uint)cycles; i++) {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> data <a class="code hl_function" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">+=</a> model<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> data += model.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div> <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div> <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">double</span> norm = 1. / (<span class="keywordtype">double</span>)cycles;</div> <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">double</span> norm = 1. / (double)cycles;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div> <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">return</span> data * norm;</div> <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">return</span> data * norm;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span>}</div> <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span>}</div>
@ -230,27 +220,27 @@ $(document).ready(function(){initNavTree('monte__carlo_8cpp_source.html',''); in
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771"> 127</a></span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> cycles, <span class="keywordtype">int</span> burn_in_time)</div> <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771"> 127</a></span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> cycles, <span class="keywordtype">int</span> burn_in_time)</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span>{</div> <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span>{</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div> <div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="preprocessor">#</span><span class="preprocessor">pragma</span> <span class="preprocessor">omp</span> <span class="preprocessor">parallel</span></div> <div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="preprocessor">#pragma omp parallel</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> {</div> <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// Each thread creates an instance of IsingModel.</span></div> <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// Each thread creates an instance of IsingModel.</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> model<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">(</a>L<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">,</a> T<a class="code hl_function" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">)</a>;</div> <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> model(L, T);</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div> <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Each thread runs the Metropolis algorithm before starting to collect</span></div> <div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Each thread runs the Metropolis algorithm before starting to collect</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// samples</span></div> <div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// samples</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; burn_in_time; i++) {</div> <div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; burn_in_time; i++) {</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> model<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> model.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div> <div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div> <div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// Now each thread work on one loop together, but using their own</span></div> <div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// Now each thread work on one loop together, but using their own</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// instances of things, but the total of cycles add up.</span></div> <div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// instances of things, but the total of cycles add up.</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// static ensure that each thread gets the same amount of iterations</span></div> <div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// static ensure that each thread gets the same amount of iterations</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor">#</span><span class="preprocessor">pragma</span> <span class="preprocessor">omp</span> <span class="preprocessor">for</span> <span class="preprocessor">schedule</span><span class="preprocessor">(</span><span class="preprocessor">static</span><span class="preprocessor">)</span> <span class="preprocessor">reduction</span><span class="preprocessor">(</span><span class="preprocessor">+</span> <span class="preprocessor">:</span> <span class="preprocessor">data</span><span class="preprocessor">)</span></div> <div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor">#pragma omp for schedule(static) reduction(+ : data)</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; (uint)cycles; i++) {</div> <div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; (uint)cycles; i++) {</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> data <a class="code hl_function" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">+=</a> model<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> data += model.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div> <div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div> <div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div> <div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordtype">double</span> norm = 1. / (<span class="keywordtype">double</span>)cycles;</div> <div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordtype">double</span> norm = 1. / (double)cycles;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div> <div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span> data * norm;</div> <div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span> data * norm;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span>}</div> <div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span>}</div>
@ -265,47 +255,41 @@ $(document).ready(function(){initNavTree('monte__carlo_8cpp_source.html',''); in
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div> <div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div> <div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div> <div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> utils<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">::</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">(</a>utils<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">::</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">(</a>outfile<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">)</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">)</a>;</div> <div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> utils::mkpath(utils::dirname(outfile));</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> ofile.open(outfile);</div> <div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> ofile.open(outfile);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div> <div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">double</span> temp, CV, X, E_var, M_var;</div> <div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">double</span> temp, CV, X, E_var, M_var;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div> <div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">using </span>utils::scientific_format;</div> <div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">using </span>utils::scientific_format;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; points; i++) {</div> <div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; points; i++) {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> temp = start + dt * i;</div> <div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> temp = start + dt * i;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> data = monte_carlo(L, temp, cycles, burn_in_time);</div> <div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> data = monte_carlo(L, temp, cycles, burn_in_time);</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> E_var = (data<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> - data<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> * data<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>) / (<span class="keywordtype">double</span>)N;</div> <div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> E_var = (data.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> - data.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> * data.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>) / (<span class="keywordtype">double</span>)N;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> M_var = (data<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> - data<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> * data<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>) / (<span class="keywordtype">double</span>)N;</div> <div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> M_var = (data.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> - data.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> * data.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>) / (<span class="keywordtype">double</span>)N;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div> <div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> ofile &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>temp<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> ofile &lt;&lt; scientific_format(temp) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>data<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> / (<span class="keywordtype">double</span>)N<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> &lt;&lt; scientific_format(data.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> / (<span class="keywordtype">double</span>)N) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>data<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> / N<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> &lt;&lt; scientific_format(data.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> / N) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>E_var / (temp * temp)<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> &lt;&lt; scientific_format(E_var / (temp * temp)) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>M_var / temp<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> &lt;&lt; scientific_format(M_var / temp) &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> }</div> <div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> }</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> ofile.close();</div> <div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> ofile.close();</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span>}</div> <div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span>}</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span>} <span class="comment">// namespace montecarlo</span></div> <div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span>} <span class="comment">// namespace montecarlo</span></div>
<div class="ttc" id="aclassIsingModel_html"><div class="ttname"><a href="classIsingModel.html">IsingModel</a></div><div class="ttdoc">The Ising model in 2 dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00036">IsingModel.hpp:36</a></div></div> <div class="ttc" id="aclassIsingModel_html"><div class="ttname"><a href="classIsingModel.html">IsingModel</a></div><div class="ttdoc">The Ising model in 2 dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00036">IsingModel.hpp:36</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a46c9446e94854452f715d307c77c1c15"><div class="ttname"><a href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel(int L, double T, int val)</div><div class="ttdoc">Constructor for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00031">IsingModel.cpp:31</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a4a39ee7fbfbbf566f75bc28900ca9ea5"><div class="ttname"><a href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel(int L, double T)</div><div class="ttdoc">Constructor for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00019">IsingModel.cpp:19</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div> <div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div> <div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="aclassdata__t_html_a586475e0f71322dffda2e75f228ab24b"><div class="ttname"><a href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">data_t::M_abs</a></div><div class="ttdeci">double M_abs</div><div class="ttdoc">Absolute Magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00025">data_type.hpp:25</a></div></div> <div class="ttc" id="aclassdata__t_html_a586475e0f71322dffda2e75f228ab24b"><div class="ttname"><a href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">data_t::M_abs</a></div><div class="ttdeci">double M_abs</div><div class="ttdoc">Absolute Magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00025">data_type.hpp:25</a></div></div>
<div class="ttc" id="aclassdata__t_html_a6c1a196d96e177b11ca98c61fae35a2e"><div class="ttname"><a href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">data_t::E</a></div><div class="ttdeci">double E</div><div class="ttdoc">Energy.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00021">data_type.hpp:21</a></div></div> <div class="ttc" id="aclassdata__t_html_a6c1a196d96e177b11ca98c61fae35a2e"><div class="ttname"><a href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">data_t::E</a></div><div class="ttdeci">double E</div><div class="ttdoc">Energy.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00021">data_type.hpp:21</a></div></div>
<div class="ttc" id="aclassdata__t_html_a6cb96b4ff750ab29041038ca53f307cb"><div class="ttname"><a href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">data_t::operator+=</a></div><div class="ttdeci">data_t &amp; operator+=(const data_t &amp;b)</div><div class="ttdoc">Overload of the addition equals operator.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00150">data_type.hpp:150</a></div></div>
<div class="ttc" id="aclassdata__t_html_a71ae3cd4460f2c66239500c11804e70b"><div class="ttname"><a href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">data_t::M2</a></div><div class="ttdeci">double M2</div><div class="ttdoc">Magnetization squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00024">data_type.hpp:24</a></div></div> <div class="ttc" id="aclassdata__t_html_a71ae3cd4460f2c66239500c11804e70b"><div class="ttname"><a href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">data_t::M2</a></div><div class="ttdeci">double M2</div><div class="ttdoc">Magnetization squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00024">data_type.hpp:24</a></div></div>
<div class="ttc" id="aclassdata__t_html_abb622f9c6cc5ffb9dddb151d2e202f72"><div class="ttname"><a href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">data_t::E2</a></div><div class="ttdeci">double E2</div><div class="ttdoc">Energy squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00023">data_type.hpp:23</a></div></div> <div class="ttc" id="aclassdata__t_html_abb622f9c6cc5ffb9dddb151d2e202f72"><div class="ttname"><a href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">data_t::E2</a></div><div class="ttdeci">double E2</div><div class="ttdoc">Energy squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00023">data_type.hpp:23</a></div></div>
<div class="ttc" id="aclassdata__t_html_ad08d2488bf913c626157471cf6e8a46a"><div class="ttname"><a href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">data_t::M</a></div><div class="ttdeci">double M</div><div class="ttdoc">Magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00022">data_type.hpp:22</a></div></div> <div class="ttc" id="aclassdata__t_html_ad08d2488bf913c626157471cf6e8a46a"><div class="ttname"><a href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">data_t::M</a></div><div class="ttdeci">double M</div><div class="ttdoc">Magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00022">data_type.hpp:22</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a1549fc386bd3cdd1cdbe0261b9dd8415"><div class="ttname"><a href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">montecarlo::progression</a></div><div class="ttdeci">void progression(double T, int L, int cycles, int value, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Write the expected values for each Monte Carlo cycles to file.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00046">monte_carlo.cpp:46</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html"><div class="ttname"><a href="monte__carlo_8hpp.html">monte_carlo.hpp</a></div><div class="ttdoc">Functions for Monte Carlo simulations.</div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a34e9c3e24f26760693266b8a7b6b3d21"><div class="ttname"><a href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">montecarlo::phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, int cycles, std::function&lt; data_t(int, double, int, int)&gt; monte_carlo, std::string outfile, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Perform the MCMC algorithm using a range of temperatures.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00155">monte_carlo.cpp:155</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_a34e9c3e24f26760693266b8a7b6b3d21"><div class="ttname"><a href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">montecarlo::phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, int cycles, std::function&lt; data_t(int, double, int, int)&gt; monte_carlo, std::string outfile, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Perform the MCMC algorithm using a range of temperatures.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00155">monte_carlo.cpp:155</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a781d946de16211ba18ad6671a5b6838d"><div class="ttname"><a href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">montecarlo::progression</a></div><div class="ttdeci">void progression(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Write the expected values for each Monte Carlo cycles to file.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00015">monte_carlo.cpp:15</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_a781d946de16211ba18ad6671a5b6838d"><div class="ttname"><a href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">montecarlo::progression</a></div><div class="ttdeci">void progression(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Write the expected values for each Monte Carlo cycles to file.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00015">monte_carlo.cpp:15</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae1e7f904ecfc3d8f3c4dd1ef155dd771"><div class="ttname"><a href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">montecarlo::mcmc_parallel</a></div><div class="ttdeci">data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00127">monte_carlo.cpp:127</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_ae1e7f904ecfc3d8f3c4dd1ef155dd771"><div class="ttname"><a href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">montecarlo::mcmc_parallel</a></div><div class="ttdeci">data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00127">monte_carlo.cpp:127</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae67483ff00d1b0594d543261c8283ffd"><div class="ttname"><a href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">montecarlo::mcmc_serial</a></div><div class="ttdeci">data_t mcmc_serial(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00108">monte_carlo.cpp:108</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_ae67483ff00d1b0594d543261c8283ffd"><div class="ttname"><a href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">montecarlo::mcmc_serial</a></div><div class="ttdeci">data_t mcmc_serial(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00108">monte_carlo.cpp:108</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_aea2dd1b5fac7c45633bc6f8dc4541226"><div class="ttname"><a href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">montecarlo::pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Estimate the probability distribution for the energy.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00077">monte_carlo.cpp:77</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_aea2dd1b5fac7c45633bc6f8dc4541226"><div class="ttname"><a href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">montecarlo::pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Estimate the probability distribution for the energy.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00077">monte_carlo.cpp:77</a></div></div>
<div class="ttc" id="autils_8hpp_html_a2b45adc86b70f42021582994e83fa00d"><div class="ttname"><a href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">utils::mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00032">utils.cpp:32</a></div></div>
<div class="ttc" id="autils_8hpp_html_a3529a74fd2a25d24de73d9d4e1c90835"><div class="ttname"><a href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00016">utils.cpp:16</a></div></div>
<div class="ttc" id="autils_8hpp_html_aed026119193a9bbe076671809ff0f430"><div class="ttname"><a href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">utils::dirname</a></div><div class="ttdeci">std::string dirname(const std::string &amp;path)</div><div class="ttdoc">Get the directory name of the path.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00058">utils.cpp:58</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -148,7 +148,7 @@ Functions</h2></td></tr>
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000006">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000003">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="monte__carlo_8hpp_source.html">monte_carlo.hpp</a>.</p> <p class="definition">Definition in file <a class="el" href="monte__carlo_8hpp_source.html">monte_carlo.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2> </div><h2 class="groupheader">Macro Definition Documentation</h2>

View File

@ -101,124 +101,53 @@ $(document).ready(function(){initNavTree('monte__carlo_8hpp_source.html',''); in
<div class="headertitle"><div class="title">monte_carlo.hpp</div></div> <div class="headertitle"><div class="title">monte_carlo.hpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="monte__carlo_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file monte_carlo.hpp</span></div> <a href="monte__carlo_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifndef __MONTE_CARLO__</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define __MONTE_CARLO__</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Functions for Monte Carlo simulations.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">ifndef</span> <span class="preprocessor">__MONTE_CARLO__</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">__MONTE_CARLO__</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="IsingModel_8hpp.html" title="The definition of the Ising model.">&quot;IsingModel.hpp&quot;</a></div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &quot;<a class="code" href="IsingModel_8hpp.html">IsingModel.hpp</a>&quot;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">functional</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">omp</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;omp.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">string</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">// #define BURN_IN_TIME 12500</span></div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">// #define BURN_IN_TIME 12500</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">BURN_IN_TIME</span> 5000</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#define BURN_IN_TIME 5000</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">namespace </span>montecarlo {</div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">namespace </span>montecarlo {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">/** @brief Write the expected values for each Monte Carlo cycles to file.</span></div>
<div class="line"><span class="lineno"> 28</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 29</span><span class="comment"> * @param T Temperature</span></div>
<div class="line"><span class="lineno"> 30</span><span class="comment"> * @param L The size of the lattice</span></div>
<div class="line"><span class="lineno"> 31</span><span class="comment"> * @param cycles The amount of Monte Carlo cycles to do</span></div>
<div class="line"><span class="lineno"> 32</span><span class="comment"> * @param filename The file to write to</span></div>
<div class="line"><span class="lineno"> 33</span><span class="comment"> * @param burn_in_time The burn-in time to use</span></div>
<div class="line"><span class="lineno"> 34</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keyword">const</span> std::string filename,</div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keyword">const</span> std::string filename,</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">int</span> burn_in_time = <a class="code hl_define" href="monte__carlo_8hpp.html#a362b5ad7de095387fcbc573632a19cbf">BURN_IN_TIME</a>);</div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">int</span> burn_in_time = BURN_IN_TIME);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">/** @brief Write the expected values for each Monte Carlo cycles to file.</span></div> <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keywordtype">int</span> value,</div>
<div class="line"><span class="lineno"> 39</span><span class="comment"> *</span></div> <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">const</span> std::string filename, <span class="keywordtype">int</span> burn_in_time = BURN_IN_TIME);</div>
<div class="line"><span class="lineno"> 40</span><span class="comment"> * @param T Temperature</span></div>
<div class="line"><span class="lineno"> 41</span><span class="comment"> * @param L The size of the lattice</span></div>
<div class="line"><span class="lineno"> 42</span><span class="comment"> * @param cycles The amount of Monte Carlo cycles to do</span></div>
<div class="line"><span class="lineno"> 43</span><span class="comment"> * @param value The value to set the elements in the lattice</span></div>
<div class="line"><span class="lineno"> 44</span><span class="comment"> * @param filename The file to write to</span></div>
<div class="line"><span class="lineno"> 45</span><span class="comment"> * @param burn_in_time The burn-in time to use</span></div>
<div class="line"><span class="lineno"> 46</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keywordtype">int</span> value,</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">const</span> std::string filename, <span class="keywordtype">int</span> burn_in_time = <a class="code hl_define" href="monte__carlo_8hpp.html#a362b5ad7de095387fcbc573632a19cbf">BURN_IN_TIME</a>);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment">/** @brief Estimate the probability distribution for the energy.</span></div>
<div class="line"><span class="lineno"> 51</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 52</span><span class="comment"> * @param T The temperature of the Ising model</span></div>
<div class="line"><span class="lineno"> 53</span><span class="comment"> * @param L The size of the lattice</span></div>
<div class="line"><span class="lineno"> 54</span><span class="comment"> * @param cycles The amount of Monte Carlo cycles to do</span></div>
<div class="line"><span class="lineno"> 55</span><span class="comment"> * @param filename The file to write to</span></div>
<div class="line"><span class="lineno"> 56</span><span class="comment"> * @param burn_in_time The burn-in time to use</span></div>
<div class="line"><span class="lineno"> 57</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">pd_estimate</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keyword">const</span> std::string filename,</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">pd_estimate</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles, <span class="keyword">const</span> std::string filename,</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">int</span> burn_in_time = <a class="code hl_define" href="monte__carlo_8hpp.html#a362b5ad7de095387fcbc573632a19cbf">BURN_IN_TIME</a>);</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">int</span> burn_in_time = BURN_IN_TIME);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">/** @brief Execute the Metropolis algorithm for a certain amount of Monte</span></div>
<div class="line"><span class="lineno"> 62</span><span class="comment"> * Carlo cycles.</span></div>
<div class="line"><span class="lineno"> 63</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 64</span><span class="comment"> * @param L The size of the lattice</span></div>
<div class="line"><span class="lineno"> 65</span><span class="comment"> * @param T The Temperature for the Ising model</span></div>
<div class="line"><span class="lineno"> 66</span><span class="comment"> * @param cycles The amount of Monte Carlo cycles to do</span></div>
<div class="line"><span class="lineno"> 67</span><span class="comment"> * @param burn_in_time The burn-in time to use</span></div>
<div class="line"><span class="lineno"> 68</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 69</span><span class="comment"> * @return data_t</span></div>
<div class="line"><span class="lineno"> 70</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> cycles,</div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> cycles,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">int</span> burn_in_time = <a class="code hl_define" href="monte__carlo_8hpp.html#a362b5ad7de095387fcbc573632a19cbf">BURN_IN_TIME</a>);</div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">int</span> burn_in_time = BURN_IN_TIME);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div> <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">/** @brief Execute the Metropolis algorithm for a certain amount of Monte</span></div>
<div class="line"><span class="lineno"> 75</span><span class="comment"> * Carlo cycles in parallel.</span></div>
<div class="line"><span class="lineno"> 76</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 77</span><span class="comment"> * @param L The size of the lattice</span></div>
<div class="line"><span class="lineno"> 78</span><span class="comment"> * @param T The Temperature for the Ising model</span></div>
<div class="line"><span class="lineno"> 79</span><span class="comment"> * @param cycles The amount of Monte Carlo cycles to do</span></div>
<div class="line"><span class="lineno"> 80</span><span class="comment"> * @param burn_in_time The burn-in time to use</span></div>
<div class="line"><span class="lineno"> 81</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 82</span><span class="comment"> * @return data_t</span></div>
<div class="line"><span class="lineno"> 83</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> cycles,</div> <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> T, <span class="keywordtype">int</span> cycles,</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">int</span> burn_in_time = <a class="code hl_define" href="monte__carlo_8hpp.html#a362b5ad7de095387fcbc573632a19cbf">BURN_IN_TIME</a>);</div> <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">int</span> burn_in_time = BURN_IN_TIME);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div> <div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment">/** @brief Perform the MCMC algorithm using a range of temperatures.</span></div>
<div class="line"><span class="lineno"> 88</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 89</span><span class="comment"> * @param L The size of the lattice</span></div>
<div class="line"><span class="lineno"> 90</span><span class="comment"> * @param start_T The start temperature</span></div>
<div class="line"><span class="lineno"> 91</span><span class="comment"> * @param end_T The end temperature</span></div>
<div class="line"><span class="lineno"> 92</span><span class="comment"> * @param point_T The amount of point to measure</span></div>
<div class="line"><span class="lineno"> 93</span><span class="comment"> * @param monte_carlo Which Monte Carlo implementation to use</span></div>
<div class="line"><span class="lineno"> 94</span><span class="comment"> * @param outfile The file to write the data to</span></div>
<div class="line"><span class="lineno"> 95</span><span class="comment"> * @param burn_in_time The burn-in time to use</span></div>
<div class="line"><span class="lineno"> 96</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> start_T, <span class="keywordtype">double</span> end_T, <span class="keywordtype">int</span> points_T,</div> <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> start_T, <span class="keywordtype">double</span> end_T, <span class="keywordtype">int</span> points_T,</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">int</span> cycles,</div> <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">int</span> cycles,</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> std::function&lt;<a class="code hl_class" href="classdata__t.html">data_t</a>(<span class="keywordtype">int</span>, <span class="keywordtype">double</span>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>)&gt; monte_carlo,</div> <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> std::function&lt;<a class="code hl_class" href="classdata__t.html">data_t</a>(<span class="keywordtype">int</span>, <span class="keywordtype">double</span>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>)&gt; monte_carlo,</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> std::string outfile, <span class="keywordtype">int</span> burn_in_time = <a class="code hl_define" href="monte__carlo_8hpp.html#a362b5ad7de095387fcbc573632a19cbf">BURN_IN_TIME</a>);</div> <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> std::string outfile, <span class="keywordtype">int</span> burn_in_time = BURN_IN_TIME);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>}; <span class="comment">// namespace montecarlo</span></div> <div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>}; <span class="comment">// namespace montecarlo</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div> <div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor">#</span><span class="preprocessor">endif</span></div> <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aIsingModel_8hpp_html"><div class="ttname"><a href="IsingModel_8hpp.html">IsingModel.hpp</a></div><div class="ttdoc">The definition of the Ising model.</div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div> <div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="amain_8cpp_html_a0dfa85080578dffff23b68e372cece95"><div class="ttname"><a href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a></div><div class="ttdeci">void test_parallel_speedup()</div><div class="ttdoc">Test how much Openmp speeds up.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00060">main.cpp:60</a></div></div> <div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="ttc" id="amain_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00125">main.cpp:125</a></div></div>
<div class="ttc" id="amain_8cpp_html_a4f8ea24364d72024915d3753a572cc5b"><div class="ttname"><a href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a></div><div class="ttdeci">void create_pd_estimate_data()</div><div class="ttdoc">Create the data used to estimate the probability distribution for tempratures 1.0 and 2....</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00037">main.cpp:37</a></div></div>
<div class="ttc" id="amain_8cpp_html_a68406fc2dd8de5849c3984658c171f32"><div class="ttname"><a href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a></div><div class="ttdeci">void create_burn_in_time_data()</div><div class="ttdoc">Create the data for the burn-in time for temperatures 1.0 and 2.4 for both unordered and ordered init...</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00021">main.cpp:21</a></div></div>
<div class="ttc" id="amain_8cpp_html_a746d8dc451b2b2536abbb1ff1acaf861"><div class="ttname"><a href="main_8cpp.html#a746d8dc451b2b2536abbb1ff1acaf861">test_burn_in_time</a></div><div class="ttdeci">void test_burn_in_time()</div><div class="ttdoc">Create data using the same parameters except one uses burn-in time, while the other doesn't.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00049">main.cpp:49</a></div></div>
<div class="ttc" id="amain_8cpp_html_a9d62cf1399596f4c5a39abdd3196d76d"><div class="ttname"><a href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a></div><div class="ttdeci">void create_phase_transition_data()</div><div class="ttdoc">Create data for studying phase transition.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00083">main.cpp:83</a></div></div>
<div class="ttc" id="amain_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00110">main.cpp:110</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a1549fc386bd3cdd1cdbe0261b9dd8415"><div class="ttname"><a href="monte__carlo_8hpp.html#a1549fc386bd3cdd1cdbe0261b9dd8415">montecarlo::progression</a></div><div class="ttdeci">void progression(double T, int L, int cycles, int value, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Write the expected values for each Monte Carlo cycles to file.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00046">monte_carlo.cpp:46</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a34e9c3e24f26760693266b8a7b6b3d21"><div class="ttname"><a href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">montecarlo::phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, int cycles, std::function&lt; data_t(int, double, int, int)&gt; monte_carlo, std::string outfile, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Perform the MCMC algorithm using a range of temperatures.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00155">monte_carlo.cpp:155</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_a34e9c3e24f26760693266b8a7b6b3d21"><div class="ttname"><a href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">montecarlo::phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, int cycles, std::function&lt; data_t(int, double, int, int)&gt; monte_carlo, std::string outfile, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Perform the MCMC algorithm using a range of temperatures.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00155">monte_carlo.cpp:155</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a362b5ad7de095387fcbc573632a19cbf"><div class="ttname"><a href="monte__carlo_8hpp.html#a362b5ad7de095387fcbc573632a19cbf">BURN_IN_TIME</a></div><div class="ttdeci">#define BURN_IN_TIME</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8hpp_source.html#l00024">monte_carlo.hpp:24</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a781d946de16211ba18ad6671a5b6838d"><div class="ttname"><a href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">montecarlo::progression</a></div><div class="ttdeci">void progression(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Write the expected values for each Monte Carlo cycles to file.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00015">monte_carlo.cpp:15</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_a781d946de16211ba18ad6671a5b6838d"><div class="ttname"><a href="monte__carlo_8hpp.html#a781d946de16211ba18ad6671a5b6838d">montecarlo::progression</a></div><div class="ttdeci">void progression(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Write the expected values for each Monte Carlo cycles to file.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00015">monte_carlo.cpp:15</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae1e7f904ecfc3d8f3c4dd1ef155dd771"><div class="ttname"><a href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">montecarlo::mcmc_parallel</a></div><div class="ttdeci">data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00127">monte_carlo.cpp:127</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_ae1e7f904ecfc3d8f3c4dd1ef155dd771"><div class="ttname"><a href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">montecarlo::mcmc_parallel</a></div><div class="ttdeci">data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00127">monte_carlo.cpp:127</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae67483ff00d1b0594d543261c8283ffd"><div class="ttname"><a href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">montecarlo::mcmc_serial</a></div><div class="ttdeci">data_t mcmc_serial(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00108">monte_carlo.cpp:108</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_ae67483ff00d1b0594d543261c8283ffd"><div class="ttname"><a href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">montecarlo::mcmc_serial</a></div><div class="ttdeci">data_t mcmc_serial(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00108">monte_carlo.cpp:108</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_aea2dd1b5fac7c45633bc6f8dc4541226"><div class="ttname"><a href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">montecarlo::pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Estimate the probability distribution for the energy.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00077">monte_carlo.cpp:77</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html_aea2dd1b5fac7c45633bc6f8dc4541226"><div class="ttname"><a href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">montecarlo::pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Estimate the probability distribution for the energy.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00077">monte_carlo.cpp:77</a></div></div>
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -130,7 +130,7 @@ Functions</h2></td></tr>
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000010">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000011">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="pd__estimate_8cpp_source.html">pd_estimate.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="pd__estimate_8cpp_source.html">pd_estimate.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2> </div><h2 class="groupheader">Function Documentation</h2>

View File

@ -101,28 +101,16 @@ $(document).ready(function(){initNavTree('pd__estimate_8cpp_source.html',''); in
<div class="headertitle"><div class="title">pd_estimate.cpp</div></div> <div class="headertitle"><div class="title">pd_estimate.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="pd__estimate_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file pd_estimate.cpp</span></div> <a href="pd__estimate_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &quot;<a class="code" href="monte__carlo_8hpp.html">monte_carlo.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief execute the mcmc algorithm and write data to file after each</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> * Monte Carlo cycles.</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 12</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="monte__carlo_8hpp.html" title="Functions for Monte Carlo simulations.">&quot;monte_carlo.hpp&quot;</a></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">getopt</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;getopt.h&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">omp</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;omp.h&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">string</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">/** @brief A function that displays how to use the program and quits.*/</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="pd__estimate_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 22</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="pd__estimate_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="pd__estimate_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 22</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> &lt;&lt; <span class="stringliteral">&quot; &lt;temperature&gt; &lt;lattice size&gt; &quot;</span></div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> &lt;&lt; <span class="stringliteral">&quot; &lt;temperature&gt; &lt;lattice size&gt; &quot;</span></div>
@ -131,10 +119,7 @@ $(document).ready(function(){initNavTree('pd__estimate_8cpp_source.html',''); in
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> exit(-1);</div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> exit(-1);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">/** @brief The main function</span></div> <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="pd__estimate_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 34</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><span class="lineno"> 32</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 33</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="pd__estimate_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 34</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>{</div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>{</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Command options</span></div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Command options</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">struct </span>option long_options[] = {{<span class="stringliteral">&quot;help&quot;</span>, 0, 0, 0}, {NULL, 0, NULL, 0}};</div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">struct </span>option long_options[] = {{<span class="stringliteral">&quot;help&quot;</span>, 0, 0, 0}, {NULL, 0, NULL, 0}};</div>
@ -153,17 +138,17 @@ $(document).ready(function(){initNavTree('pd__estimate_8cpp_source.html',''); in
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">switch</span> (option_index) {</div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">switch</span> (option_index) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">case</span> 0: <span class="comment">// Not a mistake. This just goes to the default.</span></div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">case</span> 0: <span class="comment">// Not a mistake. This just goes to the default.</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> usage(argv[0]);</div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_function" href="pd__estimate_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">case</span> <span class="stringliteral">&#39;h&#39;</span>:</div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;h&#39;</span>:</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> usage(argv[0]);</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_function" href="pd__estimate_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Check that the number of arguments is at least 8.</span></div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Check that the number of arguments is at least 8.</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">if</span> (argc &lt; 6) {</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">if</span> (argc &lt; 6) {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> usage(argv[0]);</div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_function" href="pd__estimate_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// Timing variables</span></div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// Timing variables</span></div>
@ -175,15 +160,17 @@ $(document).ready(function(){initNavTree('pd__estimate_8cpp_source.html',''); in
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">int</span> L = atoi(argv[2]), cycles = atoi(argv[3]), burn_in_time = atoi(argv[4]);</div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">int</span> L = atoi(argv[2]), cycles = atoi(argv[3]), burn_in_time = atoi(argv[4]);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> std::string outfile = argv[5];</div> <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> std::string outfile = argv[5];</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div> <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">pd_estimate</a><a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">(</a>temp<a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">,</a> L<a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">,</a> cycles<a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">,</a> outfile<a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">,</a> burn_in_time<a class="code hl_function" href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">)</a>;</div> <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> montecarlo::pd_estimate(temp, L, cycles, outfile, burn_in_time);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div> <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> t1 = omp_get_wtime();</div> <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> t1 = omp_get_wtime();</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div> <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time: &quot;</span> &lt;&lt; t1 - t0 &lt;&lt; <span class="stringliteral">&quot; seconds\n&quot;</span>;</div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time: &quot;</span> &lt;&lt; t1 - t0 &lt;&lt; <span class="stringliteral">&quot; seconds\n&quot;</span>;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span>}</div> <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span>}</div>
<div class="ttc" id="amain_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00125">main.cpp:125</a></div></div> <div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="ttc" id="amain_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00110">main.cpp:110</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html"><div class="ttname"><a href="monte__carlo_8hpp.html">monte_carlo.hpp</a></div><div class="ttdoc">Functions for Monte Carlo simulations.</div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_aea2dd1b5fac7c45633bc6f8dc4541226"><div class="ttname"><a href="monte__carlo_8hpp.html#aea2dd1b5fac7c45633bc6f8dc4541226">montecarlo::pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Estimate the probability distribution for the energy.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00077">monte_carlo.cpp:77</a></div></div> <div class="ttc" id="apd__estimate_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="pd__estimate_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="pd__estimate_8cpp_source.html#l00022">pd_estimate.cpp:22</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div>
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -131,7 +131,7 @@ Functions</h2></td></tr>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<p>This program takes in 4 arguments: the start temperature, the end temperature, the amount of temperature points to simulate, and the amount of monte carlo samples to collect, in that order.</p> <p>This program takes in 4 arguments: the start temperature, the end temperature, the amount of temperature points to simulate, and the amount of monte carlo samples to collect, in that order.</p>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000011">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000012">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="phase__transition_8cpp_source.html">phase_transition.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="phase__transition_8cpp_source.html">phase_transition.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2> </div><h2 class="groupheader">Function Documentation</h2>

View File

@ -101,31 +101,16 @@ $(document).ready(function(){initNavTree('phase__transition_8cpp_source.html',''
<div class="headertitle"><div class="title">phase_transition.cpp</div></div> <div class="headertitle"><div class="title">phase_transition.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="phase__transition_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file phase_transition.cpp</span></div> <a href="phase__transition_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="monte__carlo_8hpp.html">monte_carlo.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Sweep over different temperatures and generate data.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @details This program takes in 4 arguments: the start temperature,</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * the end temperature, the amount of temperature points to simulate, and</span></div>
<div class="line"><span class="lineno"> 12</span><span class="comment"> * the amount of monte carlo samples to collect, in that order.</span></div>
<div class="line"><span class="lineno"> 13</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 14</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 15</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="monte__carlo_8hpp.html" title="Functions for Monte Carlo simulations.">&quot;monte_carlo.hpp&quot;</a></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">getopt</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;getopt.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">omp</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;omp.h&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">string</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">/** @brief A function that displays how to use the program and quits.*/</span></div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="phase__transition_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 25</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="phase__transition_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="phase__transition_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 25</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>{</div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>{</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename</div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> &lt;&lt; <span class="stringliteral">&quot; &lt;start temperature&gt; &lt;end temperature&gt; &lt;points&gt; &quot;</span></div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> &lt;&lt; <span class="stringliteral">&quot; &lt;start temperature&gt; &lt;end temperature&gt; &lt;points&gt; &quot;</span></div>
@ -134,8 +119,7 @@ $(document).ready(function(){initNavTree('phase__transition_8cpp_source.html',''
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> exit(-1);</div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> exit(-1);</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>}</div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>}</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">/** @brief The main function.*/</span></div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="phase__transition_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 35</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="phase__transition_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 35</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>{</div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>{</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// Command options</span></div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// Command options</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">struct </span>option long_options[] = {{<span class="stringliteral">&quot;help&quot;</span>, 0, 0, 0}, {NULL, 0, NULL, 0}};</div> <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">struct </span>option long_options[] = {{<span class="stringliteral">&quot;help&quot;</span>, 0, 0, 0}, {NULL, 0, NULL, 0}};</div>
@ -154,17 +138,17 @@ $(document).ready(function(){initNavTree('phase__transition_8cpp_source.html',''
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">switch</span> (option_index) {</div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">switch</span> (option_index) {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">case</span> 0: <span class="comment">// Not a mistake. This just goes to the default.</span></div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">case</span> 0: <span class="comment">// Not a mistake. This just goes to the default.</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> usage(argv[0]);</div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_function" href="phase__transition_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">case</span> <span class="stringliteral">&#39;h&#39;</span>:</div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;h&#39;</span>:</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> usage(argv[0]);</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_function" href="phase__transition_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Check that the number of arguments is at least 8.</span></div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Check that the number of arguments is at least 8.</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">if</span> (argc &lt; 8) {</div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">if</span> (argc &lt; 8) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> usage(argv[0]);</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_function" href="phase__transition_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Timing variables</span></div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Timing variables</span></div>
@ -177,17 +161,18 @@ $(document).ready(function(){initNavTree('phase__transition_8cpp_source.html',''
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> burn_in_time = atoi(argv[6]), N = L * L;</div> <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> burn_in_time = atoi(argv[6]), N = L * L;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> std::string outfile = argv[7];</div> <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> std::string outfile = argv[7];</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div> <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(L, start, end, points, cycles,</div> <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> montecarlo::phase_transition(L, start, end, points, cycles,</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>, outfile, burn_in_time);</div> <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> montecarlo::mcmc_parallel, outfile, burn_in_time);</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> t1 = omp_get_wtime();</div> <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> t1 = omp_get_wtime();</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div> <div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time: &quot;</span> &lt;&lt; t1 - t0 &lt;&lt; <span class="stringliteral">&quot; seconds\n&quot;</span>;</div> <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time: &quot;</span> &lt;&lt; t1 - t0 &lt;&lt; <span class="stringliteral">&quot; seconds\n&quot;</span>;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>}</div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>}</div>
<div class="ttc" id="amain_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00125">main.cpp:125</a></div></div> <div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="ttc" id="amain_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00110">main.cpp:110</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html"><div class="ttname"><a href="monte__carlo_8hpp.html">monte_carlo.hpp</a></div><div class="ttdoc">Functions for Monte Carlo simulations.</div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a34e9c3e24f26760693266b8a7b6b3d21"><div class="ttname"><a href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">montecarlo::phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, int cycles, std::function&lt; data_t(int, double, int, int)&gt; monte_carlo, std::string outfile, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Perform the MCMC algorithm using a range of temperatures.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00155">monte_carlo.cpp:155</a></div></div> <div class="ttc" id="aphase__transition_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="phase__transition_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="phase__transition_8cpp_source.html#l00025">phase_transition.cpp:25</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae1e7f904ecfc3d8f3c4dd1ef155dd771"><div class="ttname"><a href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">montecarlo::mcmc_parallel</a></div><div class="ttdeci">data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00127">monte_carlo.cpp:127</a></div></div> <div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div>
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -131,7 +131,7 @@ Functions</h2></td></tr>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<p>This program takes in 4 arguments: the start temperature, the end temperature, the amount of temperature points to simulate, and the amount of monte carlo samples to collect, in that order.</p> <p>This program takes in 4 arguments: the start temperature, the end temperature, the amount of temperature points to simulate, and the amount of monte carlo samples to collect, in that order.</p>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000012">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000013">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="phase__transition__mpi_8cpp_source.html">phase_transition_mpi.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="phase__transition__mpi_8cpp_source.html">phase_transition_mpi.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2> </div><h2 class="groupheader">Function Documentation</h2>

View File

@ -101,31 +101,16 @@ $(document).ready(function(){initNavTree('phase__transition__mpi_8cpp_source.htm
<div class="headertitle"><div class="title">phase_transition_mpi.cpp</div></div> <div class="headertitle"><div class="title">phase_transition_mpi.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="phase__transition__mpi_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file phase_transition_mpi.cpp</span></div> <a href="phase__transition__mpi_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="monte__carlo_8hpp.html">monte_carlo.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Sweep over different temperatures and generate data.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @details This program takes in 4 arguments: the start temperature,</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * the end temperature, the amount of temperature points to simulate, and</span></div>
<div class="line"><span class="lineno"> 12</span><span class="comment"> * the amount of monte carlo samples to collect, in that order.</span></div>
<div class="line"><span class="lineno"> 13</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 14</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 15</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="monte__carlo_8hpp.html" title="Functions for Monte Carlo simulations.">&quot;monte_carlo.hpp&quot;</a></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">getopt</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;getopt.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">mpi</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;mpi.h&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">string</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">/** @brief A function that displays how to use the program and quits.*/</span></div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="phase__transition__mpi_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 25</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="phase__transition__mpi_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="phase__transition__mpi_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 25</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>{</div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>{</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::cout</div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::cout</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename</div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename</div>
@ -137,8 +122,7 @@ $(document).ready(function(){initNavTree('phase__transition__mpi_8cpp_source.htm
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> exit(-1);</div> <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> exit(-1);</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>}</div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>}</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">/** @brief The main function.*/</span></div> <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="phase__transition__mpi_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 38</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="phase__transition__mpi_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 38</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>{</div> <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>{</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// Command options</span></div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// Command options</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">struct </span>option long_options[] = {{<span class="stringliteral">&quot;help&quot;</span>, 0, 0, 0}, {NULL, 0, NULL, 0}};</div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">struct </span>option long_options[] = {{<span class="stringliteral">&quot;help&quot;</span>, 0, 0, 0}, {NULL, 0, NULL, 0}};</div>
@ -157,17 +141,17 @@ $(document).ready(function(){initNavTree('phase__transition__mpi_8cpp_source.htm
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">switch</span> (option_index) {</div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">switch</span> (option_index) {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">case</span> 0: <span class="comment">// Not a mistake. This just goes to the default.</span></div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">case</span> 0: <span class="comment">// Not a mistake. This just goes to the default.</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> usage(argv[0]);</div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_function" href="phase__transition__mpi_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">case</span> <span class="stringliteral">&#39;h&#39;</span>:</div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;h&#39;</span>:</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> usage(argv[0]);</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_function" href="phase__transition__mpi_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// Check that the number of arguments is at least 8.</span></div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// Check that the number of arguments is at least 8.</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (argc &lt; 8) {</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (argc &lt; 8) {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> usage(argv[0]);</div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_function" href="phase__transition__mpi_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// Timing variables</span></div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// Timing variables</span></div>
@ -211,9 +195,9 @@ $(document).ready(function(){initNavTree('phase__transition__mpi_8cpp_source.htm
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_class" href="classdata__t.html">data_t</a> i_data[i_points];</div> <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_class" href="classdata__t.html">data_t</a> i_data[i_points];</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div> <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// Simulate and save data to array</span></div> <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// Simulate and save data to array</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; i_points; i++) {</div> <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; i_points; i++) {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> i_data[i] = montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">(</a>L<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">,</a> i_start + dt * i<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">,</a> cycles<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">,</a></div> <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> i_data[i] = montecarlo::mcmc_parallel(L, i_start + dt * i, cycles,</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> burn_in_time<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">)</a>;</div> <div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> burn_in_time);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div> <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div> <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// Rank 0 collects all the data and copies it to the &quot;master&quot;</span></div> <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// Rank 0 collects all the data and copies it to the &quot;master&quot;</span></div>
@ -223,17 +207,17 @@ $(document).ready(function(){initNavTree('phase__transition__mpi_8cpp_source.htm
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> std::copy_n(i_data, i_points, data);</div> <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> std::copy_n(i_data, i_points, data);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div> <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Collect i_data from other ranks in order and copy to data.</span></div> <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Collect i_data from other ranks in order and copy to data.</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">for</span> (size_t i = 1; i &lt; cluster_size; i++) {</div> <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt; cluster_size; i++) {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (rank &lt; remainder) {</div> <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (rank &lt; remainder) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> MPI_Recv((<span class="keywordtype">void</span> *)i_data,</div> <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> MPI_Recv((<span class="keywordtype">void</span> *)i_data,</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">sizeof</span>(data_t) * (points / cluster_size + 1), MPI_CHAR,</div> <div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">sizeof</span>(<a class="code hl_class" href="classdata__t.html">data_t</a>) * (points / cluster_size + 1), MPI_CHAR,</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> i, MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div> <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> i, MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> std::copy_n(i_data, points / cluster_size + 1,</div> <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> std::copy_n(i_data, points / cluster_size + 1,</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> data + (points / cluster_size) * i);</div> <div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> data + (points / cluster_size) * i);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> }</div> <div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> }</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">else</span> {</div> <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> MPI_Recv((<span class="keywordtype">void</span> *)i_data,</div> <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> MPI_Recv((<span class="keywordtype">void</span> *)i_data,</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">sizeof</span>(data_t) * (points / cluster_size), MPI_CHAR, i,</div> <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">sizeof</span>(<a class="code hl_class" href="classdata__t.html">data_t</a>) * (points / cluster_size), MPI_CHAR, i,</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div> <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> std::copy_n(i_data, points / cluster_size,</div> <div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> std::copy_n(i_data, points / cluster_size,</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> data + (points / cluster_size) * i + remainder);</div> <div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> data + (points / cluster_size) * i + remainder);</div>
@ -241,30 +225,30 @@ $(document).ready(function(){initNavTree('phase__transition__mpi_8cpp_source.htm
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> }</div> <div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> }</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div> <div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="comment">// Write everything from data to file</span></div> <div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="comment">// Write everything from data to file</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> utils<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">::</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">(</a>utils<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">::</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">(</a>outfile<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">)</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">)</a>;</div> <div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> utils::mkpath(utils::dirname(outfile));</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> ofile.open(outfile);</div> <div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> ofile.open(outfile);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div> <div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordtype">double</span> temp, CV, X;</div> <div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordtype">double</span> temp, CV, X;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div> <div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">using </span>utils::scientific_format;</div> <div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">using </span>utils::scientific_format;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; points; i++) {</div> <div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; points; i++) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> temp = start + dt * i;</div> <div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> temp = start + dt * i;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> CV = (data[i].E2 - data[i].E * data[i].E)</div> <div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> CV = (data[i].<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> - data[i].<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> * data[i].<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>)</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> / ((<span class="keywordtype">double</span>)N * temp * temp);</div> <div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> / ((<span class="keywordtype">double</span>)N * temp * temp);</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> X = (data[i].M2 - data[i].M_abs * data[i].M_abs)</div> <div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> X = (data[i].<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> - data[i].<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> * data[i].<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>)</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> / ((<span class="keywordtype">double</span>)N * temp);</div> <div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> / ((<span class="keywordtype">double</span>)N * temp);</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div> <div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> ofile &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>temp<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> ofile &lt;&lt; scientific_format(temp) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> &lt;&lt; scientific_format(data[i].E / N) &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> &lt;&lt; scientific_format(data[i].E / N) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> &lt;&lt; scientific_format(data[i].M_abs / N) &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> &lt;&lt; scientific_format(data[i].M_abs / N) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>CV<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span> &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>X<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a></div> <div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> &lt;&lt; scientific_format(CV) &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; scientific_format(X)</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> }</div> <div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> }</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> ofile.close();</div> <div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> ofile.close();</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> }</div> <div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> }</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// For all other ranks, send the data to rank 0</span></div> <div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// For all other ranks, send the data to rank 0</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">else</span> {</div> <div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> MPI_Send(i_data, i_points * <span class="keyword">sizeof</span>(data_t), MPI_CHAR, 0, rank,</div> <div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> MPI_Send(i_data, i_points * <span class="keyword">sizeof</span>(<a class="code hl_class" href="classdata__t.html">data_t</a>), MPI_CHAR, 0, rank,</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> MPI_COMM_WORLD);</div> <div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> MPI_COMM_WORLD);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div> <div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div> <div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
@ -277,12 +261,15 @@ $(document).ready(function(){initNavTree('phase__transition__mpi_8cpp_source.htm
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> MPI_Finalize();</div> <div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> MPI_Finalize();</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span>}</div> <div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span>}</div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div> <div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="amain_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00125">main.cpp:125</a></div></div> <div class="ttc" id="aclassdata__t_html_a586475e0f71322dffda2e75f228ab24b"><div class="ttname"><a href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">data_t::M_abs</a></div><div class="ttdeci">double M_abs</div><div class="ttdoc">Absolute Magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00025">data_type.hpp:25</a></div></div>
<div class="ttc" id="amain_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00110">main.cpp:110</a></div></div> <div class="ttc" id="aclassdata__t_html_a6c1a196d96e177b11ca98c61fae35a2e"><div class="ttname"><a href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">data_t::E</a></div><div class="ttdeci">double E</div><div class="ttdoc">Energy.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00021">data_type.hpp:21</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae1e7f904ecfc3d8f3c4dd1ef155dd771"><div class="ttname"><a href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">montecarlo::mcmc_parallel</a></div><div class="ttdeci">data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00127">monte_carlo.cpp:127</a></div></div> <div class="ttc" id="aclassdata__t_html_a71ae3cd4460f2c66239500c11804e70b"><div class="ttname"><a href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">data_t::M2</a></div><div class="ttdeci">double M2</div><div class="ttdoc">Magnetization squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00024">data_type.hpp:24</a></div></div>
<div class="ttc" id="autils_8hpp_html_a2b45adc86b70f42021582994e83fa00d"><div class="ttname"><a href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">utils::mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00032">utils.cpp:32</a></div></div> <div class="ttc" id="aclassdata__t_html_abb622f9c6cc5ffb9dddb151d2e202f72"><div class="ttname"><a href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">data_t::E2</a></div><div class="ttdeci">double E2</div><div class="ttdoc">Energy squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00023">data_type.hpp:23</a></div></div>
<div class="ttc" id="autils_8hpp_html_a3529a74fd2a25d24de73d9d4e1c90835"><div class="ttname"><a href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00016">utils.cpp:16</a></div></div> <div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="ttc" id="autils_8hpp_html_aed026119193a9bbe076671809ff0f430"><div class="ttname"><a href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">utils::dirname</a></div><div class="ttdeci">std::string dirname(const std::string &amp;path)</div><div class="ttdoc">Get the directory name of the path.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00058">utils.cpp:58</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html"><div class="ttname"><a href="monte__carlo_8hpp.html">monte_carlo.hpp</a></div><div class="ttdoc">Functions for Monte Carlo simulations.</div></div>
<div class="ttc" id="aphase__transition__mpi_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="phase__transition__mpi_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="phase__transition__mpi_8cpp_source.html#l00025">phase_transition_mpi.cpp:25</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div>
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -146,7 +146,7 @@ Functions</h2></td></tr>
<dd> <dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000013">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000014">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="test__suite_8cpp_source.html">test_suite.cpp</a>.</p> <p class="definition">Definition in file <a class="el" href="test__suite_8cpp_source.html">test_suite.cpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2> </div><h2 class="groupheader">Macro Definition Documentation</h2>

View File

@ -101,88 +101,59 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
<div class="headertitle"><div class="title">test_suite.cpp</div></div> <div class="headertitle"><div class="title">test_suite.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="test__suite_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file test_suite.cpp</span></div> <a href="test__suite_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="IsingModel_8hpp.html">IsingModel.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="testlib_8hpp.html">testlib.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Sweep over different temperatures and generate data.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="IsingModel_8hpp.html" title="The definition of the Ising model.">&quot;IsingModel.hpp&quot;</a></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="testlib_8hpp.html" title="A small test library.">&quot;testlib.hpp&quot;</a></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">/** @brief The analytic expected energy for a \f$ 2 \times 2 \f$ lattice.</span></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#a00367775d110a9537bd06bde2e630471"> 17</a></span><span class="preprocessor">#define EPS_2 (-2 * std::sinh(8.)) / (std::cosh(8.) + 3)</span></div>
<div class="line"><span class="lineno"> 16</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#a00367775d110a9537bd06bde2e630471"> 17</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">EPS_2</span> <span class="preprocessor">(</span><span class="preprocessor">-</span>2 <span class="preprocessor">*</span> <span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">sinh</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span><span class="preprocessor">)</span> <span class="preprocessor">/</span> <span class="preprocessor">(</span><span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">cosh</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 3<span class="preprocessor">)</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">/** @brief The analytic expected magnetization for a \f$ 2 \times 2 \f$</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#a9fd092d930430eb4693d93e0c9066605"> 22</a></span><span class="preprocessor">#define MAG_2 (std::exp(8.) + 1) / (2 * (cosh(8.) + 3))</span></div>
<div class="line"><span class="lineno"> 20</span><span class="comment"> * lattice.</span></div>
<div class="line"><span class="lineno"> 21</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#a9fd092d930430eb4693d93e0c9066605"> 22</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">MAG_2</span> <span class="preprocessor">(</span><span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">exp</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 1<span class="preprocessor">)</span> <span class="preprocessor">/</span> <span class="preprocessor">(</span>2 <span class="preprocessor">*</span> <span class="preprocessor">(</span><span class="preprocessor">cosh</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 3<span class="preprocessor">)</span><span class="preprocessor">)</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">/** @brief The analytic heat capacity for a \f$ 2 \times 2 \f$ lattice.</span></div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#af02dd88b4d495baf7af5826d1481634c"> 26</a></span><span class="preprocessor">#define CV_2 \</span></div>
<div class="line"><span class="lineno"> 25</span><span class="comment"> * */</span></div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor"> 16 * (3 * std::cosh(8.) + 1) / ((std::cosh(8.) + 3) * (std::cosh(8.) + 3))</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#af02dd88b4d495baf7af5826d1481634c"> 26</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">CV_2</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> 16 <span class="preprocessor">*</span> <span class="preprocessor">(</span>3 <span class="preprocessor">*</span> <span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">cosh</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 1<span class="preprocessor">)</span> <span class="preprocessor">/</span> <span class="preprocessor">(</span><span class="preprocessor">(</span><span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">cosh</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 3<span class="preprocessor">)</span> <span class="preprocessor">*</span> <span class="preprocessor">(</span><span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">cosh</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 3<span class="preprocessor">)</span><span class="preprocessor">)</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">/** @brief The analytic susceptibility for a \f$ 2 \times 2 \f$ lattice.*/</span></div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#ad27c84dda71475ffd365c649b525199e"> 30</a></span><span class="preprocessor">#define X_2 \</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#ad27c84dda71475ffd365c649b525199e"> 30</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">X_2</span></div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor"> (3 * std::exp(8.) + std::exp(-8.) + 3) \</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">(</span>3 <span class="preprocessor">*</span> <span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">exp</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> <span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">exp</span><span class="preprocessor">(</span><span class="preprocessor">-</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 3<span class="preprocessor">)</span></div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor"> / ((std::cosh(8.) + 3) * (std::cosh(8.) + 3))</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">/</span> <span class="preprocessor">(</span><span class="preprocessor">(</span><span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">cosh</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 3<span class="preprocessor">)</span> <span class="preprocessor">*</span> <span class="preprocessor">(</span><span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">cosh</span><span class="preprocessor">(</span>8.<span class="preprocessor">)</span> <span class="preprocessor">+</span> 3<span class="preprocessor">)</span><span class="preprocessor">)</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">/** @brief Test class for the Ising model</span></div>
<div class="line"><span class="lineno"> 35</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classIsingModelTest.html"> 36</a></span><span class="keyword">class </span><a class="code hl_class" href="classIsingModelTest.html">IsingModelTest</a> {</div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classIsingModelTest.html"> 36</a></span><span class="keyword">class </span><a class="code hl_class" href="classIsingModelTest.html">IsingModelTest</a> {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">public</span>:</div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/** @brief Test that initializing works as intended.</span></div>
<div class="line"><span class="lineno"> 39</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931"> 40</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">test_init_functions</a>()</div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931"> 40</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">test_init_functions</a>()</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> {</div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> test;</div> <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> test;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> test<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">.</a><a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a> = 3;</div> <div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> test.<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a> = 3;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> test<a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">.</a><a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a> = 1.;</div> <div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> test.<a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a> = 1.;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Test that initializing the lattice only yields 1s and -1s.</span></div> <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Test that initializing the lattice only yields 1s and -1s.</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> test<a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">.</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">(</a><a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">)</a>;</div> <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> test.<a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>();</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> std::function&lt;<span class="keywordtype">bool</span>(<span class="keywordtype">int</span>)&gt; f = [](<span class="keywordtype">int</span> x) { <span class="keywordflow">return</span> x == 1 || x == -1; };</div> <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> std::function&lt;bool(<span class="keywordtype">int</span>)&gt; f = [](<span class="keywordtype">int</span> x) { <span class="keywordflow">return</span> x == 1 || x == -1; };</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_define" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(testlib::assert_each(f, test.lattice),</div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_define" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(testlib::assert_each(f, test.<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>),</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="stringliteral">&quot;Test lattice initialization.&quot;</span>);</div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="stringliteral">&quot;Test lattice initialization.&quot;</span>);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> test<a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">.</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">(</a><a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">)</a>;</div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> test.<a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a>();</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> arma::Mat&lt;<span class="keywordtype">int</span>&gt; neighbor_matrix(<span class="stringliteral">&quot;2, 1 ; 0, 2 ; 1, 0&quot;</span>);</div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> arma::Mat&lt;int&gt; neighbor_matrix(<span class="stringliteral">&quot;2, 1 ; 0, 2 ; 1, 0&quot;</span>);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_define" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(testlib::is_equal(neighbor_matrix, test.neighbors),</div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_define" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(testlib::is_equal(neighbor_matrix, test.<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>),</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="stringliteral">&quot;Test neighbor matrix.&quot;</span>);</div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="stringliteral">&quot;Test neighbor matrix.&quot;</span>);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// Fill the lattice with 1s to be able to test the next functions.</span></div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// Fill the lattice with 1s to be able to test the next functions.</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> test.lattice.fill(1);</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> test.<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.fill(1);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Test the initial magnetization.</span></div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Test the initial magnetization.</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> test<a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">.</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">(</a><a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">)</a>;</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> test.<a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>();</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_define" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(std::fabs(test<a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">.</a><a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> - 9.) &lt; 1e-8, <span class="stringliteral">&quot;Test intial magnetization&quot;</span>);</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_define" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(std::fabs(test.<a class="code hl_variable" href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">M</a> - 9.) &lt; 1e-8, <span class="stringliteral">&quot;Test intial magnetization&quot;</span>);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// Test that the initial energy is correct</span></div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// Test that the initial energy is correct</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> test<a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">.</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">(</a><a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">)</a>;</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> test.<a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>();</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_define" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(std::fabs(test<a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">.</a><a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> - (-18)) &lt; 1e-8, <span class="stringliteral">&quot;Test initial energy.&quot;</span>);</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_define" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(std::fabs(test.<a class="code hl_variable" href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">E</a> - (-18)) &lt; 1e-8, <span class="stringliteral">&quot;Test initial energy.&quot;</span>);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="comment">/** @brief Test numerical data with analytical data.</span></div>
<div class="line"><span class="lineno"> 70</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 71</span><span class="comment"> * @param tol The tolerance between the analytical and numerical solution.</span></div>
<div class="line"><span class="lineno"> 72</span><span class="comment"> * @param max_cycles The max number of Monte Carlo cycles.</span></div>
<div class="line"><span class="lineno"> 73</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 74</span><span class="comment"> * return int</span></div>
<div class="line"><span class="lineno"> 75</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de"> 76</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">test_2x2_lattice</a>(<span class="keywordtype">double</span> tol, <span class="keywordtype">int</span> max_cycles)</div> <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de"> 76</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">test_2x2_lattice</a>(<span class="keywordtype">double</span> tol, <span class="keywordtype">int</span> max_cycles)</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> {</div> <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data, tmp;</div> <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data, tmp;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> size_t L = 2;</div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">size_t</span> L = 2;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> size_t n_spins = L * L;</div> <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordtype">size_t</span> n_spins = L * L;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">double</span> T = 1.;</div> <div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">double</span> T = 1.;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> size_t cycles = 0;</div> <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">size_t</span> cycles = 0;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// Create random engine using the mersenne twister</span></div> <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// Create random engine using the mersenne twister</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> std::random_device rd;</div> <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> std::random_device rd;</div>
@ -194,14 +165,14 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div> <div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Loop through cycles</span></div> <div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Loop through cycles</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">while</span> (cycles++ &lt; max_cycles) {</div> <div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">while</span> (cycles++ &lt; max_cycles) {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> data <a class="code hl_function" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">+=</a> test<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">.</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">(</a><a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">)</a>;</div> <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> data += test.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> tmp = data / cycles;</div> <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> tmp = data / cycles;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">if</span> (testlib::close_to(<a class="code hl_define" href="test__suite_8cpp.html#a00367775d110a9537bd06bde2e630471">EPS_2</a>, tmp<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> / n_spins, tol)</div> <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">if</span> (testlib::close_to(<a class="code hl_define" href="test__suite_8cpp.html#a00367775d110a9537bd06bde2e630471">EPS_2</a>, tmp.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> / n_spins, tol)</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> &amp;&amp; testlib::close_to(<a class="code hl_define" href="test__suite_8cpp.html#a9fd092d930430eb4693d93e0c9066605">MAG_2</a>, tmp<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> / n_spins, tol)</div> <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> &amp;&amp; testlib::close_to(<a class="code hl_define" href="test__suite_8cpp.html#a9fd092d930430eb4693d93e0c9066605">MAG_2</a>, tmp.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> / n_spins, tol)</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> &amp;&amp; testlib::close_to(</div> <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> &amp;&amp; testlib::close_to(</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <a class="code hl_define" href="test__suite_8cpp.html#af02dd88b4d495baf7af5826d1481634c">CV_2</a>, (tmp<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">.</a><a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> - tmp<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> * tmp<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">.</a><a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>) / (T * T) / n_spins, tol)</div> <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <a class="code hl_define" href="test__suite_8cpp.html#af02dd88b4d495baf7af5826d1481634c">CV_2</a>, (tmp.<a class="code hl_variable" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a> - tmp.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a> * tmp.<a class="code hl_variable" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a>) / (T * T) / n_spins, tol)</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> &amp;&amp; testlib::close_to(</div> <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> &amp;&amp; testlib::close_to(</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_define" href="test__suite_8cpp.html#ad27c84dda71475ffd365c649b525199e">X_2</a>, (tmp<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">.</a><a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> - tmp<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> * tmp<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">.</a><a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>) / T / n_spins, tol)) {</div> <div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_define" href="test__suite_8cpp.html#ad27c84dda71475ffd365c649b525199e">X_2</a>, (tmp.<a class="code hl_variable" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a> - tmp.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a> * tmp.<a class="code hl_variable" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a>) / T / n_spins, tol)) {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> cycles;</div> <div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> cycles;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div> <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div> <div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
@ -209,12 +180,11 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div> <div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>};</div> <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>};</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div> <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment">/** @brief The main function.*/</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4"> 110</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>()</div> <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4"> 110</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>()</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{</div> <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_class" href="classIsingModelTest.html">IsingModelTest</a> test;</div> <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_class" href="classIsingModelTest.html">IsingModelTest</a> test;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div> <div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> test<a class="code hl_function" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">.</a><a class="code hl_function" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">test_init_functions</a><a class="code hl_function" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">(</a><a class="code hl_function" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">)</a>;</div> <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> test.<a class="code hl_function" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">test_init_functions</a>();</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div> <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordtype">int</span> res = 0;</div> <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordtype">int</span> res = 0;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">int</span> tmp;</div> <div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">int</span> tmp;</div>
@ -222,8 +192,8 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordtype">int</span> accepted_values = 0;</div> <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordtype">int</span> accepted_values = 0;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div> <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// Run through the test multiple times to get a better estimate.</span></div> <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// Run through the test multiple times to get a better estimate.</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; iterations; i++) {</div> <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; iterations; i++) {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> tmp = test<a class="code hl_function" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">.</a><a class="code hl_function" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">test_2x2_lattice</a><a class="code hl_function" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">(</a>1e-2<a class="code hl_function" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">,</a> 1e5<a class="code hl_function" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">)</a>;</div> <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> tmp = test.<a class="code hl_function" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">test_2x2_lattice</a>(1e-2, 1e5);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (tmp == 0) {</div> <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (tmp == 0) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">continue</span>;</div> <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div> <div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
@ -235,6 +205,7 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div> <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">return</span> 0;</div> <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>}</div> <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>}</div>
<div class="ttc" id="aIsingModel_8hpp_html"><div class="ttname"><a href="IsingModel_8hpp.html">IsingModel.hpp</a></div><div class="ttdoc">The definition of the Ising model.</div></div>
<div class="ttc" id="aclassIsingModelTest_html"><div class="ttname"><a href="classIsingModelTest.html">IsingModelTest</a></div><div class="ttdoc">Test class for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00036">test_suite.cpp:36</a></div></div> <div class="ttc" id="aclassIsingModelTest_html"><div class="ttname"><a href="classIsingModelTest.html">IsingModelTest</a></div><div class="ttdoc">Test class for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00036">test_suite.cpp:36</a></div></div>
<div class="ttc" id="aclassIsingModelTest_html_a4ace7013fa2d257ad1747961da6bc4de"><div class="ttname"><a href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">IsingModelTest::test_2x2_lattice</a></div><div class="ttdeci">int test_2x2_lattice(double tol, int max_cycles)</div><div class="ttdoc">Test numerical data with analytical data.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00076">test_suite.cpp:76</a></div></div> <div class="ttc" id="aclassIsingModelTest_html_a4ace7013fa2d257ad1747961da6bc4de"><div class="ttname"><a href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">IsingModelTest::test_2x2_lattice</a></div><div class="ttdeci">int test_2x2_lattice(double tol, int max_cycles)</div><div class="ttdoc">Test numerical data with analytical data.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00076">test_suite.cpp:76</a></div></div>
<div class="ttc" id="aclassIsingModelTest_html_a717e5852ca51432a61fb6ed38da37931"><div class="ttname"><a href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">IsingModelTest::test_init_functions</a></div><div class="ttdeci">void test_init_functions()</div><div class="ttdoc">Test that initializing works as intended.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00040">test_suite.cpp:40</a></div></div> <div class="ttc" id="aclassIsingModelTest_html_a717e5852ca51432a61fb6ed38da37931"><div class="ttname"><a href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">IsingModelTest::test_init_functions</a></div><div class="ttdeci">void test_init_functions()</div><div class="ttdoc">Test that initializing works as intended.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00040">test_suite.cpp:40</a></div></div>
@ -242,16 +213,17 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
<div class="ttc" id="aclassIsingModel_html_a1c8a2a4331c7e60c3e1350c0cf8300b9"><div class="ttname"><a href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">IsingModel::E</a></div><div class="ttdeci">int64_t E</div><div class="ttdoc">The current energy state. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00070">IsingModel.hpp:70</a></div></div> <div class="ttc" id="aclassIsingModel_html_a1c8a2a4331c7e60c3e1350c0cf8300b9"><div class="ttname"><a href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">IsingModel::E</a></div><div class="ttdeci">int64_t E</div><div class="ttdoc">The current energy state. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00070">IsingModel.hpp:70</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a20fc4c0c99d8a119f70a1614784d4e5c"><div class="ttname"><a href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">IsingModel::T</a></div><div class="ttdeci">double T</div><div class="ttdoc">The temperature of the model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00062">IsingModel.hpp:62</a></div></div> <div class="ttc" id="aclassIsingModel_html_a20fc4c0c99d8a119f70a1614784d4e5c"><div class="ttname"><a href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">IsingModel::T</a></div><div class="ttdeci">double T</div><div class="ttdoc">The temperature of the model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00062">IsingModel.hpp:62</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a2b8ac43baefeb386186266d5aa4de348"><div class="ttname"><a href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel::L</a></div><div class="ttdeci">int L</div><div class="ttdoc">Size of the lattice.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00066">IsingModel.hpp:66</a></div></div> <div class="ttc" id="aclassIsingModel_html_a2b8ac43baefeb386186266d5aa4de348"><div class="ttname"><a href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel::L</a></div><div class="ttdeci">int L</div><div class="ttdoc">Size of the lattice.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00066">IsingModel.hpp:66</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a2c3c76c79717c968d7c227c58b46df41"><div class="ttname"><a href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">IsingModel::lattice</a></div><div class="ttdeci">arma::Mat&lt; int &gt; lattice</div><div class="ttdoc">matrix where element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00044">IsingModel.hpp:44</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a34a4710949b4a70f3e37ca223aefcf8a"><div class="ttname"><a href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice()</div><div class="ttdoc">Initialize the lattice with a random distribution of 1s and -1s.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00049">IsingModel.cpp:49</a></div></div> <div class="ttc" id="aclassIsingModel_html_a34a4710949b4a70f3e37ca223aefcf8a"><div class="ttname"><a href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice()</div><div class="ttdoc">Initialize the lattice with a random distribution of 1s and -1s.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00049">IsingModel.cpp:49</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div> <div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a59fced38c695e2fa647f53be81b9d2a1"><div class="ttname"><a href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a></div><div class="ttdeci">void initialize_energy()</div><div class="ttdoc">Initialize the energy of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00096">IsingModel.cpp:96</a></div></div> <div class="ttc" id="aclassIsingModel_html_a59fced38c695e2fa647f53be81b9d2a1"><div class="ttname"><a href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a></div><div class="ttdeci">void initialize_energy()</div><div class="ttdoc">Initialize the energy of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00096">IsingModel.cpp:96</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a6776109105051597c275670dabd0054a"><div class="ttname"><a href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a></div><div class="ttdeci">void initialize_neighbors()</div><div class="ttdoc">initialize the neighbors matrix.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00070">IsingModel.cpp:70</a></div></div> <div class="ttc" id="aclassIsingModel_html_a6776109105051597c275670dabd0054a"><div class="ttname"><a href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a></div><div class="ttdeci">void initialize_neighbors()</div><div class="ttdoc">initialize the neighbors matrix.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00070">IsingModel.cpp:70</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a926cf4964d190d2ce23e5a17201787a4"><div class="ttname"><a href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a></div><div class="ttdeci">void initialize_magnetization()</div><div class="ttdoc">Initialize the magnetization of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00088">IsingModel.cpp:88</a></div></div> <div class="ttc" id="aclassIsingModel_html_a926cf4964d190d2ce23e5a17201787a4"><div class="ttname"><a href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a></div><div class="ttdeci">void initialize_magnetization()</div><div class="ttdoc">Initialize the magnetization of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00088">IsingModel.cpp:88</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a94093aaf30facca62737f2ac381fdbcd"><div class="ttname"><a href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">IsingModel::neighbors</a></div><div class="ttdeci">arma::Mat&lt; int &gt; neighbors</div><div class="ttdoc">matrix with the neighbors of each element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00054">IsingModel.hpp:54</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aef7232b28df08e064ef58eb5ef32f738"><div class="ttname"><a href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">IsingModel::M</a></div><div class="ttdeci">int64_t M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00074">IsingModel.hpp:74</a></div></div> <div class="ttc" id="aclassIsingModel_html_aef7232b28df08e064ef58eb5ef32f738"><div class="ttname"><a href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">IsingModel::M</a></div><div class="ttdeci">int64_t M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00074">IsingModel.hpp:74</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div> <div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="aclassdata__t_html_a586475e0f71322dffda2e75f228ab24b"><div class="ttname"><a href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">data_t::M_abs</a></div><div class="ttdeci">double M_abs</div><div class="ttdoc">Absolute Magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00025">data_type.hpp:25</a></div></div> <div class="ttc" id="aclassdata__t_html_a586475e0f71322dffda2e75f228ab24b"><div class="ttname"><a href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">data_t::M_abs</a></div><div class="ttdeci">double M_abs</div><div class="ttdoc">Absolute Magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00025">data_type.hpp:25</a></div></div>
<div class="ttc" id="aclassdata__t_html_a6c1a196d96e177b11ca98c61fae35a2e"><div class="ttname"><a href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">data_t::E</a></div><div class="ttdeci">double E</div><div class="ttdoc">Energy.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00021">data_type.hpp:21</a></div></div> <div class="ttc" id="aclassdata__t_html_a6c1a196d96e177b11ca98c61fae35a2e"><div class="ttname"><a href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">data_t::E</a></div><div class="ttdeci">double E</div><div class="ttdoc">Energy.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00021">data_type.hpp:21</a></div></div>
<div class="ttc" id="aclassdata__t_html_a6cb96b4ff750ab29041038ca53f307cb"><div class="ttname"><a href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">data_t::operator+=</a></div><div class="ttdeci">data_t &amp; operator+=(const data_t &amp;b)</div><div class="ttdoc">Overload of the addition equals operator.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00150">data_type.hpp:150</a></div></div>
<div class="ttc" id="aclassdata__t_html_a71ae3cd4460f2c66239500c11804e70b"><div class="ttname"><a href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">data_t::M2</a></div><div class="ttdeci">double M2</div><div class="ttdoc">Magnetization squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00024">data_type.hpp:24</a></div></div> <div class="ttc" id="aclassdata__t_html_a71ae3cd4460f2c66239500c11804e70b"><div class="ttname"><a href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">data_t::M2</a></div><div class="ttdeci">double M2</div><div class="ttdoc">Magnetization squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00024">data_type.hpp:24</a></div></div>
<div class="ttc" id="aclassdata__t_html_abb622f9c6cc5ffb9dddb151d2e202f72"><div class="ttname"><a href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">data_t::E2</a></div><div class="ttdeci">double E2</div><div class="ttdoc">Energy squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00023">data_type.hpp:23</a></div></div> <div class="ttc" id="aclassdata__t_html_abb622f9c6cc5ffb9dddb151d2e202f72"><div class="ttname"><a href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">data_t::E2</a></div><div class="ttdeci">double E2</div><div class="ttdoc">Energy squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00023">data_type.hpp:23</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_a00367775d110a9537bd06bde2e630471"><div class="ttname"><a href="test__suite_8cpp.html#a00367775d110a9537bd06bde2e630471">EPS_2</a></div><div class="ttdeci">#define EPS_2</div><div class="ttdoc">The analytic expected energy for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00017">test_suite.cpp:17</a></div></div> <div class="ttc" id="atest__suite_8cpp_html_a00367775d110a9537bd06bde2e630471"><div class="ttname"><a href="test__suite_8cpp.html#a00367775d110a9537bd06bde2e630471">EPS_2</a></div><div class="ttdeci">#define EPS_2</div><div class="ttdoc">The analytic expected energy for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00017">test_suite.cpp:17</a></div></div>
@ -259,6 +231,7 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
<div class="ttc" id="atest__suite_8cpp_html_ad27c84dda71475ffd365c649b525199e"><div class="ttname"><a href="test__suite_8cpp.html#ad27c84dda71475ffd365c649b525199e">X_2</a></div><div class="ttdeci">#define X_2</div><div class="ttdoc">The analytic susceptibility for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00030">test_suite.cpp:30</a></div></div> <div class="ttc" id="atest__suite_8cpp_html_ad27c84dda71475ffd365c649b525199e"><div class="ttname"><a href="test__suite_8cpp.html#ad27c84dda71475ffd365c649b525199e">X_2</a></div><div class="ttdeci">#define X_2</div><div class="ttdoc">The analytic susceptibility for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00030">test_suite.cpp:30</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div> <div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_af02dd88b4d495baf7af5826d1481634c"><div class="ttname"><a href="test__suite_8cpp.html#af02dd88b4d495baf7af5826d1481634c">CV_2</a></div><div class="ttdeci">#define CV_2</div><div class="ttdoc">The analytic heat capacity for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00026">test_suite.cpp:26</a></div></div> <div class="ttc" id="atest__suite_8cpp_html_af02dd88b4d495baf7af5826d1481634c"><div class="ttname"><a href="test__suite_8cpp.html#af02dd88b4d495baf7af5826d1481634c">CV_2</a></div><div class="ttdeci">#define CV_2</div><div class="ttdoc">The analytic heat capacity for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00026">test_suite.cpp:26</a></div></div>
<div class="ttc" id="atestlib_8hpp_html"><div class="ttname"><a href="testlib_8hpp.html">testlib.hpp</a></div><div class="ttdoc">A small test library.</div></div>
<div class="ttc" id="atestlib_8hpp_html_a73d4f21ad937dbc50a0c0538c78fd4f9"><div class="ttname"><a href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a></div><div class="ttdeci">#define ASSERT(expr, msg)</div><div class="ttdoc">A prettier assertion function.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00031">testlib.hpp:31</a></div></div> <div class="ttc" id="atestlib_8hpp_html_a73d4f21ad937dbc50a0c0538c78fd4f9"><div class="ttname"><a href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a></div><div class="ttdeci">#define ASSERT(expr, msg)</div><div class="ttdoc">A prettier assertion function.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00031">testlib.hpp:31</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->

View File

@ -101,24 +101,14 @@ $(document).ready(function(){initNavTree('testlib_8cpp_source.html',''); initRes
<div class="headertitle"><div class="title">testlib.cpp</div></div> <div class="headertitle"><div class="title">testlib.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="testlib_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file testlib.cpp</span></div> <a href="testlib_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="testlib_8hpp.html">testlib.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Implementation of the testing library</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="testlib_8hpp.html" title="A small test library.">&quot;testlib.hpp&quot;</a></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span>details {</div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span>details {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7"> 15</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7">m_assert</a>(<span class="keywordtype">bool</span> expr, std::string expr_str, std::string f, std::string file,</div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7"> 15</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7">m_assert</a>(<span class="keywordtype">bool</span> expr, std::string expr_str, std::string f, std::string file,</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">int</span> line, std::string msg)</div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">int</span> line, std::string msg)</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span>{</div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span>{</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> std::function&lt;<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string &amp;)&gt; print_message =</div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> std::function&lt;void(<span class="keyword">const</span> std::string &amp;)&gt; print_message =</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> [](<span class="keyword">const</span> std::string &amp;msg) {</div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> [](<span class="keyword">const</span> std::string &amp;msg) {</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">if</span> (msg.size() &gt; 0) {</div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">if</span> (msg.size() &gt; 0) {</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> std::cout &lt;&lt; <span class="stringliteral">&quot;message: &quot;</span> &lt;&lt; msg &lt;&lt; <span class="stringliteral">&quot;\n\n&quot;</span>;</div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> std::cout &lt;&lt; <span class="stringliteral">&quot;message: &quot;</span> &lt;&lt; msg &lt;&lt; <span class="stringliteral">&quot;\n\n&quot;</span>;</div>
@ -127,7 +117,7 @@ $(document).ready(function(){initNavTree('testlib_8cpp_source.html',''); initRes
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::cout &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::cout &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> }</div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> }</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> };</div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> };</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::string new_assert(f.size() + (expr ? 4 : 6), <span class="stringliteral">&#39;-&#39;</span>);</div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::string new_assert(f.size() + (expr ? 4 : 6), <span class="charliteral">&#39;-&#39;</span>);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> std::cout &lt;&lt; <span class="stringliteral">&quot;\x1B[36m&quot;</span> &lt;&lt; new_assert &lt;&lt; <span class="stringliteral">&quot;\033[0m\n&quot;</span>;</div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> std::cout &lt;&lt; <span class="stringliteral">&quot;\x1B[36m&quot;</span> &lt;&lt; new_assert &lt;&lt; <span class="stringliteral">&quot;\033[0m\n&quot;</span>;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> std::cout &lt;&lt; f &lt;&lt; <span class="stringliteral">&quot;: &quot;</span>;</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> std::cout &lt;&lt; f &lt;&lt; <span class="stringliteral">&quot;: &quot;</span>;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">if</span> (expr) {</div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">if</span> (expr) {</div>
@ -143,6 +133,7 @@ $(document).ready(function(){initNavTree('testlib_8cpp_source.html',''); initRes
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span>} <span class="comment">// namespace details</span></div> <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span>} <span class="comment">// namespace details</span></div>
<div class="ttc" id="atestlib_8hpp_html"><div class="ttname"><a href="testlib_8hpp.html">testlib.hpp</a></div><div class="ttdoc">A small test library.</div></div>
<div class="ttc" id="atestlib_8hpp_html_a39abb7cba0535176ed62aae136d2fcc7"><div class="ttname"><a href="testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7">details::m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8cpp_source.html#l00015">testlib.cpp:15</a></div></div> <div class="ttc" id="atestlib_8hpp_html_a39abb7cba0535176ed62aae136d2fcc7"><div class="ttname"><a href="testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7">details::m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8cpp_source.html#l00015">testlib.cpp:15</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->

View File

@ -149,7 +149,7 @@ Functions</h2></td></tr>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<p>This a small testing library that is tailored for the needs of the project. Anything that is in the details namespace should not be used directly, or else it might cause undefined behavior if not used correctly.</p> <p>This a small testing library that is tailored for the needs of the project. Anything that is in the details namespace should not be used directly, or else it might cause undefined behavior if not used correctly.</p>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000014">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000004">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="testlib_8hpp_source.html">testlib.hpp</a>.</p> <p class="definition">Definition in file <a class="el" href="testlib_8hpp_source.html">testlib.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2> </div><h2 class="groupheader">Macro Definition Documentation</h2>

View File

@ -101,119 +101,55 @@ $(document).ready(function(){initNavTree('testlib_8hpp_source.html',''); initRes
<div class="headertitle"><div class="title">testlib.hpp</div></div> <div class="headertitle"><div class="title">testlib.hpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="testlib_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file testlib.hpp</span></div> <a href="testlib_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#ifndef __TESTLIB__</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#define __TESTLIB__</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief A small test library.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @details This a small testing library that is tailored for the needs of the</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * project. Anything that is in the details namespace should not be used</span></div>
<div class="line"><span class="lineno"> 12</span><span class="comment"> * directly, or else it might cause undefined behavior if not used correctly.</span></div>
<div class="line"><span class="lineno"> 13</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 14</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 15</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#</span><span class="preprocessor">ifndef</span> <span class="preprocessor">__TESTLIB__</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">__TESTLIB__</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">armadillo</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;armadillo&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">string</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">type_traits</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;type_traits&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">/** @def ASSERT(expr)</span></div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9"> 31</a></span><span class="preprocessor">#define ASSERT(expr, msg) \</span></div>
<div class="line"><span class="lineno"> 26</span><span class="comment"> * @brief A prettier assertion function.</span></div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor"> details::m_assert(expr, #expr, __METHOD_NAME__, __FILE__, __LINE__, msg)</span></div>
<div class="line"><span class="lineno"> 27</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 28</span><span class="comment"> * This macro calls the m_assert function which is a more informative</span></div>
<div class="line"><span class="lineno"> 29</span><span class="comment"> * assertion function than the regular assert function from cassert.</span></div>
<div class="line"><span class="lineno"> 30</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9"> 31</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">ASSERT</span><span class="preprocessor">(</span><span class="preprocessor">expr</span><span class="preprocessor">,</span> <span class="preprocessor">msg</span><span class="preprocessor">)</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">details</span><span class="preprocessor">::</span><span class="preprocessor">m_assert</span><span class="preprocessor">(</span><span class="preprocessor">expr</span><span class="preprocessor">,</span> <span class="preprocessor">#</span><span class="preprocessor">expr</span><span class="preprocessor">,</span> <a class="code hl_define" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">__METHOD_NAME__</a><span class="preprocessor">,</span> <span class="preprocessor">__FILE__</span><span class="preprocessor">,</span> <span class="preprocessor">__LINE__</span><span class="preprocessor">,</span> <span class="preprocessor">msg</span><span class="preprocessor">)</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="keyword">namespace </span>details {</div> <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="keyword">namespace </span>details {</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">/** @brief Test an expression, confirm that test is ok, or abort execution.</span></div> <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="keywordtype">void</span> m_assert(<span class="keywordtype">bool</span> expr, std::string expr_str, std::string func,</div>
<div class="line"><span class="lineno"> 37</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 38</span><span class="comment"> * @details This function takes in an expression and prints an OK message if</span></div>
<div class="line"><span class="lineno"> 39</span><span class="comment"> * it&#39;s true, or it prints a fail message and aborts execution if it fails.</span></div>
<div class="line"><span class="lineno"> 40</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 41</span><span class="comment"> * @param expr The expression to be evaluated</span></div>
<div class="line"><span class="lineno"> 42</span><span class="comment"> * @param expr_str The stringified version of the expression</span></div>
<div class="line"><span class="lineno"> 43</span><span class="comment"> * @param func The function name of the caller</span></div>
<div class="line"><span class="lineno"> 44</span><span class="comment"> * @param file The file of the caller</span></div>
<div class="line"><span class="lineno"> 45</span><span class="comment"> * @param line The line number where this function is called from</span></div>
<div class="line"><span class="lineno"> 46</span><span class="comment"> * @param msg The message to be displayed</span></div>
<div class="line"><span class="lineno"> 47</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="keywordtype">void</span> <a class="code hl_function" href="testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7">m_assert</a>(<span class="keywordtype">bool</span> expr, std::string expr_str, std::string func,</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> std::string file, <span class="keywordtype">int</span> line, std::string msg);</div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> std::string file, <span class="keywordtype">int</span> line, std::string msg);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>} <span class="comment">// namespace details</span></div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>} <span class="comment">// namespace details</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="keyword">namespace </span>testlib {</div> <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="keyword">namespace </span>testlib {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">/** @brief Test if two armadillo matrices/vectors are close to each other.</span></div>
<div class="line"><span class="lineno"> 55</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 56</span><span class="comment"> * @details This function takes in 2 matrices/vectors and checks if they are</span></div>
<div class="line"><span class="lineno"> 57</span><span class="comment"> * approximately equal to each other given a tolerance.</span></div>
<div class="line"><span class="lineno"> 58</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 59</span><span class="comment"> * @param a Matrix/vector a</span></div>
<div class="line"><span class="lineno"> 60</span><span class="comment"> * @param b Matrix/vector b</span></div>
<div class="line"><span class="lineno"> 61</span><span class="comment"> * @param tol The tolerance</span></div>
<div class="line"><span class="lineno"> 62</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 63</span><span class="comment"> * @return bool</span></div>
<div class="line"><span class="lineno"> 64</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="keyword">template</span> &lt;<span class="keyword">class </span>T,</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="keyword">template</span> &lt;<span class="keyword">class </span>T,</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">class</span> = <span class="keyword">typename</span> <a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">std</a>::<a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">enable_if</a>&lt;<a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">std</a>::<a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">is_arithmetic</a>&lt;<a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">T</a>&gt;::<a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">value</a>&gt;::<a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">type</a>&gt;</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">class </span>= <span class="keyword">typename</span> std::enable_if&lt;std::is_arithmetic&lt;T&gt;::value&gt;::type&gt;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea"> 67</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">close_to</a>(arma::Mat&lt;T&gt; &amp;a, arma::Mat&lt;T&gt; &amp;b, <span class="keywordtype">double</span> tol = 1e-8)</div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea"> 67</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">close_to</a>(arma::Mat&lt;T&gt; &amp;a, arma::Mat&lt;T&gt; &amp;b, <span class="keywordtype">double</span> tol = 1e-8)</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>{</div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>{</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (a.n_elem != b.n_elem) {</div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (a.n_elem != b.n_elem) {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; a.n_elem; i++) {</div> <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; a.n_elem; i++) {</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (!close_to(a(i), b(i))) {</div> <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">close_to</a>(a(i), b(i))) {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> }</div> <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> }</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div> <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>}</div> <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>}</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div> <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment">/** @brief Test if two numbers are close to each other.</span></div>
<div class="line"><span class="lineno"> 82</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 83</span><span class="comment"> * @details This function takes in 2 matrices/vectors and checks if they are</span></div>
<div class="line"><span class="lineno"> 84</span><span class="comment"> * approximately equal to each other given a tolerance.</span></div>
<div class="line"><span class="lineno"> 85</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 86</span><span class="comment"> * @param a Matrix/vector a</span></div>
<div class="line"><span class="lineno"> 87</span><span class="comment"> * @param b Matrix/vector b</span></div>
<div class="line"><span class="lineno"> 88</span><span class="comment"> * @param tol The tolerance</span></div>
<div class="line"><span class="lineno"> 89</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 90</span><span class="comment"> * @return bool</span></div>
<div class="line"><span class="lineno"> 91</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="keyword">template</span> &lt;<span class="keyword">class </span>T,</div> <div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="keyword">template</span> &lt;<span class="keyword">class </span>T,</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">class</span> = <span class="keyword">typename</span> <a class="code hl_function" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">std</a>::<a class="code hl_function" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">enable_if</a>&lt;<a class="code hl_function" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">std</a>::<a class="code hl_function" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">is_arithmetic</a>&lt;<a class="code hl_function" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">T</a>&gt;::<a class="code hl_function" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">value</a>&gt;::<a class="code hl_function" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">type</a>&gt;</div> <div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">class </span>= <span class="keyword">typename</span> std::enable_if&lt;std::is_arithmetic&lt;T&gt;::value&gt;::type&gt;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f"> 94</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">close_to</a>(T a, T b, <span class="keywordtype">double</span> tol = 1e-8)</div> <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f"> 94</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">close_to</a>(T a, T b, <span class="keywordtype">double</span> tol = 1e-8)</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>{</div> <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>{</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> std::fabs(a - b) &lt; tol;</div> <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> std::fabs(a - b) &lt; tol;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>}</div> <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>}</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div> <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment">/** @brief Test if two armadillo matrices/vectors are equal.</span></div>
<div class="line"><span class="lineno"> 100</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 101</span><span class="comment"> * @details This function takes in 2 matrices/vectors and checks if they are</span></div>
<div class="line"><span class="lineno"> 102</span><span class="comment"> * equal to each other. This should only be used for integral types.</span></div>
<div class="line"><span class="lineno"> 103</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 104</span><span class="comment"> * @param a Matrix/vector a</span></div>
<div class="line"><span class="lineno"> 105</span><span class="comment"> * @param b Matrix/vector b</span></div>
<div class="line"><span class="lineno"> 106</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 107</span><span class="comment"> * @return bool</span></div>
<div class="line"><span class="lineno"> 108</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="keyword">template</span> &lt;<span class="keyword">class </span>T,</div> <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="keyword">template</span> &lt;<span class="keyword">class </span>T,</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">class</span> = <span class="keyword">typename</span> <a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">std</a>::<a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">enable_if</a>&lt;<a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">std</a>::<a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">is_integral</a>&lt;<a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">T</a>&gt;::<a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">value</a>&gt;::<a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">type</a>&gt;</div> <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">class </span>= <span class="keyword">typename</span> std::enable_if&lt;std::is_integral&lt;T&gt;::value&gt;::type&gt;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3"> 111</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">is_equal</a>(arma::Mat&lt;T&gt; &amp;a, arma::Mat&lt;T&gt; &amp;b)</div> <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3"> 111</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">is_equal</a>(arma::Mat&lt;T&gt; &amp;a, arma::Mat&lt;T&gt; &amp;b)</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span>{</div> <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span>{</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; a.n_elem; i++) {</div> <div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; a.n_elem; i++) {</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span> (!(a(i) == b(i))) {</div> <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span> (!(a(i) == b(i))) {</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div> <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
@ -221,18 +157,11 @@ $(document).ready(function(){initNavTree('testlib_8hpp_source.html',''); initRes
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> <div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span>}</div> <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span>}</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div> <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment">/** @brief Test that all elements fulfill the condition.</span></div>
<div class="line"><span class="lineno"> 122</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 123</span><span class="comment"> * @param expr The boolean expression to apply to each element</span></div>
<div class="line"><span class="lineno"> 124</span><span class="comment"> * @param M The matrix/vector to iterate over</span></div>
<div class="line"><span class="lineno"> 125</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 126</span><span class="comment"> * @return bool</span></div>
<div class="line"><span class="lineno"> 127</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="keyword">template</span> &lt;<span class="keyword">class </span>T,</div> <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="keyword">template</span> &lt;<span class="keyword">class </span>T,</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">class</span> = <span class="keyword">typename</span> <a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">std</a>::<a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">enable_if</a>&lt;<a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">std</a>::<a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">is_arithmetic</a>&lt;<a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">T</a>&gt;::<a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">value</a>&gt;::<a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">type</a>&gt;</div> <div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">class </span>= <span class="keyword">typename</span> std::enable_if&lt;std::is_arithmetic&lt;T&gt;::value&gt;::type&gt;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb"> 130</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">assert_each</a>(std::function&lt;<span class="keywordtype">bool</span>(T)&gt; expr, arma::Mat&lt;T&gt; &amp;M)</div> <div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb"> 130</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">assert_each</a>(std::function&lt;<span class="keywordtype">bool</span>(T)&gt; expr, arma::Mat&lt;T&gt; &amp;M)</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span>{</div> <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span>{</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">for</span> (size_t i = 0; i &lt; M.n_elem; i++) {</div> <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; M.n_elem; i++) {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">if</span> (!expr(M(i))) {</div> <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">if</span> (!expr(M(i))) {</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> }</div> <div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> }</div>
@ -240,38 +169,11 @@ $(document).ready(function(){initNavTree('testlib_8hpp_source.html',''); initRes
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> <div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>}</div> <div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>}</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span>} <span class="comment">// namespace testlib</span></div> <div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span>} <span class="comment">// namespace testlib</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="preprocessor">#</span><span class="preprocessor">endif</span></div> <div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassIsingModelTest_html"><div class="ttname"><a href="classIsingModelTest.html">IsingModelTest</a></div><div class="ttdoc">Test class for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00036">test_suite.cpp:36</a></div></div>
<div class="ttc" id="aclassIsingModelTest_html_a4ace7013fa2d257ad1747961da6bc4de"><div class="ttname"><a href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">IsingModelTest::test_2x2_lattice</a></div><div class="ttdeci">int test_2x2_lattice(double tol, int max_cycles)</div><div class="ttdoc">Test numerical data with analytical data.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00076">test_suite.cpp:76</a></div></div>
<div class="ttc" id="aclassIsingModelTest_html_a717e5852ca51432a61fb6ed38da37931"><div class="ttname"><a href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">IsingModelTest::test_init_functions</a></div><div class="ttdeci">void test_init_functions()</div><div class="ttdoc">Test that initializing works as intended.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00040">test_suite.cpp:40</a></div></div>
<div class="ttc" id="aclassIsingModel_html"><div class="ttname"><a href="classIsingModel.html">IsingModel</a></div><div class="ttdoc">The Ising model in 2 dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00036">IsingModel.hpp:36</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a1c8a2a4331c7e60c3e1350c0cf8300b9"><div class="ttname"><a href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">IsingModel::E</a></div><div class="ttdeci">int64_t E</div><div class="ttdoc">The current energy state. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00070">IsingModel.hpp:70</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a20fc4c0c99d8a119f70a1614784d4e5c"><div class="ttname"><a href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">IsingModel::T</a></div><div class="ttdeci">double T</div><div class="ttdoc">The temperature of the model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00062">IsingModel.hpp:62</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a2b8ac43baefeb386186266d5aa4de348"><div class="ttname"><a href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel::L</a></div><div class="ttdeci">int L</div><div class="ttdoc">Size of the lattice.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00066">IsingModel.hpp:66</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a34a4710949b4a70f3e37ca223aefcf8a"><div class="ttname"><a href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice()</div><div class="ttdoc">Initialize the lattice with a random distribution of 1s and -1s.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00049">IsingModel.cpp:49</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a59fced38c695e2fa647f53be81b9d2a1"><div class="ttname"><a href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a></div><div class="ttdeci">void initialize_energy()</div><div class="ttdoc">Initialize the energy of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00096">IsingModel.cpp:96</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a6776109105051597c275670dabd0054a"><div class="ttname"><a href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a></div><div class="ttdeci">void initialize_neighbors()</div><div class="ttdoc">initialize the neighbors matrix.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00070">IsingModel.cpp:70</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a926cf4964d190d2ce23e5a17201787a4"><div class="ttname"><a href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a></div><div class="ttdeci">void initialize_magnetization()</div><div class="ttdoc">Initialize the magnetization of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00088">IsingModel.cpp:88</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aef7232b28df08e064ef58eb5ef32f738"><div class="ttname"><a href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">IsingModel::M</a></div><div class="ttdeci">int64_t M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00074">IsingModel.hpp:74</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="aclassdata__t_html_a586475e0f71322dffda2e75f228ab24b"><div class="ttname"><a href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">data_t::M_abs</a></div><div class="ttdeci">double M_abs</div><div class="ttdoc">Absolute Magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00025">data_type.hpp:25</a></div></div>
<div class="ttc" id="aclassdata__t_html_a6c1a196d96e177b11ca98c61fae35a2e"><div class="ttname"><a href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">data_t::E</a></div><div class="ttdeci">double E</div><div class="ttdoc">Energy.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00021">data_type.hpp:21</a></div></div>
<div class="ttc" id="aclassdata__t_html_a6cb96b4ff750ab29041038ca53f307cb"><div class="ttname"><a href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">data_t::operator+=</a></div><div class="ttdeci">data_t &amp; operator+=(const data_t &amp;b)</div><div class="ttdoc">Overload of the addition equals operator.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00150">data_type.hpp:150</a></div></div>
<div class="ttc" id="aclassdata__t_html_a71ae3cd4460f2c66239500c11804e70b"><div class="ttname"><a href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">data_t::M2</a></div><div class="ttdeci">double M2</div><div class="ttdoc">Magnetization squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00024">data_type.hpp:24</a></div></div>
<div class="ttc" id="aclassdata__t_html_abb622f9c6cc5ffb9dddb151d2e202f72"><div class="ttname"><a href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">data_t::E2</a></div><div class="ttdeci">double E2</div><div class="ttdoc">Energy squared.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00023">data_type.hpp:23</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_a00367775d110a9537bd06bde2e630471"><div class="ttname"><a href="test__suite_8cpp.html#a00367775d110a9537bd06bde2e630471">EPS_2</a></div><div class="ttdeci">#define EPS_2</div><div class="ttdoc">The analytic expected energy for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00017">test_suite.cpp:17</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_a9fd092d930430eb4693d93e0c9066605"><div class="ttname"><a href="test__suite_8cpp.html#a9fd092d930430eb4693d93e0c9066605">MAG_2</a></div><div class="ttdeci">#define MAG_2</div><div class="ttdoc">The analytic expected magnetization for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00022">test_suite.cpp:22</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_ad27c84dda71475ffd365c649b525199e"><div class="ttname"><a href="test__suite_8cpp.html#ad27c84dda71475ffd365c649b525199e">X_2</a></div><div class="ttdeci">#define X_2</div><div class="ttdoc">The analytic susceptibility for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00030">test_suite.cpp:30</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div>
<div class="ttc" id="atest__suite_8cpp_html_af02dd88b4d495baf7af5826d1481634c"><div class="ttname"><a href="test__suite_8cpp.html#af02dd88b4d495baf7af5826d1481634c">CV_2</a></div><div class="ttdeci">#define CV_2</div><div class="ttdoc">The analytic heat capacity for a lattice.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00026">test_suite.cpp:26</a></div></div>
<div class="ttc" id="atestlib_8hpp_html_a2cbf3a45367e903de6efbdbea3344cea"><div class="ttname"><a href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">testlib::close_to</a></div><div class="ttdeci">static bool close_to(arma::Mat&lt; T &gt; &amp;a, arma::Mat&lt; T &gt; &amp;b, double tol=1e-8)</div><div class="ttdoc">Test if two armadillo matrices/vectors are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00067">testlib.hpp:67</a></div></div> <div class="ttc" id="atestlib_8hpp_html_a2cbf3a45367e903de6efbdbea3344cea"><div class="ttname"><a href="testlib_8hpp.html#a2cbf3a45367e903de6efbdbea3344cea">testlib::close_to</a></div><div class="ttdeci">static bool close_to(arma::Mat&lt; T &gt; &amp;a, arma::Mat&lt; T &gt; &amp;b, double tol=1e-8)</div><div class="ttdoc">Test if two armadillo matrices/vectors are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00067">testlib.hpp:67</a></div></div>
<div class="ttc" id="atestlib_8hpp_html_a39abb7cba0535176ed62aae136d2fcc7"><div class="ttname"><a href="testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7">details::m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8cpp_source.html#l00015">testlib.cpp:15</a></div></div>
<div class="ttc" id="atestlib_8hpp_html_a3db67d8721d2f3cd626526b43186bcf3"><div class="ttname"><a href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">testlib::is_equal</a></div><div class="ttdeci">static bool is_equal(arma::Mat&lt; T &gt; &amp;a, arma::Mat&lt; T &gt; &amp;b)</div><div class="ttdoc">Test if two armadillo matrices/vectors are equal.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00111">testlib.hpp:111</a></div></div> <div class="ttc" id="atestlib_8hpp_html_a3db67d8721d2f3cd626526b43186bcf3"><div class="ttname"><a href="testlib_8hpp.html#a3db67d8721d2f3cd626526b43186bcf3">testlib::is_equal</a></div><div class="ttdeci">static bool is_equal(arma::Mat&lt; T &gt; &amp;a, arma::Mat&lt; T &gt; &amp;b)</div><div class="ttdoc">Test if two armadillo matrices/vectors are equal.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00111">testlib.hpp:111</a></div></div>
<div class="ttc" id="atestlib_8hpp_html_a44f47fa3c8654c09712572d75c0ffa7f"><div class="ttname"><a href="testlib_8hpp.html#a44f47fa3c8654c09712572d75c0ffa7f">testlib::close_to</a></div><div class="ttdeci">static bool close_to(T a, T b, double tol=1e-8)</div><div class="ttdoc">Test if two numbers are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00094">testlib.hpp:94</a></div></div>
<div class="ttc" id="atestlib_8hpp_html_a73d4f21ad937dbc50a0c0538c78fd4f9"><div class="ttname"><a href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a></div><div class="ttdeci">#define ASSERT(expr, msg)</div><div class="ttdoc">A prettier assertion function.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00031">testlib.hpp:31</a></div></div>
<div class="ttc" id="atestlib_8hpp_html_ab6585c8aa8c276a3442c67a57c8de6fb"><div class="ttname"><a href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">testlib::assert_each</a></div><div class="ttdeci">static bool assert_each(std::function&lt; bool(T)&gt; expr, arma::Mat&lt; T &gt; &amp;M)</div><div class="ttdoc">Test that all elements fulfill the condition.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00130">testlib.hpp:130</a></div></div> <div class="ttc" id="atestlib_8hpp_html_ab6585c8aa8c276a3442c67a57c8de6fb"><div class="ttname"><a href="testlib_8hpp.html#ab6585c8aa8c276a3442c67a57c8de6fb">testlib::assert_each</a></div><div class="ttdeci">static bool assert_each(std::function&lt; bool(T)&gt; expr, arma::Mat&lt; T &gt; &amp;M)</div><div class="ttdoc">Test that all elements fulfill the condition.</div><div class="ttdef"><b>Definition:</b> <a href="testlib_8hpp_source.html#l00130">testlib.hpp:130</a></div></div>
<div class="ttc" id="autils_8hpp_html_a60dca3177fb9cb5256609adc7af55168"><div class="ttname"><a href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">__METHOD_NAME__</a></div><div class="ttdeci">#define __METHOD_NAME__</div><div class="ttdoc">Get the name of the current method/function without the return type.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8hpp_source.html#l00045">utils.hpp:45</a></div></div> <div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -101,27 +101,15 @@ $(document).ready(function(){initNavTree('time_8cpp_source.html',''); initResiza
<div class="headertitle"><div class="title">time.cpp</div></div> <div class="headertitle"><div class="title">time.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="time_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file time.cpp</span></div> <a href="time_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="data__type_8hpp.html">data_type.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="monte__carlo_8hpp.html">monte_carlo.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 0.1</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Timing various things.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="data__type_8hpp.html" title="Header for the data_t type.">&quot;data_type.hpp&quot;</a></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="monte__carlo_8hpp.html" title="Functions for Monte Carlo simulations.">&quot;monte_carlo.hpp&quot;</a></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">getopt</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;getopt.h&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">omp</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;omp.h&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">ostream</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">/** @brief Time phase transition using different lattice sizes.</span></div>
<div class="line"><span class="lineno"> 21</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5"> 22</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">time_lattice_sizes</a>()</div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5"> 22</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">time_lattice_sizes</a>()</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::string outfile = <span class="stringliteral">&quot;data/hp/timing/lattice_sizes.txt&quot;</span>;</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::string outfile = <span class="stringliteral">&quot;data/hp/timing/lattice_sizes.txt&quot;</span>;</div>
@ -129,26 +117,24 @@ $(document).ready(function(){initNavTree('time_8cpp_source.html',''); initResiza
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">int</span> lattice_sizes[] = {20, 40, 60, 80, 100};</div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">int</span> lattice_sizes[] = {20, 40, 60, 80, 100};</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> utils<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">::</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">(</a>utils<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">::</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">(</a>outfile<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">)</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">)</a>;</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> utils::mkpath(utils::dirname(outfile));</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> ofile.open(outfile);</div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> ofile.open(outfile);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">double</span> t0, t1, t2;</div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">double</span> t0, t1, t2;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> L : lattice_sizes) {</div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> L : lattice_sizes) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> t0 = omp_get_wtime();</div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> t0 = omp_get_wtime();</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(L, 2.1, 2.4, 40, 20000,</div> <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> montecarlo::phase_transition(L, 2.1, 2.4, 40, 20000,</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>, <span class="stringliteral">&quot;/dev/null&quot;</span>, 0);</div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> montecarlo::mcmc_parallel, <span class="stringliteral">&quot;/dev/null&quot;</span>, 0);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> t1 = omp_get_wtime();</div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> t1 = omp_get_wtime();</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(L, 2.1, 2.4, 40, 20000,</div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> montecarlo::phase_transition(L, 2.1, 2.4, 40, 20000,</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a>, <span class="stringliteral">&quot;/dev/null&quot;</span>, 0);</div> <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> montecarlo::mcmc_serial, <span class="stringliteral">&quot;/dev/null&quot;</span>, 0);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> t2 = omp_get_wtime();</div> <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> t2 = omp_get_wtime();</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> ofile &lt;&lt; utils<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">::</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>L<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> ofile &lt;&lt; utils::scientific_format(L) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> &lt;&lt; utils<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">::</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>t1 - t0<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> &lt;&lt; utils::scientific_format(t1 - t0) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> &lt;&lt; utils<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">::</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>t2 - t1<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> &lt;&lt; utils::scientific_format(t2 - t1) &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> }</div> <div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> }</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> ofile.close();</div> <div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> ofile.close();</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>}</div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>}</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div> <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">/** @brief Time phase transition using different sample sizes.</span></div>
<div class="line"><span class="lineno"> 48</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4"> 49</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">time_sample_sizes</a>()</div> <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4"> 49</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">time_sample_sizes</a>()</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{</div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> std::string outfile = <span class="stringliteral">&quot;data/hp/timing/sample_sizes.txt&quot;</span>;</div> <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> std::string outfile = <span class="stringliteral">&quot;data/hp/timing/sample_sizes.txt&quot;</span>;</div>
@ -156,26 +142,25 @@ $(document).ready(function(){initNavTree('time_8cpp_source.html',''); initResiza
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div> <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">int</span> sample_sizes[] = {1000, 10000, 100000};</div> <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">int</span> sample_sizes[] = {1000, 10000, 100000};</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div> <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> utils<a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">::</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">(</a>utils<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">::</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a><a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">(</a>outfile<a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">)</a><a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">)</a>;</div> <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> utils::mkpath(utils::dirname(outfile));</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> ofile.open(outfile);</div> <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> ofile.open(outfile);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">double</span> t0, t1, t2;</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">double</span> t0, t1, t2;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> samples : sample_sizes) {</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> samples : sample_sizes) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> t0 = omp_get_wtime();</div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> t0 = omp_get_wtime();</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(20, 2.1, 2.4, 40, samples,</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> montecarlo::phase_transition(20, 2.1, 2.4, 40, samples,</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">mcmc_parallel</a>, <span class="stringliteral">&quot;/dev/null&quot;</span>, 0);</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> montecarlo::mcmc_parallel, <span class="stringliteral">&quot;/dev/null&quot;</span>, 0);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> t1 = omp_get_wtime();</div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> t1 = omp_get_wtime();</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">phase_transition</a>(20, 2.1, 2.4, 40, samples,</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> montecarlo::phase_transition(20, 2.1, 2.4, 40, samples,</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> montecarlo<a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">::</a><a class="code hl_function" href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">mcmc_serial</a>, <span class="stringliteral">&quot;/dev/null&quot;</span>, 0);</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> montecarlo::mcmc_serial, <span class="stringliteral">&quot;/dev/null&quot;</span>, 0);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> t2 = omp_get_wtime();</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> t2 = omp_get_wtime();</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> ofile &lt;&lt; utils<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">::</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>samples<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> ofile &lt;&lt; utils::scientific_format(samples) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> &lt;&lt; utils<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">::</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>t1 - t0<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;,&#39;</span></div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> &lt;&lt; utils::scientific_format(t1 - t0) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> &lt;&lt; utils<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">::</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a><a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">(</a>t2 - t1<a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">)</a> &lt;&lt; <span class="stringliteral">&#39;\n&#39;</span>;</div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> &lt;&lt; utils::scientific_format(t2 - t1) &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> ofile.close();</div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> ofile.close();</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>}</div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>}</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div> <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">/** @brief A function that displays how to use the program and quits.*/</span></div> <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="time_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 75</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="time_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="time_8cpp.html#ac907e18135856c90366aaa599a9e10b1"> 75</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(std::string filename)</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span>{</div> <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span>{</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot; OPTION ...\n&quot;</span></div> <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Usage: &quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot; OPTION ...\n&quot;</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> &lt;&lt; <span class="stringliteral">&quot;At least one option should be used.\n\n&quot;</span></div> <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> &lt;&lt; <span class="stringliteral">&quot;At least one option should be used.\n\n&quot;</span></div>
@ -186,8 +171,7 @@ $(document).ready(function(){initNavTree('time_8cpp_source.html',''); initResiza
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> exit(-1);</div> <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> exit(-1);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>}</div> <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>}</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div> <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment">/** @brief The main function.*/</span></div> <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="time_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 87</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="time_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 87</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span>{</div> <div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span>{</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">struct </span>option long_options[] = {{<span class="stringliteral">&quot;all&quot;</span>, 0, 0, 0},</div> <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">struct </span>option long_options[] = {{<span class="stringliteral">&quot;all&quot;</span>, 0, 0, 0},</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> {<span class="stringliteral">&quot;time-lattice-sizes&quot;</span>, 0, 0, 0},</div> <div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> {<span class="stringliteral">&quot;time-lattice-sizes&quot;</span>, 0, 0, 0},</div>
@ -208,38 +192,35 @@ $(document).ready(function(){initNavTree('time_8cpp_source.html',''); initResiza
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">case</span> 0:</div> <div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">case</span> 0:</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">switch</span> (option_index) {</div> <div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">switch</span> (option_index) {</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">case</span> 0:</div> <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">case</span> 0:</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">time_lattice_sizes</a><a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">(</a><a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">)</a>;</div> <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">time_lattice_sizes</a>();</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">time_sample_sizes</a><a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">(</a><a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">)</a>;</div> <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">time_sample_sizes</a>();</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">case</span> 1:</div> <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">case</span> 1:</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">time_lattice_sizes</a><a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">(</a><a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">)</a>;</div> <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_function" href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">time_lattice_sizes</a>();</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">case</span> 2:</div> <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">case</span> 2:</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">time_sample_sizes</a><a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">(</a><a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">)</a>;</div> <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_function" href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">time_sample_sizes</a>();</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">case</span> 3: <span class="comment">// Not a mistake. This just goes to the default.</span></div> <div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">case</span> 3: <span class="comment">// Not a mistake. This just goes to the default.</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> usage(argv[0]);</div> <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_function" href="time_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div> <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">break</span>;</div> <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">case</span> <span class="stringliteral">&#39;h&#39;</span>:</div> <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;h&#39;</span>:</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">default</span>:</div> <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> usage(argv[0]);</div> <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_function" href="time_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a>(argv[0]);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> }</div> <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> }</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div> <div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div> <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">return</span> 0;</div> <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span>}</div> <div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span>}</div>
<div class="ttc" id="amain_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00125">main.cpp:125</a></div></div> <div class="ttc" id="adata__type_8hpp_html"><div class="ttname"><a href="data__type_8hpp.html">data_type.hpp</a></div><div class="ttdoc">Header for the data_t type.</div></div>
<div class="ttc" id="amain_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="main_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00110">main.cpp:110</a></div></div> <div class="ttc" id="amonte__carlo_8hpp_html"><div class="ttname"><a href="monte__carlo_8hpp.html">monte_carlo.hpp</a></div><div class="ttdoc">Functions for Monte Carlo simulations.</div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a34e9c3e24f26760693266b8a7b6b3d21"><div class="ttname"><a href="monte__carlo_8hpp.html#a34e9c3e24f26760693266b8a7b6b3d21">montecarlo::phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, int cycles, std::function&lt; data_t(int, double, int, int)&gt; monte_carlo, std::string outfile, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Perform the MCMC algorithm using a range of temperatures.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00155">monte_carlo.cpp:155</a></div></div> <div class="ttc" id="atest__suite_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">The main function.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00110">test_suite.cpp:110</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae1e7f904ecfc3d8f3c4dd1ef155dd771"><div class="ttname"><a href="monte__carlo_8hpp.html#ae1e7f904ecfc3d8f3c4dd1ef155dd771">montecarlo::mcmc_parallel</a></div><div class="ttdeci">data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00127">monte_carlo.cpp:127</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ae67483ff00d1b0594d543261c8283ffd"><div class="ttname"><a href="monte__carlo_8hpp.html#ae67483ff00d1b0594d543261c8283ffd">montecarlo::mcmc_serial</a></div><div class="ttdeci">data_t mcmc_serial(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)</div><div class="ttdoc">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.</div><div class="ttdef"><b>Definition:</b> <a href="monte__carlo_8cpp_source.html#l00108">monte_carlo.cpp:108</a></div></div>
<div class="ttc" id="atime_8cpp_html_aa224066f42c47cae5fbd457c1948e4a5"><div class="ttname"><a href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">time_lattice_sizes</a></div><div class="ttdeci">void time_lattice_sizes()</div><div class="ttdoc">Time phase transition using different lattice sizes.</div><div class="ttdef"><b>Definition:</b> <a href="time_8cpp_source.html#l00022">time.cpp:22</a></div></div> <div class="ttc" id="atime_8cpp_html_aa224066f42c47cae5fbd457c1948e4a5"><div class="ttname"><a href="time_8cpp.html#aa224066f42c47cae5fbd457c1948e4a5">time_lattice_sizes</a></div><div class="ttdeci">void time_lattice_sizes()</div><div class="ttdoc">Time phase transition using different lattice sizes.</div><div class="ttdef"><b>Definition:</b> <a href="time_8cpp_source.html#l00022">time.cpp:22</a></div></div>
<div class="ttc" id="atime_8cpp_html_ac907e18135856c90366aaa599a9e10b1"><div class="ttname"><a href="time_8cpp.html#ac907e18135856c90366aaa599a9e10b1">usage</a></div><div class="ttdeci">void usage(std::string filename)</div><div class="ttdoc">A function that displays how to use the program and quits.</div><div class="ttdef"><b>Definition:</b> <a href="time_8cpp_source.html#l00075">time.cpp:75</a></div></div>
<div class="ttc" id="atime_8cpp_html_ace9eb0821fe4edf19cf2e7d8ffe6efb4"><div class="ttname"><a href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">time_sample_sizes</a></div><div class="ttdeci">void time_sample_sizes()</div><div class="ttdoc">Time phase transition using different sample sizes.</div><div class="ttdef"><b>Definition:</b> <a href="time_8cpp_source.html#l00049">time.cpp:49</a></div></div> <div class="ttc" id="atime_8cpp_html_ace9eb0821fe4edf19cf2e7d8ffe6efb4"><div class="ttname"><a href="time_8cpp.html#ace9eb0821fe4edf19cf2e7d8ffe6efb4">time_sample_sizes</a></div><div class="ttdeci">void time_sample_sizes()</div><div class="ttdoc">Time phase transition using different sample sizes.</div><div class="ttdef"><b>Definition:</b> <a href="time_8cpp_source.html#l00049">time.cpp:49</a></div></div>
<div class="ttc" id="autils_8hpp_html_a2b45adc86b70f42021582994e83fa00d"><div class="ttname"><a href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">utils::mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00032">utils.cpp:32</a></div></div> <div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
<div class="ttc" id="autils_8hpp_html_a3529a74fd2a25d24de73d9d4e1c90835"><div class="ttname"><a href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00016">utils.cpp:16</a></div></div>
<div class="ttc" id="autils_8hpp_html_aed026119193a9bbe076671809ff0f430"><div class="ttname"><a href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">utils::dirname</a></div><div class="ttdeci">std::string dirname(const std::string &amp;path)</div><div class="ttdoc">Get the directory name of the path.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00058">utils.cpp:58</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -101,18 +101,8 @@ $(document).ready(function(){initNavTree('utils_8cpp_source.html',''); initResiz
<div class="headertitle"><div class="title">utils.cpp</div></div> <div class="headertitle"><div class="title">utils.cpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="utils_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file utils.cpp</span></div> <a href="utils_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html">utils.hpp</a>&quot;</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Implementation of the utils</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <a class="code" href="utils_8hpp.html" title="Function prototypes and macros that are useful.">&quot;utils.hpp&quot;</a></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div> <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span>utils {</div> <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span>utils {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div> <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
@ -123,11 +113,11 @@ $(document).ready(function(){initNavTree('utils_8cpp_source.html',''); initResiz
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">return</span> ss.str();</div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">return</span> ss.str();</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span>}</div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span>}</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="utils_8hpp.html#ab3e89176433ddc9ba721b2eba3d08357"> 23</a></span>std::string <a class="code hl_function" href="utils_8hpp.html#ab3e89176433ddc9ba721b2eba3d08357">scientific_format</a>(<span class="keyword">const</span> std::vector&lt;<span class="keywordtype">double</span>&gt; &amp;v, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> prec)</div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="utils_8hpp.html#ab3e89176433ddc9ba721b2eba3d08357"> 23</a></span>std::string <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;v, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> prec)</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>{</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>{</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> std::stringstream ss;</div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> std::stringstream ss;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">for</span> (<span class="keywordtype">double</span> elem : v) {</div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">for</span> (<span class="keywordtype">double</span> elem : v) {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> ss &lt;&lt; scientific_format(elem, width, prec);</div> <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> ss &lt;&lt; <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a>(elem, width, prec);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> }</div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> }</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">return</span> ss.str();</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">return</span> ss.str();</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>}</div> <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>}</div>
@ -138,12 +128,12 @@ $(document).ready(function(){initNavTree('utils_8cpp_source.html',''); initResiz
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> std::string::size_type pos = -1;</div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> std::string::size_type pos = -1;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">struct </span>stat buf;</div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">struct </span>stat buf;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (path.back() != <span class="stringliteral">&#39;/&#39;</span>) {</div> <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (path.back() != <span class="charliteral">&#39;/&#39;</span>) {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> path += <span class="stringliteral">&#39;/&#39;</span>;</div> <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> path += <span class="charliteral">&#39;/&#39;</span>;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> pos++;</div> <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> pos++;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> pos = path.find(<span class="stringliteral">&#39;/&#39;</span>, pos);</div> <div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> pos = path.find(<span class="charliteral">&#39;/&#39;</span>, pos);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (pos != std::string::npos) {</div> <div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (pos != std::string::npos) {</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> cur_dir = path.substr(0, pos);</div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> cur_dir = path.substr(0, pos);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">if</span> (mkdir(cur_dir.c_str(), mode) != 0</div> <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">if</span> (mkdir(cur_dir.c_str(), mode) != 0</div>
@ -165,8 +155,8 @@ $(document).ready(function(){initNavTree('utils_8cpp_source.html',''); initResiz
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6"> 63</a></span>std::string <a class="code hl_function" href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">concatpath</a>(<span class="keyword">const</span> std::string &amp;left, <span class="keyword">const</span> std::string &amp;right)</div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6"> 63</a></span>std::string <a class="code hl_function" href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">concatpath</a>(<span class="keyword">const</span> std::string &amp;left, <span class="keyword">const</span> std::string &amp;right)</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>{</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>{</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">if</span> (left.back() != <span class="stringliteral">&#39;/&#39;</span> <span class="keyword">and</span> right.front() != <span class="stringliteral">&#39;/&#39;</span>) {</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">if</span> (left.back() != <span class="charliteral">&#39;/&#39;</span> and right.front() != <span class="charliteral">&#39;/&#39;</span>) {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> left + <span class="stringliteral">&#39;/&#39;</span> + right;</div> <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> left + <span class="charliteral">&#39;/&#39;</span> + right;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div> <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">else</span> {</div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> left + right;</div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> left + right;</div>
@ -174,9 +164,9 @@ $(document).ready(function(){initNavTree('utils_8cpp_source.html',''); initResiz
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>}</div> <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>}</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div> <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>} <span class="comment">// namespace utils</span></div> <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>} <span class="comment">// namespace utils</span></div>
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
<div class="ttc" id="autils_8hpp_html_a2b45adc86b70f42021582994e83fa00d"><div class="ttname"><a href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">utils::mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00032">utils.cpp:32</a></div></div> <div class="ttc" id="autils_8hpp_html_a2b45adc86b70f42021582994e83fa00d"><div class="ttname"><a href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">utils::mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00032">utils.cpp:32</a></div></div>
<div class="ttc" id="autils_8hpp_html_a3529a74fd2a25d24de73d9d4e1c90835"><div class="ttname"><a href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00016">utils.cpp:16</a></div></div> <div class="ttc" id="autils_8hpp_html_a3529a74fd2a25d24de73d9d4e1c90835"><div class="ttname"><a href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00016">utils.cpp:16</a></div></div>
<div class="ttc" id="autils_8hpp_html_ab3e89176433ddc9ba721b2eba3d08357"><div class="ttname"><a href="utils_8hpp.html#ab3e89176433ddc9ba721b2eba3d08357">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(const std::vector&lt; double &gt; &amp;v, int width=20, int prec=10)</div><div class="ttdoc">Turns a vector of doubles into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00023">utils.cpp:23</a></div></div>
<div class="ttc" id="autils_8hpp_html_ae91fad89394d745d544737e43524bde6"><div class="ttname"><a href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">utils::concatpath</a></div><div class="ttdeci">std::string concatpath(const std::string &amp;left, const std::string &amp;right)</div><div class="ttdoc">Take 2 strings and concatenate them and make sure there is a directory separator (/) between them.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00063">utils.cpp:63</a></div></div> <div class="ttc" id="autils_8hpp_html_ae91fad89394d745d544737e43524bde6"><div class="ttname"><a href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">utils::concatpath</a></div><div class="ttdeci">std::string concatpath(const std::string &amp;left, const std::string &amp;right)</div><div class="ttdoc">Take 2 strings and concatenate them and make sure there is a directory separator (/) between them.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00063">utils.cpp:63</a></div></div>
<div class="ttc" id="autils_8hpp_html_aed026119193a9bbe076671809ff0f430"><div class="ttname"><a href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">utils::dirname</a></div><div class="ttdeci">std::string dirname(const std::string &amp;path)</div><div class="ttdoc">Get the directory name of the path.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00058">utils.cpp:58</a></div></div> <div class="ttc" id="autils_8hpp_html_aed026119193a9bbe076671809ff0f430"><div class="ttname"><a href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">utils::dirname</a></div><div class="ttdeci">std::string dirname(const std::string &amp;path)</div><div class="ttdoc">Get the directory name of the path.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00058">utils.cpp:58</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->

View File

@ -153,7 +153,7 @@ Functions</h2></td></tr>
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl> Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl> <dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
<p>These utility function are mainly for convenience and aren't directly related to the project. Anything that is in the details namespace should not be used directly, or else it might cause undefined behavior if not used correctly.</p> <p>These utility function are mainly for convenience and aren't directly related to the project. Anything that is in the details namespace should not be used directly, or else it might cause undefined behavior if not used correctly.</p>
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000007">Bug:</a></b></dt><dd>No known bugs </dd></dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000005">Bug:</a></b></dt><dd>No known bugs </dd></dl>
<p class="definition">Definition in file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p> <p class="definition">Definition in file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2> </div><h2 class="groupheader">Macro Definition Documentation</h2>

View File

@ -101,68 +101,32 @@ $(document).ready(function(){initNavTree('utils_8hpp_source.html',''); initResiz
<div class="headertitle"><div class="title">utils.hpp</div></div> <div class="headertitle"><div class="title">utils.hpp</div></div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<a href="utils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** @file utils.hpp</span></div> <a href="utils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><span class="lineno"> 2</span><span class="comment"> *</span></div> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#ifndef __UTILS__</span></div>
<div class="line"><span class="lineno"> 3</span><span class="comment"> * @author Cory Alexander Balaton (coryab)</span></div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#define __UTILS__</span></div>
<div class="line"><span class="lineno"> 4</span><span class="comment"> * @author Janita Ovidie Sandtrøen Willumsen (janitaws)</span></div>
<div class="line"><span class="lineno"> 5</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 6</span><span class="comment"> * @version 1.0</span></div>
<div class="line"><span class="lineno"> 7</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 8</span><span class="comment"> * @brief Function prototypes and macros that are useful.</span></div>
<div class="line"><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 10</span><span class="comment"> * These utility function are mainly for convenience and aren&#39;t directly</span></div>
<div class="line"><span class="lineno"> 11</span><span class="comment"> * related to the project. Anything that is in the details namespace should</span></div>
<div class="line"><span class="lineno"> 12</span><span class="comment"> * not be used directly, or else it might cause undefined behavior if not used</span></div>
<div class="line"><span class="lineno"> 13</span><span class="comment"> * correctly.</span></div>
<div class="line"><span class="lineno"> 14</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 15</span><span class="comment"> * @bug No known bugs</span></div>
<div class="line"><span class="lineno"> 16</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#</span><span class="preprocessor">ifndef</span> <span class="preprocessor">__UTILS__</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">__UTILS__</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">armadillo</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;armadillo&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">iomanip</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;iomanip&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">sstream</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;sstream&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">string</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">sys</span><span class="preprocessor">/</span><span class="preprocessor">stat</span><span class="preprocessor">.</span><span class="preprocessor">h</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;sys/stat.h&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="preprocessor">&lt;</span><span class="preprocessor">vector</span><span class="preprocessor">&gt;</span></div> <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div> <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">/** @def DEBUG(msg)</span></div> <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#ifdef DBG</span></div>
<div class="line"><span class="lineno"> 28</span><span class="comment"> * @brief Writes a debug message</span></div> <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#define DEBUG(msg) \</span></div>
<div class="line"><span class="lineno"> 29</span><span class="comment"> *</span></div> <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor"> std::cout &lt;&lt; __FILE__ &lt;&lt; &quot; &quot;</span> &lt;&lt; __LINE__ &lt;&lt; &quot;: &quot; &lt;&lt; msg &lt;&lt; std::endl</div>
<div class="line"><span class="lineno"> 30</span><span class="comment"> * This macro writes a debug message that includes the filename,</span></div> <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#else</span></div>
<div class="line"><span class="lineno"> 31</span><span class="comment"> * line number, and a custom message. The function is wrapped in an ifdef</span></div> <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b"> 39</a></span><span class="preprocessor">#define DEBUG(msg)</span></div>
<div class="line"><span class="lineno"> 32</span><span class="comment"> * that checks if DBG is defined, so one can choose to display the debug</span></div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#endif</span></div>
<div class="line"><span class="lineno"> 33</span><span class="comment"> * messages by adding the -DDBG flag when compiling.</span></div>
<div class="line"><span class="lineno"> 34</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#</span><span class="preprocessor">ifdef</span> <span class="preprocessor">DBG</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">DEBUG</span><span class="preprocessor">(</span><span class="preprocessor">msg</span><span class="preprocessor">)</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">cout</span> <span class="preprocessor">&lt;&lt;</span> <span class="preprocessor">__FILE__</span> <span class="preprocessor">&lt;&lt;</span> <span class="stringliteral">&quot; &quot;</span> <span class="preprocessor">&lt;&lt;</span> <span class="preprocessor">__LINE__</span> <span class="preprocessor">&lt;&lt;</span> <span class="stringliteral">&quot;: &quot;</span> <span class="preprocessor">&lt;&lt;</span> <span class="preprocessor">msg</span> <span class="preprocessor">&lt;&lt;</span> <span class="preprocessor">std</span><span class="preprocessor">::</span><span class="preprocessor">endl</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#</span><span class="preprocessor">else</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b"> 39</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">DEBUG</span><span class="preprocessor">(</span><span class="preprocessor">msg</span><span class="preprocessor">)</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#</span><span class="preprocessor">endif</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div> <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">/** @def __METHOD_NAME__</span></div> <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168"> 45</a></span><span class="preprocessor">#define __METHOD_NAME__ details::methodName(__PRETTY_FUNCTION__)</span></div>
<div class="line"><span class="lineno"> 43</span><span class="comment"> * @brief Get the name of the current method/function without the return type.</span></div>
<div class="line"><span class="lineno"> 44</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168"> 45</a></span><span class="preprocessor">#</span><span class="preprocessor">define</span> <span class="preprocessor">__METHOD_NAME__</span> <span class="preprocessor">details</span><span class="preprocessor">::</span><span class="preprocessor">methodName</span><span class="preprocessor">(</span><span class="keyword">__PRETTY_FUNCTION__</span><span class="preprocessor">)</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div> <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keyword">namespace </span>details {</div> <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keyword">namespace </span>details {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment">/** @brief Takes in the __PRETTY_FUNCTION__ string and removes the return type.</span></div>
<div class="line"><span class="lineno"> 49</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 50</span><span class="comment"> * @details This function should only be used for the __METHOD_NAME__ macro,</span></div>
<div class="line"><span class="lineno"> 51</span><span class="comment"> * since it takes the output from __PRETTY_FUNCTION__ and strips the return</span></div>
<div class="line"><span class="lineno"> 52</span><span class="comment"> * type.</span></div>
<div class="line"><span class="lineno"> 53</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 54</span><span class="comment"> * @param pretty_function The string from __PRETTY_FUNCTION__</span></div>
<div class="line"><span class="lineno"> 55</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 56</span><span class="comment"> * @return std::string</span></div>
<div class="line"><span class="lineno"> 57</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346"> 58</a></span><span class="keyword">inline</span> std::string <a class="code hl_function" href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346">methodName</a>(<span class="keyword">const</span> std::string &amp;pretty_function)</div> <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346"> 58</a></span><span class="keyword">inline</span> std::string <a class="code hl_function" href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346">methodName</a>(<span class="keyword">const</span> std::string &amp;pretty_function)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>{</div> <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>{</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> size_t colons = pretty_function.find(<span class="stringliteral">&quot;::&quot;</span>);</div> <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">size_t</span> colons = pretty_function.find(<span class="stringliteral">&quot;::&quot;</span>);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> size_t begin = pretty_function.substr(0, colons).rfind(<span class="stringliteral">&quot; &quot;</span>) + 1;</div> <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">size_t</span> begin = pretty_function.substr(0, colons).rfind(<span class="stringliteral">&quot; &quot;</span>) + 1;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> size_t end = pretty_function.rfind(<span class="stringliteral">&quot;(&quot;</span>) - begin;</div> <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">size_t</span> end = pretty_function.rfind(<span class="stringliteral">&quot;(&quot;</span>) - begin;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div> <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> pretty_function.substr(begin, end) + <span class="stringliteral">&quot;()&quot;</span>;</div> <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> pretty_function.substr(begin, end) + <span class="stringliteral">&quot;()&quot;</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>}</div> <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>}</div>
@ -171,102 +135,23 @@ $(document).ready(function(){initNavTree('utils_8hpp_source.html',''); initResiz
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div> <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="keyword">namespace </span>utils {</div> <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="keyword">namespace </span>utils {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div> <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment">/** @brief Turns a double into a string written in scientific format.</span></div>
<div class="line"><span class="lineno"> 72</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 73</span><span class="comment"> * @details The code is stolen from https://github.com/anderkve/FYS3150.</span></div>
<div class="line"><span class="lineno"> 74</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 75</span><span class="comment"> * @param d The number to stringify</span></div>
<div class="line"><span class="lineno"> 76</span><span class="comment"> * @param width The reserved width of the string</span></div>
<div class="line"><span class="lineno"> 77</span><span class="comment"> * @param prec The precision of the stringified number</span></div>
<div class="line"><span class="lineno"> 78</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 79</span><span class="comment"> * @return std::string</span></div>
<div class="line"><span class="lineno"> 80</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>std::string <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a>(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> width = 20, <span class="keywordtype">int</span> prec = 10);</div> <div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>std::string <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a>(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> width = 20, <span class="keywordtype">int</span> prec = 10);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div> <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment">/** @brief Turns a vector of doubles into a string written in scientific</span></div> <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>std::string <a class="code hl_function" href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">scientific_format</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;v, <span class="keywordtype">int</span> width = 20,</div>
<div class="line"><span class="lineno"> 84</span><span class="comment"> * format.</span></div>
<div class="line"><span class="lineno"> 85</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 86</span><span class="comment"> * @details The code is stolen from https://github.com/anderkve/FYS3150.</span></div>
<div class="line"><span class="lineno"> 87</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 88</span><span class="comment"> * @param v The vector to stringify</span></div>
<div class="line"><span class="lineno"> 89</span><span class="comment"> * @param width The reserved width of the string</span></div>
<div class="line"><span class="lineno"> 90</span><span class="comment"> * @param prec The precision of the stringified number</span></div>
<div class="line"><span class="lineno"> 91</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 92</span><span class="comment"> * @return std::string</span></div>
<div class="line"><span class="lineno"> 93</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>std::string <a class="code hl_function" href="utils_8hpp.html#ab3e89176433ddc9ba721b2eba3d08357">scientific_format</a>(<span class="keyword">const</span> std::vector&lt;<span class="keywordtype">double</span>&gt; &amp;v, <span class="keywordtype">int</span> width = 20,</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">int</span> prec = 10);</div> <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">int</span> prec = 10);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div> <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment">/** @brief Make path given.</span></div>
<div class="line"><span class="lineno"> 98</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 99</span><span class="comment"> * @details This tries to be the equivalent to &quot;mkdir -p&quot; and creates a new</span></div>
<div class="line"><span class="lineno"> 100</span><span class="comment"> * directory whenever it needs to.</span></div>
<div class="line"><span class="lineno"> 101</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 102</span><span class="comment"> * @param path The path to be created</span></div>
<div class="line"><span class="lineno"> 103</span><span class="comment"> * @param mode The mode/permissions for all the new directories</span></div>
<div class="line"><span class="lineno"> 104</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 105</span><span class="comment"> * @return bool Success/Fail</span></div>
<div class="line"><span class="lineno"> 106</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="keywordtype">bool</span> <a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a>(std::string path, <span class="keywordtype">int</span> mode = 0777);</div> <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="keywordtype">bool</span> <a class="code hl_function" href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">mkpath</a>(std::string path, <span class="keywordtype">int</span> mode = 0777);</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div> <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment">/** @brief Get the directory name of the path</span></div>
<div class="line"><span class="lineno"> 110</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 111</span><span class="comment"> * @param path The path to use.</span></div>
<div class="line"><span class="lineno"> 112</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 113</span><span class="comment"> * @return string</span></div>
<div class="line"><span class="lineno"> 114</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>std::string <a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a>(<span class="keyword">const</span> std::string &amp;path);</div> <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>std::string <a class="code hl_function" href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">dirname</a>(<span class="keyword">const</span> std::string &amp;path);</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div> <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment">/** @brief Take 2 strings and concatenate them and make sure there is a</span></div>
<div class="line"><span class="lineno"> 118</span><span class="comment"> * directory separator (/) between them.</span></div>
<div class="line"><span class="lineno"> 119</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 120</span><span class="comment"> * @details This function doesn&#39;t care whether or not the values given as </span></div>
<div class="line"><span class="lineno"> 121</span><span class="comment"> * parameters are valid path strings. It is the responsibility of the user to make</span></div>
<div class="line"><span class="lineno"> 122</span><span class="comment"> * sure that the values given are valid path strings. </span></div>
<div class="line"><span class="lineno"> 123</span><span class="comment"> * The function only guarantees that the output string is a valid path string.</span></div>
<div class="line"><span class="lineno"> 124</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 125</span><span class="comment"> * @param left The left hand side of the result string</span></div>
<div class="line"><span class="lineno"> 126</span><span class="comment"> * @param right The right hand side of the result string</span></div>
<div class="line"><span class="lineno"> 127</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 128</span><span class="comment"> * @return string</span></div>
<div class="line"><span class="lineno"> 129</span><span class="comment"> * */</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span>std::string <a class="code hl_function" href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">concatpath</a>(<span class="keyword">const</span> std::string &amp;left, <span class="keyword">const</span> std::string &amp;right);</div> <div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span>std::string <a class="code hl_function" href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">concatpath</a>(<span class="keyword">const</span> std::string &amp;left, <span class="keyword">const</span> std::string &amp;right);</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div> <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>} <span class="comment">// namespace utils</span></div> <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>} <span class="comment">// namespace utils</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div> <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="preprocessor">#</span><span class="preprocessor">endif</span></div> <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aIsingModel_8hpp_html_a1965eaca47dbf3f87acdafc2208f04eb"><div class="ttname"><a href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a></div><div class="ttdeci">#define UP</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00026">IsingModel.hpp:26</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a3039ac753f46401767c38f867787fae6"><div class="ttname"><a href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a></div><div class="ttdeci">#define INDEX(I, N)</div><div class="ttdoc">I modulo N.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00023">IsingModel.hpp:23</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a4193cd1c8c2e6ebd0e056fa2364a663f"><div class="ttname"><a href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a></div><div class="ttdeci">#define DOWN</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00028">IsingModel.hpp:28</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a437ef08681e7210d6678427030446a54"><div class="ttname"><a href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54">LEFT</a></div><div class="ttdeci">#define LEFT</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00027">IsingModel.hpp:27</a></div></div>
<div class="ttc" id="aIsingModel_8hpp_html_a80fb826a684cf3f0d306b22aa100ddac"><div class="ttname"><a href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a></div><div class="ttdeci">#define RIGHT</div><div class="ttdoc">Used for the neighbor matrix in the class.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00029">IsingModel.hpp:29</a></div></div>
<div class="ttc" id="aclassIsingModelTest_html"><div class="ttname"><a href="classIsingModelTest.html">IsingModelTest</a></div><div class="ttdoc">Test class for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00036">test_suite.cpp:36</a></div></div>
<div class="ttc" id="aclassIsingModel_html"><div class="ttname"><a href="classIsingModel.html">IsingModel</a></div><div class="ttdoc">The Ising model in 2 dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00036">IsingModel.hpp:36</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a1bbe0cb10abee98058e7b45b22b9cd0a"><div class="ttname"><a href="classIsingModel.html#a1bbe0cb10abee98058e7b45b22b9cd0a">IsingModel::engine</a></div><div class="ttdeci">std::mt19937 engine</div><div class="ttdoc">The RNG that is used for the Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00078">IsingModel.hpp:78</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a1c8a2a4331c7e60c3e1350c0cf8300b9"><div class="ttname"><a href="classIsingModel.html#a1c8a2a4331c7e60c3e1350c0cf8300b9">IsingModel::E</a></div><div class="ttdeci">int64_t E</div><div class="ttdoc">The current energy state. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00070">IsingModel.hpp:70</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a20fc4c0c99d8a119f70a1614784d4e5c"><div class="ttname"><a href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">IsingModel::T</a></div><div class="ttdeci">double T</div><div class="ttdoc">The temperature of the model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00062">IsingModel.hpp:62</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a2b8ac43baefeb386186266d5aa4de348"><div class="ttname"><a href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel::L</a></div><div class="ttdeci">int L</div><div class="ttdoc">Size of the lattice.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00066">IsingModel.hpp:66</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a2c3c76c79717c968d7c227c58b46df41"><div class="ttname"><a href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">IsingModel::lattice</a></div><div class="ttdeci">arma::Mat&lt; int &gt; lattice</div><div class="ttdoc">matrix where element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00044">IsingModel.hpp:44</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a34a4710949b4a70f3e37ca223aefcf8a"><div class="ttname"><a href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice()</div><div class="ttdoc">Initialize the lattice with a random distribution of 1s and -1s.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00049">IsingModel.cpp:49</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a46c9446e94854452f715d307c77c1c15"><div class="ttname"><a href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel(int L, double T, int val)</div><div class="ttdoc">Constructor for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00031">IsingModel.cpp:31</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a4a39ee7fbfbbf566f75bc28900ca9ea5"><div class="ttname"><a href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel(int L, double T)</div><div class="ttdoc">Constructor for the Ising model.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00019">IsingModel.cpp:19</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a56559d68dc9aaff1976d84b157f43488"><div class="ttname"><a href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel::Metropolis</a></div><div class="ttdeci">data_t Metropolis()</div><div class="ttdoc">The Metropolis algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00110">IsingModel.cpp:110</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a59fced38c695e2fa647f53be81b9d2a1"><div class="ttname"><a href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel::initialize_energy</a></div><div class="ttdeci">void initialize_energy()</div><div class="ttdoc">Initialize the energy of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00096">IsingModel.cpp:96</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a6776109105051597c275670dabd0054a"><div class="ttname"><a href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel::initialize_neighbors</a></div><div class="ttdeci">void initialize_neighbors()</div><div class="ttdoc">initialize the neighbors matrix.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00070">IsingModel.cpp:70</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a7112dd6433b1bb9512150cbdc1a0b77e"><div class="ttname"><a href="classIsingModel.html#a7112dd6433b1bb9512150cbdc1a0b77e">IsingModel::energy_diff</a></div><div class="ttdeci">double energy_diff[17]</div><div class="ttdoc">An array containing all possible energy differences.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00058">IsingModel.hpp:58</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a926cf4964d190d2ce23e5a17201787a4"><div class="ttname"><a href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel::initialize_magnetization</a></div><div class="ttdeci">void initialize_magnetization()</div><div class="ttdoc">Initialize the magnetization of the system.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00088">IsingModel.cpp:88</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a94093aaf30facca62737f2ac381fdbcd"><div class="ttname"><a href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">IsingModel::neighbors</a></div><div class="ttdeci">arma::Mat&lt; int &gt; neighbors</div><div class="ttdoc">matrix with the neighbors of each element .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00054">IsingModel.hpp:54</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aaedc25b7284e04849269f31291590bf5"><div class="ttname"><a href="classIsingModel.html#aaedc25b7284e04849269f31291590bf5">IsingModel::initialize_engine</a></div><div class="ttdeci">void initialize_engine()</div><div class="ttdoc">Initialize the RNG.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00043">IsingModel.cpp:43</a></div></div>
<div class="ttc" id="aclassIsingModel_html_acc86effd6889bea199a3d70a9f38dc78"><div class="ttname"><a href="classIsingModel.html#acc86effd6889bea199a3d70a9f38dc78">IsingModel::initialize_lattice</a></div><div class="ttdeci">void initialize_lattice(int val)</div><div class="ttdoc">Initialize the lattice with a specific value.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00059">IsingModel.cpp:59</a></div></div>
<div class="ttc" id="aclassIsingModel_html_acf281f6f5ed02911ca6ab07004449864"><div class="ttname"><a href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a></div><div class="ttdeci">IsingModel()</div><div class="ttdoc">Constructor used for testing.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00014">IsingModel.cpp:14</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aef7232b28df08e064ef58eb5ef32f738"><div class="ttname"><a href="classIsingModel.html#aef7232b28df08e064ef58eb5ef32f738">IsingModel::M</a></div><div class="ttdeci">int64_t M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00074">IsingModel.hpp:74</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aff9a1201933fd5408845a1447e4895b4"><div class="ttname"><a href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">IsingModel::initialize_energy_diff</a></div><div class="ttdeci">void initialize_energy_diff()</div><div class="ttdoc">Initialize the energy_diff array with the correct values.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00081">IsingModel.cpp:81</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdoc">Type to use with the IsingModel class and montecarlo module.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00019">data_type.hpp:19</a></div></div>
<div class="ttc" id="aclassdata__t_html_a3f2d19ab309e696ba91a2000479bcb83"><div class="ttname"><a href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">data_t::data_t</a></div><div class="ttdeci">data_t(double E, double E2, double M, double M2, double M_abs)</div><div class="ttdoc">Constructor with parameters.</div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00045">data_type.hpp:45</a></div></div>
<div class="ttc" id="autils_8hpp_html_a178c4922157666a6e9c127c2ffd96346"><div class="ttname"><a href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346">details::methodName</a></div><div class="ttdeci">std::string methodName(const std::string &amp;pretty_function)</div><div class="ttdoc">Takes in the PRETTY_FUNCTION string and removes the return type.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8hpp_source.html#l00058">utils.hpp:58</a></div></div> <div class="ttc" id="autils_8hpp_html_a178c4922157666a6e9c127c2ffd96346"><div class="ttname"><a href="utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346">details::methodName</a></div><div class="ttdeci">std::string methodName(const std::string &amp;pretty_function)</div><div class="ttdoc">Takes in the PRETTY_FUNCTION string and removes the return type.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8hpp_source.html#l00058">utils.hpp:58</a></div></div>
<div class="ttc" id="autils_8hpp_html_a2b45adc86b70f42021582994e83fa00d"><div class="ttname"><a href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">utils::mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00032">utils.cpp:32</a></div></div> <div class="ttc" id="autils_8hpp_html_a2b45adc86b70f42021582994e83fa00d"><div class="ttname"><a href="utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d">utils::mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00032">utils.cpp:32</a></div></div>
<div class="ttc" id="autils_8hpp_html_a3529a74fd2a25d24de73d9d4e1c90835"><div class="ttname"><a href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00016">utils.cpp:16</a></div></div> <div class="ttc" id="autils_8hpp_html_a3529a74fd2a25d24de73d9d4e1c90835"><div class="ttname"><a href="utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00016">utils.cpp:16</a></div></div>
<div class="ttc" id="autils_8hpp_html_ab3e89176433ddc9ba721b2eba3d08357"><div class="ttname"><a href="utils_8hpp.html#ab3e89176433ddc9ba721b2eba3d08357">utils::scientific_format</a></div><div class="ttdeci">std::string scientific_format(const std::vector&lt; double &gt; &amp;v, int width=20, int prec=10)</div><div class="ttdoc">Turns a vector of doubles into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00023">utils.cpp:23</a></div></div>
<div class="ttc" id="autils_8hpp_html_ae91fad89394d745d544737e43524bde6"><div class="ttname"><a href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">utils::concatpath</a></div><div class="ttdeci">std::string concatpath(const std::string &amp;left, const std::string &amp;right)</div><div class="ttdoc">Take 2 strings and concatenate them and make sure there is a directory separator (/) between them.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00063">utils.cpp:63</a></div></div> <div class="ttc" id="autils_8hpp_html_ae91fad89394d745d544737e43524bde6"><div class="ttname"><a href="utils_8hpp.html#ae91fad89394d745d544737e43524bde6">utils::concatpath</a></div><div class="ttdeci">std::string concatpath(const std::string &amp;left, const std::string &amp;right)</div><div class="ttdoc">Take 2 strings and concatenate them and make sure there is a directory separator (/) between them.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00063">utils.cpp:63</a></div></div>
<div class="ttc" id="autils_8hpp_html_aed026119193a9bbe076671809ff0f430"><div class="ttname"><a href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">utils::dirname</a></div><div class="ttdeci">std::string dirname(const std::string &amp;path)</div><div class="ttdoc">Get the directory name of the path.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00058">utils.cpp:58</a></div></div> <div class="ttc" id="autils_8hpp_html_aed026119193a9bbe076671809ff0f430"><div class="ttname"><a href="utils_8hpp.html#aed026119193a9bbe076671809ff0f430">utils::dirname</a></div><div class="ttdeci">std::string dirname(const std::string &amp;path)</div><div class="ttdoc">Get the directory name of the path.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00058">utils.cpp:58</a></div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->

View File

@ -74,7 +74,8 @@ of Var$(\epsilon) = 0.0001$. %
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=\linewidth]{../images/pd_estimate_1_0.pdf} \includegraphics[width=\linewidth]{../images/pd_estimate_1_0.pdf}
\caption{Distribution of values of energy per spin, when temperature is $T = 1.0 J / k_{B}$} \caption{Distribution of values of energy per spin, when temperature is $T = 1.0 J / k_{B}$.
The green line shows the normal curve $\mathcal{N}(\langle \epsilon \rangle, \text{Var}(\epsilon))$.}
\label{fig:histogram_1_0} \label{fig:histogram_1_0}
\end{figure} % \end{figure} %
In Figure \ref{fig:histogram_2_4}, for $T_{2}$, the samples of energy per spin is In Figure \ref{fig:histogram_2_4}, for $T_{2}$, the samples of energy per spin is
@ -82,7 +83,8 @@ centered around the expectation value $\langle \epsilon \rangle = -1.2367$. %
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=\linewidth]{../images/pd_estimate_2_4.pdf} \includegraphics[width=\linewidth]{../images/pd_estimate_2_4.pdf}
\caption{Distribution of values of energy per spin, when temperature is $T = 2.4 J / k_{B}$} \caption{Distribution of values of energy per spin, when temperature is $T = 2.4 J / k_{B}$.
The green line shows the normal curve $\mathcal{N}(\langle \epsilon \rangle, \text{Var}(\epsilon))$.}
\label{fig:histogram_2_4} \label{fig:histogram_2_4}
\end{figure} % \end{figure} %
However, we observed a higher variance of Var$(\epsilon) = 0.0202$. When the temperature However, we observed a higher variance of Var$(\epsilon) = 0.0202$. When the temperature