    

 ## On this page

  

 

 # rocky\_cfd

 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 "rocky\_particle\_scalars.hpp"

<a id="l00006" name="l00006"></a> 6\#include "rocky\_fluid\_scalars.hpp"

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

<a id="l00008" name="l00008"></a> 8\#include &lt;rocky20/api/rocky\_particle.hpp&gt;

<a id="l00009" name="l00009"></a> 9\#include &lt;rocky20/api/device/api\_backend.hpp&gt;

<a id="l00010" name="l00010"></a> 10\#include &lt;rocky20/device/device\_model.hpp&gt;

<a id="l00011" name="l00011"></a> 11\#include &lt;rocky20/cuda/interaction\_forces.hpp&gt;

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

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

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

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

<a id="l00016" name="l00016"></a> 16 

<a id="l00026" name="l00026"></a>[ 26](structIRockyCFDProperties.xhtml)struct [IRockyCFDProperties](structIRockyCFDProperties.xhtml)

<a id="l00027" name="l00027"></a> 27{ 

<a id="l00033" name="l00033"></a>[ 33](structIRockyCFDProperties.xhtml#ad1b8eb5a0bb1345469d62bcd8429daf8) inline ROCKY_FUNCTIONS double [get\_fluid\_density](structIRockyCFDProperties.xhtml#ad1b8eb5a0bb1345469d62bcd8429daf8)() const

<a id="l00034" name="l00034"></a> 34 {

<a id="l00035" name="l00035"></a> 35 return this-&gt;model-&gt;fluid_scalars-&gt;get_density(this-&gt;cfd_index);

<a id="l00036" name="l00036"></a> 36 }



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

<a id="l00038" name="l00038"></a> 38 

<a id="l00044" name="l00044"></a>[ 44](structIRockyCFDProperties.xhtml#ace8fe3ed8b6755c7594c337ded2fbe58) inline ROCKY_FUNCTIONS double [get\_fluid\_viscosity](structIRockyCFDProperties.xhtml#ace8fe3ed8b6755c7594c337ded2fbe58)() const

<a id="l00045" name="l00045"></a> 45 {

<a id="l00046" name="l00046"></a> 46 return this-&gt;model-&gt;fluid_scalars-&gt;get_viscosity(this-&gt;cfd_index);

<a id="l00047" name="l00047"></a> 47 }



<a id="l00048" name="l00048"></a> 48 

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

<a id="l00055" name="l00055"></a>[ 55](structIRockyCFDProperties.xhtml#a9efc8d5c0074cae18fcbcada620ae162) inline ROCKY_FUNCTIONS double [get\_fluid\_temperature](structIRockyCFDProperties.xhtml#a9efc8d5c0074cae18fcbcada620ae162)() const

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

<a id="l00057" name="l00057"></a> 57 return this-&gt;model-&gt;fluid_scalars-&gt;get_temperature(this-&gt;cfd_index);

<a id="l00058" name="l00058"></a> 58 }



<a id="l00059" name="l00059"></a> 59 

<a id="l00060" name="l00060"></a> 60 

<a id="l00065" name="l00065"></a>[ 65](structIRockyCFDProperties.xhtml#a6f7d6f28278bd653921f6dd19b8972f1) inline ROCKY_FUNCTIONS double [get\_fluid\_specific\_heat](structIRockyCFDProperties.xhtml#a6f7d6f28278bd653921f6dd19b8972f1)() const

<a id="l00066" name="l00066"></a> 66 {

<a id="l00067" name="l00067"></a> 67 return this-&gt;model-&gt;fluid_scalars-&gt;get_specific_heat(this-&gt;cfd_index);

<a id="l00068" name="l00068"></a> 68 }



<a id="l00069" name="l00069"></a> 69 

<a id="l00070" name="l00070"></a> 70 

<a id="l00075" name="l00075"></a>[ 75](structIRockyCFDProperties.xhtml#a2bc489cf137e3010d27ee7165d62f8ef) inline ROCKY_FUNCTIONS double [get\_fluid\_thermal\_conductivity](structIRockyCFDProperties.xhtml#a2bc489cf137e3010d27ee7165d62f8ef)() const

<a id="l00076" name="l00076"></a> 76 {

<a id="l00077" name="l00077"></a> 77 return this-&gt;model-&gt;fluid_scalars-&gt;get_thermal_conductivity(this-&gt;cfd_index);

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



<a id="l00079" name="l00079"></a> 79 

<a id="l00080" name="l00080"></a> 80 

<a id="l00086" name="l00086"></a>[ 86](structIRockyCFDProperties.xhtml#a50a9b64cedef031bdf38377de0d0665a) inline ROCKY_FUNCTIONS double3 [get\_fluid\_pressure\_gradient](structIRockyCFDProperties.xhtml#a50a9b64cedef031bdf38377de0d0665a)() const

<a id="l00087" name="l00087"></a> 87 {

<a id="l00088" name="l00088"></a> 88 return this-&gt;model-&gt;fluid_scalars-&gt;get_pressure_gradient(this-&gt;cfd_index);

<a id="l00089" name="l00089"></a> 89 }



<a id="l00090" name="l00090"></a> 90 

<a id="l00091" name="l00091"></a> 91 

<a id="l00098" name="l00098"></a>[ 98](structIRockyCFDProperties.xhtml#a9070705d5011bf627a5ca1e083b28bb7) inline ROCKY_FUNCTIONS double3 [compute\_fluid\_vorticity](structIRockyCFDProperties.xhtml#a9070705d5011bf627a5ca1e083b28bb7)() const

<a id="l00099" name="l00099"></a> 99 {

<a id="l00100" name="l00100"></a> 100 const cu_real3 grad_u = this-&gt;model-&gt;fluid_scalars-&gt;get_velocity_u_gradient(this-&gt;cfd_index);

<a id="l00101" name="l00101"></a> 101 const cu_real3 grad_v = this-&gt;model-&gt;fluid_scalars-&gt;get_velocity_v_gradient(this-&gt;cfd_index);

<a id="l00102" name="l00102"></a> 102 const cu_real3 grad_w = this-&gt;model-&gt;fluid_scalars-&gt;get_velocity_w_gradient(this-&gt;cfd_index);

<a id="l00103" name="l00103"></a> 103 return double3{ grad_w.y - grad_v.z, grad_u.z - grad_w.x, grad_v.x - grad_u.y };

<a id="l00104" name="l00104"></a> 104 }



<a id="l00105" name="l00105"></a> 105 

<a id="l00106" name="l00106"></a> 106 

<a id="l00113" name="l00113"></a>[ 113](structIRockyCFDProperties.xhtml#a891e79c0311177f586f49ead9b9a182f) inline ROCKY_FUNCTIONS double3 [get\_relative\_velocity](structIRockyCFDProperties.xhtml#a891e79c0311177f586f49ead9b9a182f)() const

<a id="l00114" name="l00114"></a> 114 {

<a id="l00115" name="l00115"></a> 115 return this-&gt;props.relative_velocity;

<a id="l00116" name="l00116"></a> 116 }



<a id="l00117" name="l00117"></a> 117 

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

<a id="l00126" name="l00126"></a>[ 126](structIRockyCFDProperties.xhtml#a56a3b748ff0a15c3b4870b5fd240bd53) inline ROCKY_FUNCTIONS double [get\_reynolds\_number](structIRockyCFDProperties.xhtml#a56a3b748ff0a15c3b4870b5fd240bd53)() const

<a id="l00127" name="l00127"></a> 127 {

<a id="l00128" name="l00128"></a> 128 return Reynolds(

<a id="l00129" name="l00129"></a> 129 props.relative_velocity_norm,

<a id="l00130" name="l00130"></a> 130 this-&gt;get_fluid_density(), props.diameter,

<a id="l00131" name="l00131"></a> 131 this-&gt;get_fluid_viscosity() * props.cgm_factor

<a id="l00132" name="l00132"></a> 132 ) + DBL_EPSILON;

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



<a id="l00134" name="l00134"></a> 134 

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

<a id="l00143" name="l00143"></a>[ 143](structIRockyCFDProperties.xhtml#a6fd3d1388c1b57c53e0d6a0966ecbd0b) inline ROCKY_FUNCTIONS double [compute\_vorticity\_reynolds\_number](structIRockyCFDProperties.xhtml#a6fd3d1388c1b57c53e0d6a0966ecbd0b)() const

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

<a id="l00145" name="l00145"></a> 145 double omega_f = rocky::vector::get_norm(this-&gt;[compute\_fluid\_vorticity](structIRockyCFDProperties.xhtml#a9070705d5011bf627a5ca1e083b28bb7)());

<a id="l00146" name="l00146"></a> 146 return Reynolds_omega(omega_f, this-&gt;[get\_fluid\_density](structIRockyCFDProperties.xhtml#ad1b8eb5a0bb1345469d62bcd8429daf8)(), this-&gt;props.diameter,

<a id="l00147" name="l00147"></a> 147 this-&gt;get_fluid_viscosity() * props.cgm_factor) + DBL_EPSILON;

<a id="l00148" name="l00148"></a> 148 }



<a id="l00149" name="l00149"></a> 149 

<a id="l00150" name="l00150"></a> 150 

<a id="l00158" name="l00158"></a>[ 158](structIRockyCFDProperties.xhtml#adc32c375f6f3d377b21cd019c336e8c5) inline ROCKY_FUNCTIONS double [compute\_relative\_angular\_reynolds\_number](structIRockyCFDProperties.xhtml#adc32c375f6f3d377b21cd019c336e8c5)(

<a id="l00159" name="l00159"></a> 159 const double3&amp; particle_angular_velocity) const

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

<a id="l00161" name="l00161"></a> 161 double omega_r = rocky::vector::get_norm(0.5 * this-&gt;[compute\_fluid\_vorticity](structIRockyCFDProperties.xhtml#a9070705d5011bf627a5ca1e083b28bb7)() - particle_angular_velocity);

<a id="l00162" name="l00162"></a> 162 return Reynolds_omega(omega_r, this-&gt;[get\_fluid\_density](structIRockyCFDProperties.xhtml#ad1b8eb5a0bb1345469d62bcd8429daf8)(), this-&gt;props.diameter,

<a id="l00163" name="l00163"></a> 163 this-&gt;get_fluid_viscosity() * props.cgm_factor) + DBL_EPSILON;

<a id="l00164" name="l00164"></a> 164 }



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

<a id="l00166" name="l00166"></a> 166 

<a id="l00173" name="l00173"></a>[ 173](structIRockyCFDProperties.xhtml#a345be7a5c45f89f292fb864311c36ad6) inline ROCKY_FUNCTIONS double [get\_prandtl\_number](structIRockyCFDProperties.xhtml#a345be7a5c45f89f292fb864311c36ad6)() const

<a id="l00174" name="l00174"></a> 174 {

<a id="l00175" name="l00175"></a> 175 if (this-&gt;[get\_fluid\_thermal\_conductivity](structIRockyCFDProperties.xhtml#a2bc489cf137e3010d27ee7165d62f8ef)() &gt; SMALL_VALUE)

<a id="l00176" name="l00176"></a> 176 {

<a id="l00177" name="l00177"></a> 177 return this-&gt;[get\_fluid\_specific\_heat](structIRockyCFDProperties.xhtml#a6f7d6f28278bd653921f6dd19b8972f1)() * this-&gt;[get\_fluid\_viscosity](structIRockyCFDProperties.xhtml#ace8fe3ed8b6755c7594c337ded2fbe58)() 

<a id="l00178" name="l00178"></a> 178 / this-&gt;[get\_fluid\_thermal\_conductivity](structIRockyCFDProperties.xhtml#a2bc489cf137e3010d27ee7165d62f8ef)();

<a id="l00179" name="l00179"></a> 179 }

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

<a id="l00181" name="l00181"></a> 181 {

<a id="l00182" name="l00182"></a> 182 return DBL_MAX;

<a id="l00183" name="l00183"></a> 183 }

<a id="l00184" name="l00184"></a> 184 }



<a id="l00185" name="l00185"></a> 185 

<a id="l00186" name="l00186"></a> 186 

<a id="l00195" name="l00195"></a>[ 195](structIRockyCFDProperties.xhtml#af868d4c581ae2e98db27b2785523b688) inline ROCKY_FUNCTIONS double [get\_solid\_fraction](structIRockyCFDProperties.xhtml#af868d4c581ae2e98db27b2785523b688)() const

<a id="l00196" name="l00196"></a> 196 {

<a id="l00197" name="l00197"></a> 197 return this-&gt;model-&gt;fluid_scalars-&gt;get_solid_volume_fraction(this-&gt;cfd_index);

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



<a id="l00199" name="l00199"></a> 199 

<a id="l00205" name="l00205"></a>[ 205](structIRockyCFDProperties.xhtml#a07a10f12cf5cb16540107a1272e3cea9) inline ROCKY_FUNCTIONS double [get\_cell\_volume](structIRockyCFDProperties.xhtml#a07a10f12cf5cb16540107a1272e3cea9)() const

<a id="l00206" name="l00206"></a> 206 {

<a id="l00207" name="l00207"></a> 207 return this-&gt;model-&gt;fluid_scalars-&gt;get_cell_volume(this-&gt;cfd_index);

<a id="l00208" name="l00208"></a> 208 }



<a id="l00209" name="l00209"></a> 209 

<a id="l00215" name="l00215"></a>[ 215](structIRockyCFDProperties.xhtml#a995c4c9158aff6f72e0b1fdfe39dac9f) inline ROCKY_FUNCTIONS [IRockyFluidScalars](structIRockyFluidScalars.xhtml) [get\_scalars](structIRockyCFDProperties.xhtml#a995c4c9158aff6f72e0b1fdfe39dac9f)() const

<a id="l00216" name="l00216"></a> 216 {

<a id="l00217" name="l00217"></a> 217 return [IRockyFluidScalars](structIRockyFluidScalars.xhtml)(*this-&gt;model-&gt;fluid_scalars, this-&gt;cfd_index);

<a id="l00218" name="l00218"></a> 218 }



<a id="l00219" name="l00219"></a> 219 

<a id="l00223" name="l00223"></a>[ 223](structIRockyCFDProperties.xhtml#a39fb9991d8c793491701fa07c269de2e) inline ROCKY_FUNCTIONS double [get\_cfd\_time\_step](structIRockyCFDProperties.xhtml#a39fb9991d8c793491701fa07c269de2e)() const

<a id="l00224" name="l00224"></a> 224 {

<a id="l00225" name="l00225"></a> 225 return this-&gt;model-&gt;gen_cfd-&gt;dt_target_f;

<a id="l00226" name="l00226"></a> 226 }



<a id="l00227" name="l00227"></a> 227 

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

<a id="l00231" name="l00231"></a> 231 inline ROCKY_FUNCTIONS double get_particle_equivalent_diameter() const

<a id="l00232" name="l00232"></a> 232 {

<a id="l00233" name="l00233"></a> 233 return this-&gt;props.diameter;

<a id="l00234" name="l00234"></a> 234 }

<a id="l00235" name="l00235"></a> 235 

<a id="l00236" name="l00236"></a> 236 inline ROCKY_FUNCTIONS double get_particle_volume() const

<a id="l00237" name="l00237"></a> 237 {

<a id="l00238" name="l00238"></a> 238 return M_PI / 6.0 * this-&gt;props.diameter * this-&gt;props.diameter * this-&gt;props.diameter;

<a id="l00239" name="l00239"></a> 239 }

<a id="l00240" name="l00240"></a> 240 

<a id="l00241" name="l00241"></a> 241 inline ROCKY_FUNCTIONS double get_particle_solid_volume(const double porosity_fraction) const

<a id="l00242" name="l00242"></a> 242 {

<a id="l00243" name="l00243"></a> 243 return this-&gt;get_particle_volume() * (1.0 - porosity_fraction);

<a id="l00244" name="l00244"></a> 244 }

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

<a id="l00246" name="l00246"></a> 246 inline ROCKY_FUNCTIONS double get_particle_equivalent_cross_area() const

<a id="l00247" name="l00247"></a> 247 {

<a id="l00248" name="l00248"></a> 248 return 0.25 * M_PI * this-&gt;props.diameter * this-&gt;props.diameter;

<a id="l00249" name="l00249"></a> 249 }

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

<a id="l00251" name="l00251"></a> 251 // Equivalent to RockyParticle::get\_sphericity but faster, as the equivalent diameter is already

<a id="l00252" name="l00252"></a> 252 // computed (which requires a cubic root)

<a id="l00253" name="l00253"></a> 253 inline ROCKY_FUNCTIONS double compute_particle_sphericity(const RockyParticle&amp; particle) const

<a id="l00254" name="l00254"></a> 254 {

<a id="l00255" name="l00255"></a> 255 return (particle.get_group().tpe == ptSpherical)

<a id="l00256" name="l00256"></a> 256 ? 1.0

<a id="l00257" name="l00257"></a> 257 : (M_PI * this-&gt;props.diameter * this-&gt;props.diameter) / particle.get_area();

<a id="l00258" name="l00258"></a> 258 }

<a id="l00259" name="l00259"></a> 259 

<a id="l00260" name="l00260"></a> 260 inline ROCKY_FUNCTIONS double get_relative_velocity_norm() const

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

<a id="l00262" name="l00262"></a> 262 return this-&gt;props.relative_velocity_norm;

<a id="l00263" name="l00263"></a> 263 }

<a id="l00264" name="l00264"></a> 264 

<a id="l00268" name="l00268"></a> 268 inline ROCKY_FUNCTIONS double get_operational_pressure() const

<a id="l00269" name="l00269"></a> 269 {

<a id="l00270" name="l00270"></a> 270 return this-&gt;model-&gt;gen_cfd-&gt;operational_pressure;

<a id="l00271" name="l00271"></a> 271 }

<a id="l00272" name="l00272"></a> 272 

<a id="l00276" name="l00276"></a> 276 inline ROCKY_FUNCTIONS double get_reference_density() const

<a id="l00277" name="l00277"></a> 277 {

<a id="l00278" name="l00278"></a> 278 return this-&gt;model-&gt;gen_cfd-&gt;relative_density;

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

<a id="l00280" name="l00280"></a> 280 

<a id="l00281" name="l00281"></a> 281 SDeviceModel* model;

<a id="l00282" name="l00282"></a> 282 CFDParticleProperties props;

<a id="l00283" name="l00283"></a> 283 int cfd_index;

<a id="l00284" name="l00284"></a> 284 const CFDParticleGroup* cfd_particle_group;

<a id="l00285" name="l00285"></a> 285 

<a id="l00286" name="l00286"></a> 286 inline ROCKY_FUNCTIONS void reset(int particle_index, int cfd_index)

<a id="l00287" name="l00287"></a> 287 {

<a id="l00288" name="l00288"></a> 288 this-&gt;cfd_index = cfd_index;

<a id="l00289" name="l00289"></a> 289 this-&gt;update_properties(particle_index);

<a id="l00290" name="l00290"></a> 290 }

<a id="l00291" name="l00291"></a> 291 

<a id="l00292" name="l00292"></a> 292 inline ROCKY_FUNCTIONS void update_properties(int particle_index)

<a id="l00293" name="l00293"></a> 293 {

<a id="l00294" name="l00294"></a> 294 const RockyParticle particle(this-&gt;model, particle_index);

<a id="l00295" name="l00295"></a> 295 

<a id="l00296" name="l00296"></a> 296 this-&gt;cfd_particle_group =

<a id="l00297" name="l00297"></a> 297 &amp;this-&gt;model-&gt;cfd_particle_groups[particle.get_particle_group_index()];

<a id="l00298" name="l00298"></a> 298 

<a id="l00299" name="l00299"></a> 299 props.diameter = particle.get_equivalent_diameter();

<a id="l00300" name="l00300"></a> 300 props.density = particle.get_mass() / particle.get_solid_volume();

<a id="l00301" name="l00301"></a> 301 props.cgm_factor = particle.get_cgm_scale_factor();

<a id="l00302" name="l00302"></a> 302 

<a id="l00303" name="l00303"></a> 303 const double3 particle_velocity = particle.get_translational_velocity();

<a id="l00304" name="l00304"></a> 304 const double3 fluid_velocity = this-&gt;model-&gt;fluid_scalars-&gt;get_velocity(this-&gt;cfd_index);

<a id="l00305" name="l00305"></a> 305 

<a id="l00306" name="l00306"></a> 306 /\* converting particle\_velocity according to Fluent's porous particle\_velocity formulation\*/

<a id="l00307" name="l00307"></a> 307 if (this-&gt;model-&gt;gen_cfd-&gt;superficial_velocity_formulation)

<a id="l00308" name="l00308"></a> 308 {

<a id="l00309" name="l00309"></a> 309 double porosity = 1.0 - this-&gt;model-&gt;fluid_scalars-&gt;get_solid_volume_fraction(this-&gt;cfd_index);

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

<a id="l00311" name="l00311"></a> 311 auto true_velocity = [porosity] (double superficial_velocity, double particle_vel) 

<a id="l00312" name="l00312"></a> 312 {

<a id="l00313" name="l00313"></a> 313 double direction;

<a id="l00314" name="l00314"></a> 314 direction = superficial_velocity &gt;= 0.0 ? 1.0 : -1.0;

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

<a id="l00316" name="l00316"></a> 316 double velocity = superficial_velocity + (1.0/porosity - 1.0)*(superficial_velocity - particle_vel);

<a id="l00317" name="l00317"></a> 317 velocity = max(abs(velocity), abs(superficial_velocity));

<a id="l00318" name="l00318"></a> 318 /\* where superficial\_velocity/porosity is the physical particle\_velocity \*/

<a id="l00319" name="l00319"></a> 319 return min(velocity, abs(superficial_velocity/porosity))*direction;

<a id="l00320" name="l00320"></a> 320 };

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

<a id="l00322" name="l00322"></a> 322 props.relative_velocity = {

<a id="l00323" name="l00323"></a> 323 true_velocity(fluid_velocity.x, particle_velocity.x) - particle_velocity.x,

<a id="l00324" name="l00324"></a> 324 true_velocity(fluid_velocity.y, particle_velocity.y) - particle_velocity.y,

<a id="l00325" name="l00325"></a> 325 true_velocity(fluid_velocity.z, particle_velocity.z) - particle_velocity.z,

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

<a id="l00327" name="l00327"></a> 327 }

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

<a id="l00329" name="l00329"></a> 329 {

<a id="l00330" name="l00330"></a> 330 props.relative_velocity = fluid_velocity - particle_velocity;

<a id="l00331" name="l00331"></a> 331 }

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

<a id="l00333" name="l00333"></a> 333 if (this-&gt;model-&gt;gen_cfd-&gt;use_turbulent_dispersion)

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

<a id="l00335" name="l00335"></a> 335 props.relative_velocity += this-&gt;model-&gt;particle_scalars-&gt;get_turbulence_velocity(particle_index);

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

<a id="l00337" name="l00337"></a> 337 

<a id="l00338" name="l00338"></a> 338 props.relative_velocity_norm = rocky::vector::get_norm(props.relative_velocity);

<a id="l00339" name="l00339"></a> 339 }

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

<a id="l00342" name="l00342"></a> 342};



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

[IRockyCFDProperties](structIRockyCFDProperties.xhtml)

**Definition** rocky_cfd.hpp:27



[IRockyCFDProperties::get\_cell\_volume](structIRockyCFDProperties.xhtml#a07a10f12cf5cb16540107a1272e3cea9)

ROCKY_FUNCTIONS double get_cell_volume() const

**Definition** rocky_cfd.hpp:205



[IRockyCFDProperties::get\_fluid\_thermal\_conductivity](structIRockyCFDProperties.xhtml#a2bc489cf137e3010d27ee7165d62f8ef)

ROCKY_FUNCTIONS double get_fluid_thermal_conductivity() const

**Definition** rocky_cfd.hpp:75



[IRockyCFDProperties::get\_prandtl\_number](structIRockyCFDProperties.xhtml#a345be7a5c45f89f292fb864311c36ad6)

ROCKY_FUNCTIONS double get_prandtl_number() const

**Definition** rocky_cfd.hpp:173



[IRockyCFDProperties::get\_cfd\_time\_step](structIRockyCFDProperties.xhtml#a39fb9991d8c793491701fa07c269de2e)

ROCKY_FUNCTIONS double get_cfd_time_step() const

**Definition** rocky_cfd.hpp:223



[IRockyCFDProperties::get\_fluid\_pressure\_gradient](structIRockyCFDProperties.xhtml#a50a9b64cedef031bdf38377de0d0665a)

ROCKY_FUNCTIONS double3 get_fluid_pressure_gradient() const

**Definition** rocky_cfd.hpp:86



[IRockyCFDProperties::get\_reynolds\_number](structIRockyCFDProperties.xhtml#a56a3b748ff0a15c3b4870b5fd240bd53)

ROCKY_FUNCTIONS double get_reynolds_number() const

**Definition** rocky_cfd.hpp:126



[IRockyCFDProperties::get\_fluid\_specific\_heat](structIRockyCFDProperties.xhtml#a6f7d6f28278bd653921f6dd19b8972f1)

ROCKY_FUNCTIONS double get_fluid_specific_heat() const

**Definition** rocky_cfd.hpp:65



[IRockyCFDProperties::compute\_vorticity\_reynolds\_number](structIRockyCFDProperties.xhtml#a6fd3d1388c1b57c53e0d6a0966ecbd0b)

ROCKY_FUNCTIONS double compute_vorticity_reynolds_number() const

**Definition** rocky_cfd.hpp:143



[IRockyCFDProperties::get\_relative\_velocity](structIRockyCFDProperties.xhtml#a891e79c0311177f586f49ead9b9a182f)

ROCKY_FUNCTIONS double3 get_relative_velocity() const

**Definition** rocky_cfd.hpp:113



[IRockyCFDProperties::compute\_fluid\_vorticity](structIRockyCFDProperties.xhtml#a9070705d5011bf627a5ca1e083b28bb7)

ROCKY_FUNCTIONS double3 compute_fluid_vorticity() const

**Definition** rocky_cfd.hpp:98



[IRockyCFDProperties::get\_scalars](structIRockyCFDProperties.xhtml#a995c4c9158aff6f72e0b1fdfe39dac9f)

ROCKY_FUNCTIONS IRockyFluidScalars get_scalars() const

**Definition** rocky_cfd.hpp:215



[IRockyCFDProperties::get\_fluid\_temperature](structIRockyCFDProperties.xhtml#a9efc8d5c0074cae18fcbcada620ae162)

ROCKY_FUNCTIONS double get_fluid_temperature() const

**Definition** rocky_cfd.hpp:55



[IRockyCFDProperties::get\_fluid\_viscosity](structIRockyCFDProperties.xhtml#ace8fe3ed8b6755c7594c337ded2fbe58)

ROCKY_FUNCTIONS double get_fluid_viscosity() const

**Definition** rocky_cfd.hpp:44



[IRockyCFDProperties::get\_fluid\_density](structIRockyCFDProperties.xhtml#ad1b8eb5a0bb1345469d62bcd8429daf8)

ROCKY_FUNCTIONS double get_fluid_density() const

**Definition** rocky_cfd.hpp:33



[IRockyCFDProperties::compute\_relative\_angular\_reynolds\_number](structIRockyCFDProperties.xhtml#adc32c375f6f3d377b21cd019c336e8c5)

ROCKY_FUNCTIONS double compute_relative_angular_reynolds_number(const double3 &amp;particle_angular_velocity) const

**Definition** rocky_cfd.hpp:158



[IRockyCFDProperties::get\_solid\_fraction](structIRockyCFDProperties.xhtml#af868d4c581ae2e98db27b2785523b688)

ROCKY_FUNCTIONS double get_solid_fraction() const

**Definition** rocky_cfd.hpp:195



[IRockyFluidScalars](structIRockyFluidScalars.xhtml)

**Definition** rocky_fluid_scalars.hpp:103