    

 ## On this page

  

 

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

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

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

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

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

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

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

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

<a id="l00013" name="l00013"></a> 13typedef cuda_host RockyModel;

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

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

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

<a id="l00017" name="l00017"></a> 17 struct ParticleGroupData;

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

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

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

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

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

<a id="l00023" name="l00023"></a> 23 

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

<a id="l00032" name="l00032"></a> 32{

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

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

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

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

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

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

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

<a id="l00052" name="l00052"></a> 52 

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

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

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

<a id="l00072" name="l00072"></a> 72 

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

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

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

<a id="l00084" name="l00084"></a> 84 

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

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

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

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

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

<a id="l00100" name="l00100"></a> 100 

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

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

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

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

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

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

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

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

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

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

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

<a id="l00135" name="l00135"></a> 135 struct impl;

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

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

<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// ================================================================================================

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

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

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

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

<a id="l00153" name="l00153"></a> 153{

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

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

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

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

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

<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// ================================================================================================

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

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

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

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

<a id="l00190" name="l00190"></a> 190{

<a id="l00191" name="l00191"></a> 191public:

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

<a id="l00195" name="l00195"></a> 195 

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

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

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



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

[IRockyAdhesiveDistanceData](classIRockyAdhesiveDistanceData.xhtml)

**Definition** rocky_timestep_api.h:190



[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:168



[IRockyInteractionCalculationsData](classIRockyInteractionCalculationsData.xhtml)

**Definition** rocky_timestep_api.h:32



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

int get_geometry_material_index(int index) const

**Definition** rocky_timestep_api.cpp:107



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

double get_particle_min_sieve_size(int group_index) const

**Definition** rocky_timestep_api.cpp:80



[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:118



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

IRockyMaterial get_material(int index) const

**Definition** rocky_timestep_api.cpp:113



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

double get_particle_min_mass(int group_index) const

**Definition** rocky_timestep_api.cpp:94



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

int get_particle_material_index(int group_index) const

**Definition** rocky_timestep_api.cpp:75



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

int get_number_geometry_materials() const

**Definition** rocky_timestep_api.cpp:102



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

int get_number_particle_groups() const

**Definition** rocky_timestep_api.cpp:70



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

double get_particle_max_sieve_size(int group_index) const

**Definition** rocky_timestep_api.cpp:87



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

IRockyMaterialInteraction get_material_interaction(int home_index, int near_index) const

**Definition** rocky_timestep_api.cpp:123



[IRockyTimestepData](classIRockyTimestepData.xhtml)

**Definition** rocky_timestep_api.h:153



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

int get_loading_n_steps() const

**Definition** rocky_timestep_api.cpp:155



[IRockyMaterialInteraction](structIRockyMaterialInteraction.xhtml)

**Definition** rocky_material_api.hpp:72



[IRockyMaterial](structIRockyMaterial.xhtml)

**Definition** rocky_material_api.hpp:21