    

 ## On this page

  

 

 # rocky\_timestep\_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;memory&gt;

<a id="l00005" name="l00005"></a> 5\#include &lt;vector&gt;

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

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

<a id="l00008" name="l00008"></a> 8// Forward Declaration ============================================================================

<a id="l00009" name="l00009"></a> 9struct [IRockyMaterial](structIRockyMaterial.xhtml);

<a id="l00010" name="l00010"></a> 10struct [IRockyMaterialInteraction](structIRockyMaterialInteraction.xhtml);

<a id="l00011" name="l00011"></a> 11class cuda_host;

<a id="l00012" name="l00012"></a> 12typedef cuda_host RockyModel;

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

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

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

<a id="l00016" name="l00016"></a> 16 struct ParticleGroupData;

<a id="l00017" name="l00017"></a> 17}

<a id="l00018" name="l00018"></a> 18 

<a id="l00019" name="l00019"></a> 19// ================================================================================================

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

<a id="l00021" name="l00021"></a> 21// ================================================================================================

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

<a id="l00030" name="l00030"></a>[ 30](classIRockyInteractionCalculationsData.xhtml)class [IRockyInteractionCalculationsData](classIRockyInteractionCalculationsData.xhtml)

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

<a id="l00032" name="l00032"></a> 32public:

<a id="l00033" name="l00033"></a> 33 

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

<a id="l00035" name="l00035"></a> 35 

<a id="l00041" name="l00041"></a> 41 int [get\_number\_particle\_groups](classIRockyInteractionCalculationsData.xhtml#ab5fb8e3d498bfc78f116eec7b53b22b8)() const;

<a id="l00042" name="l00042"></a> 42 

<a id="l00050" name="l00050"></a> 50 int [get\_particle\_material\_index](classIRockyInteractionCalculationsData.xhtml#a700a3993ce6c50786c1323e0b91a7c3a)(int group_index) const;

<a id="l00051" name="l00051"></a> 51 

<a id="l00060" name="l00060"></a> 60 double [get\_particle\_min\_sieve\_size](classIRockyInteractionCalculationsData.xhtml#a1ce09b00f677c903a2d25426f8447300)(int group_index) const;

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

<a id="l00070" name="l00070"></a> 70 double [get\_particle\_max\_sieve\_size](classIRockyInteractionCalculationsData.xhtml#ac12016128279790932537b32c1c7410d)(int group_index) const;

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

<a id="l00080" name="l00080"></a> 80 double [get\_particle\_min\_mass](classIRockyInteractionCalculationsData.xhtml#a641adbab81c6c430aa1b0eae6eff29f4)(int group_index) const;

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

<a id="l00082" name="l00082"></a> 82 // Geometry ------------------------------------------------------------------------------------

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

<a id="l00088" name="l00088"></a> 88 int [get\_number\_geometry\_materials](classIRockyInteractionCalculationsData.xhtml#a986da6321cca08d20d20dbd43962a74a)() const;

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

<a id="l00096" name="l00096"></a> 96 int [get\_geometry\_material\_index](classIRockyInteractionCalculationsData.xhtml#a05cb28a940233bc976b806a5893c639c)(int index) const;

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

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

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

<a id="l00106" name="l00106"></a> 106 [IRockyMaterial](structIRockyMaterial.xhtml) [get\_material](classIRockyInteractionCalculationsData.xhtml#a609eb08b9a568e07c35953bd616d9551)(int index) const;

<a id="l00107" name="l00107"></a> 107 

<a id="l00115" name="l00115"></a> 115 int [get\_material\_interaction\_index](classIRockyInteractionCalculationsData.xhtml#a1cf7ad2b906aa2f033494b390522bbb3)(int home_index, int near_index) const;

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

<a id="l00125" name="l00125"></a> 125 [IRockyMaterialInteraction](structIRockyMaterialInteraction.xhtml) [get\_material\_interaction](classIRockyInteractionCalculationsData.xhtml#aeb94fd8ed1f75bd0523634285ad94e4d)(int home_index, int near_index) const;

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

<a id="l00129" name="l00129"></a> 129 [~IRockyInteractionCalculationsData](classIRockyInteractionCalculationsData.xhtml)();

<a id="l00130" name="l00130"></a> 130 [IRockyInteractionCalculationsData](classIRockyInteractionCalculationsData.xhtml)(RockyModel &amp;model, const std::vector&lt;timestep::ParticleGroupData&gt;&amp; group_data);

<a id="l00131" name="l00131"></a> 131 [IRockyInteractionCalculationsData](classIRockyInteractionCalculationsData.xhtml)(RockyModel &amp;model);

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

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

<a id="l00134" name="l00134"></a> 134 struct impl;

<a id="l00135" name="l00135"></a> 135 std::unique_ptr&lt;impl&gt; pImpl;

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

<a id="l00138" name="l00138"></a> 138};



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

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

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

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

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

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

<a id="l00151" name="l00151"></a>[ 151](classIRockyTimestepData.xhtml)class [IRockyTimestepData](classIRockyTimestepData.xhtml) : public [IRockyInteractionCalculationsData](classIRockyInteractionCalculationsData.xhtml)

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

<a id="l00153" name="l00153"></a> 153public:

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

<a id="l00160" name="l00160"></a> 160 int [get\_loading\_n\_steps](classIRockyTimestepData.xhtml#a3a8aecd285747c87e9987fd439a14a3b)() const;

<a id="l00163" name="l00163"></a> 163 [IRockyTimestepData](classIRockyTimestepData.xhtml)(RockyModel &amp;model, const std::vector&lt;timestep::ParticleGroupData&gt;&amp; group_data);

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

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



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

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

<a id="l00169" name="l00169"></a> 169// ================================================================================================

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

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

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

<a id="l00188" name="l00188"></a>[ 188](classIRockyAdhesiveDistanceData.xhtml)class [IRockyAdhesiveDistanceData](classIRockyAdhesiveDistanceData.xhtml) : public [IRockyInteractionCalculationsData](classIRockyInteractionCalculationsData.xhtml)

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

<a id="l00190" name="l00190"></a> 190public:

<a id="l00193" name="l00193"></a> 193 [IRockyAdhesiveDistanceData](classIRockyAdhesiveDistanceData.xhtml)(RockyModel &amp;model);

<a id="l00194" name="l00194"></a> 194 

<a id="l00207" name="l00207"></a> 207 void [set\_adhesive\_distance](classIRockyAdhesiveDistanceData.xhtml#a7d103731c5133db24f461e91e24e2f7a)(int home_index, int near_index, double adhesive_distance);

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

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



<a id="l00210" name="l00210"></a> 210 

[IRockyAdhesiveDistanceData](classIRockyAdhesiveDistanceData.xhtml)

**Definition** rocky_timestep_api.h:189



[IRockyAdhesiveDistanceData::set\_adhesive\_distance](classIRockyAdhesiveDistanceData.xhtml#a7d103731c5133db24f461e91e24e2f7a)

void set_adhesive_distance(int home_index, int near_index, double adhesive_distance)

**Definition** rocky_timestep_api.cpp:167



[IRockyInteractionCalculationsData](classIRockyInteractionCalculationsData.xhtml)

**Definition** rocky_timestep_api.h:31



[IRockyInteractionCalculationsData::get\_geometry\_material\_index](classIRockyInteractionCalculationsData.xhtml#a05cb28a940233bc976b806a5893c639c)

int get_geometry_material_index(int index) const

**Definition** rocky_timestep_api.cpp:106



[IRockyInteractionCalculationsData::get\_particle\_min\_sieve\_size](classIRockyInteractionCalculationsData.xhtml#a1ce09b00f677c903a2d25426f8447300)

double get_particle_min_sieve_size(int group_index) const

**Definition** rocky_timestep_api.cpp:79



[IRockyInteractionCalculationsData::get\_material\_interaction\_index](classIRockyInteractionCalculationsData.xhtml#a1cf7ad2b906aa2f033494b390522bbb3)

int get_material_interaction_index(int home_index, int near_index) const

**Definition** rocky_timestep_api.cpp:117



[IRockyInteractionCalculationsData::get\_material](classIRockyInteractionCalculationsData.xhtml#a609eb08b9a568e07c35953bd616d9551)

IRockyMaterial get_material(int index) const

**Definition** rocky_timestep_api.cpp:112



[IRockyInteractionCalculationsData::get\_particle\_min\_mass](classIRockyInteractionCalculationsData.xhtml#a641adbab81c6c430aa1b0eae6eff29f4)

double get_particle_min_mass(int group_index) const

**Definition** rocky_timestep_api.cpp:93



[IRockyInteractionCalculationsData::get\_particle\_material\_index](classIRockyInteractionCalculationsData.xhtml#a700a3993ce6c50786c1323e0b91a7c3a)

int get_particle_material_index(int group_index) const

**Definition** rocky_timestep_api.cpp:74



[IRockyInteractionCalculationsData::get\_number\_geometry\_materials](classIRockyInteractionCalculationsData.xhtml#a986da6321cca08d20d20dbd43962a74a)

int get_number_geometry_materials() const

**Definition** rocky_timestep_api.cpp:101



[IRockyInteractionCalculationsData::get\_number\_particle\_groups](classIRockyInteractionCalculationsData.xhtml#ab5fb8e3d498bfc78f116eec7b53b22b8)

int get_number_particle_groups() const

**Definition** rocky_timestep_api.cpp:69



[IRockyInteractionCalculationsData::get\_particle\_max\_sieve\_size](classIRockyInteractionCalculationsData.xhtml#ac12016128279790932537b32c1c7410d)

double get_particle_max_sieve_size(int group_index) const

**Definition** rocky_timestep_api.cpp:86



[IRockyInteractionCalculationsData::get\_material\_interaction](classIRockyInteractionCalculationsData.xhtml#aeb94fd8ed1f75bd0523634285ad94e4d)

IRockyMaterialInteraction get_material_interaction(int home_index, int near_index) const

**Definition** rocky_timestep_api.cpp:122



[IRockyTimestepData](classIRockyTimestepData.xhtml)

**Definition** rocky_timestep_api.h:152



[IRockyTimestepData::get\_loading\_n\_steps](classIRockyTimestepData.xhtml#a3a8aecd285747c87e9987fd439a14a3b)

int get_loading_n_steps() const

**Definition** rocky_timestep_api.cpp:154



[IRockyMaterialInteraction](structIRockyMaterialInteraction.xhtml)

**Definition** rocky_material_api.hpp:71



[IRockyMaterial](structIRockyMaterial.xhtml)

**Definition** rocky_material_api.hpp:20