documentation for v1.0

This commit is contained in:
HRN
2025-01-10 13:02:07 +03:30
parent 53c7b23728
commit 0acd52f1b1
16893 changed files with 448346 additions and 285977 deletions

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="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.">
<title>PhasicFlow: src/phasicFlow/structuredData/trisurfaceStructure/triangleFunctions.hpp Source File</title>
<title>PhasicFlow: src/phasicFlow/triSurface/triangleFunctions.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -130,34 +130,63 @@ $(document).ready(function(){initNavTree('triangleFunctions_8hpp_source.html',''
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="types_8hpp.html">types.hpp</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1triangleFunctions.html"> 26</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacepFlow_1_1triangleFunctions.html">pFlow::triangleFunctions</a></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1triangle.html"> 26</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacepFlow_1_1triangle.html">pFlow::triangle</a></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<a class="code" href="pFlowMacros_8hpp.html#a8e2f73fa5c113f21c9c9edb67a974f5e">INLINE_FUNCTION_HD</a></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1triangleFunctions.html#a2074ab5b90f47b0ec593414c80923362"> 30</a></span>&#160;<a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="namespacepFlow_1_1triangleFunctions.html#a2074ab5b90f47b0ec593414c80923362">triangleSurface</a>( <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p2, <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p3)</div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1triangle.html#a76e5558852ea08d3bd5ccdd6f8a52151"> 30</a></span>&#160;<a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="namespacepFlow_1_1triangle.html#a76e5558852ea08d3bd5ccdd6f8a52151">surface</a>( <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p2, <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p3)</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="classpFlow_1_1triple.html">realx3</a> V1 = p2 - p1;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classpFlow_1_1triple.html">realx3</a> V2 = p3 - p1;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacepFlow.html#a62ab5f54018a48f829abd2cca13d75b2">abs</a>((<a class="code" href="tripleFwd_8hpp.html#a7a724b824f9e21a646a965a99fff4b04">cross</a>(V1,V2)).<a class="code" href="tripleFwd_8hpp.html#ae1449f1d56abab2ec4d0f00b685fc478">length</a>() / <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(2.0)); </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacepFlow.html#a11091cf542ebb711e64d680ee05b311c">abs</a>((<a class="code" href="tripleFwd_8hpp.html#a7a724b824f9e21a646a965a99fff4b04">cross</a>(V1,V2)).<a class="code" href="tripleFwd_8hpp.html#ae1449f1d56abab2ec4d0f00b685fc478">length</a>()/(<a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a>)2.0); </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif </span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<a class="code" href="pFlowMacros_8hpp.html#a8e2f73fa5c113f21c9c9edb67a974f5e">INLINE_FUNCTION_HD</a></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1triangle.html#ac08cdb1c0031ef0cc9161c6e72174b34"> 38</a></span>&#160;<a class="code" href="classpFlow_1_1triple.html">realx3</a> <a class="code" href="namespacepFlow_1_1triangle.html#ac08cdb1c0031ef0cc9161c6e72174b34">normal</a>(<span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p2, <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p3)</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">auto</span> <a class="code" href="NBSLoop_8hpp.html#a58f1256fe216b2e84819aa621b683de1">n</a> = <a class="code" href="tripleFwd_8hpp.html#a7a724b824f9e21a646a965a99fff4b04">cross</a>(p2-p1, p3-p1);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>( <a class="code" href="namespacepFlow.html#ac51b1f978c0296b63a19e0033906c25c">equal</a>(<a class="code" href="NBSLoop_8hpp.html#a58f1256fe216b2e84819aa621b683de1">n</a>.length(), 0.0) )</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacepFlow.html#a5164661f6974ad24fa90bf19433e6116">realx3</a>(0);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> <a class="code" href="tripleFwd_8hpp.html#aac73338fc91e70834f04d7c806628ac5">normalize</a>(<a class="code" href="NBSLoop_8hpp.html#a58f1256fe216b2e84819aa621b683de1">n</a>);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<a class="code" href="pFlowMacros_8hpp.html#a8e2f73fa5c113f21c9c9edb67a974f5e">INLINE_FUNCTION_HD</a></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacepFlow_1_1triangle.html#a7ae9a0ef61cdf98506699cb7abcd84b8">valid</a></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1triangle.html#a7ae9a0ef61cdf98506699cb7abcd84b8"> 49</a></span>&#160;(</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p1, </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p2, </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1triple.html">realx3</a>&amp; p3</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;)</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> !<a class="code" href="namespacepFlow.html#ac51b1f978c0296b63a19e0033906c25c">equal</a>(<a class="code" href="tripleFwd_8hpp.html#a7a724b824f9e21a646a965a99fff4b04">cross</a>(p2-p1, p3-p1).<a class="code" href="tripleFwd_8hpp.html#ae1449f1d56abab2ec4d0f00b685fc478">length</a>(), 0.0);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#endif </span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00046">builtinTypes.hpp:46</a></div></div>
<div class="ttc" id="atripleFwd_8hpp_html_aac73338fc91e70834f04d7c806628ac5"><div class="ttname"><a href="tripleFwd_8hpp.html#aac73338fc91e70834f04d7c806628ac5">normalize</a></div><div class="ttdeci">INLINE_FUNCTION_HD triple&lt; T &gt; normalize(const triple&lt; T &gt; &amp;v1)</div></div>
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="atypes_8hpp_html"><div class="ttname"><a href="types_8hpp.html">types.hpp</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1triangleFunctions_html_a2074ab5b90f47b0ec593414c80923362"><div class="ttname"><a href="namespacepFlow_1_1triangleFunctions.html#a2074ab5b90f47b0ec593414c80923362">pFlow::triangleFunctions::triangleSurface</a></div><div class="ttdeci">INLINE_FUNCTION_HD real triangleSurface(const realx3 &amp;p1, const realx3 &amp;p2, const realx3 &amp;p3)</div><div class="ttdef"><b>Definition:</b> <a href="triangleFunctions_8hpp_source.html#l00030">triangleFunctions.hpp:30</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1triangle_html_a7ae9a0ef61cdf98506699cb7abcd84b8"><div class="ttname"><a href="namespacepFlow_1_1triangle.html#a7ae9a0ef61cdf98506699cb7abcd84b8">pFlow::triangle::valid</a></div><div class="ttdeci">INLINE_FUNCTION_HD bool valid(const realx3 &amp;p1, const realx3 &amp;p2, const realx3 &amp;p3)</div><div class="ttdef"><b>Definition:</b> <a href="triangleFunctions_8hpp_source.html#l00049">triangleFunctions.hpp:49</a></div></div>
<div class="ttc" id="anamespacepFlow_html_ac51b1f978c0296b63a19e0033906c25c"><div class="ttname"><a href="namespacepFlow.html#ac51b1f978c0296b63a19e0033906c25c">pFlow::equal</a></div><div class="ttdeci">INLINE_FUNCTION_HD bool equal(const box &amp;b1, const box &amp;b2, real tol=smallValue)</div><div class="ttdef"><b>Definition:</b> <a href="box_8hpp_source.html#l00135">box.hpp:135</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1triangle_html_ac08cdb1c0031ef0cc9161c6e72174b34"><div class="ttname"><a href="namespacepFlow_1_1triangle.html#ac08cdb1c0031ef0cc9161c6e72174b34">pFlow::triangle::normal</a></div><div class="ttdeci">INLINE_FUNCTION_HD realx3 normal(const realx3 &amp;p1, const realx3 &amp;p2, const realx3 &amp;p3)</div><div class="ttdef"><b>Definition:</b> <a href="triangleFunctions_8hpp_source.html#l00038">triangleFunctions.hpp:38</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a5164661f6974ad24fa90bf19433e6116"><div class="ttname"><a href="namespacepFlow.html#a5164661f6974ad24fa90bf19433e6116">pFlow::realx3</a></div><div class="ttdeci">triple&lt; real &gt; realx3</div><div class="ttdef"><b>Definition:</b> <a href="types_8hpp_source.html#l00043">types.hpp:43</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1triangle_html"><div class="ttname"><a href="namespacepFlow_1_1triangle.html">pFlow::triangle</a></div><div class="ttdef"><b>Definition:</b> <a href="triangleFunctions_8hpp_source.html#l00026">triangleFunctions.hpp:26</a></div></div>
<div class="ttc" id="atripleFwd_8hpp_html_a7a724b824f9e21a646a965a99fff4b04"><div class="ttname"><a href="tripleFwd_8hpp.html#a7a724b824f9e21a646a965a99fff4b04">cross</a></div><div class="ttdeci">INLINE_FUNCTION_HD triple&lt; T &gt; cross(const triple&lt; T &gt; &amp;v1, const triple&lt; T &gt; &amp;v2)</div></div>
<div class="ttc" id="atripleFwd_8hpp_html_ae1449f1d56abab2ec4d0f00b685fc478"><div class="ttname"><a href="tripleFwd_8hpp.html#ae1449f1d56abab2ec4d0f00b685fc478">length</a></div><div class="ttdeci">INLINE_FUNCTION_HD T length(const triple&lt; T &gt; &amp;v1)</div></div>
<div class="ttc" id="anamespacepFlow_html_a62ab5f54018a48f829abd2cca13d75b2"><div class="ttname"><a href="namespacepFlow.html#a62ab5f54018a48f829abd2cca13d75b2">pFlow::abs</a></div><div class="ttdeci">INLINE_FUNCTION_HD real abs(real x)</div><div class="ttdef"><b>Definition:</b> <a href="math_8hpp_source.html#l00043">math.hpp:43</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a8e2f73fa5c113f21c9c9edb67a974f5e"><div class="ttname"><a href="pFlowMacros_8hpp.html#a8e2f73fa5c113f21c9c9edb67a974f5e">INLINE_FUNCTION_HD</a></div><div class="ttdeci">#define INLINE_FUNCTION_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00051">pFlowMacros.hpp:51</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a11091cf542ebb711e64d680ee05b311c"><div class="ttname"><a href="namespacepFlow.html#a11091cf542ebb711e64d680ee05b311c">pFlow::abs</a></div><div class="ttdeci">Vector&lt; T, Allocator &gt; abs(const Vector&lt; T, Allocator &gt; &amp;v)</div><div class="ttdef"><b>Definition:</b> <a href="VectorMath_8hpp_source.html#l00084">VectorMath.hpp:84</a></div></div>
<div class="ttc" id="aNBSLoop_8hpp_html_a58f1256fe216b2e84819aa621b683de1"><div class="ttname"><a href="NBSLoop_8hpp.html#a58f1256fe216b2e84819aa621b683de1">n</a></div><div class="ttdeci">uint32 n</div><div class="ttdef"><b>Definition:</b> <a href="NBSLoop_8hpp_source.html#l00024">NBSLoop.hpp:24</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a8e2f73fa5c113f21c9c9edb67a974f5e"><div class="ttname"><a href="pFlowMacros_8hpp.html#a8e2f73fa5c113f21c9c9edb67a974f5e">INLINE_FUNCTION_HD</a></div><div class="ttdeci">#define INLINE_FUNCTION_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00055">pFlowMacros.hpp:55</a></div></div>
<div class="ttc" id="aclasspFlow_1_1triple_html"><div class="ttname"><a href="classpFlow_1_1triple.html">pFlow::triple&lt; real &gt;</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1triangleFunctions_html"><div class="ttname"><a href="namespacepFlow_1_1triangleFunctions.html">pFlow::triangleFunctions</a></div><div class="ttdef"><b>Definition:</b> <a href="triangleFunctions_8hpp_source.html#l00026">triangleFunctions.hpp:26</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1triangle_html_a76e5558852ea08d3bd5ccdd6f8a52151"><div class="ttname"><a href="namespacepFlow_1_1triangle.html#a76e5558852ea08d3bd5ccdd6f8a52151">pFlow::triangle::surface</a></div><div class="ttdeci">INLINE_FUNCTION_HD real surface(const realx3 &amp;p1, const realx3 &amp;p2, const realx3 &amp;p3)</div><div class="ttdef"><b>Definition:</b> <a href="triangleFunctions_8hpp_source.html#l00030">triangleFunctions.hpp:30</a></div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_cd7a5046d028e114fc17b2ebc2bd02d2.html">phasicFlow</a></li><li class="navelem"><a class="el" href="dir_0b265ec0eb5bc5fbad75b6fd7b5b024b.html">structuredData</a></li><li class="navelem"><a class="el" href="dir_cb566f9a80a0a346c3a6366e4b888b7d.html">trisurfaceStructure</a></li><li class="navelem"><a class="el" href="triangleFunctions_8hpp.html">triangleFunctions.hpp</a></li>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_cd7a5046d028e114fc17b2ebc2bd02d2.html">phasicFlow</a></li><li class="navelem"><a class="el" href="dir_38cf8104b99597e1233d708542fdeb18.html">triSurface</a></li><li class="navelem"><a class="el" href="triangleFunctions_8hpp.html">triangleFunctions.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>