<ahref="container__prd_8hh.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">// Voro++, a 3D cell-based Voronoi library</span></div>
<divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment"> * \brief Header file for the container_periodic_base and related classes. */</span></div>
<divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="preprocessor">#include "<aclass="code"href="config_8hh.html"title="Master configuration file for setting various compile-time options.">config.hh</a>"</span></div>
<divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="preprocessor">#include "<aclass="code"href="common_8hh.html"title="Header file for the small helper functions.">common.hh</a>"</span></div>
<divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> <spanclass="preprocessor">#include "<aclass="code"href="v__base_8hh.html"title="Header file for the base Voronoi container class.">v_base.hh</a>"</span></div>
<divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="preprocessor">#include "<aclass="code"href="cell_8hh.html"title="Header file for the voronoicell and related classes.">cell.hh</a>"</span></div>
<divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> <spanclass="preprocessor">#include "<aclass="code"href="c__loops_8hh.html"title="Header file for the loop classes.">c_loops.hh</a>"</span></div>
<divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="preprocessor">#include "<aclass="code"href="v__compute_8hh.html"title="Header file for the voro_compute template and related classes.">v_compute.hh</a>"</span></div>
<divclass="line"><aname="l00022"></a><spanclass="lineno"> 22</span> <spanclass="preprocessor">#include "<aclass="code"href="unitcell_8hh.html"title="Header file for the unitcell class.">unitcell.hh</a>"</span></div>
<divclass="line"><aname="l00023"></a><spanclass="lineno"> 23</span> <spanclass="preprocessor">#include "<aclass="code"href="rad__option_8hh.html"title="Header file for the classes encapsulating functionality for the regular and radical Voronoi tessellat...">rad_option.hh</a>"</span></div>
<divclass="line"><aname="l00027"></a><spanclass="lineno"> 27</span> <spanclass="comment">/** \brief Class for representing a particle system in a 3D periodic</span></div>
<divclass="line"><aname="l00030"></a><spanclass="lineno"> 30</span> <spanclass="comment"> * This class represents a particle system in a three-dimensional</span></div>
<divclass="line"><aname="l00031"></a><spanclass="lineno"> 31</span> <spanclass="comment"> * non-orthogonal periodic domain. The domain is defined by three periodicity</span></div>
<divclass="line"><aname="l00032"></a><spanclass="lineno"> 32</span> <spanclass="comment"> * vectors (bx,0,0), (bxy,by,0), and (bxz,byz,bz) that represent a</span></div>
<divclass="line"><aname="l00033"></a><spanclass="lineno"> 33</span> <spanclass="comment"> * parallelepiped. Internally, the class stores particles in the box 0<x<bx,</span></div>
<divclass="line"><aname="l00034"></a><spanclass="lineno"> 34</span> <spanclass="comment"> * 0<y<by, 0<z<bz, and constructs periodic images of particles that displaced</span></div>
<divclass="line"><aname="l00035"></a><spanclass="lineno"> 35</span> <spanclass="comment"> * by the three periodicity vectors when they are necessary for the</span></div>
<divclass="line"><aname="l00036"></a><spanclass="lineno"> 36</span> <spanclass="comment"> * computation. The internal memory structure for this class is significantly</span></div>
<divclass="line"><aname="l00037"></a><spanclass="lineno"> 37</span> <spanclass="comment"> * different from the container_base class in order to handle the dynamic</span></div>
<divclass="line"><aname="l00038"></a><spanclass="lineno"> 38</span> <spanclass="comment"> * construction of these periodic images.</span></div>
<divclass="line"><aname="l00040"></a><spanclass="lineno"> 40</span> <spanclass="comment"> * The class is derived from the unitcell class, which encapsulates information</span></div>
<divclass="line"><aname="l00041"></a><spanclass="lineno"> 41</span> <spanclass="comment"> * about the domain geometry, and the voro_base class, which encapsulates</span></div>
<divclass="line"><aname="l00042"></a><spanclass="lineno"> 42</span> <spanclass="comment"> * information about the underlying computational grid. */</span></div>
<divclass="line"><aname="l00043"></a><spanclass="lineno"><aclass="code"href="classvoro_1_1container__periodic__base.html"> 43</a></span> <spanclass="keyword">class </span><aclass="code"href="classvoro_1_1container__periodic__base.html"title="Class for representing a particle system in a 3D periodic non-orthogonal periodic domain...">container_periodic_base</a> : <spanclass="keyword">public</span><aclass="code"href="classvoro_1_1unitcell.html"title="Class for computation of the unit Voronoi cell associated with a 3D non-rectangular periodic domain...">unitcell</a>, <spanclass="keyword">public</span><aclass="code"href="classvoro_1_1voro__base.html"title="Class containing data structures common across all particle container classes.">voro_base</a> {</div>
<divclass="line"><aname="l00045"></a><spanclass="lineno"> 45</span> <spanclass="comment"> /** The lower y index (inclusive) of the primary domain within</span></div>
<divclass="line"><aname="l00046"></a><spanclass="lineno"> 46</span> <spanclass="comment"> * the block structure. */</span></div>
<divclass="line"><aname="l00048"></a><spanclass="lineno"> 48</span> <spanclass="comment"> /** The lower z index (inclusive) of the primary domain within</span></div>
<divclass="line"><aname="l00049"></a><spanclass="lineno"> 49</span> <spanclass="comment"> * the block structure. */</span></div>
<divclass="line"><aname="l00051"></a><spanclass="lineno"> 51</span> <spanclass="comment"> /** The upper y index (exclusive) of the primary domain within</span></div>
<divclass="line"><aname="l00052"></a><spanclass="lineno"> 52</span> <spanclass="comment"> * the block structure. */</span></div>
<divclass="line"><aname="l00054"></a><spanclass="lineno"> 54</span> <spanclass="comment"> /** The upper z index (exclusive) of the primary domain within</span></div>
<divclass="line"><aname="l00055"></a><spanclass="lineno"> 55</span> <spanclass="comment"> * the block structure. */</span></div>
<divclass="line"><aname="l00057"></a><spanclass="lineno"> 57</span> <spanclass="comment"> /** The total size of the block structure (including images) in</span></div>
<divclass="line"><aname="l00058"></a><spanclass="lineno"> 58</span> <spanclass="comment"> * the y direction. */</span></div>
<divclass="line"><aname="l00060"></a><spanclass="lineno"> 60</span> <spanclass="comment"> /** The total size of the block structure (including images) in</span></div>
<divclass="line"><aname="l00061"></a><spanclass="lineno"> 61</span> <spanclass="comment"> * the z direction. */</span></div>
<divclass="line"><aname="l00065"></a><spanclass="lineno"> 65</span> <spanclass="comment"> /** This array holds the numerical IDs of each particle in each</span></div>
<divclass="line"><aname="l00068"></a><spanclass="lineno"> 68</span> <spanclass="comment"> /** A two dimensional array holding particle positions. For the</span></div>
<divclass="line"><aname="l00069"></a><spanclass="lineno"> 69</span> <spanclass="comment"> * derived container_poly class, this also holds particle</span></div>
<divclass="line"><aname="l00072"></a><spanclass="lineno"> 72</span> <spanclass="comment"> /** This array holds the number of particles within each</span></div>
<divclass="line"><aname="l00073"></a><spanclass="lineno"> 73</span> <spanclass="comment"> * computational box of the container. */</span></div>
<divclass="line"><aname="l00075"></a><spanclass="lineno"> 75</span> <spanclass="comment"> /** This array holds the maximum amount of particle memory for</span></div>
<divclass="line"><aname="l00076"></a><spanclass="lineno"> 76</span> <spanclass="comment"> * each computational box of the container. If the number of</span></div>
<divclass="line"><aname="l00077"></a><spanclass="lineno"> 77</span> <spanclass="comment"> * particles in a particular box ever approaches this limit,</span></div>
<divclass="line"><aname="l00078"></a><spanclass="lineno"> 78</span> <spanclass="comment"> * more is allocated using the add_particle_memory() function.</span></div>
<divclass="line"><aname="l00081"></a><spanclass="lineno"> 81</span> <spanclass="comment"> /** An array holding information about periodic image</span></div>
<divclass="line"><aname="l00082"></a><spanclass="lineno"> 82</span> <spanclass="comment"> * construction at a given location. */</span></div>
<divclass="line"><aname="l00084"></a><spanclass="lineno"> 84</span> <spanclass="comment"> /** The initial amount of memory to allocate for particles</span></div>
<divclass="line"><aname="l00085"></a><spanclass="lineno"> 85</span> <spanclass="comment"> * for each block. */</span></div>
<divclass="line"><aname="l00087"></a><spanclass="lineno"> 87</span> <spanclass="comment"> /** The amount of memory in the array structure for each</span></div>
<divclass="line"><aname="l00088"></a><spanclass="lineno"> 88</span> <spanclass="comment"> * particle. This is set to 3 when the basic class is</span></div>
<divclass="line"><aname="l00089"></a><spanclass="lineno"> 89</span> <spanclass="comment"> * initialized, so that the array holds (x,y,z) positions. If</span></div>
<divclass="line"><aname="l00090"></a><spanclass="lineno"> 90</span> <spanclass="comment"> * the container class is initialized as part of the derived</span></div>
<divclass="line"><aname="l00091"></a><spanclass="lineno"> 91</span> <spanclass="comment"> * class container_poly, then this is set to 4, to also hold</span></div>
<divclass="line"><aname="l00092"></a><spanclass="lineno"> 92</span> <spanclass="comment"> * the particle radii. */</span></div>
<divclass="line"><aname="l00097"></a><spanclass="lineno"> 97</span> <spanclass="comment"> /** Prints all particles in the container, including those that</span></div>
<divclass="line"><aname="l00098"></a><spanclass="lineno"> 98</span> <spanclass="comment"> * have been constructed in image blocks. */</span></div>
<divclass="line"><aname="l00105"></a><spanclass="lineno"> 105</span> <spanclass="comment"> /** Initializes the Voronoi cell prior to a compute_cell</span></div>
<divclass="line"><aname="l00106"></a><spanclass="lineno"> 106</span> <spanclass="comment"> * operation for a specific particle being carried out by a</span></div>
<divclass="line"><aname="l00107"></a><spanclass="lineno"> 107</span> <spanclass="comment"> * voro_compute class. The cell is initialized to be the</span></div>
<divclass="line"><aname="l00108"></a><spanclass="lineno"> 108</span> <spanclass="comment"> * pre-computed unit Voronoi cell based on planes formed by</span></div>
<divclass="line"><aname="l00109"></a><spanclass="lineno"> 109</span> <spanclass="comment"> * periodic images of the particle.</span></div>
<divclass="line"><aname="l00110"></a><spanclass="lineno"> 110</span> <spanclass="comment"> * \param[in,out] c a reference to a voronoicell object.</span></div>
<divclass="line"><aname="l00111"></a><spanclass="lineno"> 111</span> <spanclass="comment"> * \param[in] ijk the block that the particle is within.</span></div>
<divclass="line"><aname="l00112"></a><spanclass="lineno"> 112</span> <spanclass="comment"> * \param[in] q the index of the particle within its block.</span></div>
<divclass="line"><aname="l00113"></a><spanclass="lineno"> 113</span> <spanclass="comment"> * \param[in] (ci,cj,ck) the coordinates of the block in the</span></div>
<divclass="line"><aname="l00115"></a><spanclass="lineno"> 115</span> <spanclass="comment"> * \param[out] (i,j,k) the coordinates of the test block</span></div>
<divclass="line"><aname="l00116"></a><spanclass="lineno"> 116</span> <spanclass="comment"> * relative to the voro_compute</span></div>
<divclass="line"><aname="l00118"></a><spanclass="lineno"> 118</span> <spanclass="comment"> * \param[out] (x,y,z) the position of the particle.</span></div>
<divclass="line"><aname="l00119"></a><spanclass="lineno"> 119</span> <spanclass="comment"> * \param[out] disp a block displacement used internally by the</span></div>
<divclass="line"><aname="l00121"></a><spanclass="lineno"> 121</span> <spanclass="comment"> * \return False if the plane cuts applied by walls completely</span></div>
<divclass="line"><aname="l00122"></a><spanclass="lineno"> 122</span> <spanclass="comment"> * removed the cell, true otherwise. */</span></div>
<divclass="line"><aname="l00131"></a><spanclass="lineno"> 131</span> <spanclass="comment"> /** Initializes parameters for a find_voronoi_cell call within</span></div>
<divclass="line"><aname="l00132"></a><spanclass="lineno"> 132</span> <spanclass="comment"> * the voro_compute template.</span></div>
<divclass="line"><aname="l00133"></a><spanclass="lineno"> 133</span> <spanclass="comment"> * \param[in] (ci,cj,ck) the coordinates of the test block in</span></div>
<divclass="line"><aname="l00134"></a><spanclass="lineno"> 134</span> <spanclass="comment"> * the container coordinate system.</span></div>
<divclass="line"><aname="l00135"></a><spanclass="lineno"> 135</span> <spanclass="comment"> * \param[in] ijk the index of the test block</span></div>
<divclass="line"><aname="l00136"></a><spanclass="lineno"> 136</span> <spanclass="comment"> * \param[out] (i,j,k) the coordinates of the test block</span></div>
<divclass="line"><aname="l00137"></a><spanclass="lineno"> 137</span> <spanclass="comment"> * relative to the voro_compute</span></div>
<divclass="line"><aname="l00139"></a><spanclass="lineno"> 139</span> <spanclass="comment"> * \param[out] disp a block displacement used internally by the</span></div>
<divclass="line"><aname="l00140"></a><spanclass="lineno"> 140</span> <spanclass="comment"> * find_voronoi_cell routine (but not needed</span></div>
<divclass="line"><aname="l00141"></a><spanclass="lineno"> 141</span> <spanclass="comment"> * in this instance.) */</span></div>
<divclass="line"><aname="l00145"></a><spanclass="lineno"> 145</span> <spanclass="comment"> /** Returns the position of a particle currently being computed</span></div>
<divclass="line"><aname="l00146"></a><spanclass="lineno"> 146</span> <spanclass="comment"> * relative to the computational block that it is within. It is</span></div>
<divclass="line"><aname="l00147"></a><spanclass="lineno"> 147</span> <spanclass="comment"> * used to select the optimal worklist entry to use.</span></div>
<divclass="line"><aname="l00148"></a><spanclass="lineno"> 148</span> <spanclass="comment"> * \param[in] (x,y,z) the position of the particle.</span></div>
<divclass="line"><aname="l00149"></a><spanclass="lineno"> 149</span> <spanclass="comment"> * \param[in] (ci,cj,ck) the block that the particle is within.</span></div>
<divclass="line"><aname="l00150"></a><spanclass="lineno"> 150</span> <spanclass="comment"> * \param[out] (fx,fy,fz) the position relative to the block.</span></div>
<divclass="line"><aname="l00157"></a><spanclass="lineno"> 157</span> <spanclass="comment"> /** Calculates the index of block in the container structure</span></div>
<divclass="line"><aname="l00158"></a><spanclass="lineno"> 158</span> <spanclass="comment"> * corresponding to given coordinates.</span></div>
<divclass="line"><aname="l00159"></a><spanclass="lineno"> 159</span> <spanclass="comment"> * \param[in] (ci,cj,ck) the coordinates of the original block</span></div>
<divclass="line"><aname="l00160"></a><spanclass="lineno"> 160</span> <spanclass="comment"> * in the current computation, relative</span></div>
<divclass="line"><aname="l00161"></a><spanclass="lineno"> 161</span> <spanclass="comment"> * to the container coordinate system.</span></div>
<divclass="line"><aname="l00162"></a><spanclass="lineno"> 162</span> <spanclass="comment"> * \param[in] (ei,ej,ek) the displacement of the current block</span></div>
<divclass="line"><aname="l00163"></a><spanclass="lineno"> 163</span> <spanclass="comment"> * from the original block.</span></div>
<divclass="line"><aname="l00164"></a><spanclass="lineno"> 164</span> <spanclass="comment"> * \param[in,out] (qx,qy,qz) the periodic displacement that</span></div>
<divclass="line"><aname="l00165"></a><spanclass="lineno"> 165</span> <spanclass="comment"> * must be added to the particles</span></div>
<divclass="line"><aname="l00166"></a><spanclass="lineno"> 166</span> <spanclass="comment"> * within the computed block.</span></div>
<divclass="line"><aname="l00167"></a><spanclass="lineno"> 167</span> <spanclass="comment"> * \param[in] disp a block displacement used internally by the</span></div>
<divclass="line"><aname="l00168"></a><spanclass="lineno"> 168</span> <spanclass="comment"> * find_voronoi_cell and compute_cell routines</span></div>
<divclass="line"><aname="l00169"></a><spanclass="lineno"> 169</span> <spanclass="comment"> * (but not needed in this instance.)</span></div>
<divclass="line"><aname="l00170"></a><spanclass="lineno"> 170</span> <spanclass="comment"> * \return The block index. */</span></div>
<divclass="line"><aname="l00183"></a><spanclass="lineno"> 183</span> <spanclass="comment"> /** Creates particles within an image block by copying them</span></div>
<divclass="line"><aname="l00184"></a><spanclass="lineno"> 184</span> <spanclass="comment"> * from the primary domain and shifting them. If the given</span></div>
<divclass="line"><aname="l00185"></a><spanclass="lineno"> 185</span> <spanclass="comment"> * block is aligned with the primary domain in the z-direction,</span></div>
<divclass="line"><aname="l00186"></a><spanclass="lineno"> 186</span> <spanclass="comment"> * the routine calls the simpler create_side_image routine</span></div>
<divclass="line"><aname="l00187"></a><spanclass="lineno"> 187</span> <spanclass="comment"> * where the image block may comprise of particles from up to</span></div>
<divclass="line"><aname="l00188"></a><spanclass="lineno"> 188</span> <spanclass="comment"> * two primary blocks. Otherwise is calls the more complex</span></div>
<divclass="line"><aname="l00189"></a><spanclass="lineno"> 189</span> <spanclass="comment"> * create_vertical_image where the image block may comprise of</span></div>
<divclass="line"><aname="l00190"></a><spanclass="lineno"> 190</span> <spanclass="comment"> * particles from up to four primary blocks.</span></div>
<divclass="line"><aname="l00191"></a><spanclass="lineno"> 191</span> <spanclass="comment"> * \param[in] (di,dj,dk) the coordinates of the image block to</span></div>
<divclass="line"><aname="l00206"></a><spanclass="lineno"> 206</span> <spanclass="comment">/** \brief Extension of the container_periodic_base class for computing regular</span></div>
<divclass="line"><aname="l00209"></a><spanclass="lineno"> 209</span> <spanclass="comment"> * This class is an extension of the container_periodic_base that has routines</span></div>
<divclass="line"><aname="l00210"></a><spanclass="lineno"> 210</span> <spanclass="comment"> * specifically for computing the regular Voronoi tessellation with no</span></div>
<divclass="line"><aname="l00211"></a><spanclass="lineno"> 211</span> <spanclass="comment"> * dependence on particle radii. */</span></div>
<divclass="line"><aname="l00212"></a><spanclass="lineno"><aclass="code"href="classvoro_1_1container__periodic.html"> 212</a></span> <spanclass="keyword">class </span><aclass="code"href="classvoro_1_1container__periodic.html"title="Extension of the container_periodic_base class for computing regular Voronoi tessellations.">container_periodic</a> : <spanclass="keyword">public</span><aclass="code"href="classvoro_1_1container__periodic__base.html"title="Class for representing a particle system in a 3D periodic non-orthogonal periodic domain...">container_periodic_base</a>, <spanclass="keyword">public</span><aclass="code"href="classvoro_1_1radius__mono.html"title="Class containing all of the routines that are specific to computing the regular Voronoi tessellation...">radius_mono</a> {</div>
<divclass="line"><aname="l00219"></a><spanclass="lineno"> 219</span> <spanclass="keywordtype">void</span><aclass="code"href="classvoro_1_1container__periodic.html#afa9abf680a0dc08650ada11a2eff0be6">put</a>(<aclass="code"href="classvoro_1_1particle__order.html"title="A class for storing ordering information when particles are added to a container.">particle_order</a>&vo,<spanclass="keywordtype">int</span> n,<spanclass="keywordtype">double</span> x,<spanclass="keywordtype">double</span> y,<spanclass="keywordtype">double</span> z);</div>
<divclass="line"><aname="l00221"></a><spanclass="lineno"> 221</span> <spanclass="keywordtype">void</span><spanclass="keyword">import</span>(<aclass="code"href="classvoro_1_1particle__order.html"title="A class for storing ordering information when particles are added to a container.">particle_order</a>&vo,FILE *fp=stdin);<spanclass="comment"></span></div>
<divclass="line"><aname="l00222"></a><spanclass="lineno"> 222</span> <spanclass="comment"> /** Imports a list of particles from an open file stream into</span></div>
<divclass="line"><aname="l00223"></a><spanclass="lineno"> 223</span> <spanclass="comment"> * the container. Entries of four numbers (Particle ID, x</span></div>
<divclass="line"><aname="l00224"></a><spanclass="lineno"> 224</span> <spanclass="comment"> * position, y position, z position) are searched for. If the</span></div>
<divclass="line"><aname="l00225"></a><spanclass="lineno"> 225</span> <spanclass="comment"> * file cannot be successfully read, then the routine causes a</span></div>
<divclass="line"><aname="l00227"></a><spanclass="lineno"> 227</span> <spanclass="comment"> * \param[in] filename the name of the file to open and read</span></div>
<divclass="line"><aname="l00234"></a><spanclass="lineno"> 234</span> <spanclass="comment"> /** Imports a list of particles from an open file stream into</span></div>
<divclass="line"><aname="l00235"></a><spanclass="lineno"> 235</span> <spanclass="comment"> * the container. Entries of four numbers (Particle ID, x</span></div>
<divclass="line"><aname="l00236"></a><spanclass="lineno"> 236</span> <spanclass="comment"> * position, y position, z position) are searched for. In</span></div>
<divclass="line"><aname="l00237"></a><spanclass="lineno"> 237</span> <spanclass="comment"> * addition, the order in which particles are read is saved</span></div>
<divclass="line"><aname="l00238"></a><spanclass="lineno"> 238</span> <spanclass="comment"> * into an ordering class. If the file cannot be successfully</span></div>
<divclass="line"><aname="l00239"></a><spanclass="lineno"> 239</span> <spanclass="comment"> * read, then the routine causes a fatal error.</span></div>
<divclass="line"><aname="l00240"></a><spanclass="lineno"> 240</span> <spanclass="comment"> * \param[in,out] vo the ordering class to use.</span></div>
<divclass="line"><aname="l00241"></a><spanclass="lineno"> 241</span> <spanclass="comment"> * \param[in] filename the name of the file to open and read</span></div>
<divclass="line"><aname="l00243"></a><spanclass="lineno"><aclass="code"href="classvoro_1_1container__periodic.html#ae586c7cf716fa84e91e9f801f5ac8a50"> 243</a></span> <spanclass="keyword">inline</span><spanclass="keywordtype">void</span><spanclass="keyword">import</span>(<aclass="code"href="classvoro_1_1particle__order.html"title="A class for storing ordering information when particles are added to a container.">particle_order</a>&vo,<spanclass="keyword">const</span><spanclass="keywordtype">char</span>* filename) {</div>
<divclass="line"><aname="l00250"></a><spanclass="lineno"> 250</span> <spanclass="comment"> /** Dumps particle IDs and positions to a file.</span></div>
<divclass="line"><aname="l00251"></a><spanclass="lineno"> 251</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00252"></a><spanclass="lineno"> 252</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00261"></a><spanclass="lineno"> 261</span> <spanclass="comment"> /** Dumps all of the particle IDs and positions to a file.</span></div>
<divclass="line"><aname="l00262"></a><spanclass="lineno"> 262</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00264"></a><spanclass="lineno"> 264</span> <aclass="code"href="classvoro_1_1c__loop__all__periodic.html"title="A class for looping over all particles in a container_periodic or container_periodic_poly class...">c_loop_all_periodic</a> vl(*<spanclass="keyword">this</span>);</div>
<divclass="line"><aname="l00267"></a><spanclass="lineno"> 267</span> <spanclass="comment"> /** Dumps all of the particle IDs and positions to a file.</span></div>
<divclass="line"><aname="l00268"></a><spanclass="lineno"> 268</span> <spanclass="comment"> * \param[in] filename the name of the file to write to. */</span></div>
<divclass="line"><aname="l00274"></a><spanclass="lineno"> 274</span> <spanclass="comment"> /** Dumps particle positions in POV-Ray format.</span></div>
<divclass="line"><aname="l00275"></a><spanclass="lineno"> 275</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00276"></a><spanclass="lineno"> 276</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00282"></a><spanclass="lineno"> 282</span>  fprintf(fp,<spanclass="stringliteral">"// id %d\nsphere{<%g,%g,%g>,s}\n"</span>,</div>
<divclass="line"><aname="l00286"></a><spanclass="lineno"> 286</span> <spanclass="comment"> /** Dumps all particle positions in POV-Ray format.</span></div>
<divclass="line"><aname="l00287"></a><spanclass="lineno"> 287</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00289"></a><spanclass="lineno"> 289</span> <aclass="code"href="classvoro_1_1c__loop__all__periodic.html"title="A class for looping over all particles in a container_periodic or container_periodic_poly class...">c_loop_all_periodic</a> vl(*<spanclass="keyword">this</span>);</div>
<divclass="line"><aname="l00292"></a><spanclass="lineno"> 292</span> <spanclass="comment"> /** Dumps all particle positions in POV-Ray format.</span></div>
<divclass="line"><aname="l00293"></a><spanclass="lineno"> 293</span> <spanclass="comment"> * \param[in] filename the name of the file to write to. */</span></div>
<divclass="line"><aname="l00299"></a><spanclass="lineno"> 299</span> <spanclass="comment"> /** Computes Voronoi cells and saves the output in gnuplot</span></div>
<divclass="line"><aname="l00301"></a><spanclass="lineno"> 301</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00302"></a><spanclass="lineno"> 302</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00305"></a><spanclass="lineno"> 305</span> <aclass="code"href="classvoro_1_1voronoicell.html"title="Extension of the voronoicell_base class to represent a Voronoi cell without neighbor information...">voronoicell</a> c;<spanclass="keywordtype">double</span> *pp;</div>
<divclass="line"><aname="l00311"></a><spanclass="lineno"> 311</span> <spanclass="comment"> /** Computes all Voronoi cells and saves the output in gnuplot</span></div>
<divclass="line"><aname="l00313"></a><spanclass="lineno"> 313</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00315"></a><spanclass="lineno"> 315</span> <aclass="code"href="classvoro_1_1c__loop__all__periodic.html"title="A class for looping over all particles in a container_periodic or container_periodic_poly class...">c_loop_all_periodic</a> vl(*<spanclass="keyword">this</span>);</div>
<divclass="line"><aname="l00318"></a><spanclass="lineno"> 318</span> <spanclass="comment"> /** Compute all Voronoi cells and saves the output in gnuplot</span></div>
<divclass="line"><aname="l00320"></a><spanclass="lineno"> 320</span> <spanclass="comment"> * \param[in] filename the name of the file to write to. */</span></div>
<divclass="line"><aname="l00326"></a><spanclass="lineno"> 326</span> <spanclass="comment"> /** Computes Voronoi cells and saves the output in POV-Ray</span></div>
<divclass="line"><aname="l00328"></a><spanclass="lineno"> 328</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00329"></a><spanclass="lineno"> 329</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00332"></a><spanclass="lineno"> 332</span> <aclass="code"href="classvoro_1_1voronoicell.html"title="Extension of the voronoicell_base class to represent a Voronoi cell without neighbor information...">voronoicell</a> c;<spanclass="keywordtype">double</span> *pp;</div>
<divclass="line"><aname="l00339"></a><spanclass="lineno"> 339</span> <spanclass="comment"> /** Computes all Voronoi cells and saves the output in POV-Ray</span></div>
<divclass="line"><aname="l00341"></a><spanclass="lineno"> 341</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00343"></a><spanclass="lineno"> 343</span> <aclass="code"href="classvoro_1_1c__loop__all__periodic.html"title="A class for looping over all particles in a container_periodic or container_periodic_poly class...">c_loop_all_periodic</a> vl(*<spanclass="keyword">this</span>);</div>
<divclass="line"><aname="l00346"></a><spanclass="lineno"> 346</span> <spanclass="comment"> /** Computes all Voronoi cells and saves the output in POV-Ray</span></div>
<divclass="line"><aname="l00348"></a><spanclass="lineno"> 348</span> <spanclass="comment"> * \param[in] filename the name of the file to write to. */</span></div>
<divclass="line"><aname="l00354"></a><spanclass="lineno"> 354</span> <spanclass="comment"> /** Computes the Voronoi cells and saves customized information</span></div>
<divclass="line"><aname="l00355"></a><spanclass="lineno"> 355</span> <spanclass="comment"> * about them.</span></div>
<divclass="line"><aname="l00356"></a><spanclass="lineno"> 356</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00357"></a><spanclass="lineno"> 357</span> <spanclass="comment"> * \param[in] format the custom output string to use.</span></div>
<divclass="line"><aname="l00358"></a><spanclass="lineno"> 358</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00363"></a><spanclass="lineno"> 363</span> <aclass="code"href="classvoro_1_1voronoicell__neighbor.html"title="Extension of the voronoicell_base class to represent a Voronoi cell with neighbor information...">voronoicell_neighbor</a> c;</div>
<divclass="line"><aname="l00369"></a><spanclass="lineno"> 369</span> <aclass="code"href="classvoro_1_1voronoicell.html"title="Extension of the voronoicell_base class to represent a Voronoi cell without neighbor information...">voronoicell</a> c;</div>
<divclass="line"><aname="l00379"></a><spanclass="lineno"> 379</span> <spanclass="comment"> /** Computes the Voronoi cell for a particle currently being</span></div>
<divclass="line"><aname="l00380"></a><spanclass="lineno"> 380</span> <spanclass="comment"> * referenced by a loop class.</span></div>
<divclass="line"><aname="l00381"></a><spanclass="lineno"> 381</span> <spanclass="comment"> * \param[out] c a Voronoi cell class in which to store the</span></div>
<divclass="line"><aname="l00383"></a><spanclass="lineno"> 383</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00384"></a><spanclass="lineno"> 384</span> <spanclass="comment"> * \return True if the cell was computed. If the cell cannot be</span></div>
<divclass="line"><aname="l00385"></a><spanclass="lineno"> 385</span> <spanclass="comment"> * computed because it was removed entirely for some reason,</span></div>
<divclass="line"><aname="l00386"></a><spanclass="lineno"> 386</span> <spanclass="comment"> * then the routine returns false. */</span></div>
<divclass="line"><aname="l00391"></a><spanclass="lineno"> 391</span> <spanclass="comment"> /** Computes the Voronoi cell for given particle.</span></div>
<divclass="line"><aname="l00392"></a><spanclass="lineno"> 392</span> <spanclass="comment"> * \param[out] c a Voronoi cell class in which to store the</span></div>
<divclass="line"><aname="l00394"></a><spanclass="lineno"> 394</span> <spanclass="comment"> * \param[in] ijk the block that the particle is within.</span></div>
<divclass="line"><aname="l00395"></a><spanclass="lineno"> 395</span> <spanclass="comment"> * \param[in] q the index of the particle within the block.</span></div>
<divclass="line"><aname="l00396"></a><spanclass="lineno"> 396</span> <spanclass="comment"> * \return True if the cell was computed. If the cell cannot be</span></div>
<divclass="line"><aname="l00397"></a><spanclass="lineno"> 397</span> <spanclass="comment"> * computed because it was removed entirely for some reason,</span></div>
<divclass="line"><aname="l00398"></a><spanclass="lineno"> 398</span> <spanclass="comment"> * then the routine returns false. */</span></div>
<divclass="line"><aname="l00406"></a><spanclass="lineno"> 406</span> <spanclass="keyword">friend</span><spanclass="keyword">class </span><aclass="code"href="classvoro_1_1voro__compute.html"title="Template for carrying out Voronoi cell computations.">voro_compute</a><<aclass="code"href="classvoro_1_1container__periodic.html"title="Extension of the container_periodic_base class for computing regular Voronoi tessellations.">container_periodic</a>>;</div>
<divclass="line"><aname="l00409"></a><spanclass="lineno"> 409</span> <spanclass="comment">/** \brief Extension of the container_periodic_base class for computing radical</span></div>
<divclass="line"><aname="l00412"></a><spanclass="lineno"> 412</span> <spanclass="comment"> * This class is an extension of container_periodic_base that has routines</span></div>
<divclass="line"><aname="l00413"></a><spanclass="lineno"> 413</span> <spanclass="comment"> * specifically for computing the radical Voronoi tessellation that depends</span></div>
<divclass="line"><aname="l00414"></a><spanclass="lineno"> 414</span> <spanclass="comment"> * on the particle radii. */</span></div>
<divclass="line"><aname="l00415"></a><spanclass="lineno"><aclass="code"href="classvoro_1_1container__periodic__poly.html"> 415</a></span> <spanclass="keyword">class </span><aclass="code"href="classvoro_1_1container__periodic__poly.html"title="Extension of the container_periodic_base class for computing radical Voronoi tessellations.">container_periodic_poly</a> : <spanclass="keyword">public</span><aclass="code"href="classvoro_1_1container__periodic__base.html"title="Class for representing a particle system in a 3D periodic non-orthogonal periodic domain...">container_periodic_base</a>, <spanclass="keyword">public</span><aclass="code"href="classvoro_1_1radius__poly.html"title="Class containing all of the routines that are specific to computing the radical Voronoi tessellation...">radius_poly</a> {</div>
<divclass="line"><aname="l00422"></a><spanclass="lineno"> 422</span> <spanclass="keywordtype">void</span><aclass="code"href="classvoro_1_1container__periodic__poly.html#a1cbdd9c92900e08173e1ea3a6e2e6df4">put</a>(<aclass="code"href="classvoro_1_1particle__order.html"title="A class for storing ordering information when particles are added to a container.">particle_order</a>&vo,<spanclass="keywordtype">int</span> n,<spanclass="keywordtype">double</span> x,<spanclass="keywordtype">double</span> y,<spanclass="keywordtype">double</span> z,<spanclass="keywordtype">double</span> r);</div>
<divclass="line"><aname="l00424"></a><spanclass="lineno"> 424</span> <spanclass="keywordtype">void</span><spanclass="keyword">import</span>(<aclass="code"href="classvoro_1_1particle__order.html"title="A class for storing ordering information when particles are added to a container.">particle_order</a>&vo,FILE *fp=stdin);<spanclass="comment"></span></div>
<divclass="line"><aname="l00425"></a><spanclass="lineno"> 425</span> <spanclass="comment"> /** Imports a list of particles from an open file stream into</span></div>
<divclass="line"><aname="l00426"></a><spanclass="lineno"> 426</span> <spanclass="comment"> * the container_poly class. Entries of five numbers (Particle</span></div>
<divclass="line"><aname="l00427"></a><spanclass="lineno"> 427</span> <spanclass="comment"> * ID, x position, y position, z position, radius) are searched</span></div>
<divclass="line"><aname="l00428"></a><spanclass="lineno"> 428</span> <spanclass="comment"> * for. If the file cannot be successfully read, then the</span></div>
<divclass="line"><aname="l00429"></a><spanclass="lineno"> 429</span> <spanclass="comment"> * routine causes a fatal error.</span></div>
<divclass="line"><aname="l00430"></a><spanclass="lineno"> 430</span> <spanclass="comment"> * \param[in] filename the name of the file to open and read</span></div>
<divclass="line"><aname="l00437"></a><spanclass="lineno"> 437</span> <spanclass="comment"> /** Imports a list of particles from an open file stream into</span></div>
<divclass="line"><aname="l00438"></a><spanclass="lineno"> 438</span> <spanclass="comment"> * the container_poly class. Entries of five numbers (Particle</span></div>
<divclass="line"><aname="l00439"></a><spanclass="lineno"> 439</span> <spanclass="comment"> * ID, x position, y position, z position, radius) are searched</span></div>
<divclass="line"><aname="l00440"></a><spanclass="lineno"> 440</span> <spanclass="comment"> * for. In addition, the order in which particles are read is</span></div>
<divclass="line"><aname="l00441"></a><spanclass="lineno"> 441</span> <spanclass="comment"> * saved into an ordering class. If the file cannot be</span></div>
<divclass="line"><aname="l00442"></a><spanclass="lineno"> 442</span> <spanclass="comment"> * successfully read, then the routine causes a fatal error.</span></div>
<divclass="line"><aname="l00443"></a><spanclass="lineno"> 443</span> <spanclass="comment"> * \param[in,out] vo the ordering class to use.</span></div>
<divclass="line"><aname="l00444"></a><spanclass="lineno"> 444</span> <spanclass="comment"> * \param[in] filename the name of the file to open and read</span></div>
<divclass="line"><aname="l00446"></a><spanclass="lineno"><aclass="code"href="classvoro_1_1container__periodic__poly.html#a346b67c09850a78e8eb9144029fe3087"> 446</a></span> <spanclass="keyword">inline</span><spanclass="keywordtype">void</span><spanclass="keyword">import</span>(<aclass="code"href="classvoro_1_1particle__order.html"title="A class for storing ordering information when particles are added to a container.">particle_order</a>&vo,<spanclass="keyword">const</span><spanclass="keywordtype">char</span>* filename) {</div>
<divclass="line"><aname="l00453"></a><spanclass="lineno"> 453</span> <spanclass="comment"> /** Dumps particle IDs, positions and radii to a file.</span></div>
<divclass="line"><aname="l00454"></a><spanclass="lineno"> 454</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00455"></a><spanclass="lineno"> 455</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00464"></a><spanclass="lineno"> 464</span> <spanclass="comment"> /** Dumps all of the particle IDs, positions and radii to a</span></div>
<divclass="line"><aname="l00466"></a><spanclass="lineno"> 466</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00468"></a><spanclass="lineno"> 468</span> <aclass="code"href="classvoro_1_1c__loop__all__periodic.html"title="A class for looping over all particles in a container_periodic or container_periodic_poly class...">c_loop_all_periodic</a> vl(*<spanclass="keyword">this</span>);</div>
<divclass="line"><aname="l00471"></a><spanclass="lineno"> 471</span> <spanclass="comment"> /** Dumps all of the particle IDs, positions and radii to a</span></div>
<divclass="line"><aname="l00473"></a><spanclass="lineno"> 473</span> <spanclass="comment"> * \param[in] filename the name of the file to write to. */</span></div>
<divclass="line"><aname="l00479"></a><spanclass="lineno"> 479</span> <spanclass="comment"> /** Dumps particle positions in POV-Ray format.</span></div>
<divclass="line"><aname="l00480"></a><spanclass="lineno"> 480</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00481"></a><spanclass="lineno"> 481</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00487"></a><spanclass="lineno"> 487</span>  fprintf(fp,<spanclass="stringliteral">"// id %d\nsphere{<%g,%g,%g>,%g}\n"</span>,</div>
<divclass="line"><aname="l00491"></a><spanclass="lineno"> 491</span> <spanclass="comment"> /** Dumps all the particle positions in POV-Ray format.</span></div>
<divclass="line"><aname="l00492"></a><spanclass="lineno"> 492</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00494"></a><spanclass="lineno"> 494</span> <aclass="code"href="classvoro_1_1c__loop__all__periodic.html"title="A class for looping over all particles in a container_periodic or container_periodic_poly class...">c_loop_all_periodic</a> vl(*<spanclass="keyword">this</span>);</div>
<divclass="line"><aname="l00497"></a><spanclass="lineno"> 497</span> <spanclass="comment"> /** Dumps all the particle positions in POV-Ray format.</span></div>
<divclass="line"><aname="l00498"></a><spanclass="lineno"> 498</span> <spanclass="comment"> * \param[in] filename the name of the file to write to. */</span></div>
<divclass="line"><aname="l00504"></a><spanclass="lineno"> 504</span> <spanclass="comment"> /** Computes Voronoi cells and saves the output in gnuplot</span></div>
<divclass="line"><aname="l00506"></a><spanclass="lineno"> 506</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00507"></a><spanclass="lineno"> 507</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00510"></a><spanclass="lineno"> 510</span> <aclass="code"href="classvoro_1_1voronoicell.html"title="Extension of the voronoicell_base class to represent a Voronoi cell without neighbor information...">voronoicell</a> c;<spanclass="keywordtype">double</span> *pp;</div>
<divclass="line"><aname="l00516"></a><spanclass="lineno"> 516</span> <spanclass="comment"> /** Compute all Voronoi cells and saves the output in gnuplot</span></div>
<divclass="line"><aname="l00518"></a><spanclass="lineno"> 518</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00520"></a><spanclass="lineno"> 520</span> <aclass="code"href="classvoro_1_1c__loop__all__periodic.html"title="A class for looping over all particles in a container_periodic or container_periodic_poly class...">c_loop_all_periodic</a> vl(*<spanclass="keyword">this</span>);</div>
<divclass="line"><aname="l00523"></a><spanclass="lineno"> 523</span> <spanclass="comment"> /** Compute all Voronoi cells and saves the output in gnuplot</span></div>
<divclass="line"><aname="l00525"></a><spanclass="lineno"> 525</span> <spanclass="comment"> * \param[in] filename the name of the file to write to. */</span></div>
<divclass="line"><aname="l00531"></a><spanclass="lineno"> 531</span> <spanclass="comment"> /** Computes Voronoi cells and saves the output in POV-Ray</span></div>
<divclass="line"><aname="l00533"></a><spanclass="lineno"> 533</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00534"></a><spanclass="lineno"> 534</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00537"></a><spanclass="lineno"> 537</span> <aclass="code"href="classvoro_1_1voronoicell.html"title="Extension of the voronoicell_base class to represent a Voronoi cell without neighbor information...">voronoicell</a> c;<spanclass="keywordtype">double</span> *pp;</div>
<divclass="line"><aname="l00544"></a><spanclass="lineno"> 544</span> <spanclass="comment"> /** Computes all Voronoi cells and saves the output in POV-Ray</span></div>
<divclass="line"><aname="l00546"></a><spanclass="lineno"> 546</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00548"></a><spanclass="lineno"> 548</span> <aclass="code"href="classvoro_1_1c__loop__all__periodic.html"title="A class for looping over all particles in a container_periodic or container_periodic_poly class...">c_loop_all_periodic</a> vl(*<spanclass="keyword">this</span>);</div>
<divclass="line"><aname="l00551"></a><spanclass="lineno"> 551</span> <spanclass="comment"> /** Computes all Voronoi cells and saves the output in POV-Ray</span></div>
<divclass="line"><aname="l00553"></a><spanclass="lineno"> 553</span> <spanclass="comment"> * \param[in] filename the name of the file to write to. */</span></div>
<divclass="line"><aname="l00559"></a><spanclass="lineno"> 559</span> <spanclass="comment"> /** Computes the Voronoi cells and saves customized information</span></div>
<divclass="line"><aname="l00560"></a><spanclass="lineno"> 560</span> <spanclass="comment"> * about them.</span></div>
<divclass="line"><aname="l00561"></a><spanclass="lineno"> 561</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00562"></a><spanclass="lineno"> 562</span> <spanclass="comment"> * \param[in] format the custom output string to use.</span></div>
<divclass="line"><aname="l00563"></a><spanclass="lineno"> 563</span> <spanclass="comment"> * \param[in] fp a file handle to write to. */</span></div>
<divclass="line"><aname="l00568"></a><spanclass="lineno"> 568</span> <aclass="code"href="classvoro_1_1voronoicell__neighbor.html"title="Extension of the voronoicell_base class to represent a Voronoi cell with neighbor information...">voronoicell_neighbor</a> c;</div>
<divclass="line"><aname="l00574"></a><spanclass="lineno"> 574</span> <aclass="code"href="classvoro_1_1voronoicell.html"title="Extension of the voronoicell_base class to represent a Voronoi cell without neighbor information...">voronoicell</a> c;</div>
<divclass="line"><aname="l00581"></a><spanclass="lineno"> 581</span> <spanclass="comment"> /** Computes the Voronoi cell for a particle currently being</span></div>
<divclass="line"><aname="l00582"></a><spanclass="lineno"> 582</span> <spanclass="comment"> * referenced by a loop class.</span></div>
<divclass="line"><aname="l00583"></a><spanclass="lineno"> 583</span> <spanclass="comment"> * \param[out] c a Voronoi cell class in which to store the</span></div>
<divclass="line"><aname="l00585"></a><spanclass="lineno"> 585</span> <spanclass="comment"> * \param[in] vl the loop class to use.</span></div>
<divclass="line"><aname="l00586"></a><spanclass="lineno"> 586</span> <spanclass="comment"> * \return True if the cell was computed. If the cell cannot be</span></div>
<divclass="line"><aname="l00587"></a><spanclass="lineno"> 587</span> <spanclass="comment"> * computed because it was removed entirely for some reason,</span></div>
<divclass="line"><aname="l00588"></a><spanclass="lineno"> 588</span> <spanclass="comment"> * then the routine returns false. */</span></div>
<divclass="line"><aname="l00593"></a><spanclass="lineno"> 593</span> <spanclass="comment"> /** Computes the Voronoi cell for given particle.</span></div>
<divclass="line"><aname="l00594"></a><spanclass="lineno"> 594</span> <spanclass="comment"> * \param[out] c a Voronoi cell class in which to store the</span></div>
<divclass="line"><aname="l00596"></a><spanclass="lineno"> 596</span> <spanclass="comment"> * \param[in] ijk the block that the particle is within.</span></div>
<divclass="line"><aname="l00597"></a><spanclass="lineno"> 597</span> <spanclass="comment"> * \param[in] q the index of the particle within the block.</span></div>
<divclass="line"><aname="l00598"></a><spanclass="lineno"> 598</span> <spanclass="comment"> * \return True if the cell was computed. If the cell cannot be</span></div>
<divclass="line"><aname="l00599"></a><spanclass="lineno"> 599</span> <spanclass="comment"> * computed because it was removed entirely for some reason,</span></div>
<divclass="line"><aname="l00600"></a><spanclass="lineno"> 600</span> <spanclass="comment"> * then the routine returns false. */</span></div>
<divclass="line"><aname="l00611"></a><spanclass="lineno"> 611</span> <spanclass="keyword">friend</span><spanclass="keyword">class </span><aclass="code"href="classvoro_1_1voro__compute.html"title="Template for carrying out Voronoi cell computations.">voro_compute</a><<aclass="code"href="classvoro_1_1container__periodic__poly.html"title="Extension of the container_periodic_base class for computing radical Voronoi tessellations.">container_periodic_poly</a>>;</div>