<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">geometry.hpp</div></div>
</div><!--header-->
<divclass="contents">
<ahref="geometry_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="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment"> OOOOOOO F luid flow </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_1geometry_html_a2465cbbb1ac7b2edac89e188d5fcf693"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a2465cbbb1ac7b2edac89e188d5fcf693">pFlow::geometry::materialName_</a></div><divclass="ttdeci">wordField_H materialName_</div><divclass="ttdoc">Material name of each wall surface</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00062">geometry.hpp:62</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a1b71016133cac5d9b19995fab0cb4958"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a1b71016133cac5d9b19995fab0cb4958">pFlow::geometry::motionComponentName</a></div><divclass="ttdeci">const auto & motionComponentName() const</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00156">geometry.hpp:156</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_aff3bf2189d764c3c65a41735a275ca78"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#aff3bf2189d764c3c65a41735a275ca78">pFlow::geometry::contactForceWall_</a></div><divclass="ttdeci">realx3TriSurfaceField_D contactForceWall_</div><divclass="ttdoc">Contact force on each triangle in the set of wall surfaces.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00070">geometry.hpp:70</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_1geometry_html_ae079cb60208852a430a2103f65c42ffd"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#ae079cb60208852a430a2103f65c42ffd">pFlow::geometry::pointMotionIndex</a></div><divclass="ttdeci">virtual const uint32Field_D & pointMotionIndex() const =0</div><divclass="ttdoc">Motion model index of points.</div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_aca4d470de05b9b43b7a27da45c6d7ec0"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#aca4d470de05b9b43b7a27da45c6d7ec0">pFlow::geometry::motionModelTypeName</a></div><divclass="ttdeci">virtual word motionModelTypeName() const =0</div><divclass="ttdoc">The name of motion model.</div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_ae3aee10e229a60266b519d3406bb51a9"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#ae3aee10e229a60266b519d3406bb51a9">pFlow::geometry::createPropertyId</a></div><divclass="ttdeci">bool createPropertyId()</div><divclass="ttdoc">Find property id of each triangle based on the supplied material name and the surface wall that the t...</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8cpp_source.html#l00026">geometry.cpp:26</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a7aafd9ebf592394a9fab0ff0d8b9517e"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a7aafd9ebf592394a9fab0ff0d8b9517e">pFlow::geometry::wallProperty_</a></div><divclass="ttdeci">const property & wallProperty_</div><divclass="ttdoc">Const reference to physical property of materials.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00054">geometry.hpp:54</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1Field_html"><divclass="ttname"><ahref="classpFlow_1_1Field.html">pFlow::Field< word, HostSpace ></a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a07b3eecfb3e827ca7ee184d9a5cd9664"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a07b3eecfb3e827ca7ee184d9a5cd9664">pFlow::geometry::triMotionIndex</a></div><divclass="ttdeci">virtual const uint32Field_D & triMotionIndex() const =0</div><divclass="ttdoc">Motion model index of triangles.</div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a89e2122d962338095204d0bdc21943e8"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a89e2122d962338095204d0bdc21943e8">pFlow::geometry::normalStressWall_</a></div><divclass="ttdeci">realx3TriSurfaceField_D normalStressWall_</div><divclass="ttdoc">Stress on each triangle in the set of wall surfaces.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00073">geometry.hpp:73</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a64d59f88e1c9540487c113a12269191a"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a64d59f88e1c9540487c113a12269191a">pFlow::geometry::~geometry</a></div><divclass="ttdeci">~geometry() override=default</div><divclass="ttdoc">Construct from components.</div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a9cbbc4e89028e9ef3b708b21dadb2ec0"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a9cbbc4e89028e9ef3b708b21dadb2ec0">pFlow::geometry::contactForceWall</a></div><divclass="ttdeci">const auto & contactForceWall() const</div><divclass="ttdoc">Access to contact force.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00170">geometry.hpp:170</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a5ab4b6c611c3256e54f51bbfc484d58e"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a5ab4b6c611c3256e54f51bbfc484d58e">pFlow::geometry::afterIteration</a></div><divclass="ttdeci">bool afterIteration() override</div><divclass="ttdoc">This is called in time loop, after iterate.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8cpp_source.html#l00275">geometry.cpp:275</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a5a3baa8b7c6c6e9f3fda2e1e0db44282"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a5a3baa8b7c6c6e9f3fda2e1e0db44282">pFlow::geometry::propertyId</a></div><divclass="ttdeci">const auto & propertyId() const</div><divclass="ttdoc">Property ide of triangles.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00177">geometry.hpp:177</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1iIstream_html"><divclass="ttname"><ahref="classpFlow_1_1iIstream.html">pFlow::iIstream</a></div><divclass="ttdoc">Interface class for any input stream</div><divclass="ttdef"><b>Definition:</b><ahref="iIstream_8hpp_source.html#l00037">iIstream.hpp:37</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_ae92e6c96932a7b87524f81f88752d520"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#ae92e6c96932a7b87524f81f88752d520">pFlow::geometry::wallProperty</a></div><divclass="ttdeci">const auto & wallProperty() const</div><divclass="ttdoc">Access to property.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00183">geometry.hpp:183</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html">pFlow::demComponent</a></div><divclass="ttdoc">A base class for every main component of DEM system.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00042">demComponent.hpp:42</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a3679f6f29d12829f547c83551875f0e6"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a3679f6f29d12829f547c83551875f0e6">pFlow::geometry::propertyId_</a></div><divclass="ttdeci">uint32TriSurfaceField_D propertyId_</div><divclass="ttdoc">Property id of each triangle in the set of wall surfaces.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00067">geometry.hpp:67</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a7f8723fdc6d8f60469782c1b5ba7864c"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a7f8723fdc6d8f60469782c1b5ba7864c">pFlow::geometry::contactForceWall</a></div><divclass="ttdeci">auto & contactForceWall()</div><divclass="ttdoc">Access to contact force.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00163">geometry.hpp:163</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_ada71b97666fe3f66b31690bf12633c32"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#ada71b97666fe3f66b31690bf12633c32">pFlow::geometry::beforeIteration</a></div><divclass="ttdeci">bool beforeIteration() override</div><divclass="ttdoc">This is called in time loop, before iterate.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8cpp_source.html#l00264">geometry.cpp:264</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_afa767bddda52eb71cea18f755e17d559"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#afa767bddda52eb71cea18f755e17d559">pFlow::geometry::iterate</a></div><divclass="ttdeci">bool iterate() override</div><divclass="ttdoc">This is called in time loop.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8cpp_source.html#l00270">geometry.cpp:270</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_aee1fb957af9d737605b6e8701e6d14f5"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#aee1fb957af9d737605b6e8701e6d14f5">pFlow::geometry::zeroForce</a></div><divclass="ttdeci">void zeroForce()</div><divclass="ttdoc">Initialize contact force to zero.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8cpp_source.html#l00064">geometry.cpp:64</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_1geometry_html"><divclass="ttname"><ahref="classpFlow_1_1geometry.html">pFlow::geometry</a></div><divclass="ttdoc">Base class for geometry for managing tri-surfaces, geometry motion, and surface physical properties.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00044">geometry.hpp:44</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a45c8530fd395336682c6bf36b9ae2ec6"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a45c8530fd395336682c6bf36b9ae2ec6">pFlow::geometry::shearStressWall_</a></div><divclass="ttdeci">realx3TriSurfaceField_D shearStressWall_</div><divclass="ttdoc">Stress on each triangle in the set of wall surfaces.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00076">geometry.hpp:76</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1iOstream_html"><divclass="ttname"><ahref="classpFlow_1_1iOstream.html">pFlow::iOstream</a></div><divclass="ttdoc">Interface class for any output stream.</div><divclass="ttdef"><b>Definition:</b><ahref="iOstream_8hpp_source.html#l00059">iOstream.hpp:59</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1dictionary_html"><divclass="ttname"><ahref="classpFlow_1_1dictionary.html">pFlow::dictionary</a></div><divclass="ttdoc">Dictionary holds a set of data entries or sub-dictionaries that are enclosed in a curely braces or ar...</div><divclass="ttdef"><b>Definition:</b><ahref="dictionary_8hpp_source.html#l00067">dictionary.hpp:67</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_ac25e8dbd64a3856d6689171eff4efa66"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#ac25e8dbd64a3856d6689171eff4efa66">pFlow::geometry::geometry</a></div><divclass="ttdeci">geometry(systemControl &control, const property &prop)</div><divclass="ttdoc">Construct from controlSystem and property, for reading from file.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8cpp_source.html#l00070">geometry.cpp:70</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1geometry_html_a6f87058bd294c14c486d266cd6b92cfc"><divclass="ttname"><ahref="classpFlow_1_1geometry.html#a6f87058bd294c14c486d266cd6b92cfc">pFlow::geometry::motionComponentName_</a></div><divclass="ttdeci">wordField_H motionComponentName_</div><divclass="ttdoc">The name of motion component of each wall surface.</div><divclass="ttdef"><b>Definition:</b><ahref="geometry_8hpp_source.html#l00057">geometry.hpp:57</a></div></div>