<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">demComponent.hpp</div></div>
</div><!--header-->
<divclass="contents">
<ahref="demComponent_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_1demComponent_html_a73e3f3cd6a8eca86e6862f02e416dba2"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a73e3f3cd6a8eca86e6862f02e416dba2">pFlow::demComponent::demComponent</a></div><divclass="ttdeci">demComponent(const word &name, systemControl &control)</div><divclass="ttdoc">construct from components</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8cpp_source.html#l00025">demComponent.cpp:25</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_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_1demComponent_html_a71b953704058a7ca76b3056ae9215a64"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a71b953704058a7ca76b3056ae9215a64">pFlow::demComponent::TimeInfo</a></div><divclass="ttdeci">timeInfo TimeInfo() const</div><divclass="ttdoc">return time info of the simulaiton</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8cpp_source.html#l00048">demComponent.cpp:48</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a0b82b161f3fd39ee9f534cc2508d97f8"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a0b82b161f3fd39ee9f534cc2508d97f8">pFlow::demComponent::afterTimeLoop</a></div><divclass="ttdeci">virtual bool afterTimeLoop()</div><divclass="ttdoc">This is called after the time loop.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00162">demComponent.hpp:162</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a40f341a9cb1091ba9e3670f98cd002c3"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a40f341a9cb1091ba9e3670f98cd002c3">pFlow::demComponent::time</a></div><divclass="ttdeci">const auto & time() const</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00113">demComponent.hpp:113</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_1demComponent_html_ac7d2399b393b6dfa6f00ad9bcd524437"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#ac7d2399b393b6dfa6f00ad9bcd524437">pFlow::demComponent::afterIteration</a></div><divclass="ttdeci">virtual bool afterIteration()=0</div><divclass="ttdoc">This is called in time loop, after iterate.</div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_ae69e59e991f33e7d278ff6ad19d2e87d"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#ae69e59e991f33e7d278ff6ad19d2e87d">pFlow::demComponent::timers</a></div><divclass="ttdeci">const auto & timers() const</div><divclass="ttdoc">Const ref to timers.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00127">demComponent.hpp:127</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_ae1afde9cfe19a586522259a33a4931e3"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#ae1afde9cfe19a586522259a33a4931e3">pFlow::demComponent::control</a></div><divclass="ttdeci">auto & control()</div><divclass="ttdoc">Ref to systemControl.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00095">demComponent.hpp:95</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_abfbc3debb472c661c30cf9fe782bb076"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#abfbc3debb472c661c30cf9fe782bb076">pFlow::demComponent::control_</a></div><divclass="ttdeci">systemControl & control_</div><divclass="ttdoc">Reference to systemControl.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00048">demComponent.hpp:48</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a0c29ef9514a77bce5b8f4ece533bcf8c"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a0c29ef9514a77bce5b8f4ece533bcf8c">pFlow::demComponent::timers_</a></div><divclass="ttdeci">Timers timers_</div><divclass="ttdoc">All timers (if any) of this component.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00053">demComponent.hpp:53</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a3fe92d89e0339f3b0ccb505a1aac2182"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a3fe92d89e0339f3b0ccb505a1aac2182">pFlow::demComponent::currentIter</a></div><divclass="ttdeci">uint32 currentIter() const</div><divclass="ttdoc">return current iteration number</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8cpp_source.html#l00043">demComponent.cpp:43</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a97d6a106e35c444e647a69f8a8ba7f9b"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a97d6a106e35c444e647a69f8a8ba7f9b">pFlow::demComponent::time_</a></div><divclass="ttdeci">Time & time_</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00050">demComponent.hpp:50</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_1demComponent_html_ab272f2a135d95ff17ad06338049a2cd5"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#ab272f2a135d95ff17ad06338049a2cd5">pFlow::demComponent::beforeTimeLoop</a></div><divclass="ttdeci">virtual bool beforeTimeLoop()</div><divclass="ttdoc">This is called before the start of time loop.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00141">demComponent.hpp:141</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a87d9b39a0e924bb21ed4a165140836de"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a87d9b39a0e924bb21ed4a165140836de">pFlow::demComponent::beforeIteration</a></div><divclass="ttdeci">virtual bool beforeIteration()=0</div><divclass="ttdoc">This is called in time loop, before iterate.</div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a3ce96806ed72189c4d9a24e9429d0420"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a3ce96806ed72189c4d9a24e9429d0420">pFlow::demComponent::componentName_</a></div><divclass="ttdeci">word componentName_</div><divclass="ttdoc">Name of the DEM component.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00056">demComponent.hpp:56</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_a40e6d687c4d54c66dfe5b1bc5a0d28ce"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a40e6d687c4d54c66dfe5b1bc5a0d28ce">pFlow::demComponent::time</a></div><divclass="ttdeci">auto & time()</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00119">demComponent.hpp:119</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_1demComponent_html_a49e56dd259a0f440e947ed17b149f32f"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#a49e56dd259a0f440e947ed17b149f32f">pFlow::demComponent::timers</a></div><divclass="ttdeci">auto & timers()</div><divclass="ttdoc">Ref to timers.</div><divclass="ttdef"><b>Definition:</b><ahref="demComponent_8hpp_source.html#l00134">demComponent.hpp:134</a></div></div>
<divclass="ttc"id="aclasspFlow_1_1demComponent_html_ad9e44c3349e7a9a5b6ba72c9db344b96"><divclass="ttname"><ahref="classpFlow_1_1demComponent.html#ad9e44c3349e7a9a5b6ba72c9db344b96">pFlow::demComponent::iterate</a></div><divclass="ttdeci">virtual bool iterate()=0</div><divclass="ttdoc">This is called in time loop.</div></div>