pdf stuff
This commit is contained in:
commit
10a565eb24
1
.gitignore
vendored
1
.gitignore
vendored
@ -47,3 +47,4 @@ src/*
|
||||
!src/*.hpp
|
||||
!src/*.py
|
||||
!src/Doxyfile
|
||||
!src/scripts
|
||||
|
||||
2
Doxyfile
2
Doxyfile
@ -2174,7 +2174,7 @@ RTF_EXTENSIONS_FILE =
|
||||
# classes and files.
|
||||
# The default value is: NO.
|
||||
|
||||
GENERATE_MAN = YES
|
||||
GENERATE_MAN = NO
|
||||
|
||||
# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
|
||||
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 115 KiB |
@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('Particle_8cpp.html',''); initResizable
|
||||
<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#_bug000006">Bug:</a></b></dt><dd>No known bugs</dd></dl>
|
||||
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000007">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
|
||||
<p class="definition">Definition in file <a class="el" href="Particle_8cpp_source.html">Particle.cpp</a>.</p>
|
||||
</div></div><!-- contents -->
|
||||
|
||||
@ -102,24 +102,24 @@ $(document).ready(function(){initNavTree('Particle_8cpp_source.html',''); initRe
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="Particle_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="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include "<a class="code" href="Particle_8hpp.html">Particle.hpp</a>"</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"><a class="line" href="classParticle.html#a00e108823877a25513ccae7cac011b4c"> 16</a></span><a class="code hl_function" href="classParticle.html#a00e108823877a25513ccae7cac011b4c">Particle::Particle</a>(<span class="keywordtype">double</span> q, <span class="keywordtype">double</span> m,</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> arma::vec::fixed<3> r_vec,</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> arma::vec::fixed<3> v_vec)</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">// Giving the particle its properties</span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> this->q = <a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a>;</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> this->m = <a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>;</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> this->r_vec = <a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a>;</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> this->v_vec = <a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>;</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>}</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include "<a class="code" href="Particle_8hpp.html">Particle.hpp</a>"</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"><a class="line" href="classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4"> 15</a></span><a class="code hl_function" href="classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4">Particle::Particle</a>(<span class="keywordtype">double</span> q, <span class="keywordtype">double</span> m,</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> arma::vec::fixed<3> r_vec,</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> arma::vec::fixed<3> v_vec)</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span>{</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// Giving the particle its properties</span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> this->q = <a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a>;</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> this->m = <a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>;</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> this->r_vec = <a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a>;</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> this->v_vec = <a class="code hl_variable" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a>;</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>}</div>
|
||||
<div class="ttc" id="aParticle_8hpp_html"><div class="ttname"><a href="Particle_8hpp.html">Particle.hpp</a></div><div class="ttdoc">A class that holds the properties of a particle.</div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a00e108823877a25513ccae7cac011b4c"><div class="ttname"><a href="classParticle.html#a00e108823877a25513ccae7cac011b4c">Particle::Particle</a></div><div class="ttdeci">Particle(double q, double m, arma::vec::fixed< 3 > r_vec, arma::vec::fixed< 3 > v_vec)</div><div class="ttdoc">Initialize the particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8cpp_source.html#l00016">Particle.cpp:16</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a4a5d22c7aeca66f67d083f270cba25df"><div class="ttname"><a href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">Particle::v_vec</a></div><div class="ttdeci">arma::vec::fixed< 3 > v_vec</div><div class="ttdoc">velocity</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00024">Particle.hpp:24</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a566dcc1de4bdc01251776948798ea8e1"><div class="ttname"><a href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">Particle::q</a></div><div class="ttdeci">double q</div><div class="ttdoc">Charge.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00021">Particle.hpp:21</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_acf1a0f3c978b06d76df5bb4279594467"><div class="ttname"><a href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">Particle::r_vec</a></div><div class="ttdeci">arma::vec::fixed< 3 > r_vec</div><div class="ttdoc">position</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00023">Particle.hpp:23</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_aedcc7e1bc53b0e2b1a4a07c9a1b47563"><div class="ttname"><a href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">Particle::m</a></div><div class="ttdeci">double m</div><div class="ttdoc">Mass.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00022">Particle.hpp:22</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a566dcc1de4bdc01251776948798ea8e1"><div class="ttname"><a href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">Particle::q</a></div><div class="ttdeci">double q</div><div class="ttdoc">Charge.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00023">Particle.hpp:23</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a7af9f8d1fef63dd7643b06629ac7bef4"><div class="ttname"><a href="classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4">Particle::Particle</a></div><div class="ttdeci">Particle(double q, double m, vec_3d r_vec, vec_3d v_vec)</div><div class="ttdoc">Initialize the particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8cpp_source.html#l00015">Particle.cpp:15</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a879692772803d6ab65fa4993b54aea6e"><div class="ttname"><a href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">Particle::v_vec</a></div><div class="ttdeci">vec_3d v_vec</div><div class="ttdoc">velocity</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00026">Particle.hpp:26</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_aedcc7e1bc53b0e2b1a4a07c9a1b47563"><div class="ttname"><a href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">Particle::m</a></div><div class="ttdeci">double m</div><div class="ttdoc">Mass.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00024">Particle.hpp:24</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_af9497cd8f2dcad0fad54f571ddb383e6"><div class="ttname"><a href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">Particle::r_vec</a></div><div class="ttdeci">vec_3d r_vec</div><div class="ttdoc">position</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00025">Particle.hpp:25</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
@ -107,6 +107,7 @@ $(document).ready(function(){initNavTree('Particle_8hpp.html',''); initResizable
|
||||
<p>A class that holds the properties of a particle.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <armadillo></code><br />
|
||||
<code>#include "<a class="el" href="typedefs_8hpp_source.html">typedefs.hpp</a>"</code><br />
|
||||
</div>
|
||||
<p><a href="Particle_8hpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
|
||||
@ -107,28 +107,30 @@ $(document).ready(function(){initNavTree('Particle_8hpp_source.html',''); initRe
|
||||
<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 <armadillo></span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classParticle.html"> 19</a></span><span class="keyword">class </span><a class="code hl_class" href="classParticle.html">Particle</a> {</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1"> 21</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a>; </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563"> 22</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>; </div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467"> 23</a></span> arma::vec::fixed<3> <a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a>; </div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df"> 24</a></span> arma::vec::fixed<3> <a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>; </div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_class" href="classParticle.html">Particle</a>(<span class="keywordtype">double</span> <a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>, </div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> arma::vec::fixed<3> <a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a>, </div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> arma::vec::fixed<3> <a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>);</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="classParticle.html#aa797d319549dc2a0beb06cdbfd430232"> 38</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>;</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>};</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include "<a class="code" href="typedefs_8hpp.html">typedefs.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classParticle.html"> 21</a></span><span class="keyword">class </span><a class="code hl_class" href="classParticle.html">Particle</a> {</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1"> 23</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a>; </div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563"> 24</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>; </div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6"> 25</a></span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a>; </div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e"> 26</a></span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_variable" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a>; </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="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_class" href="classParticle.html">Particle</a>(<span class="keywordtype">double</span> <a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>, <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a>, <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_variable" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a>);</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="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00019">Particle.hpp:19</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a4a5d22c7aeca66f67d083f270cba25df"><div class="ttname"><a href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">Particle::v_vec</a></div><div class="ttdeci">arma::vec::fixed< 3 > v_vec</div><div class="ttdoc">velocity</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00024">Particle.hpp:24</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a566dcc1de4bdc01251776948798ea8e1"><div class="ttname"><a href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">Particle::q</a></div><div class="ttdeci">double q</div><div class="ttdoc">Charge.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00021">Particle.hpp:21</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_acf1a0f3c978b06d76df5bb4279594467"><div class="ttname"><a href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">Particle::r_vec</a></div><div class="ttdeci">arma::vec::fixed< 3 > r_vec</div><div class="ttdoc">position</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00023">Particle.hpp:23</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_aedcc7e1bc53b0e2b1a4a07c9a1b47563"><div class="ttname"><a href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">Particle::m</a></div><div class="ttdeci">double m</div><div class="ttdoc">Mass.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00022">Particle.hpp:22</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00029">PenningTrap.hpp:29</a></div></div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classParticle.html#aa797d319549dc2a0beb06cdbfd430232"> 43</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>;</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>};</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00021">Particle.hpp:21</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a566dcc1de4bdc01251776948798ea8e1"><div class="ttname"><a href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">Particle::q</a></div><div class="ttdeci">double q</div><div class="ttdoc">Charge.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00023">Particle.hpp:23</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a879692772803d6ab65fa4993b54aea6e"><div class="ttname"><a href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">Particle::v_vec</a></div><div class="ttdeci">vec_3d v_vec</div><div class="ttdoc">velocity</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00026">Particle.hpp:26</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_aedcc7e1bc53b0e2b1a4a07c9a1b47563"><div class="ttname"><a href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">Particle::m</a></div><div class="ttdeci">double m</div><div class="ttdoc">Mass.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00024">Particle.hpp:24</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_af9497cd8f2dcad0fad54f571ddb383e6"><div class="ttname"><a href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">Particle::r_vec</a></div><div class="ttdeci">vec_3d r_vec</div><div class="ttdoc">position</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00025">Particle.hpp:25</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00030">PenningTrap.hpp:30</a></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="atypedefs_8hpp_html_a9f33f4962c8fb62cc5ccd0e4e039a8df"><div class="ttname"><a href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a></div><div class="ttdeci">arma::vec::fixed< 3 > vec_3d</div><div class="ttdoc">Typedef for a fixed 3d arma vector.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00036">typedefs.hpp:36</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
@ -106,6 +106,7 @@ $(document).ready(function(){initNavTree('PenningTrap_8cpp.html',''); initResiza
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include "<a class="el" href="PenningTrap_8hpp_source.html">PenningTrap.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="constants_8hpp_source.html">constants.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="typedefs_8hpp_source.html">typedefs.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="utils_8hpp_source.html">utils.hpp</a>"</code><br />
|
||||
</div>
|
||||
<p><a href="PenningTrap_8cpp_source.html">Go to the source code of this file.</a></p>
|
||||
@ -115,10 +116,7 @@ $(document).ready(function(){initNavTree('PenningTrap_8cpp.html',''); initResiza
|
||||
<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#_bug000007">Bug:</a></b></dt><dd>No known bugs</dd></dl>
|
||||
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd><p class="startdd">Implement evolve_RK4 </p>
|
||||
<p class="enddd">Implement evolve_forward_euler </p>
|
||||
</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="PenningTrap_8cpp_source.html">PenningTrap.cpp</a>.</p>
|
||||
</div></div><!-- contents -->
|
||||
|
||||
@ -102,205 +102,311 @@ $(document).ready(function(){initNavTree('PenningTrap_8cpp_source.html',''); ini
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="PenningTrap_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="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include "<a class="code" href="PenningTrap_8hpp.html">PenningTrap.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include "<a class="code" href="constants_8hpp.html">constants.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include "<a class="code" href="utils_8hpp.html">utils.hpp</a>"</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"><a class="line" href="classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560"> 20</a></span><a class="code hl_function" href="classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560">PenningTrap::PenningTrap</a>(<span class="keywordtype">double</span> B_0, <span class="keywordtype">double</span> V_0, <span class="keywordtype">double</span> d)</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> this->B_0 = <a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a>;</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> this->V_0 = <a class="code hl_variable" href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">V_0</a>;</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> this->d = <a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>;</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include "<a class="code" href="PenningTrap_8hpp.html">PenningTrap.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include "<a class="code" href="constants_8hpp.html">constants.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include "<a class="code" href="typedefs_8hpp.html">typedefs.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include "<a class="code" href="utils_8hpp.html">utils.hpp</a>"</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="classPenningTrap.html#ae670d7de621acdb343b01af098086f63"> 18</a></span><a class="code hl_function" href="classPenningTrap.html#ae670d7de621acdb343b01af098086f63">PenningTrap::PenningTrap</a>(<span class="keywordtype">double</span> B_0, std::function<<span class="keywordtype">double</span>(<span class="keywordtype">double</span>)> V_0,</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> t)</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span>{</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> this->B_0 = <a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a>;</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> this-><a class="code hl_variable" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">V_0</a> = <a class="code hl_variable" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">V_0</a>;</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> this->d = <a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>;</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> this->t = <a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a>;</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>}</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8"> 27</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a>(<a class="code hl_class" href="classParticle.html">Particle</a> particle)</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>{</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.push_back(particle);</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="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b"> 32</a></span>arma::vec <a class="code hl_function" href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">PenningTrap::external_E_field</a>(arma::vec r)</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> arma::vec::fixed<3> res;</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">double</span> f = this-><a class="code hl_variable" href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">V_0</a> / (this-><a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a> * this-><a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>);</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> res(0) = r(0);</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> res(1) = r(1);</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> res(2) = -2. * r(2);</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="keywordflow">return</span> f * res;</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784"> 43</a></span>arma::vec <a class="code hl_function" href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">PenningTrap::external_B_field</a>(arma::vec r)</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>{</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> arma::vec::fixed<3> res{0., 0., this-><a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a>};</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="keywordflow">return</span> res;</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> </div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182"> 50</a></span>arma::vec <a class="code hl_function" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">PenningTrap::force_on_particle</a>(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j)</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="comment">// Calculate the difference between the particles' position</span></div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> arma::vec::fixed<3> res =</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).r_vec - this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(j).r_vec;</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">// Get the distance between the particles</span></div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">double</span> norm = arma::norm(res);</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// Multiply res with p_j's charge divided by the norm cubed</span></div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> res *= this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(j).q / (norm * norm * norm);</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="keywordflow">return</span> res;</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>}</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee"> 65</a></span>arma::vec <a class="code hl_function" href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">PenningTrap::total_force_external</a>(<span class="keywordtype">int</span> i)</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> <a class="code hl_class" href="classParticle.html">Particle</a> p = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i);</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> arma::vec::fixed<3> B = this-><a class="code hl_function" href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">external_B_field</a>(p.<a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a>);</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> arma::vec::fixed<3> v_cross_B{p.<a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>(1) * B(2) - p.<a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>(2) * B(1),</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> p.<a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>(2) * B(0) - p.<a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>(0) * B(2),</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> p.<a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>(0) * B(1) - p.<a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>(1) * B(0)};</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> arma::vec force = p.<a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a> * (this-><a class="code hl_function" href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">external_E_field</a>(p.<a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a>) + v_cross_B);</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> <span class="keywordflow">return</span> force;</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span>}</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d"> 80</a></span>arma::vec <a class="code hl_function" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">PenningTrap::total_force_particles</a>(<span class="keywordtype">int</span> i)</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> <a class="code hl_class" href="classParticle.html">Particle</a> p = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(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> arma::vec res(3);</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">for</span> (<span class="keywordtype">int</span> j = 0; j < this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.size(); j++) {</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">if</span> (i == j) {</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">continue</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> </div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> res += this-><a class="code hl_function" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">force_on_particle</a>(i, 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> res *= <a class="code hl_define" href="constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb">K_E</a> * (p.<a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a> / p.<a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>);</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> res;</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>}</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be"> 99</a></span>arma::vec <a class="code hl_function" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">PenningTrap::total_force</a>(<span class="keywordtype">int</span> i)</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="keywordflow">return</span> this-><a class="code hl_function" href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">total_force_external</a>(i) - this-><a class="code hl_function" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">total_force_particles</a>(i);</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> </div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9"> 104</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">PenningTrap::evolve_RK4</a>(<span class="keywordtype">double</span> dt)</div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>{</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> std::vector<Particle> tmp_particles = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>;</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> arma::vec::fixed<3> *k_v = <span class="keyword">new</span> arma::vec::fixed<3>[this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.size()*4];</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> arma::vec::fixed<3> *k_r = <span class="keyword">new</span> arma::vec::fixed<3>[this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.size()*4];</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a763700316b502d5900e587c1f61e6bf1"> 27</a></span><a class="code hl_function" href="classPenningTrap.html#ae670d7de621acdb343b01af098086f63">PenningTrap::PenningTrap</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">double</span> B_0,</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> std::function<<span class="keywordtype">double</span>(<span class="keywordtype">double</span>)> V_0, <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> t)</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> : <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>::<a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>(B_0, V_0, d)</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_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> r, v;</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j < i; j++) {</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> r = <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>().randn() * .1 * this-><a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>;</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> v = <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>().randn() * .1 * this-><a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>;</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> this-><a class="code hl_function" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">add_particle</a>(<a class="code hl_class" href="classParticle.html">Particle</a>(1., 40., r, v));</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span>}</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a67139e04ef69c0bcffde8f30f67cbf73"> 39</a></span><a class="code hl_function" href="classPenningTrap.html#ae670d7de621acdb343b01af098086f63">PenningTrap::PenningTrap</a>(std::vector<Particle> particles, <span class="keywordtype">double</span> B_0,</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> std::function<<span class="keywordtype">double</span>(<span class="keywordtype">double</span>)> V_0, <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> t)</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> : <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>::<a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>(B_0, V_0, d)</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> this->particles = <a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>;</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e"> 46</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e">PenningTrap::v_func</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j, <span class="keywordtype">double</span> dt)</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> <span class="keywordflow">switch</span> (i) {</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">case</span> 0:</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">return</span> .5 * dt * this-><a class="code hl_variable" href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">k_v</a>[0][j];</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">case</span> 1:</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">return</span> .5 * dt * this->k_v[1][j];</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">case</span> 2:</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> dt * this->k_v[2][j];</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">case</span> 3:</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> (dt / 6.) * (this->k_v[0][j].eval() + this->k_v[1][j].eval() +</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> this->k_v[2][j].eval() + this->k_v[3][j].eval());</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">default</span>:</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> std::cout << <span class="stringliteral">"Not valid!"</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> abort();</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> </div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648"> 64</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648">PenningTrap::r_func</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j, <span class="keywordtype">double</span> dt)</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>{</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">switch</span> (i) {</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">case</span> 0:</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">return</span> .5 * dt * this-><a class="code hl_variable" href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">k_r</a>[0][j];</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">case</span> 1:</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> .5 * dt * this->k_r[1][j];</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">case</span> 2:</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> dt * this->k_r[2][j];</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">case</span> 3:</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> (dt / 6.) * (this->k_r[0][j].eval() + this->k_r[1][j].eval() +</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> this->k_r[2][j].eval() + this->k_r[3][j].eval());</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">default</span>:</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> std::cout << <span class="stringliteral">"Not valid!"</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> abort();</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="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8"> 82</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a>(<a class="code hl_class" href="classParticle.html">Particle</a> particle)</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->particles.push_back(particle);</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span>}</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9"> 87</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">PenningTrap::external_E_field</a>(<a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> r)</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> r(2) *= -2.;</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">double</span> f = this-><a class="code hl_variable" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">V_0</a>(this-><a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a>) / (this-><a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a> * this-><a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>);</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="keywordflow">return</span> f * r;</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"><a class="line" href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c"> 95</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">PenningTrap::external_B_field</a>(<a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> r)</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="keywordflow">return</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{0., 0., this->B_0};</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> </div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce"> 100</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">PenningTrap::force_on_particle</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j)</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>{</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_class" href="classParticle.html">Particle</a> p_j = this->particles[j];</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// Calculate the difference between the particles' position</span></div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> res = this->particles[i].<a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a> - p_j.<a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a>;</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="comment">// Get the distance between the particles</span></div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">double</span> norm = arma::norm(res, 2);</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">// Multiply res with p_j's charge divided by the norm cubed</span></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> <span class="keywordtype">int</span> size = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.size();</div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<size; i++) {</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> k_v[i] = this-><a class="code hl_function" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">total_force</a>(i)/this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).m;</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> k_r[i] = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).v_vec;</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">return</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>(res * p_j.<a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a> / (norm * norm * norm));</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> </div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56"> 114</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">PenningTrap::total_force_external</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)</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> <a class="code hl_class" href="classParticle.html">Particle</a> p = this->particles[i];</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> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<size; i++) {</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_class" href="classParticle.html">Particle</a> *p = &this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i);</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> p-><a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a> = tmp_particles.at(i).v_vec + (dt/2)*k_v[i];</div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> p-><a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a> = tmp_particles.at(i).r_vec + (dt/2)*k_r[i];</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="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">if</span> (arma::norm(p.<a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a>) > this->d) {</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">return</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{0., 0., 0.};</div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> force =</div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> p.<a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a> * (this-><a class="code hl_function" href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">external_E_field</a>(p.<a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a>) +</div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> arma::cross(p.<a class="code hl_variable" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a>, this->external_B_field(p.<a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a>)));</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<size; i++) {</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> k_v[1*size + i] = this-><a class="code hl_function" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">total_force</a>(i)/this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).m;</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> k_r[1*size + i] = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).v_vec;</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">for</span> (<span class="keywordtype">int</span> i=0; i<size; i++) {</div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <a class="code hl_class" href="classParticle.html">Particle</a> *p = &this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i);</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> p-><a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a> = tmp_particles.at(i).v_vec + (dt/2)*k_v[1*size + i];</div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> p-><a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a> = tmp_particles.at(i).r_vec + (dt/2)*k_r[1*size + i];</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> </div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<size; i++) {</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> k_v[2*size + i] = this-><a class="code hl_function" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">total_force</a>(i)/this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).m;</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> k_r[2*size + i] = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).v_vec;</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> force;</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>}</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b"> 129</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">PenningTrap::total_force_particles</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)</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> <a class="code hl_class" href="classParticle.html">Particle</a> p = this->particles[i];</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> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> res;</div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j < this->particles.size(); j++) {</div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">if</span> (i == j) {</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">continue</span>;</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> }</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> res += this-><a class="code hl_function" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">force_on_particle</a>(i, j);</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> </div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<size; i++) {</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <a class="code hl_class" href="classParticle.html">Particle</a> *p = &this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i);</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">return</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>(res * <a class="code hl_define" href="constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb">K_E</a> * (p.<a class="code hl_variable" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a> / p.<a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>));</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> p-><a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a> = tmp_particles.at(i).v_vec + dt*k_v[2*size + i];</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> p-><a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a> = tmp_particles.at(i).r_vec + dt*k_r[2*size + i];</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="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8"> 146</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">PenningTrap::total_force</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span>{</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">return</span> this-><a class="code hl_function" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">total_force_external</a>(i) - this-><a class="code hl_function" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">total_force_particles</a>(i);</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="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<size; i++) {</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> k_v[3*size + i] = this-><a class="code hl_function" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">total_force</a>(i)/this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).m;</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> k_r[3*size + i] = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).v_vec;</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"> 156</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<size; i++) {</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_class" href="classParticle.html">Particle</a> *p = &this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i);</div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> p-><a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a> = tmp_particles.at(i).v_vec + dt*(k_v[i] + k_v[size + i] + k_v[2*size + i] + k_v[3*size + i])/6;</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> p-><a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a> = tmp_particles.at(i).r_vec + dt*(k_r[i] + k_r[size + i] + k_r[2*size + i] + k_r[3*size + i])/6;</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> }</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">delete</span> [] k_v;</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">delete</span> [] k_r;</div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span>}</div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e"> 151</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e">PenningTrap::evolve_RK4</a>(<span class="keywordtype">double</span> dt, <span class="keywordtype">bool</span> particle_interaction)</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> </div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> std::vector<Particle> original_particles = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>;</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> std::vector<Particle> tmp_particles = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>;</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> (<a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>::*force)(<span class="keywordtype">unsigned</span> int);</div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">if</span> (particle_interaction) {</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> force = &<a class="code hl_function" href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">PenningTrap::total_force</a>;</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> }</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> force = &<a class="code hl_function" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">PenningTrap::total_force_external</a>;</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> }</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordtype">size_t</span> size = this->particles.size();</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"><a class="line" href="classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965"> 167</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965">PenningTrap::evolve_forward_euler</a>(<span class="keywordtype">double</span> dt)</div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span>{</div>
|
||||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> std::vector<Particle> new_state = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>;</div>
|
||||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <a class="code hl_class" href="classParticle.html">Particle</a> *p;</div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="preprocessor">#pragma omp parallel for private(p)</span></div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.size(); i++) {</div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> p = &new_state.at(i);</div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> p-><a class="code hl_variable" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a> += dt * this-><a class="code hl_function" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">total_force</a>(i) / new_state.at(i).m;</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> p-><a class="code hl_variable" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a> += dt * this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).v_vec;</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> </div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a> = new_state;</div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span>}</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>arma::vec PenningTrap::get_particle(<span class="keywordtype">int</span> i)</div>
|
||||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span>{</div>
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keywordflow">return</span> this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>.at(i).r_vec;</div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span>}</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="keywordtype">double</span> PenningTrap::get_d()</div>
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span>{</div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">return</span> this-><a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>;</div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span>}</div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> this-><a class="code hl_variable" href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">k_v</a> = <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a>(4, <a class="code hl_typedef" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a>(size));</div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> this-><a class="code hl_variable" href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">k_r</a> = <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a>(4, <a class="code hl_typedef" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a>(size));</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="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < 4; i++) {</div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="preprocessor">#pragma omp parallel for</span></div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j < this->particles.size(); j++) {</div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> this-><a class="code hl_variable" href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">k_v</a>[i][j] = (this->*force)(j) / this->particles[j].m;</div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> this-><a class="code hl_variable" href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">k_r</a>[i][j] = this->particles[j].v_vec;</div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <a class="code hl_class" href="classParticle.html">Particle</a> *p = &tmp_particles[j];</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div>
|
||||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> p-><a class="code hl_variable" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a> = original_particles[j].v_vec + this-><a class="code hl_function" href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e">v_func</a>(i, j, dt);</div>
|
||||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> p-><a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a> = original_particles[j].r_vec + this-><a class="code hl_function" href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648">r_func</a>(i, j, dt);</div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> this->particles = tmp_particles;</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> }</div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> this-><a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a> += dt;</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> </div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e"> 186</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e">PenningTrap::evolve_forward_euler</a>(<span class="keywordtype">double</span> dt, <span class="keywordtype">bool</span> particle_interaction)</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span>{</div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> std::vector<Particle> new_state = this-><a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>;</div>
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> </div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <a class="code hl_class" href="classParticle.html">Particle</a> *p;</div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> (<a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>::*force)(<span class="keywordtype">unsigned</span> int);</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">if</span> (particle_interaction) {</div>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> force = &<a class="code hl_function" href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">PenningTrap::total_force</a>;</div>
|
||||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
|
||||
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> force = &<a class="code hl_function" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">PenningTrap::total_force_external</a>;</div>
|
||||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> }</div>
|
||||
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> </div>
|
||||
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="preprocessor">#pragma omp parallel for private(p)</span></div>
|
||||
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < this->particles.size(); i++) {</div>
|
||||
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> p = &new_state[i];</div>
|
||||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> p-><a class="code hl_variable" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a> += dt * (this->*force)(i) / p-><a class="code hl_variable" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>;</div>
|
||||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> p-><a class="code hl_variable" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a> += dt * this->particles[i].v_vec;</div>
|
||||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }</div>
|
||||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
|
||||
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> this->particles = new_state;</div>
|
||||
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> this-><a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a> += dt;</div>
|
||||
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span>}</div>
|
||||
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
|
||||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854"> 211</a></span><a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a> <a class="code hl_function" href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">PenningTrap::simulate</a>(<span class="keywordtype">double</span> time, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> steps,</div>
|
||||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> std::string method, <span class="keywordtype">bool</span> particle_interaction)</div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span>{</div>
|
||||
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordtype">double</span> dt = time / (double)steps;</div>
|
||||
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
|
||||
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a> res(this->particles.size(), <a class="code hl_typedef" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a>(steps));</div>
|
||||
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
|
||||
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> void (<a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>::*func)(double, bool);</div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">if</span> (method == <span class="stringliteral">"rk4"</span>) {</div>
|
||||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> func = &<a class="code hl_function" href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e">PenningTrap::evolve_RK4</a>;</div>
|
||||
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> }</div>
|
||||
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (method == <span class="stringliteral">"euler"</span>) {</div>
|
||||
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> func = &<a class="code hl_function" href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e">PenningTrap::evolve_forward_euler</a>;</div>
|
||||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> }</div>
|
||||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> std::cout << <span class="stringliteral">"Not a valid method!"</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> abort();</div>
|
||||
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> }</div>
|
||||
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
|
||||
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j < steps; j++) {</div>
|
||||
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < this->particles.size(); i++) {</div>
|
||||
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> res[i][j] = this->particles[i].r_vec;</div>
|
||||
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> }</div>
|
||||
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> (this->*func)(dt, particle_interaction);</div>
|
||||
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> }</div>
|
||||
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
|
||||
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> res;</div>
|
||||
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span>}</div>
|
||||
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
|
||||
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"><a class="line" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57"> 240</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">PenningTrap::write_simulation_to_dir</a>(std::string path, <span class="keywordtype">double</span> time,</div>
|
||||
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordtype">int</span> steps, std::string method,</div>
|
||||
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordtype">bool</span> particle_interaction)</div>
|
||||
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span>{</div>
|
||||
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">if</span> (path.back() != <span class="charliteral">'/'</span>) {</div>
|
||||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> path += <span class="charliteral">'/'</span>;</div>
|
||||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> }</div>
|
||||
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">mkpath</a>(path, 0777) != 0) {</div>
|
||||
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> std::cout << <span class="stringliteral">"Hello"</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> }</div>
|
||||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
|
||||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a> res = this-><a class="code hl_function" href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">simulate</a>(time, steps, method, particle_interaction);</div>
|
||||
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
|
||||
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> std::ofstream ofile;</div>
|
||||
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> </div>
|
||||
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="preprocessor">#pragma omp parallel for private(ofile)</span></div>
|
||||
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < this->particles.size(); i++) {</div>
|
||||
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> ofile.open(path + <span class="stringliteral">"particle_"</span> + std::to_string(i) + <span class="stringliteral">".txt"</span>);</div>
|
||||
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">for</span> (<a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> &vec : res[i]) {</div>
|
||||
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> ofile << vec(0) << <span class="stringliteral">","</span> << vec(1) << <span class="stringliteral">","</span> << vec(2) << <span class="stringliteral">"\n"</span>;</div>
|
||||
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> }</div>
|
||||
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> ofile.close();</div>
|
||||
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> }</div>
|
||||
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span>}</div>
|
||||
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
|
||||
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b"> 266</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">PenningTrap::fraction_of_particles_left</a>(<span class="keywordtype">double</span> time, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> steps, std::string method, <span class="keywordtype">bool</span> particle_interaction)</div>
|
||||
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span>{</div>
|
||||
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a> res = this-><a class="code hl_function" href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">simulate</a>(time, steps, method, particle_interaction);</div>
|
||||
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
|
||||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">int</span> particles_left = 0;</div>
|
||||
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
|
||||
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">for</span> (<a class="code hl_class" href="classParticle.html">Particle</a> p : this->particles) {</div>
|
||||
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">if</span> (arma::norm(p.r_vec) < this->d) {</div>
|
||||
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> particles_left++;</div>
|
||||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> }</div>
|
||||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> }</div>
|
||||
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
|
||||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">return</span> (<span class="keywordtype">double</span>) particles_left / (double) this->particles.size();</div>
|
||||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span>}</div>
|
||||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
|
||||
<div class="ttc" id="aPenningTrap_8hpp_html"><div class="ttname"><a href="PenningTrap_8hpp.html">PenningTrap.hpp</a></div><div class="ttdoc">A class for simulating a Penning trap.</div></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00019">Particle.hpp:19</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a4a5d22c7aeca66f67d083f270cba25df"><div class="ttname"><a href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">Particle::v_vec</a></div><div class="ttdeci">arma::vec::fixed< 3 > v_vec</div><div class="ttdoc">velocity</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00024">Particle.hpp:24</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a566dcc1de4bdc01251776948798ea8e1"><div class="ttname"><a href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">Particle::q</a></div><div class="ttdeci">double q</div><div class="ttdoc">Charge.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00021">Particle.hpp:21</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_acf1a0f3c978b06d76df5bb4279594467"><div class="ttname"><a href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">Particle::r_vec</a></div><div class="ttdeci">arma::vec::fixed< 3 > r_vec</div><div class="ttdoc">position</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00023">Particle.hpp:23</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_aedcc7e1bc53b0e2b1a4a07c9a1b47563"><div class="ttname"><a href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">Particle::m</a></div><div class="ttdeci">double m</div><div class="ttdoc">Mass.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00022">Particle.hpp:22</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0112525d9e79a472e761f8ef402a339f"><div class="ttname"><a href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">PenningTrap::particles</a></div><div class="ttdeci">std::vector< Particle > particles</div><div class="ttdoc">The particles in the Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00034">PenningTrap.hpp:34</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a045adb85e97a8e0c38fb36d2fd74eeee"><div class="ttname"><a href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">PenningTrap::total_force_external</a></div><div class="ttdeci">arma::vec total_force_external(int i)</div><div class="ttdoc">Calculate the total external force on a particle.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00065">PenningTrap.cpp:65</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0cac3509aa96e71a26d3b2c902e27716"><div class="ttname"><a href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">PenningTrap::B_0</a></div><div class="ttdeci">double B_0</div><div class="ttdoc">Magnetic field strength.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00031">PenningTrap.hpp:31</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a135db7d991d9b88b00fde4edee71f78d"><div class="ttname"><a href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">PenningTrap::total_force_particles</a></div><div class="ttdeci">arma::vec total_force_particles(int i)</div><div class="ttdoc">Calculate the total force on a particle from other particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00080">PenningTrap.cpp:80</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a2a3e7f480ba52e9f24d4c50c3981a784"><div class="ttname"><a href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">PenningTrap::external_B_field</a></div><div class="ttdeci">arma::vec external_B_field(arma::vec r)</div><div class="ttdoc">Calculate B at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00043">PenningTrap.cpp:43</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a4790f41e4fbc6ede4991aa7bbda92182"><div class="ttname"><a href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">PenningTrap::force_on_particle</a></div><div class="ttdeci">arma::vec force_on_particle(int i, int j)</div><div class="ttdoc">Calculate the force between 2 particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00050">PenningTrap.cpp:50</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a56544b6f4befb42984e9650cf2a40965"><div class="ttname"><a href="classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965">PenningTrap::evolve_forward_euler</a></div><div class="ttdeci">void evolve_forward_euler(double dt)</div><div class="ttdoc">Go forward one timestep using the forward Euler method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00167">PenningTrap.cpp:167</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a66dfe89c68716b9502927b97f59c27d2"><div class="ttname"><a href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">PenningTrap::d</a></div><div class="ttdeci">double d</div><div class="ttdoc">Characteristic dimension.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00033">PenningTrap.hpp:33</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a6e9776ff5b149f01080800716455d7c8"><div class="ttname"><a href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a></div><div class="ttdeci">void add_particle(Particle particle)</div><div class="ttdoc">Add a particle to the system.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00027">PenningTrap.cpp:27</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a715329844d75ec4c04f8391421fb4e89"><div class="ttname"><a href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">PenningTrap::V_0</a></div><div class="ttdeci">double V_0</div><div class="ttdoc">Applied potential.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00032">PenningTrap.hpp:32</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a81add5063bd5f29d77f0b5c299c6c560"><div class="ttname"><a href="classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560">PenningTrap::PenningTrap</a></div><div class="ttdeci">PenningTrap(double B_0=T, double V_0=25.*V/1000., double d=500.)</div><div class="ttdoc">Set B_0, V_0 and d.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00020">PenningTrap.cpp:20</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a83cc7a04dae009ed8e75453c38fdf8be"><div class="ttname"><a href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">PenningTrap::total_force</a></div><div class="ttdeci">arma::vec total_force(int i)</div><div class="ttdoc">calculate the total force on a particle.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00099">PenningTrap.cpp:99</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a978a2e2026a4b5308d5184712f81704b"><div class="ttname"><a href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">PenningTrap::external_E_field</a></div><div class="ttdeci">arma::vec external_E_field(arma::vec r)</div><div class="ttdoc">Calculate E at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00032">PenningTrap.cpp:32</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ab891b839c40eeb38d8a2a636c70090a9"><div class="ttname"><a href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">PenningTrap::evolve_RK4</a></div><div class="ttdeci">void evolve_RK4(double dt)</div><div class="ttdoc">Go forward one timestep using the RK4 method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00104">PenningTrap.cpp:104</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00021">Particle.hpp:21</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a566dcc1de4bdc01251776948798ea8e1"><div class="ttname"><a href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">Particle::q</a></div><div class="ttdeci">double q</div><div class="ttdoc">Charge.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00023">Particle.hpp:23</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_a879692772803d6ab65fa4993b54aea6e"><div class="ttname"><a href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">Particle::v_vec</a></div><div class="ttdeci">vec_3d v_vec</div><div class="ttdoc">velocity</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00026">Particle.hpp:26</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_aedcc7e1bc53b0e2b1a4a07c9a1b47563"><div class="ttname"><a href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">Particle::m</a></div><div class="ttdeci">double m</div><div class="ttdoc">Mass.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00024">Particle.hpp:24</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html_af9497cd8f2dcad0fad54f571ddb383e6"><div class="ttname"><a href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">Particle::r_vec</a></div><div class="ttdeci">vec_3d r_vec</div><div class="ttdoc">position</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00025">Particle.hpp:25</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00030">PenningTrap.hpp:30</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0112525d9e79a472e761f8ef402a339f"><div class="ttname"><a href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">PenningTrap::particles</a></div><div class="ttdeci">std::vector< Particle > particles</div><div class="ttdoc">The particles in the Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00036">PenningTrap.hpp:36</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0194be61c956a9259c747c23e4163c5b"><div class="ttname"><a href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">PenningTrap::fraction_of_particles_left</a></div><div class="ttdeci">double fraction_of_particles_left(double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</div><div class="ttdoc">Simulate and calculate what fraction of particles are still left inside the Penning trap after the si...</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00266">PenningTrap.cpp:266</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0cac3509aa96e71a26d3b2c902e27716"><div class="ttname"><a href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">PenningTrap::B_0</a></div><div class="ttdeci">double B_0</div><div class="ttdoc">Magnetic field strength.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00032">PenningTrap.hpp:32</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a1d58feaa2c9e34cbf26b1c5ed75ca9d9"><div class="ttname"><a href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">PenningTrap::external_E_field</a></div><div class="ttdeci">vec_3d external_E_field(vec_3d r)</div><div class="ttdoc">Calculate E at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00087">PenningTrap.cpp:87</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a1f668c4433421136ad51741741aa1bc8"><div class="ttname"><a href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">PenningTrap::total_force</a></div><div class="ttdeci">vec_3d total_force(unsigned int i)</div><div class="ttdoc">calculate the total force on a particle p_i.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00146">PenningTrap.cpp:146</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a2f168622587709b9e3c49077f0b9a640"><div class="ttname"><a href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">PenningTrap::k_r</a></div><div class="ttdeci">sim_arr k_r</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00039">PenningTrap.hpp:39</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a36946152fd951b1f7c346c51ff900d8e"><div class="ttname"><a href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e">PenningTrap::evolve_RK4</a></div><div class="ttdeci">void evolve_RK4(double dt, bool particle_interaction=true)</div><div class="ttdoc">Go forward one timestep using the RK4 method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00151">PenningTrap.cpp:151</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a43e74792ab4b3f9299f35cb64bdb2648"><div class="ttname"><a href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648">PenningTrap::r_func</a></div><div class="ttdeci">vec_3d r_func(unsigned int i, unsigned int j, double dt)</div><div class="ttdoc">Helper for evolve_RK4 when calculating values.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00064">PenningTrap.cpp:64</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a46a954a0946def199e30fb300ba1c47b"><div class="ttname"><a href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">PenningTrap::total_force_particles</a></div><div class="ttdeci">vec_3d total_force_particles(unsigned int i)</div><div class="ttdoc">Calculate the total force on a particle p_i from other particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00129">PenningTrap.cpp:129</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a5331837e6dd7bce807a99edd2ba7e854"><div class="ttname"><a href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">PenningTrap::simulate</a></div><div class="ttdeci">sim_arr simulate(double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</div><div class="ttdoc">Simulate the particle system inside the Penning trap over a certain amount of time.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00211">PenningTrap.cpp:211</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a66dfe89c68716b9502927b97f59c27d2"><div class="ttname"><a href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">PenningTrap::d</a></div><div class="ttdeci">double d</div><div class="ttdoc">Characteristic dimension.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00034">PenningTrap.hpp:34</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a6e9776ff5b149f01080800716455d7c8"><div class="ttname"><a href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a></div><div class="ttdeci">void add_particle(Particle particle)</div><div class="ttdoc">Add a particle to the system.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00082">PenningTrap.cpp:82</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a8ca4e21291f60fde619c14099d8c4e8e"><div class="ttname"><a href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">PenningTrap::t</a></div><div class="ttdeci">double t</div><div class="ttdoc">Current time.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00035">PenningTrap.hpp:35</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a9ae34ad740a230e667e96bc6ee8730ce"><div class="ttname"><a href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">PenningTrap::force_on_particle</a></div><div class="ttdeci">vec_3d force_on_particle(unsigned int i, unsigned int j)</div><div class="ttdoc">Calculate the force between 2 particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00100">PenningTrap.cpp:100</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_aaf105828121c4a33cc2b217453c20317"><div class="ttname"><a href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">PenningTrap::V_0</a></div><div class="ttdeci">std::function< double(double)> V_0</div><div class="ttdoc">Applied potential.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00033">PenningTrap.hpp:33</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ab9ea97a406534bbe621a95215144875e"><div class="ttname"><a href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e">PenningTrap::evolve_forward_euler</a></div><div class="ttdeci">void evolve_forward_euler(double dt, bool particle_interaction=true)</div><div class="ttdoc">Go forward one timestep using the forward Euler method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00186">PenningTrap.cpp:186</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_abbb832a85139b1a56ebde57d7b8f9a57"><div class="ttname"><a href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">PenningTrap::write_simulation_to_dir</a></div><div class="ttdeci">void write_simulation_to_dir(std::string path, double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</div><div class="ttdoc">Simulate and write the displacement of all particles to files.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00240">PenningTrap.cpp:240</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_acbf065c9c125682329ad82a8d166554c"><div class="ttname"><a href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">PenningTrap::external_B_field</a></div><div class="ttdeci">vec_3d external_B_field(vec_3d r)</div><div class="ttdoc">Calculate B at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00095">PenningTrap.cpp:95</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ae670d7de621acdb343b01af098086f63"><div class="ttname"><a href="classPenningTrap.html#ae670d7de621acdb343b01af098086f63">PenningTrap::PenningTrap</a></div><div class="ttdeci">PenningTrap(double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)</div><div class="ttdoc">Constructor for the PenningTrap class.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00018">PenningTrap.cpp:18</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ae72d203b0bfa1b9e72bea28cb2863c56"><div class="ttname"><a href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">PenningTrap::total_force_external</a></div><div class="ttdeci">vec_3d total_force_external(unsigned int i)</div><div class="ttdoc">Calculate the total external force on a particle.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00114">PenningTrap.cpp:114</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ae9b5afdaa5cd366e94bd294452a1eed4"><div class="ttname"><a href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">PenningTrap::k_v</a></div><div class="ttdeci">sim_arr k_v</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00037">PenningTrap.hpp:37</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_af98a720da60b0e1a62aefa5f5cb37c1e"><div class="ttname"><a href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e">PenningTrap::v_func</a></div><div class="ttdeci">vec_3d v_func(unsigned int i, unsigned int j, double dt)</div><div class="ttdoc">Helper for evolve_RK4 when calculating values.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00046">PenningTrap.cpp:46</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="aconstants_8hpp_html_a4e451456ad7e9276ed0afa42826e7ccb"><div class="ttname"><a href="constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb">K_E</a></div><div class="ttdeci">#define K_E</div><div class="ttdoc">Coulomb constant. unit: .</div><div class="ttdef"><b>Definition:</b> <a href="constants_8hpp_source.html#l00015">constants.hpp:15</a></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="atypedefs_8hpp_html_a7c2dfa854274262c4e00e4ef0ab2ce23"><div class="ttname"><a href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a></div><div class="ttdeci">std::vector< arma::vec::fixed< 3 > > sim_cols</div><div class="ttdoc">Typedef for the column of the result vector from simulating particles.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00024">typedefs.hpp:24</a></div></div>
|
||||
<div class="ttc" id="atypedefs_8hpp_html_a9f33f4962c8fb62cc5ccd0e4e039a8df"><div class="ttname"><a href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a></div><div class="ttdeci">arma::vec::fixed< 3 > vec_3d</div><div class="ttdoc">Typedef for a fixed 3d arma vector.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00036">typedefs.hpp:36</a></div></div>
|
||||
<div class="ttc" id="atypedefs_8hpp_html_aec69d34220fff45de238b9e01f2686af"><div class="ttname"><a href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a></div><div class="ttdeci">std::vector< sim_cols > sim_arr</div><div class="ttdoc">Typedef for the result of the simulate method.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00032">typedefs.hpp:32</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a6fdd7217b750aff5b6295ece7cbdeffa"><div class="ttname"><a href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00076">utils.cpp:76</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
@ -110,6 +110,7 @@ $(document).ready(function(){initNavTree('PenningTrap_8hpp.html',''); initResiza
|
||||
<code>#include <omp.h></code><br />
|
||||
<code>#include "<a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="constants_8hpp_source.html">constants.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="typedefs_8hpp_source.html">typedefs.hpp</a>"</code><br />
|
||||
</div>
|
||||
<p><a href="PenningTrap_8hpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
|
||||
@ -110,63 +110,106 @@ $(document).ready(function(){initNavTree('PenningTrap_8hpp_source.html',''); ini
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include "<a class="code" href="Particle_8hpp.html">Particle.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include "<a class="code" href="constants_8hpp.html">constants.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#pragma omp declare reduction( + : arma::vec : omp_out += omp_in ) \</span></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor"> initializer( omp_priv = omp_orig )</span></div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="classPenningTrap.html"> 29</a></span><span class="keyword">class </span><a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> {</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716"> 31</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a>; </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89"> 32</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">V_0</a>; </div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2"> 33</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>; </div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f"> 34</a></span> std::vector<Particle> <a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>; </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="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>(<span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a> = <a class="code hl_define" href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">V_0</a> = 25.*<a class="code hl_define" href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">V</a>/1000., <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a> = 500.);</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">add_particle</a>(<a class="code hl_class" href="classParticle.html">Particle</a> particle);</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> arma::vec <a class="code hl_function" href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">external_E_field</a>(arma::vec r);</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> arma::vec <a class="code hl_function" href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">external_B_field</a>(arma::vec r);</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> arma::vec <a class="code hl_function" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">force_on_particle</a>(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j);</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> arma::vec <a class="code hl_function" href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">total_force_external</a>(<span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> arma::vec <a class="code hl_function" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">total_force_particles</a>(<span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> arma::vec <a class="code hl_function" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">total_force</a>(<span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</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="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">evolve_RK4</a>(<span class="keywordtype">double</span> dt);</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="classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965">evolve_forward_euler</a>(<span class="keywordtype">double</span> dt);</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> arma::vec get_particle(<span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">double</span> get_d();</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>};</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include "<a class="code" href="typedefs_8hpp.html">typedefs.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#pragma omp declare reduction(+ : vec_3d : omp_out += omp_in) \</span></div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor"> initializer(omp_priv = omp_orig)</span></div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="classPenningTrap.html"> 30</a></span><span class="keyword">class </span><a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> {</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716"> 32</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a>; </div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317"> 33</a></span> std::function<double(<span class="keywordtype">double</span>)> <a class="code hl_variable" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">V_0</a>; </div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2"> 34</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a>; </div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e"> 35</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a>; </div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f"> 36</a></span> std::vector<Particle> <a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>; </div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4"> 37</a></span> <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a> <a class="code hl_variable" href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">k_v</a>; </div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640"> 39</a></span> <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a> <a class="code hl_variable" href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">k_r</a>; </div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e">v_func</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j, <span class="keywordtype">double</span> dt);</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648">r_func</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j, <span class="keywordtype">double</span> dt);</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>(</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a> = <a class="code hl_define" href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a>,</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> std::function<<span class="keywordtype">double</span>(<span class="keywordtype">double</span>)> <a class="code hl_variable" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">V_0</a> =</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> [](<span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a>) { <span class="keywordflow">return</span> 25. * <a class="code hl_define" href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">V</a> / 1000.; },</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a> = 500., <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a> = 0.);</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>(</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a> = <a class="code hl_define" href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a>,</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> std::function<<span class="keywordtype">double</span>(<span class="keywordtype">double</span>)> <a class="code hl_variable" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">V_0</a> =</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> [](<span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a>) { <span class="keywordflow">return</span> 25. * <a class="code hl_define" href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">V</a> / 1000.; },</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a> = 500., <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a> = 0.);</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a>(</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> std::vector<Particle> <a class="code hl_variable" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a>, <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a> = <a class="code hl_define" href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a>,</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> std::function<<span class="keywordtype">double</span>(<span class="keywordtype">double</span>)> <a class="code hl_variable" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">V_0</a> =</div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> [](<span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a>) { <span class="keywordflow">return</span> 25. * <a class="code hl_define" href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">V</a> / 1000.; },</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a> = 500., <span class="keywordtype">double</span> <a class="code hl_variable" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a> = 0.);</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">add_particle</a>(<a class="code hl_class" href="classParticle.html">Particle</a> particle);</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">external_E_field</a>(<a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> r);</div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">external_B_field</a>(<a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> r);</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">force_on_particle</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j);</div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">total_force_external</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">total_force_particles</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="code hl_function" href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">total_force</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e">evolve_RK4</a>(<span class="keywordtype">double</span> dt, <span class="keywordtype">bool</span> particle_interaction = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e">evolve_forward_euler</a>(<span class="keywordtype">double</span> dt, <span class="keywordtype">bool</span> particle_interaction = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a> <a class="code hl_function" href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">simulate</a>(<span class="keywordtype">double</span> time, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> steps,</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> std::string method = <span class="stringliteral">"rk4"</span>,</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordtype">bool</span> particle_interaction = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
|
||||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">write_simulation_to_dir</a>(std::string path, <span class="keywordtype">double</span> time,</div>
|
||||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> steps, std::string method = <span class="stringliteral">"rk4"</span>,</div>
|
||||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">bool</span> particle_interaction = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
|
||||
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">fraction_of_particles_left</a>(<span class="keywordtype">double</span> time, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> steps,</div>
|
||||
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> std::string method = <span class="stringliteral">"rk4"</span>,</div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordtype">bool</span> particle_interaction = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span>};</div>
|
||||
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
|
||||
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="aParticle_8hpp_html"><div class="ttname"><a href="Particle_8hpp.html">Particle.hpp</a></div><div class="ttdoc">A class that holds the properties of a particle.</div></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00019">Particle.hpp:19</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00029">PenningTrap.hpp:29</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0112525d9e79a472e761f8ef402a339f"><div class="ttname"><a href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">PenningTrap::particles</a></div><div class="ttdeci">std::vector< Particle > particles</div><div class="ttdoc">The particles in the Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00034">PenningTrap.hpp:34</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a045adb85e97a8e0c38fb36d2fd74eeee"><div class="ttname"><a href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">PenningTrap::total_force_external</a></div><div class="ttdeci">arma::vec total_force_external(int i)</div><div class="ttdoc">Calculate the total external force on a particle.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00065">PenningTrap.cpp:65</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0cac3509aa96e71a26d3b2c902e27716"><div class="ttname"><a href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">PenningTrap::B_0</a></div><div class="ttdeci">double B_0</div><div class="ttdoc">Magnetic field strength.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00031">PenningTrap.hpp:31</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a135db7d991d9b88b00fde4edee71f78d"><div class="ttname"><a href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">PenningTrap::total_force_particles</a></div><div class="ttdeci">arma::vec total_force_particles(int i)</div><div class="ttdoc">Calculate the total force on a particle from other particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00080">PenningTrap.cpp:80</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a2a3e7f480ba52e9f24d4c50c3981a784"><div class="ttname"><a href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">PenningTrap::external_B_field</a></div><div class="ttdeci">arma::vec external_B_field(arma::vec r)</div><div class="ttdoc">Calculate B at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00043">PenningTrap.cpp:43</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a4790f41e4fbc6ede4991aa7bbda92182"><div class="ttname"><a href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">PenningTrap::force_on_particle</a></div><div class="ttdeci">arma::vec force_on_particle(int i, int j)</div><div class="ttdoc">Calculate the force between 2 particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00050">PenningTrap.cpp:50</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a56544b6f4befb42984e9650cf2a40965"><div class="ttname"><a href="classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965">PenningTrap::evolve_forward_euler</a></div><div class="ttdeci">void evolve_forward_euler(double dt)</div><div class="ttdoc">Go forward one timestep using the forward Euler method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00167">PenningTrap.cpp:167</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a66dfe89c68716b9502927b97f59c27d2"><div class="ttname"><a href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">PenningTrap::d</a></div><div class="ttdeci">double d</div><div class="ttdoc">Characteristic dimension.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00033">PenningTrap.hpp:33</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a6e9776ff5b149f01080800716455d7c8"><div class="ttname"><a href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a></div><div class="ttdeci">void add_particle(Particle particle)</div><div class="ttdoc">Add a particle to the system.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00027">PenningTrap.cpp:27</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a715329844d75ec4c04f8391421fb4e89"><div class="ttname"><a href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">PenningTrap::V_0</a></div><div class="ttdeci">double V_0</div><div class="ttdoc">Applied potential.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00032">PenningTrap.hpp:32</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a83cc7a04dae009ed8e75453c38fdf8be"><div class="ttname"><a href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">PenningTrap::total_force</a></div><div class="ttdeci">arma::vec total_force(int i)</div><div class="ttdoc">calculate the total force on a particle.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00099">PenningTrap.cpp:99</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a978a2e2026a4b5308d5184712f81704b"><div class="ttname"><a href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">PenningTrap::external_E_field</a></div><div class="ttdeci">arma::vec external_E_field(arma::vec r)</div><div class="ttdoc">Calculate E at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00032">PenningTrap.cpp:32</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ab891b839c40eeb38d8a2a636c70090a9"><div class="ttname"><a href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">PenningTrap::evolve_RK4</a></div><div class="ttdeci">void evolve_RK4(double dt)</div><div class="ttdoc">Go forward one timestep using the RK4 method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00104">PenningTrap.cpp:104</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00021">Particle.hpp:21</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00030">PenningTrap.hpp:30</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0112525d9e79a472e761f8ef402a339f"><div class="ttname"><a href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">PenningTrap::particles</a></div><div class="ttdeci">std::vector< Particle > particles</div><div class="ttdoc">The particles in the Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00036">PenningTrap.hpp:36</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0194be61c956a9259c747c23e4163c5b"><div class="ttname"><a href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">PenningTrap::fraction_of_particles_left</a></div><div class="ttdeci">double fraction_of_particles_left(double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</div><div class="ttdoc">Simulate and calculate what fraction of particles are still left inside the Penning trap after the si...</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00266">PenningTrap.cpp:266</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0cac3509aa96e71a26d3b2c902e27716"><div class="ttname"><a href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">PenningTrap::B_0</a></div><div class="ttdeci">double B_0</div><div class="ttdoc">Magnetic field strength.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00032">PenningTrap.hpp:32</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a1d58feaa2c9e34cbf26b1c5ed75ca9d9"><div class="ttname"><a href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">PenningTrap::external_E_field</a></div><div class="ttdeci">vec_3d external_E_field(vec_3d r)</div><div class="ttdoc">Calculate E at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00087">PenningTrap.cpp:87</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a1f668c4433421136ad51741741aa1bc8"><div class="ttname"><a href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">PenningTrap::total_force</a></div><div class="ttdeci">vec_3d total_force(unsigned int i)</div><div class="ttdoc">calculate the total force on a particle p_i.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00146">PenningTrap.cpp:146</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a2f168622587709b9e3c49077f0b9a640"><div class="ttname"><a href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">PenningTrap::k_r</a></div><div class="ttdeci">sim_arr k_r</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00039">PenningTrap.hpp:39</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a36946152fd951b1f7c346c51ff900d8e"><div class="ttname"><a href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e">PenningTrap::evolve_RK4</a></div><div class="ttdeci">void evolve_RK4(double dt, bool particle_interaction=true)</div><div class="ttdoc">Go forward one timestep using the RK4 method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00151">PenningTrap.cpp:151</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a43e74792ab4b3f9299f35cb64bdb2648"><div class="ttname"><a href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648">PenningTrap::r_func</a></div><div class="ttdeci">vec_3d r_func(unsigned int i, unsigned int j, double dt)</div><div class="ttdoc">Helper for evolve_RK4 when calculating values.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00064">PenningTrap.cpp:64</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a46a954a0946def199e30fb300ba1c47b"><div class="ttname"><a href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">PenningTrap::total_force_particles</a></div><div class="ttdeci">vec_3d total_force_particles(unsigned int i)</div><div class="ttdoc">Calculate the total force on a particle p_i from other particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00129">PenningTrap.cpp:129</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a5331837e6dd7bce807a99edd2ba7e854"><div class="ttname"><a href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">PenningTrap::simulate</a></div><div class="ttdeci">sim_arr simulate(double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</div><div class="ttdoc">Simulate the particle system inside the Penning trap over a certain amount of time.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00211">PenningTrap.cpp:211</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a66dfe89c68716b9502927b97f59c27d2"><div class="ttname"><a href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">PenningTrap::d</a></div><div class="ttdeci">double d</div><div class="ttdoc">Characteristic dimension.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00034">PenningTrap.hpp:34</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a6e9776ff5b149f01080800716455d7c8"><div class="ttname"><a href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a></div><div class="ttdeci">void add_particle(Particle particle)</div><div class="ttdoc">Add a particle to the system.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00082">PenningTrap.cpp:82</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a8ca4e21291f60fde619c14099d8c4e8e"><div class="ttname"><a href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">PenningTrap::t</a></div><div class="ttdeci">double t</div><div class="ttdoc">Current time.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00035">PenningTrap.hpp:35</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a9ae34ad740a230e667e96bc6ee8730ce"><div class="ttname"><a href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">PenningTrap::force_on_particle</a></div><div class="ttdeci">vec_3d force_on_particle(unsigned int i, unsigned int j)</div><div class="ttdoc">Calculate the force between 2 particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00100">PenningTrap.cpp:100</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_aaf105828121c4a33cc2b217453c20317"><div class="ttname"><a href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">PenningTrap::V_0</a></div><div class="ttdeci">std::function< double(double)> V_0</div><div class="ttdoc">Applied potential.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00033">PenningTrap.hpp:33</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ab9ea97a406534bbe621a95215144875e"><div class="ttname"><a href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e">PenningTrap::evolve_forward_euler</a></div><div class="ttdeci">void evolve_forward_euler(double dt, bool particle_interaction=true)</div><div class="ttdoc">Go forward one timestep using the forward Euler method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00186">PenningTrap.cpp:186</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_abbb832a85139b1a56ebde57d7b8f9a57"><div class="ttname"><a href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">PenningTrap::write_simulation_to_dir</a></div><div class="ttdeci">void write_simulation_to_dir(std::string path, double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</div><div class="ttdoc">Simulate and write the displacement of all particles to files.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00240">PenningTrap.cpp:240</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_acbf065c9c125682329ad82a8d166554c"><div class="ttname"><a href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">PenningTrap::external_B_field</a></div><div class="ttdeci">vec_3d external_B_field(vec_3d r)</div><div class="ttdoc">Calculate B at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00095">PenningTrap.cpp:95</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ae72d203b0bfa1b9e72bea28cb2863c56"><div class="ttname"><a href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">PenningTrap::total_force_external</a></div><div class="ttdeci">vec_3d total_force_external(unsigned int i)</div><div class="ttdoc">Calculate the total external force on a particle.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00114">PenningTrap.cpp:114</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ae9b5afdaa5cd366e94bd294452a1eed4"><div class="ttname"><a href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">PenningTrap::k_v</a></div><div class="ttdeci">sim_arr k_v</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00037">PenningTrap.hpp:37</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_af98a720da60b0e1a62aefa5f5cb37c1e"><div class="ttname"><a href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e">PenningTrap::v_func</a></div><div class="ttdeci">vec_3d v_func(unsigned int i, unsigned int j, double dt)</div><div class="ttdoc">Helper for evolve_RK4 when calculating values.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00046">PenningTrap.cpp:46</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="aconstants_8hpp_html_a0acb682b8260ab1c60b918599864e2e5"><div class="ttname"><a href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a></div><div class="ttdeci">#define T</div><div class="ttdoc">1 Tesla. unit:</div><div class="ttdef"><b>Definition:</b> <a href="constants_8hpp_source.html#l00017">constants.hpp:17</a></div></div>
|
||||
<div class="ttc" id="aconstants_8hpp_html_af40a326b23c68a27cebe60f16634a2cb"><div class="ttname"><a href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">V</a></div><div class="ttdeci">#define V</div><div class="ttdoc">1 Volt. unit:</div><div class="ttdef"><b>Definition:</b> <a href="constants_8hpp_source.html#l00019">constants.hpp:19</a></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="atypedefs_8hpp_html_a9f33f4962c8fb62cc5ccd0e4e039a8df"><div class="ttname"><a href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a></div><div class="ttdeci">arma::vec::fixed< 3 > vec_3d</div><div class="ttdoc">Typedef for a fixed 3d arma vector.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00036">typedefs.hpp:36</a></div></div>
|
||||
<div class="ttc" id="atypedefs_8hpp_html_aec69d34220fff45de238b9e01f2686af"><div class="ttname"><a href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a></div><div class="ttdeci">std::vector< sim_cols > sim_arr</div><div class="ttdoc">Typedef for the result of the simulate method.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00032">typedefs.hpp:32</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
@ -103,68 +103,75 @@ $(document).ready(function(){initNavTree('animate__100__particles_8py_source.htm
|
||||
<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><span class="keyword">import</span> numpy <span class="keyword">as</span> np</div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">from</span> mpl_toolkits.mplot3d <span class="keyword">import</span> Axes3D</div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">from</span> matplotlib <span class="keyword">import</span> animation</div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">from</span> matplotlib <span class="keyword">import</span> animation</div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">from</span> mpl_toolkits.mplot3d <span class="keyword">import</span> Axes3D</div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="keyword">def </span>get_data(files):</div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> res = []</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> <span class="keywordflow">for</span> file <span class="keywordflow">in</span> files:</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> arr = [[], [], []]</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> <span class="keyword">with</span> open(file, encoding=<span class="stringliteral">"utf8"</span>) <span class="keyword">as</span> f:</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> lines = f.readlines()</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </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> xi,yi,zi = map(float, line.strip().split(<span class="stringliteral">","</span>))</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> arr[0].append(xi)</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> arr[1].append(yi)</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> arr[2].append(zi)</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> res.append(arr)</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="keywordflow">return</span> np.array(res)</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">def </span>update(num, lines, arr):</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">for</span> line, a <span class="keywordflow">in</span> zip(lines, arr):</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> line.set_data(a[:2, num])</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> line.set_3d_properties(a[2, num])</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </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">def </span>get_data(files):</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> res = []</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> <span class="keywordflow">for</span> file <span class="keywordflow">in</span> files:</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> arr = [[], [], []]</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">with</span> open(file, encoding=<span class="stringliteral">"utf8"</span>) <span class="keyword">as</span> f:</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> lines = f.readlines()</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="keywordflow">for</span> line <span class="keywordflow">in</span> lines:</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> xi, yi, zi = map(float, line.strip().split(<span class="stringliteral">","</span>))</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> arr[0].append(xi)</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> arr[1].append(yi)</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> arr[2].append(zi)</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> res.append(arr)</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="keywordflow">return</span> np.array(res)</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><span class="keyword">def </span>update(num, lines, arr):</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">for</span> line, a <span class="keywordflow">in</span> zip(lines, arr):</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> line.set_data(a[:2, num - 1 : num])</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> line.set_3d_properties(a[2, num])</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">def </span>animate():</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> plt.style.use(<span class="stringliteral">"dark_background"</span>)</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> fig = plt.figure()</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> ax = fig.add_subplot(projection=<span class="stringliteral">"3d"</span>)</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">def </span>animate():</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> plt.style.use(<span class="stringliteral">"dark_background"</span>)</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> fig = plt.figure()</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> ax = fig.add_subplot(projection=<span class="stringliteral">"3d"</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> arr = get_data([f<span class="stringliteral">"output/p{i}_RK4.txt"</span> <span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(100)])</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> arr = get_data([f<span class="stringliteral">"output/simulate_100_particles/particle_{i}.txt"</span> <span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(100)])</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> arr = arr[:,:,::10]</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> arr = arr[:, :, ::10]</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> N = len(arr[0][0])</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> lines = [ax.plot(*a[:,1], <span class="stringliteral">"o"</span>)[0] <span class="keywordflow">for</span> a <span class="keywordflow">in</span> arr]</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> lines = [ax.plot(*a[:, 1], <span class="stringliteral">"o"</span>)[0] <span class="keywordflow">for</span> a <span class="keywordflow">in</span> arr]</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> ax.set_xlim3d([-500.0, 500.0])</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> ax.set_xlabel(<span class="stringliteral">'X'</span>)</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> ax.set_ylim3d([-500.0, 500.0])</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> ax.set_ylabel(<span class="stringliteral">'Y'</span>)</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> ax.set_zlim3d([-500.0, 500.0])</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> ax.set_zlabel(<span class="stringliteral">'Z'</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> ani = animation.FuncAnimation(fig, update, N, fargs=(lines, arr), </div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> interval=1,</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> blit=<span class="keyword">False</span>)</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> ax.set_title(<span class="stringliteral">"100 particles inside a Penning trap"</span>)</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> plt.figtext(</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> 0.5,</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> 0.01,</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="stringliteral">"100 randomly generated particles "</span></div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="stringliteral">"evolving over a time of 50 microseconds."</span>,</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> fontsize=12,</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> horizontalalignment=<span class="stringliteral">"center"</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> </div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> ax.set_xlim3d([-500.0, 500.0])</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> ax.set_xlabel(<span class="stringliteral">"X (micrometers)"</span>)</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> ani.save(<span class="stringliteral">"100_particles.gif"</span>, writer=animation.FFMpegFileWriter(fps=30))</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> plt.show()</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="keywordflow">if</span> __name__ == <span class="stringliteral">"__main__"</span>:</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> animate()</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> ax.set_ylim3d([-500.0, 500.0])</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> ax.set_ylabel(<span class="stringliteral">"Y (micrometers)"</span>)</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> ax.set_zlim3d([-500.0, 500.0])</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> ax.set_zlabel(<span class="stringliteral">"Z (micrometers)"</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> ani = animation.FuncAnimation(</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> fig, update, N, fargs=(lines, arr), interval=1, blit=<span class="keyword">False</span></div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> )</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment"># ani.save("../images/100_particles.gif", writer=animation.FFMpegFileWriter(fps=50))</span></div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> plt.show()</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="keywordflow">if</span> __name__ == <span class="stringliteral">"__main__"</span>:</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> animate()</div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
@ -105,21 +105,23 @@ $(document).ready(function(){initNavTree('bug.html',''); initResizable(); });
|
||||
<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="main_8cpp.html">main.cpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000005"></a>No known bugs </dd>
|
||||
<dd><a class="anchor" id="_bug000006"></a>No known bugs </dd>
|
||||
<dt>File <a class="el" href="Particle_8cpp.html">Particle.cpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000006"></a>No known bugs </dd>
|
||||
<dd><a class="anchor" id="_bug000007"></a>No known bugs </dd>
|
||||
<dt>File <a class="el" href="Particle_8hpp.html">Particle.hpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000002"></a>No known bugs </dd>
|
||||
<dt>File <a class="el" href="PenningTrap_8cpp.html">PenningTrap.cpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000007"></a>No known bugs </dd>
|
||||
<dd><a class="anchor" id="_bug000008"></a>No known bugs </dd>
|
||||
<dt>File <a class="el" href="PenningTrap_8hpp.html">PenningTrap.hpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000003"></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="_bug000008"></a>No known bugs </dd>
|
||||
<dt>File <a class="el" href="utils_8cpp.html">utils.cpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000009"></a>No known bugs </dd>
|
||||
<dt>File <a class="el" href="typedefs_8hpp.html">typedefs.hpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000004"></a>No known bugs </dd>
|
||||
<dt>File <a class="el" href="utils_8cpp.html">utils.cpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000010"></a>No known bugs </dd>
|
||||
<dt>File <a class="el" href="utils_8hpp.html">utils.hpp</a> </dt>
|
||||
<dd><a class="anchor" id="_bug000004"></a>No known bugs </dd>
|
||||
<dd><a class="anchor" id="_bug000005"></a>No known bugs </dd>
|
||||
</dl>
|
||||
</div></div><!-- contents -->
|
||||
</div><!-- PageDoc -->
|
||||
|
||||
@ -105,11 +105,11 @@ $(document).ready(function(){initNavTree('classParticle.html',''); initResizable
|
||||
<p>This is the complete list of members for <a class="el" href="classParticle.html">Particle</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a></td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classParticle.html#a00e108823877a25513ccae7cac011b4c">Particle</a>(double q, double m, arma::vec::fixed< 3 > r_vec, arma::vec::fixed< 3 > v_vec)</td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4">Particle</a>(double q, double m, vec_3d r_vec, vec_3d v_vec)</td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classParticle.html#aa797d319549dc2a0beb06cdbfd430232">PenningTrap</a></td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a></td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a></td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a></td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a></td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a></td><td class="entry"><a class="el" href="classParticle.html">Particle</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
@ -114,9 +114,9 @@ $(document).ready(function(){initNavTree('classParticle.html',''); initResizable
|
||||
<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:a00e108823877a25513ccae7cac011b4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParticle.html#a00e108823877a25513ccae7cac011b4c">Particle</a> (double <a class="el" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a>, double <a class="el" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>, arma::vec::fixed< 3 > <a class="el" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a>, arma::vec::fixed< 3 > <a class="el" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a>)</td></tr>
|
||||
<tr class="memdesc:a00e108823877a25513ccae7cac011b4c"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the particle. <br /></td></tr>
|
||||
<tr class="separator:a00e108823877a25513ccae7cac011b4c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7af9f8d1fef63dd7643b06629ac7bef4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4">Particle</a> (double <a class="el" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">q</a>, double <a class="el" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a>, <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="el" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a>, <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> <a class="el" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a>)</td></tr>
|
||||
<tr class="memdesc:a7af9f8d1fef63dd7643b06629ac7bef4"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the particle. <br /></td></tr>
|
||||
<tr class="separator:a7af9f8d1fef63dd7643b06629ac7bef4"><td class="memSeparator" colspan="2"> </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>
|
||||
@ -126,12 +126,12 @@ Private Attributes</h2></td></tr>
|
||||
<tr class="memitem:aedcc7e1bc53b0e2b1a4a07c9a1b47563"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">m</a></td></tr>
|
||||
<tr class="memdesc:aedcc7e1bc53b0e2b1a4a07c9a1b47563"><td class="mdescLeft"> </td><td class="mdescRight">Mass. <br /></td></tr>
|
||||
<tr class="separator:aedcc7e1bc53b0e2b1a4a07c9a1b47563"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acf1a0f3c978b06d76df5bb4279594467"><td class="memItemLeft" align="right" valign="top">arma::vec::fixed< 3 > </td><td class="memItemRight" valign="bottom"><a class="el" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">r_vec</a></td></tr>
|
||||
<tr class="memdesc:acf1a0f3c978b06d76df5bb4279594467"><td class="mdescLeft"> </td><td class="mdescRight">position <br /></td></tr>
|
||||
<tr class="separator:acf1a0f3c978b06d76df5bb4279594467"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4a5d22c7aeca66f67d083f270cba25df"><td class="memItemLeft" align="right" valign="top">arma::vec::fixed< 3 > </td><td class="memItemRight" valign="bottom"><a class="el" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">v_vec</a></td></tr>
|
||||
<tr class="memdesc:a4a5d22c7aeca66f67d083f270cba25df"><td class="mdescLeft"> </td><td class="mdescRight">velocity <br /></td></tr>
|
||||
<tr class="separator:a4a5d22c7aeca66f67d083f270cba25df"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af9497cd8f2dcad0fad54f571ddb383e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">r_vec</a></td></tr>
|
||||
<tr class="memdesc:af9497cd8f2dcad0fad54f571ddb383e6"><td class="mdescLeft"> </td><td class="mdescRight">position <br /></td></tr>
|
||||
<tr class="separator:af9497cd8f2dcad0fad54f571ddb383e6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a879692772803d6ab65fa4993b54aea6e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">v_vec</a></td></tr>
|
||||
<tr class="memdesc:a879692772803d6ab65fa4993b54aea6e"><td class="mdescLeft"> </td><td class="mdescRight">velocity <br /></td></tr>
|
||||
<tr class="separator:a879692772803d6ab65fa4993b54aea6e"><td class="memSeparator" colspan="2"> </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>
|
||||
@ -142,10 +142,10 @@ Friends</h2></td></tr>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>A class that holds attributes of a particle. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00019">19</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00021">21</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||
<a id="a00e108823877a25513ccae7cac011b4c" name="a00e108823877a25513ccae7cac011b4c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a00e108823877a25513ccae7cac011b4c">◆ </a></span>Particle()</h2>
|
||||
<a id="a7af9f8d1fef63dd7643b06629ac7bef4" name="a7af9f8d1fef63dd7643b06629ac7bef4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7af9f8d1fef63dd7643b06629ac7bef4">◆ </a></span>Particle()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
@ -165,13 +165,13 @@ Friends</h2></td></tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">arma::vec::fixed< 3 > </td>
|
||||
<td class="paramtype"><a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> </td>
|
||||
<td class="paramname"><em>r_vec</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">arma::vec::fixed< 3 > </td>
|
||||
<td class="paramtype"><a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> </td>
|
||||
<td class="paramname"><em>v_vec</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -183,9 +183,18 @@ Friends</h2></td></tr>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Initialize the particle. </p>
|
||||
<p>Initialize the particle with a charge, mass, position and velocity. </p>
|
||||
<p>Initialize the particle with a charge, mass, position and velocity.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">q</td><td>The charge of the particle </td></tr>
|
||||
<tr><td class="paramname">m</td><td>The mass of the particle </td></tr>
|
||||
<tr><td class="paramname">r_vec</td><td>The initial position of the particle </td></tr>
|
||||
<tr><td class="paramname">v_vec</td><td>The initial velocity of the particle </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8cpp_source.html#l00016">16</a> of file <a class="el" href="Particle_8cpp_source.html">Particle.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8cpp_source.html#l00015">15</a> of file <a class="el" href="Particle_8cpp_source.html">Particle.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -212,7 +221,7 @@ Friends</h2></td></tr>
|
||||
|
||||
<p>Make private attributes available for <a class="el" href="classPenningTrap.html" title="A class that simulates a Penning trap.">PenningTrap</a>. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00038">38</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00043">43</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -239,7 +248,7 @@ Friends</h2></td></tr>
|
||||
|
||||
<p>Mass. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00022">22</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00024">24</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -265,12 +274,12 @@ Friends</h2></td></tr>
|
||||
|
||||
<p>Charge. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00021">21</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00023">23</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="acf1a0f3c978b06d76df5bb4279594467" name="acf1a0f3c978b06d76df5bb4279594467"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acf1a0f3c978b06d76df5bb4279594467">◆ </a></span>r_vec</h2>
|
||||
<a id="af9497cd8f2dcad0fad54f571ddb383e6" name="af9497cd8f2dcad0fad54f571ddb383e6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af9497cd8f2dcad0fad54f571ddb383e6">◆ </a></span>r_vec</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
@ -279,7 +288,7 @@ Friends</h2></td></tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">arma::vec::fixed<3> Particle::r_vec</td>
|
||||
<td class="memname"><a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> Particle::r_vec</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@ -291,12 +300,12 @@ Friends</h2></td></tr>
|
||||
|
||||
<p>position </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00023">23</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00025">25</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a4a5d22c7aeca66f67d083f270cba25df" name="a4a5d22c7aeca66f67d083f270cba25df"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4a5d22c7aeca66f67d083f270cba25df">◆ </a></span>v_vec</h2>
|
||||
<a id="a879692772803d6ab65fa4993b54aea6e" name="a879692772803d6ab65fa4993b54aea6e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a879692772803d6ab65fa4993b54aea6e">◆ </a></span>v_vec</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
@ -305,7 +314,7 @@ Friends</h2></td></tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">arma::vec::fixed<3> Particle::v_vec</td>
|
||||
<td class="memname"><a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a> Particle::v_vec</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@ -317,7 +326,7 @@ Friends</h2></td></tr>
|
||||
|
||||
<p>velocity </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00024">24</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="Particle_8hpp_source.html#l00026">26</a> of file <a class="el" href="Particle_8hpp_source.html">Particle.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
var classParticle =
|
||||
[
|
||||
[ "Particle", "classParticle.html#a00e108823877a25513ccae7cac011b4c", null ],
|
||||
[ "Particle", "classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4", null ],
|
||||
[ "PenningTrap", "classParticle.html#aa797d319549dc2a0beb06cdbfd430232", null ],
|
||||
[ "m", "classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563", null ],
|
||||
[ "q", "classParticle.html#a566dcc1de4bdc01251776948798ea8e1", null ],
|
||||
[ "r_vec", "classParticle.html#acf1a0f3c978b06d76df5bb4279594467", null ],
|
||||
[ "v_vec", "classParticle.html#a4a5d22c7aeca66f67d083f270cba25df", null ]
|
||||
[ "r_vec", "classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6", null ],
|
||||
[ "v_vec", "classParticle.html#a879692772803d6ab65fa4993b54aea6e", null ]
|
||||
];
|
||||
@ -107,19 +107,27 @@ $(document).ready(function(){initNavTree('classPenningTrap.html',''); initResiza
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">add_particle</a>(Particle particle)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">B_0</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">d</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965">evolve_forward_euler</a>(double dt)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">evolve_RK4</a>(double dt)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">external_B_field</a>(arma::vec r)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">external_E_field</a>(arma::vec r)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">force_on_particle</a>(int i, int j)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_d</b>() (defined in <a class="el" href="classPenningTrap.html">PenningTrap</a>)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>get_particle</b>(int i) (defined in <a class="el" href="classPenningTrap.html">PenningTrap</a>)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560">PenningTrap</a>(double B_0=T, double V_0=25.*V/1000., double d=500.)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">total_force</a>(int i)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">total_force_external</a>(int i)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">total_force_particles</a>(int i)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">V_0</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e">evolve_forward_euler</a>(double dt, bool particle_interaction=true)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e">evolve_RK4</a>(double dt, bool particle_interaction=true)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">external_B_field</a>(vec_3d r)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">external_E_field</a>(vec_3d r)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">force_on_particle</a>(unsigned int i, unsigned int j)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">fraction_of_particles_left</a>(double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">k_r</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">k_v</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">particles</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#ae670d7de621acdb343b01af098086f63">PenningTrap</a>(double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a763700316b502d5900e587c1f61e6bf1">PenningTrap</a>(unsigned int i, double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a67139e04ef69c0bcffde8f30f67cbf73">PenningTrap</a>(std::vector< Particle > particles, double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648">r_func</a>(unsigned int i, unsigned int j, double dt)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">simulate</a>(double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">t</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">total_force</a>(unsigned int i)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">total_force_external</a>(unsigned int i)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">total_force_particles</a>(unsigned int i)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">V_0</a></td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e">v_func</a>(unsigned int i, unsigned int j, double dt)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">write_simulation_to_dir</a>(std::string path, double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</td><td class="entry"><a class="el" href="classPenningTrap.html">PenningTrap</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,17 +1,27 @@
|
||||
var classPenningTrap =
|
||||
[
|
||||
[ "PenningTrap", "classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560", null ],
|
||||
[ "PenningTrap", "classPenningTrap.html#ae670d7de621acdb343b01af098086f63", null ],
|
||||
[ "PenningTrap", "classPenningTrap.html#a763700316b502d5900e587c1f61e6bf1", null ],
|
||||
[ "PenningTrap", "classPenningTrap.html#a67139e04ef69c0bcffde8f30f67cbf73", null ],
|
||||
[ "add_particle", "classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8", null ],
|
||||
[ "evolve_forward_euler", "classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965", null ],
|
||||
[ "evolve_RK4", "classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9", null ],
|
||||
[ "external_B_field", "classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784", null ],
|
||||
[ "external_E_field", "classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b", null ],
|
||||
[ "force_on_particle", "classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182", null ],
|
||||
[ "total_force", "classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be", null ],
|
||||
[ "total_force_external", "classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee", null ],
|
||||
[ "total_force_particles", "classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d", null ],
|
||||
[ "evolve_forward_euler", "classPenningTrap.html#ab9ea97a406534bbe621a95215144875e", null ],
|
||||
[ "evolve_RK4", "classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e", null ],
|
||||
[ "external_B_field", "classPenningTrap.html#acbf065c9c125682329ad82a8d166554c", null ],
|
||||
[ "external_E_field", "classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9", null ],
|
||||
[ "force_on_particle", "classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce", null ],
|
||||
[ "fraction_of_particles_left", "classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b", null ],
|
||||
[ "r_func", "classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648", null ],
|
||||
[ "simulate", "classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854", null ],
|
||||
[ "total_force", "classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8", null ],
|
||||
[ "total_force_external", "classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56", null ],
|
||||
[ "total_force_particles", "classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b", null ],
|
||||
[ "v_func", "classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e", null ],
|
||||
[ "write_simulation_to_dir", "classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57", null ],
|
||||
[ "B_0", "classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716", null ],
|
||||
[ "d", "classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2", null ],
|
||||
[ "k_r", "classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640", null ],
|
||||
[ "k_v", "classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4", null ],
|
||||
[ "particles", "classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f", null ],
|
||||
[ "V_0", "classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89", null ]
|
||||
[ "t", "classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e", null ],
|
||||
[ "V_0", "classPenningTrap.html#aaf105828121c4a33cc2b217453c20317", null ]
|
||||
];
|
||||
@ -115,6 +115,8 @@ Files</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="PenningTrap_8cpp.html">PenningTrap.cpp</a> <a href="PenningTrap_8cpp_source.html">[code]</a></td></tr>
|
||||
<tr class="memdesc:PenningTrap_8cpp"><td class="mdescLeft"> </td><td class="mdescRight">The implementation of the <a class="el" href="classPenningTrap.html" title="A class that simulates a Penning trap.">PenningTrap</a> class. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>plot_particles_left.py</b> <a href="plot__particles__left_8py_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </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"> </td><td class="mdescRight">The test suite for the project. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
|
||||
@ -4,6 +4,7 @@ var dir_68267d1309a1af8e8297ef4c3efbcdba =
|
||||
[ "main.cpp", "main_8cpp.html", null ],
|
||||
[ "Particle.cpp", "Particle_8cpp.html", null ],
|
||||
[ "PenningTrap.cpp", "PenningTrap_8cpp.html", null ],
|
||||
[ "plot_particles_left.py", "plot__particles__left_8py_source.html", null ],
|
||||
[ "test_suite.cpp", "test__suite_8cpp.html", "test__suite_8cpp" ],
|
||||
[ "utils.cpp", "utils_8cpp.html", "utils_8cpp" ]
|
||||
];
|
||||
@ -113,6 +113,9 @@ Files</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="PenningTrap_8hpp.html">PenningTrap.hpp</a> <a href="PenningTrap_8hpp_source.html">[code]</a></td></tr>
|
||||
<tr class="memdesc:PenningTrap_8hpp"><td class="mdescLeft"> </td><td class="mdescRight">A class for simulating a Penning trap. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </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"> </td><td class="mdescRight">Useful typedefs for cleaner code. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </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"> </td><td class="mdescRight">Function prototypes and macros that are useful. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
|
||||
@ -3,5 +3,6 @@ var dir_d44c64559bbebec7f509842c48db8b23 =
|
||||
[ "constants.hpp", "constants_8hpp.html", "constants_8hpp" ],
|
||||
[ "Particle.hpp", "Particle_8hpp.html", "Particle_8hpp" ],
|
||||
[ "PenningTrap.hpp", "PenningTrap_8hpp.html", "PenningTrap_8hpp" ],
|
||||
[ "typedefs.hpp", "typedefs_8hpp.html", "typedefs_8hpp" ],
|
||||
[ "utils.hpp", "utils_8hpp.html", "utils_8hpp" ]
|
||||
];
|
||||
@ -107,14 +107,16 @@ $(document).ready(function(){initNavTree('files.html',''); initResizable(); });
|
||||
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </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;"> </span><a href="Particle_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="Particle_8hpp.html" target="_self">Particle.hpp</a></td><td class="desc">A class that holds the properties of a particle </td></tr>
|
||||
<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="PenningTrap_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="PenningTrap_8hpp.html" target="_self">PenningTrap.hpp</a></td><td class="desc">A class for simulating a Penning trap </td></tr>
|
||||
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </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="odd"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')"> </span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="animate__100__particles_8py_source.html"><span class="icondoc"></span></a><b>animate_100_particles.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;"> </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 for this project </td></tr>
|
||||
<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="Particle_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Particle_8cpp.html" target="_self">Particle.cpp</a></td><td class="desc">The implementation of the <a class="el" href="classParticle.html" title="A class that holds attributes of a particle.">Particle</a> class </td></tr>
|
||||
<tr id="row_1_3_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="PenningTrap_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="PenningTrap_8cpp.html" target="_self">PenningTrap.cpp</a></td><td class="desc">The implementation of the <a class="el" href="classPenningTrap.html" title="A class that simulates a Penning trap.">PenningTrap</a> class </td></tr>
|
||||
<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </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">The test suite for the project </td></tr>
|
||||
<tr id="row_1_5_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </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>
|
||||
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </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_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </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;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')"> </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:32px;display:inline-block;"> </span><a href="animate__100__particles_8py_source.html"><span class="icondoc"></span></a><b>animate_100_particles.py</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </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 for this project </td></tr>
|
||||
<tr id="row_1_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="Particle_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Particle_8cpp.html" target="_self">Particle.cpp</a></td><td class="desc">The implementation of the <a class="el" href="classParticle.html" title="A class that holds attributes of a particle.">Particle</a> class </td></tr>
|
||||
<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="PenningTrap_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="PenningTrap_8cpp.html" target="_self">PenningTrap.cpp</a></td><td class="desc">The implementation of the <a class="el" href="classPenningTrap.html" title="A class that simulates a Penning trap.">PenningTrap</a> class </td></tr>
|
||||
<tr id="row_1_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="plot__particles__left_8py_source.html"><span class="icondoc"></span></a><b>plot_particles_left.py</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </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">The test suite for the project </td></tr>
|
||||
<tr id="row_1_6_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </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 -->
|
||||
|
||||
@ -102,22 +102,30 @@ $(document).ready(function(){initNavTree('functions.html',''); initResizable();
|
||||
<li>add_particle() : <a class="el" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap</a></li>
|
||||
<li>B_0 : <a class="el" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">PenningTrap</a></li>
|
||||
<li>d : <a class="el" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">PenningTrap</a></li>
|
||||
<li>evolve_forward_euler() : <a class="el" href="classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965">PenningTrap</a></li>
|
||||
<li>evolve_RK4() : <a class="el" href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">PenningTrap</a></li>
|
||||
<li>external_B_field() : <a class="el" href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">PenningTrap</a></li>
|
||||
<li>external_E_field() : <a class="el" href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">PenningTrap</a></li>
|
||||
<li>force_on_particle() : <a class="el" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">PenningTrap</a></li>
|
||||
<li>evolve_forward_euler() : <a class="el" href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e">PenningTrap</a></li>
|
||||
<li>evolve_RK4() : <a class="el" href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e">PenningTrap</a></li>
|
||||
<li>external_B_field() : <a class="el" href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">PenningTrap</a></li>
|
||||
<li>external_E_field() : <a class="el" href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">PenningTrap</a></li>
|
||||
<li>force_on_particle() : <a class="el" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">PenningTrap</a></li>
|
||||
<li>fraction_of_particles_left() : <a class="el" href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">PenningTrap</a></li>
|
||||
<li>k_r : <a class="el" href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">PenningTrap</a></li>
|
||||
<li>k_v : <a class="el" href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">PenningTrap</a></li>
|
||||
<li>m : <a class="el" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">Particle</a></li>
|
||||
<li>Particle() : <a class="el" href="classParticle.html#a00e108823877a25513ccae7cac011b4c">Particle</a></li>
|
||||
<li>Particle() : <a class="el" href="classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4">Particle</a></li>
|
||||
<li>particles : <a class="el" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">PenningTrap</a></li>
|
||||
<li>PenningTrap : <a class="el" href="classParticle.html#aa797d319549dc2a0beb06cdbfd430232">Particle</a>, <a class="el" href="classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560">PenningTrap</a></li>
|
||||
<li>PenningTrap : <a class="el" href="classParticle.html#aa797d319549dc2a0beb06cdbfd430232">Particle</a>, <a class="el" href="classPenningTrap.html#ae670d7de621acdb343b01af098086f63">PenningTrap</a></li>
|
||||
<li>q : <a class="el" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">Particle</a></li>
|
||||
<li>r_vec : <a class="el" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">Particle</a></li>
|
||||
<li>total_force() : <a class="el" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">PenningTrap</a></li>
|
||||
<li>total_force_external() : <a class="el" href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">PenningTrap</a></li>
|
||||
<li>total_force_particles() : <a class="el" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">PenningTrap</a></li>
|
||||
<li>V_0 : <a class="el" href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">PenningTrap</a></li>
|
||||
<li>v_vec : <a class="el" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">Particle</a></li>
|
||||
<li>r_func() : <a class="el" href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648">PenningTrap</a></li>
|
||||
<li>r_vec : <a class="el" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">Particle</a></li>
|
||||
<li>simulate() : <a class="el" href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">PenningTrap</a></li>
|
||||
<li>t : <a class="el" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">PenningTrap</a></li>
|
||||
<li>total_force() : <a class="el" href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">PenningTrap</a></li>
|
||||
<li>total_force_external() : <a class="el" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">PenningTrap</a></li>
|
||||
<li>total_force_particles() : <a class="el" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">PenningTrap</a></li>
|
||||
<li>V_0 : <a class="el" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">PenningTrap</a></li>
|
||||
<li>v_func() : <a class="el" href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e">PenningTrap</a></li>
|
||||
<li>v_vec : <a class="el" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">Particle</a></li>
|
||||
<li>write_simulation_to_dir() : <a class="el" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">PenningTrap</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
||||
@ -100,16 +100,21 @@ $(document).ready(function(){initNavTree('functions_func.html',''); initResizabl
|
||||
<div class="contents">
|
||||
 <ul>
|
||||
<li>add_particle() : <a class="el" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap</a></li>
|
||||
<li>evolve_forward_euler() : <a class="el" href="classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965">PenningTrap</a></li>
|
||||
<li>evolve_RK4() : <a class="el" href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">PenningTrap</a></li>
|
||||
<li>external_B_field() : <a class="el" href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">PenningTrap</a></li>
|
||||
<li>external_E_field() : <a class="el" href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">PenningTrap</a></li>
|
||||
<li>force_on_particle() : <a class="el" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">PenningTrap</a></li>
|
||||
<li>Particle() : <a class="el" href="classParticle.html#a00e108823877a25513ccae7cac011b4c">Particle</a></li>
|
||||
<li>PenningTrap() : <a class="el" href="classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560">PenningTrap</a></li>
|
||||
<li>total_force() : <a class="el" href="classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be">PenningTrap</a></li>
|
||||
<li>total_force_external() : <a class="el" href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">PenningTrap</a></li>
|
||||
<li>total_force_particles() : <a class="el" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">PenningTrap</a></li>
|
||||
<li>evolve_forward_euler() : <a class="el" href="classPenningTrap.html#ab9ea97a406534bbe621a95215144875e">PenningTrap</a></li>
|
||||
<li>evolve_RK4() : <a class="el" href="classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e">PenningTrap</a></li>
|
||||
<li>external_B_field() : <a class="el" href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">PenningTrap</a></li>
|
||||
<li>external_E_field() : <a class="el" href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">PenningTrap</a></li>
|
||||
<li>force_on_particle() : <a class="el" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">PenningTrap</a></li>
|
||||
<li>fraction_of_particles_left() : <a class="el" href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">PenningTrap</a></li>
|
||||
<li>Particle() : <a class="el" href="classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4">Particle</a></li>
|
||||
<li>PenningTrap() : <a class="el" href="classPenningTrap.html#ae670d7de621acdb343b01af098086f63">PenningTrap</a></li>
|
||||
<li>r_func() : <a class="el" href="classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648">PenningTrap</a></li>
|
||||
<li>simulate() : <a class="el" href="classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854">PenningTrap</a></li>
|
||||
<li>total_force() : <a class="el" href="classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8">PenningTrap</a></li>
|
||||
<li>total_force_external() : <a class="el" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">PenningTrap</a></li>
|
||||
<li>total_force_particles() : <a class="el" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">PenningTrap</a></li>
|
||||
<li>v_func() : <a class="el" href="classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e">PenningTrap</a></li>
|
||||
<li>write_simulation_to_dir() : <a class="el" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">PenningTrap</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
||||
@ -101,12 +101,15 @@ $(document).ready(function(){initNavTree('functions_vars.html',''); initResizabl
|
||||
 <ul>
|
||||
<li>B_0 : <a class="el" href="classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716">PenningTrap</a></li>
|
||||
<li>d : <a class="el" href="classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2">PenningTrap</a></li>
|
||||
<li>k_r : <a class="el" href="classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640">PenningTrap</a></li>
|
||||
<li>k_v : <a class="el" href="classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4">PenningTrap</a></li>
|
||||
<li>m : <a class="el" href="classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563">Particle</a></li>
|
||||
<li>particles : <a class="el" href="classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f">PenningTrap</a></li>
|
||||
<li>q : <a class="el" href="classParticle.html#a566dcc1de4bdc01251776948798ea8e1">Particle</a></li>
|
||||
<li>r_vec : <a class="el" href="classParticle.html#acf1a0f3c978b06d76df5bb4279594467">Particle</a></li>
|
||||
<li>V_0 : <a class="el" href="classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89">PenningTrap</a></li>
|
||||
<li>v_vec : <a class="el" href="classParticle.html#a4a5d22c7aeca66f67d083f270cba25df">Particle</a></li>
|
||||
<li>r_vec : <a class="el" href="classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6">Particle</a></li>
|
||||
<li>t : <a class="el" href="classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e">PenningTrap</a></li>
|
||||
<li>V_0 : <a class="el" href="classPenningTrap.html#aaf105828121c4a33cc2b217453c20317">PenningTrap</a></li>
|
||||
<li>v_vec : <a class="el" href="classParticle.html#a879692772803d6ab65fa4993b54aea6e">Particle</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
||||
@ -99,14 +99,20 @@ $(document).ready(function(){initNavTree('globals.html',''); initResizable(); })
|
||||
|
||||
<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__ : <a class="el" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">utils.hpp</a></li>
|
||||
<li>arma_vector_close_to() : <a class="el" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">utils.hpp</a>, <a class="el" href="utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a">utils.cpp</a></li>
|
||||
<li>ASSERT : <a class="el" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">utils.hpp</a></li>
|
||||
<li>DEBUG : <a class="el" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">utils.hpp</a></li>
|
||||
<li>K_E : <a class="el" href="constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb">constants.hpp</a></li>
|
||||
<li>m_assert() : <a class="el" href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">utils.hpp</a>, <a class="el" href="utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b">utils.cpp</a></li>
|
||||
<li>mkpath() : <a class="el" href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">utils.hpp</a>, <a class="el" href="utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de">utils.cpp</a></li>
|
||||
<li>scientific_format() : <a class="el" href="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384">utils.hpp</a>, <a class="el" href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">utils.cpp</a></li>
|
||||
<li>sim_arr : <a class="el" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">typedefs.hpp</a></li>
|
||||
<li>sim_cols : <a class="el" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">typedefs.hpp</a></li>
|
||||
<li>sim_rows : <a class="el" href="typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66">typedefs.hpp</a></li>
|
||||
<li>T : <a class="el" href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">constants.hpp</a></li>
|
||||
<li>V : <a class="el" href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">constants.hpp</a></li>
|
||||
<li>vec_3d : <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">typedefs.hpp</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
||||
@ -99,6 +99,7 @@ $(document).ready(function(){initNavTree('globals_defs.html',''); initResizable(
|
||||
|
||||
<div class="contents">
|
||||
 <ul>
|
||||
<li>__METHOD_NAME__ : <a class="el" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">utils.hpp</a></li>
|
||||
<li>ASSERT : <a class="el" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">utils.hpp</a></li>
|
||||
<li>DEBUG : <a class="el" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">utils.hpp</a></li>
|
||||
<li>K_E : <a class="el" href="constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb">constants.hpp</a></li>
|
||||
|
||||
@ -101,6 +101,7 @@ $(document).ready(function(){initNavTree('globals_func.html',''); initResizable(
|
||||
 <ul>
|
||||
<li>arma_vector_close_to() : <a class="el" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">utils.hpp</a>, <a class="el" href="utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a">utils.cpp</a></li>
|
||||
<li>m_assert() : <a class="el" href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">utils.hpp</a>, <a class="el" href="utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b">utils.cpp</a></li>
|
||||
<li>mkpath() : <a class="el" href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">utils.hpp</a>, <a class="el" href="utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de">utils.cpp</a></li>
|
||||
<li>scientific_format() : <a class="el" href="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384">utils.hpp</a>, <a class="el" href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">utils.cpp</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
|
||||
116
docs/globals_type.html
Normal file
116
docs/globals_type.html
Normal 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>Penning Trap Simulation: 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">Penning Trap Simulation
|
||||
</div>
|
||||
<div id="projectbrief">Simulate particle behavior inside a Penning Trap</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&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&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&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('globals_type.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">
|
||||
 <ul>
|
||||
<li>sim_arr : <a class="el" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">typedefs.hpp</a></li>
|
||||
<li>sim_cols : <a class="el" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">typedefs.hpp</a></li>
|
||||
<li>sim_rows : <a class="el" href="typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66">typedefs.hpp</a></li>
|
||||
<li>vec_3d : <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">typedefs.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>
|
||||
@ -100,17 +100,22 @@ $(document).ready(function(){initNavTree('main_8cpp.html',''); initResizable();
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<a href="#func-members">Functions</a> |
|
||||
<a href="#var-members">Variables</a> </div>
|
||||
<div class="headertitle"><div class="title">main.cpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>The main program for this project.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <fstream></code><br />
|
||||
<div class="textblock"><code>#include <cmath></code><br />
|
||||
<code>#include <fstream></code><br />
|
||||
<code>#include <omp.h></code><br />
|
||||
<code>#include <string></code><br />
|
||||
<code>#include <sys/stat.h></code><br />
|
||||
<code>#include <vector></code><br />
|
||||
<code>#include "<a class="el" href="PenningTrap_8hpp_source.html">PenningTrap.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="utils_8hpp_source.html">utils.hpp</a>"</code><br />
|
||||
</div>
|
||||
<p><a href="main_8cpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
@ -127,10 +132,27 @@ Macros</h2></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:a8fdbe2d5a872e50ef5ec1263243589d6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a8fdbe2d5a872e50ef5ec1263243589d6">simulate_single_particle</a> ()</td></tr>
|
||||
<tr class="separator:a8fdbe2d5a872e50ef5ec1263243589d6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a783789519f97c6430081171cacb0ffb1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a783789519f97c6430081171cacb0ffb1">simulate_two_particles</a> ()</td></tr>
|
||||
<tr class="separator:a783789519f97c6430081171cacb0ffb1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac67e0d59227856c4d42e7d01c75e0ad2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ac67e0d59227856c4d42e7d01c75e0ad2">simulate_single_particle_with_different_steps</a> ()</td></tr>
|
||||
<tr class="separator:ac67e0d59227856c4d42e7d01c75e0ad2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a213713d6ecc02a32b588ffd179dc7513"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a213713d6ecc02a32b588ffd179dc7513">simulate_100_particles</a> ()</td></tr>
|
||||
<tr class="separator:a213713d6ecc02a32b588ffd179dc7513"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a330668384dc073980ba11116309bacc5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a330668384dc073980ba11116309bacc5">simulate_100_particles_with_time_potential</a> ()</td></tr>
|
||||
<tr class="separator:a330668384dc073980ba11116309bacc5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
|
||||
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
|
||||
Variables</h2></td></tr>
|
||||
<tr class="memitem:a87da4ef9f2cd753579484824310467b8"><td class="memItemLeft" align="right" valign="top"><a id="a87da4ef9f2cd753579484824310467b8" name="a87da4ef9f2cd753579484824310467b8"></a>
|
||||
<a class="el" href="classParticle.html">Particle</a> </td><td class="memItemRight" valign="bottom"><b>p1</b> (CHARGE, MASS, <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{20., 0., 20.}, <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{0., 25., 0.})</td></tr>
|
||||
<tr class="separator:a87da4ef9f2cd753579484824310467b8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a90f661586eb3c318fdca6f95ebc4fc46"><td class="memItemLeft" align="right" valign="top"><a id="a90f661586eb3c318fdca6f95ebc4fc46" name="a90f661586eb3c318fdca6f95ebc4fc46"></a>
|
||||
<a class="el" href="classParticle.html">Particle</a> </td><td class="memItemRight" valign="bottom"><b>p2</b> (CHARGE, MASS, <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{25., 25., 0.}, <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{0., 40., 5.})</td></tr>
|
||||
<tr class="separator:a90f661586eb3c318fdca6f95ebc4fc46"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>The main program for this project. </p>
|
||||
@ -138,7 +160,7 @@ Functions</h2></td></tr>
|
||||
<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#_bug000005">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000006">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
|
||||
<p class="definition">Definition in file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
@ -154,7 +176,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</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>
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00025">25</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -170,7 +192,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00022">22</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00026">26</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -186,7 +208,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00020">20</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00024">24</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -202,7 +224,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00019">19</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00023">23</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -222,7 +244,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00077">77</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00124">124</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -241,7 +263,83 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00024">24</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00077">77</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a330668384dc073980ba11116309bacc5" name="a330668384dc073980ba11116309bacc5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a330668384dc073980ba11116309bacc5">◆ </a></span>simulate_100_particles_with_time_potential()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void simulate_100_particles_with_time_potential </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#l00091">91</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a8fdbe2d5a872e50ef5ec1263243589d6" name="a8fdbe2d5a872e50ef5ec1263243589d6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8fdbe2d5a872e50ef5ec1263243589d6">◆ </a></span>simulate_single_particle()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void simulate_single_particle </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#l00031">31</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ac67e0d59227856c4d42e7d01c75e0ad2" name="ac67e0d59227856c4d42e7d01c75e0ad2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac67e0d59227856c4d42e7d01c75e0ad2">◆ </a></span>simulate_single_particle_with_different_steps()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void simulate_single_particle_with_different_steps </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#l00055">55</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a783789519f97c6430081171cacb0ffb1" name="a783789519f97c6430081171cacb0ffb1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a783789519f97c6430081171cacb0ffb1">◆ </a></span>simulate_two_particles()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void simulate_two_particles </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#l00042">42</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -102,87 +102,149 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html',''); initResiza
|
||||
</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="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <fstream></span></div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include <omp.h></span></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include <sys/stat.h></span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include "<a class="code" href="PenningTrap_8hpp.html">PenningTrap.hpp</a>"</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">#define PARTICLES 100</span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#define N 10000</span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#define CHARGE 1.</span></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define MASS 40. </span><span class="comment">// unit: amu</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="keywordtype">void</span> simulate_100_particles()</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>{</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap;</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <cmath></span></div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include <fstream></span></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include <omp.h></span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include <sys/stat.h></span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <vector></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 "<a class="code" href="PenningTrap_8hpp.html">PenningTrap.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include "<a class="code" href="utils_8hpp.html">utils.hpp</a>"</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="preprocessor">#define PARTICLES 100</span></div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#define N 10000</span></div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#define CHARGE 1.</span></div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#define MASS 40. </span><span class="comment">// unit: amu</span></div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Add particles inside trap</span></div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < PARTICLES; i++) {</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> arma::vec r = arma::vec(3).randn() * 0.1 *</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> trap.get_d(); <span class="comment">// random initial position</span></div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> arma::vec v = arma::vec(3).randn() * 0.1 *</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> trap.get_d(); <span class="comment">// random initial velocity</span></div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> trap.<a class="code hl_function" href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">add_particle</a>(<a class="code hl_class" href="classParticle.html">Particle</a>(CHARGE, MASS, r, v));</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> }</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">double</span> time = 50.; <span class="comment">// microseconds</span></div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">double</span> dt = time / (double)N;</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">auto</span> res = <span class="keyword">new</span> arma::vec::fixed<3>[PARTICLES][N];</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><a class="code hl_class" href="classParticle.html">Particle</a> p1(CHARGE, MASS, <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{20., 0., 20.}, <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{0., 25., 0.});</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><a class="code hl_class" href="classParticle.html">Particle</a> p2(CHARGE, MASS, <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{25., 25., 0.}, <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>{0., 40., 5.});</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keywordtype">void</span> simulate_single_particle()</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> <a class="code hl_define" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">DEBUG</a>(<span class="stringliteral">"Inside single particle sim"</span>);</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap(std::vector<Particle>{p1});</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="keywordtype">double</span> time = 50.; <span class="comment">// microseconds</span></div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_define" href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">DEBUG</a>(<span class="stringliteral">"Write to dir"</span>);</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> trap.write_simulation_to_dir(<span class="stringliteral">"output/simulate_single_particle"</span>, time, N);</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>}</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">int</span> counter = 0;</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">// Get the path of all particles</span></div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j < N; j++) {</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#pragma omp parallel for</span></div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < PARTICLES; i++) {</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> res[i][j] = trap.get_particle(i);</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> trap.<a class="code hl_function" href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">evolve_RK4</a>(dt);</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> </div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> std::cout << counter << std::endl;</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keywordtype">void</span> simulate_two_particles()</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> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap_no_interaction(std::vector<Particle>{p1, p2});</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap_with_interaction(std::vector<Particle>{p1, p2});</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="keywordtype">double</span> time = 50.; <span class="comment">// microseconds</span></div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> trap_no_interaction.<a class="code hl_function" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">write_simulation_to_dir</a>(</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="stringliteral">"output/simulate_2_particles/no_interaction"</span>, time, N, <span class="stringliteral">"rk4"</span>, <span class="keyword">false</span>);</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> trap_with_interaction.write_simulation_to_dir(</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="stringliteral">"output/simulate_2_particles/with_interaction"</span>, time, N);</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> </div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> arma::vec::fixed<3> *cur_row;</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> arma::vec::fixed<3> cur_elem;</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keywordtype">void</span> simulate_single_particle_with_different_steps()</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>{</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> mkdir(<span class="stringliteral">"output"</span>, 0777);</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> mkdir(<span class="stringliteral">"output/simulate_100_particles"</span>, 0777);</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> std::ofstream ofile;</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">// Write particle paths to file</span></div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor">#pragma omp parallel for private(cur_row, cur_elem, ofile)</span></div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < PARTICLES; i++) {</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> cur_row = res[i];</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> ofile.open(<span class="stringliteral">"output/simulate_100_particles/p"</span> + std::to_string(i) + <span class="stringliteral">".txt"</span>);</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j < N; j++) {</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> cur_elem = cur_row[j];</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> ofile << cur_elem(0) << <span class="stringliteral">","</span> << cur_elem(1) << <span class="stringliteral">","</span> << cur_elem(2)</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> << <span class="stringliteral">"\n"</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> ofile.close();</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">double</span> time = 50; <span class="comment">// microseconds</span></div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 4; i++) {</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">int</span> steps = 4000 * (i + 1);</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap(std::vector<Particle>{p1});</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> trap.<a class="code hl_function" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">write_simulation_to_dir</a>(<span class="stringliteral">"output/N_steps/RK4/"</span> +</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> std::to_string(steps) + <span class="stringliteral">"_steps"</span>,</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> time, steps, <span class="stringliteral">"rk4"</span>, <span class="keyword">false</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> </div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 4; i++) {</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordtype">int</span> steps = 4000 * (i + 1);</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap(std::vector<Particle>{p1});</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> trap.<a class="code hl_function" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">write_simulation_to_dir</a>(<span class="stringliteral">"output/N_steps/euler/"</span> +</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> std::to_string(steps) + <span class="stringliteral">"_steps"</span>,</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> time, steps, <span class="stringliteral">"euler"</span>, <span class="keyword">false</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>}</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><span class="keywordtype">int</span> main()</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="keywordtype">void</span> simulate_100_particles()</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span>{</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">double</span> start = omp_get_wtime();</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> simulate_100_particles();</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="keywordtype">double</span> end = omp_get_wtime();</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> std::cout << <span class="stringliteral">"Time: "</span> << end - start << <span class="stringliteral">" seconds"</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span>}</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap((<span class="keywordtype">unsigned</span>)100, <a class="code hl_define" href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a>,</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> [](<span class="keywordtype">double</span> t) {</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">return</span> 25. * <a class="code hl_define" href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">V</a> / 1000. *</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> (1. + .4 * std::cos(1.5 * t));</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> 500., 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="keywordtype">double</span> time = 500.; <span class="comment">// microseconds</span></div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> trap.<a class="code hl_function" href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">write_simulation_to_dir</a>(<span class="stringliteral">"output/simulate_100_particles"</span>, time, N*5);</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> </div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="keywordtype">void</span> simulate_100_particles_with_time_potential()</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>{</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">double</span> amplitudes[]{.1, .4, .7};</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="keywordtype">double</span> freq_start = .2;</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">double</span> freq_end = 2.5;</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">double</span> freq_increment = .02;</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">size_t</span> freq_iterations = (size_t) ((freq_end - freq_start) / freq_increment);</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> std::string path = <span class="stringliteral">"output/time_dependent_potential/"</span>;</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_function" href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">mkpath</a>(path);</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> std::ofstream ofile;</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">for</span> (<span class="keywordtype">double</span> f : amplitudes) {</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> ofile.open(path + <span class="stringliteral">"f_"</span> + std::to_string(f) + <span class="stringliteral">".txt"</span>);</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor"> #pragma omp parallel for ordered schedule(static, 1)</span></div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i < freq_iterations; i++) {</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">double</span> freq = freq_start + i*freq_increment;</div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap((<span class="keywordtype">unsigned</span>)100, <a class="code hl_define" href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a>,</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> [f, freq](<span class="keywordtype">double</span> t) {</div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> (25. * <a class="code hl_define" href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">V</a> / 1000.) *</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> (1. + f * std::cos(freq * t));</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> 500., 0.);</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordtype">double</span> res = trap.<a class="code hl_function" href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">fraction_of_particles_left</a>(500., 40000, <span class="stringliteral">"rk4"</span>, <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor"> #pragma omp ordered</span></div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> ofile << freq << <span class="stringliteral">","</span> << res << <span class="stringliteral">"\n"</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> ofile.close();</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>}</div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="keywordtype">int</span> main()</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> simulate_single_particle();</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> simulate_two_particles();</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> simulate_single_particle_with_different_steps();</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="keywordtype">double</span> start = omp_get_wtime();</div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">//simulate_100_particles();</span></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> simulate_100_particles_with_time_potential();</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">double</span> end = omp_get_wtime();</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> std::cout << <span class="stringliteral">"Time: "</span> << end - start << <span class="stringliteral">" seconds"</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div>
|
||||
<div class="ttc" id="aPenningTrap_8hpp_html"><div class="ttname"><a href="PenningTrap_8hpp.html">PenningTrap.hpp</a></div><div class="ttdoc">A class for simulating a Penning trap.</div></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00019">Particle.hpp:19</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00029">PenningTrap.hpp:29</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a6e9776ff5b149f01080800716455d7c8"><div class="ttname"><a href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a></div><div class="ttdeci">void add_particle(Particle particle)</div><div class="ttdoc">Add a particle to the system.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00027">PenningTrap.cpp:27</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ab891b839c40eeb38d8a2a636c70090a9"><div class="ttname"><a href="classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9">PenningTrap::evolve_RK4</a></div><div class="ttdeci">void evolve_RK4(double dt)</div><div class="ttdoc">Go forward one timestep using the RK4 method.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00104">PenningTrap.cpp:104</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00021">Particle.hpp:21</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00030">PenningTrap.hpp:30</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a0194be61c956a9259c747c23e4163c5b"><div class="ttname"><a href="classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b">PenningTrap::fraction_of_particles_left</a></div><div class="ttdeci">double fraction_of_particles_left(double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</div><div class="ttdoc">Simulate and calculate what fraction of particles are still left inside the Penning trap after the si...</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00266">PenningTrap.cpp:266</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_abbb832a85139b1a56ebde57d7b8f9a57"><div class="ttname"><a href="classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57">PenningTrap::write_simulation_to_dir</a></div><div class="ttdeci">void write_simulation_to_dir(std::string path, double time, unsigned int steps, std::string method="rk4", bool particle_interaction=true)</div><div class="ttdoc">Simulate and write the displacement of all particles to files.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00240">PenningTrap.cpp:240</a></div></div>
|
||||
<div class="ttc" id="aconstants_8hpp_html_a0acb682b8260ab1c60b918599864e2e5"><div class="ttname"><a href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a></div><div class="ttdeci">#define T</div><div class="ttdoc">1 Tesla. unit:</div><div class="ttdef"><b>Definition:</b> <a href="constants_8hpp_source.html#l00017">constants.hpp:17</a></div></div>
|
||||
<div class="ttc" id="aconstants_8hpp_html_af40a326b23c68a27cebe60f16634a2cb"><div class="ttname"><a href="constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb">V</a></div><div class="ttdeci">#define V</div><div class="ttdoc">1 Volt. unit:</div><div class="ttdef"><b>Definition:</b> <a href="constants_8hpp_source.html#l00019">constants.hpp:19</a></div></div>
|
||||
<div class="ttc" id="atypedefs_8hpp_html_a9f33f4962c8fb62cc5ccd0e4e039a8df"><div class="ttname"><a href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a></div><div class="ttdeci">arma::vec::fixed< 3 > vec_3d</div><div class="ttdoc">Typedef for a fixed 3d arma vector.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00036">typedefs.hpp:36</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a6fdd7217b750aff5b6295ece7cbdeffa"><div class="ttname"><a href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00076">utils.cpp:76</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_aecc1f7a8a2493b9e021e5bff76a00a5b"><div class="ttname"><a href="utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b">DEBUG</a></div><div class="ttdeci">#define DEBUG(msg)</div><div class="ttdoc">Writes a debug message.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8hpp_source.html#l00036">utils.hpp:36</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
@ -38,4 +38,5 @@ var menudata={children:[
|
||||
{text:"File Members",url:"globals.html",children:[
|
||||
{text:"All",url:"globals.html"},
|
||||
{text:"Functions",url:"globals_func.html"},
|
||||
{text:"Typedefs",url:"globals_type.html"},
|
||||
{text:"Macros",url:"globals_defs.html"}]}]}]}
|
||||
|
||||
@ -27,7 +27,6 @@ var NAVTREE =
|
||||
[ "Penning Trap Simulation", "index.html", [
|
||||
[ "Credits", "index.html#autotoc_md1", null ],
|
||||
[ "Bug List", "bug.html", null ],
|
||||
[ "Todo List", "todo.html", null ],
|
||||
[ "Classes", "annotated.html", [
|
||||
[ "Class List", "annotated.html", "annotated_dup" ],
|
||||
[ "Class Index", "classes.html", null ],
|
||||
@ -43,6 +42,7 @@ var NAVTREE =
|
||||
[ "File Members", "globals.html", [
|
||||
[ "All", "globals.html", null ],
|
||||
[ "Functions", "globals_func.html", null ],
|
||||
[ "Typedefs", "globals_type.html", null ],
|
||||
[ "Macros", "globals_defs.html", null ]
|
||||
] ]
|
||||
] ]
|
||||
|
||||
@ -1,75 +1,95 @@
|
||||
var NAVTREEINDEX0 =
|
||||
{
|
||||
"Particle_8cpp.html":[4,0,1,2],
|
||||
"Particle_8cpp_source.html":[4,0,1,2],
|
||||
"Particle_8hpp.html":[4,0,0,1],
|
||||
"Particle_8hpp_source.html":[4,0,0,1],
|
||||
"PenningTrap_8cpp.html":[4,0,1,3],
|
||||
"PenningTrap_8cpp_source.html":[4,0,1,3],
|
||||
"PenningTrap_8hpp.html":[4,0,0,2],
|
||||
"PenningTrap_8hpp_source.html":[4,0,0,2],
|
||||
"animate__100__particles_8py_source.html":[4,0,1,0],
|
||||
"annotated.html":[3,0],
|
||||
"Particle_8cpp.html":[3,0,1,2],
|
||||
"Particle_8cpp_source.html":[3,0,1,2],
|
||||
"Particle_8hpp.html":[3,0,0,1],
|
||||
"Particle_8hpp_source.html":[3,0,0,1],
|
||||
"PenningTrap_8cpp.html":[3,0,1,3],
|
||||
"PenningTrap_8cpp_source.html":[3,0,1,3],
|
||||
"PenningTrap_8hpp.html":[3,0,0,2],
|
||||
"PenningTrap_8hpp_source.html":[3,0,0,2],
|
||||
"animate__100__particles_8py_source.html":[3,0,1,0],
|
||||
"annotated.html":[2,0],
|
||||
"bug.html":[1],
|
||||
"classParticle.html":[3,0,0],
|
||||
"classParticle.html#a00e108823877a25513ccae7cac011b4c":[3,0,0,0],
|
||||
"classParticle.html#a4a5d22c7aeca66f67d083f270cba25df":[3,0,0,5],
|
||||
"classParticle.html#a566dcc1de4bdc01251776948798ea8e1":[3,0,0,3],
|
||||
"classParticle.html#aa797d319549dc2a0beb06cdbfd430232":[3,0,0,1],
|
||||
"classParticle.html#acf1a0f3c978b06d76df5bb4279594467":[3,0,0,4],
|
||||
"classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563":[3,0,0,2],
|
||||
"classPenningTrap.html":[3,0,1],
|
||||
"classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f":[3,0,1,12],
|
||||
"classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee":[3,0,1,8],
|
||||
"classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716":[3,0,1,10],
|
||||
"classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d":[3,0,1,9],
|
||||
"classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784":[3,0,1,4],
|
||||
"classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182":[3,0,1,6],
|
||||
"classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965":[3,0,1,2],
|
||||
"classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2":[3,0,1,11],
|
||||
"classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8":[3,0,1,1],
|
||||
"classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89":[3,0,1,13],
|
||||
"classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560":[3,0,1,0],
|
||||
"classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be":[3,0,1,7],
|
||||
"classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b":[3,0,1,5],
|
||||
"classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9":[3,0,1,3],
|
||||
"classPenningTrapTest.html":[3,0,2],
|
||||
"classes.html":[3,1],
|
||||
"constants_8hpp.html":[4,0,0,0],
|
||||
"constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5":[4,0,0,0,1],
|
||||
"constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb":[4,0,0,0,0],
|
||||
"constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb":[4,0,0,0,2],
|
||||
"constants_8hpp_source.html":[4,0,0,0],
|
||||
"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[4,0,1],
|
||||
"dir_d44c64559bbebec7f509842c48db8b23.html":[4,0,0],
|
||||
"files.html":[4,0],
|
||||
"functions.html":[3,2,0],
|
||||
"functions_func.html":[3,2,1],
|
||||
"functions_rela.html":[3,2,3],
|
||||
"functions_vars.html":[3,2,2],
|
||||
"globals.html":[4,1,0],
|
||||
"globals_defs.html":[4,1,2],
|
||||
"globals_func.html":[4,1,1],
|
||||
"classParticle.html":[2,0,0],
|
||||
"classParticle.html#a566dcc1de4bdc01251776948798ea8e1":[2,0,0,3],
|
||||
"classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4":[2,0,0,0],
|
||||
"classParticle.html#a879692772803d6ab65fa4993b54aea6e":[2,0,0,5],
|
||||
"classParticle.html#aa797d319549dc2a0beb06cdbfd430232":[2,0,0,1],
|
||||
"classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563":[2,0,0,2],
|
||||
"classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6":[2,0,0,4],
|
||||
"classPenningTrap.html":[2,0,1],
|
||||
"classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f":[2,0,1,21],
|
||||
"classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b":[2,0,1,9],
|
||||
"classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716":[2,0,1,17],
|
||||
"classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9":[2,0,1,7],
|
||||
"classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8":[2,0,1,12],
|
||||
"classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640":[2,0,1,19],
|
||||
"classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e":[2,0,1,5],
|
||||
"classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648":[2,0,1,10],
|
||||
"classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b":[2,0,1,14],
|
||||
"classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854":[2,0,1,11],
|
||||
"classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2":[2,0,1,18],
|
||||
"classPenningTrap.html#a67139e04ef69c0bcffde8f30f67cbf73":[2,0,1,2],
|
||||
"classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8":[2,0,1,3],
|
||||
"classPenningTrap.html#a763700316b502d5900e587c1f61e6bf1":[2,0,1,1],
|
||||
"classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e":[2,0,1,22],
|
||||
"classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce":[2,0,1,8],
|
||||
"classPenningTrap.html#aaf105828121c4a33cc2b217453c20317":[2,0,1,23],
|
||||
"classPenningTrap.html#ab9ea97a406534bbe621a95215144875e":[2,0,1,4],
|
||||
"classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57":[2,0,1,16],
|
||||
"classPenningTrap.html#acbf065c9c125682329ad82a8d166554c":[2,0,1,6],
|
||||
"classPenningTrap.html#ae670d7de621acdb343b01af098086f63":[2,0,1,0],
|
||||
"classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56":[2,0,1,13],
|
||||
"classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4":[2,0,1,20],
|
||||
"classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e":[2,0,1,15],
|
||||
"classPenningTrapTest.html":[2,0,2],
|
||||
"classes.html":[2,1],
|
||||
"constants_8hpp.html":[3,0,0,0],
|
||||
"constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5":[3,0,0,0,1],
|
||||
"constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb":[3,0,0,0,0],
|
||||
"constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb":[3,0,0,0,2],
|
||||
"constants_8hpp_source.html":[3,0,0,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_rela.html":[2,2,3],
|
||||
"functions_vars.html":[2,2,2],
|
||||
"globals.html":[3,1,0],
|
||||
"globals_defs.html":[3,1,3],
|
||||
"globals_func.html":[3,1,1],
|
||||
"globals_type.html":[3,1,2],
|
||||
"index.html":[],
|
||||
"index.html#autotoc_md1":[0],
|
||||
"main_8cpp.html":[4,0,1,1],
|
||||
"main_8cpp_source.html":[4,0,1,1],
|
||||
"main_8cpp.html":[3,0,1,1],
|
||||
"main_8cpp_source.html":[3,0,1,1],
|
||||
"pages.html":[],
|
||||
"test__suite_8cpp.html":[4,0,1,4],
|
||||
"test__suite_8cpp_source.html":[4,0,1,4],
|
||||
"todo.html":[2],
|
||||
"utils_8cpp.html":[4,0,1,5],
|
||||
"utils_8cpp.html#a58565270b643b24e3132f38c653e0199":[4,0,1,5,2],
|
||||
"utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a":[4,0,1,5,0],
|
||||
"utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746":[4,0,1,5,3],
|
||||
"utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b":[4,0,1,5,1],
|
||||
"utils_8cpp_source.html":[4,0,1,5],
|
||||
"utils_8hpp.html":[4,0,0,3],
|
||||
"utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772":[4,0,0,3,2],
|
||||
"utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38":[4,0,0,3,3],
|
||||
"utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9":[4,0,0,3,0],
|
||||
"utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d":[4,0,0,3,4],
|
||||
"utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384":[4,0,0,3,5],
|
||||
"utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b":[4,0,0,3,1],
|
||||
"utils_8hpp_source.html":[4,0,0,3]
|
||||
"plot__particles__left_8py_source.html":[3,0,1,4],
|
||||
"test__suite_8cpp.html":[3,0,1,5],
|
||||
"test__suite_8cpp_source.html":[3,0,1,5],
|
||||
"typedefs_8hpp.html":[3,0,0,3],
|
||||
"typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23":[3,0,0,3,1],
|
||||
"typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66":[3,0,0,3,2],
|
||||
"typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df":[3,0,0,3,3],
|
||||
"typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af":[3,0,0,3,0],
|
||||
"typedefs_8hpp_source.html":[3,0,0,3],
|
||||
"utils_8cpp.html":[3,0,1,6],
|
||||
"utils_8cpp.html#a58565270b643b24e3132f38c653e0199":[3,0,1,6,3],
|
||||
"utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a":[3,0,1,6,0],
|
||||
"utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746":[3,0,1,6,4],
|
||||
"utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de":[3,0,1,6,2],
|
||||
"utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b":[3,0,1,6,1],
|
||||
"utils_8cpp_source.html":[3,0,1,6],
|
||||
"utils_8hpp.html":[3,0,0,4],
|
||||
"utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772":[3,0,0,4,3],
|
||||
"utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38":[3,0,0,4,4],
|
||||
"utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168":[3,0,0,4,0],
|
||||
"utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa":[3,0,0,4,5],
|
||||
"utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9":[3,0,0,4,1],
|
||||
"utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d":[3,0,0,4,6],
|
||||
"utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384":[3,0,0,4,7],
|
||||
"utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b":[3,0,0,4,2],
|
||||
"utils_8hpp_source.html":[3,0,0,4]
|
||||
};
|
||||
|
||||
@ -104,7 +104,6 @@ $(document).ready(function(){initNavTree('pages.html',''); initResizable(); });
|
||||
<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;"> </span><a class="el" href="bug.html" target="_self">Bug List</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="todo.html" target="_self">Todo List</a></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
|
||||
147
docs/plot__particles__left_8py_source.html
Normal file
147
docs/plot__particles__left_8py_source.html
Normal 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>Penning Trap Simulation: src/plot_particles_left.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">Penning Trap Simulation
|
||||
</div>
|
||||
<div id="projectbrief">Simulate particle behavior inside a Penning Trap</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&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&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&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('plot__particles__left_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">plot_particles_left.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>main():</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">"output/time_dependent_potential/f_0.100000.txt"</span>,</div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> <span class="stringliteral">"output/time_dependent_potential/f_0.400000.txt"</span>,</div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> <span class="stringliteral">"output/time_dependent_potential/f_0.700000.txt"</span>,</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> ]</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> vals = [</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> .1,</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> .4,</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> .7</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="keywordflow">for</span> i <span class="keywordflow">in</span> range(3):</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">with</span> open(files[i]) <span class="keyword">as</span> f:</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> lines = f.readlines()</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> x = []</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> y = []</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordflow">for</span> line <span class="keywordflow">in</span> lines:</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> a,b = line.strip().split(<span class="stringliteral">","</span>)</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> x.append(float(a))</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> y.append(float(b))</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> plt.plot(x,y,label=f<span class="stringliteral">"amplitude: {vals[i]}"</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> plt.xlabel(<span class="stringliteral">r"$\omega_V$"</span>)</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> plt.ylabel(<span class="stringliteral">r"Fraction of particles left"</span>)</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> plt.title(<span class="stringliteral">r"The fraction of particles left in the Penning trap "</span></div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="stringliteral">"after 500 microseconds for different amplitudes and frequencies"</span>)</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> plt.legend()</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> plt.show()</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keywordflow">if</span> __name__ == <span class="stringliteral">"__main__"</span>:</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> main()</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"><b>plot_particles_left.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>
|
||||
@ -1,6 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['add_5fparticle_0',['add_particle',['../classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8',1,'PenningTrap']]],
|
||||
['arma_5fvector_5fclose_5fto_1',['arma_vector_close_to',['../utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772',1,'arma_vector_close_to(arma::vec &a, arma::vec &b, double tol=1e-8): utils.cpp'],['../utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a',1,'arma_vector_close_to(arma::vec &a, arma::vec &b, double tol): utils.cpp']]],
|
||||
['assert_2',['ASSERT',['../utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9',1,'utils.hpp']]]
|
||||
['_5f_5fmethod_5fname_5f_5f_0',['__METHOD_NAME__',['../utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168',1,'utils.hpp']]]
|
||||
];
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
var searchData=
|
||||
[
|
||||
['b_5f0_0',['B_0',['../classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716',1,'PenningTrap']]],
|
||||
['bug_20list_1',['Bug List',['../bug.html',1,'']]]
|
||||
['add_5fparticle_0',['add_particle',['../classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8',1,'PenningTrap']]],
|
||||
['arma_5fvector_5fclose_5fto_1',['arma_vector_close_to',['../utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772',1,'arma_vector_close_to(arma::vec &a, arma::vec &b, double tol=1e-8): utils.cpp'],['../utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a',1,'arma_vector_close_to(arma::vec &a, arma::vec &b, double tol): utils.cpp']]],
|
||||
['assert_2',['ASSERT',['../utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9',1,'utils.hpp']]]
|
||||
];
|
||||
|
||||
4
docs/search/all_10.js
Normal file
4
docs/search/all_10.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['write_5fsimulation_5fto_5fdir_0',['write_simulation_to_dir',['../classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57',1,'PenningTrap']]]
|
||||
];
|
||||
@ -1,4 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['constants_2ehpp_0',['constants.hpp',['../constants_8hpp.html',1,'']]]
|
||||
['b_5f0_0',['B_0',['../classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716',1,'PenningTrap']]],
|
||||
['bug_20list_1',['Bug List',['../bug.html',1,'']]]
|
||||
];
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['d_0',['d',['../classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2',1,'PenningTrap']]],
|
||||
['debug_1',['DEBUG',['../utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b',1,'utils.hpp']]]
|
||||
['constants_2ehpp_0',['constants.hpp',['../constants_8hpp.html',1,'']]]
|
||||
];
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['evolve_5fforward_5feuler_0',['evolve_forward_euler',['../classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965',1,'PenningTrap']]],
|
||||
['evolve_5frk4_1',['evolve_RK4',['../classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9',1,'PenningTrap']]],
|
||||
['external_5fb_5ffield_2',['external_B_field',['../classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784',1,'PenningTrap']]],
|
||||
['external_5fe_5ffield_3',['external_E_field',['../classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b',1,'PenningTrap']]]
|
||||
['d_0',['d',['../classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2',1,'PenningTrap']]],
|
||||
['debug_1',['DEBUG',['../utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b',1,'utils.hpp']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
var searchData=
|
||||
[
|
||||
['force_5fon_5fparticle_0',['force_on_particle',['../classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182',1,'PenningTrap']]]
|
||||
['evolve_5fforward_5feuler_0',['evolve_forward_euler',['../classPenningTrap.html#ab9ea97a406534bbe621a95215144875e',1,'PenningTrap']]],
|
||||
['evolve_5frk4_1',['evolve_RK4',['../classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e',1,'PenningTrap']]],
|
||||
['external_5fb_5ffield_2',['external_B_field',['../classPenningTrap.html#acbf065c9c125682329ad82a8d166554c',1,'PenningTrap']]],
|
||||
['external_5fe_5ffield_3',['external_E_field',['../classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['k_5fe_0',['K_E',['../constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb',1,'constants.hpp']]]
|
||||
['force_5fon_5fparticle_0',['force_on_particle',['../classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce',1,'PenningTrap']]],
|
||||
['fraction_5fof_5fparticles_5fleft_1',['fraction_of_particles_left',['../classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
var searchData=
|
||||
[
|
||||
['m_0',['m',['../classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563',1,'Particle']]],
|
||||
['m_5fassert_1',['m_assert',['../utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38',1,'m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg): utils.cpp'],['../utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b',1,'m_assert(bool expr, std::string expr_str, std::string f, std::string file, int line, std::string msg): utils.cpp']]],
|
||||
['main_2ecpp_2',['main.cpp',['../main_8cpp.html',1,'']]]
|
||||
['k_5fe_0',['K_E',['../constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb',1,'constants.hpp']]],
|
||||
['k_5fr_1',['k_r',['../classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640',1,'PenningTrap']]],
|
||||
['k_5fv_2',['k_v',['../classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,12 +1,7 @@
|
||||
var searchData=
|
||||
[
|
||||
['particle_0',['Particle',['../classParticle.html',1,'Particle'],['../classParticle.html#a00e108823877a25513ccae7cac011b4c',1,'Particle::Particle()']]],
|
||||
['particle_2ecpp_1',['Particle.cpp',['../Particle_8cpp.html',1,'']]],
|
||||
['particle_2ehpp_2',['Particle.hpp',['../Particle_8hpp.html',1,'']]],
|
||||
['particles_3',['particles',['../classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f',1,'PenningTrap']]],
|
||||
['penning_20trap_20simulation_4',['Penning trap simulation',['../index.html',1,'']]],
|
||||
['penningtrap_5',['PenningTrap',['../classPenningTrap.html',1,'PenningTrap'],['../classParticle.html#aa797d319549dc2a0beb06cdbfd430232',1,'Particle::PenningTrap()'],['../classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560',1,'PenningTrap::PenningTrap()']]],
|
||||
['penningtrap_2ecpp_6',['PenningTrap.cpp',['../PenningTrap_8cpp.html',1,'']]],
|
||||
['penningtrap_2ehpp_7',['PenningTrap.hpp',['../PenningTrap_8hpp.html',1,'']]],
|
||||
['penningtraptest_8',['PenningTrapTest',['../classPenningTrapTest.html',1,'']]]
|
||||
['m_0',['m',['../classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563',1,'Particle']]],
|
||||
['m_5fassert_1',['m_assert',['../utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38',1,'m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg): utils.cpp'],['../utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b',1,'m_assert(bool expr, std::string expr_str, std::string f, std::string file, int line, std::string msg): utils.cpp']]],
|
||||
['main_2ecpp_2',['main.cpp',['../main_8cpp.html',1,'']]],
|
||||
['mkpath_3',['mkpath',['../utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa',1,'mkpath(std::string path, int mode=0777): utils.cpp'],['../utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de',1,'mkpath(std::string path, int mode): utils.cpp']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,12 @@
|
||||
var searchData=
|
||||
[
|
||||
['q_0',['q',['../classParticle.html#a566dcc1de4bdc01251776948798ea8e1',1,'Particle']]]
|
||||
['particle_0',['Particle',['../classParticle.html',1,'Particle'],['../classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4',1,'Particle::Particle()']]],
|
||||
['particle_2ecpp_1',['Particle.cpp',['../Particle_8cpp.html',1,'']]],
|
||||
['particle_2ehpp_2',['Particle.hpp',['../Particle_8hpp.html',1,'']]],
|
||||
['particles_3',['particles',['../classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f',1,'PenningTrap']]],
|
||||
['penning_20trap_20simulation_4',['Penning trap simulation',['../index.html',1,'']]],
|
||||
['penningtrap_5',['PenningTrap',['../classPenningTrap.html',1,'PenningTrap'],['../classParticle.html#aa797d319549dc2a0beb06cdbfd430232',1,'Particle::PenningTrap()'],['../classPenningTrap.html#ae670d7de621acdb343b01af098086f63',1,'PenningTrap::PenningTrap(double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)'],['../classPenningTrap.html#a763700316b502d5900e587c1f61e6bf1',1,'PenningTrap::PenningTrap(unsigned int i, double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)'],['../classPenningTrap.html#a67139e04ef69c0bcffde8f30f67cbf73',1,'PenningTrap::PenningTrap(std::vector< Particle > particles, double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)']]],
|
||||
['penningtrap_2ecpp_6',['PenningTrap.cpp',['../PenningTrap_8cpp.html',1,'']]],
|
||||
['penningtrap_2ehpp_7',['PenningTrap.hpp',['../PenningTrap_8hpp.html',1,'']]],
|
||||
['penningtraptest_8',['PenningTrapTest',['../classPenningTrapTest.html',1,'']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['r_5fvec_0',['r_vec',['../classParticle.html#acf1a0f3c978b06d76df5bb4279594467',1,'Particle']]]
|
||||
['q_0',['q',['../classParticle.html#a566dcc1de4bdc01251776948798ea8e1',1,'Particle']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['scientific_5fformat_0',['scientific_format',['../utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384',1,'scientific_format(double d, int width=20, int prec=10): utils.cpp'],['../utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d',1,'scientific_format(const std::vector< double > &v, int width=20, int prec=10): utils.cpp'],['../utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746',1,'scientific_format(double d, int width, int prec): utils.cpp'],['../utils_8cpp.html#a58565270b643b24e3132f38c653e0199',1,'scientific_format(const std::vector< double > &v, int width, int prec): utils.cpp']]]
|
||||
['r_5ffunc_0',['r_func',['../classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648',1,'PenningTrap']]],
|
||||
['r_5fvec_1',['r_vec',['../classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6',1,'Particle']]]
|
||||
];
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
var searchData=
|
||||
[
|
||||
['t_0',['T',['../constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5',1,'constants.hpp']]],
|
||||
['test_5fsuite_2ecpp_1',['test_suite.cpp',['../test__suite_8cpp.html',1,'']]],
|
||||
['todo_20list_2',['Todo List',['../todo.html',1,'']]],
|
||||
['total_5fforce_3',['total_force',['../classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be',1,'PenningTrap']]],
|
||||
['total_5fforce_5fexternal_4',['total_force_external',['../classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee',1,'PenningTrap']]],
|
||||
['total_5fforce_5fparticles_5',['total_force_particles',['../classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d',1,'PenningTrap']]]
|
||||
['scientific_5fformat_0',['scientific_format',['../utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384',1,'scientific_format(double d, int width=20, int prec=10): utils.cpp'],['../utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d',1,'scientific_format(const std::vector< double > &v, int width=20, int prec=10): utils.cpp'],['../utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746',1,'scientific_format(double d, int width, int prec): utils.cpp'],['../utils_8cpp.html#a58565270b643b24e3132f38c653e0199',1,'scientific_format(const std::vector< double > &v, int width, int prec): utils.cpp']]],
|
||||
['sim_5farr_1',['sim_arr',['../typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af',1,'typedefs.hpp']]],
|
||||
['sim_5fcols_2',['sim_cols',['../typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23',1,'typedefs.hpp']]],
|
||||
['sim_5frows_3',['sim_rows',['../typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66',1,'typedefs.hpp']]],
|
||||
['simulate_4',['simulate',['../classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,5 +1,10 @@
|
||||
var searchData=
|
||||
[
|
||||
['utils_2ecpp_0',['utils.cpp',['../utils_8cpp.html',1,'']]],
|
||||
['utils_2ehpp_1',['utils.hpp',['../utils_8hpp.html',1,'']]]
|
||||
['t_0',['t',['../classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e',1,'PenningTrap']]],
|
||||
['t_1',['T',['../constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5',1,'constants.hpp']]],
|
||||
['test_5fsuite_2ecpp_2',['test_suite.cpp',['../test__suite_8cpp.html',1,'']]],
|
||||
['total_5fforce_3',['total_force',['../classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8',1,'PenningTrap']]],
|
||||
['total_5fforce_5fexternal_4',['total_force_external',['../classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56',1,'PenningTrap']]],
|
||||
['total_5fforce_5fparticles_5',['total_force_particles',['../classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b',1,'PenningTrap']]],
|
||||
['typedefs_2ehpp_6',['typedefs.hpp',['../typedefs_8hpp.html',1,'']]]
|
||||
];
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['v_0',['V',['../constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb',1,'constants.hpp']]],
|
||||
['v_5f0_1',['V_0',['../classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89',1,'PenningTrap']]],
|
||||
['v_5fvec_2',['v_vec',['../classParticle.html#a4a5d22c7aeca66f67d083f270cba25df',1,'Particle']]]
|
||||
['utils_2ecpp_0',['utils.cpp',['../utils_8cpp.html',1,'']]],
|
||||
['utils_2ehpp_1',['utils.hpp',['../utils_8hpp.html',1,'']]]
|
||||
];
|
||||
|
||||
8
docs/search/all_f.js
Normal file
8
docs/search/all_f.js
Normal file
@ -0,0 +1,8 @@
|
||||
var searchData=
|
||||
[
|
||||
['v_0',['V',['../constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb',1,'constants.hpp']]],
|
||||
['v_5f0_1',['V_0',['../classPenningTrap.html#aaf105828121c4a33cc2b217453c20317',1,'PenningTrap']]],
|
||||
['v_5ffunc_2',['v_func',['../classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e',1,'PenningTrap']]],
|
||||
['v_5fvec_3',['v_vec',['../classParticle.html#a879692772803d6ab65fa4993b54aea6e',1,'Particle']]],
|
||||
['vec_5f3d_4',['vec_3d',['../typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df',1,'typedefs.hpp']]]
|
||||
];
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['assert_0',['ASSERT',['../utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9',1,'utils.hpp']]]
|
||||
['_5f_5fmethod_5fname_5f_5f_0',['__METHOD_NAME__',['../utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168',1,'utils.hpp']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['debug_0',['DEBUG',['../utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b',1,'utils.hpp']]]
|
||||
['assert_0',['ASSERT',['../utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9',1,'utils.hpp']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['k_5fe_0',['K_E',['../constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb',1,'constants.hpp']]]
|
||||
['debug_0',['DEBUG',['../utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b',1,'utils.hpp']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['t_0',['T',['../constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5',1,'constants.hpp']]]
|
||||
['k_5fe_0',['K_E',['../constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb',1,'constants.hpp']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['v_0',['V',['../constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb',1,'constants.hpp']]]
|
||||
['t_0',['T',['../constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5',1,'constants.hpp']]]
|
||||
];
|
||||
|
||||
4
docs/search/defines_5.js
Normal file
4
docs/search/defines_5.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['v_0',['V',['../constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb',1,'constants.hpp']]]
|
||||
];
|
||||
@ -1,4 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['test_5fsuite_2ecpp_0',['test_suite.cpp',['../test__suite_8cpp.html',1,'']]]
|
||||
['test_5fsuite_2ecpp_0',['test_suite.cpp',['../test__suite_8cpp.html',1,'']]],
|
||||
['typedefs_2ehpp_1',['typedefs.hpp',['../typedefs_8hpp.html',1,'']]]
|
||||
];
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
var searchData=
|
||||
[
|
||||
['evolve_5fforward_5feuler_0',['evolve_forward_euler',['../classPenningTrap.html#a56544b6f4befb42984e9650cf2a40965',1,'PenningTrap']]],
|
||||
['evolve_5frk4_1',['evolve_RK4',['../classPenningTrap.html#ab891b839c40eeb38d8a2a636c70090a9',1,'PenningTrap']]],
|
||||
['external_5fb_5ffield_2',['external_B_field',['../classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784',1,'PenningTrap']]],
|
||||
['external_5fe_5ffield_3',['external_E_field',['../classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b',1,'PenningTrap']]]
|
||||
['evolve_5fforward_5feuler_0',['evolve_forward_euler',['../classPenningTrap.html#ab9ea97a406534bbe621a95215144875e',1,'PenningTrap']]],
|
||||
['evolve_5frk4_1',['evolve_RK4',['../classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e',1,'PenningTrap']]],
|
||||
['external_5fb_5ffield_2',['external_B_field',['../classPenningTrap.html#acbf065c9c125682329ad82a8d166554c',1,'PenningTrap']]],
|
||||
['external_5fe_5ffield_3',['external_E_field',['../classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['force_5fon_5fparticle_0',['force_on_particle',['../classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182',1,'PenningTrap']]]
|
||||
['force_5fon_5fparticle_0',['force_on_particle',['../classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce',1,'PenningTrap']]],
|
||||
['fraction_5fof_5fparticles_5fleft_1',['fraction_of_particles_left',['../classPenningTrap.html#a0194be61c956a9259c747c23e4163c5b',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['m_5fassert_0',['m_assert',['../utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38',1,'m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg): utils.cpp'],['../utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b',1,'m_assert(bool expr, std::string expr_str, std::string f, std::string file, int line, std::string msg): utils.cpp']]]
|
||||
['m_5fassert_0',['m_assert',['../utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38',1,'m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg): utils.cpp'],['../utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b',1,'m_assert(bool expr, std::string expr_str, std::string f, std::string file, int line, std::string msg): utils.cpp']]],
|
||||
['mkpath_1',['mkpath',['../utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa',1,'mkpath(std::string path, int mode=0777): utils.cpp'],['../utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de',1,'mkpath(std::string path, int mode): utils.cpp']]]
|
||||
];
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['particle_0',['Particle',['../classParticle.html#a00e108823877a25513ccae7cac011b4c',1,'Particle']]],
|
||||
['penningtrap_1',['PenningTrap',['../classPenningTrap.html#a81add5063bd5f29d77f0b5c299c6c560',1,'PenningTrap']]]
|
||||
['particle_0',['Particle',['../classParticle.html#a7af9f8d1fef63dd7643b06629ac7bef4',1,'Particle']]],
|
||||
['penningtrap_1',['PenningTrap',['../classPenningTrap.html#ae670d7de621acdb343b01af098086f63',1,'PenningTrap::PenningTrap(double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)'],['../classPenningTrap.html#a763700316b502d5900e587c1f61e6bf1',1,'PenningTrap::PenningTrap(unsigned int i, double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)'],['../classPenningTrap.html#a67139e04ef69c0bcffde8f30f67cbf73',1,'PenningTrap::PenningTrap(std::vector< Particle > particles, double B_0=T, std::function< double(double)> V_0=[](double t) { return 25. *V/1000.;}, double d=500., double t=0.)']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['scientific_5fformat_0',['scientific_format',['../utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384',1,'scientific_format(double d, int width=20, int prec=10): utils.cpp'],['../utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d',1,'scientific_format(const std::vector< double > &v, int width=20, int prec=10): utils.cpp'],['../utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746',1,'scientific_format(double d, int width, int prec): utils.cpp'],['../utils_8cpp.html#a58565270b643b24e3132f38c653e0199',1,'scientific_format(const std::vector< double > &v, int width, int prec): utils.cpp']]]
|
||||
['r_5ffunc_0',['r_func',['../classPenningTrap.html#a43e74792ab4b3f9299f35cb64bdb2648',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['total_5fforce_0',['total_force',['../classPenningTrap.html#a83cc7a04dae009ed8e75453c38fdf8be',1,'PenningTrap']]],
|
||||
['total_5fforce_5fexternal_1',['total_force_external',['../classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee',1,'PenningTrap']]],
|
||||
['total_5fforce_5fparticles_2',['total_force_particles',['../classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d',1,'PenningTrap']]]
|
||||
['scientific_5fformat_0',['scientific_format',['../utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384',1,'scientific_format(double d, int width=20, int prec=10): utils.cpp'],['../utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d',1,'scientific_format(const std::vector< double > &v, int width=20, int prec=10): utils.cpp'],['../utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746',1,'scientific_format(double d, int width, int prec): utils.cpp'],['../utils_8cpp.html#a58565270b643b24e3132f38c653e0199',1,'scientific_format(const std::vector< double > &v, int width, int prec): utils.cpp']]],
|
||||
['simulate_1',['simulate',['../classPenningTrap.html#a5331837e6dd7bce807a99edd2ba7e854',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
6
docs/search/functions_7.js
Normal file
6
docs/search/functions_7.js
Normal file
@ -0,0 +1,6 @@
|
||||
var searchData=
|
||||
[
|
||||
['total_5fforce_0',['total_force',['../classPenningTrap.html#a1f668c4433421136ad51741741aa1bc8',1,'PenningTrap']]],
|
||||
['total_5fforce_5fexternal_1',['total_force_external',['../classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56',1,'PenningTrap']]],
|
||||
['total_5fforce_5fparticles_2',['total_force_particles',['../classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b',1,'PenningTrap']]]
|
||||
];
|
||||
4
docs/search/functions_8.js
Normal file
4
docs/search/functions_8.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['v_5ffunc_0',['v_func',['../classPenningTrap.html#af98a720da60b0e1a62aefa5f5cb37c1e',1,'PenningTrap']]]
|
||||
];
|
||||
4
docs/search/functions_9.js
Normal file
4
docs/search/functions_9.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['write_5fsimulation_5fto_5fdir_0',['write_simulation_to_dir',['../classPenningTrap.html#abbb832a85139b1a56ebde57d7b8f9a57',1,'PenningTrap']]]
|
||||
];
|
||||
@ -1,13 +1,14 @@
|
||||
var indexSectionsWithContent =
|
||||
{
|
||||
0: "abcdefkmpqrstuv",
|
||||
0: "_abcdefkmpqrstuvw",
|
||||
1: "p",
|
||||
2: "cmptu",
|
||||
3: "aefmpst",
|
||||
4: "bdmpqrv",
|
||||
5: "p",
|
||||
6: "adktv",
|
||||
7: "bpt"
|
||||
3: "aefmprstvw",
|
||||
4: "bdkmpqrtv",
|
||||
5: "sv",
|
||||
6: "p",
|
||||
7: "_adktv",
|
||||
8: "bp"
|
||||
};
|
||||
|
||||
var indexSectionNames =
|
||||
@ -17,9 +18,10 @@ var indexSectionNames =
|
||||
2: "files",
|
||||
3: "functions",
|
||||
4: "variables",
|
||||
5: "related",
|
||||
6: "defines",
|
||||
7: "pages"
|
||||
5: "typedefs",
|
||||
6: "related",
|
||||
7: "defines",
|
||||
8: "pages"
|
||||
};
|
||||
|
||||
var indexSectionLabels =
|
||||
@ -29,8 +31,9 @@ var indexSectionLabels =
|
||||
2: "Files",
|
||||
3: "Functions",
|
||||
4: "Variables",
|
||||
5: "Friends",
|
||||
6: "Macros",
|
||||
7: "Pages"
|
||||
5: "Typedefs",
|
||||
6: "Friends",
|
||||
7: "Macros",
|
||||
8: "Pages"
|
||||
};
|
||||
|
||||
|
||||
6
docs/search/typedefs_0.js
Normal file
6
docs/search/typedefs_0.js
Normal file
@ -0,0 +1,6 @@
|
||||
var searchData=
|
||||
[
|
||||
['sim_5farr_0',['sim_arr',['../typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af',1,'typedefs.hpp']]],
|
||||
['sim_5fcols_1',['sim_cols',['../typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23',1,'typedefs.hpp']]],
|
||||
['sim_5frows_2',['sim_rows',['../typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66',1,'typedefs.hpp']]]
|
||||
];
|
||||
4
docs/search/typedefs_1.js
Normal file
4
docs/search/typedefs_1.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['vec_5f3d_0',['vec_3d',['../typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df',1,'typedefs.hpp']]]
|
||||
];
|
||||
@ -1,4 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['m_0',['m',['../classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563',1,'Particle']]]
|
||||
['k_5fr_0',['k_r',['../classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640',1,'PenningTrap']]],
|
||||
['k_5fv_1',['k_v',['../classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['particles_0',['particles',['../classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f',1,'PenningTrap']]]
|
||||
['m_0',['m',['../classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563',1,'Particle']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['q_0',['q',['../classParticle.html#a566dcc1de4bdc01251776948798ea8e1',1,'Particle']]]
|
||||
['particles_0',['particles',['../classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f',1,'PenningTrap']]]
|
||||
];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['r_5fvec_0',['r_vec',['../classParticle.html#acf1a0f3c978b06d76df5bb4279594467',1,'Particle']]]
|
||||
['q_0',['q',['../classParticle.html#a566dcc1de4bdc01251776948798ea8e1',1,'Particle']]]
|
||||
];
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['v_5f0_0',['V_0',['../classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89',1,'PenningTrap']]],
|
||||
['v_5fvec_1',['v_vec',['../classParticle.html#a4a5d22c7aeca66f67d083f270cba25df',1,'Particle']]]
|
||||
['r_5fvec_0',['r_vec',['../classParticle.html#af9497cd8f2dcad0fad54f571ddb383e6',1,'Particle']]]
|
||||
];
|
||||
|
||||
4
docs/search/variables_7.js
Normal file
4
docs/search/variables_7.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['t_0',['t',['../classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e',1,'PenningTrap']]]
|
||||
];
|
||||
5
docs/search/variables_8.js
Normal file
5
docs/search/variables_8.js
Normal file
@ -0,0 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['v_5f0_0',['V_0',['../classPenningTrap.html#aaf105828121c4a33cc2b217453c20317',1,'PenningTrap']]],
|
||||
['v_5fvec_1',['v_vec',['../classParticle.html#a879692772803d6ab65fa4993b54aea6e',1,'Particle']]]
|
||||
];
|
||||
@ -131,7 +131,7 @@ Functions</h2></td></tr>
|
||||
<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#_bug000008">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000009">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
|
||||
<p class="definition">Definition in file <a class="el" href="test__suite_8cpp_source.html">test_suite.cpp</a>.</p>
|
||||
</div><h2 class="groupheader">Function Documentation</h2>
|
||||
|
||||
@ -136,9 +136,9 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> arma::vec result;</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> arma::vec v;</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> std::stringstream msg;</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < tests.size(); i++) {</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < tests.size(); i++) {</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> v = tests.at(i).first;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> result = trap.<a class="code hl_function" href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">external_E_field</a>(v);</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> result = trap.<a class="code hl_function" href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">external_E_field</a>(v);</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> msg.str(<span class="stringliteral">""</span>);</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> msg << <span class="stringliteral">"Testing the external E field at ("</span> << std::setprecision(2)</div>
|
||||
@ -154,7 +154,7 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// on position.</span></div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_class" href="classPenningTrap.html">PenningTrap</a> trap;</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> arma::vec expected{0., 0., <a class="code hl_define" href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a>};</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> arma::vec result = trap.<a class="code hl_function" href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">external_B_field</a>(arma::vec{0., 0., 0.});</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> arma::vec result = trap.<a class="code hl_function" href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">external_B_field</a>(arma::vec{0., 0., 0.});</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_define" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(<a class="code hl_function" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a>(expected, result),</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="stringliteral">"Testing the external B field at (0,0,0)"</span>);</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
|
||||
@ -171,14 +171,14 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// Test p0 and p1</span></div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> arma::vec expected{-1., 0., 0.};</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> arma::vec result = trap.<a class="code hl_function" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">force_on_particle</a>(0, 1);</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> arma::vec result = trap.<a class="code hl_function" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">force_on_particle</a>(0, 1);</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_define" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(<a class="code hl_function" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a>(expected, result),</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="stringliteral">"Testing the force on a particle at (0,0,0) from a "</span></div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="stringliteral">"particle at (1,0,0)."</span>);</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// Test p0 and p2</span></div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> expected = arma::vec{0, -.024, -.032};</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> result = trap.<a class="code hl_function" href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">force_on_particle</a>(0, 2);</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> result = trap.<a class="code hl_function" href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">force_on_particle</a>(0, 2);</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_define" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(<a class="code hl_function" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a>(expected, result),</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="stringliteral">"Testing the force on a particle at (0,0,0) from a "</span></div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="stringliteral">"particle at (0,3,4)."</span>);</div>
|
||||
@ -191,7 +191,7 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <a class="code hl_class" href="classParticle.html">Particle</a>(1., 40., arma::vec{1., 2., 3.}, arma::vec{3., 4., 5.}));</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> arma::vec expected{395.58954878, -270.15871624, -57.89115348};</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> arma::vec result = trap.<a class="code hl_function" href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">total_force_external</a>(0);</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> arma::vec result = trap.<a class="code hl_function" href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">total_force_external</a>(0);</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_define" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(<a class="code hl_function" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a>(expected, result),</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="stringliteral">"Testing the total external force on a particle at "</span></div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="stringliteral">"(1,2,3) with velocity (3,4,5)"</span>);</div>
|
||||
@ -204,7 +204,7 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_class" href="classParticle.html">Particle</a>(1., 40., arma::vec{0., 0., 0.}, arma::vec{0., 0., 0.}));</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> arma::vec expected{0., 0., 0.};</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> arma::vec result = trap.<a class="code hl_function" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">total_force_particles</a>(0);</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> arma::vec result = trap.<a class="code hl_function" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">total_force_particles</a>(0);</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <a class="code hl_define" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(<a class="code hl_function" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a>(expected, result),</div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="stringliteral">"Testing the total force of all particles on particle 0 "</span></div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="stringliteral">"with only a single particle"</span>);</div>
|
||||
@ -217,7 +217,7 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_class" href="classParticle.html">Particle</a>(1., 40., arma::vec{0., 0., 1.}, arma::vec{0., 0., 0.}));</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> expected = arma::vec(3, arma::fill::value(-3473.383325));</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> result = trap.<a class="code hl_function" href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">total_force_particles</a>(0);</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> result = trap.<a class="code hl_function" href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">total_force_particles</a>(0);</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_define" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a>(<a class="code hl_function" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a>(expected, result),</div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="stringliteral">"Testing the total force of all particles on particle 0 "</span></div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="stringliteral">"with 3 other particles."</span>);</div>
|
||||
@ -234,18 +234,18 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>}</div>
|
||||
<div class="ttc" id="aPenningTrap_8hpp_html"><div class="ttname"><a href="PenningTrap_8hpp.html">PenningTrap.hpp</a></div><div class="ttdoc">A class for simulating a Penning trap.</div></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00019">Particle.hpp:19</a></div></div>
|
||||
<div class="ttc" id="aclassParticle_html"><div class="ttname"><a href="classParticle.html">Particle</a></div><div class="ttdoc">A class that holds attributes of a particle.</div><div class="ttdef"><b>Definition:</b> <a href="Particle_8hpp_source.html#l00021">Particle.hpp:21</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrapTest_html"><div class="ttname"><a href="classPenningTrapTest.html">PenningTrapTest</a></div><div class="ttdef"><b>Definition:</b> <a href="test__suite_8cpp_source.html#l00020">test_suite.cpp:20</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00029">PenningTrap.hpp:29</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a045adb85e97a8e0c38fb36d2fd74eeee"><div class="ttname"><a href="classPenningTrap.html#a045adb85e97a8e0c38fb36d2fd74eeee">PenningTrap::total_force_external</a></div><div class="ttdeci">arma::vec total_force_external(int i)</div><div class="ttdoc">Calculate the total external force on a particle.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00065">PenningTrap.cpp:65</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a135db7d991d9b88b00fde4edee71f78d"><div class="ttname"><a href="classPenningTrap.html#a135db7d991d9b88b00fde4edee71f78d">PenningTrap::total_force_particles</a></div><div class="ttdeci">arma::vec total_force_particles(int i)</div><div class="ttdoc">Calculate the total force on a particle from other particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00080">PenningTrap.cpp:80</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a2a3e7f480ba52e9f24d4c50c3981a784"><div class="ttname"><a href="classPenningTrap.html#a2a3e7f480ba52e9f24d4c50c3981a784">PenningTrap::external_B_field</a></div><div class="ttdeci">arma::vec external_B_field(arma::vec r)</div><div class="ttdoc">Calculate B at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00043">PenningTrap.cpp:43</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a4790f41e4fbc6ede4991aa7bbda92182"><div class="ttname"><a href="classPenningTrap.html#a4790f41e4fbc6ede4991aa7bbda92182">PenningTrap::force_on_particle</a></div><div class="ttdeci">arma::vec force_on_particle(int i, int j)</div><div class="ttdoc">Calculate the force between 2 particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00050">PenningTrap.cpp:50</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a6e9776ff5b149f01080800716455d7c8"><div class="ttname"><a href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a></div><div class="ttdeci">void add_particle(Particle particle)</div><div class="ttdoc">Add a particle to the system.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00027">PenningTrap.cpp:27</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a978a2e2026a4b5308d5184712f81704b"><div class="ttname"><a href="classPenningTrap.html#a978a2e2026a4b5308d5184712f81704b">PenningTrap::external_E_field</a></div><div class="ttdeci">arma::vec external_E_field(arma::vec r)</div><div class="ttdoc">Calculate E at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00032">PenningTrap.cpp:32</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html"><div class="ttname"><a href="classPenningTrap.html">PenningTrap</a></div><div class="ttdoc">A class that simulates a Penning trap.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8hpp_source.html#l00030">PenningTrap.hpp:30</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a1d58feaa2c9e34cbf26b1c5ed75ca9d9"><div class="ttname"><a href="classPenningTrap.html#a1d58feaa2c9e34cbf26b1c5ed75ca9d9">PenningTrap::external_E_field</a></div><div class="ttdeci">vec_3d external_E_field(vec_3d r)</div><div class="ttdoc">Calculate E at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00087">PenningTrap.cpp:87</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a46a954a0946def199e30fb300ba1c47b"><div class="ttname"><a href="classPenningTrap.html#a46a954a0946def199e30fb300ba1c47b">PenningTrap::total_force_particles</a></div><div class="ttdeci">vec_3d total_force_particles(unsigned int i)</div><div class="ttdoc">Calculate the total force on a particle p_i from other particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00129">PenningTrap.cpp:129</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a6e9776ff5b149f01080800716455d7c8"><div class="ttname"><a href="classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8">PenningTrap::add_particle</a></div><div class="ttdeci">void add_particle(Particle particle)</div><div class="ttdoc">Add a particle to the system.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00082">PenningTrap.cpp:82</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_a9ae34ad740a230e667e96bc6ee8730ce"><div class="ttname"><a href="classPenningTrap.html#a9ae34ad740a230e667e96bc6ee8730ce">PenningTrap::force_on_particle</a></div><div class="ttdeci">vec_3d force_on_particle(unsigned int i, unsigned int j)</div><div class="ttdoc">Calculate the force between 2 particles.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00100">PenningTrap.cpp:100</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_acbf065c9c125682329ad82a8d166554c"><div class="ttname"><a href="classPenningTrap.html#acbf065c9c125682329ad82a8d166554c">PenningTrap::external_B_field</a></div><div class="ttdeci">vec_3d external_B_field(vec_3d r)</div><div class="ttdoc">Calculate B at point r.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00095">PenningTrap.cpp:95</a></div></div>
|
||||
<div class="ttc" id="aclassPenningTrap_html_ae72d203b0bfa1b9e72bea28cb2863c56"><div class="ttname"><a href="classPenningTrap.html#ae72d203b0bfa1b9e72bea28cb2863c56">PenningTrap::total_force_external</a></div><div class="ttdeci">vec_3d total_force_external(unsigned int i)</div><div class="ttdoc">Calculate the total external force on a particle.</div><div class="ttdef"><b>Definition:</b> <a href="PenningTrap_8cpp_source.html#l00114">PenningTrap.cpp:114</a></div></div>
|
||||
<div class="ttc" id="aconstants_8hpp_html_a0acb682b8260ab1c60b918599864e2e5"><div class="ttname"><a href="constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5">T</a></div><div class="ttdeci">#define T</div><div class="ttdoc">1 Tesla. unit:</div><div class="ttdef"><b>Definition:</b> <a href="constants_8hpp_source.html#l00017">constants.hpp:17</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html"><div class="ttname"><a href="utils_8hpp.html">utils.hpp</a></div><div class="ttdoc">Function prototypes and macros that are useful.</div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a0c95c4791692b06f8811905a76dbd772"><div class="ttname"><a href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a></div><div class="ttdeci">bool arma_vector_close_to(arma::vec &a, arma::vec &b, double tol=1e-8)</div><div class="ttdoc">Test if two armadillo vectors are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00059">utils.cpp:59</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a0c95c4791692b06f8811905a76dbd772"><div class="ttname"><a href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a></div><div class="ttdeci">bool arma_vector_close_to(arma::vec &a, arma::vec &b, double tol=1e-8)</div><div class="ttdoc">Test if two armadillo vectors are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00062">utils.cpp:62</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a73d4f21ad937dbc50a0c0538c78fd4f9"><div class="ttname"><a href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9">ASSERT</a></div><div class="ttdeci">#define ASSERT(expr, msg)</div><div class="ttdoc">A prettier assertion function.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8hpp_source.html#l00045">utils.hpp:45</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
||||
222
docs/typedefs_8hpp.html
Normal file
222
docs/typedefs_8hpp.html
Normal file
@ -0,0 +1,222 @@
|
||||
<!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>Penning Trap Simulation: include/typedefs.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">Penning Trap Simulation
|
||||
</div>
|
||||
<div id="projectbrief">Simulate particle behavior inside a Penning Trap</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&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&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&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('typedefs_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="#typedef-members">Typedefs</a> </div>
|
||||
<div class="headertitle"><div class="title">typedefs.hpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Useful typedefs for cleaner code.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <vector></code><br />
|
||||
<code>#include <armadillo></code><br />
|
||||
</div>
|
||||
<p><a href="typedefs_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="typedef-members" name="typedef-members"></a>
|
||||
Typedefs</h2></td></tr>
|
||||
<tr class="memitem:a7c2dfa854274262c4e00e4ef0ab2ce23"><td class="memItemLeft" align="right" valign="top">typedef std::vector< arma::vec::fixed< 3 > > </td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a></td></tr>
|
||||
<tr class="memdesc:a7c2dfa854274262c4e00e4ef0ab2ce23"><td class="mdescLeft"> </td><td class="mdescRight">Typedef for the column of the result vector from simulating particles. <br /></td></tr>
|
||||
<tr class="separator:a7c2dfa854274262c4e00e4ef0ab2ce23"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8502989b1b361725834fc185bd575f66"><td class="memItemLeft" align="right" valign="top">typedef std::vector< arma::vec::fixed< 3 > > </td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66">sim_rows</a></td></tr>
|
||||
<tr class="memdesc:a8502989b1b361725834fc185bd575f66"><td class="mdescLeft"> </td><td class="mdescRight">Typedef for the row of the result vector from simulating particles. <br /></td></tr>
|
||||
<tr class="separator:a8502989b1b361725834fc185bd575f66"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec69d34220fff45de238b9e01f2686af"><td class="memItemLeft" align="right" valign="top">typedef std::vector< <a class="el" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a></td></tr>
|
||||
<tr class="memdesc:aec69d34220fff45de238b9e01f2686af"><td class="mdescLeft"> </td><td class="mdescRight">Typedef for the result of the simulate method. <br /></td></tr>
|
||||
<tr class="separator:aec69d34220fff45de238b9e01f2686af"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9f33f4962c8fb62cc5ccd0e4e039a8df"><td class="memItemLeft" align="right" valign="top">typedef arma::vec::fixed< 3 > </td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a></td></tr>
|
||||
<tr class="memdesc:a9f33f4962c8fb62cc5ccd0e4e039a8df"><td class="mdescLeft"> </td><td class="mdescRight">Typedef for a fixed 3d arma vector. <br /></td></tr>
|
||||
<tr class="separator:a9f33f4962c8fb62cc5ccd0e4e039a8df"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Useful typedefs for cleaner code. </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>
|
||||
<p>These typedefs make the code more readable and easy to follow along.</p>
|
||||
<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="typedefs_8hpp_source.html">typedefs.hpp</a>.</p>
|
||||
</div><h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a id="aec69d34220fff45de238b9e01f2686af" name="aec69d34220fff45de238b9e01f2686af"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aec69d34220fff45de238b9e01f2686af">◆ </a></span>sim_arr</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef std::vector<<a class="el" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a>> <a class="el" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Typedef for the result of the simulate method. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="typedefs_8hpp_source.html#l00032">32</a> of file <a class="el" href="typedefs_8hpp_source.html">typedefs.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a7c2dfa854274262c4e00e4ef0ab2ce23" name="a7c2dfa854274262c4e00e4ef0ab2ce23"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7c2dfa854274262c4e00e4ef0ab2ce23">◆ </a></span>sim_cols</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef std::vector<arma::vec::fixed<3> > <a class="el" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Typedef for the column of the result vector from simulating particles. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="typedefs_8hpp_source.html#l00024">24</a> of file <a class="el" href="typedefs_8hpp_source.html">typedefs.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a8502989b1b361725834fc185bd575f66" name="a8502989b1b361725834fc185bd575f66"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8502989b1b361725834fc185bd575f66">◆ </a></span>sim_rows</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef std::vector<arma::vec::fixed<3> > <a class="el" href="typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66">sim_rows</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Typedef for the row of the result vector from simulating particles. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="typedefs_8hpp_source.html#l00028">28</a> of file <a class="el" href="typedefs_8hpp_source.html">typedefs.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a9f33f4962c8fb62cc5ccd0e4e039a8df" name="a9f33f4962c8fb62cc5ccd0e4e039a8df"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9f33f4962c8fb62cc5ccd0e4e039a8df">◆ </a></span>vec_3d</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef arma::vec::fixed<3> <a class="el" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Typedef for a fixed 3d arma vector. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="typedefs_8hpp_source.html#l00036">36</a> of file <a class="el" href="typedefs_8hpp_source.html">typedefs.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="typedefs_8hpp.html">typedefs.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>
|
||||
7
docs/typedefs_8hpp.js
Normal file
7
docs/typedefs_8hpp.js
Normal file
@ -0,0 +1,7 @@
|
||||
var typedefs_8hpp =
|
||||
[
|
||||
[ "sim_arr", "typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af", null ],
|
||||
[ "sim_cols", "typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23", null ],
|
||||
[ "sim_rows", "typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66", null ],
|
||||
[ "vec_3d", "typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df", null ]
|
||||
];
|
||||
134
docs/typedefs_8hpp_source.html
Normal file
134
docs/typedefs_8hpp_source.html
Normal file
@ -0,0 +1,134 @@
|
||||
<!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>Penning Trap Simulation: include/typedefs.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">Penning Trap Simulation
|
||||
</div>
|
||||
<div id="projectbrief">Simulate particle behavior inside a Penning Trap</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&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&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&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('typedefs_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">typedefs.hpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="typedefs_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="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifndef __TYPEDEFS__</span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#define __TYPEDEFS__</span></div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include <armadillo></span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23"> 24</a></span><span class="keyword">typedef</span> std::vector<arma::vec::fixed<3>> <a class="code hl_typedef" href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a>;</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66"> 28</a></span><span class="keyword">typedef</span> std::vector<arma::vec::fixed<3>> <a class="code hl_typedef" href="typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66">sim_rows</a>;</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af"> 32</a></span><span class="keyword">typedef</span> std::vector<sim_cols> <a class="code hl_typedef" href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a>;</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df"> 36</a></span><span class="keyword">typedef</span> arma::vec::fixed<3> <a class="code hl_typedef" href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a>;</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="atypedefs_8hpp_html_a7c2dfa854274262c4e00e4ef0ab2ce23"><div class="ttname"><a href="typedefs_8hpp.html#a7c2dfa854274262c4e00e4ef0ab2ce23">sim_cols</a></div><div class="ttdeci">std::vector< arma::vec::fixed< 3 > > sim_cols</div><div class="ttdoc">Typedef for the column of the result vector from simulating particles.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00024">typedefs.hpp:24</a></div></div>
|
||||
<div class="ttc" id="atypedefs_8hpp_html_a8502989b1b361725834fc185bd575f66"><div class="ttname"><a href="typedefs_8hpp.html#a8502989b1b361725834fc185bd575f66">sim_rows</a></div><div class="ttdeci">std::vector< arma::vec::fixed< 3 > > sim_rows</div><div class="ttdoc">Typedef for the row of the result vector from simulating particles.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00028">typedefs.hpp:28</a></div></div>
|
||||
<div class="ttc" id="atypedefs_8hpp_html_a9f33f4962c8fb62cc5ccd0e4e039a8df"><div class="ttname"><a href="typedefs_8hpp.html#a9f33f4962c8fb62cc5ccd0e4e039a8df">vec_3d</a></div><div class="ttdeci">arma::vec::fixed< 3 > vec_3d</div><div class="ttdoc">Typedef for a fixed 3d arma vector.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00036">typedefs.hpp:36</a></div></div>
|
||||
<div class="ttc" id="atypedefs_8hpp_html_aec69d34220fff45de238b9e01f2686af"><div class="ttname"><a href="typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af">sim_arr</a></div><div class="ttdeci">std::vector< sim_cols > sim_arr</div><div class="ttdoc">Typedef for the result of the simulate method.</div><div class="ttdef"><b>Definition:</b> <a href="typedefs_8hpp_source.html#l00032">typedefs.hpp:32</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="typedefs_8hpp.html">typedefs.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>
|
||||
@ -106,7 +106,8 @@ $(document).ready(function(){initNavTree('utils_8cpp.html',''); initResizable();
|
||||
|
||||
<p>Implementation of the utils.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include "<a class="el" href="utils_8hpp_source.html">utils.hpp</a>"</code><br />
|
||||
<div class="textblock"><code>#include <sys/stat.h></code><br />
|
||||
<code>#include "<a class="el" href="utils_8hpp_source.html">utils.hpp</a>"</code><br />
|
||||
</div>
|
||||
<p><a href="utils_8cpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
@ -124,6 +125,9 @@ Functions</h2></td></tr>
|
||||
<tr class="memitem:a5d2e1e032fd19614f2fbb58149a7b02a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a">arma_vector_close_to</a> (arma::vec &a, arma::vec &b, double tol)</td></tr>
|
||||
<tr class="memdesc:a5d2e1e032fd19614f2fbb58149a7b02a"><td class="mdescLeft"> </td><td class="mdescRight">Test if two armadillo vectors are close to each other. <br /></td></tr>
|
||||
<tr class="separator:a5d2e1e032fd19614f2fbb58149a7b02a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acf13f4e492199cb7231bfa646dbd08de"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de">mkpath</a> (std::string path, int mode)</td></tr>
|
||||
<tr class="memdesc:acf13f4e492199cb7231bfa646dbd08de"><td class="mdescLeft"> </td><td class="mdescRight">Make path given. <br /></td></tr>
|
||||
<tr class="separator:acf13f4e492199cb7231bfa646dbd08de"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Implementation of the utils. </p>
|
||||
@ -131,7 +135,7 @@ Functions</h2></td></tr>
|
||||
<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#_bug000009">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000010">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
|
||||
<p class="definition">Definition in file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
</div><h2 class="groupheader">Function Documentation</h2>
|
||||
@ -177,9 +181,9 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Boolean </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00059">59</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00062">62</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -247,7 +251,48 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00040">40</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00043">43</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="acf13f4e492199cb7231bfa646dbd08de" name="acf13f4e492199cb7231bfa646dbd08de"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acf13f4e492199cb7231bfa646dbd08de">◆ </a></span>mkpath()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool mkpath </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">std::string </td>
|
||||
<td class="paramname"><em>path</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>mode</em> = <code>0777</code> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Make path given. </p>
|
||||
<p>This tries to be the equivalent to "mkdir -p" and creates a new directory whenever it needs to.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">path</td><td>The path to be created </td></tr>
|
||||
<tr><td class="paramname">mode</td><td>The mode/permissions for all the new directories</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00076">76</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -284,6 +329,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Turns a vector of doubles into a string written in scientific format. </p>
|
||||
<p>The code is stolen from <a href="https://github.com/anderkve/FYS3150">https://github.com/anderkve/FYS3150</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">v</td><td>The vector to stringify </td></tr>
|
||||
@ -292,9 +338,9 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00021">21</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00024">24</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -331,7 +377,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Turns a double into a string written in scientific format. </p>
|
||||
<p>Code stolen from <a href="https://github.com/anderkve/FYS3150">https://github.com/anderkve/FYS3150</a> Header: <a href="https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/include/utils.hpp">https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/include/utils.hpp</a> Source: <a href="https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/src/utils.cpp">https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/src/utils.cpp</a> </p>
|
||||
<p>The code is stolen from <a href="https://github.com/anderkve/FYS3150">https://github.com/anderkve/FYS3150</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">d</td><td>The number to stringify </td></tr>
|
||||
@ -340,9 +386,9 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00014">14</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00017">17</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -2,6 +2,7 @@ var utils_8cpp =
|
||||
[
|
||||
[ "arma_vector_close_to", "utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a", null ],
|
||||
[ "m_assert", "utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b", null ],
|
||||
[ "mkpath", "utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de", null ],
|
||||
[ "scientific_format", "utils_8cpp.html#a58565270b643b24e3132f38c653e0199", null ],
|
||||
[ "scientific_format", "utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746", null ]
|
||||
];
|
||||
@ -102,69 +102,97 @@ $(document).ready(function(){initNavTree('utils_8cpp_source.html',''); initResiz
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="utils_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include "<a class="code" href="utils_8hpp.html">utils.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384"> 14</a></span>std::string <a class="code hl_function" href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">scientific_format</a>(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> prec)</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> std::stringstream ss;</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> ss << std::setw(width) << std::setprecision(prec) << std::scientific << d;</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordflow">return</span> ss.str();</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="utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d"> 21</a></span>std::string <a class="code hl_function" href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">scientific_format</a>(<span class="keyword">const</span> std::vector<double> &v, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> prec)</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> std::stringstream ss;</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">for</span> (<span class="keywordtype">double</span> elem : v) {</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> ss << <a class="code hl_function" href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">scientific_format</a>(elem, width, prec);</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> }</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">return</span> ss.str();</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>}</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">static</span> <span class="keywordtype">void</span> print_message(std::string msg)</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>{</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">if</span> (msg.size() > 0) {</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> std::cout << <span class="stringliteral">"message: "</span> << msg << <span class="stringliteral">"\n\n"</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> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> std::cout << <span class="stringliteral">"\n"</span>;</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <sys/stat.h></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 "<a class="code" href="utils_8hpp.html">utils.hpp</a>"</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="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384"> 17</a></span>std::string <a class="code hl_function" href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">scientific_format</a>(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> prec)</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> std::stringstream ss;</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> ss << std::setw(width) << std::setprecision(prec) << std::scientific << d;</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">return</span> ss.str();</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"><a class="line" href="utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d"> 24</a></span>std::string <a class="code hl_function" href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">scientific_format</a>(<span class="keyword">const</span> std::vector<double> &v, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> prec)</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> std::stringstream ss;</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">for</span> (<span class="keywordtype">double</span> elem : v) {</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> ss << <a class="code hl_function" href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">scientific_format</a>(elem, width, prec);</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="keywordflow">return</span> ss.str();</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> </div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">static</span> <span class="keywordtype">void</span> print_message(std::string msg)</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">if</span> (msg.size() > 0) {</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> std::cout << <span class="stringliteral">"message: "</span> << msg << <span class="stringliteral">"\n\n"</span>;</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>}</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"><a class="line" href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38"> 40</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b">m_assert</a>(<span class="keywordtype">bool</span> expr, std::string expr_str, std::string f, std::string file,</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordtype">int</span> line, std::string msg)</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> std::string new_assert(f.size() + (expr ? 4 : 6), <span class="charliteral">'-'</span>);</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> std::cout << <span class="stringliteral">"\x1B[36m"</span> << new_assert << <span class="stringliteral">"\033[0m\n"</span>;</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> std::cout << f << <span class="stringliteral">": "</span>;</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">if</span> (expr) {</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> std::cout << <span class="stringliteral">"\x1B[32mOK\033[0m\n"</span>;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> print_message(msg);</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> std::cout << <span class="stringliteral">"\x1B[31mFAIL\033[0m\n"</span>;</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> print_message(msg);</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> std::cout << file << <span class="stringliteral">" "</span> << line << <span class="stringliteral">": Assertion \""</span> << expr_str</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> << <span class="stringliteral">"\" Failed\n\n"</span>;</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> abort();</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772"> 59</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a">arma_vector_close_to</a>(arma::vec &a, arma::vec &b, <span class="keywordtype">double</span> tol)</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>{</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span> (a.n_elem != b.n_elem) {</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < a.n_elem; i++) {</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (std::abs(a(i) - b(i)) >= tol) {</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> }</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>}</div>
|
||||
<div class="ttc" id="autils_8cpp_html_a5d2e1e032fd19614f2fbb58149a7b02a"><div class="ttname"><a href="utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a">arma_vector_close_to</a></div><div class="ttdeci">bool arma_vector_close_to(arma::vec &a, arma::vec &b, double tol)</div><div class="ttdoc">Test if two armadillo vectors are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00059">utils.cpp:59</a></div></div>
|
||||
<div class="ttc" id="autils_8cpp_html_acd2a9c7a7d5a7fe9163be8c4cc110746"><div class="ttname"><a href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width, int prec)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00014">utils.cpp:14</a></div></div>
|
||||
<div class="ttc" id="autils_8cpp_html_aff5e07c3c1d321709b0cc38e999f427b"><div class="ttname"><a href="utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b">m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string f, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00040">utils.cpp:40</a></div></div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> std::cout << <span class="stringliteral">"\n"</span>;</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38"> 43</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b">m_assert</a>(<span class="keywordtype">bool</span> expr, std::string expr_str, std::string f, std::string file,</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">int</span> line, std::string msg)</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> std::string new_assert(f.size() + (expr ? 4 : 6), <span class="charliteral">'-'</span>);</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> std::cout << <span class="stringliteral">"\x1B[36m"</span> << new_assert << <span class="stringliteral">"\033[0m\n"</span>;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> std::cout << f << <span class="stringliteral">": "</span>;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">if</span> (expr) {</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> std::cout << <span class="stringliteral">"\x1B[32mOK\033[0m\n"</span>;</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> print_message(msg);</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> std::cout << <span class="stringliteral">"\x1B[31mFAIL\033[0m\n"</span>;</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> print_message(msg);</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> std::cout << file << <span class="stringliteral">" "</span> << line << <span class="stringliteral">": Assertion \""</span> << expr_str</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> << <span class="stringliteral">"\" Failed\n\n"</span>;</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> abort();</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>}</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772"> 62</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a">arma_vector_close_to</a>(arma::vec &a, arma::vec &b, <span class="keywordtype">double</span> tol)</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>{</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">if</span> (a.n_elem != b.n_elem) {</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">return</span> <span class="keyword">false</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> </div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < a.n_elem; i++) {</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (std::abs(a(i) - b(i)) >= tol) {</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
|
||||
<div class="line"><a id="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">return</span> <span class="keyword">true</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> </div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa"> 76</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de">mkpath</a>(std::string path, <span class="keywordtype">int</span> mode)</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>{</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> std::string cur_dir;</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> std::string::size_type pos = -1;</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">struct </span>stat buf;</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> <span class="keywordflow">if</span> (path.back() != <span class="charliteral">'/'</span>) {</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> path += <span class="charliteral">'/'</span>;</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> pos++;</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> pos = path.find(<span class="charliteral">'/'</span>, pos);</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">if</span> (pos != std::string::npos) {</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> cur_dir = path.substr(0, pos);</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">if</span> (mkdir(cur_dir.c_str(), mode) != 0 && stat(cur_dir.c_str(), &buf) != 0) {</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">return</span> -1;</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> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>}</div>
|
||||
<div class="ttc" id="autils_8cpp_html_a5d2e1e032fd19614f2fbb58149a7b02a"><div class="ttname"><a href="utils_8cpp.html#a5d2e1e032fd19614f2fbb58149a7b02a">arma_vector_close_to</a></div><div class="ttdeci">bool arma_vector_close_to(arma::vec &a, arma::vec &b, double tol)</div><div class="ttdoc">Test if two armadillo vectors are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00062">utils.cpp:62</a></div></div>
|
||||
<div class="ttc" id="autils_8cpp_html_acd2a9c7a7d5a7fe9163be8c4cc110746"><div class="ttname"><a href="utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746">scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width, int prec)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00017">utils.cpp:17</a></div></div>
|
||||
<div class="ttc" id="autils_8cpp_html_acf13f4e492199cb7231bfa646dbd08de"><div class="ttname"><a href="utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de">mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00076">utils.cpp:76</a></div></div>
|
||||
<div class="ttc" id="autils_8cpp_html_aff5e07c3c1d321709b0cc38e999f427b"><div class="ttname"><a href="utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b">m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string f, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00043">utils.cpp:43</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 -->
|
||||
|
||||
@ -124,6 +124,7 @@ Macros</h2></td></tr>
|
||||
<tr class="memdesc:a73d4f21ad937dbc50a0c0538c78fd4f9"><td class="mdescLeft"> </td><td class="mdescRight">A prettier assertion function. <br /></td></tr>
|
||||
<tr class="separator:a73d4f21ad937dbc50a0c0538c78fd4f9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a60dca3177fb9cb5256609adc7af55168"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">__METHOD_NAME__</a>   methodName(__PRETTY_FUNCTION__)</td></tr>
|
||||
<tr class="memdesc:a60dca3177fb9cb5256609adc7af55168"><td class="mdescLeft"> </td><td class="mdescRight">Get the name of the current method/function. <br /></td></tr>
|
||||
<tr class="separator:a60dca3177fb9cb5256609adc7af55168"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
@ -140,6 +141,9 @@ Functions</h2></td></tr>
|
||||
<tr class="memitem:a0c95c4791692b06f8811905a76dbd772"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a> (arma::vec &a, arma::vec &b, double tol=1e-8)</td></tr>
|
||||
<tr class="memdesc:a0c95c4791692b06f8811905a76dbd772"><td class="mdescLeft"> </td><td class="mdescRight">Test if two armadillo vectors are close to each other. <br /></td></tr>
|
||||
<tr class="separator:a0c95c4791692b06f8811905a76dbd772"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6fdd7217b750aff5b6295ece7cbdeffa"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">mkpath</a> (std::string path, int mode=0777)</td></tr>
|
||||
<tr class="memdesc:a6fdd7217b750aff5b6295ece7cbdeffa"><td class="mdescLeft"> </td><td class="mdescRight">Make path given. <br /></td></tr>
|
||||
<tr class="separator:a6fdd7217b750aff5b6295ece7cbdeffa"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Function prototypes and macros that are useful. </p>
|
||||
@ -148,7 +152,7 @@ Functions</h2></td></tr>
|
||||
Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
<dl class="section version"><dt>Version</dt><dd>1.0</dd></dl>
|
||||
<p>These utility function are mainly for convenience and aren't directly related to the project.</p>
|
||||
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000004">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
<dl class="bug"><dt><b><a class="el" href="bug.html#_bug000005">Bug:</a></b></dt><dd>No known bugs </dd></dl>
|
||||
|
||||
<p class="definition">Definition in file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p>
|
||||
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
@ -164,7 +168,9 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8hpp_source.html#l00048">48</a> of file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p>
|
||||
<p>Get the name of the current method/function. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8hpp_source.html#l00051">51</a> of file <a class="el" href="utils_8hpp_source.html">utils.hpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -193,9 +199,10 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<b>Value:</b><div class="fragment"><div class="line"> <a class="code hl_function" href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">m_assert</a>(expr, #expr, __METHOD_NAME__, __FILE__, \</div>
|
||||
<b>Value:</b><div class="fragment"><div class="line"> <a class="code hl_function" href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">m_assert</a>(expr, #expr, <a class="code hl_define" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">__METHOD_NAME__</a>, __FILE__, \</div>
|
||||
<div class="line"> __LINE__, msg)</div>
|
||||
<div class="ttc" id="autils_8hpp_html_a2cc3a2cdb635bac3c8b02e89d4d6af38"><div class="ttname"><a href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00040">utils.cpp:40</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a2cc3a2cdb635bac3c8b02e89d4d6af38"><div class="ttname"><a href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00043">utils.cpp:43</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a60dca3177fb9cb5256609adc7af55168"><div class="ttname"><a href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168">__METHOD_NAME__</a></div><div class="ttdeci">#define __METHOD_NAME__</div><div class="ttdoc">Get the name of the current method/function.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8hpp_source.html#l00051">utils.hpp:51</a></div></div>
|
||||
</div><!-- fragment -->
|
||||
<p>A prettier assertion function. </p>
|
||||
<p>This macro calls the m_assert function which is a more informative assertion function than the regular assert function from cassert. </p>
|
||||
@ -270,9 +277,9 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Boolean </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00059">59</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00062">62</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -340,7 +347,48 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00040">40</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00043">43</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a6fdd7217b750aff5b6295ece7cbdeffa" name="a6fdd7217b750aff5b6295ece7cbdeffa"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6fdd7217b750aff5b6295ece7cbdeffa">◆ </a></span>mkpath()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool mkpath </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">std::string </td>
|
||||
<td class="paramname"><em>path</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>mode</em> = <code>0777</code> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Make path given. </p>
|
||||
<p>This tries to be the equivalent to "mkdir -p" and creates a new directory whenever it needs to.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">path</td><td>The path to be created </td></tr>
|
||||
<tr><td class="paramname">mode</td><td>The mode/permissions for all the new directories</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00076">76</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -377,6 +425,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Turns a vector of doubles into a string written in scientific format. </p>
|
||||
<p>The code is stolen from <a href="https://github.com/anderkve/FYS3150">https://github.com/anderkve/FYS3150</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">v</td><td>The vector to stringify </td></tr>
|
||||
@ -385,9 +434,9 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00021">21</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00024">24</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -424,7 +473,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Turns a double into a string written in scientific format. </p>
|
||||
<p>Code stolen from <a href="https://github.com/anderkve/FYS3150">https://github.com/anderkve/FYS3150</a> Header: <a href="https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/include/utils.hpp">https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/include/utils.hpp</a> Source: <a href="https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/src/utils.cpp">https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/src/utils.cpp</a> </p>
|
||||
<p>The code is stolen from <a href="https://github.com/anderkve/FYS3150">https://github.com/anderkve/FYS3150</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">d</td><td>The number to stringify </td></tr>
|
||||
@ -433,9 +482,9 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)</dd></dl>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00014">14</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
<p class="definition">Definition at line <a class="el" href="utils_8cpp_source.html#l00017">17</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
var utils_8hpp =
|
||||
[
|
||||
[ "__METHOD_NAME__", "utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168", null ],
|
||||
[ "ASSERT", "utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9", null ],
|
||||
[ "DEBUG", "utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b", null ],
|
||||
[ "arma_vector_close_to", "utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772", null ],
|
||||
[ "m_assert", "utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38", null ],
|
||||
[ "mkpath", "utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa", null ],
|
||||
[ "scientific_format", "utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d", null ],
|
||||
[ "scientific_format", "utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384", null ]
|
||||
];
|
||||
@ -121,39 +121,45 @@ $(document).ready(function(){initNavTree('utils_8hpp_source.html',''); initResiz
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9"> 45</a></span><span class="preprocessor">#define ASSERT(expr, msg) m_assert(expr, #expr, __METHOD_NAME__, __FILE__, \</span></div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor"> __LINE__, msg)</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><span class="preprocessor">#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)</span></div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168"> 51</a></span><span class="preprocessor">#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)</span></div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>std::string <a class="code hl_function" href="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384">scientific_format</a>(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> width=20, <span class="keywordtype">int</span> prec=10);</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>std::string <a class="code hl_function" href="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384">scientific_format</a>(<span class="keyword">const</span> std::vector<double>& v, </div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">int</span> width=20, </div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordtype">int</span> prec=10);</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="keywordtype">void</span> <a class="code hl_function" href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">m_assert</a>(<span class="keywordtype">bool</span> expr, </div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> std::string expr_str, </div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> std::string func, </div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> std::string file, </div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">int</span> line,</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> std::string msg);</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="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="keywordtype">bool</span> <a class="code hl_function" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a>(arma::vec &a, arma::vec &b, <span class="keywordtype">double</span> tol=1e-8);</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="keyword">static</span> <span class="keyword">inline</span> std::string methodName(<span class="keyword">const</span> std::string& prettyFunction)</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>{</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordtype">size_t</span> colons = prettyFunction.find(<span class="stringliteral">"::"</span>);</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordtype">size_t</span> begin = prettyFunction.substr(0,colons).rfind(<span class="stringliteral">" "</span>) + 1;</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordtype">size_t</span> end = prettyFunction.rfind(<span class="stringliteral">"("</span>) - begin;</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> <span class="keywordflow">return</span> prettyFunction.substr(begin,end) + <span class="stringliteral">"()"</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><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a0c95c4791692b06f8811905a76dbd772"><div class="ttname"><a href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a></div><div class="ttdeci">bool arma_vector_close_to(arma::vec &a, arma::vec &b, double tol=1e-8)</div><div class="ttdoc">Test if two armadillo vectors are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00059">utils.cpp:59</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a2cc3a2cdb635bac3c8b02e89d4d6af38"><div class="ttname"><a href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00040">utils.cpp:40</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_adfb618b2fdff47ef30a4a2b62c04f384"><div class="ttname"><a href="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384">scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00014">utils.cpp:14</a></div></div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>std::string <a class="code hl_function" href="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384">scientific_format</a>(<span class="keyword">const</span> std::vector<double>& v, </div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">int</span> width=20, </div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">int</span> prec=10);</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="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="keywordtype">void</span> <a class="code hl_function" href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">m_assert</a>(<span class="keywordtype">bool</span> expr, </div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> std::string expr_str, </div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> std::string func, </div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> std::string file, </div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">int</span> line,</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> std::string msg);</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> </div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="keywordtype">bool</span> <a class="code hl_function" href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a>(arma::vec &a, arma::vec &b, <span class="keywordtype">double</span> tol=1e-8);</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="keyword">static</span> <span class="keyword">inline</span> std::string methodName(<span class="keyword">const</span> std::string& pretty_function)</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>{</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">size_t</span> colons = pretty_function.find(<span class="stringliteral">"::"</span>);</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordtype">size_t</span> begin = pretty_function.substr(0,colons).rfind(<span class="stringliteral">" "</span>) + 1;</div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordtype">size_t</span> end = pretty_function.rfind(<span class="stringliteral">"("</span>) - begin;</div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">return</span> pretty_function.substr(begin,end) + <span class="stringliteral">"()"</span>;</div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>}</div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="keywordtype">bool</span> <a class="code hl_function" href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">mkpath</a>(std::string path, <span class="keywordtype">int</span> mode = 0777);</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a0c95c4791692b06f8811905a76dbd772"><div class="ttname"><a href="utils_8hpp.html#a0c95c4791692b06f8811905a76dbd772">arma_vector_close_to</a></div><div class="ttdeci">bool arma_vector_close_to(arma::vec &a, arma::vec &b, double tol=1e-8)</div><div class="ttdoc">Test if two armadillo vectors are close to each other.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00062">utils.cpp:62</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a2cc3a2cdb635bac3c8b02e89d4d6af38"><div class="ttname"><a href="utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38">m_assert</a></div><div class="ttdeci">void m_assert(bool expr, std::string expr_str, std::string func, std::string file, int line, std::string msg)</div><div class="ttdoc">Test an expression, confirm that test is ok, or abort execution.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00043">utils.cpp:43</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_a6fdd7217b750aff5b6295ece7cbdeffa"><div class="ttname"><a href="utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa">mkpath</a></div><div class="ttdeci">bool mkpath(std::string path, int mode=0777)</div><div class="ttdoc">Make path given.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00076">utils.cpp:76</a></div></div>
|
||||
<div class="ttc" id="autils_8hpp_html_adfb618b2fdff47ef30a4a2b62c04f384"><div class="ttname"><a href="utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384">scientific_format</a></div><div class="ttdeci">std::string scientific_format(double d, int width=20, int prec=10)</div><div class="ttdoc">Turns a double into a string written in scientific format.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8cpp_source.html#l00017">utils.cpp:17</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
|
||||
@ -14,24 +14,29 @@
|
||||
|
||||
#include <armadillo>
|
||||
|
||||
#include "typedefs.hpp"
|
||||
|
||||
/** @brief A class that holds attributes of a particle
|
||||
* */
|
||||
class Particle {
|
||||
private:
|
||||
double q; ///< Charge
|
||||
double m; ///< Mass
|
||||
arma::vec::fixed<3> r_vec; ///< position
|
||||
arma::vec::fixed<3> v_vec; ///< velocity
|
||||
double q; ///< Charge
|
||||
double m; ///< Mass
|
||||
vec_3d r_vec; ///< position
|
||||
vec_3d v_vec; ///< velocity
|
||||
|
||||
public:
|
||||
/** @brief Initialize the particle.
|
||||
*
|
||||
* @details Initialize the particle with a charge, mass, position and
|
||||
* velocity.
|
||||
*
|
||||
* @param q The charge of the particle
|
||||
* @param m The mass of the particle
|
||||
* @param r_vec The initial position of the particle
|
||||
* @param v_vec The initial velocity of the particle
|
||||
* */
|
||||
Particle(double q, double m,
|
||||
arma::vec::fixed<3> r_vec,
|
||||
arma::vec::fixed<3> v_vec);
|
||||
Particle(double q, double m, vec_3d r_vec, vec_3d v_vec);
|
||||
|
||||
/** @brief Make private attributes available for PenningTrap.
|
||||
* */
|
||||
|
||||
@ -17,9 +17,15 @@
|
||||
|
||||
#include "Particle.hpp"
|
||||
#include "constants.hpp"
|
||||
#include "typedefs.hpp"
|
||||
|
||||
#pragma omp declare reduction( + : arma::vec : omp_out += omp_in ) \
|
||||
initializer( omp_priv = omp_orig )
|
||||
#pragma omp declare reduction(+ : vec_3d : omp_out += omp_in) \
|
||||
initializer(omp_priv = omp_orig)
|
||||
|
||||
typedef struct simulation {
|
||||
sim_arr r_vecs;
|
||||
sim_arr v_vecs;
|
||||
} simulation_t;
|
||||
|
||||
/** @brief A class that simulates a Penning trap.
|
||||
*
|
||||
@ -28,61 +34,197 @@
|
||||
* */
|
||||
class PenningTrap {
|
||||
private:
|
||||
double B_0; ///< Magnetic field strength
|
||||
double V_0; ///< Applied potential
|
||||
double d; ///< Characteristic dimension
|
||||
std::vector<Particle> particles; ///< The particles in the Penning trap
|
||||
double B_0; ///< Magnetic field strength
|
||||
std::function<double(double)> V_0; ///< Applied potential
|
||||
double d; ///< Characteristic dimension
|
||||
double t; ///< Current time
|
||||
std::vector<Particle> particles; ///< The particles in the Penning trap
|
||||
sim_arr k_v; ///< A 2D vector containing all \f$k_{i,j}\f$ where \f$j\f$ is
|
||||
///< the index of a particle
|
||||
sim_arr k_r; ///< A 2D vector containing all \f$k_{i,j}\f$ where \f$j\f$ is
|
||||
///< the index of a particle
|
||||
|
||||
/** @brief Helper for evolve_RK4 when calculating \f$k_{v,i,j}\f$ values
|
||||
*
|
||||
* @details Something
|
||||
*
|
||||
* @param i Index i for \f$k_{v,i,j}\f$
|
||||
* @param j Index j for \f$k_{v,i,j}\f$
|
||||
* @param dt the step length (delta time)
|
||||
*
|
||||
* @return vec_3d
|
||||
* */
|
||||
vec_3d v_func(unsigned int i, unsigned int j, double dt);
|
||||
|
||||
/** @brief Helper for evolve_RK4 when calculating \f$k_{r,i,j}\f$ values
|
||||
*
|
||||
* @details Something
|
||||
*
|
||||
* @param i Index i for \f$k_{r,i,j}\f$
|
||||
* @param j Index j for \f$k_{r,i,j}\f$
|
||||
* @param dt the step length (delta time)
|
||||
*
|
||||
* @return vec_3d
|
||||
* */
|
||||
vec_3d r_func(unsigned int i, unsigned int j, double dt);
|
||||
|
||||
public:
|
||||
/** @brief Set B_0, V_0 and d.
|
||||
/** @brief Constructor for the PenningTrap class
|
||||
*
|
||||
* @param B_0 The magnetic field strength
|
||||
* @param V_0 The time dependent applied potential
|
||||
* @param d The characteristic dimension
|
||||
* @param t The starting time
|
||||
* */
|
||||
PenningTrap(double B_0 = T, double V_0 = 25.*V/1000., double d = 500.);
|
||||
PenningTrap(
|
||||
double B_0 = T,
|
||||
std::function<double(double)> V_0 =
|
||||
[](double t) { return 25. * V / 1000.; },
|
||||
double d = 500., double t = 0.);
|
||||
|
||||
/** @brief Constructor for the PenningTrap class
|
||||
*
|
||||
* @param i The number of particles to generate
|
||||
* @param B_0 The magnetic field strength
|
||||
* @param V_0 The time dependent applied potential
|
||||
* @param d The characteristic dimension
|
||||
* @param t The starting time
|
||||
* */
|
||||
PenningTrap(
|
||||
unsigned int i, double B_0 = T,
|
||||
std::function<double(double)> V_0 =
|
||||
[](double t) { return 25. * V / 1000.; },
|
||||
double d = 500., double t = 0.);
|
||||
|
||||
/** @brief Constructor for the PenningTrap class
|
||||
*
|
||||
* @param particles The starting particles
|
||||
* @param B_0 The magnetic field strength
|
||||
* @param V_0 The time dependent applied potential
|
||||
* @param d The characteristic dimension
|
||||
* @param t The starting time
|
||||
* */
|
||||
PenningTrap(
|
||||
std::vector<Particle> particles, double B_0 = T,
|
||||
std::function<double(double)> V_0 =
|
||||
[](double t) { return 25. * V / 1000.; },
|
||||
double d = 500., double t = 0.);
|
||||
|
||||
/** @brief Add a particle to the system
|
||||
*
|
||||
* @param particle The particle to add to the Penning trap
|
||||
* */
|
||||
void add_particle(Particle particle);
|
||||
|
||||
/** @brief Calculate E at point r
|
||||
*
|
||||
* @param r The position where we want to calculate the E field
|
||||
*
|
||||
* @return vec_3d
|
||||
* */
|
||||
arma::vec external_E_field(arma::vec r);
|
||||
vec_3d external_E_field(vec_3d r);
|
||||
|
||||
/** @brief Calculate B at point r
|
||||
*
|
||||
* @param r The position where we want to calculate the B field
|
||||
*
|
||||
* @return vec_3d
|
||||
* */
|
||||
arma::vec external_B_field(arma::vec r);
|
||||
vec_3d external_B_field(vec_3d r);
|
||||
|
||||
/** @brief Calculate the force between 2 particles.
|
||||
*
|
||||
* @details Calculate the force exhibited on particle p_i from
|
||||
* particle p_j.
|
||||
*
|
||||
* @param i The index of particle p_i
|
||||
* @param j The index of particle p_j
|
||||
*
|
||||
* @return vec_3d
|
||||
* */
|
||||
arma::vec force_on_particle(int i, int j);
|
||||
vec_3d force_on_particle(unsigned int i, unsigned int j);
|
||||
|
||||
/** @brief Calculate the total external force on a particle.
|
||||
*
|
||||
* @details Calculate the total amount of force that E and B exhibits
|
||||
* on particle p_i.
|
||||
*
|
||||
* @param i The index of particle p_i
|
||||
*
|
||||
* @return vec_3d
|
||||
* */
|
||||
arma::vec total_force_external(int i);
|
||||
vec_3d total_force_external(unsigned int i);
|
||||
|
||||
/** @brief Calculate the total force on a particle from other particles.
|
||||
/** @brief Calculate the total force on a particle p_i from other particles.
|
||||
*
|
||||
* @param i The index of particle p_i
|
||||
*
|
||||
* @return vec_3d
|
||||
* */
|
||||
arma::vec total_force_particles(int i);
|
||||
vec_3d total_force_particles(unsigned int i);
|
||||
|
||||
/** @brief calculate the total force on a particle.
|
||||
/** @brief calculate the total force on a particle p_i.
|
||||
*
|
||||
* @param i The index of particle p_i
|
||||
*
|
||||
* @return vec_3d
|
||||
* */
|
||||
arma::vec total_force(int i);
|
||||
vec_3d total_force(unsigned int i);
|
||||
|
||||
/** @brief Go forward one timestep using the RK4 method
|
||||
*
|
||||
* @param dt The step length
|
||||
* @param particle_interaction Turn particle interactions on/off
|
||||
* */
|
||||
void evolve_RK4(double dt);
|
||||
void evolve_RK4(double dt, bool particle_interaction = true);
|
||||
|
||||
/** @brief Go forward one timestep using the forward Euler method
|
||||
*
|
||||
* @param dt The step length
|
||||
* @param particle_interaction Turn particle interactions on/off
|
||||
* */
|
||||
void evolve_forward_euler(double dt);
|
||||
void evolve_forward_euler(double dt, bool particle_interaction = true);
|
||||
|
||||
arma::vec get_particle(int i);
|
||||
/** @brief Simulate the particle system inside the Penning trap over
|
||||
* a certain amount of time.
|
||||
*
|
||||
* @param time The time to simulate in microseconds
|
||||
* @param steps The amount of steps for the whole simulation
|
||||
* @param method The method to use when moving forward a timestep
|
||||
* @param particle_interaction Turn particle interactions on/off
|
||||
* */
|
||||
simulation_t simulate(double time, unsigned int steps,
|
||||
std::string method = "rk4",
|
||||
bool particle_interaction = true);
|
||||
|
||||
double get_d();
|
||||
/** @brief Simulate and write the displacement of all particles to files.
|
||||
*
|
||||
* @param path The directory to save the data
|
||||
* @param time The time to simulate in microseconds
|
||||
* @param steps The amount of steps for the whole simulation
|
||||
* @param method The method to use when moving forward a timestep
|
||||
* @param particle_interaction Turn particle interactions on/off
|
||||
* */
|
||||
void write_simulation_to_dir(std::string path, double time,
|
||||
unsigned int steps, std::string method = "rk4",
|
||||
bool particle_interaction = true);
|
||||
|
||||
/** @brief Simulate and calculate what fraction of particles are still
|
||||
* left inside the Penning trap after the simulation.
|
||||
*
|
||||
* @param time The time to simulate in microseconds
|
||||
* @param steps The amount of steps for the whole simulation
|
||||
* @param method The method to use when moving forward a timestep
|
||||
* @param particle_interaction Turn particle interactions on/off
|
||||
*
|
||||
* @return double
|
||||
* */
|
||||
double fraction_of_particles_left(double time, unsigned int steps,
|
||||
std::string method = "rk4",
|
||||
bool particle_interaction = true);
|
||||
|
||||
vec_3d get_r(int i);
|
||||
double get_t();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
38
include/typedefs.hpp
Normal file
38
include/typedefs.hpp
Normal file
@ -0,0 +1,38 @@
|
||||
/** @file typedefs.hpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 1.0
|
||||
*
|
||||
* @brief Useful typedefs for cleaner code.
|
||||
*
|
||||
* @details These typedefs make the code more readable and easy to follow
|
||||
* along.
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#ifndef __TYPEDEFS__
|
||||
#define __TYPEDEFS__
|
||||
|
||||
#include <vector>
|
||||
#include <armadillo>
|
||||
|
||||
/** @brief Typedef for the column of the result vector from simulating
|
||||
* particles.
|
||||
* */
|
||||
typedef std::vector<arma::vec::fixed<3>> sim_cols;
|
||||
|
||||
/** @brief Typedef for the row of the result vector from simulating particles.
|
||||
* */
|
||||
typedef std::vector<arma::vec::fixed<3>> sim_rows;
|
||||
|
||||
/** @brief Typedef for the result of the simulate method.
|
||||
* */
|
||||
typedef std::vector<sim_cols> sim_arr;
|
||||
|
||||
/** @brief Typedef for a fixed 3d arma vector.
|
||||
* */
|
||||
typedef arma::vec::fixed<3> vec_3d;
|
||||
|
||||
#endif
|
||||
@ -45,40 +45,44 @@
|
||||
#define ASSERT(expr, msg) m_assert(expr, #expr, __METHOD_NAME__, __FILE__, \
|
||||
__LINE__, msg)
|
||||
|
||||
/** @def __METHOD_NAME__
|
||||
* @brief Get the name of the current method/function.
|
||||
* */
|
||||
#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)
|
||||
|
||||
|
||||
/** Code stolen from https://github.com/anderkve/FYS3150
|
||||
* Header: https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/include/utils.hpp
|
||||
* Source: https://github.com/anderkve/FYS3150/blob/master/code_examples/compilation_linking/example_1/src/utils.cpp
|
||||
* */
|
||||
|
||||
/** @brief Turns a double into a string written in scientific format.
|
||||
*
|
||||
* @details The code is stolen from https://github.com/anderkve/FYS3150.
|
||||
*
|
||||
* @param d The number to stringify
|
||||
* @param width The reserved width of the string
|
||||
* @param prec The precision of the stringified number
|
||||
*
|
||||
* @return String
|
||||
* @return std::string
|
||||
* */
|
||||
std::string scientific_format(double d, int width=20, int prec=10);
|
||||
|
||||
|
||||
/** @brief Turns a vector of doubles into a string written in scientific format.
|
||||
*
|
||||
* @details The code is stolen from https://github.com/anderkve/FYS3150.
|
||||
*
|
||||
* @param v The vector to stringify
|
||||
* @param width The reserved width of the string
|
||||
* @param prec The precision of the stringified number
|
||||
*
|
||||
* @return String
|
||||
* @return std::string
|
||||
* */
|
||||
std::string scientific_format(const std::vector<double>& v,
|
||||
int width=20,
|
||||
int prec=10);
|
||||
|
||||
|
||||
/** @brief Test an expression, confirm that test is ok, or abort execution.
|
||||
*
|
||||
* This function takes in an expression and prints an OK message if it's
|
||||
* true, or it prints a fail message and aborts execution if it fails.
|
||||
* @details This function takes in an expression and prints an OK message if
|
||||
* it's true, or it prints a fail message and aborts execution if it fails.
|
||||
*
|
||||
* @param expr The expression to be evaluated
|
||||
* @param expr_str The stringified version of the expression
|
||||
@ -97,25 +101,48 @@ void m_assert(bool expr,
|
||||
|
||||
/** @brief Test if two armadillo vectors are close to each other.
|
||||
*
|
||||
* This function takes in 2 vectors and checks if they are approximately
|
||||
* equal to each other given a tolerance.
|
||||
* @details This function takes in 2 vectors and checks if they are
|
||||
* approximately equal to each other given a tolerance.
|
||||
*
|
||||
* @param a Vector a
|
||||
* @param b Vector b
|
||||
* @param tol The tolerance
|
||||
*
|
||||
* @return Boolean
|
||||
* @return bool
|
||||
* */
|
||||
bool arma_vector_close_to(arma::vec &a, arma::vec &b, double tol=1e-8);
|
||||
|
||||
|
||||
static inline std::string methodName(const std::string& prettyFunction)
|
||||
/** @brief Takes in the __PRETTY_FUNCTION__ string and removes the return type.
|
||||
*
|
||||
* @details This function should only be used for the __METHOD_NAME__ macro,
|
||||
* since it takes the output from __PRETTY_FUNCTION__ and strips the return
|
||||
* type.
|
||||
*
|
||||
* @param pretty_function The string from __PRETTY_FUNCTION__
|
||||
*
|
||||
* @return std::string
|
||||
* */
|
||||
static inline std::string methodName(const std::string& pretty_function)
|
||||
{
|
||||
size_t colons = prettyFunction.find("::");
|
||||
size_t begin = prettyFunction.substr(0,colons).rfind(" ") + 1;
|
||||
size_t end = prettyFunction.rfind("(") - begin;
|
||||
size_t colons = pretty_function.find("::");
|
||||
size_t begin = pretty_function.substr(0,colons).rfind(" ") + 1;
|
||||
size_t end = pretty_function.rfind("(") - begin;
|
||||
|
||||
return prettyFunction.substr(begin,end) + "()";
|
||||
return pretty_function.substr(begin,end) + "()";
|
||||
}
|
||||
|
||||
|
||||
/** @brief Make path given.
|
||||
*
|
||||
* @details This tries to be the equivalent to "mkdir -p" and creates a new
|
||||
* directory whenever it needs to.
|
||||
*
|
||||
* @param path The path to be created
|
||||
* @param mode The mode/permissions for all the new directories
|
||||
*
|
||||
* @return bool
|
||||
* */
|
||||
bool mkpath(std::string path, int mode = 0777);
|
||||
|
||||
#endif
|
||||
|
||||
BIN
latex/images/3d_plot.pdf
Normal file
BIN
latex/images/3d_plot.pdf
Normal file
Binary file not shown.
BIN
latex/images/particles_left.pdf
Normal file
BIN
latex/images/particles_left.pdf
Normal file
Binary file not shown.
BIN
latex/images/phase_space_2_particles.pdf
Normal file
BIN
latex/images/phase_space_2_particles.pdf
Normal file
Binary file not shown.
BIN
latex/images/phase_space_2_particles_x.pdf
Normal file
BIN
latex/images/phase_space_2_particles_x.pdf
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user