<metaname="description"content="PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.">
<!-- iframe showing the search results (closed by default) -->
<divid="MSearchResultsWindow">
<iframesrc="javascript:void(0)"frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<divclass="header">
<divclass="headertitle">
<divclass="title">sphereParticles.hpp</div></div>
</div><!--header-->
<divclass="contents">
<ahref="sphereParticles_8hpp.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
<divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment"> O C enter of</span></div>
<divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment"> O O E ngineering and</span></div>
<divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment"> O O M ultiscale modeling of</span></div>
<divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> This file is part of phasicFlow code. It is a free software for simulating</span></div>
<divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment"> granular and multiphase flows. You can redistribute it and/or modify it under</span></div>
<divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> the terms of GNU General Public License v3 or any other later versions.</span></div>
<divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> <spanclass="comment"> phasicFlow is distributed to help others in their research in the field of</span></div>
<divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the</span></div>
<divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_ab017eb6279c56cded657c73410613374"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#ab017eb6279c56cded657c73410613374">pFlow::sphereParticles::propertyId_</a></div><divclass="ttdeci">uint32PointField_D propertyId_</div><divclass="ttdoc">property id on device</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00054">sphereParticles.hpp:54</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a160121d913080df4f0b93de905b698f5"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a160121d913080df4f0b93de905b698f5">pFlow::sphereParticles::mass</a></div><divclass="ttdeci">const realPointField_D & mass() const override</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00199">sphereParticles.hpp:199</a></div></div>
<divclass="ttc"id="aerror_8hpp_html_a6d29ef74f19f6d5a225841705985eb8b"><divclass="ttname"><ahref="error_8hpp.html#a6d29ef74f19f6d5a225841705985eb8b">notImplementedFunction</a></div><divclass="ttdeci">#define notImplementedFunction</div><divclass="ttdoc">Report that a function is yet not implemented.</div><divclass="ttdef"><b>Definition:</b><ahref="error_8hpp_source.html#l00084">error.hpp:84</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a2a1b61b23f00bbe8bff88947a4681d6d"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a2a1b61b23f00bbe8bff88947a4681d6d">pFlow::sphereParticles::boundingSphere</a></div><divclass="ttdeci">const realPointField_D & boundingSphere() const override</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00226">sphereParticles.hpp:226</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a8b83db8824ff8cd15dfdde4709387cf0"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a8b83db8824ff8cd15dfdde4709387cf0">pFlow::sphereParticles::diameter_</a></div><divclass="ttdeci">realPointField_D diameter_</div><divclass="ttdoc">diameter / boundig sphere size of particles on device</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00057">sphereParticles.hpp:57</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a9967e171c665ac089ef162cf752eba3c"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a9967e171c665ac089ef162cf752eba3c">pFlow::sphereParticles::rVelocity_</a></div><divclass="ttdeci">realx3PointField_D rVelocity_</div><divclass="ttdoc">pointField of rotational Velocity of particles on device</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00066">sphereParticles.hpp:66</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a647786897b3da03fcd415b2ebcf541c0"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a647786897b3da03fcd415b2ebcf541c0">pFlow::demComponent::control</a></div><divclass="ttdeci">const auto & control() const</div><divclass="ttdoc">Const ref to systemControl.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00088">demComponent.hpp:88</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a0d71ca80914055f76cac2bc2f023d6d1"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a0d71ca80914055f76cac2bc2f023d6d1">pFlow::sphereParticles::getShapes</a></div><divclass="ttdeci">const shape & getShapes() const override</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8cpp_source.html#l00639">sphereParticles.cpp:639</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a7feb8389fc5704a8d7ac62adb310925b"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a7feb8389fc5704a8d7ac62adb310925b">pFlow::sphereParticles::rVelocity</a></div><divclass="ttdeci">auto & rVelocity()</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00172">sphereParticles.hpp:172</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1integration_html"><divclass="ttname"><ahref="classpFlow_1_1integration.html">pFlow::integration</a></div><divclass="ttdoc">Base class for integrating the first order ODE (IVP)</div><divclass="ttdef"><b>Definition:</b><ahref="integration_8hpp_source.html#l00051">integration.hpp:51</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_acab942b0343835097cc05a0e0d97ae9a"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#acab942b0343835097cc05a0e0d97ae9a">pFlow::sphereParticles::intPredictTimer_</a></div><divclass="ttdeci">Timer intPredictTimer_</div><divclass="ttdoc">timer for integration computations (prediction step)</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00081">sphereParticles.hpp:81</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a37902e8915b3022d1068391f864a8e59"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a37902e8915b3022d1068391f864a8e59">pFlow::sphereParticles::boundingSphereMinMax</a></div><divclass="ttdeci">void boundingSphereMinMax(real &minDiam, real &maxDiam) const override</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8cpp_source.html#l00645">sphereParticles.cpp:645</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_aaa7fbbf82d45a5a88b28de8a78754a69"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#aaa7fbbf82d45a5a88b28de8a78754a69">pFlow::sphereParticles::I</a></div><divclass="ttdeci">auto & I()</div><divclass="ttdoc">reference to inertia pointField</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00162">sphereParticles.hpp:162</a></div></div>
<divclass="ttc"id="anamespacepFlow_html_abd01e8e67e3d94cab04ecaaf4f85ac1b"><divclass="ttname"><ahref="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">pFlow::uint32</a></div><divclass="ttdeci">unsigned int uint32</div><divclass="ttdef"><b>Definition:</b><ahref="builtinTypes_8hpp_source.html#l00056">builtinTypes.hpp:56</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_af3a0e20c9660776af6f0b8118e89e880"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#af3a0e20c9660776af6f0b8118e89e880">pFlow::sphereParticles::sphereParticles</a></div><divclass="ttdeci">sphereParticles(systemControl &control, const property &prop)</div><divclass="ttdoc">construct from systemControl and property</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8cpp_source.html#l00308">sphereParticles.cpp:308</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a9fea25b8ac140210247e49a081e5e246"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a9fea25b8ac140210247e49a081e5e246">pFlow::sphereParticles::propertyId</a></div><divclass="ttdeci">const uint32PointField_D & propertyId() const override</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00189">sphereParticles.hpp:189</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a42e28b27090d72b9a10ca8142216be37"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a42e28b27090d72b9a10ca8142216be37">pFlow::sphereParticles::spheres</a></div><divclass="ttdeci">const auto & spheres() const</div><divclass="ttdoc">const reference to shapes object</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00150">sphereParticles.hpp:150</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a1bff664d1437325cc40dfb3e29421da4"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a1bff664d1437325cc40dfb3e29421da4">pFlow::sphereParticles::accelerationTimer_</a></div><divclass="ttdeci">Timer accelerationTimer_</div><divclass="ttdoc">timer for acceleration computations</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00078">sphereParticles.hpp:78</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a2a1c9981adfb622385473dc09302639d"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a2a1c9981adfb622385473dc09302639d">pFlow::sphereParticles::intCorrectTimer_</a></div><divclass="ttdeci">Timer intCorrectTimer_</div><divclass="ttdoc">timer for integration computations (correction step)</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00084">sphereParticles.hpp:84</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html">pFlow::sphereParticles</a></div><divclass="ttdoc">Class for managing spherical particles.</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00042">sphereParticles.hpp:42</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_aa1c1c863653fc262633e319b664eb8eb"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#aa1c1c863653fc262633e319b664eb8eb">pFlow::sphereParticles::I</a></div><divclass="ttdeci">const auto & I() const</div><divclass="ttdoc">const reference to inertia pointField</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00156">sphereParticles.hpp:156</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_abc84887de46cc625ef69fd5dfa81de01"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#abc84887de46cc625ef69fd5dfa81de01">pFlow::sphereParticles::diameter</a></div><divclass="ttdeci">const realPointField_D & diameter() const override</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00194">sphereParticles.hpp:194</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a5e39a4fcefdfce05f0e6b76cb9eb2a61"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a5e39a4fcefdfce05f0e6b76cb9eb2a61">pFlow::sphereParticles::rVelocity</a></div><divclass="ttdeci">const auto & rVelocity() const</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00167">sphereParticles.hpp:167</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a5de134c19ed41ec0da1606f1d1963873"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a5de134c19ed41ec0da1606f1d1963873">pFlow::sphereParticles::rVelIntegration</a></div><divclass="ttdeci">integration & rVelIntegration()</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00119">sphereParticles.hpp:119</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_af4899923e99ba2809ed3322c81b12019"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#af4899923e99ba2809ed3322c81b12019">pFlow::sphereParticles::rAcceleration</a></div><divclass="ttdeci">const realx3PointField_D & rAcceleration() const override</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00221">sphereParticles.hpp:221</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a84343969d723c548f0f20fcd9294d351"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a84343969d723c548f0f20fcd9294d351">pFlow::sphereParticles::initializeParticles</a></div><divclass="ttdeci">bool initializeParticles()</div><divclass="ttdoc">Insert new particles in position with specified shapes.</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8cpp_source.html#l00201">sphereParticles.cpp:201</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1property_html"><divclass="ttname"><ahref="classpFlow_1_1property.html">pFlow::property</a></div><divclass="ttdoc">property holds the pure properties of materials.</div><divclass="ttdef"><b>Definition:</b><ahref="property_8hpp_source.html#l00037">property.hpp:37</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a848a4271916d4c00aab93621c82eb404"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a848a4271916d4c00aab93621c82eb404">pFlow::sphereParticles::intCorrectTimer</a></div><divclass="ttdeci">Timer & intCorrectTimer()</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00114">sphereParticles.hpp:114</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a987c4fc5fe3a75305eede553d3efc279"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a987c4fc5fe3a75305eede553d3efc279">pFlow::demComponent::dt</a></div><divclass="ttdeci">real dt() const</div><divclass="ttdoc">Time step of integration.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8cpp_source.html#l00033">demComponent.cpp:33</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a89b1fd553ece5e3e7483f27c324ab4e5"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a89b1fd553ece5e3e7483f27c324ab4e5">pFlow::sphereParticles::mass_</a></div><divclass="ttdeci">realPointField_D mass_</div><divclass="ttdoc">mass of particles field</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00060">sphereParticles.hpp:60</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_ad6e7f37a0c46767c56240272c311c6ba"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#ad6e7f37a0c46767c56240272c311c6ba">pFlow::sphereParticles::rAcceleration</a></div><divclass="ttdeci">realx3PointField_D & rAcceleration() override</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00216">sphereParticles.hpp:216</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a3c82b6258ab661de33c9718409809b7f"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a3c82b6258ab661de33c9718409809b7f">pFlow::sphereParticles::spheres_</a></div><divclass="ttdeci">ShapeType spheres_</div><divclass="ttdoc">reference to shapes</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00051">sphereParticles.hpp:51</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a9772907f42ecab8a7d5d24496fba9498"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a9772907f42ecab8a7d5d24496fba9498">pFlow::sphereParticles::accelerationTimer</a></div><divclass="ttdeci">Timer & accelerationTimer()</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00109">sphereParticles.hpp:109</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_ac12ce7c14063d239b9fa3e845d5a4111"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#ac12ce7c14063d239b9fa3e845d5a4111">pFlow::sphereParticles::rAcceleration_</a></div><divclass="ttdeci">realx3PointField_D rAcceleration_</div><divclass="ttdoc">pointField of rotational acceleration of particles on device</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00069">sphereParticles.hpp:69</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1sphereParticles_html_a14b9479a586f46709213392c40fdd0a3"><divclass="ttname"><ahref="classpFlow_1_1sphereParticles.html#a14b9479a586f46709213392c40fdd0a3">pFlow::sphereParticles::I_</a></div><divclass="ttdeci">realPointField_D I_</div><divclass="ttdoc">pointField of inertial of particles</div><divclass="ttdef"><b>Definition:</b><ahref="sphereParticles_8hpp_source.html#l00063">sphereParticles.hpp:63</a></div></div>