Merge pull request #6 from FYS3150-G2-2023/janitaws/latex

Janitaws/latex
This commit is contained in:
Janita Ovidie Sandtrøen Willumsen 2023-12-03 21:54:45 +01:00 committed by GitHub Enterprise
commit 12b82360dd
311 changed files with 2110963 additions and 135 deletions

View File

@ -31,8 +31,7 @@ BreakBeforeBinaryOperators: NonAssignment
# Use a Linux style brace break.
# Break before braces on function, namespace and class definitions.
BreakBeforeBraces: Linux
BreakBeforeBraces: Stroustrup
# If true, spaces will be inserted after ( and before ).
SpacesInParentheses: false
@ -42,3 +41,6 @@ SpacesInSquareBrackets: false
# Separate definition blocks (classes, functions, structs, enums)
SeparateDefinitionBlocks: Always
# Sort includes by type
IncludeBlocks: Regroup

View File

@ -1,2 +1,2 @@
CompileFlags:
Add: [-I../include, -I/usr/include/openmpi-x86_64]
Add: [-I../include]

5
.gitignore vendored
View File

@ -50,5 +50,8 @@ src/*
!src/*.py
!src/scripts
!src/output
!src/fox_output
# Job
!src/job.script
!src/jobs/*

130
README.md
View File

@ -1 +1,129 @@
# Project-4
# Ising Model
[Repo](https://github.uio.no/FYS3150-G2-2023/Project-4)
[Documentation](https://pages.github.uio.no/FYS3150-G2-2023/Project-4/)
## Requirements
### Operating systems
- Linux
- Has been tested on [Fedora 38](https://fedoraproject.org/)
- Will most likely work on other Linux distributions
- MacOS
- Might work, but hasn't been tested
- Windows
- Will most likely not work
### Tools
- Profiling
- [gprof](https://ftp.gnu.org/old-gnu/Manuals/gprof-2.9.1/html_mono/gprof.html)
- [scalasca](https://www.scalasca.org/)
- [score-p](https://www.vi-hps.org/projects/score-p)
### Libraries
- Python
- [matplotlib](https://matplotlib.org/)
- [numpy](https://numpy.org/)
- C++
- [Openmp](https://www.openmp.org/)
- [OpenMPI](https://www.open-mpi.org/)
- [Armadillo](https://arma.sourceforge.net/)
## Compiling
Compiling is as easy as running this command while being inside the src directory:
```shell
make
```
## Running programs
### C++ binaries
To run **main** or **test_suite**, just run this command while being inside src:
```shell
./<program-name>
```
### Python scripts
#### Install libraries
Before running the scripts, make sure that all libraries are installed.
Using pip, you can install all requirements like this:
```shell
pip install -r requirements.txt
```
This recursively install all the packages that are listed in **requirements.txt**.
#### Running scripts
For the Python scripts, run them from the src directory like this:
```shell
python scripts/<script-name>
```
If you have any problems running the scripts, you might have to run this instead:
```shell
python3 scripts/<script-name>
```
### Batch system
For the **phase_transition_mpi** program, there are scripts in the **src/jobs**
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.
This is the recommended way to use this program as it takes approximately 90
minutes to complete when using 8 processes where each process has 10 threads.
If you happen to have such a system available to you, then you should clone
this repo on that system, then compile it by running:
```shell
make phase_transition_mpi
```
You might have to load the Armadillo library using the **module** system before compiling.
After compiling, you can schedule it by running:
```shell
sbatch jobs/<script-name>
```
## Performance
This section aims to give an idea to the time it takes for the program to
run so that you know a bit what to expect if you decide to run it for
yourself.
### CPU
The times mentioned here are times achieved on a computer with these
specifications:
- CPU model
- Intel i7-9850H
- Threads
- 12
- Clock speed
- 4.6GHz
### Times
## Credits
The Doxygen theme used here is
[doxygen-awesome-css](https://github.com/jothepro/doxygen-awesome-css).

View File

@ -0,0 +1,144 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/scripts/2x2_analysis.py Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('2x2__analysis_8py_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">2x2_analysis.py</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">def </span>plot_from_file():</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> figure, ax = plt.subplots()</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> <span class="keyword">with</span> open(<span class="stringliteral">&quot;output/2_lattice_test.txt&quot;</span>) <span class="keyword">as</span> f:</div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> lines = f.readlines()</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> t = []</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> energy = []</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> magnetization = []</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordflow">for</span> line <span class="keywordflow">in</span> lines:</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> items = line.strip().split(<span class="stringliteral">&quot;,&quot;</span>)</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> t.append(int(items[0]))</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> energy.append(float(items[1]))</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> magnetization.append(float(items[5]))</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> ax.plot(t, energy, label=f<span class="stringliteral">&quot;&lt;epsilon&gt; {label}&quot;</span>)</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> ax.plot(t, magnetization, label=f<span class="stringliteral">&quot;&lt;|m|&gt; {label}&quot;</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> figure.legend()</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> figure.savefig(<span class="stringliteral">&quot;../latex/images/2x2_analysis.pdf&quot;</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="keyword">def </span><a class="code hl_function" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>():</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> plot_from_file()</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="keywordflow">if</span> __name__ == <span class="stringliteral">&quot;__main__&quot;</span>:</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <a class="code hl_function" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>()</div>
<div class="ttc" id="amain_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="main_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="main_8cpp_source.html#l00020">main.cpp:20</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_634e799a3947388232110823971192a8.html">scripts</a></li><li class="navelem"><b>2x2_analysis.py</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

131
docs/IsingModel_8cpp.html Normal file
View File

@ -0,0 +1,131 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/IsingModel.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('IsingModel_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">IsingModel.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>The implementation of the Ising model.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>&quot;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;random&gt;</code><br />
</div>
<p><a href="IsingModel_8cpp_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The implementation of the Ising model. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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#_bug000009">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>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="IsingModel_8cpp.html">IsingModel.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,265 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/IsingModel.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('IsingModel_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">IsingModel.cpp</div></div>
</div><!--header-->
<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> </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"><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="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;random&gt;</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"><a class="line" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864"> 17</a></span><a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel::IsingModel</a>()</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>}</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"><a class="line" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5"> 21</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="l00022" name="l00022"></a><span class="lineno"> 22</span>{</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> this-&gt;L = <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> this-&gt;T = <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</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#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</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#a6776109105051597c275670dabd0054a">initialize_neighbors</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#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</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#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>();</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>();</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> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15"> 32</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="l00033" name="l00033"></a><span class="lineno"> 33</span>{</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> this-&gt;L = <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> this-&gt;T = <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.set_size(this-&gt;L, this-&gt;L);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>.fill(val);</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#a6776109105051597c275670dabd0054a">initialize_neighbors</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#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</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#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>();</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> this-&gt;<a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>();</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> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a"> 44</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="l00045" name="l00045"></a><span class="lineno"> 45</span>{</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#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="l00047" name="l00047"></a><span class="lineno"> 47</span> std::random_device rd{};</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> std::mt19937 engine{rd()};</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> std::uniform_int_distribution&lt;&gt; coin_flip(0, 1);</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="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="l00053" name="l00053"></a><span class="lineno"> 53</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(i) = 2 * coin_flip(engine) - 1;</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> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classIsingModel.html#a6776109105051597c275670dabd0054a"> 56</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="l00057" name="l00057"></a><span class="lineno"> 57</span>{</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</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="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">// Having i as a signed integer is necessary in this case.</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</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="l00062" name="l00062"></a><span class="lineno"> 62</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(i, UP) = INDEX(i - 1, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(i, DOWN) = INDEX(i + 1, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>);</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="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4"> 67</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="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">for</span> (<span class="keywordtype">int</span> i = -8; i &lt;= 8; i += 4) {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">energy_diff</a>.insert({i, 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="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="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4"> 74</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="l00075" name="l00075"></a><span class="lineno"> 75</span>{</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#a0d373a61baca6b0faa607bb12d82cc47">M</a> = 0.;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</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="l00078" name="l00078"></a><span class="lineno"> 78</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">M</a> += this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(i);</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="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1"> 82</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="l00083" name="l00083"></a><span class="lineno"> 83</span>{</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#ae9f872ca2054992161d53306119979dd">E</a> = 0.;</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">// Loop through the matrix</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</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="l00088" name="l00088"></a><span class="lineno"> 88</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="l00089" name="l00089"></a><span class="lineno"> 89</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">E</a> -= this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(i, j)</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#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(i, this-&gt;<a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>(j, RIGHT))</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</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, DOWN), j));</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="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="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488"> 96</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="l00097" name="l00097"></a><span class="lineno"> 97</span>{</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> std::random_device rd{};</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> std::mt19937_64 engine{rd()};</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="keywordtype">int</span> ri, rj;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">int</span> dE;</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> <span class="comment">// Create random distribution for indeces</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</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="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// Create random distribution for acceptance</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> std::uniform_real_distribution&lt;&gt; random_number(0., 1.);</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">// Loop over the number of spins</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</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="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// Get random indeces</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> ri = random_index(engine);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> rj = random_index(engine);</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">// Calculate the difference in energy</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> dE = 2 * this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(ri, rj)</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</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, LEFT))</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</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, RIGHT))</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</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, UP), rj)</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</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, DOWN), rj));</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">// Choose whether or not to accept the new configuration</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">if</span> (random_number(engine) &lt;= this-&gt;<a class="code hl_variable" href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">energy_diff</a>[dE]) {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// Update if the configuration is accepted</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(ri, rj) *= -1;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">M</a> += 2 * this-&gt;<a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>(ri, rj);</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">E</a> += dE;</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> }</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">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#ae9f872ca2054992161d53306119979dd">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#a0d373a61baca6b0faa607bb12d82cc47">M</a>,</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</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="l00133" name="l00133"></a><span class="lineno"> 133</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"><a class="line" href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5"> 135</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5">IsingModel::get_E</a>()</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>{</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">return</span> this-&gt;<a class="code hl_variable" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">E</a>;</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="l00140" name="l00140"></a><span class="lineno"><a class="line" href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625"> 140</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625">IsingModel::get_M</a>()</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> this-&gt;<a class="code hl_variable" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">M</a>;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</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="aclassIsingModel_html_a0d373a61baca6b0faa607bb12d82cc47"><div class="ttname"><a href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">IsingModel::M</a></div><div class="ttdeci">int M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00072">IsingModel.hpp:72</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a1a4ceb1bb2593dbd20c51ed04100cbcd"><div class="ttname"><a href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">IsingModel::energy_diff</a></div><div class="ttdeci">std::unordered_map&lt; int, double &gt; energy_diff</div><div class="ttdoc">A hash map containing all possible energy changes.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00056">IsingModel.hpp:56</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#l00060">IsingModel.hpp:60</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#l00064">IsingModel.hpp:64</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#l00042">IsingModel.hpp:42</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#l00044">IsingModel.cpp:44</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#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.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00082">IsingModel.cpp:82</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#l00056">IsingModel.cpp:56</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.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00074">IsingModel.cpp:74</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#l00052">IsingModel.hpp:52</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aa5701496e6483bc4668c486d6d3af625"><div class="ttname"><a href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625">IsingModel::get_M</a></div><div class="ttdeci">int get_M()</div><div class="ttdoc">Get the current magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00140">IsingModel.cpp:140</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aaa0787d964b004a17869811a5e947ff5"><div class="ttname"><a href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5">IsingModel::get_E</a></div><div class="ttdeci">int get_E()</div><div class="ttdoc">Get the current energy.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00135">IsingModel.cpp:135</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#l00017">IsingModel.cpp:17</a></div></div>
<div class="ttc" id="aclassIsingModel_html_ae9f872ca2054992161d53306119979dd"><div class="ttname"><a href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">IsingModel::E</a></div><div class="ttdeci">int E</div><div class="ttdoc">The current energy state. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00068">IsingModel.hpp:68</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 hashmap with the correct values.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00067">IsingModel.cpp:67</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00018">data_type.hpp:18</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="IsingModel_8cpp.html">IsingModel.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

253
docs/IsingModel_8hpp.html Normal file
View File

@ -0,0 +1,253 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include/IsingModel.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('IsingModel_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> </div>
<div class="headertitle"><div class="title">IsingModel.hpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>The definition of the Ising model.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="constants_8hpp_source.html">constants.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="typedefs_8hpp_source.html">typedefs.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="utils_8hpp_source.html">utils.hpp</a>&quot;</code><br />
<code>#include &lt;armadillo&gt;</code><br />
<code>#include &lt;random&gt;</code><br />
<code>#include &lt;unordered_map&gt;</code><br />
</div>
<p><a href="IsingModel_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html">IsingModel</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Ising model in 2 dimensions. <a href="classIsingModel.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a3039ac753f46401767c38f867787fae6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IsingModel_8hpp.html#a3039ac753f46401767c38f867787fae6">INDEX</a>(I, N)&#160;&#160;&#160;(I + N) % N</td></tr>
<tr class="separator:a3039ac753f46401767c38f867787fae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1965eaca47dbf3f87acdafc2208f04eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IsingModel_8hpp.html#a1965eaca47dbf3f87acdafc2208f04eb">UP</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a1965eaca47dbf3f87acdafc2208f04eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a437ef08681e7210d6678427030446a54"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IsingModel_8hpp.html#a437ef08681e7210d6678427030446a54">LEFT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a437ef08681e7210d6678427030446a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4193cd1c8c2e6ebd0e056fa2364a663f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IsingModel_8hpp.html#a4193cd1c8c2e6ebd0e056fa2364a663f">DOWN</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a4193cd1c8c2e6ebd0e056fa2364a663f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80fb826a684cf3f0d306b22aa100ddac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IsingModel_8hpp.html#a80fb826a684cf3f0d306b22aa100ddac">RIGHT</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a80fb826a684cf3f0d306b22aa100ddac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The definition of the Ising model. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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>
<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>
<a id="a4193cd1c8c2e6ebd0e056fa2364a663f" name="a4193cd1c8c2e6ebd0e056fa2364a663f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4193cd1c8c2e6ebd0e056fa2364a663f">&#9670;&#160;</a></span>DOWN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DOWN&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00029">29</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a3039ac753f46401767c38f867787fae6" name="a3039ac753f46401767c38f867787fae6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3039ac753f46401767c38f867787fae6">&#9670;&#160;</a></span>INDEX</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define INDEX</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">I, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">N&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;(I + N) % N</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00024">24</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a437ef08681e7210d6678427030446a54" name="a437ef08681e7210d6678427030446a54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a437ef08681e7210d6678427030446a54">&#9670;&#160;</a></span>LEFT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LEFT&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00028">28</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a80fb826a684cf3f0d306b22aa100ddac" name="a80fb826a684cf3f0d306b22aa100ddac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80fb826a684cf3f0d306b22aa100ddac">&#9670;&#160;</a></span>RIGHT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RIGHT&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00030">30</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a1965eaca47dbf3f87acdafc2208f04eb" name="a1965eaca47dbf3f87acdafc2208f04eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1965eaca47dbf3f87acdafc2208f04eb">&#9670;&#160;</a></span>UP</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UP&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00027">27</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="IsingModel_8hpp.html">IsingModel.hpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

4
docs/IsingModel_8hpp.js Normal file
View File

@ -0,0 +1,4 @@
var IsingModel_8hpp =
[
[ "IsingModel", "classIsingModel.html", "classIsingModel" ]
];

View File

@ -0,0 +1,200 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include/IsingModel.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('IsingModel_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">IsingModel.hpp</div></div>
</div><!--header-->
<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> </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"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define __ISING_MODEL__</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">#include &quot;<a class="code" href="constants_8hpp.html">constants.hpp</a>&quot;</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"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="typedefs_8hpp.html">typedefs.hpp</a>&quot;</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"><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">#include &lt;armadillo&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;random&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;unordered_map&gt;</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="preprocessor">#define INDEX(I, N) (I + N) % N</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="comment">// Indeces for the neighbor matrix.</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#define UP 0</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#define LEFT 0</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#define DOWN 1</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#define RIGHT 1</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="classIsingModel.html"> 37</a></span><span class="keyword">class </span><a class="code hl_class" href="classIsingModel.html">IsingModel</a> {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</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="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41"> 42</a></span> arma::Mat&lt;int&gt; <a class="code hl_variable" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a>;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd"> 52</a></span> arma::Mat&lt;int&gt; <a class="code hl_variable" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a>;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd"> 56</a></span> std::unordered_map&lt;int, double&gt; <a class="code hl_variable" href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">energy_diff</a>;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c"> 60</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348"> 64</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd"> 68</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">E</a>;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47"> 72</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">M</a>;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>();</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a>();</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</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="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>();</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>();</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <a class="code hl_function" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a>();</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="keyword">public</span>:</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</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"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</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"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</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="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5">get_E</a>();</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625">get_M</a>();</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> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</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#l00030">test_suite.cpp:30</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#l00037">IsingModel.hpp:37</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a0d373a61baca6b0faa607bb12d82cc47"><div class="ttname"><a href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">IsingModel::M</a></div><div class="ttdeci">int M</div><div class="ttdoc">The current magnetic strength. unit: Unitless.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00072">IsingModel.hpp:72</a></div></div>
<div class="ttc" id="aclassIsingModel_html_a1a4ceb1bb2593dbd20c51ed04100cbcd"><div class="ttname"><a href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">IsingModel::energy_diff</a></div><div class="ttdeci">std::unordered_map&lt; int, double &gt; energy_diff</div><div class="ttdoc">A hash map containing all possible energy changes.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00056">IsingModel.hpp:56</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#l00060">IsingModel.hpp:60</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#l00064">IsingModel.hpp:64</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#l00042">IsingModel.hpp:42</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#l00044">IsingModel.cpp:44</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#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.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00082">IsingModel.cpp:82</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#l00056">IsingModel.cpp:56</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.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00074">IsingModel.cpp:74</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#l00052">IsingModel.hpp:52</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aa5701496e6483bc4668c486d6d3af625"><div class="ttname"><a href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625">IsingModel::get_M</a></div><div class="ttdeci">int get_M()</div><div class="ttdoc">Get the current magnetization.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00140">IsingModel.cpp:140</a></div></div>
<div class="ttc" id="aclassIsingModel_html_aaa0787d964b004a17869811a5e947ff5"><div class="ttname"><a href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5">IsingModel::get_E</a></div><div class="ttdeci">int get_E()</div><div class="ttdoc">Get the current energy.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00135">IsingModel.cpp:135</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#l00017">IsingModel.cpp:17</a></div></div>
<div class="ttc" id="aclassIsingModel_html_ae9f872ca2054992161d53306119979dd"><div class="ttname"><a href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">IsingModel::E</a></div><div class="ttdeci">int E</div><div class="ttdoc">The current energy state. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8hpp_source.html#l00068">IsingModel.hpp:68</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 hashmap with the correct values.</div><div class="ttdef"><b>Definition:</b> <a href="IsingModel_8cpp_source.html#l00067">IsingModel.cpp:67</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00018">data_type.hpp:18</a></div></div>
<div class="ttc" id="aconstants_8hpp_html"><div class="ttname"><a href="constants_8hpp.html">constants.hpp</a></div><div class="ttdoc">Library of constants.</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="atypedefs_8hpp_html"><div class="ttname"><a href="typedefs_8hpp.html">typedefs.hpp</a></div><div class="ttdoc">Useful typedefs for cleaner code.</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><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="IsingModel_8hpp.html">IsingModel.hpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

120
docs/annotated.html Normal file
View File

@ -0,0 +1,120 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('annotated.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Class List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classdata__t.html" target="_self">data_t</a></td><td class="desc"></td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classIsingModel.html" target="_self">IsingModel</a></td><td class="desc">The Ising model in 2 dimensions </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classIsingModelTest.html" target="_self">IsingModelTest</a></td><td class="desc">Test class for the Ising model </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

6
docs/annotated_dup.js Normal file
View File

@ -0,0 +1,6 @@
var annotated_dup =
[
[ "data_t", "classdata__t.html", null ],
[ "IsingModel", "classIsingModel.html", "classIsingModel" ],
[ "IsingModelTest", "classIsingModelTest.html", "classIsingModelTest" ]
];

BIN
docs/bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
docs/bc_sd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

BIN
docs/bdwn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

146
docs/bug.html Normal file
View File

@ -0,0 +1,146 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Bug List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('bug.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div><div class="header">
<div class="headertitle"><div class="title">Bug List </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="reflist">
<dt>File <a class="el" href="constants_8hpp.html">constants.hpp</a> </dt>
<dd><a class="anchor" id="_bug000001"></a>No known bugs </dd>
<dt>File <a class="el" href="data__type_8cpp.html">data_type.cpp</a> </dt>
<dd><a class="anchor" id="_bug000008"></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="_bug000009"></a>No known bugs </dd>
<dt>File <a class="el" href="IsingModel_8hpp.html">IsingModel.hpp</a> </dt>
<dd><a class="anchor" id="_bug000003"></a>No known bugs </dd>
<dt>File <a class="el" href="main_8cpp.html">main.cpp</a> </dt>
<dd><a class="anchor" id="_bug000010"></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="_bug000011"></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="_bug000004"></a>No known bugs </dd>
<dt>File <a class="el" href="phase__transition__mpi_8cpp.html">phase_transition_mpi.cpp</a> </dt>
<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>
<dd><a class="anchor" id="_bug000013"></a>No known bugs </dd>
<dt>File <a class="el" href="testlib_8cpp.html">testlib.cpp</a> </dt>
<dd><a class="anchor" id="_bug000014"></a>No known bugs </dd>
<dt>File <a class="el" href="testlib_8hpp.html">testlib.hpp</a> </dt>
<dd><a class="anchor" id="_bug000005"></a>No known bugs </dd>
<dt>File <a class="el" href="typedefs_8hpp.html">typedefs.hpp</a> </dt>
<dd><a class="anchor" id="_bug000006"></a>No known bugs </dd>
<dt>File <a class="el" href="utils_8cpp.html">utils.cpp</a> </dt>
<dd><a class="anchor" id="_bug000015"></a>No known bugs </dd>
<dt>File <a class="el" href="utils_8hpp.html">utils.hpp</a> </dt>
<dd><a class="anchor" id="_bug000007"></a>No known bugs </dd>
</dl>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,159 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/scripts/burn_in_time.py Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('burn__in__time_8py_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">burn_in_time.py</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">def </span>plot_from_file():</div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> files = [</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> <span class="stringliteral">&quot;output/burn_in_time/unordered_1_0.txt&quot;</span>,</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> <span class="stringliteral">&quot;output/burn_in_time/ordered_1_0.txt&quot;</span>,</div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> <span class="stringliteral">&quot;output/burn_in_time/unordered_2_4.txt&quot;</span>,</div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> <span class="stringliteral">&quot;output/burn_in_time/ordered_2_4.txt&quot;</span>,</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> ]</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> labels = [</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="stringliteral">&quot;1.0, unordered&quot;</span>,</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="stringliteral">&quot;1.0, ordered&quot;</span>,</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="stringliteral">&quot;2.4, unordered&quot;</span>,</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="stringliteral">&quot;2.4, ordered&quot;</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> figure1, ax1 = plt.subplots()</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> figure2, ax2 = plt.subplots()</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="keywordflow">for</span> infile, label <span class="keywordflow">in</span> zip(files, labels):</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">with</span> open(infile) <span class="keyword">as</span> f:</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> lines = f.readlines()</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> t = []</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> energy = []</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> magnetization = []</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">for</span> line <span class="keywordflow">in</span> lines:</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> items = line.strip().split(<span class="stringliteral">&quot;,&quot;</span>)</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> t.append(int(items[0]))</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> energy.append(float(items[1]))</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> magnetization.append(float(items[5]))</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> ax1.plot(t, energy, label=fr<span class="stringliteral">&quot;$\langle \epsilon \rangle$ {label}&quot;</span>)</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> ax2.plot(t, magnetization, label=fr<span class="stringliteral">&quot;$\langle | m | \rangle$ {label}&quot;</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> figure1.legend()</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> figure1.savefig(<span class="stringliteral">&quot;../latex/images/burn_in_time_energy.pdf&quot;</span>)</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> figure2.legend()</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> figure2.savefig(<span class="stringliteral">&quot;../latex/images/burn_in_time_magnetization.pdf&quot;</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="keyword">def </span><a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>():</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> plot_from_file()</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><span class="keywordflow">if</span> __name__ == <span class="stringliteral">&quot;__main__&quot;</span>:</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_function" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>()</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#l00148">test_suite.cpp:148</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_634e799a3947388232110823971192a8.html">scripts</a></li><li class="navelem"><b>burn_in_time.py</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,135 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classIsingModel.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">IsingModel Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classIsingModel.html">IsingModel</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">E</a></td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">energy_diff</a></td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5">get_E</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625">get_M</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">IsingModel</a>(int L, double T)</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">IsingModel</a>(int L, double T, int val)</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IsingModelTest</b> (defined in <a class="el" href="classIsingModel.html">IsingModel</a>)</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a></td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a></td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">M</a></td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>()</td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a></td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a></td><td class="entry"><a class="el" href="classIsingModel.html">IsingModel</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

738
docs/classIsingModel.html Normal file
View File

@ -0,0 +1,738 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: IsingModel Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classIsingModel.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classIsingModel-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">IsingModel Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>The Ising model in 2 dimensions.
<a href="classIsingModel.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4a39ee7fbfbbf566f75bc28900ca9ea5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5">IsingModel</a> (int <a class="el" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, double <a class="el" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>)</td></tr>
<tr class="memdesc:a4a39ee7fbfbbf566f75bc28900ca9ea5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the Ising model. <br /></td></tr>
<tr class="separator:a4a39ee7fbfbbf566f75bc28900ca9ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46c9446e94854452f715d307c77c1c15"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a46c9446e94854452f715d307c77c1c15">IsingModel</a> (int <a class="el" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a>, double <a class="el" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a>, int val)</td></tr>
<tr class="memdesc:a46c9446e94854452f715d307c77c1c15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the Ising model. <br /></td></tr>
<tr class="separator:a46c9446e94854452f715d307c77c1c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56559d68dc9aaff1976d84b157f43488"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a> ()</td></tr>
<tr class="memdesc:a56559d68dc9aaff1976d84b157f43488"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Metropolis algorithm. <br /></td></tr>
<tr class="separator:a56559d68dc9aaff1976d84b157f43488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa0787d964b004a17869811a5e947ff5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5">get_E</a> ()</td></tr>
<tr class="memdesc:aaa0787d964b004a17869811a5e947ff5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current energy. <br /></td></tr>
<tr class="separator:aaa0787d964b004a17869811a5e947ff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5701496e6483bc4668c486d6d3af625"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625">get_M</a> ()</td></tr>
<tr class="memdesc:aa5701496e6483bc4668c486d6d3af625"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current magnetization. <br /></td></tr>
<tr class="separator:aa5701496e6483bc4668c486d6d3af625"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a34a4710949b4a70f3e37ca223aefcf8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">initialize_lattice</a> ()</td></tr>
<tr class="memdesc:a34a4710949b4a70f3e37ca223aefcf8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the lattice with a random distribution of 1s and -1s. <br /></td></tr>
<tr class="separator:a34a4710949b4a70f3e37ca223aefcf8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6776109105051597c275670dabd0054a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a6776109105051597c275670dabd0054a">initialize_neighbors</a> ()</td></tr>
<tr class="memdesc:a6776109105051597c275670dabd0054a"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the neighbors matrix. <br /></td></tr>
<tr class="separator:a6776109105051597c275670dabd0054a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff9a1201933fd5408845a1447e4895b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">initialize_energy_diff</a> ()</td></tr>
<tr class="memdesc:aff9a1201933fd5408845a1447e4895b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the hashmap with the correct values. <br /></td></tr>
<tr class="separator:aff9a1201933fd5408845a1447e4895b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a926cf4964d190d2ce23e5a17201787a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">initialize_magnetization</a> ()</td></tr>
<tr class="memdesc:a926cf4964d190d2ce23e5a17201787a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the magnetization. <br /></td></tr>
<tr class="separator:a926cf4964d190d2ce23e5a17201787a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59fced38c695e2fa647f53be81b9d2a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">initialize_energy</a> ()</td></tr>
<tr class="memdesc:a59fced38c695e2fa647f53be81b9d2a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the energy. <br /></td></tr>
<tr class="separator:a59fced38c695e2fa647f53be81b9d2a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf281f6f5ed02911ca6ab07004449864"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a> ()</td></tr>
<tr class="memdesc:acf281f6f5ed02911ca6ab07004449864"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor used for testing. <br /></td></tr>
<tr class="separator:acf281f6f5ed02911ca6ab07004449864"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a2c3c76c79717c968d7c227c58b46df41"><td class="memItemLeft" align="right" valign="top">arma::Mat&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">lattice</a></td></tr>
<tr class="memdesc:a2c3c76c79717c968d7c227c58b46df41"><td class="mdescLeft">&#160;</td><td class="mdescRight">\( L \times L \) matrix where element \( x \in {-1, 1}\). <br /></td></tr>
<tr class="separator:a2c3c76c79717c968d7c227c58b46df41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94093aaf30facca62737f2ac381fdbcd"><td class="memItemLeft" align="right" valign="top">arma::Mat&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">neighbors</a></td></tr>
<tr class="memdesc:a94093aaf30facca62737f2ac381fdbcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">\( L \times 2 \) matrix with the neighbors of each element \( x_i \). <br /></td></tr>
<tr class="separator:a94093aaf30facca62737f2ac381fdbcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a4ceb1bb2593dbd20c51ed04100cbcd"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; int, double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">energy_diff</a></td></tr>
<tr class="memdesc:a1a4ceb1bb2593dbd20c51ed04100cbcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">A hash map containing all possible energy changes. <br /></td></tr>
<tr class="separator:a1a4ceb1bb2593dbd20c51ed04100cbcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20fc4c0c99d8a119f70a1614784d4e5c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">T</a></td></tr>
<tr class="memdesc:a20fc4c0c99d8a119f70a1614784d4e5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The temperature of the model. <br /></td></tr>
<tr class="separator:a20fc4c0c99d8a119f70a1614784d4e5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b8ac43baefeb386186266d5aa4de348"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">L</a></td></tr>
<tr class="memdesc:a2b8ac43baefeb386186266d5aa4de348"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the lattice. <br /></td></tr>
<tr class="separator:a2b8ac43baefeb386186266d5aa4de348"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9f872ca2054992161d53306119979dd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">E</a></td></tr>
<tr class="memdesc:ae9f872ca2054992161d53306119979dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current energy state. unit: \( J \). <br /></td></tr>
<tr class="separator:ae9f872ca2054992161d53306119979dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d373a61baca6b0faa607bb12d82cc47"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">M</a></td></tr>
<tr class="memdesc:a0d373a61baca6b0faa607bb12d82cc47"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current magnetic strength. unit: Unitless. <br /></td></tr>
<tr class="separator:a0d373a61baca6b0faa607bb12d82cc47"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a2b1cf104e0bda1fce78ed366e1ec7287"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModel.html#a2b1cf104e0bda1fce78ed366e1ec7287">IsingModelTest</a></td></tr>
<tr class="separator:a2b1cf104e0bda1fce78ed366e1ec7287"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The Ising model in 2 dimensions. </p>
<p>None of the methods are parallelized, as there is very little benefit in doing so. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00037">37</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="acf281f6f5ed02911ca6ab07004449864" name="acf281f6f5ed02911ca6ab07004449864"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf281f6f5ed02911ca6ab07004449864">&#9670;&#160;</a></span>IsingModel() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">IsingModel::IsingModel </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor used for testing. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00017">17</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="a4a39ee7fbfbbf566f75bc28900ca9ea5" name="a4a39ee7fbfbbf566f75bc28900ca9ea5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a39ee7fbfbbf566f75bc28900ca9ea5">&#9670;&#160;</a></span>IsingModel() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IsingModel::IsingModel </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for the Ising model. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">L</td><td>The size of the lattice. </td></tr>
<tr><td class="paramname">T</td><td>The temperature for the system. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00021">21</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="a46c9446e94854452f715d307c77c1c15" name="a46c9446e94854452f715d307c77c1c15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46c9446e94854452f715d307c77c1c15">&#9670;&#160;</a></span>IsingModel() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IsingModel::IsingModel </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>val</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for the Ising model. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">L</td><td>The size of the lattice. </td></tr>
<tr><td class="paramname">T</td><td>The temperature for the system. </td></tr>
<tr><td class="paramname">val</td><td>The value to set for all spins. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00032">32</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aaa0787d964b004a17869811a5e947ff5" name="aaa0787d964b004a17869811a5e947ff5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa0787d964b004a17869811a5e947ff5">&#9670;&#160;</a></span>get_E()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int IsingModel::get_E </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current energy. </p>
<dl class="section return"><dt>Returns</dt><dd>double </dd></dl>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00135">135</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="aa5701496e6483bc4668c486d6d3af625" name="aa5701496e6483bc4668c486d6d3af625"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5701496e6483bc4668c486d6d3af625">&#9670;&#160;</a></span>get_M()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int IsingModel::get_M </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current magnetization. </p>
<dl class="section return"><dt>Returns</dt><dd>double </dd></dl>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00140">140</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="a59fced38c695e2fa647f53be81b9d2a1" name="a59fced38c695e2fa647f53be81b9d2a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59fced38c695e2fa647f53be81b9d2a1">&#9670;&#160;</a></span>initialize_energy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void IsingModel::initialize_energy </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the energy. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00082">82</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="aff9a1201933fd5408845a1447e4895b4" name="aff9a1201933fd5408845a1447e4895b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff9a1201933fd5408845a1447e4895b4">&#9670;&#160;</a></span>initialize_energy_diff()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void IsingModel::initialize_energy_diff </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the hashmap with the correct values. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00067">67</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="a34a4710949b4a70f3e37ca223aefcf8a" name="a34a4710949b4a70f3e37ca223aefcf8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34a4710949b4a70f3e37ca223aefcf8a">&#9670;&#160;</a></span>initialize_lattice()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void IsingModel::initialize_lattice </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the lattice with a random distribution of 1s and -1s. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00044">44</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="a926cf4964d190d2ce23e5a17201787a4" name="a926cf4964d190d2ce23e5a17201787a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a926cf4964d190d2ce23e5a17201787a4">&#9670;&#160;</a></span>initialize_magnetization()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void IsingModel::initialize_magnetization </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the magnetization. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00074">74</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="a6776109105051597c275670dabd0054a" name="a6776109105051597c275670dabd0054a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6776109105051597c275670dabd0054a">&#9670;&#160;</a></span>initialize_neighbors()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void IsingModel::initialize_neighbors </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>initialize the neighbors matrix. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00056">56</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<a id="a56559d68dc9aaff1976d84b157f43488" name="a56559d68dc9aaff1976d84b157f43488"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56559d68dc9aaff1976d84b157f43488">&#9670;&#160;</a></span>Metropolis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> IsingModel::Metropolis </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The Metropolis algorithm. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8cpp_source.html#l00096">96</a> of file <a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a2b1cf104e0bda1fce78ed366e1ec7287" name="a2b1cf104e0bda1fce78ed366e1ec7287"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b1cf104e0bda1fce78ed366e1ec7287">&#9670;&#160;</a></span>IsingModelTest</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class <a class="el" href="classIsingModelTest.html">IsingModelTest</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00039">39</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="ae9f872ca2054992161d53306119979dd" name="ae9f872ca2054992161d53306119979dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9f872ca2054992161d53306119979dd">&#9670;&#160;</a></span>E</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int IsingModel::E</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The current energy state. unit: \( J \). </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00068">68</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a1a4ceb1bb2593dbd20c51ed04100cbcd" name="a1a4ceb1bb2593dbd20c51ed04100cbcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a4ceb1bb2593dbd20c51ed04100cbcd">&#9670;&#160;</a></span>energy_diff</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unordered_map&lt;int, double&gt; IsingModel::energy_diff</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A hash map containing all possible energy changes. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00056">56</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a2b8ac43baefeb386186266d5aa4de348" name="a2b8ac43baefeb386186266d5aa4de348"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b8ac43baefeb386186266d5aa4de348">&#9670;&#160;</a></span>L</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int IsingModel::L</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Size of the lattice. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00064">64</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a2c3c76c79717c968d7c227c58b46df41" name="a2c3c76c79717c968d7c227c58b46df41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c3c76c79717c968d7c227c58b46df41">&#9670;&#160;</a></span>lattice</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">arma::Mat&lt;int&gt; IsingModel::lattice</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>\( L \times L \) matrix where element \( x \in {-1, 1}\). </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00042">42</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a0d373a61baca6b0faa607bb12d82cc47" name="a0d373a61baca6b0faa607bb12d82cc47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d373a61baca6b0faa607bb12d82cc47">&#9670;&#160;</a></span>M</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int IsingModel::M</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The current magnetic strength. unit: Unitless. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00072">72</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a94093aaf30facca62737f2ac381fdbcd" name="a94093aaf30facca62737f2ac381fdbcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94093aaf30facca62737f2ac381fdbcd">&#9670;&#160;</a></span>neighbors</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">arma::Mat&lt;int&gt; IsingModel::neighbors</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>\( L \times 2 \) matrix with the neighbors of each element \( x_i \). </p>
<p>The reason why it's \( L \times 2 \) instead of \( L \times 2 \), is that we can see that we can use the same column for the left and upper neighbor, and we can use the same column for the right and lower neighbor. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00052">52</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<a id="a20fc4c0c99d8a119f70a1614784d4e5c" name="a20fc4c0c99d8a119f70a1614784d4e5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20fc4c0c99d8a119f70a1614784d4e5c">&#9670;&#160;</a></span>T</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double IsingModel::T</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The temperature of the model. </p>
<p class="definition">Definition at line <a class="el" href="IsingModel_8hpp_source.html#l00060">60</a> of file <a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>include/<a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a></li>
<li>src/<a class="el" href="IsingModel_8cpp_source.html">IsingModel.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classIsingModel.html">IsingModel</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

21
docs/classIsingModel.js Normal file
View File

@ -0,0 +1,21 @@
var classIsingModel =
[
[ "IsingModel", "classIsingModel.html#acf281f6f5ed02911ca6ab07004449864", null ],
[ "IsingModel", "classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5", null ],
[ "IsingModel", "classIsingModel.html#a46c9446e94854452f715d307c77c1c15", null ],
[ "get_E", "classIsingModel.html#aaa0787d964b004a17869811a5e947ff5", null ],
[ "get_M", "classIsingModel.html#aa5701496e6483bc4668c486d6d3af625", null ],
[ "initialize_energy", "classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1", null ],
[ "initialize_energy_diff", "classIsingModel.html#aff9a1201933fd5408845a1447e4895b4", null ],
[ "initialize_lattice", "classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a", null ],
[ "initialize_magnetization", "classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4", null ],
[ "initialize_neighbors", "classIsingModel.html#a6776109105051597c275670dabd0054a", null ],
[ "Metropolis", "classIsingModel.html#a56559d68dc9aaff1976d84b157f43488", null ],
[ "E", "classIsingModel.html#ae9f872ca2054992161d53306119979dd", null ],
[ "energy_diff", "classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd", null ],
[ "L", "classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348", null ],
[ "lattice", "classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41", null ],
[ "M", "classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47", null ],
[ "neighbors", "classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd", null ],
[ "T", "classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c", null ]
];

View File

@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classIsingModelTest.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">IsingModelTest Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classIsingModelTest.html">IsingModelTest</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">test_2x2_lattice</a>(double tol, int max_cycles)</td><td class="entry"><a class="el" href="classIsingModelTest.html">IsingModelTest</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">test_init_functions</a>()</td><td class="entry"><a class="el" href="classIsingModelTest.html">IsingModelTest</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,215 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: IsingModelTest Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classIsingModelTest.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classIsingModelTest-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">IsingModelTest Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Test class for the Ising model.
<a href="classIsingModelTest.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a717e5852ca51432a61fb6ed38da37931"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">test_init_functions</a> ()</td></tr>
<tr class="memdesc:a717e5852ca51432a61fb6ed38da37931"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test That initializing works as intended. <br /></td></tr>
<tr class="separator:a717e5852ca51432a61fb6ed38da37931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ace7013fa2d257ad1747961da6bc4de"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">test_2x2_lattice</a> (double tol, int max_cycles)</td></tr>
<tr class="memdesc:a4ace7013fa2d257ad1747961da6bc4de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test numerical data with analytical data. <br /></td></tr>
<tr class="separator:a4ace7013fa2d257ad1747961da6bc4de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Test class for the Ising model. </p>
<p class="definition">Definition at line <a class="el" href="test__suite_8cpp_source.html#l00030">30</a> of file <a class="el" href="test__suite_8cpp_source.html">test_suite.cpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a4ace7013fa2d257ad1747961da6bc4de" name="a4ace7013fa2d257ad1747961da6bc4de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ace7013fa2d257ad1747961da6bc4de">&#9670;&#160;</a></span>test_2x2_lattice()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int IsingModelTest::test_2x2_lattice </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>max_cycles</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Test numerical data with analytical data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tol</td><td>The tolerance between the analytical and numerical solution. </td></tr>
<tr><td class="paramname">max_cycles</td><td>The max number of Monte Carlo cycles.</td></tr>
</table>
</dd>
</dl>
<p>return int </p>
<p class="definition">Definition at line <a class="el" href="test__suite_8cpp_source.html#l00070">70</a> of file <a class="el" href="test__suite_8cpp_source.html">test_suite.cpp</a>.</p>
</div>
</div>
<a id="a717e5852ca51432a61fb6ed38da37931" name="a717e5852ca51432a61fb6ed38da37931"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a717e5852ca51432a61fb6ed38da37931">&#9670;&#160;</a></span>test_init_functions()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void IsingModelTest::test_init_functions </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Test That initializing works as intended. </p>
<p class="definition">Definition at line <a class="el" href="test__suite_8cpp_source.html#l00034">34</a> of file <a class="el" href="test__suite_8cpp_source.html">test_suite.cpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/<a class="el" href="test__suite_8cpp_source.html">test_suite.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classIsingModelTest.html">IsingModelTest</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
var classIsingModelTest =
[
[ "test_2x2_lattice", "classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de", null ],
[ "test_init_functions", "classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931", null ]
];

View File

@ -0,0 +1,130 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classdata__t.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">data_t Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classdata__t.html">data_t</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data_t</b>() (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>data_t</b>(double E, double E2, double M, double M2, double M_abs) (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>E</b> (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>E2</b> (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>M</b> (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>M2</b> (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>M_abs</b> (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator*</b>(T num) (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator*=</b>(T num) (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator+</b>(const data_t &amp;b) (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator+=</b>(const data_t &amp;b) (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator/</b>(T num) (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator/=</b>(T num) (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator=</b>(T num) (defined in <a class="el" href="classdata__t.html">data_t</a>)</td><td class="entry"><a class="el" href="classdata__t.html">data_t</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

534
docs/classdata__t.html Normal file
View File

@ -0,0 +1,534 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: data_t Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classdata__t.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classdata__t-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">data_t Class Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3f2d19ab309e696ba91a2000479bcb83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html#a3f2d19ab309e696ba91a2000479bcb83">data_t</a> (double E, double E2, double M, double M2, double M_abs)</td></tr>
<tr class="separator:a3f2d19ab309e696ba91a2000479bcb83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a429a11c53ee7fe08f6a4e75db524521d"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a429a11c53ee7fe08f6a4e75db524521d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdata__t.html#a429a11c53ee7fe08f6a4e75db524521d">operator/</a> (T num)</td></tr>
<tr class="separator:a429a11c53ee7fe08f6a4e75db524521d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88da5be78439fbdecfa473ec007dffd8"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a88da5be78439fbdecfa473ec007dffd8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdata__t.html#a88da5be78439fbdecfa473ec007dffd8">operator/=</a> (T num)</td></tr>
<tr class="separator:a88da5be78439fbdecfa473ec007dffd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7954efc97086ea50e10c33113b203085"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a7954efc97086ea50e10c33113b203085"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdata__t.html#a7954efc97086ea50e10c33113b203085">operator*</a> (T num)</td></tr>
<tr class="separator:a7954efc97086ea50e10c33113b203085"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ddf3a7372730ef2393aee8bbcb34992"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a6ddf3a7372730ef2393aee8bbcb34992"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdata__t.html#a6ddf3a7372730ef2393aee8bbcb34992">operator*=</a> (T num)</td></tr>
<tr class="separator:a6ddf3a7372730ef2393aee8bbcb34992"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13bc1d73eadeb39c507e89f5872d726f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html#a13bc1d73eadeb39c507e89f5872d726f">operator+</a> (const <a class="el" href="classdata__t.html">data_t</a> &amp;b)</td></tr>
<tr class="separator:a13bc1d73eadeb39c507e89f5872d726f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cb96b4ff750ab29041038ca53f307cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html#a6cb96b4ff750ab29041038ca53f307cb">operator+=</a> (const <a class="el" href="classdata__t.html">data_t</a> &amp;b)</td></tr>
<tr class="separator:a6cb96b4ff750ab29041038ca53f307cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2d3c039ae62418d03f3fe4d02c94416"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ae2d3c039ae62418d03f3fe4d02c94416"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdata__t.html#ae2d3c039ae62418d03f3fe4d02c94416">operator=</a> (T num)</td></tr>
<tr class="separator:ae2d3c039ae62418d03f3fe4d02c94416"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a6c1a196d96e177b11ca98c61fae35a2e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html#a6c1a196d96e177b11ca98c61fae35a2e">E</a></td></tr>
<tr class="separator:a6c1a196d96e177b11ca98c61fae35a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad08d2488bf913c626157471cf6e8a46a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html#ad08d2488bf913c626157471cf6e8a46a">M</a></td></tr>
<tr class="separator:ad08d2488bf913c626157471cf6e8a46a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb622f9c6cc5ffb9dddb151d2e202f72"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html#abb622f9c6cc5ffb9dddb151d2e202f72">E2</a></td></tr>
<tr class="separator:abb622f9c6cc5ffb9dddb151d2e202f72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71ae3cd4460f2c66239500c11804e70b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html#a71ae3cd4460f2c66239500c11804e70b">M2</a></td></tr>
<tr class="separator:a71ae3cd4460f2c66239500c11804e70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a586475e0f71322dffda2e75f228ab24b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html#a586475e0f71322dffda2e75f228ab24b">M_abs</a></td></tr>
<tr class="separator:a586475e0f71322dffda2e75f228ab24b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00018">18</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa2690d3e5d711b4baf3c8f8b9095faf7" name="aa2690d3e5d711b4baf3c8f8b9095faf7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2690d3e5d711b4baf3c8f8b9095faf7">&#9670;&#160;</a></span>data_t() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">data_t::data_t </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00022">22</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="a3f2d19ab309e696ba91a2000479bcb83" name="a3f2d19ab309e696ba91a2000479bcb83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f2d19ab309e696ba91a2000479bcb83">&#9670;&#160;</a></span>data_t() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">data_t::data_t </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>E2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>M</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>M2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>M_abs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00031">31</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a7954efc97086ea50e10c33113b203085" name="a7954efc97086ea50e10c33113b203085"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7954efc97086ea50e10c33113b203085">&#9670;&#160;</a></span>operator*()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> data_t::operator* </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>num</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00063">63</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="a6ddf3a7372730ef2393aee8bbcb34992" name="a6ddf3a7372730ef2393aee8bbcb34992"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ddf3a7372730ef2393aee8bbcb34992">&#9670;&#160;</a></span>operator*=()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> &amp; data_t::operator*= </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>num</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00075">75</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="a13bc1d73eadeb39c507e89f5872d726f" name="a13bc1d73eadeb39c507e89f5872d726f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13bc1d73eadeb39c507e89f5872d726f">&#9670;&#160;</a></span>operator+()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> data_t::operator+ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdata__t.html">data_t</a> &amp;&#160;</td>
<td class="paramname"><em>b</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00086">86</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="a6cb96b4ff750ab29041038ca53f307cb" name="a6cb96b4ff750ab29041038ca53f307cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cb96b4ff750ab29041038ca53f307cb">&#9670;&#160;</a></span>operator+=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> &amp; data_t::operator+= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdata__t.html">data_t</a> &amp;&#160;</td>
<td class="paramname"><em>b</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00098">98</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="a429a11c53ee7fe08f6a4e75db524521d" name="a429a11c53ee7fe08f6a4e75db524521d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a429a11c53ee7fe08f6a4e75db524521d">&#9670;&#160;</a></span>operator/()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> data_t::operator/ </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>num</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00040">40</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="a88da5be78439fbdecfa473ec007dffd8" name="a88da5be78439fbdecfa473ec007dffd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88da5be78439fbdecfa473ec007dffd8">&#9670;&#160;</a></span>operator/=()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> &amp; data_t::operator/= </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>num</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00052">52</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="ae2d3c039ae62418d03f3fe4d02c94416" name="ae2d3c039ae62418d03f3fe4d02c94416"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2d3c039ae62418d03f3fe4d02c94416">&#9670;&#160;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void data_t::operator= </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>num</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00109">109</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a6c1a196d96e177b11ca98c61fae35a2e" name="a6c1a196d96e177b11ca98c61fae35a2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c1a196d96e177b11ca98c61fae35a2e">&#9670;&#160;</a></span>E</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double data_t::E</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00020">20</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="abb622f9c6cc5ffb9dddb151d2e202f72" name="abb622f9c6cc5ffb9dddb151d2e202f72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb622f9c6cc5ffb9dddb151d2e202f72">&#9670;&#160;</a></span>E2</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double data_t::E2</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00020">20</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="ad08d2488bf913c626157471cf6e8a46a" name="ad08d2488bf913c626157471cf6e8a46a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad08d2488bf913c626157471cf6e8a46a">&#9670;&#160;</a></span>M</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double data_t::M</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00020">20</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="a71ae3cd4460f2c66239500c11804e70b" name="a71ae3cd4460f2c66239500c11804e70b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71ae3cd4460f2c66239500c11804e70b">&#9670;&#160;</a></span>M2</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double data_t::M2</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00020">20</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<a id="a586475e0f71322dffda2e75f228ab24b" name="a586475e0f71322dffda2e75f228ab24b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a586475e0f71322dffda2e75f228ab24b">&#9670;&#160;</a></span>M_abs</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double data_t::M_abs</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="data__type_8hpp_source.html#l00020">20</a> of file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/<a class="el" href="data__type_8hpp_source.html">data_type.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classdata__t.html">data_t</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

122
docs/classes.html Normal file
View File

@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Class Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classes.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Class Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_D" name="letter_D">D</a></dt>
<dd><a class="el" href="classdata__t.html">data_t</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_I" name="letter_I">I</a></dt>
<dd><a class="el" href="classIsingModel.html">IsingModel</a></dd><dd><a class="el" href="classIsingModelTest.html">IsingModelTest</a></dd></dl>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

BIN
docs/closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

156
docs/constants_8hpp.html Normal file
View File

@ -0,0 +1,156 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include/constants.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('constants_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle"><div class="title">constants.hpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Library of constants.
<a href="#details">More...</a></p>
<p><a href="constants_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:abfa7d6668c777f9516606394bbc9c414"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="constants_8hpp.html#abfa7d6668c777f9516606394bbc9c414">k_B</a>&#160;&#160;&#160;1.380649e-23</td></tr>
<tr class="memdesc:abfa7d6668c777f9516606394bbc9c414"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boltzmann constant. unit \( \frac{J}{K} \). <br /></td></tr>
<tr class="separator:abfa7d6668c777f9516606394bbc9c414"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Library of constants. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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>
<p class="definition">Definition in file <a class="el" href="constants_8hpp_source.html">constants.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="abfa7d6668c777f9516606394bbc9c414" name="abfa7d6668c777f9516606394bbc9c414"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfa7d6668c777f9516606394bbc9c414">&#9670;&#160;</a></span>k_B</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define k_B&#160;&#160;&#160;1.380649e-23</td>
</tr>
</table>
</div><div class="memdoc">
<p>Boltzmann constant. unit \( \frac{J}{K} \). </p>
<p class="definition">Definition at line <a class="el" href="constants_8hpp_source.html#l00017">17</a> of file <a class="el" href="constants_8hpp_source.html">constants.hpp</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="constants_8hpp.html">constants.hpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

4
docs/constants_8hpp.js Normal file
View File

@ -0,0 +1,4 @@
var constants_8hpp =
[
[ "k_B", "constants_8hpp.html#abfa7d6668c777f9516606394bbc9c414", null ]
];

View File

@ -0,0 +1,121 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include/constants.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('constants_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">constants.hpp</div></div>
</div><!--header-->
<div class="contents">
<a href="constants_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"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifndef __CONST__</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define __CONST__</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="constants_8hpp.html#abfa7d6668c777f9516606394bbc9c414"> 17</a></span><span class="preprocessor">#define k_B 1.380649e-23 </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">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="constants_8hpp.html">constants.hpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

129
docs/data__type_8cpp.html Normal file
View File

@ -0,0 +1,129 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/data_type.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('data__type_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">data_type.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Implementation for the <a class="el" href="classdata__t.html">data_t</a> type.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>&quot;</code><br />
</div>
<p><a href="data__type_8cpp_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation for the <a class="el" href="classdata__t.html">data_t</a> type. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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>
<p class="definition">Definition in file <a class="el" href="data__type_8cpp_source.html">data_type.cpp</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="data__type_8cpp.html">data_type.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

7
docs/data__type_8cpp.js Normal file
View File

@ -0,0 +1,7 @@
var data__type_8cpp =
[
[ "operator+", "data__type_8cpp.html#aeac60601d10d473f1dbc49340cd92ec7", null ],
[ "operator+=", "data__type_8cpp.html#a16f12c0123a28da1b455068a19c2c946", null ],
[ "operator/", "data__type_8cpp.html#ae5a8fce91c4342a7a4b39fb30a05ebb7", null ],
[ "operator/=", "data__type_8cpp.html#a5495478f6af965861b3274b17ebe6ba2", null ]
];

View File

@ -0,0 +1,117 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/data_type.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('data__type_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">data_type.cpp</div></div>
</div><!--header-->
<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> </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="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><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="data__type_8cpp.html">data_type.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

138
docs/data__type_8hpp.html Normal file
View File

@ -0,0 +1,138 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include/data_type.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('data__type_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle"><div class="title">data_type.hpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Header for the <a class="el" href="classdata__t.html">data_t</a> type.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;sys/types.h&gt;</code><br />
<code>#include &lt;type_traits&gt;</code><br />
</div>
<p><a href="data__type_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdata__t.html">data_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Header for the <a class="el" href="classdata__t.html">data_t</a> type. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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>
<p class="definition">Definition in file <a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="data__type_8hpp.html">data_type.hpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

4
docs/data__type_8hpp.js Normal file
View File

@ -0,0 +1,4 @@
var data__type_8hpp =
[
[ "data_t", "classdata__t.html", null ]
];

View File

@ -0,0 +1,224 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include/data_type.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('data__type_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">data_type.hpp</div></div>
</div><!--header-->
<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> </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"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define __DATA_TYPE__</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">#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">#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="l00018" name="l00018"></a><span class="lineno"><a class="line" href="classdata__t.html"> 18</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"> 19</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">double</span> E, M, E2, M2, M_abs;</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> <a class="code hl_class" href="classdata__t.html">data_t</a>()</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> this-&gt;E = 0.;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> this-&gt;E2 = 0.;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> this-&gt;M = 0.;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> this-&gt;M2 = 0.;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> this-&gt;M_abs = 0.;</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="l00031" name="l00031"></a><span class="lineno"> 31</span> <a class="code hl_class" href="classdata__t.html">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="l00032" name="l00032"></a><span class="lineno"> 32</span> {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> this-&gt;E = E;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> this-&gt;E2 = E2;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> this-&gt;M = M;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> this-&gt;M2 = M2;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> this-&gt;M_abs = M_abs;</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> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</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> operator/(T num)</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="classdata__t.html">data_t</a> res;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> res.E = this-&gt;E / (double)num;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> res.E2 = this-&gt;E2 / (double)num;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> res.M = this-&gt;M / (double)num;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> res.M2 = this-&gt;M2 / (double)num;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> res.M_abs = this-&gt;M_abs / (double)num;</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="keywordflow">return</span> res;</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> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</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; operator/=(T num)</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> this-&gt;E /= (double)num;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> this-&gt;E2 /= (double)num;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> this-&gt;M /= (double)num;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> this-&gt;M2 /= (double)num;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> this-&gt;M_abs /= (double)num;</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="keywordflow">return</span> *<span class="keyword">this</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="l00063" name="l00063"></a><span class="lineno"> 63</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> operator*(T num)</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> <a class="code hl_class" href="classdata__t.html">data_t</a> res;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> res.E = this-&gt;E * (double)num;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> res.E2 = this-&gt;E2 * (double)num;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> res.M = this-&gt;M * (double)num;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> res.M2 = this-&gt;M2 * (double)num;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> res.M_abs = this-&gt;M_abs * (double)num;</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="keywordflow">return</span> res;</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> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</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; operator*=(T num)</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> this-&gt;E *= (double)num;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> this-&gt;E2 *= (double)num;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> this-&gt;M *= (double)num;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> this-&gt;M2 *= (double)num;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> this-&gt;M_abs *= (double)num;</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">return</span> *<span class="keyword">this</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="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_class" href="classdata__t.html">data_t</a> operator+(<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="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="classdata__t.html">data_t</a> res;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> res.E = this-&gt;E + b.E;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> res.E2 = this-&gt;E2 + b.E2;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> res.M = this-&gt;M + b.M;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> res.M2 = this-&gt;M2 + b.M2;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> res.M_abs = this-&gt;M_abs + b.M_abs;</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> <span class="keywordflow">return</span> res;</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> </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>&amp; operator+=(<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="l00099" name="l00099"></a><span class="lineno"> 99</span> {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> this-&gt;E += b.E;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> this-&gt;E2 += b.E2;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> this-&gt;M += b.M;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> this-&gt;M2 += b.M2;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> this-&gt;M_abs += b.M_abs;</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> <span class="keywordflow">return</span> *<span class="keyword">this</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="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keywordtype">void</span> operator=(T num)</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> {</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> this-&gt;E = (double)num;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> this-&gt;E2 = (double)num;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> this-&gt;M = (double)num;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> this-&gt;M2 = (double)num;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> this-&gt;M_abs = (double)num;</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>};</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</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="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00018">data_type.hpp:18</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="data__type_8hpp.html">data_type.hpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,124 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/scripts Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dir_634e799a3947388232110823971192a8.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">scripts Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>burn_in_time.py</b> <a href="burn__in__time_8py_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>pd_estimate.py</b> <a href="pd__estimate_8py_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>phase_transition.py</b> <a href="phase__transition_8py_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_634e799a3947388232110823971192a8.html">scripts</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,6 @@
var dir_634e799a3947388232110823971192a8 =
[
[ "burn_in_time.py", "burn__in__time_8py_source.html", null ],
[ "pd_estimate.py", "pd__estimate_8py_source.html", null ],
[ "phase_transition.py", "phase__transition_8py_source.html", null ]
];

View File

@ -0,0 +1,147 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">src Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
Directories</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_634e799a3947388232110823971192a8.html">scripts</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="data__type_8cpp.html">data_type.cpp</a> <a href="data__type_8cpp_source.html">[code]</a></td></tr>
<tr class="memdesc:data__type_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation for the <a class="el" href="classdata__t.html">data_t</a> type. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IsingModel_8cpp.html">IsingModel.cpp</a> <a href="IsingModel_8cpp_source.html">[code]</a></td></tr>
<tr class="memdesc:IsingModel_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">The implementation of the Ising model. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html">main.cpp</a> <a href="main_8cpp_source.html">[code]</a></td></tr>
<tr class="memdesc:main_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main program. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8cpp.html">monte_carlo.cpp</a> <a href="monte__carlo_8cpp_source.html">[code]</a></td></tr>
<tr class="memdesc:monte__carlo_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the monte carlo functions. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="phase__transition__mpi_8cpp.html">phase_transition_mpi.cpp</a> <a href="phase__transition__mpi_8cpp_source.html">[code]</a></td></tr>
<tr class="memdesc:phase__transition__mpi_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sweep over different temperatures and generate data. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="test__suite_8cpp.html">test_suite.cpp</a> <a href="test__suite_8cpp_source.html">[code]</a></td></tr>
<tr class="memdesc:test__suite_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sweep over different temperatures and generate data. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="testlib_8cpp.html">testlib.cpp</a> <a href="testlib_8cpp_source.html">[code]</a></td></tr>
<tr class="memdesc:testlib_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the testing library. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8cpp.html">utils.cpp</a> <a href="utils_8cpp_source.html">[code]</a></td></tr>
<tr class="memdesc:utils_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the utils. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,12 @@
var dir_68267d1309a1af8e8297ef4c3efbcdba =
[
[ "scripts", "dir_634e799a3947388232110823971192a8.html", "dir_634e799a3947388232110823971192a8" ],
[ "data_type.cpp", "data__type_8cpp.html", null ],
[ "IsingModel.cpp", "IsingModel_8cpp.html", null ],
[ "main.cpp", "main_8cpp.html", "main_8cpp" ],
[ "monte_carlo.cpp", "monte__carlo_8cpp.html", "monte__carlo_8cpp" ],
[ "phase_transition_mpi.cpp", "phase__transition__mpi_8cpp.html", "phase__transition__mpi_8cpp" ],
[ "test_suite.cpp", "test__suite_8cpp.html", "test__suite_8cpp" ],
[ "testlib.cpp", "testlib_8cpp.html", "testlib_8cpp" ],
[ "utils.cpp", "utils_8cpp.html", "utils_8cpp" ]
];

View File

@ -0,0 +1,139 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dir_d44c64559bbebec7f509842c48db8b23.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">include Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="constants_8hpp.html">constants.hpp</a> <a href="constants_8hpp_source.html">[code]</a></td></tr>
<tr class="memdesc:constants_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Library of constants. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="data__type_8hpp.html">data_type.hpp</a> <a href="data__type_8hpp_source.html">[code]</a></td></tr>
<tr class="memdesc:data__type_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header for the <a class="el" href="classdata__t.html">data_t</a> type. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IsingModel_8hpp.html">IsingModel.hpp</a> <a href="IsingModel_8hpp_source.html">[code]</a></td></tr>
<tr class="memdesc:IsingModel_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">The definition of the Ising model. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html">monte_carlo.hpp</a> <a href="monte__carlo_8hpp_source.html">[code]</a></td></tr>
<tr class="memdesc:monte__carlo_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for monte carlo simulations. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="testlib_8hpp.html">testlib.hpp</a> <a href="testlib_8hpp_source.html">[code]</a></td></tr>
<tr class="memdesc:testlib_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">A small test library. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8hpp.html">typedefs.hpp</a> <a href="typedefs_8hpp_source.html">[code]</a></td></tr>
<tr class="memdesc:typedefs_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Useful typedefs for cleaner code. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html">utils.hpp</a> <a href="utils_8hpp_source.html">[code]</a></td></tr>
<tr class="memdesc:utils_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function prototypes and macros that are useful. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,10 @@
var dir_d44c64559bbebec7f509842c48db8b23 =
[
[ "constants.hpp", "constants_8hpp.html", "constants_8hpp" ],
[ "data_type.hpp", "data__type_8hpp.html", "data__type_8hpp" ],
[ "IsingModel.hpp", "IsingModel_8hpp.html", "IsingModel_8hpp" ],
[ "monte_carlo.hpp", "monte__carlo_8hpp.html", "monte__carlo_8hpp" ],
[ "testlib.hpp", "testlib_8hpp.html", "testlib_8hpp" ],
[ "typedefs.hpp", "typedefs_8hpp.html", null ],
[ "utils.hpp", "utils_8hpp.html", "utils_8hpp" ]
];

BIN
docs/doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

BIN
docs/docd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

2530
docs/doxygen-awesome.css Normal file

File diff suppressed because it is too large Load Diff

1665
docs/doxygen.css Normal file

File diff suppressed because it is too large Load Diff

26
docs/doxygen.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

130
docs/dynsections.js Normal file
View File

@ -0,0 +1,130 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
$('table.directory tr').
removeClass('odd').filter(':visible:odd').addClass('odd');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
/* @license-end */
$(document).ready(function() {
$('.code,.codeRef').each(function() {
$(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
$.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ];
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
});
});

138
docs/files.html Normal file
View File

@ -0,0 +1,138 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('files.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">File List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html" target="_self">include</a></td><td class="desc"></td></tr>
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="constants_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="constants_8hpp.html" target="_self">constants.hpp</a></td><td class="desc">Library of constants </td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="data__type_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="data__type_8hpp.html" target="_self">data_type.hpp</a></td><td class="desc">Header for the <a class="el" href="classdata__t.html">data_t</a> type </td></tr>
<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="IsingModel_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="IsingModel_8hpp.html" target="_self">IsingModel.hpp</a></td><td class="desc">The definition of the Ising model </td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="monte__carlo_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="monte__carlo_8hpp.html" target="_self">monte_carlo.hpp</a></td><td class="desc">Functions for monte carlo simulations </td></tr>
<tr id="row_0_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="testlib_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="testlib_8hpp.html" target="_self">testlib.hpp</a></td><td class="desc">A small test library </td></tr>
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="typedefs_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="typedefs_8hpp.html" target="_self">typedefs.hpp</a></td><td class="desc">Useful typedefs for cleaner code </td></tr>
<tr id="row_0_6_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="utils_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="utils_8hpp.html" target="_self">utils.hpp</a></td><td class="desc">Function prototypes and macros that are useful </td></tr>
<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">&#9660;</span><span id="img_1_0_" class="iconfopen" onclick="toggleFolder('1_0_')">&#160;</span><a class="el" href="dir_634e799a3947388232110823971192a8.html" target="_self">scripts</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="burn__in__time_8py_source.html"><span class="icondoc"></span></a><b>burn_in_time.py</b></td><td class="desc"></td></tr>
<tr id="row_1_0_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="pd__estimate_8py_source.html"><span class="icondoc"></span></a><b>pd_estimate.py</b></td><td class="desc"></td></tr>
<tr id="row_1_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="phase__transition_8py_source.html"><span class="icondoc"></span></a><b>phase_transition.py</b></td><td class="desc"></td></tr>
<tr id="row_1_1_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="data__type_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="data__type_8cpp.html" target="_self">data_type.cpp</a></td><td class="desc">Implementation for the <a class="el" href="classdata__t.html">data_t</a> type </td></tr>
<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="IsingModel_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="IsingModel_8cpp.html" target="_self">IsingModel.cpp</a></td><td class="desc">The implementation of the Ising model </td></tr>
<tr id="row_1_3_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="main_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="main_8cpp.html" target="_self">main.cpp</a></td><td class="desc">The main program </td></tr>
<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="monte__carlo_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="monte__carlo_8cpp.html" target="_self">monte_carlo.cpp</a></td><td class="desc">Implementation of the monte carlo functions </td></tr>
<tr id="row_1_5_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="phase__transition__mpi_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="phase__transition__mpi_8cpp.html" target="_self">phase_transition_mpi.cpp</a></td><td class="desc">Sweep over different temperatures and generate data </td></tr>
<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="test__suite_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="test__suite_8cpp.html" target="_self">test_suite.cpp</a></td><td class="desc">Sweep over different temperatures and generate data </td></tr>
<tr id="row_1_7_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="testlib_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="testlib_8cpp.html" target="_self">testlib.cpp</a></td><td class="desc">Implementation of the testing library </td></tr>
<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="utils_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="utils_8cpp.html" target="_self">utils.cpp</a></td><td class="desc">Implementation of the utils </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

5
docs/files_dup.js Normal file
View File

@ -0,0 +1,5 @@
var files_dup =
[
[ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ],
[ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ]
];

BIN
docs/folderclosed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

BIN
docs/folderopen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

130
docs/functions.html Normal file
View File

@ -0,0 +1,130 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Class Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('functions.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div><ul>
<li>E&#160;:&#160;<a class="el" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">IsingModel</a></li>
<li>energy_diff&#160;:&#160;<a class="el" href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">IsingModel</a></li>
<li>get_E()&#160;:&#160;<a class="el" href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5">IsingModel</a></li>
<li>get_M()&#160;:&#160;<a class="el" href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625">IsingModel</a></li>
<li>initialize_energy()&#160;:&#160;<a class="el" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel</a></li>
<li>initialize_energy_diff()&#160;:&#160;<a class="el" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">IsingModel</a></li>
<li>initialize_lattice()&#160;:&#160;<a class="el" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel</a></li>
<li>initialize_magnetization()&#160;:&#160;<a class="el" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel</a></li>
<li>initialize_neighbors()&#160;:&#160;<a class="el" href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel</a></li>
<li>IsingModel()&#160;:&#160;<a class="el" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a></li>
<li>L&#160;:&#160;<a class="el" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel</a></li>
<li>lattice&#160;:&#160;<a class="el" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">IsingModel</a></li>
<li>M&#160;:&#160;<a class="el" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">IsingModel</a></li>
<li>Metropolis()&#160;:&#160;<a class="el" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel</a></li>
<li>neighbors&#160;:&#160;<a class="el" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">IsingModel</a></li>
<li>T&#160;:&#160;<a class="el" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">IsingModel</a></li>
<li>test_2x2_lattice()&#160;:&#160;<a class="el" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">IsingModelTest</a></li>
<li>test_init_functions()&#160;:&#160;<a class="el" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">IsingModelTest</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

123
docs/functions_func.html Normal file
View File

@ -0,0 +1,123 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Class Members - Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('functions_func.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>get_E()&#160;:&#160;<a class="el" href="classIsingModel.html#aaa0787d964b004a17869811a5e947ff5">IsingModel</a></li>
<li>get_M()&#160;:&#160;<a class="el" href="classIsingModel.html#aa5701496e6483bc4668c486d6d3af625">IsingModel</a></li>
<li>initialize_energy()&#160;:&#160;<a class="el" href="classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1">IsingModel</a></li>
<li>initialize_energy_diff()&#160;:&#160;<a class="el" href="classIsingModel.html#aff9a1201933fd5408845a1447e4895b4">IsingModel</a></li>
<li>initialize_lattice()&#160;:&#160;<a class="el" href="classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a">IsingModel</a></li>
<li>initialize_magnetization()&#160;:&#160;<a class="el" href="classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4">IsingModel</a></li>
<li>initialize_neighbors()&#160;:&#160;<a class="el" href="classIsingModel.html#a6776109105051597c275670dabd0054a">IsingModel</a></li>
<li>IsingModel()&#160;:&#160;<a class="el" href="classIsingModel.html#acf281f6f5ed02911ca6ab07004449864">IsingModel</a></li>
<li>Metropolis()&#160;:&#160;<a class="el" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">IsingModel</a></li>
<li>test_2x2_lattice()&#160;:&#160;<a class="el" href="classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de">IsingModelTest</a></li>
<li>test_init_functions()&#160;:&#160;<a class="el" href="classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931">IsingModelTest</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

119
docs/functions_vars.html Normal file
View File

@ -0,0 +1,119 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Class Members - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('functions_vars.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>E&#160;:&#160;<a class="el" href="classIsingModel.html#ae9f872ca2054992161d53306119979dd">IsingModel</a></li>
<li>energy_diff&#160;:&#160;<a class="el" href="classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd">IsingModel</a></li>
<li>L&#160;:&#160;<a class="el" href="classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348">IsingModel</a></li>
<li>lattice&#160;:&#160;<a class="el" href="classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41">IsingModel</a></li>
<li>M&#160;:&#160;<a class="el" href="classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47">IsingModel</a></li>
<li>neighbors&#160;:&#160;<a class="el" href="classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd">IsingModel</a></li>
<li>T&#160;:&#160;<a class="el" href="classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c">IsingModel</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

123
docs/globals.html Normal file
View File

@ -0,0 +1,123 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('globals.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div><ul>
<li>__METHOD_NAME__&#160;:&#160;<a class="el" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">utils.hpp</a></li>
<li>ASSERT&#160;:&#160;<a class="el" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">testlib.hpp</a></li>
<li>DEBUG&#160;:&#160;<a class="el" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">utils.hpp</a></li>
<li>k_B&#160;:&#160;<a class="el" href="constants_8hpp.html#abfa7d6668c777f9516606394bbc9c414">constants.hpp</a></li>
<li>main()&#160;:&#160;<a class="el" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main.cpp</a>, <a class="el" href="phase__transition__mpi_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">phase_transition_mpi.cpp</a>, <a class="el" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">test_suite.cpp</a></li>
<li>monte_carlo_parallel()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo.cpp</a></li>
<li>monte_carlo_progression()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo.cpp</a></li>
<li>monte_carlo_serial()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo.cpp</a></li>
<li>pd_estimate()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#a962f704ab35208bf6541eb3b707a9559">monte_carlo.cpp</a></li>
<li>phase_transition()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#a7df22ace588b4d229d1029ce766d0009">monte_carlo.cpp</a></li>
<li>test_2x2_lattice()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#aa8b4fc86b26f0e3e253ba5556d2d14dc">monte_carlo.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

116
docs/globals_defs.html Normal file
View File

@ -0,0 +1,116 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('globals_defs.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>__METHOD_NAME__&#160;:&#160;<a class="el" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">utils.hpp</a></li>
<li>ASSERT&#160;:&#160;<a class="el" href="testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">testlib.hpp</a></li>
<li>DEBUG&#160;:&#160;<a class="el" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">utils.hpp</a></li>
<li>k_B&#160;:&#160;<a class="el" href="constants_8hpp.html#abfa7d6668c777f9516606394bbc9c414">constants.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

119
docs/globals_func.html Normal file
View File

@ -0,0 +1,119 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('globals_func.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>main()&#160;:&#160;<a class="el" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main.cpp</a>, <a class="el" href="phase__transition__mpi_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">phase_transition_mpi.cpp</a>, <a class="el" href="test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">test_suite.cpp</a></li>
<li>monte_carlo_parallel()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo.cpp</a></li>
<li>monte_carlo_progression()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo.cpp</a></li>
<li>monte_carlo_serial()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo.cpp</a></li>
<li>pd_estimate()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#a962f704ab35208bf6541eb3b707a9559">monte_carlo.cpp</a></li>
<li>phase_transition()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">monte_carlo.hpp</a>, <a class="el" href="monte__carlo_8cpp.html#a7df22ace588b4d229d1029ce766d0009">monte_carlo.cpp</a></li>
<li>test_2x2_lattice()&#160;:&#160;<a class="el" href="monte__carlo_8hpp.html#aa8b4fc86b26f0e3e253ba5556d2d14dc">monte_carlo.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

216
docs/index.html Normal file
View File

@ -0,0 +1,216 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Ising Model</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('index.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div><div class="header">
<div class="headertitle"><div class="title">Ising Model </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="md_README"></a> <a href="https://github.uio.no/FYS3150-G2-2023/Project-4">Repo</a></p>
<p><a href="https://pages.github.uio.no/FYS3150-G2-2023/Project-4/">Documentation</a></p>
<h1><a class="anchor" id="autotoc_md1"></a>
Requirements</h1>
<h2><a class="anchor" id="autotoc_md2"></a>
Operating systems</h2>
<ul>
<li>Linux<ul>
<li>Has been tested on <a href="https://fedoraproject.org/">Fedora 38</a></li>
<li>Will most likely work on other Linux distributions</li>
</ul>
</li>
<li>MacOS<ul>
<li>Might work, but hasn't been tested</li>
</ul>
</li>
<li>Windows<ul>
<li>Will most likely not work</li>
</ul>
</li>
</ul>
<h2><a class="anchor" id="autotoc_md3"></a>
Tools</h2>
<ul>
<li>Profiling<ul>
<li><a href="https://ftp.gnu.org/old-gnu/Manuals/gprof-2.9.1/html_mono/gprof.html">gprof</a></li>
<li><a href="https://www.scalasca.org/">scalasca</a></li>
<li><a href="https://www.vi-hps.org/projects/score-p">score-p</a></li>
</ul>
</li>
</ul>
<h2><a class="anchor" id="autotoc_md4"></a>
Libraries</h2>
<ul>
<li>Python<ul>
<li><a href="https://matplotlib.org/">matplotlib</a></li>
<li><a href="https://numpy.org/">numpy</a></li>
</ul>
</li>
<li>C++<ul>
<li><a href="https://www.openmp.org/">Openmp</a></li>
<li><a href="https://www.open-mpi.org/">OpenMPI</a></li>
<li><a href="https://arma.sourceforge.net/">Armadillo</a></li>
</ul>
</li>
</ul>
<h1><a class="anchor" id="autotoc_md5"></a>
Compiling</h1>
<p>Compiling is as easy as running this command while being inside the src directory:</p>
<div class="fragment"><div class="line">make</div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md6"></a>
Running programs</h1>
<h2><a class="anchor" id="autotoc_md7"></a>
C++ binaries</h2>
<p>To run <b>main</b> or <b>test_suite</b>, just run this command while being inside src:</p>
<div class="fragment"><div class="line">./&lt;program-name&gt;</div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md8"></a>
Python scripts</h2>
<h3><a class="anchor" id="autotoc_md9"></a>
Install libraries</h3>
<p>Before running the scripts, make sure that all libraries are installed. Using pip, you can install all requirements like this:</p>
<div class="fragment"><div class="line">pip install -r requirements.txt</div>
</div><!-- fragment --><p>This recursively install all the packages that are listed in <b>requirements.txt</b>.</p>
<h3><a class="anchor" id="autotoc_md10"></a>
Running scripts</h3>
<p>For the Python scripts, run them from the src directory like this:</p>
<div class="fragment"><div class="line">python scripts/&lt;script-name&gt;</div>
</div><!-- fragment --><p>If you have any problems running the scripts, you might have to run this instead:</p>
<div class="fragment"><div class="line">python3 scripts/&lt;script-name&gt;</div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md11"></a>
Batch system</h2>
<p>For the <b>phase_transition_mpi</b> program, there are scripts in the <b>src/jobs</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. This is the recommended way to use this program as it takes approximately 90 minutes to complete when using 8 processes where each process has 10 threads.</p>
<p>If you happen to have such a system available to you, then you should clone this repo on that system, then compile it by running:</p>
<div class="fragment"><div class="line">make phase_transition_mpi</div>
</div><!-- fragment --><p>You might have to load the Armadillo library using the <b>module</b> system before compiling.</p>
<p>After compiling, you can schedule it by running:</p>
<div class="fragment"><div class="line">sbatch jobs/&lt;script-name&gt;</div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md12"></a>
Performance</h1>
<p>This section aims to give an idea to the time it takes for the program to run so that you know a bit what to expect if you decide to run it for yourself.</p>
<h2><a class="anchor" id="autotoc_md13"></a>
CPU</h2>
<p>The times mentioned here are times achieved on a computer with these specifications:</p>
<ul>
<li>CPU model<ul>
<li>Intel i7-9850H</li>
</ul>
</li>
<li>Threads<ul>
<li>12</li>
</ul>
</li>
<li>Clock speed<ul>
<li>4.6GHz</li>
</ul>
</li>
</ul>
<h2><a class="anchor" id="autotoc_md14"></a>
Times</h2>
<h1><a class="anchor" id="autotoc_md15"></a>
Credits</h1>
<p>The Doxygen theme used here is <a href="https://github.com/jothepro/doxygen-awesome-css">doxygen-awesome-css</a>. </p>
</div></div><!-- PageDoc -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

22
docs/index.js Normal file
View File

@ -0,0 +1,22 @@
var index =
[
[ "Requirements", "index.html#autotoc_md1", [
[ "Operating systems", "index.html#autotoc_md2", null ],
[ "Tools", "index.html#autotoc_md3", null ],
[ "Libraries", "index.html#autotoc_md4", null ]
] ],
[ "Compiling", "index.html#autotoc_md5", null ],
[ "Running programs", "index.html#autotoc_md6", [
[ "C++ binaries", "index.html#autotoc_md7", null ],
[ "Python scripts", "index.html#autotoc_md8", [
[ "Install libraries", "index.html#autotoc_md9", null ],
[ "Running scripts", "index.html#autotoc_md10", null ]
] ],
[ "Batch system", "index.html#autotoc_md11", null ]
] ],
[ "Performance", "index.html#autotoc_md12", [
[ "CPU", "index.html#autotoc_md13", null ],
[ "Times", "index.html#autotoc_md14", null ]
] ],
[ "Credits", "index.html#autotoc_md15", null ]
];

34
docs/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

261
docs/main_8cpp.html Normal file
View File

@ -0,0 +1,261 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/main.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('main_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">main.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>The main program.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="monte__carlo_8hpp_source.html">monte_carlo.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="utils_8hpp_source.html">utils.hpp</a>&quot;</code><br />
<code>#include &lt;csignal&gt;</code><br />
<code>#include &lt;cstdlib&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;omp.h&gt;</code><br />
</div>
<p><a href="main_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a68406fc2dd8de5849c3984658c171f32"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a68406fc2dd8de5849c3984658c171f32">create_burn_in_time_data</a> ()</td></tr>
<tr class="separator:a68406fc2dd8de5849c3984658c171f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f8ea24364d72024915d3753a572cc5b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a4f8ea24364d72024915d3753a572cc5b">create_pd_estimate_data</a> ()</td></tr>
<tr class="separator:a4f8ea24364d72024915d3753a572cc5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dfa85080578dffff23b68e372cece95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a0dfa85080578dffff23b68e372cece95">test_parallel_speedup</a> ()</td></tr>
<tr class="separator:a0dfa85080578dffff23b68e372cece95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d62cf1399596f4c5a39abdd3196d76d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a9d62cf1399596f4c5a39abdd3196d76d">create_phase_transition_data</a> ()</td></tr>
<tr class="separator:a9d62cf1399596f4c5a39abdd3196d76d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
<tr class="memdesc:a3c04138a5bfe5d72780bb7e82a18e627"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function. <br /></td></tr>
<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The main program. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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#_bug000010">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>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a68406fc2dd8de5849c3984658c171f32" name="a68406fc2dd8de5849c3984658c171f32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68406fc2dd8de5849c3984658c171f32">&#9670;&#160;</a></span>create_burn_in_time_data()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void create_burn_in_time_data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00021">21</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
</div>
</div>
<a id="a4f8ea24364d72024915d3753a572cc5b" name="a4f8ea24364d72024915d3753a572cc5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f8ea24364d72024915d3753a572cc5b">&#9670;&#160;</a></span>create_pd_estimate_data()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void create_pd_estimate_data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00034">34</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
</div>
</div>
<a id="a9d62cf1399596f4c5a39abdd3196d76d" name="a9d62cf1399596f4c5a39abdd3196d76d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d62cf1399596f4c5a39abdd3196d76d">&#9670;&#160;</a></span>create_phase_transition_data()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void create_phase_transition_data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00062">62</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
</div>
</div>
<a id="a3c04138a5bfe5d72780bb7e82a18e627" name="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">&#9670;&#160;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>argv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The main function. </p>
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00084">84</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
</div>
</div>
<a id="a0dfa85080578dffff23b68e372cece95" name="a0dfa85080578dffff23b68e372cece95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0dfa85080578dffff23b68e372cece95">&#9670;&#160;</a></span>test_parallel_speedup()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test_parallel_speedup </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00041">41</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="main_8cpp.html">main.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

4
docs/main_8cpp.js Normal file
View File

@ -0,0 +1,4 @@
var main_8cpp =
[
[ "main", "main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627", null ]
];

226
docs/main_8cpp_source.html Normal file
View File

@ -0,0 +1,226 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/main.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('main_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">main.cpp</div></div>
</div><!--header-->
<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> </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"><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"><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"><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">#include &lt;csignal&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;omp.h&gt;</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="keywordtype">void</span> create_burn_in_time_data()</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="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_function" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a>(1.0, 20, 20000,</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="stringliteral">&quot;output/burn_in_time/unordered_1_0.txt&quot;</span>);</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_function" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a>(1.0, 20, 20000, 1,</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="stringliteral">&quot;output/burn_in_time/ordered_1_0.txt&quot;</span>);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_function" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a>(2.4, 20, 20000,</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="stringliteral">&quot;output/burn_in_time/unordered_2_4.txt&quot;</span>);</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <a class="code hl_function" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a>(2.4, 20, 20000, 1,</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="stringliteral">&quot;output/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="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="keywordtype">void</span> create_pd_estimate_data()</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">// Estimate pd</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">pd_estimate</a>(1.0, 20, 1000000, <span class="stringliteral">&quot;output/pd_estimate/estimate_1_0.txt&quot;</span>);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">pd_estimate</a>(2.4, 20, 1000000, <span class="stringliteral">&quot;output/pd_estimate/estimate_2_4.txt&quot;</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> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keywordtype">void</span> test_parallel_speedup()</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> <span class="comment">// Test the openmp speedup</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordtype">double</span> t0, t1, t2;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">int</span> tries = 5;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> t0 = omp_get_wtime();</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; tries; i++)</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo_serial</a>(20, 1.0, 10000);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> t1 = omp_get_wtime();</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; tries; i++)</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_function" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a>(20, 1.0, 10000);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> t2 = omp_get_wtime();</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> 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="l00056" name="l00056"></a><span class="lineno"> 56</span> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</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="l00058" name="l00058"></a><span class="lineno"> 58</span> &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</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="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="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="keywordtype">void</span> create_phase_transition_data()</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="keywordtype">double</span> t0, t1;</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> t0 = omp_get_wtime();</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Phase transition</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a>(20, 2.1, 2.4, 40, <a class="code hl_function" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a>,</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="stringliteral">&quot;output/phase_transition/size_20.txt&quot;</span>);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a>(40, 2.1, 2.4, 40, <a class="code hl_function" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a>,</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="stringliteral">&quot;output/phase_transition/size_40.txt&quot;</span>);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a>(60, 2.1, 2.4, 40, <a class="code hl_function" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a>,</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="stringliteral">&quot;output/phase_transition/size_60.txt&quot;</span>);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a>(80, 2.1, 2.4, 40, <a class="code hl_function" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a>,</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="stringliteral">&quot;output/phase_transition/size_80.txt&quot;</span>);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a>(100, 2.1, 2.4, 40, <a class="code hl_function" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a>,</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="stringliteral">&quot;output/phase_transition/size_100.txt&quot;</span>);</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> t1 = omp_get_wtime();</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> 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="l00081" name="l00081"></a><span class="lineno"> 81</span>}</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 84</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="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="keywordflow">if</span> (argc &lt; 2) {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Need at least 1 argument, got &quot;</span> &lt;&lt; argc - 1</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> &lt;&lt; <span class="stringliteral">&quot; arguments.&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> abort();</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</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="keywordtype">int</span> arg = atoi(argv[1]);</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="keywordflow">switch</span> (arg) {</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">case</span> 1:</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> create_burn_in_time_data();</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">case</span> 2:</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> create_pd_estimate_data();</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">case</span> 3:</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> test_parallel_speedup();</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">case</span> 4:</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> create_phase_transition_data();</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Not a valid option!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> abort();</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</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="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>}</div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00018">data_type.hpp:18</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="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_a2dfe843fbb80e10a763f3260131a148e"><div class="ttname"><a href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, std::function&lt; data_t(int, double, int)&gt; monte_carlo, std::string outfile)</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#l00156">monte_carlo.cpp:156</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a8f8d4c5e032ed8565a3ac518b32c6aed"><div class="ttname"><a href="monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo_serial</a></div><div class="ttdeci">data_t monte_carlo_serial(int L, double T, int cycles)</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#l00111">monte_carlo.cpp:111</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a962f704ab35208bf6541eb3b707a9559"><div class="ttname"><a href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename)</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#l00085">monte_carlo.cpp:85</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_ac97d0de27f2f0d50fc6ecf3a79f32826"><div class="ttname"><a href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a></div><div class="ttdeci">void monte_carlo_progression(double T, int L, int cycles, const std::string filename)</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#l00017">monte_carlo.cpp:17</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_acc34e2049a5030874f6f548f3adab958"><div class="ttname"><a href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a></div><div class="ttdeci">data_t monte_carlo_parallel(int L, double T, int cycles)</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#l00128">monte_carlo.cpp:128</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#l00148">test_suite.cpp:148</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><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="main_8cpp.html">main.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

136
docs/menu.js Normal file
View File

@ -0,0 +1,136 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
function makeTree(data,relPath) {
var result='';
if ('children' in data) {
result+='<ul>';
for (var i in data.children) {
var url;
var link;
link = data.children[i].url;
if (link.substring(0,1)=='^') {
url = link.substring(1);
} else {
url = relPath+link;
}
result+='<li><a href="'+url+'">'+
data.children[i].text+'</a>'+
makeTree(data.children[i],relPath)+'</li>';
}
result+='</ul>';
}
return result;
}
var searchBoxHtml;
if (searchEnabled) {
if (serverSide) {
searchBoxHtml='<div id="MSearchBox" class="MSearchBoxInactive">'+
'<div class="left">'+
'<form id="FSearchBox" action="'+relPath+searchPage+
'" method="get"><span id="MSearchSelectExt">&#160;</span>'+
'<input type="text" id="MSearchField" name="query" value="" placeholder="'+search+
'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
' onblur="searchBox.OnSearchFieldFocus(false)"/>'+
'</form>'+
'</div>'+
'<div class="right"></div>'+
'</div>';
} else {
searchBoxHtml='<div id="MSearchBox" class="MSearchBoxInactive">'+
'<span class="left">'+
'<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()"'+
' onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>'+
'<input type="text" id="MSearchField" value="" placeholder="'+search+
'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
'onblur="searchBox.OnSearchFieldFocus(false)" '+
'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
'</span>'+
'<span class="right"><a id="MSearchClose" '+
'href="javascript:searchBox.CloseResultsWindow()">'+
'<img id="MSearchCloseImg" border="0" src="'+relPath+
'search/close.svg" alt=""/></a>'+
'</span>'+
'</div>';
}
}
$('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
'<label class="main-menu-btn" for="main-menu-state">'+
'<span class="main-menu-btn-icon"></span> '+
'Toggle main menu visibility</label>'+
'<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
'</div>');
$('#main-nav').append(makeTree(menudata,relPath));
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
if (searchBoxHtml) {
$('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
}
var $mainMenuState = $('#main-menu-state');
var prevWidth = 0;
if ($mainMenuState.length) {
function initResizableIfExists() {
if (typeof initResizable==='function') initResizable();
}
// animate mobile menu
$mainMenuState.change(function(e) {
var $menu = $('#main-menu');
var options = { duration: 250, step: initResizableIfExists };
if (this.checked) {
options['complete'] = function() { $menu.css('display', 'block') };
$menu.hide().slideDown(options);
} else {
options['complete'] = function() { $menu.css('display', 'none') };
$menu.show().slideUp(options);
}
});
// set default menu visibility
function resetState() {
var $menu = $('#main-menu');
var $mainMenuState = $('#main-menu-state');
var newWidth = $(window).outerWidth();
if (newWidth!=prevWidth) {
if ($(window).outerWidth()<768) {
$mainMenuState.prop('checked',false); $menu.hide();
$('#searchBoxPos1').html(searchBoxHtml);
$('#searchBoxPos2').hide();
} else {
$menu.show();
$('#searchBoxPos1').empty();
$('#searchBoxPos2').html(searchBoxHtml);
$('#searchBoxPos2').show();
}
if (typeof searchBox!=='undefined') {
searchBox.CloseResultsWindow();
}
prevWidth = newWidth;
}
}
$(window).ready(function() { resetState(); initResizableIfExists(); });
$(window).resize(resetState);
}
$('#main-menu').smartmenus();
}
/* @license-end */

40
docs/menudata.js Normal file
View File

@ -0,0 +1,40 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var menudata={children:[
{text:"Main Page",url:"index.html"},
{text:"Related Pages",url:"pages.html"},
{text:"Classes",url:"annotated.html",children:[
{text:"Class List",url:"annotated.html"},
{text:"Class Index",url:"classes.html"},
{text:"Class Members",url:"functions.html",children:[
{text:"All",url:"functions.html"},
{text:"Functions",url:"functions_func.html"},
{text:"Variables",url:"functions_vars.html"}]}]},
{text:"Files",url:"files.html",children:[
{text:"File List",url:"files.html"},
{text:"File Members",url:"globals.html",children:[
{text:"All",url:"globals.html"},
{text:"Functions",url:"globals_func.html"},
{text:"Macros",url:"globals_defs.html"}]}]}]}

483
docs/monte__carlo_8cpp.html Normal file
View File

@ -0,0 +1,483 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/monte_carlo.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('monte__carlo_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">monte_carlo.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Implementation of the monte carlo functions.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="monte__carlo_8hpp_source.html">monte_carlo.hpp</a>&quot;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
</div>
<p><a href="monte__carlo_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ac97d0de27f2f0d50fc6ecf3a79f32826"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8cpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a> (double T, int L, int cycles, const std::string filename)</td></tr>
<tr class="memdesc:ac97d0de27f2f0d50fc6ecf3a79f32826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the expected values for each Monte Carlo cycles to file. <br /></td></tr>
<tr class="separator:ac97d0de27f2f0d50fc6ecf3a79f32826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ddd777796c65eb2b289af11fc0ce09"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8cpp.html#a89ddd777796c65eb2b289af11fc0ce09">monte_carlo_progression</a> (double T, int L, int cycles, int value, const std::string filename)</td></tr>
<tr class="memdesc:a89ddd777796c65eb2b289af11fc0ce09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the expected values for each Monte Carlo cycles to file. <br /></td></tr>
<tr class="separator:a89ddd777796c65eb2b289af11fc0ce09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a962f704ab35208bf6541eb3b707a9559"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8cpp.html#a962f704ab35208bf6541eb3b707a9559">pd_estimate</a> (double T, int L, int cycles, const std::string filename)</td></tr>
<tr class="memdesc:a962f704ab35208bf6541eb3b707a9559"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate the probability distribution for the energy. <br /></td></tr>
<tr class="separator:a962f704ab35208bf6541eb3b707a9559"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f8d4c5e032ed8565a3ac518b32c6aed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8cpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo_serial</a> (int L, double T, int cycles)</td></tr>
<tr class="memdesc:a8f8d4c5e032ed8565a3ac518b32c6aed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles. <br /></td></tr>
<tr class="separator:a8f8d4c5e032ed8565a3ac518b32c6aed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc34e2049a5030874f6f548f3adab958"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8cpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a> (int L, double T, int cycles)</td></tr>
<tr class="memdesc:acc34e2049a5030874f6f548f3adab958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel. <br /></td></tr>
<tr class="separator:acc34e2049a5030874f6f548f3adab958"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7df22ace588b4d229d1029ce766d0009"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8cpp.html#a7df22ace588b4d229d1029ce766d0009">phase_transition</a> (int L, double start, double end, int points, std::function&lt; <a class="el" href="classdata__t.html">data_t</a>(int, double, int)&gt; monte_carlo, std::string outfile)</td></tr>
<tr class="memdesc:a7df22ace588b4d229d1029ce766d0009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform the MCMC algorithm using a range of temperatures. <br /></td></tr>
<tr class="separator:a7df22ace588b4d229d1029ce766d0009"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of the monte carlo functions. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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#_bug000011">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>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="acc34e2049a5030874f6f548f3adab958" name="acc34e2049a5030874f6f548f3adab958"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc34e2049a5030874f6f548f3adab958">&#9670;&#160;</a></span>monte_carlo_parallel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> monte_carlo_parallel </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">T</td><td>The Temperature for the Ising model </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classdata__t.html">data_t</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00128">128</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="ac97d0de27f2f0d50fc6ecf3a79f32826" name="ac97d0de27f2f0d50fc6ecf3a79f32826"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac97d0de27f2f0d50fc6ecf3a79f32826">&#9670;&#160;</a></span>monte_carlo_progression() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void monte_carlo_progression </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Write the expected values for each Monte Carlo cycles to file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T</td><td>Temperature </td></tr>
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do </td></tr>
<tr><td class="paramname">filename</td><td>The file to write to </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00017">17</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="a89ddd777796c65eb2b289af11fc0ce09" name="a89ddd777796c65eb2b289af11fc0ce09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89ddd777796c65eb2b289af11fc0ce09">&#9670;&#160;</a></span>monte_carlo_progression() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void monte_carlo_progression </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Write the expected values for each Monte Carlo cycles to file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T</td><td>Temperature </td></tr>
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do </td></tr>
<tr><td class="paramname">value</td><td>The value to set the elements in the lattice </td></tr>
<tr><td class="paramname">filename</td><td>The file to write to </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00051">51</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="a8f8d4c5e032ed8565a3ac518b32c6aed" name="a8f8d4c5e032ed8565a3ac518b32c6aed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f8d4c5e032ed8565a3ac518b32c6aed">&#9670;&#160;</a></span>monte_carlo_serial()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> monte_carlo_serial </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">T</td><td>The Temperature for the Ising model </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classdata__t.html">data_t</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00111">111</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="a962f704ab35208bf6541eb3b707a9559" name="a962f704ab35208bf6541eb3b707a9559"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a962f704ab35208bf6541eb3b707a9559">&#9670;&#160;</a></span>pd_estimate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pd_estimate </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Estimate the probability distribution for the energy. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T</td><td>The temperature of the Ising model </td></tr>
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do </td></tr>
<tr><td class="paramname">filename</td><td>The file to write to </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00085">85</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="a7df22ace588b4d229d1029ce766d0009" name="a7df22ace588b4d229d1029ce766d0009"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7df22ace588b4d229d1029ce766d0009">&#9670;&#160;</a></span>phase_transition()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void phase_transition </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>start_T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>end_T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>points_T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; <a class="el" href="classdata__t.html">data_t</a>(int, double, int)&gt;&#160;</td>
<td class="paramname"><em>monte_carlo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>outfile</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform the MCMC algorithm using a range of temperatures. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">start_T</td><td>The start temperature </td></tr>
<tr><td class="paramname">end_T</td><td>The end temperature </td></tr>
<tr><td class="paramname">point_T</td><td>The amount of point to measure </td></tr>
<tr><td class="paramname">monte_carlo</td><td>Which Monte Carlo implementation to use </td></tr>
<tr><td class="paramname">outfile</td><td>The file to write the data to </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00156">156</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="monte__carlo_8cpp.html">monte_carlo.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,9 @@
var monte__carlo_8cpp =
[
[ "monte_carlo_parallel", "monte__carlo_8cpp.html#acc34e2049a5030874f6f548f3adab958", null ],
[ "monte_carlo_progression", "monte__carlo_8cpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826", null ],
[ "monte_carlo_progression", "monte__carlo_8cpp.html#a89ddd777796c65eb2b289af11fc0ce09", null ],
[ "monte_carlo_serial", "monte__carlo_8cpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed", null ],
[ "pd_estimate", "monte__carlo_8cpp.html#a962f704ab35208bf6541eb3b707a9559", null ],
[ "phase_transition", "monte__carlo_8cpp.html#a7df22ace588b4d229d1029ce766d0009", null ]
];

View File

@ -0,0 +1,299 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/monte_carlo.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('monte__carlo_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">monte_carlo.cpp</div></div>
</div><!--header-->
<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> </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"><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="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;cstdint&gt;</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"><a class="line" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826"> 17</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8cpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">const</span> std::string filename)</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">// Set some variables</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data, tmp;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">int</span> n_spins = L * L;</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">// File stuff</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> std::string directory = utils::dirname(filename);</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> std::ofstream ofile;</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 random engine using the mersenne twister</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> std::random_device rd;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> uint32_t rd_sample = rd();</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> std::mt19937 engine(rd_sample);</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> std::cout &lt;&lt; <span class="stringliteral">&quot;Seed: &quot;</span> &lt;&lt; rd_sample &lt;&lt; std::endl;</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> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising(L, T);</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">// Create path and open file</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> utils::mkpath(directory);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> ofile.open(filename);</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="comment">// Loop through cycles</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt;= cycles; i++) {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> data += ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> tmp = data / (i * n_spins);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> ofile &lt;&lt; i &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.E &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.E2 &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.M &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> &lt;&lt; tmp.M2 &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.M_abs &lt;&lt; <span class="charliteral">&#39;\n&#39;</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> ofile.close();</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> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#a89ddd777796c65eb2b289af11fc0ce09"> 51</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8cpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_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="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">const</span> std::string filename)</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">// Set some variables</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data, tmp;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">int</span> n_spins = L * L;</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> <span class="comment">// File stuff</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> std::string directory = utils::dirname(filename);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> std::ofstream ofile;</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">// Create random engine using the mersenne twister</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> std::random_device rd;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> uint32_t rd_sample = rd();</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> std::mt19937 engine(rd());</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> std::cout &lt;&lt; <span class="stringliteral">&quot;Seed: &quot;</span> &lt;&lt; rd_sample &lt;&lt; std::endl;</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> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising(L, T, value);</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">// Create path and open file</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> utils::mkpath(directory);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> ofile.open(filename);</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> <span class="comment">// Loop through cycles</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt;= cycles; i++) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> data += ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> tmp = data / (i * n_spins);</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> ofile &lt;&lt; i &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.E &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.E2 &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.M &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> &lt;&lt; tmp.M2 &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; tmp.M_abs &lt;&lt; <span class="charliteral">&#39;\n&#39;</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> ofile.close();</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> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559"> 85</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">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="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">// Set some variables</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data, tmp;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">int</span> n_spins = L * L;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// File stuff</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> std::string directory = utils::dirname(filename);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> std::ofstream ofile;</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> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> ising(L, T);</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">// Create path and open file</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> utils::mkpath(directory);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> ofile.open(filename);</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">// Loop through cycles</span></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 = 1; i &lt;= cycles; i++) {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> data = ising.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>() / n_spins;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> ofile &lt;&lt; data.E &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; data.E2 &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; data.M &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; data.M2</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; data.M_abs &lt;&lt; <span class="charliteral">&#39;\n&#39;</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> ofile.close();</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="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">// Code for seeing phase transitions.</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed"> 111</a></span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8cpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo_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="l00112" name="l00112"></a><span class="lineno"> 112</span>{</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> model(L, T);</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="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; BURN_IN_TIME; i++) {</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> model.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</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="keywordtype">double</span> E, M;</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; (uint)cycles; i++) {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> data += model.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</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="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> data;</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="l00128" name="l00128"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958"> 128</a></span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8cpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_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="l00129" name="l00129"></a><span class="lineno"> 129</span>{</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="preprocessor">#pragma omp parallel</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">// Each thread creates an instance of IsingModel.</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_class" href="classIsingModel.html">IsingModel</a> model(L, T);</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// Each thread runs the Metropolis algorithm before starting to collect</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// samples</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</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="l00139" name="l00139"></a><span class="lineno"> 139</span> model.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</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="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// Now each thread work on one loop together, but using their own</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// instances of things, but the total of cycles add up.</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// static ensure that each thread gets the same amount of iterations</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor">#pragma omp for schedule(static) reduction(+ : data)</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</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="l00147" name="l00147"></a><span class="lineno"> 147</span> data += model.<a class="code hl_function" href="classIsingModel.html#a56559d68dc9aaff1976d84b157f43488">Metropolis</a>();</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="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">double</span> norm = 1. / (double)cycles;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">return</span> data * norm;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span>}</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e"> 156</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a>(<span class="keywordtype">int</span> L, <span class="keywordtype">double</span> start, <span class="keywordtype">double</span> end, <span class="keywordtype">int</span> points,</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</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>)&gt; monte_carlo,</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> std::string outfile)</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> <span class="keywordtype">double</span> dt = (end - start) / (<span class="keywordtype">double</span>)points;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordtype">int</span> cycles = 10000;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordtype">int</span> N = L * L;</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> std::ofstream ofile;</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> <a class="code hl_class" href="classdata__t.html">data_t</a> data;</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> utils::mkpath(utils::dirname(outfile));</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> ofile.open(outfile);</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="keywordtype">double</span> temp, CV, X, E_var, M_var;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">using </span>utils::scientific_format;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; points; i++) {</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> temp = start + dt * i;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> data = monte_carlo(L, temp, cycles);</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> E_var = (data.E2 - data.E * data.E) / (<span class="keywordtype">double</span>)N;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> M_var = (data.M2 - data.M_abs * data.M_abs) / (<span class="keywordtype">double</span>)N;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> ofile &lt;&lt; scientific_format(temp) &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; scientific_format(data.E / (<span class="keywordtype">double</span>)N) &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; scientific_format(data.M_abs / N) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> &lt;&lt; scientific_format(E_var / (temp * temp)) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> &lt;&lt; scientific_format(M_var / temp) &lt;&lt; <span class="charliteral">&#39;\n&#39;</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> ofile.close();</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</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#l00037">IsingModel.hpp:37</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#l00096">IsingModel.cpp:96</a></div></div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00018">data_type.hpp:18</a></div></div>
<div class="ttc" id="amonte__carlo_8cpp_html_a8f8d4c5e032ed8565a3ac518b32c6aed"><div class="ttname"><a href="monte__carlo_8cpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo_serial</a></div><div class="ttdeci">data_t monte_carlo_serial(int L, double T, int cycles)</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#l00111">monte_carlo.cpp:111</a></div></div>
<div class="ttc" id="amonte__carlo_8cpp_html_ac97d0de27f2f0d50fc6ecf3a79f32826"><div class="ttname"><a href="monte__carlo_8cpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a></div><div class="ttdeci">void monte_carlo_progression(double T, int L, int cycles, const std::string filename)</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#l00017">monte_carlo.cpp:17</a></div></div>
<div class="ttc" id="amonte__carlo_8cpp_html_acc34e2049a5030874f6f548f3adab958"><div class="ttname"><a href="monte__carlo_8cpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a></div><div class="ttdeci">data_t monte_carlo_parallel(int L, double T, int cycles)</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#l00128">monte_carlo.cpp:128</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_a2dfe843fbb80e10a763f3260131a148e"><div class="ttname"><a href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, std::function&lt; data_t(int, double, int)&gt; monte_carlo, std::string outfile)</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#l00156">monte_carlo.cpp:156</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a962f704ab35208bf6541eb3b707a9559"><div class="ttname"><a href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename)</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#l00085">monte_carlo.cpp:85</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="monte__carlo_8cpp.html">monte_carlo.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

550
docs/monte__carlo_8hpp.html Normal file
View File

@ -0,0 +1,550 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include/monte_carlo.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('monte__carlo_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">monte_carlo.hpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Functions for monte carlo simulations.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="IsingModel_8hpp_source.html">IsingModel.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="utils_8hpp_source.html">utils.hpp</a>&quot;</code><br />
<code>#include &lt;functional&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;omp.h&gt;</code><br />
</div>
<p><a href="monte__carlo_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a362b5ad7de095387fcbc573632a19cbf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html#a362b5ad7de095387fcbc573632a19cbf">BURN_IN_TIME</a>&#160;&#160;&#160;5000</td></tr>
<tr class="separator:a362b5ad7de095387fcbc573632a19cbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa8b4fc86b26f0e3e253ba5556d2d14dc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html#aa8b4fc86b26f0e3e253ba5556d2d14dc">test_2x2_lattice</a> (double tol, int max_cycles)</td></tr>
<tr class="memdesc:aa8b4fc86b26f0e3e253ba5556d2d14dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test numerical data with analytical data. <br /></td></tr>
<tr class="separator:aa8b4fc86b26f0e3e253ba5556d2d14dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac97d0de27f2f0d50fc6ecf3a79f32826"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a> (double T, int L, int cycles, const std::string filename)</td></tr>
<tr class="memdesc:ac97d0de27f2f0d50fc6ecf3a79f32826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the expected values for each Monte Carlo cycles to file. <br /></td></tr>
<tr class="separator:ac97d0de27f2f0d50fc6ecf3a79f32826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ddd777796c65eb2b289af11fc0ce09"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html#a89ddd777796c65eb2b289af11fc0ce09">monte_carlo_progression</a> (double T, int L, int cycles, int value, const std::string filename)</td></tr>
<tr class="memdesc:a89ddd777796c65eb2b289af11fc0ce09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the expected values for each Monte Carlo cycles to file. <br /></td></tr>
<tr class="separator:a89ddd777796c65eb2b289af11fc0ce09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a962f704ab35208bf6541eb3b707a9559"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">pd_estimate</a> (double T, int L, int cycles, const std::string filename)</td></tr>
<tr class="memdesc:a962f704ab35208bf6541eb3b707a9559"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate the probability distribution for the energy. <br /></td></tr>
<tr class="separator:a962f704ab35208bf6541eb3b707a9559"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f8d4c5e032ed8565a3ac518b32c6aed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo_serial</a> (int L, double T, int cycles)</td></tr>
<tr class="memdesc:a8f8d4c5e032ed8565a3ac518b32c6aed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles. <br /></td></tr>
<tr class="separator:a8f8d4c5e032ed8565a3ac518b32c6aed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc34e2049a5030874f6f548f3adab958"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdata__t.html">data_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a> (int L, double T, int cycles)</td></tr>
<tr class="memdesc:acc34e2049a5030874f6f548f3adab958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel. <br /></td></tr>
<tr class="separator:acc34e2049a5030874f6f548f3adab958"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dfe843fbb80e10a763f3260131a148e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a> (int L, double start_T, double end_T, int points_T, std::function&lt; <a class="el" href="classdata__t.html">data_t</a>(int, double, int)&gt; monte_carlo, std::string outfile)</td></tr>
<tr class="memdesc:a2dfe843fbb80e10a763f3260131a148e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform the MCMC algorithm using a range of temperatures. <br /></td></tr>
<tr class="separator:a2dfe843fbb80e10a763f3260131a148e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for monte carlo simulations. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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#_bug000004">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>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a362b5ad7de095387fcbc573632a19cbf" name="a362b5ad7de095387fcbc573632a19cbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a362b5ad7de095387fcbc573632a19cbf">&#9670;&#160;</a></span>BURN_IN_TIME</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BURN_IN_TIME&#160;&#160;&#160;5000</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="monte__carlo_8hpp_source.html#l00024">24</a> of file <a class="el" href="monte__carlo_8hpp_source.html">monte_carlo.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="acc34e2049a5030874f6f548f3adab958" name="acc34e2049a5030874f6f548f3adab958"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc34e2049a5030874f6f548f3adab958">&#9670;&#160;</a></span>monte_carlo_parallel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> monte_carlo_parallel </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">T</td><td>The Temperature for the Ising model </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classdata__t.html">data_t</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00128">128</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="ac97d0de27f2f0d50fc6ecf3a79f32826" name="ac97d0de27f2f0d50fc6ecf3a79f32826"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac97d0de27f2f0d50fc6ecf3a79f32826">&#9670;&#160;</a></span>monte_carlo_progression() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void monte_carlo_progression </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Write the expected values for each Monte Carlo cycles to file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T</td><td>Temperature </td></tr>
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do </td></tr>
<tr><td class="paramname">filename</td><td>The file to write to </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00017">17</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="a89ddd777796c65eb2b289af11fc0ce09" name="a89ddd777796c65eb2b289af11fc0ce09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89ddd777796c65eb2b289af11fc0ce09">&#9670;&#160;</a></span>monte_carlo_progression() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void monte_carlo_progression </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Write the expected values for each Monte Carlo cycles to file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T</td><td>Temperature </td></tr>
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do </td></tr>
<tr><td class="paramname">value</td><td>The value to set the elements in the lattice </td></tr>
<tr><td class="paramname">filename</td><td>The file to write to </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00051">51</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="a8f8d4c5e032ed8565a3ac518b32c6aed" name="a8f8d4c5e032ed8565a3ac518b32c6aed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f8d4c5e032ed8565a3ac518b32c6aed">&#9670;&#160;</a></span>monte_carlo_serial()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdata__t.html">data_t</a> monte_carlo_serial </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">T</td><td>The Temperature for the Ising model </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classdata__t.html">data_t</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00111">111</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="a962f704ab35208bf6541eb3b707a9559" name="a962f704ab35208bf6541eb3b707a9559"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a962f704ab35208bf6541eb3b707a9559">&#9670;&#160;</a></span>pd_estimate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pd_estimate </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cycles</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Estimate the probability distribution for the energy. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T</td><td>The temperature of the Ising model </td></tr>
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">cycles</td><td>The amount of Monte Carlo cycles to do </td></tr>
<tr><td class="paramname">filename</td><td>The file to write to </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00085">85</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="a2dfe843fbb80e10a763f3260131a148e" name="a2dfe843fbb80e10a763f3260131a148e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dfe843fbb80e10a763f3260131a148e">&#9670;&#160;</a></span>phase_transition()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void phase_transition </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>L</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>start_T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>end_T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>points_T</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; <a class="el" href="classdata__t.html">data_t</a>(int, double, int)&gt;&#160;</td>
<td class="paramname"><em>monte_carlo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>outfile</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform the MCMC algorithm using a range of temperatures. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">L</td><td>The size of the lattice </td></tr>
<tr><td class="paramname">start_T</td><td>The start temperature </td></tr>
<tr><td class="paramname">end_T</td><td>The end temperature </td></tr>
<tr><td class="paramname">point_T</td><td>The amount of point to measure </td></tr>
<tr><td class="paramname">monte_carlo</td><td>Which Monte Carlo implementation to use </td></tr>
<tr><td class="paramname">outfile</td><td>The file to write the data to </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="monte__carlo_8cpp_source.html#l00156">156</a> of file <a class="el" href="monte__carlo_8cpp_source.html">monte_carlo.cpp</a>.</p>
</div>
</div>
<a id="aa8b4fc86b26f0e3e253ba5556d2d14dc" name="aa8b4fc86b26f0e3e253ba5556d2d14dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8b4fc86b26f0e3e253ba5556d2d14dc">&#9670;&#160;</a></span>test_2x2_lattice()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int test_2x2_lattice </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>max_cycles</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Test numerical data with analytical data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tol</td><td>The tolerance between the analytical and numerical solution. </td></tr>
<tr><td class="paramname">max_cycles</td><td>The max number of Monte Carlo cycles.</td></tr>
</table>
</dd>
</dl>
<p>return int </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="monte__carlo_8hpp.html">monte_carlo.hpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

10
docs/monte__carlo_8hpp.js Normal file
View File

@ -0,0 +1,10 @@
var monte__carlo_8hpp =
[
[ "monte_carlo_parallel", "monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958", null ],
[ "monte_carlo_progression", "monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826", null ],
[ "monte_carlo_progression", "monte__carlo_8hpp.html#a89ddd777796c65eb2b289af11fc0ce09", null ],
[ "monte_carlo_serial", "monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed", null ],
[ "pd_estimate", "monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559", null ],
[ "phase_transition", "monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e", null ],
[ "test_2x2_lattice", "monte__carlo_8hpp.html#aa8b4fc86b26f0e3e253ba5556d2d14dc", null ]
];

View File

@ -0,0 +1,161 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: include/monte_carlo.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('monte__carlo_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">monte_carlo.hpp</div></div>
</div><!--header-->
<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> </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"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define __MONTE_CARLO__</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">#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">#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">#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="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">#include &lt;string&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> </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">#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="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#pragma omp declare reduction(+: data_t: omp_out += omp_in)</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="monte__carlo_8hpp.html#aa8b4fc86b26f0e3e253ba5556d2d14dc"> 35</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="monte__carlo_8hpp.html#aa8b4fc86b26f0e3e253ba5556d2d14dc">test_2x2_lattice</a>(<span class="keywordtype">double</span> tol, <span class="keywordtype">int</span> max_cycles);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a>(<span class="keywordtype">double</span> T, <span class="keywordtype">int</span> L, <span class="keywordtype">int</span> cycles,</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">const</span> std::string filename);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_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="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">const</span> std::string filename);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">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="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo_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="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><a class="code hl_class" href="classdata__t.html">data_t</a> <a class="code hl_function" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_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="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="keywordtype">void</span> <a class="code hl_function" href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a>(</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <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="l00100" name="l00100"></a><span class="lineno"> 100</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>)&gt; monte_carlo,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> std::string outfile);</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">#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="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00018">data_type.hpp:18</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="amonte__carlo_8hpp_html_a2dfe843fbb80e10a763f3260131a148e"><div class="ttname"><a href="monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e">phase_transition</a></div><div class="ttdeci">void phase_transition(int L, double start_T, double end_T, int points_T, std::function&lt; data_t(int, double, int)&gt; monte_carlo, std::string outfile)</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#l00156">monte_carlo.cpp:156</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a8f8d4c5e032ed8565a3ac518b32c6aed"><div class="ttname"><a href="monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed">monte_carlo_serial</a></div><div class="ttdeci">data_t monte_carlo_serial(int L, double T, int cycles)</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#l00111">monte_carlo.cpp:111</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_a962f704ab35208bf6541eb3b707a9559"><div class="ttname"><a href="monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559">pd_estimate</a></div><div class="ttdeci">void pd_estimate(double T, int L, int cycles, const std::string filename)</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#l00085">monte_carlo.cpp:85</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_aa8b4fc86b26f0e3e253ba5556d2d14dc"><div class="ttname"><a href="monte__carlo_8hpp.html#aa8b4fc86b26f0e3e253ba5556d2d14dc">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>
<div class="ttc" id="amonte__carlo_8hpp_html_ac97d0de27f2f0d50fc6ecf3a79f32826"><div class="ttname"><a href="monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826">monte_carlo_progression</a></div><div class="ttdeci">void monte_carlo_progression(double T, int L, int cycles, const std::string filename)</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#l00017">monte_carlo.cpp:17</a></div></div>
<div class="ttc" id="amonte__carlo_8hpp_html_acc34e2049a5030874f6f548f3adab958"><div class="ttname"><a href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a></div><div class="ttdeci">data_t monte_carlo_parallel(int L, double T, int cycles)</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#l00128">monte_carlo.cpp:128</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><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="monte__carlo_8hpp.html">monte_carlo.hpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

BIN
docs/nav_f.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

BIN
docs/nav_fd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

BIN
docs/nav_g.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

BIN
docs/nav_h.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

BIN
docs/nav_hd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

150
docs/navtree.css Normal file
View File

@ -0,0 +1,150 @@
#nav-tree .children_ul {
margin:0;
padding:4px;
}
#nav-tree ul {
list-style:none outside none;
margin:0px;
padding:0px;
}
#nav-tree li {
white-space:nowrap;
margin:0px;
padding:0px;
}
#nav-tree .plus {
margin:0px;
}
#nav-tree .selected {
background-image: url('tab_a.png');
background-repeat:repeat-x;
color: white;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}
#nav-tree .selected .arrow {
color: #9CAFD4;
text-shadow: none;
}
#nav-tree img {
margin:0px;
padding:0px;
border:0px;
vertical-align: middle;
}
#nav-tree a {
text-decoration:none;
padding:0px;
margin:0px;
outline:none;
}
#nav-tree .label {
margin:0px;
padding:0px;
font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
}
#nav-tree .label a {
padding:2px;
}
#nav-tree .selected a {
text-decoration:none;
color:white;
}
#nav-tree .children_ul {
margin:0px;
padding:0px;
}
#nav-tree .item {
margin:0px;
padding:0px;
}
#nav-tree {
padding: 0px 0px;
font-size:14px;
overflow:auto;
}
#doc-content {
overflow:auto;
display:block;
padding:0px;
margin:0px;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
}
#side-nav {
padding:0 6px 0 0;
margin: 0px;
display:block;
position: absolute;
left: 0px;
width: $width;
overflow : hidden;
}
.ui-resizable .ui-resizable-handle {
display:block;
}
.ui-resizable-e {
background-image:url('splitbar.png');
background-size:100%;
background-repeat:repeat-y;
background-attachment: scroll;
cursor:ew-resize;
height:100%;
right:0;
top:0;
width:6px;
}
.ui-resizable-handle {
display:none;
font-size:0.1px;
position:absolute;
z-index:1;
}
#nav-tree-contents {
margin: 6px 0px 0px 0px;
}
#nav-tree {
background-repeat:repeat-x;
background-color: #F9FAFC;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
}
#nav-sync {
position:absolute;
top:5px;
right:24px;
z-index:0;
}
#nav-sync img {
opacity:0.3;
}
#nav-sync img:hover {
opacity:0.9;
}
@media print
{
#nav-tree { display: none; }
div.ui-resizable-handle { display: none; position: relative; }
}

549
docs/navtree.js Normal file
View File

@ -0,0 +1,549 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var navTreeSubIndices = new Array();
var arrowDown = '&#9660;';
var arrowRight = '&#9658;';
function getData(varName)
{
var i = varName.lastIndexOf('/');
var n = i>=0 ? varName.substring(i+1) : varName;
return eval(n.replace(/\-/g,'_'));
}
function stripPath(uri)
{
return uri.substring(uri.lastIndexOf('/')+1);
}
function stripPath2(uri)
{
var i = uri.lastIndexOf('/');
var s = uri.substring(i+1);
var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
return m ? uri.substring(i-6) : s;
}
function hashValue()
{
return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
}
function hashUrl()
{
return '#'+hashValue();
}
function pathName()
{
return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
}
function localStorageSupported()
{
try {
return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
}
catch(e) {
return false;
}
}
function storeLink(link)
{
if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
window.localStorage.setItem('navpath',link);
}
}
function deleteLink()
{
if (localStorageSupported()) {
window.localStorage.setItem('navpath','');
}
}
function cachedLink()
{
if (localStorageSupported()) {
return window.localStorage.getItem('navpath');
} else {
return '';
}
}
function getScript(scriptName,func,show)
{
var head = document.getElementsByTagName("head")[0];
var script = document.createElement('script');
script.id = scriptName;
script.type = 'text/javascript';
script.onload = func;
script.src = scriptName+'.js';
head.appendChild(script);
}
function createIndent(o,domNode,node,level)
{
var level=-1;
var n = node;
while (n.parentNode) { level++; n=n.parentNode; }
if (node.childrenData) {
var imgNode = document.createElement("span");
imgNode.className = 'arrow';
imgNode.style.paddingLeft=(16*level).toString()+'px';
imgNode.innerHTML=arrowRight;
node.plus_img = imgNode;
node.expandToggle = document.createElement("a");
node.expandToggle.href = "javascript:void(0)";
node.expandToggle.onclick = function() {
if (node.expanded) {
$(node.getChildrenUL()).slideUp("fast");
node.plus_img.innerHTML=arrowRight;
node.expanded = false;
} else {
expandNode(o, node, false, false);
}
}
node.expandToggle.appendChild(imgNode);
domNode.appendChild(node.expandToggle);
} else {
var span = document.createElement("span");
span.className = 'arrow';
span.style.width = 16*(level+1)+'px';
span.innerHTML = '&#160;';
domNode.appendChild(span);
}
}
var animationInProgress = false;
function gotoAnchor(anchor,aname,updateLocation)
{
var pos, docContent = $('#doc-content');
var ancParent = $(anchor.parent());
if (ancParent.hasClass('memItemLeft') ||
ancParent.hasClass('memtitle') ||
ancParent.hasClass('fieldname') ||
ancParent.hasClass('fieldtype') ||
ancParent.is(':header'))
{
pos = ancParent.position().top;
} else if (anchor.position()) {
pos = anchor.position().top;
}
if (pos) {
var dist = Math.abs(Math.min(
pos-docContent.offset().top,
docContent[0].scrollHeight-
docContent.height()-docContent.scrollTop()));
animationInProgress=true;
docContent.animate({
scrollTop: pos + docContent.scrollTop() - docContent.offset().top
},Math.max(50,Math.min(500,dist)),function(){
if (updateLocation) window.location.href=aname;
animationInProgress=false;
});
}
}
function newNode(o, po, text, link, childrenData, lastNode)
{
var node = new Object();
node.children = Array();
node.childrenData = childrenData;
node.depth = po.depth + 1;
node.relpath = po.relpath;
node.isLast = lastNode;
node.li = document.createElement("li");
po.getChildrenUL().appendChild(node.li);
node.parentNode = po;
node.itemDiv = document.createElement("div");
node.itemDiv.className = "item";
node.labelSpan = document.createElement("span");
node.labelSpan.className = "label";
createIndent(o,node.itemDiv,node,0);
node.itemDiv.appendChild(node.labelSpan);
node.li.appendChild(node.itemDiv);
var a = document.createElement("a");
node.labelSpan.appendChild(a);
node.label = document.createTextNode(text);
node.expanded = false;
a.appendChild(node.label);
if (link) {
var url;
if (link.substring(0,1)=='^') {
url = link.substring(1);
link = url;
} else {
url = node.relpath+link;
}
a.className = stripPath(link.replace('#',':'));
if (link.indexOf('#')!=-1) {
var aname = '#'+link.split('#')[1];
var srcPage = stripPath(pathName());
var targetPage = stripPath(link.split('#')[0]);
a.href = srcPage!=targetPage ? url : "javascript:void(0)";
a.onclick = function(){
storeLink(link);
if (!$(a).parent().parent().hasClass('selected'))
{
$('.item').removeClass('selected');
$('.item').removeAttr('id');
$(a).parent().parent().addClass('selected');
$(a).parent().parent().attr('id','selected');
}
var anchor = $(aname);
gotoAnchor(anchor,aname,true);
};
} else {
a.href = url;
a.onclick = function() { storeLink(link); }
}
} else {
if (childrenData != null)
{
a.className = "nolink";
a.href = "javascript:void(0)";
a.onclick = node.expandToggle.onclick;
}
}
node.childrenUL = null;
node.getChildrenUL = function() {
if (!node.childrenUL) {
node.childrenUL = document.createElement("ul");
node.childrenUL.className = "children_ul";
node.childrenUL.style.display = "none";
node.li.appendChild(node.childrenUL);
}
return node.childrenUL;
};
return node;
}
function showRoot()
{
var headerHeight = $("#top").height();
var footerHeight = $("#nav-path").height();
var windowHeight = $(window).height() - headerHeight - footerHeight;
(function (){ // retry until we can scroll to the selected item
try {
var navtree=$('#nav-tree');
navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
} catch (err) {
setTimeout(arguments.callee, 0);
}
})();
}
function expandNode(o, node, imm, showRoot)
{
if (node.childrenData && !node.expanded) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
node.childrenData = getData(varName);
expandNode(o, node, imm, showRoot);
}, showRoot);
} else {
if (!node.childrenVisited) {
getNode(o, node);
}
$(node.getChildrenUL()).slideDown("fast");
node.plus_img.innerHTML = arrowDown;
node.expanded = true;
}
}
}
function glowEffect(n,duration)
{
n.addClass('glow').delay(duration).queue(function(next){
$(this).removeClass('glow');next();
});
}
function highlightAnchor()
{
var aname = hashUrl();
var anchor = $(aname);
if (anchor.parent().attr('class')=='memItemLeft'){
var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
glowEffect(rows.children(),300); // member without details
} else if (anchor.parent().attr('class')=='fieldname'){
glowEffect(anchor.parent().parent(),1000); // enum value
} else if (anchor.parent().attr('class')=='fieldtype'){
glowEffect(anchor.parent().parent(),1000); // struct field
} else if (anchor.parent().is(":header")) {
glowEffect(anchor.parent(),1000); // section header
} else {
glowEffect(anchor.next(),1000); // normal member
}
}
function selectAndHighlight(hash,n)
{
var a;
if (hash) {
var link=stripPath(pathName())+':'+hash.substring(1);
a=$('.item a[class$="'+link+'"]');
}
if (a && a.length) {
a.parent().parent().addClass('selected');
a.parent().parent().attr('id','selected');
highlightAnchor();
} else if (n) {
$(n.itemDiv).addClass('selected');
$(n.itemDiv).attr('id','selected');
}
var topOffset=5;
if (typeof page_layout!=='undefined' && page_layout==1) {
topOffset+=$('#top').outerHeight();
}
if ($('#nav-tree-contents .item:first').hasClass('selected')) {
topOffset+=25;
}
$('#nav-sync').css('top',topOffset+'px');
showRoot();
}
function showNode(o, node, index, hash)
{
if (node && node.childrenData) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
node.childrenData = getData(varName);
showNode(o,node,index,hash);
},true);
} else {
if (!node.childrenVisited) {
getNode(o, node);
}
$(node.getChildrenUL()).css({'display':'block'});
node.plus_img.innerHTML = arrowDown;
node.expanded = true;
var n = node.children[o.breadcrumbs[index]];
if (index+1<o.breadcrumbs.length) {
showNode(o,n,index+1,hash);
} else {
if (typeof(n.childrenData)==='string') {
var varName = n.childrenData;
getScript(n.relpath+varName,function(){
n.childrenData = getData(varName);
node.expanded=false;
showNode(o,node,index,hash); // retry with child node expanded
},true);
} else {
var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
expandNode(o, n, true, true);
}
selectAndHighlight(hash,n);
}
}
}
} else {
selectAndHighlight(hash);
}
}
function removeToInsertLater(element) {
var parentNode = element.parentNode;
var nextSibling = element.nextSibling;
parentNode.removeChild(element);
return function() {
if (nextSibling) {
parentNode.insertBefore(element, nextSibling);
} else {
parentNode.appendChild(element);
}
};
}
function getNode(o, po)
{
var insertFunction = removeToInsertLater(po.li);
po.childrenVisited = true;
var l = po.childrenData.length-1;
for (var i in po.childrenData) {
var nodeData = po.childrenData[i];
po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
i==l);
}
insertFunction();
}
function gotoNode(o,subIndex,root,hash,relpath)
{
var nti = navTreeSubIndices[subIndex][root+hash];
o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
navTo(o,NAVTREE[0][1],"",relpath);
$('.item').removeClass('selected');
$('.item').removeAttr('id');
}
if (o.breadcrumbs) {
o.breadcrumbs.unshift(0); // add 0 for root node
showNode(o, o.node, 0, hash);
}
}
function navTo(o,root,hash,relpath)
{
var link = cachedLink();
if (link) {
var parts = link.split('#');
root = parts[0];
if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
else hash='';
}
if (hash.match(/^#l\d+$/)) {
var anchor=$('a[name='+hash.substring(1)+']');
glowEffect(anchor.parent(),1000); // line number
hash=''; // strip line number anchors
}
var url=root+hash;
var i=-1;
while (NAVTREEINDEX[i+1]<=url) i++;
if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
if (navTreeSubIndices[i]) {
gotoNode(o,i,root,hash,relpath)
} else {
getScript(relpath+'navtreeindex'+i,function(){
navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
if (navTreeSubIndices[i]) {
gotoNode(o,i,root,hash,relpath);
}
},true);
}
}
function showSyncOff(n,relpath)
{
n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
}
function showSyncOn(n,relpath)
{
n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
}
function toggleSyncButton(relpath)
{
var navSync = $('#nav-sync');
if (navSync.hasClass('sync')) {
navSync.removeClass('sync');
showSyncOff(navSync,relpath);
storeLink(stripPath2(pathName())+hashUrl());
} else {
navSync.addClass('sync');
showSyncOn(navSync,relpath);
deleteLink();
}
}
var loadTriggered = false;
var readyTriggered = false;
var loadObject,loadToRoot,loadUrl,loadRelPath;
$(window).on('load',function(){
if (readyTriggered) { // ready first
navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
showRoot();
}
loadTriggered=true;
});
function initNavTree(toroot,relpath)
{
var o = new Object();
o.toroot = toroot;
o.node = new Object();
o.node.li = document.getElementById("nav-tree-contents");
o.node.childrenData = NAVTREE;
o.node.children = new Array();
o.node.childrenUL = document.createElement("ul");
o.node.getChildrenUL = function() { return o.node.childrenUL; };
o.node.li.appendChild(o.node.childrenUL);
o.node.depth = 0;
o.node.relpath = relpath;
o.node.expanded = false;
o.node.isLast = true;
o.node.plus_img = document.createElement("span");
o.node.plus_img.className = 'arrow';
o.node.plus_img.innerHTML = arrowRight;
if (localStorageSupported()) {
var navSync = $('#nav-sync');
if (cachedLink()) {
showSyncOff(navSync,relpath);
navSync.removeClass('sync');
} else {
showSyncOn(navSync,relpath);
}
navSync.click(function(){ toggleSyncButton(relpath); });
}
if (loadTriggered) { // load before ready
navTo(o,toroot,hashUrl(),relpath);
showRoot();
} else { // ready before load
loadObject = o;
loadToRoot = toroot;
loadUrl = hashUrl();
loadRelPath = relpath;
readyTriggered=true;
}
$(window).bind('hashchange', function(){
if (window.location.hash && window.location.hash.length>1){
var a;
if ($(location).attr('hash')){
var clslink=stripPath(pathName())+':'+hashValue();
a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
}
if (a==null || !$(a).parent().parent().hasClass('selected')){
$('.item').removeClass('selected');
$('.item').removeAttr('id');
}
var link=stripPath2(pathName());
navTo(o,link,hashUrl(),relpath);
} else if (!animationInProgress) {
$('#doc-content').scrollTop(0);
$('.item').removeClass('selected');
$('.item').removeAttr('id');
navTo(o,toroot,hashUrl(),relpath);
}
})
}
/* @license-end */

56
docs/navtreedata.js Normal file
View File

@ -0,0 +1,56 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var NAVTREE =
[
[ "2 Dimensional Ising Model", "index.html", [
[ "Ising Model", "index.html", "index" ],
[ "Bug List", "bug.html", null ],
[ "Classes", "annotated.html", [
[ "Class List", "annotated.html", "annotated_dup" ],
[ "Class Index", "classes.html", null ],
[ "Class Members", "functions.html", [
[ "All", "functions.html", null ],
[ "Functions", "functions_func.html", null ],
[ "Variables", "functions_vars.html", null ]
] ]
] ],
[ "Files", "files.html", [
[ "File List", "files.html", "files_dup" ],
[ "File Members", "globals.html", [
[ "All", "globals.html", null ],
[ "Functions", "globals_func.html", null ],
[ "Macros", "globals_defs.html", null ]
] ]
] ]
] ]
];
var NAVTREEINDEX =
[
"IsingModel_8cpp.html"
];
var SYNCONMSG = 'click to disable panel synchronisation';
var SYNCOFFMSG = 'click to enable panel synchronisation';

121
docs/navtreeindex0.js Normal file
View File

@ -0,0 +1,121 @@
var NAVTREEINDEX0 =
{
"IsingModel_8cpp.html":[3,0,1,2],
"IsingModel_8cpp_source.html":[3,0,1,2],
"IsingModel_8hpp.html":[3,0,0,2],
"IsingModel_8hpp_source.html":[3,0,0,2],
"annotated.html":[2,0],
"bug.html":[1],
"burn__in__time_8py_source.html":[3,0,1,0,0],
"classIsingModel.html":[2,0,1],
"classIsingModel.html#a0d373a61baca6b0faa607bb12d82cc47":[2,0,1,15],
"classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd":[2,0,1,12],
"classIsingModel.html#a20fc4c0c99d8a119f70a1614784d4e5c":[2,0,1,17],
"classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348":[2,0,1,13],
"classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41":[2,0,1,14],
"classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a":[2,0,1,7],
"classIsingModel.html#a46c9446e94854452f715d307c77c1c15":[2,0,1,2],
"classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5":[2,0,1,1],
"classIsingModel.html#a56559d68dc9aaff1976d84b157f43488":[2,0,1,10],
"classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1":[2,0,1,5],
"classIsingModel.html#a6776109105051597c275670dabd0054a":[2,0,1,9],
"classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4":[2,0,1,8],
"classIsingModel.html#a94093aaf30facca62737f2ac381fdbcd":[2,0,1,16],
"classIsingModel.html#aa5701496e6483bc4668c486d6d3af625":[2,0,1,4],
"classIsingModel.html#aaa0787d964b004a17869811a5e947ff5":[2,0,1,3],
"classIsingModel.html#acf281f6f5ed02911ca6ab07004449864":[2,0,1,0],
"classIsingModel.html#ae9f872ca2054992161d53306119979dd":[2,0,1,11],
"classIsingModel.html#aff9a1201933fd5408845a1447e4895b4":[2,0,1,6],
"classIsingModelTest.html":[2,0,2],
"classIsingModelTest.html#a4ace7013fa2d257ad1747961da6bc4de":[2,0,2,0],
"classIsingModelTest.html#a717e5852ca51432a61fb6ed38da37931":[2,0,2,1],
"classdata__t.html":[2,0,0],
"classes.html":[2,1],
"constants_8hpp.html":[3,0,0,0],
"constants_8hpp.html#abfa7d6668c777f9516606394bbc9c414":[3,0,0,0,0],
"constants_8hpp_source.html":[3,0,0,0],
"data__type_8cpp.html":[3,0,1,1],
"data__type_8cpp_source.html":[3,0,1,1],
"data__type_8hpp.html":[3,0,0,1],
"data__type_8hpp_source.html":[3,0,0,1],
"dir_634e799a3947388232110823971192a8.html":[3,0,1,0],
"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[3,0,1],
"dir_d44c64559bbebec7f509842c48db8b23.html":[3,0,0],
"files.html":[3,0],
"functions.html":[2,2,0],
"functions_func.html":[2,2,1],
"functions_vars.html":[2,2,2],
"globals.html":[3,1,0],
"globals_defs.html":[3,1,2],
"globals_func.html":[3,1,1],
"index.html":[0],
"index.html":[],
"index.html#autotoc_md1":[0,0],
"index.html#autotoc_md10":[0,2,1,1],
"index.html#autotoc_md11":[0,2,2],
"index.html#autotoc_md12":[0,3],
"index.html#autotoc_md13":[0,3,0],
"index.html#autotoc_md14":[0,3,1],
"index.html#autotoc_md15":[0,4],
"index.html#autotoc_md2":[0,0,0],
"index.html#autotoc_md3":[0,0,1],
"index.html#autotoc_md4":[0,0,2],
"index.html#autotoc_md5":[0,1],
"index.html#autotoc_md6":[0,2],
"index.html#autotoc_md7":[0,2,0],
"index.html#autotoc_md8":[0,2,1],
"index.html#autotoc_md9":[0,2,1,0],
"main_8cpp.html":[3,0,1,3],
"main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627":[3,0,1,3,0],
"main_8cpp_source.html":[3,0,1,3],
"monte__carlo_8cpp.html":[3,0,1,4],
"monte__carlo_8cpp.html#a7df22ace588b4d229d1029ce766d0009":[3,0,1,4,5],
"monte__carlo_8cpp.html#a89ddd777796c65eb2b289af11fc0ce09":[3,0,1,4,2],
"monte__carlo_8cpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed":[3,0,1,4,3],
"monte__carlo_8cpp.html#a962f704ab35208bf6541eb3b707a9559":[3,0,1,4,4],
"monte__carlo_8cpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826":[3,0,1,4,1],
"monte__carlo_8cpp.html#acc34e2049a5030874f6f548f3adab958":[3,0,1,4,0],
"monte__carlo_8cpp_source.html":[3,0,1,4],
"monte__carlo_8hpp.html":[3,0,0,3],
"monte__carlo_8hpp.html#a2dfe843fbb80e10a763f3260131a148e":[3,0,0,3,5],
"monte__carlo_8hpp.html#a89ddd777796c65eb2b289af11fc0ce09":[3,0,0,3,2],
"monte__carlo_8hpp.html#a8f8d4c5e032ed8565a3ac518b32c6aed":[3,0,0,3,3],
"monte__carlo_8hpp.html#a962f704ab35208bf6541eb3b707a9559":[3,0,0,3,4],
"monte__carlo_8hpp.html#aa8b4fc86b26f0e3e253ba5556d2d14dc":[3,0,0,3,6],
"monte__carlo_8hpp.html#ac97d0de27f2f0d50fc6ecf3a79f32826":[3,0,0,3,1],
"monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958":[3,0,0,3,0],
"monte__carlo_8hpp_source.html":[3,0,0,3],
"pages.html":[],
"pd__estimate_8py_source.html":[3,0,1,0,1],
"phase__transition_8py_source.html":[3,0,1,0,2],
"phase__transition__mpi_8cpp.html":[3,0,1,5],
"phase__transition__mpi_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627":[3,0,1,5,0],
"phase__transition__mpi_8cpp_source.html":[3,0,1,5],
"test__suite_8cpp.html":[3,0,1,6],
"test__suite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[3,0,1,6,1],
"test__suite_8cpp_source.html":[3,0,1,6],
"testlib_8cpp.html":[3,0,1,7],
"testlib_8cpp.html#a39abb7cba0535176ed62aae136d2fcc7":[3,0,1,7,0],
"testlib_8cpp_source.html":[3,0,1,7],
"testlib_8hpp.html":[3,0,0,4],
"testlib_8hpp.html#a39abb7cba0535176ed62aae136d2fcc7":[3,0,0,4,1],
"testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9":[3,0,0,4,0],
"testlib_8hpp_source.html":[3,0,0,4],
"typedefs_8hpp.html":[3,0,0,5],
"typedefs_8hpp_source.html":[3,0,0,5],
"utils_8cpp.html":[3,0,1,8],
"utils_8cpp.html#a2b45adc86b70f42021582994e83fa00d":[3,0,1,8,1],
"utils_8cpp.html#a3529a74fd2a25d24de73d9d4e1c90835":[3,0,1,8,3],
"utils_8cpp.html#ab3e89176433ddc9ba721b2eba3d08357":[3,0,1,8,2],
"utils_8cpp.html#aed026119193a9bbe076671809ff0f430":[3,0,1,8,0],
"utils_8cpp_source.html":[3,0,1,8],
"utils_8hpp.html":[3,0,0,6],
"utils_8hpp.html#a178c4922157666a6e9c127c2ffd96346":[3,0,0,6,3],
"utils_8hpp.html#a2b45adc86b70f42021582994e83fa00d":[3,0,0,6,4],
"utils_8hpp.html#a3529a74fd2a25d24de73d9d4e1c90835":[3,0,0,6,6],
"utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168":[3,0,0,6,0],
"utils_8hpp.html#ab3e89176433ddc9ba721b2eba3d08357":[3,0,0,6,5],
"utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b":[3,0,0,6,1],
"utils_8hpp.html#aed026119193a9bbe076671809ff0f430":[3,0,0,6,2],
"utils_8hpp_source.html":[3,0,0,6]
};

BIN
docs/open.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

118
docs/pages.html Normal file
View File

@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: Related Pages</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('pages.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Related Pages</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="bug.html" target="_self">Bug List</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,141 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/scripts/pd_estimate.py Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('pd__estimate_8py_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">pd_estimate.py</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="keyword">import</span> os</div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="keyword">from</span> pathlib <span class="keyword">import</span> Path</div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="keyword">import</span> numpy <span class="keyword">as</span> np</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">def </span>plot(infile, outfile):</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> <span class="keywordflow">if</span> <span class="keywordflow">not</span> (outdir := Path(outfile).parent).exists():</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> os.makedirs(outdir)</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> figure1, ax1 = plt.subplots()</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> arr = []</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">with</span> open(infile) <span class="keyword">as</span> f:</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> lines = f.readlines()</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordflow">for</span> line <span class="keywordflow">in</span> lines:</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> vals = line.strip().split(<span class="stringliteral">&quot;,&quot;</span>)</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> arr.append(float(vals[0]))</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> ax1.hist(arr, np.arange(min(arr), max(arr) + 0.02, 0.02), density=<span class="keyword">True</span>, ec=<span class="stringliteral">&quot;black&quot;</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> figure1.savefig(outfile)</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> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keywordflow">if</span> __name__ == <span class="stringliteral">&quot;__main__&quot;</span>:</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> plot(<span class="stringliteral">&quot;output/pd_estimate/estimate_1_0.txt&quot;</span>, <span class="stringliteral">&quot;../latex/images/pd_estimate_1_0.pdf&quot;</span>)</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> plot(<span class="stringliteral">&quot;output/pd_estimate/estimate_2_4.txt&quot;</span>, <span class="stringliteral">&quot;../latex/images/pd_estimate_2_4.pdf&quot;</span>)</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_634e799a3947388232110823971192a8.html">scripts</a></li><li class="navelem"><b>pd_estimate.py</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,226 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/scripts/phase_transition.py Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('phase__transition_8py_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">phase_transition.py</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="keyword">from</span> pathlib <span class="keyword">import</span> Path</div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">import</span> numpy <span class="keyword">as</span> np</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="keyword">from</span> scipy.stats <span class="keyword">import</span> linregress</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">def </span>plot_phase_transition(indir, outdir):</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> files = [</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> <span class="stringliteral">&quot;size_20.txt&quot;</span>,</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="stringliteral">&quot;size_40.txt&quot;</span>,</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="stringliteral">&quot;size_60.txt&quot;</span>,</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="stringliteral">&quot;size_80.txt&quot;</span>,</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="stringliteral">&quot;size_100.txt&quot;</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> labels = [</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="stringliteral">&quot;L = 20&quot;</span>,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="stringliteral">&quot;L = 40&quot;</span>,</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="stringliteral">&quot;L = 60&quot;</span>,</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="stringliteral">&quot;L = 80&quot;</span>,</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="stringliteral">&quot;L = 100&quot;</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> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> figure1, ax1 = plt.subplots()</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> figure2, ax2 = plt.subplots()</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> figure3, ax3 = plt.subplots()</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> figure4, ax4 = plt.subplots()</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> figure5, ax5 = plt.subplots()</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> <span class="comment"># For linear regression</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> L = []</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> Tc = []</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> size = 20</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> <span class="keywordflow">for</span> file, label <span class="keywordflow">in</span> zip(files, labels):</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> t = []</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> e = []</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> m = []</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> CV = []</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> X = []</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"># Append the lattice size</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> L.append(size)</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> size += 20</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="keyword">with</span> open(Path(indir, file)) <span class="keyword">as</span> f:</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> lines = f.readlines()</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">for</span> line <span class="keywordflow">in</span> lines:</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> l = line.strip().split(<span class="stringliteral">&quot;,&quot;</span>)</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> t.append(float(l[0]))</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> e.append(float(l[1]))</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> m.append(float(l[2]))</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> CV.append(float(l[3]))</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> X.append(float(l[4]))</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"># Append the critical temp for the current lattice size</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> Tc.append(t[X.index(max(X))])</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> ax1.plot(t, e, label=label)</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> ax2.plot(t, m, label=label)</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> ax3.plot(t, CV, label=label)</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> ax4.plot(t, X, label=label)</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"># Attempt linear regression</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> x = np.linspace(0, 100, 1001)</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> regression = linregress(L, Tc)</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> f = <span class="keyword">lambda</span> x: regression[0] * x + regression[1]</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> ax5.scatter(L, Tc)</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> ax5.plot(x, f(x), label=f<span class="stringliteral">&quot;m = {regression[0]}&quot;</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> figure1.legend()</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> figure2.legend()</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> figure3.legend()</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> figure4.legend()</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> figure5.legend()</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> figure1.savefig(Path(outdir, <span class="stringliteral">&quot;energy.pdf&quot;</span>))</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> figure2.savefig(Path(outdir, <span class="stringliteral">&quot;magnetization.pdf&quot;</span>))</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> figure3.savefig(Path(outdir, <span class="stringliteral">&quot;heat_capacity.pdf&quot;</span>))</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> figure4.savefig(Path(outdir, <span class="stringliteral">&quot;susceptibility.pdf&quot;</span>))</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> figure5.savefig(Path(outdir, <span class="stringliteral">&quot;linreg.pdf&quot;</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> plt.close(figure1)</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> plt.close(figure2)</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> plt.close(figure3)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> plt.close(figure4)</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> plt.close(figure5)</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="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="keywordflow">if</span> __name__ == <span class="stringliteral">&quot;__main__&quot;</span>:</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> plot_phase_transition(</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="stringliteral">&quot;fox_output/phase_transition/wide/10M/&quot;</span>,</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="stringliteral">&quot;../latex/images/phase_transition/fox/wide/10M/&quot;</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> plot_phase_transition(</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="stringliteral">&quot;fox_output/phase_transition/wide/1M/&quot;</span>,</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="stringliteral">&quot;../latex/images/phase_transition/fox/wide/1M/&quot;</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> plot_phase_transition(</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="stringliteral">&quot;fox_output/phase_transition/narrow/10M/&quot;</span>,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="stringliteral">&quot;../latex/images/phase_transition/fox/narrow/10M/&quot;</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> plot_phase_transition(</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="stringliteral">&quot;output/phase_transition/&quot;</span>, <span class="stringliteral">&quot;../latex/images/phase_transition/hp/&quot;</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> plot_phase_transition(</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="stringliteral">&quot;output/phase_transition/&quot;</span>, <span class="stringliteral">&quot;../latex/images/phase_transition/hp/&quot;</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> plot_phase_transition(</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="stringliteral">&quot;output/phase_transition/&quot;</span>,</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="stringliteral">&quot;../latex/images/phase_transition/hp/&quot;</span>,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> )</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_634e799a3947388232110823971192a8.html">scripts</a></li><li class="navelem"><b>phase_transition.py</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,179 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/phase_transition_mpi.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('phase__transition__mpi_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">phase_transition_mpi.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Sweep over different temperatures and generate data.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="data__type_8hpp_source.html">data_type.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="monte__carlo_8hpp_source.html">monte_carlo.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="utils_8hpp_source.html">utils.hpp</a>&quot;</code><br />
<code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;fstream&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;iterator&gt;</code><br />
<code>#include &lt;mpi.h&gt;</code><br />
<code>#include &lt;sstream&gt;</code><br />
</div>
<p><a href="phase__transition__mpi_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="phase__transition__mpi_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
<tr class="memdesc:a3c04138a5bfe5d72780bb7e82a18e627"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function. <br /></td></tr>
<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Sweep over different temperatures and generate data. </p>
<dl class="section author"><dt>Author</dt><dd>Cory Alexander Balaton (coryab) </dd>
<dd>
Janita Ovidie Sandtrøen Willumsen (janitaws)</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#_bug000012">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>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a3c04138a5bfe5d72780bb7e82a18e627" name="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">&#9670;&#160;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>argv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The main function. </p>
<p class="definition">Definition at line <a class="el" href="phase__transition__mpi_8cpp_source.html#l00024">24</a> of file <a class="el" href="phase__transition__mpi_8cpp_source.html">phase_transition_mpi.cpp</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="phase__transition__mpi_8cpp.html">phase_transition_mpi.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
var phase__transition__mpi_8cpp =
[
[ "main", "phase__transition__mpi_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627", null ]
];

View File

@ -0,0 +1,237 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>2 Dimensional Ising Model: src/phase_transition_mpi.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">2 Dimensional Ising Model
</div>
<div id="projectbrief">Simulate the change in energy and magnetization in a ferro magnet</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('phase__transition__mpi_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">phase_transition_mpi.cpp</div></div>
</div><!--header-->
<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> </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"><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"><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"><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">#include &lt;algorithm&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;fstream&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;iterator&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;mpi.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;sstream&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="phase__transition__mpi_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 24</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="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="keywordflow">if</span> (argc &lt; 5) {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::cout &lt;&lt; <span class="stringliteral">&quot;You need at least 4 arguments&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> abort();</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> <span class="keywordtype">double</span> t0, t1;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> t0 = MPI_Wtime();</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">double</span> start = atof(argv[1]), end = atof(argv[2]);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">int</span> points = atoi(argv[3]), N;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">int</span> lattice_sizes[] = {20, 40, 60, 80, 100};</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">double</span> dt = (end - start) / points;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">int</span> cycles = atoi(argv[4]);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> std::ofstream ofile;</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> <a class="code hl_class" href="classdata__t.html">data_t</a> data[points];</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="comment">// MPI stuff</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">int</span> rank, cluster_size;</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> <span class="comment">// Initialize MPI</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> MPI_Init(&amp;argc, &amp;argv);</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">// Get the cluster size and rank</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> MPI_Comm_size(MPI_COMM_WORLD, &amp;cluster_size);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> MPI_Comm_rank(MPI_COMM_WORLD, &amp;rank);</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="keywordtype">int</span> remainder = points % cluster_size;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">double</span> i_start;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">int</span> i_points;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// Distribute temperature points</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">if</span> (rank &lt; remainder) {</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> i_points = points / cluster_size + 1;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> i_start = start + dt * i_points * rank;</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">else</span> {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> i_points = points / cluster_size;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> i_start = start + dt * (i_points * rank + remainder);</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> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_class" href="classdata__t.html">data_t</a> i_data[i_points];</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Rank &quot;</span> &lt;&lt; rank &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; i_points &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; i_start &lt;&lt; <span class="charliteral">&#39;\n&#39;</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="keywordflow">for</span> (<span class="keywordtype">int</span> L : lattice_sizes) {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> N = L * L;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</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="l00070" name="l00070"></a><span class="lineno"> 70</span> i_data[i] = <a class="code hl_function" href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a>(L, i_start + dt * i, cycles);</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="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">if</span> (rank == 0) {</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> std::copy_n(i_data, i_points, data);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</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="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">if</span> (rank &lt; remainder) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> MPI_Recv((<span class="keywordtype">void</span> *)i_data,</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">sizeof</span>(<a class="code hl_class" href="classdata__t.html">data_t</a>) * (points / cluster_size + 1),</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> MPI_CHAR, i, MPI_ANY_TAG, MPI_COMM_WORLD,</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> MPI_STATUS_IGNORE);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> std::copy_n(i_data, points / cluster_size + 1,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> data + (points / cluster_size) * i);</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="l00085" name="l00085"></a><span class="lineno"> 85</span> MPI_Recv((<span class="keywordtype">void</span> *)i_data,</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">sizeof</span>(<a class="code hl_class" href="classdata__t.html">data_t</a>) * (points / cluster_size), MPI_CHAR,</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> i, MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> std::copy_n(i_data, points / cluster_size,</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> data + (points / cluster_size) * i + remainder);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</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> std::stringstream outfile;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> outfile &lt;&lt; <span class="stringliteral">&quot;output/phase_transition/size_&quot;</span> &lt;&lt; L &lt;&lt; <span class="stringliteral">&quot;.txt&quot;</span>;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> utils::mkpath(utils::dirname(outfile.str()));</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> ofile.open(outfile.str());</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="keywordtype">double</span> temp, CV, X;</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="keyword">using </span>utils::scientific_format;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; points; i++) {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> temp = start + dt * i;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> CV = (data[i].E2 - data[i].E * data[i].E)</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> / ((<span class="keywordtype">double</span>)N * temp * temp);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> X = (data[i].M2 - data[i].M_abs * data[i].M_abs)</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> / ((<span class="keywordtype">double</span>)N * temp);</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> ofile &lt;&lt; scientific_format(temp) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> &lt;&lt; scientific_format(data[i].E / N) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> &lt;&lt; scientific_format(data[i].M_abs / N) &lt;&lt; <span class="charliteral">&#39;,&#39;</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</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="l00111" name="l00111"></a><span class="lineno"> 111</span> &lt;&lt; <span class="charliteral">&#39;\n&#39;</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> ofile.close();</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="keywordflow">else</span> {</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</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="l00117" name="l00117"></a><span class="lineno"> 117</span> MPI_COMM_WORLD);</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</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="l00121" name="l00121"></a><span class="lineno"> 121</span> t1 = MPI_Wtime();</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> <span class="keywordflow">if</span> (rank == 0) {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</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="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="l00127" name="l00127"></a><span class="lineno"> 127</span> MPI_Finalize();</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span>}</div>
<div class="ttc" id="aclassdata__t_html"><div class="ttname"><a href="classdata__t.html">data_t</a></div><div class="ttdef"><b>Definition:</b> <a href="data__type_8hpp_source.html#l00018">data_type.hpp:18</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="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_acc34e2049a5030874f6f548f3adab958"><div class="ttname"><a href="monte__carlo_8hpp.html#acc34e2049a5030874f6f548f3adab958">monte_carlo_parallel</a></div><div class="ttdeci">data_t monte_carlo_parallel(int L, double T, int cycles)</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#l00128">monte_carlo.cpp:128</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#l00148">test_suite.cpp:148</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><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="phase__transition__mpi_8cpp.html">phase_transition_mpi.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

155
docs/resize.js Normal file
View File

@ -0,0 +1,155 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var once=1;
function initResizable()
{
var cookie_namespace = 'doxygen';
var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight;
function readSetting(cookie)
{
if (window.chrome) {
var val = localStorage.getItem(cookie_namespace+'_width');
if (val) return val;
} else {
var myCookie = cookie_namespace+"_"+cookie+"=";
if (document.cookie) {
var index = document.cookie.indexOf(myCookie);
if (index != -1) {
var valStart = index + myCookie.length;
var valEnd = document.cookie.indexOf(";", valStart);
if (valEnd == -1) {
valEnd = document.cookie.length;
}
var val = document.cookie.substring(valStart, valEnd);
return val;
}
}
}
return 250;
}
function writeSetting(cookie, val)
{
if (window.chrome) {
localStorage.setItem(cookie_namespace+"_width",val);
} else {
var date = new Date();
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
expiration = date.toGMTString();
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
}
}
function resizeWidth()
{
var windowWidth = $(window).width() + "px";
var sidenavWidth = $(sidenav).outerWidth();
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
if (typeof page_layout!=='undefined' && page_layout==1) {
footer.css({marginLeft:parseInt(sidenavWidth)+"px"});
}
writeSetting('width',sidenavWidth-barWidth);
}
function restoreWidth(navWidth)
{
var windowWidth = $(window).width() + "px";
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
if (typeof page_layout!=='undefined' && page_layout==1) {
footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
}
sidenav.css({width:navWidth + "px"});
}
function resizeHeight()
{
var headerHeight = header.outerHeight();
var footerHeight = footer.outerHeight();
var windowHeight = $(window).height();
var contentHeight,navtreeHeight,sideNavHeight;
if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
contentHeight = windowHeight - headerHeight - footerHeight;
navtreeHeight = contentHeight;
sideNavHeight = contentHeight;
} else if (page_layout==1) { /* DISABLE_INDEX=YES */
contentHeight = windowHeight - footerHeight;
navtreeHeight = windowHeight - headerHeight;
sideNavHeight = windowHeight;
}
content.css({height:contentHeight + "px"});
navtree.css({height:navtreeHeight + "px"});
sidenav.css({height:sideNavHeight + "px"});
if (location.hash.slice(1)) {
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
}
}
function collapseExpand()
{
var newWidth;
if (sidenav.width()>0) {
newWidth=0;
}
else {
var width = readSetting('width');
newWidth = (width>250 && width<$(window).width()) ? width : 250;
}
restoreWidth(newWidth);
var sidenavWidth = $(sidenav).outerWidth();
writeSetting('width',sidenavWidth-barWidth);
}
header = $("#top");
sidenav = $("#side-nav");
content = $("#doc-content");
navtree = $("#nav-tree");
footer = $("#nav-path");
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
$(sidenav).resizable({ minWidth: 0 });
$(window).resize(function() { resizeHeight(); });
var device = navigator.userAgent.toLowerCase();
var touch_device = device.match(/(iphone|ipod|ipad|android)/);
if (touch_device) { /* wider split bar for touch only devices */
$(sidenav).css({ paddingRight:'20px' });
$('.ui-resizable-e').css({ width:'20px' });
$('#nav-sync').css({ right:'34px' });
barWidth=20;
}
var width = readSetting('width');
if (width) { restoreWidth(width); } else { resizeWidth(); }
resizeHeight();
var url = location.href;
var i=url.indexOf("#");
if (i>=0) window.location.hash=url.substr(i);
var _preventDefault = function(evt) { evt.preventDefault(); };
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
if (once) {
$(".ui-resizable-handle").dblclick(collapseExpand);
once=0
}
$(window).on('load',resizeHeight);
}
/* @license-end */

4
docs/search/all_0.js Normal file
View File

@ -0,0 +1,4 @@
var searchData=
[
['_5f_5fmethod_5fname_5f_5f_0',['__METHOD_NAME__',['../utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168',1,'utils.hpp']]]
];

4
docs/search/all_1.js Normal file
View File

@ -0,0 +1,4 @@
var searchData=
[
['assert_0',['ASSERT',['../testlib_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9',1,'testlib.hpp']]]
];

5
docs/search/all_10.js Normal file
View File

@ -0,0 +1,5 @@
var searchData=
[
['utils_2ecpp_0',['utils.cpp',['../utils_8cpp.html',1,'']]],
['utils_2ehpp_1',['utils.hpp',['../utils_8hpp.html',1,'']]]
];

4
docs/search/all_2.js Normal file
View File

@ -0,0 +1,4 @@
var searchData=
[
['bug_20list_0',['Bug List',['../bug.html',1,'']]]
];

4
docs/search/all_3.js Normal file
View File

@ -0,0 +1,4 @@
var searchData=
[
['constants_2ehpp_0',['constants.hpp',['../constants_8hpp.html',1,'']]]
];

8
docs/search/all_4.js Normal file
View File

@ -0,0 +1,8 @@
var searchData=
[
['data_5ft_0',['data_t',['../classdata__t.html',1,'']]],
['data_5ftype_2ecpp_1',['data_type.cpp',['../data__type_8cpp.html',1,'']]],
['data_5ftype_2ehpp_2',['data_type.hpp',['../data__type_8hpp.html',1,'']]],
['debug_3',['DEBUG',['../utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b',1,'utils.hpp']]],
['dirname_4',['dirname',['../utils_8hpp.html#aed026119193a9bbe076671809ff0f430',1,'utils']]]
];

5
docs/search/all_5.js Normal file
View File

@ -0,0 +1,5 @@
var searchData=
[
['e_0',['E',['../classIsingModel.html#ae9f872ca2054992161d53306119979dd',1,'IsingModel']]],
['energy_5fdiff_1',['energy_diff',['../classIsingModel.html#a1a4ceb1bb2593dbd20c51ed04100cbcd',1,'IsingModel']]]
];

5
docs/search/all_6.js Normal file
View File

@ -0,0 +1,5 @@
var searchData=
[
['get_5fe_0',['get_E',['../classIsingModel.html#aaa0787d964b004a17869811a5e947ff5',1,'IsingModel']]],
['get_5fm_1',['get_M',['../classIsingModel.html#aa5701496e6483bc4668c486d6d3af625',1,'IsingModel']]]
];

13
docs/search/all_7.js Normal file
View File

@ -0,0 +1,13 @@
var searchData=
[
['initialize_5fenergy_0',['initialize_energy',['../classIsingModel.html#a59fced38c695e2fa647f53be81b9d2a1',1,'IsingModel']]],
['initialize_5fenergy_5fdiff_1',['initialize_energy_diff',['../classIsingModel.html#aff9a1201933fd5408845a1447e4895b4',1,'IsingModel']]],
['initialize_5flattice_2',['initialize_lattice',['../classIsingModel.html#a34a4710949b4a70f3e37ca223aefcf8a',1,'IsingModel']]],
['initialize_5fmagnetization_3',['initialize_magnetization',['../classIsingModel.html#a926cf4964d190d2ce23e5a17201787a4',1,'IsingModel']]],
['initialize_5fneighbors_4',['initialize_neighbors',['../classIsingModel.html#a6776109105051597c275670dabd0054a',1,'IsingModel']]],
['ising_20model_5',['Ising Model',['../index.html',1,'']]],
['isingmodel_6',['IsingModel',['../classIsingModel.html',1,'IsingModel'],['../classIsingModel.html#acf281f6f5ed02911ca6ab07004449864',1,'IsingModel::IsingModel()'],['../classIsingModel.html#a4a39ee7fbfbbf566f75bc28900ca9ea5',1,'IsingModel::IsingModel(int L, double T)'],['../classIsingModel.html#a46c9446e94854452f715d307c77c1c15',1,'IsingModel::IsingModel(int L, double T, int val)']]],
['isingmodel_2ecpp_7',['IsingModel.cpp',['../IsingModel_8cpp.html',1,'']]],
['isingmodel_2ehpp_8',['IsingModel.hpp',['../IsingModel_8hpp.html',1,'']]],
['isingmodeltest_9',['IsingModelTest',['../classIsingModelTest.html',1,'']]]
];

4
docs/search/all_8.js Normal file
View File

@ -0,0 +1,4 @@
var searchData=
[
['k_5fb_0',['k_B',['../constants_8hpp.html#abfa7d6668c777f9516606394bbc9c414',1,'constants.hpp']]]
];

5
docs/search/all_9.js Normal file
View File

@ -0,0 +1,5 @@
var searchData=
[
['l_0',['L',['../classIsingModel.html#a2b8ac43baefeb386186266d5aa4de348',1,'IsingModel']]],
['lattice_1',['lattice',['../classIsingModel.html#a2c3c76c79717c968d7c227c58b46df41',1,'IsingModel']]]
];

Some files were not shown because too many files have changed in this diff Show More