<a href="v__compute_8hh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Voro++, a 3D cell-based Voronoi library</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * \brief Header file for the voro_compute template and related classes. */</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="config_8hh.html" title="Master configuration file for setting various compile-time options.">config.hh</a>"</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="worklist_8hh.html" title="Header file for setting constants used in the block worklists that are used during cell computation...">worklist.hh</a>"</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="cell_8hh.html" title="Header file for the voronoicell and related classes.">cell.hh</a>"</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">/** \brief Structure for holding information about a particle.</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * This small structure holds information about a single particle, and is used</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * by several of the routines in the voro_compute template for passing</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * information by reference between functions. */</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="structvoro_1_1particle__record.html"> 24</a></span> <span class="keyword">struct </span><a class="code" href="structvoro_1_1particle__record.html" title="Structure for holding information about a particle.">particle_record</a> {<span class="comment"></span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> /** The index of the block that the particle is within. */</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> /** The number of particle within its block. */</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> /** A reference to the container class on which to carry out*/</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> /** The size of an internal computational block in the x</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> /** The size of an internal computational block in the y</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> /** The size of an internal computational block in the z</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> /** The inverse box length in the x direction, set to</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> /** The inverse box length in the y direction, set to</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> /** The inverse box length in the z direction, set to</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> /** The number of boxes in the x direction for the searching mask. */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> /** The number of boxes in the y direction for the searching mask. */</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> /** The number of boxes in the z direction for the searching mask. */</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> /** A constant, set to the value of hx multiplied by hy, which</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> * is used in the routines which step through mask boxes in</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> /** A constant, set to the value of hx*hy*hz, which is used in</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> * the routines which step through mask boxes in sequence. */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> /** The number of floating point entries to store for each</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> /** This array holds the numerical IDs of each particle in each</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> /** An array holding the number of particles within each</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"> * computational box of the container. */</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> /** The class destructor frees the dynamically allocated memory</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment"> * for the mask and queue. */</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> /** A constant set to boxx*boxx+boxy*boxy+boxz*boxz, which is</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> * frequently used in the computation. */</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> /** This sets the current value being used to mark tested blocks</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> * in the mask. */</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> /** The current size of the search list. */</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> /** A pointer to the array of worklists. */</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"> /** An pointer to the array holding the minimum distances</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> * associated with the worklists. */</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> /** This array is used during the cell computation to determine</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> * which blocks have been considered. */</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> /** An array is used to store the queue of blocks to test</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> * during the Voronoi cell computation. */</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> /** A pointer to the end of the queue array, used to determine</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> * when the queue is full. */</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> /** Resets the mask in cases where the mask counter wraps</span></div>