    

 ## On this page

  

 

 # rocky\_sph\_model\_api

 Last update: 16.07.2025 

<a id="l00001" name="l00001"></a> 1// (C) 2024 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.

<a id="l00002" name="l00002"></a> 2\#pragma once

<a id="l00003" name="l00003"></a> 3 

<a id="l00004" name="l00004"></a> 4// Includes =======================================================================================

<a id="l00005" name="l00005"></a> 5\#include "rocky20/api/rocky\_particle\_api.hpp"

<a id="l00006" name="l00006"></a> 6\#include "rocky20/api/rocky\_point\_cloud\_api.hpp"

<a id="l00007" name="l00007"></a> 7 

<a id="l00008" name="l00008"></a> 8\#include "rocky\_sph\_element\_scalars.hpp"

<a id="l00009" name="l00009"></a> 9\#include "rocky\_sph\_element\_api.hpp"

<a id="l00010" name="l00010"></a> 10\#include "rocky\_sph\_model.hpp"

<a id="l00011" name="l00011"></a> 11 

<a id="l00012" name="l00012"></a> 12// ================================================================================================

<a id="l00013" name="l00013"></a> 13// IRockySPHModel

<a id="l00014" name="l00014"></a> 14// ================================================================================================

<a id="l00015" name="l00015"></a> 15 

<a id="l00021" name="l00021"></a>[ 21](structIRockySPHModel.xhtml)struct [IRockySPHModel](structIRockySPHModel.xhtml)

<a id="l00022" name="l00022"></a> 22{

<a id="l00030" name="l00030"></a> 30 [IRockySPHElementScalarsModel](structIRockySPHElementScalarsModel.xhtml) [get\_sph\_element\_scalars](structIRockySPHModel.xhtml#a60758ee9b344fcc7c76b500c0ac8f1cc)() const;

<a id="l00031" name="l00031"></a> 31 

<a id="l00036" name="l00036"></a> 36 int [get\_number\_of\_sph\_elements](structIRockySPHModel.xhtml#a5a3c1e8c7b54f79f6803fb25799cbd6d)() const;

<a id="l00037" name="l00037"></a> 37 

<a id="l00042" name="l00042"></a> 42 int [get\_number\_of\_active\_sph\_elements](structIRockySPHModel.xhtml#a53aabea7b2fb880bf83924a036badac7)() const;

<a id="l00043" name="l00043"></a> 43 

<a id="l00048" name="l00048"></a> 48 int [get\_number\_of\_active\_free\_sph\_elements](structIRockySPHModel.xhtml#a5f6419ca48c0e300e03e6820934a1718)() const;

<a id="l00049" name="l00049"></a> 49 

<a id="l00055" name="l00055"></a> 55 int [get\_number\_of\_active\_linked\_sph\_elements](structIRockySPHModel.xhtml#a832524def72a3d2da3bd449d5fb74368)() const;

<a id="l00056" name="l00056"></a> 56 

<a id="l00064" name="l00064"></a> 64 ESPHKernelType [get\_kernel\_type](structIRockySPHModel.xhtml#a513d780295b0089e4d2814cc660f5c78)() const;

<a id="l00065" name="l00065"></a> 65 

<a id="l00070" name="l00070"></a> 70 float [get\_initial\_element\_spacing](structIRockySPHModel.xhtml#a212b6dd01fb2421258372058df86ccd6)() const;

<a id="l00071" name="l00071"></a> 71 

<a id="l00077" name="l00077"></a> 77 float [get\_smoothing\_length](structIRockySPHModel.xhtml#a245fc38b2db35e544f3b78642f11aff7)() const;

<a id="l00078" name="l00078"></a> 78 

<a id="l00082" name="l00082"></a> 82 float [get\_element\_mass](structIRockySPHModel.xhtml#afafa8461838c8fa9ca237437c074facd)() const;

<a id="l00083" name="l00083"></a> 83 

<a id="l00087" name="l00087"></a> 87 ROCKY_FUNCTIONS float [get\_fluid\_viscosity](structIRockySPHModel.xhtml#aa34cbdb0bbe713f76a24718369445b90)() const;

<a id="l00088" name="l00088"></a> 88 

<a id="l00092" name="l00092"></a> 92 ROCKY_FUNCTIONS float [get\_fluid\_density](structIRockySPHModel.xhtml#a053a3b3c9bd14e5051f38a0024ab4536)() const;

<a id="l00093" name="l00093"></a> 93 

<a id="l00097" name="l00097"></a> 97 ROCKY_FUNCTIONS float [get\_fluid\_thermal\_conductivity](structIRockySPHModel.xhtml#ab09538e62b2731ab25ee664d6eb08319)() const;

<a id="l00098" name="l00098"></a> 98 

<a id="l00102" name="l00102"></a> 102 ROCKY_FUNCTIONS float [get\_fluid\_specific\_heat](structIRockySPHModel.xhtml#acaf7cc9d7b268d36a2f739cfc3c3f7ca)() const;

<a id="l00103" name="l00103"></a> 103 

<a id="l00107" name="l00107"></a> 107 ROCKY_FUNCTIONS float [get\_speed\_of\_sound](structIRockySPHModel.xhtml#a223390925c0c7a8d4c0a8ceaef043fe4)() const;

<a id="l00108" name="l00108"></a> 108 

<a id="l00112" name="l00112"></a> 112 ROCKY_FUNCTIONS float [get\_surface\_tension](structIRockySPHModel.xhtml#adae7b4a0340c884eb80e14d54a1b22f5)() const;

<a id="l00113" name="l00113"></a> 113 

<a id="l00117" name="l00117"></a> 117 bool [is\_enabled](structIRockySPHModel.xhtml#ab104c8f250896d3528cbe2eb045b4c69)() const;

<a id="l00118" name="l00118"></a> 118 

<a id="l00125" name="l00125"></a> 125 ROCKY_FUNCTIONS void [set\_htc\_distance\_factor](structIRockySPHModel.xhtml#a1627faf9bcd3eca660891efbf5d95981)(float htc_distance_factor) const;

<a id="l00126" name="l00126"></a> 126 

<a id="l00129" name="l00129"></a> 129 ROCKY_FUNCTIONS [IRockySPHModel](structIRockySPHModel.xhtml)(SPHModel* impl, const std::vector&lt;int&gt;&amp; device_ids);

<a id="l00130" name="l00130"></a> 130 

<a id="l00131" name="l00131"></a> 131 SPHModel* _impl;

<a id="l00132" name="l00132"></a> 132 const std::vector&lt;int&gt;&amp; _device_ids;

<a id="l00133" name="l00133"></a> 133 

<a id="l00135" name="l00135"></a> 135};



<a id="l00136" name="l00136"></a> 136 

<a id="l00137" name="l00137"></a> 137inline ROCKY_FUNCTIONS IRockySPHModel::IRockySPHModel(

<a id="l00138" name="l00138"></a> 138 SPHModel* impl, const std::vector&lt;int&gt;&amp; device_ids)

<a id="l00139" name="l00139"></a> 139 : _impl(impl)

<a id="l00140" name="l00140"></a> 140 , _device_ids(device_ids)

<a id="l00141" name="l00141"></a> 141{

<a id="l00142" name="l00142"></a> 142}

<a id="l00143" name="l00143"></a> 143 

<a id="l00144" name="l00144"></a> 144// ================================================================================================

<a id="l00145" name="l00145"></a> 145// IRockySPHDeviceModel

<a id="l00146" name="l00146"></a> 146// ================================================================================================

<a id="l00147" name="l00147"></a> 147 

<a id="l00154" name="l00154"></a>[ 154](structIRockySPHDeviceModel.xhtml)struct [IRockySPHDeviceModel](structIRockySPHDeviceModel.xhtml)

<a id="l00155" name="l00155"></a> 155{

<a id="l00159" name="l00159"></a> 159 ROCKY_FUNCTIONS float [get\_sph\_timestep](structIRockySPHDeviceModel.xhtml#a1b3b0ad0b9b4e4f723fed8cd6d859ff1)() const;

<a id="l00160" name="l00160"></a> 160 

<a id="l00164" name="l00164"></a> 164 ROCKY_FUNCTIONS float [get\_element\_mass](structIRockySPHDeviceModel.xhtml#a2e07d8b951637326aa17c3869fa75f6f)() const;

<a id="l00165" name="l00165"></a> 165 

<a id="l00170" name="l00170"></a> 170 ROCKY_FUNCTIONS float [get\_initial\_element\_spacing](structIRockySPHDeviceModel.xhtml#aa0dda18957c28775ae86803575275db2)() const;

<a id="l00171" name="l00171"></a> 171 

<a id="l00179" name="l00179"></a> 179 ROCKY_FUNCTIONS ESPHKernelType [get\_kernel\_type](structIRockySPHDeviceModel.xhtml#a1c804b61e8d38f22cc1df2960b94e5e5)() const;

<a id="l00180" name="l00180"></a> 180 

<a id="l00188" name="l00188"></a> 188 ROCKY_FUNCTIONS float [get\_kernel\_weight](structIRockySPHDeviceModel.xhtml#ac0f6dab31e47087f957b9c5f921044ca)(float distance) const;

<a id="l00189" name="l00189"></a> 189 

<a id="l00197" name="l00197"></a> 197 ROCKY_FUNCTIONS float [get\_kernel\_derivative](structIRockySPHDeviceModel.xhtml#a878401756bbf4517bd2dbf7c0b6f53b5)(float distance) const;

<a id="l00198" name="l00198"></a> 198 

<a id="l00204" name="l00204"></a> 204 ROCKY_FUNCTIONS float [get\_smoothing\_length](structIRockySPHDeviceModel.xhtml#a08276af5f02f29358b677c6c5c4eb623)() const;

<a id="l00205" name="l00205"></a> 205 

<a id="l00210" name="l00210"></a> 210 ROCKY_FUNCTIONS float [get\_minimum\_distance](structIRockySPHDeviceModel.xhtml#a11adf37fd1989526607c500a68f5a190)() const;

<a id="l00211" name="l00211"></a> 211 

<a id="l00216" name="l00216"></a> 216 ROCKY_FUNCTIONS float [get\_minimum\_distance\_squared](structIRockySPHDeviceModel.xhtml#a02751c7624b5eebe898fd497fd368f7e)() const;

<a id="l00217" name="l00217"></a> 217 

<a id="l00222" name="l00222"></a> 222 ROCKY_FUNCTIONS float [get\_fluid\_viscosity](structIRockySPHDeviceModel.xhtml#a0e7d219d00a03afa23f4340f966f274f)() const;

<a id="l00223" name="l00223"></a> 223 

<a id="l00227" name="l00227"></a> 227 ROCKY_FUNCTIONS float [get\_fluid\_density](structIRockySPHDeviceModel.xhtml#a30c701000a588378110aa2a163a07847)() const;

<a id="l00228" name="l00228"></a> 228 

<a id="l00232" name="l00232"></a> 232 ROCKY_FUNCTIONS float [get\_fluid\_thermal\_conductivity](structIRockySPHDeviceModel.xhtml#a53bf5a5c5dc38bed487a0ff75b4f881e)() const;

<a id="l00233" name="l00233"></a> 233 

<a id="l00237" name="l00237"></a> 237 ROCKY_FUNCTIONS float [get\_fluid\_specific\_heat](structIRockySPHDeviceModel.xhtml#a3f511dafb251e18d7dfc8a8f7c9cfcf1)() const;

<a id="l00238" name="l00238"></a> 238 

<a id="l00244" name="l00244"></a> 244 ROCKY_FUNCTIONS float [get\_turbulent\_prandtl\_number](structIRockySPHDeviceModel.xhtml#a085435fa6f49074b90d50686b5b6dd6c)() const;

<a id="l00245" name="l00245"></a> 245 

<a id="l00249" name="l00249"></a> 249 ROCKY_FUNCTIONS float [get\_speed\_of\_sound](structIRockySPHDeviceModel.xhtml#a53367cb9b7f97cb102cb9e1703a95131)() const;

<a id="l00250" name="l00250"></a> 250 

<a id="l00254" name="l00254"></a> 254 ROCKY_FUNCTIONS float [get\_surface\_tension](structIRockySPHDeviceModel.xhtml#ad52e0f31256e039c7043a7de165fadf7)() const;

<a id="l00255" name="l00255"></a> 255 

<a id="l00260" name="l00260"></a> 260 ROCKY_FUNCTIONS float [get\_stiffness](structIRockySPHDeviceModel.xhtml#aa0fa9e6fb5e51db54a99a4bc45949409)() const;

<a id="l00261" name="l00261"></a> 261 

<a id="l00266" name="l00266"></a> 266 ROCKY_FUNCTIONS float [get\_damping\_coefficient](structIRockySPHDeviceModel.xhtml#a7a1b280f7d23137f75cafb3eb29cf2bd)() const;

<a id="l00267" name="l00267"></a> 267 

<a id="l00278" name="l00278"></a> 278 ROCKY_FUNCTIONS ESPHBoundaryType [get\_boundary\_condition\_type](structIRockySPHDeviceModel.xhtml#a9a4ab5e39105ea7398fb0b3b15b2763c) (int geometry_index) const;

<a id="l00279" name="l00279"></a> 279 

<a id="l00290" name="l00290"></a> 290 ROCKY_FUNCTIONS float [get\_wall\_turbulent\_thermal\_conductance](structIRockySPHDeviceModel.xhtml#a98a93eadf944d6ad89416d384e1476c3)(

<a id="l00291" name="l00291"></a> 291 float velocity, float distance) const;

<a id="l00292" name="l00292"></a> 292 

<a id="l00308" name="l00308"></a> 308 ROCKY_FUNCTIONS [IRockyCloudPoint](structIRockyCloudPoint.xhtml)

<a id="l00309" name="l00309"></a> 309 [get\_element\_cloud\_point](structIRockySPHDeviceModel.xhtml#a707d2c43244e0a2db08047ba86dbfd78)(int point_cloud_index, const [IRockySPHElement](structIRockySPHElement.xhtml)&amp; element);

<a id="l00310" name="l00310"></a> 310 

<a id="l00314" name="l00314"></a> 314 ROCKY_FUNCTIONS bool [has\_turbulence\_modeling](structIRockySPHDeviceModel.xhtml#aeafb1df061969bc91b4912460cebedb5)() const;

<a id="l00315" name="l00315"></a> 315 

<a id="l00316" name="l00316"></a> 316 

<a id="l00319" name="l00319"></a> 319 [[deprecated("Use get\_element\_mass() instead.")]]

<a id="l00320" name="l00320"></a> 320 ROCKY_FUNCTIONS float get_mass() const;

<a id="l00321" name="l00321"></a> 321 

<a id="l00322" name="l00322"></a> 322 // (ROCKY - 15509) : candidates for removing from the API

<a id="l00323" name="l00323"></a> 323 // reason: they are model-specific parameters, they are not general

<a id="l00324" name="l00324"></a> 324 

<a id="l00325" name="l00325"></a> 325 ROCKY_FUNCTIONS float get_les_smagorinsky_constant() const;

<a id="l00326" name="l00326"></a> 326 

<a id="l00327" name="l00327"></a> 327 ROCKY_FUNCTIONS float get_les_distance_factor() const;

<a id="l00328" name="l00328"></a> 328 

<a id="l00329" name="l00329"></a> 329 ROCKY_FUNCTIONS float get_stabilization_positive_factor() const;

<a id="l00330" name="l00330"></a> 330 

<a id="l00331" name="l00331"></a> 331 ROCKY_FUNCTIONS float get_stabilization_negative_factor() const;

<a id="l00332" name="l00332"></a> 332 

<a id="l00333" name="l00333"></a> 333 ROCKY_FUNCTIONS float get_stabilization_degree() const;

<a id="l00334" name="l00334"></a> 334 

<a id="l00335" name="l00335"></a> 335 ROCKY_FUNCTIONS float get_boundary_distance_normal_factor() const;

<a id="l00336" name="l00336"></a> 336 

<a id="l00337" name="l00337"></a> 337 ROCKY_FUNCTIONS float get_boundary_distance_tangential_factor() const;

<a id="l00338" name="l00338"></a> 338 

<a id="l00339" name="l00339"></a> 339 ROCKY_FUNCTIONS bool has_variable_molecular_viscosity() const;

<a id="l00340" name="l00340"></a> 340 

<a id="l00341" name="l00341"></a> 341 ROCKY_FUNCTIONS [IRockySPHDeviceModel](structIRockySPHDeviceModel.xhtml)(

<a id="l00342" name="l00342"></a> 342 SDeviceModel* model, cuda_general_sph* _gen_sph, SPHDeviceModel* _sph_model);

<a id="l00343" name="l00343"></a> 343 

<a id="l00344" name="l00344"></a> 344 RockySPHDeviceModel _impl;

<a id="l00345" name="l00345"></a> 345 SDeviceModel* device_model;

<a id="l00346" name="l00346"></a> 346 

<a id="l00348" name="l00348"></a> 348};



<a id="l00349" name="l00349"></a> 349 

<a id="l00350" name="l00350"></a> 350inline ROCKY_FUNCTIONS IRockySPHDeviceModel::IRockySPHDeviceModel(

<a id="l00351" name="l00351"></a> 351 SDeviceModel* model, cuda_general_sph* _gen_sph, SPHDeviceModel* _sph_model)

<a id="l00352" name="l00352"></a> 352 : device_model(model)

<a id="l00353" name="l00353"></a> 353 , _impl(_gen_sph, _sph_model)

<a id="l00354" name="l00354"></a> 354{

<a id="l00355" name="l00355"></a> 355}

<a id="l00356" name="l00356"></a> 356 

<a id="l00357" name="l00357"></a>[ 357](structIRockySPHDeviceModel.xhtml#a1c804b61e8d38f22cc1df2960b94e5e5)inline ROCKY_FUNCTIONS ESPHKernelType [IRockySPHDeviceModel::get\_kernel\_type](structIRockySPHDeviceModel.xhtml#a1c804b61e8d38f22cc1df2960b94e5e5)() const

<a id="l00358" name="l00358"></a> 358{

<a id="l00359" name="l00359"></a> 359 return this-&gt;_impl.get_kernel_type();

<a id="l00360" name="l00360"></a> 360}



<a id="l00361" name="l00361"></a> 361 

<a id="l00362" name="l00362"></a>[ 362](structIRockySPHDeviceModel.xhtml#a1b3b0ad0b9b4e4f723fed8cd6d859ff1)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_sph\_timestep](structIRockySPHDeviceModel.xhtml#a1b3b0ad0b9b4e4f723fed8cd6d859ff1)() const

<a id="l00363" name="l00363"></a> 363{

<a id="l00364" name="l00364"></a> 364 return this-&gt;_impl.get_timestep();

<a id="l00365" name="l00365"></a> 365}



<a id="l00366" name="l00366"></a> 366 

<a id="l00367" name="l00367"></a> 367inline ROCKY_FUNCTIONS float IRockySPHDeviceModel::get_mass() const

<a id="l00368" name="l00368"></a> 368{

<a id="l00369" name="l00369"></a> 369 return this-&gt;_impl.get_mass();

<a id="l00370" name="l00370"></a> 370}

<a id="l00371" name="l00371"></a> 371 

<a id="l00372" name="l00372"></a>[ 372](structIRockySPHDeviceModel.xhtml#a2e07d8b951637326aa17c3869fa75f6f)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_element\_mass](structIRockySPHDeviceModel.xhtml#a2e07d8b951637326aa17c3869fa75f6f)() const

<a id="l00373" name="l00373"></a> 373{

<a id="l00374" name="l00374"></a> 374 return this-&gt;_impl.get_mass();

<a id="l00375" name="l00375"></a> 375}



<a id="l00376" name="l00376"></a> 376 

<a id="l00377" name="l00377"></a>[ 377](structIRockySPHDeviceModel.xhtml#aa0dda18957c28775ae86803575275db2)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_initial\_element\_spacing](structIRockySPHDeviceModel.xhtml#aa0dda18957c28775ae86803575275db2)() const

<a id="l00378" name="l00378"></a> 378{

<a id="l00379" name="l00379"></a> 379 return this-&gt;_impl.get_general_size();

<a id="l00380" name="l00380"></a> 380}



<a id="l00381" name="l00381"></a> 381 

<a id="l00382" name="l00382"></a> 382[[deprecated("Use "

<a id="l00383" name="l00383"></a> 383 "IRockySPHElement::get\_kernel instead")]]

<a id="l00384" name="l00384"></a>[ 384](structIRockySPHDeviceModel.xhtml#ac0f6dab31e47087f957b9c5f921044ca)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_kernel\_weight](structIRockySPHDeviceModel.xhtml#ac0f6dab31e47087f957b9c5f921044ca)(float distance) const

<a id="l00385" name="l00385"></a> 385{

<a id="l00386" name="l00386"></a> 386 return this-&gt;_impl.gen_sph-&gt;get_kernel_single(distance);;

<a id="l00387" name="l00387"></a> 387}



<a id="l00388" name="l00388"></a> 388 

<a id="l00389" name="l00389"></a> 389[[deprecated("Use "

<a id="l00390" name="l00390"></a> 390 "IRockySPHElement::get\_kernel\_derivative instead")]]

<a id="l00391" name="l00391"></a>[ 391](structIRockySPHDeviceModel.xhtml#a878401756bbf4517bd2dbf7c0b6f53b5)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_kernel\_derivative](structIRockySPHDeviceModel.xhtml#a878401756bbf4517bd2dbf7c0b6f53b5)(float distance) const

<a id="l00392" name="l00392"></a> 392{

<a id="l00393" name="l00393"></a> 393 return this-&gt;_impl.gen_sph-&gt;get_kernel_derivative(distance);

<a id="l00394" name="l00394"></a> 394}



<a id="l00395" name="l00395"></a> 395 

<a id="l00396" name="l00396"></a> 396[[deprecated("Use "

<a id="l00397" name="l00397"></a> 397 "IRockySPHElement::get\_smoothing\_length instead")]]

<a id="l00398" name="l00398"></a>[ 398](structIRockySPHDeviceModel.xhtml#a08276af5f02f29358b677c6c5c4eb623)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_smoothing\_length](structIRockySPHDeviceModel.xhtml#a08276af5f02f29358b677c6c5c4eb623)() const

<a id="l00399" name="l00399"></a> 399{

<a id="l00400" name="l00400"></a> 400 return this-&gt;_impl.gen_sph-&gt;dist_init * this-&gt;_impl.gen_sph-&gt;kern_factor;

<a id="l00401" name="l00401"></a> 401}



<a id="l00402" name="l00402"></a> 402 

<a id="l00403" name="l00403"></a>[ 403](structIRockySPHDeviceModel.xhtml#a11adf37fd1989526607c500a68f5a190)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_minimum\_distance](structIRockySPHDeviceModel.xhtml#a11adf37fd1989526607c500a68f5a190)() const

<a id="l00404" name="l00404"></a> 404{

<a id="l00405" name="l00405"></a> 405 return this-&gt;_impl.get_minimum_distance();

<a id="l00406" name="l00406"></a> 406}



<a id="l00407" name="l00407"></a> 407 

<a id="l00408" name="l00408"></a>[ 408](structIRockySPHDeviceModel.xhtml#a02751c7624b5eebe898fd497fd368f7e)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_minimum\_distance\_squared](structIRockySPHDeviceModel.xhtml#a02751c7624b5eebe898fd497fd368f7e)() const

<a id="l00409" name="l00409"></a> 409{

<a id="l00410" name="l00410"></a> 410 return this-&gt;_impl.get_minimum_distance_squared();

<a id="l00411" name="l00411"></a> 411}



<a id="l00412" name="l00412"></a> 412 

<a id="l00413" name="l00413"></a> 413[[deprecated("Use "

<a id="l00414" name="l00414"></a> 414 "IRockySPHElement::get\_molecular\_viscosity instead")]]

<a id="l00415" name="l00415"></a>[ 415](structIRockySPHDeviceModel.xhtml#a0e7d219d00a03afa23f4340f966f274f)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_fluid\_viscosity](structIRockySPHDeviceModel.xhtml#a0e7d219d00a03afa23f4340f966f274f)() const

<a id="l00416" name="l00416"></a> 416{

<a id="l00417" name="l00417"></a> 417 return this-&gt;_impl.get_general_viscosity();

<a id="l00418" name="l00418"></a> 418}



<a id="l00419" name="l00419"></a> 419 

<a id="l00420" name="l00420"></a>[ 420](structIRockySPHDeviceModel.xhtml#a30c701000a588378110aa2a163a07847)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_fluid\_density](structIRockySPHDeviceModel.xhtml#a30c701000a588378110aa2a163a07847)() const

<a id="l00421" name="l00421"></a> 421{

<a id="l00422" name="l00422"></a> 422 return this-&gt;_impl.get_general_density();

<a id="l00423" name="l00423"></a> 423}



<a id="l00424" name="l00424"></a> 424 

<a id="l00425" name="l00425"></a>[ 425](structIRockySPHDeviceModel.xhtml#a53bf5a5c5dc38bed487a0ff75b4f881e)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_fluid\_thermal\_conductivity](structIRockySPHDeviceModel.xhtml#a53bf5a5c5dc38bed487a0ff75b4f881e)() const

<a id="l00426" name="l00426"></a> 426{

<a id="l00427" name="l00427"></a> 427 return this-&gt;_impl.get_general_thermal_conductivity();

<a id="l00428" name="l00428"></a> 428}



<a id="l00429" name="l00429"></a> 429 

<a id="l00430" name="l00430"></a>[ 430](structIRockySPHDeviceModel.xhtml#a3f511dafb251e18d7dfc8a8f7c9cfcf1)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_fluid\_specific\_heat](structIRockySPHDeviceModel.xhtml#a3f511dafb251e18d7dfc8a8f7c9cfcf1)() const

<a id="l00431" name="l00431"></a> 431{

<a id="l00432" name="l00432"></a> 432 return this-&gt;_impl.get_general_specific_heat();

<a id="l00433" name="l00433"></a> 433}



<a id="l00434" name="l00434"></a> 434 

<a id="l00435" name="l00435"></a>[ 435](structIRockySPHDeviceModel.xhtml#a085435fa6f49074b90d50686b5b6dd6c)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_turbulent\_prandtl\_number](structIRockySPHDeviceModel.xhtml#a085435fa6f49074b90d50686b5b6dd6c)() const

<a id="l00436" name="l00436"></a> 436{

<a id="l00437" name="l00437"></a> 437 return this-&gt;_impl.get_turbulent_prandtl_number();

<a id="l00438" name="l00438"></a> 438}



<a id="l00439" name="l00439"></a> 439 

<a id="l00440" name="l00440"></a>[ 440](structIRockySPHDeviceModel.xhtml#a53367cb9b7f97cb102cb9e1703a95131)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_speed\_of\_sound](structIRockySPHDeviceModel.xhtml#a53367cb9b7f97cb102cb9e1703a95131)() const

<a id="l00441" name="l00441"></a> 441{

<a id="l00442" name="l00442"></a> 442 return this-&gt;_impl.get_speed_of_sound();

<a id="l00443" name="l00443"></a> 443}



<a id="l00444" name="l00444"></a> 444 

<a id="l00445" name="l00445"></a>[ 445](structIRockySPHDeviceModel.xhtml#ad52e0f31256e039c7043a7de165fadf7)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_surface\_tension](structIRockySPHDeviceModel.xhtml#ad52e0f31256e039c7043a7de165fadf7)() const

<a id="l00446" name="l00446"></a> 446{

<a id="l00447" name="l00447"></a> 447 return this-&gt;_impl.get_surface_tension();

<a id="l00448" name="l00448"></a> 448}



<a id="l00449" name="l00449"></a> 449 

<a id="l00450" name="l00450"></a>[ 450](structIRockySPHDeviceModel.xhtml#a7a1b280f7d23137f75cafb3eb29cf2bd)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_damping\_coefficient](structIRockySPHDeviceModel.xhtml#a7a1b280f7d23137f75cafb3eb29cf2bd)() const

<a id="l00451" name="l00451"></a> 451{

<a id="l00452" name="l00452"></a> 452 return this-&gt;_impl.get_damping_coefficient();

<a id="l00453" name="l00453"></a> 453}



<a id="l00454" name="l00454"></a> 454 

<a id="l00455" name="l00455"></a>[ 455](structIRockySPHDeviceModel.xhtml#aa0fa9e6fb5e51db54a99a4bc45949409)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_stiffness](structIRockySPHDeviceModel.xhtml#aa0fa9e6fb5e51db54a99a4bc45949409)() const

<a id="l00456" name="l00456"></a> 456{

<a id="l00457" name="l00457"></a> 457 return this-&gt;_impl.get_stiffness();

<a id="l00458" name="l00458"></a> 458}



<a id="l00459" name="l00459"></a> 459 

<a id="l00460" name="l00460"></a> 460inline ROCKY_FUNCTIONS float IRockySPHDeviceModel::get_les_smagorinsky_constant() const

<a id="l00461" name="l00461"></a> 461{

<a id="l00462" name="l00462"></a> 462 return this-&gt;_impl.get_les_smagorinsky_constant();

<a id="l00463" name="l00463"></a> 463}

<a id="l00464" name="l00464"></a> 464 

<a id="l00465" name="l00465"></a> 465inline ROCKY_FUNCTIONS float IRockySPHDeviceModel::get_les_distance_factor() const

<a id="l00466" name="l00466"></a> 466{

<a id="l00467" name="l00467"></a> 467 return this-&gt;_impl.get_les_distance_factor();

<a id="l00468" name="l00468"></a> 468}

<a id="l00469" name="l00469"></a> 469 

<a id="l00470" name="l00470"></a> 470inline ROCKY_FUNCTIONS float IRockySPHDeviceModel::get_stabilization_positive_factor() const

<a id="l00471" name="l00471"></a> 471{

<a id="l00472" name="l00472"></a> 472 return this-&gt;_impl.get_stabilization_positive_factor();

<a id="l00473" name="l00473"></a> 473}

<a id="l00474" name="l00474"></a> 474 

<a id="l00475" name="l00475"></a> 475inline ROCKY_FUNCTIONS float IRockySPHDeviceModel::get_stabilization_negative_factor() const

<a id="l00476" name="l00476"></a> 476{

<a id="l00477" name="l00477"></a> 477 return this-&gt;_impl.get_stabilization_negative_factor();

<a id="l00478" name="l00478"></a> 478}

<a id="l00479" name="l00479"></a> 479 

<a id="l00480" name="l00480"></a> 480inline ROCKY_FUNCTIONS float IRockySPHDeviceModel::get_stabilization_degree() const

<a id="l00481" name="l00481"></a> 481{

<a id="l00482" name="l00482"></a> 482 return this-&gt;_impl.get_stabilization_degree();

<a id="l00483" name="l00483"></a> 483}

<a id="l00484" name="l00484"></a> 484 

<a id="l00485" name="l00485"></a> 485inline ROCKY_FUNCTIONS float IRockySPHDeviceModel::get_boundary_distance_normal_factor() const

<a id="l00486" name="l00486"></a> 486{

<a id="l00487" name="l00487"></a> 487 return this-&gt;_impl.get_boundary_distance_normal_factor();

<a id="l00488" name="l00488"></a> 488}

<a id="l00489" name="l00489"></a> 489 

<a id="l00490" name="l00490"></a> 490inline ROCKY_FUNCTIONS float IRockySPHDeviceModel::get_boundary_distance_tangential_factor() const

<a id="l00491" name="l00491"></a> 491{

<a id="l00492" name="l00492"></a> 492 return this-&gt;_impl.get_boundary_distance_tangential_factor();

<a id="l00493" name="l00493"></a> 493}

<a id="l00494" name="l00494"></a> 494 

<a id="l00495" name="l00495"></a>[ 495](structIRockySPHDeviceModel.xhtml#a9a4ab5e39105ea7398fb0b3b15b2763c)inline ROCKY_FUNCTIONS ESPHBoundaryType [IRockySPHDeviceModel::get\_boundary\_condition\_type](structIRockySPHDeviceModel.xhtml#a9a4ab5e39105ea7398fb0b3b15b2763c)(int geometry_index) const

<a id="l00496" name="l00496"></a> 496{

<a id="l00497" name="l00497"></a> 497 return this-&gt;_impl.get_boundary_condition_type(geometry_index);

<a id="l00498" name="l00498"></a> 498}



<a id="l00499" name="l00499"></a> 499 

<a id="l00500" name="l00500"></a> 500[[deprecated("Use "

<a id="l00501" name="l00501"></a> 501 "IRockySPHTriangleInteraction::get\_wall\_turbulent\_thermal\_conductance instead")]]

<a id="l00502" name="l00502"></a>[ 502](structIRockySPHDeviceModel.xhtml#a98a93eadf944d6ad89416d384e1476c3)inline ROCKY_FUNCTIONS float [IRockySPHDeviceModel::get\_wall\_turbulent\_thermal\_conductance](structIRockySPHDeviceModel.xhtml#a98a93eadf944d6ad89416d384e1476c3)(

<a id="l00503" name="l00503"></a> 503 float velocity, float distance) const

<a id="l00504" name="l00504"></a> 504{

<a id="l00505" name="l00505"></a> 505 return this-&gt;_impl.gen_sph-&gt;get_wall_turbulent_thermal_conductance(

<a id="l00506" name="l00506"></a> 506 velocity, distance, this-&gt;_impl.get_general_viscosity(), this-&gt;get_initial_element_spacing(),

<a id="l00507" name="l00507"></a> 507 false);

<a id="l00508" name="l00508"></a> 508}



<a id="l00509" name="l00509"></a> 509 

<a id="l00510" name="l00510"></a>[ 510](structIRockySPHDeviceModel.xhtml#a707d2c43244e0a2db08047ba86dbfd78)inline ROCKY_FUNCTIONS [IRockyCloudPoint](structIRockyCloudPoint.xhtml) [IRockySPHDeviceModel::get\_element\_cloud\_point](structIRockySPHDeviceModel.xhtml#a707d2c43244e0a2db08047ba86dbfd78)(

<a id="l00511" name="l00511"></a> 511 int point_cloud_index, const [IRockySPHElement](structIRockySPHElement.xhtml)&amp; element)

<a id="l00512" name="l00512"></a> 512{

<a id="l00513" name="l00513"></a> 513 auto point_cloud = this-&gt;device_model-&gt;point_clouds + point_cloud_index;

<a id="l00514" name="l00514"></a> 514 int point_index = this-&gt;_impl.device_model-&gt;sph_particle_scalars-&gt;get_scalar&lt;int&gt;(

<a id="l00515" name="l00515"></a> 515 point_cloud-&gt;sph_scalars_index, element._impl.element_index);

<a id="l00516" name="l00516"></a> 516 return [IRockyCloudPoint](structIRockyCloudPoint.xhtml)(point_cloud, point_index);

<a id="l00517" name="l00517"></a> 517}



<a id="l00518" name="l00518"></a> 518 

<a id="l00519" name="l00519"></a>[ 519](structIRockySPHDeviceModel.xhtml#aeafb1df061969bc91b4912460cebedb5)inline ROCKY_FUNCTIONS bool [IRockySPHDeviceModel::has\_turbulence\_modeling](structIRockySPHDeviceModel.xhtml#aeafb1df061969bc91b4912460cebedb5)() const

<a id="l00520" name="l00520"></a> 520{

<a id="l00521" name="l00521"></a> 521 return this-&gt;_impl.gen_sph-&gt;turb_type != ttLaminar;

<a id="l00522" name="l00522"></a> 522}



<a id="l00523" name="l00523"></a> 523 

<a id="l00524" name="l00524"></a> 524inline ROCKY_FUNCTIONS bool IRockySPHDeviceModel::has_variable_molecular_viscosity() const

<a id="l00525" name="l00525"></a> 525{

<a id="l00526" name="l00526"></a> 526 return this-&gt;_impl.gen_sph-&gt;has_variable_molecular_viscosity();

<a id="l00527" name="l00527"></a> 527}

[IRockyCloudPoint](structIRockyCloudPoint.xhtml)

**Definition** rocky_point_cloud_api.hpp:16



[IRockySPHDeviceModel](structIRockySPHDeviceModel.xhtml)

**Definition** rocky_sph_model_api.hpp:155



[IRockySPHDeviceModel::get\_minimum\_distance\_squared](structIRockySPHDeviceModel.xhtml#a02751c7624b5eebe898fd497fd368f7e)

ROCKY_FUNCTIONS float get_minimum_distance_squared() const

**Definition** rocky_sph_model_api.hpp:408



[IRockySPHDeviceModel::get\_smoothing\_length](structIRockySPHDeviceModel.xhtml#a08276af5f02f29358b677c6c5c4eb623)

ROCKY_FUNCTIONS float get_smoothing_length() const

**Definition** rocky_sph_model_api.hpp:398



[IRockySPHDeviceModel::get\_turbulent\_prandtl\_number](structIRockySPHDeviceModel.xhtml#a085435fa6f49074b90d50686b5b6dd6c)

ROCKY_FUNCTIONS float get_turbulent_prandtl_number() const

**Definition** rocky_sph_model_api.hpp:435



[IRockySPHDeviceModel::get\_fluid\_viscosity](structIRockySPHDeviceModel.xhtml#a0e7d219d00a03afa23f4340f966f274f)

ROCKY_FUNCTIONS float get_fluid_viscosity() const

**Definition** rocky_sph_model_api.hpp:415



[IRockySPHDeviceModel::get\_minimum\_distance](structIRockySPHDeviceModel.xhtml#a11adf37fd1989526607c500a68f5a190)

ROCKY_FUNCTIONS float get_minimum_distance() const

**Definition** rocky_sph_model_api.hpp:403



[IRockySPHDeviceModel::get\_sph\_timestep](structIRockySPHDeviceModel.xhtml#a1b3b0ad0b9b4e4f723fed8cd6d859ff1)

ROCKY_FUNCTIONS float get_sph_timestep() const

**Definition** rocky_sph_model_api.hpp:362



[IRockySPHDeviceModel::get\_kernel\_type](structIRockySPHDeviceModel.xhtml#a1c804b61e8d38f22cc1df2960b94e5e5)

ROCKY_FUNCTIONS ESPHKernelType get_kernel_type() const

**Definition** rocky_sph_model_api.hpp:357



[IRockySPHDeviceModel::get\_element\_mass](structIRockySPHDeviceModel.xhtml#a2e07d8b951637326aa17c3869fa75f6f)

ROCKY_FUNCTIONS float get_element_mass() const

**Definition** rocky_sph_model_api.hpp:372



[IRockySPHDeviceModel::get\_fluid\_density](structIRockySPHDeviceModel.xhtml#a30c701000a588378110aa2a163a07847)

ROCKY_FUNCTIONS float get_fluid_density() const

**Definition** rocky_sph_model_api.hpp:420



[IRockySPHDeviceModel::get\_fluid\_specific\_heat](structIRockySPHDeviceModel.xhtml#a3f511dafb251e18d7dfc8a8f7c9cfcf1)

ROCKY_FUNCTIONS float get_fluid_specific_heat() const

**Definition** rocky_sph_model_api.hpp:430



[IRockySPHDeviceModel::get\_speed\_of\_sound](structIRockySPHDeviceModel.xhtml#a53367cb9b7f97cb102cb9e1703a95131)

ROCKY_FUNCTIONS float get_speed_of_sound() const

**Definition** rocky_sph_model_api.hpp:440



[IRockySPHDeviceModel::get\_fluid\_thermal\_conductivity](structIRockySPHDeviceModel.xhtml#a53bf5a5c5dc38bed487a0ff75b4f881e)

ROCKY_FUNCTIONS float get_fluid_thermal_conductivity() const

**Definition** rocky_sph_model_api.hpp:425



[IRockySPHDeviceModel::get\_element\_cloud\_point](structIRockySPHDeviceModel.xhtml#a707d2c43244e0a2db08047ba86dbfd78)

ROCKY_FUNCTIONS IRockyCloudPoint get_element_cloud_point(int point_cloud_index, const IRockySPHElement &amp;element)

**Definition** rocky_sph_model_api.hpp:510



[IRockySPHDeviceModel::get\_damping\_coefficient](structIRockySPHDeviceModel.xhtml#a7a1b280f7d23137f75cafb3eb29cf2bd)

ROCKY_FUNCTIONS float get_damping_coefficient() const

**Definition** rocky_sph_model_api.hpp:450



[IRockySPHDeviceModel::get\_kernel\_derivative](structIRockySPHDeviceModel.xhtml#a878401756bbf4517bd2dbf7c0b6f53b5)

ROCKY_FUNCTIONS float get_kernel_derivative(float distance) const

**Definition** rocky_sph_model_api.hpp:391



[IRockySPHDeviceModel::get\_wall\_turbulent\_thermal\_conductance](structIRockySPHDeviceModel.xhtml#a98a93eadf944d6ad89416d384e1476c3)

ROCKY_FUNCTIONS float get_wall_turbulent_thermal_conductance(float velocity, float distance) const

**Definition** rocky_sph_model_api.hpp:502



[IRockySPHDeviceModel::get\_boundary\_condition\_type](structIRockySPHDeviceModel.xhtml#a9a4ab5e39105ea7398fb0b3b15b2763c)

ROCKY_FUNCTIONS ESPHBoundaryType get_boundary_condition_type(int geometry_index) const

**Definition** rocky_sph_model_api.hpp:495



[IRockySPHDeviceModel::get\_initial\_element\_spacing](structIRockySPHDeviceModel.xhtml#aa0dda18957c28775ae86803575275db2)

ROCKY_FUNCTIONS float get_initial_element_spacing() const

**Definition** rocky_sph_model_api.hpp:377



[IRockySPHDeviceModel::get\_stiffness](structIRockySPHDeviceModel.xhtml#aa0fa9e6fb5e51db54a99a4bc45949409)

ROCKY_FUNCTIONS float get_stiffness() const

**Definition** rocky_sph_model_api.hpp:455



[IRockySPHDeviceModel::get\_kernel\_weight](structIRockySPHDeviceModel.xhtml#ac0f6dab31e47087f957b9c5f921044ca)

ROCKY_FUNCTIONS float get_kernel_weight(float distance) const

**Definition** rocky_sph_model_api.hpp:384



[IRockySPHDeviceModel::get\_surface\_tension](structIRockySPHDeviceModel.xhtml#ad52e0f31256e039c7043a7de165fadf7)

ROCKY_FUNCTIONS float get_surface_tension() const

**Definition** rocky_sph_model_api.hpp:445



[IRockySPHDeviceModel::has\_turbulence\_modeling](structIRockySPHDeviceModel.xhtml#aeafb1df061969bc91b4912460cebedb5)

ROCKY_FUNCTIONS bool has_turbulence_modeling() const

**Definition** rocky_sph_model_api.hpp:519



[IRockySPHElementScalarsModel](structIRockySPHElementScalarsModel.xhtml)

**Definition** rocky_sph_element_scalars.hpp:30



[IRockySPHElement](structIRockySPHElement.xhtml)

**Definition** rocky_sph_element_api.hpp:21



[IRockySPHModel](structIRockySPHModel.xhtml)

**Definition** rocky_sph_model_api.hpp:22



[IRockySPHModel::get\_fluid\_density](structIRockySPHModel.xhtml#a053a3b3c9bd14e5051f38a0024ab4536)

ROCKY_FUNCTIONS float get_fluid_density() const

**Definition** rocky_sph_model_api.cpp:58



[IRockySPHModel::set\_htc\_distance\_factor](structIRockySPHModel.xhtml#a1627faf9bcd3eca660891efbf5d95981)

ROCKY_FUNCTIONS void set_htc_distance_factor(float htc_distance_factor) const

**Definition** rocky_sph_model_api.cpp:88



[IRockySPHModel::get\_initial\_element\_spacing](structIRockySPHModel.xhtml#a212b6dd01fb2421258372058df86ccd6)

float get_initial_element_spacing() const

**Definition** rocky_sph_model_api.cpp:39



[IRockySPHModel::get\_speed\_of\_sound](structIRockySPHModel.xhtml#a223390925c0c7a8d4c0a8ceaef043fe4)

ROCKY_FUNCTIONS float get_speed_of_sound() const

**Definition** rocky_sph_model_api.cpp:73



[IRockySPHModel::get\_smoothing\_length](structIRockySPHModel.xhtml#a245fc38b2db35e544f3b78642f11aff7)

float get_smoothing_length() const

**Definition** rocky_sph_model_api.cpp:43



[IRockySPHModel::get\_kernel\_type](structIRockySPHModel.xhtml#a513d780295b0089e4d2814cc660f5c78)

ESPHKernelType get_kernel_type() const

**Definition** rocky_sph_model_api.cpp:34



[IRockySPHModel::get\_number\_of\_active\_sph\_elements](structIRockySPHModel.xhtml#a53aabea7b2fb880bf83924a036badac7)

int get_number_of_active_sph_elements() const

**Definition** rocky_sph_model_api.cpp:19



[IRockySPHModel::get\_number\_of\_sph\_elements](structIRockySPHModel.xhtml#a5a3c1e8c7b54f79f6803fb25799cbd6d)

int get_number_of_sph_elements() const

**Definition** rocky_sph_model_api.cpp:14



[IRockySPHModel::get\_number\_of\_active\_free\_sph\_elements](structIRockySPHModel.xhtml#a5f6419ca48c0e300e03e6820934a1718)

int get_number_of_active_free_sph_elements() const

**Definition** rocky_sph_model_api.cpp:29



[IRockySPHModel::get\_sph\_element\_scalars](structIRockySPHModel.xhtml#a60758ee9b344fcc7c76b500c0ac8f1cc)

IRockySPHElementScalarsModel get_sph_element_scalars() const

**Definition** rocky_sph_model_api.cpp:7



[IRockySPHModel::get\_number\_of\_active\_linked\_sph\_elements](structIRockySPHModel.xhtml#a832524def72a3d2da3bd449d5fb74368)

int get_number_of_active_linked_sph_elements() const

**Definition** rocky_sph_model_api.cpp:24



[IRockySPHModel::get\_fluid\_viscosity](structIRockySPHModel.xhtml#aa34cbdb0bbe713f76a24718369445b90)

ROCKY_FUNCTIONS float get_fluid_viscosity() const

**Definition** rocky_sph_model_api.cpp:53



[IRockySPHModel::get\_fluid\_thermal\_conductivity](structIRockySPHModel.xhtml#ab09538e62b2731ab25ee664d6eb08319)

ROCKY_FUNCTIONS float get_fluid_thermal_conductivity() const

**Definition** rocky_sph_model_api.cpp:63



[IRockySPHModel::is\_enabled](structIRockySPHModel.xhtml#ab104c8f250896d3528cbe2eb045b4c69)

bool is_enabled() const

**Definition** rocky_sph_model_api.cpp:83



[IRockySPHModel::get\_fluid\_specific\_heat](structIRockySPHModel.xhtml#acaf7cc9d7b268d36a2f739cfc3c3f7ca)

ROCKY_FUNCTIONS float get_fluid_specific_heat() const

**Definition** rocky_sph_model_api.cpp:68



[IRockySPHModel::get\_surface\_tension](structIRockySPHModel.xhtml#adae7b4a0340c884eb80e14d54a1b22f5)

ROCKY_FUNCTIONS float get_surface_tension() const

**Definition** rocky_sph_model_api.cpp:78



[IRockySPHModel::get\_element\_mass](structIRockySPHModel.xhtml#afafa8461838c8fa9ca237437c074facd)

float get_element_mass() const

**Definition** rocky_sph_model_api.cpp:48