    

 ## On this page

  

 

 # rocky\_material\_api

 Last update: 17.07.2025 

<a id="l00001" name="l00001"></a> 1\#pragma once

<a id="l00002" name="l00002"></a> 2 

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

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

<a id="l00005" name="l00005"></a> 5 

<a id="l00006" name="l00006"></a> 6 

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

<a id="l00008" name="l00008"></a> 8// IRockyMaterial

<a id="l00009" name="l00009"></a> 9// ================================================================================================

<a id="l00010" name="l00010"></a> 10 

<a id="l00019" name="l00019"></a>[ 19](structIRockyMaterial.xhtml)struct [IRockyMaterial](structIRockyMaterial.xhtml)

<a id="l00020" name="l00020"></a> 20{

<a id="l00028" name="l00028"></a> 28 inline ROCKY_FUNCTIONS double [get\_young\_modulus](structIRockyMaterial.xhtml#ac2296f9b2afe54b6660f584d5d937994)() const;

<a id="l00029" name="l00029"></a> 29 

<a id="l00033" name="l00033"></a> 33 inline ROCKY_FUNCTIONS double [get\_poisson\_ratio](structIRockyMaterial.xhtml#a77ed523db8076cb87c69334481e0ad9b)() const;

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

<a id="l00038" name="l00038"></a> 38 inline ROCKY_FUNCTIONS double [get\_density](structIRockyMaterial.xhtml#ac4a3805a7f95f47fbd93761d1b2013fe)() const;

<a id="l00039" name="l00039"></a> 39 

<a id="l00043" name="l00043"></a> 43 inline ROCKY_FUNCTIONS double [get\_specific\_heat](structIRockyMaterial.xhtml#ab0f6b6ddb2c899c76bad757864649a22)() const;

<a id="l00044" name="l00044"></a> 44 

<a id="l00048" name="l00048"></a> 48 inline ROCKY_FUNCTIONS double [get\_thermal\_conductivity](structIRockyMaterial.xhtml#a35481246571a954fa8954efc49631ba5)() const;

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

<a id="l00052" name="l00052"></a> 52 ROCKY_FUNCTIONS [IRockyMaterial](structIRockyMaterial.xhtml)(const cuda_material &amp;__impl) : _impl(__impl) {}

<a id="l00053" name="l00053"></a> 53 

<a id="l00054" name="l00054"></a> 54 const cuda_material &amp;_impl;

<a id="l00055" name="l00055"></a> 55 

<a id="l00057" name="l00057"></a> 57};



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

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

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

<a id="l00061" name="l00061"></a> 61// ================================================================================================

<a id="l00062" name="l00062"></a> 62 

<a id="l00070" name="l00070"></a>[ 70](structIRockyMaterialInteraction.xhtml)struct [IRockyMaterialInteraction](structIRockyMaterialInteraction.xhtml)

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

<a id="l00080" name="l00080"></a> 80 inline ROCKY_FUNCTIONS double [get\_restitution\_coefficient](structIRockyMaterialInteraction.xhtml#a83c3e5bc364c65dfc9ff275e345d369c)() const;

<a id="l00081" name="l00081"></a> 81 

<a id="l00089" name="l00089"></a> 89 inline ROCKY_FUNCTIONS double [get\_minimum\_restitution\_coefficient](structIRockyMaterialInteraction.xhtml#a897ea40cf65b252af203bd1e9b9a3855)() const;

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

<a id="l00096" name="l00096"></a> 96 inline ROCKY_FUNCTIONS double [get\_static\_friction\_coefficient](structIRockyMaterialInteraction.xhtml#a4daf7d4586429504ce237697b7a7659f)() const;

<a id="l00097" name="l00097"></a> 97 

<a id="l00103" name="l00103"></a> 103 inline ROCKY_FUNCTIONS double [get\_dynamic\_friction\_coefficient](structIRockyMaterialInteraction.xhtml#ae9ce701837e46ca374d260c7b828dac7)() const;

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

<a id="l00109" name="l00109"></a> 109 inline ROCKY_FUNCTIONS double [get\_stiffness\_multiplier](structIRockyMaterialInteraction.xhtml#af0f10152e6cba7d896304a45ed822fa8)() const;

<a id="l00110" name="l00110"></a> 110 

<a id="l00116" name="l00116"></a> 116 inline ROCKY_FUNCTIONS double [get\_tangential\_stiffness\_ratio](structIRockyMaterialInteraction.xhtml#a766d1bbd19828566927faadc683b4242)() const;

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

<a id="l00120" name="l00120"></a> 120 ROCKY_FUNCTIONS [IRockyMaterialInteraction](structIRockyMaterialInteraction.xhtml)(const MaterialInteraction &amp;__impl) : _impl(__impl) {}

<a id="l00121" name="l00121"></a> 121 

<a id="l00122" name="l00122"></a> 122 const MaterialInteraction &amp;_impl;

<a id="l00123" name="l00123"></a> 123 

<a id="l00125" name="l00125"></a> 125};



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

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

<a id="l00128" name="l00128"></a> 128// ================================================================================================

<a id="l00129" name="l00129"></a> 129// IRockyMaterial

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

<a id="l00131" name="l00131"></a>[ 131](structIRockyMaterial.xhtml#ac2296f9b2afe54b6660f584d5d937994)inline ROCKY_FUNCTIONS double [IRockyMaterial::get\_young\_modulus](structIRockyMaterial.xhtml#ac2296f9b2afe54b6660f584d5d937994)() const

<a id="l00132" name="l00132"></a> 132{

<a id="l00133" name="l00133"></a> 133 return this-&gt;_impl.kn_load;

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



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

<a id="l00136" name="l00136"></a>[ 136](structIRockyMaterial.xhtml#a77ed523db8076cb87c69334481e0ad9b)inline ROCKY_FUNCTIONS double [IRockyMaterial::get\_poisson\_ratio](structIRockyMaterial.xhtml#a77ed523db8076cb87c69334481e0ad9b)() const

<a id="l00137" name="l00137"></a> 137{

<a id="l00138" name="l00138"></a> 138 return this-&gt;_impl.poisson_ratio;

<a id="l00139" name="l00139"></a> 139}



<a id="l00140" name="l00140"></a> 140 

<a id="l00141" name="l00141"></a>[ 141](structIRockyMaterial.xhtml#ac4a3805a7f95f47fbd93761d1b2013fe)inline ROCKY_FUNCTIONS double [IRockyMaterial::get\_density](structIRockyMaterial.xhtml#ac4a3805a7f95f47fbd93761d1b2013fe)() const

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

<a id="l00143" name="l00143"></a> 143 return this-&gt;_impl.dens;

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



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

<a id="l00146" name="l00146"></a>[ 146](structIRockyMaterial.xhtml#ab0f6b6ddb2c899c76bad757864649a22)inline ROCKY_FUNCTIONS double [IRockyMaterial::get\_specific\_heat](structIRockyMaterial.xhtml#ab0f6b6ddb2c899c76bad757864649a22)() const

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

<a id="l00148" name="l00148"></a> 148 return this-&gt;_impl.specific_heat;

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



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

<a id="l00151" name="l00151"></a>[ 151](structIRockyMaterial.xhtml#a35481246571a954fa8954efc49631ba5)inline ROCKY_FUNCTIONS double [IRockyMaterial::get\_thermal\_conductivity](structIRockyMaterial.xhtml#a35481246571a954fa8954efc49631ba5)() const

<a id="l00152" name="l00152"></a> 152{

<a id="l00153" name="l00153"></a> 153 return this-&gt;_impl.thermal_conductivity;

<a id="l00154" name="l00154"></a> 154}



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

<a id="l00156" name="l00156"></a> 156// ================================================================================================

<a id="l00157" name="l00157"></a> 157// RockyMaterialInteraction

<a id="l00158" name="l00158"></a> 158// ================================================================================================

<a id="l00159" name="l00159"></a>[ 159](structIRockyMaterialInteraction.xhtml#a83c3e5bc364c65dfc9ff275e345d369c)inline ROCKY_FUNCTIONS double [IRockyMaterialInteraction::get\_restitution\_coefficient](structIRockyMaterialInteraction.xhtml#a83c3e5bc364c65dfc9ff275e345d369c)() const

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

<a id="l00161" name="l00161"></a> 161 return this-&gt;_impl.rest;

<a id="l00162" name="l00162"></a> 162}



<a id="l00163" name="l00163"></a> 163 

<a id="l00164" name="l00164"></a>[ 164](structIRockyMaterialInteraction.xhtml#a897ea40cf65b252af203bd1e9b9a3855)inline ROCKY_FUNCTIONS double [IRockyMaterialInteraction::get\_minimum\_restitution\_coefficient](structIRockyMaterialInteraction.xhtml#a897ea40cf65b252af203bd1e9b9a3855)() const

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

<a id="l00166" name="l00166"></a> 166 return this-&gt;_impl.minimum_rest;

<a id="l00167" name="l00167"></a> 167}



<a id="l00168" name="l00168"></a> 168 

<a id="l00169" name="l00169"></a>[ 169](structIRockyMaterialInteraction.xhtml#a4daf7d4586429504ce237697b7a7659f)inline ROCKY_FUNCTIONS double [IRockyMaterialInteraction::get\_static\_friction\_coefficient](structIRockyMaterialInteraction.xhtml#a4daf7d4586429504ce237697b7a7659f)() const

<a id="l00170" name="l00170"></a> 170{

<a id="l00171" name="l00171"></a> 171 return this-&gt;_impl.mu_st;

<a id="l00172" name="l00172"></a> 172}



<a id="l00173" name="l00173"></a> 173 

<a id="l00174" name="l00174"></a>[ 174](structIRockyMaterialInteraction.xhtml#ae9ce701837e46ca374d260c7b828dac7)inline ROCKY_FUNCTIONS double [IRockyMaterialInteraction::get\_dynamic\_friction\_coefficient](structIRockyMaterialInteraction.xhtml#ae9ce701837e46ca374d260c7b828dac7)() const

<a id="l00175" name="l00175"></a> 175{

<a id="l00176" name="l00176"></a> 176 return this-&gt;_impl.mu_dn;

<a id="l00177" name="l00177"></a> 177}



<a id="l00178" name="l00178"></a> 178 

<a id="l00179" name="l00179"></a>[ 179](structIRockyMaterialInteraction.xhtml#af0f10152e6cba7d896304a45ed822fa8)inline ROCKY_FUNCTIONS double [IRockyMaterialInteraction::get\_stiffness\_multiplier](structIRockyMaterialInteraction.xhtml#af0f10152e6cba7d896304a45ed822fa8)() const

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

<a id="l00181" name="l00181"></a> 181 return this-&gt;_impl.contact_stiff_ratio;

<a id="l00182" name="l00182"></a> 182}



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

<a id="l00184" name="l00184"></a>[ 184](structIRockyMaterialInteraction.xhtml#a766d1bbd19828566927faadc683b4242)inline ROCKY_FUNCTIONS double [IRockyMaterialInteraction::get\_tangential\_stiffness\_ratio](structIRockyMaterialInteraction.xhtml#a766d1bbd19828566927faadc683b4242)() const

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

<a id="l00186" name="l00186"></a> 186 return this-&gt;_impl.kt_kn;

<a id="l00187" name="l00187"></a> 187}



<a id="l00188" name="l00188"></a> 188 

[IRockyMaterialInteraction](structIRockyMaterialInteraction.xhtml)

**Definition** rocky_material_api.hpp:71



[IRockyMaterialInteraction::get\_static\_friction\_coefficient](structIRockyMaterialInteraction.xhtml#a4daf7d4586429504ce237697b7a7659f)

ROCKY_FUNCTIONS double get_static_friction_coefficient() const

**Definition** rocky_material_api.hpp:169



[IRockyMaterialInteraction::get\_tangential\_stiffness\_ratio](structIRockyMaterialInteraction.xhtml#a766d1bbd19828566927faadc683b4242)

ROCKY_FUNCTIONS double get_tangential_stiffness_ratio() const

**Definition** rocky_material_api.hpp:184



[IRockyMaterialInteraction::get\_restitution\_coefficient](structIRockyMaterialInteraction.xhtml#a83c3e5bc364c65dfc9ff275e345d369c)

ROCKY_FUNCTIONS double get_restitution_coefficient() const

**Definition** rocky_material_api.hpp:159



[IRockyMaterialInteraction::get\_minimum\_restitution\_coefficient](structIRockyMaterialInteraction.xhtml#a897ea40cf65b252af203bd1e9b9a3855)

ROCKY_FUNCTIONS double get_minimum_restitution_coefficient() const

**Definition** rocky_material_api.hpp:164



[IRockyMaterialInteraction::get\_dynamic\_friction\_coefficient](structIRockyMaterialInteraction.xhtml#ae9ce701837e46ca374d260c7b828dac7)

ROCKY_FUNCTIONS double get_dynamic_friction_coefficient() const

**Definition** rocky_material_api.hpp:174



[IRockyMaterialInteraction::get\_stiffness\_multiplier](structIRockyMaterialInteraction.xhtml#af0f10152e6cba7d896304a45ed822fa8)

ROCKY_FUNCTIONS double get_stiffness_multiplier() const

**Definition** rocky_material_api.hpp:179



[IRockyMaterial](structIRockyMaterial.xhtml)

**Definition** rocky_material_api.hpp:20



[IRockyMaterial::get\_thermal\_conductivity](structIRockyMaterial.xhtml#a35481246571a954fa8954efc49631ba5)

ROCKY_FUNCTIONS double get_thermal_conductivity() const

**Definition** rocky_material_api.hpp:151



[IRockyMaterial::get\_poisson\_ratio](structIRockyMaterial.xhtml#a77ed523db8076cb87c69334481e0ad9b)

ROCKY_FUNCTIONS double get_poisson_ratio() const

**Definition** rocky_material_api.hpp:136



[IRockyMaterial::get\_specific\_heat](structIRockyMaterial.xhtml#ab0f6b6ddb2c899c76bad757864649a22)

ROCKY_FUNCTIONS double get_specific_heat() const

**Definition** rocky_material_api.hpp:146



[IRockyMaterial::get\_young\_modulus](structIRockyMaterial.xhtml#ac2296f9b2afe54b6660f584d5d937994)

ROCKY_FUNCTIONS double get_young_modulus() const

**Definition** rocky_material_api.hpp:131



[IRockyMaterial::get\_density](structIRockyMaterial.xhtml#ac4a3805a7f95f47fbd93761d1b2013fe)

ROCKY_FUNCTIONS double get_density() const

**Definition** rocky_material_api.hpp:141