    

 ## On this page

  

 

 # rocky\_contact\_data\_recorder\_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\#include &lt;rocky20/model/data\_recorders.h&gt;

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

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

<a id="l00007" name="l00007"></a> 7class cuda_host;

<a id="l00008" name="l00008"></a> 8typedef cuda_host RockyModel;

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

<a id="l00018" name="l00018"></a>[ 18](structIRockyContactDataRecorder.xhtml)struct [IRockyContactDataRecorder](structIRockyContactDataRecorder.xhtml)

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

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

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

<a id="l00024" name="l00024"></a> 24 rsParticleParticle,

<a id="l00025" name="l00025"></a> 25 rsParticleTriangle,

<a id="l00026" name="l00026"></a> 26 rsBoth

<a id="l00027" name="l00027"></a> 27 };

<a id="l00028" name="l00028"></a> 28 

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

<a id="l00030" name="l00030"></a> 30 {

<a id="l00031" name="l00031"></a> 31 csDuration = (int)ContactDataRecorder::tDuration,

<a id="l00032" name="l00032"></a> 32 csImpactVelocityNormal = (int)ContactDataRecorder::tNormalImpactVelocity,

<a id="l00033" name="l00033"></a> 33 csImpactVelocityTangential = (int)ContactDataRecorder::tTangentialImpactVelocity,

<a id="l00034" name="l00034"></a> 34 csWorkDissipation = (int)ContactDataRecorder::tDissipationWork,

<a id="l00035" name="l00035"></a> 35 csWorkImpact = (int)ContactDataRecorder::tImpactWork,

<a id="l00036" name="l00036"></a> 36 csWorkShear = (int)ContactDataRecorder::tShearWork,

<a id="l00037" name="l00037"></a> 37 csEnergyTransfer = (int)ContactDataRecorder::tNearWork,

<a id="l00038" name="l00038"></a> 38 csImpulseNormal = (int)ContactDataRecorder::tNormalImpulse,

<a id="l00039" name="l00039"></a> 39 csImpulseTangential = (int)ContactDataRecorder::tTangentialImpulse,

<a id="l00040" name="l00040"></a> 40 csImpulseAdhesion = (int)ContactDataRecorder::tAdhesiveImpulse,

<a id="l00041" name="l00041"></a> 41 csImpulseX = (int)ContactDataRecorder::tImpulseX,

<a id="l00042" name="l00042"></a> 42 csImpulseY = (int)ContactDataRecorder::tImpulseY,

<a id="l00043" name="l00043"></a> 43 csImpulseZ = (int)ContactDataRecorder::tImpulseZ,

<a id="l00044" name="l00044"></a> 44 csSlindingDistance = (int)ContactDataRecorder::tSlidingDistance,

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

<a id="l00046" name="l00046"></a> 46 csSize

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

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

<a id="l00049" name="l00049"></a> 49 [IRockyContactDataRecorder](structIRockyContactDataRecorder.xhtml)(RockyModel&amp; rocky_model);

<a id="l00050" name="l00050"></a> 50 

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

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

<a id="l00053" name="l00053"></a> 53 RockyModel&amp; rocky_model;

<a id="l00054" name="l00054"></a> 54 

<a id="l00057" name="l00057"></a> 57public:

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

<a id="l00096" name="l00096"></a> 96 void [enable\_contact\_scalar](structIRockyContactDataRecorder.xhtml#a36e9b7b9de7b99a0e4c6ca703fc7fb5d)(ContactScalar scalar, RecordingScope scope);

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

<a id="l00109" name="l00109"></a> 109 int [get\_contact\_scalar\_index](structIRockyContactDataRecorder.xhtml#a5ebed1613189e54bf4c202b5ec9553b8)(ContactScalar scalar, RecordingScope scope);

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

<a id="l00111" name="l00111"></a> 111};



[IRockyContactDataRecorder](structIRockyContactDataRecorder.xhtml)

**Definition** rocky_contact_data_recorder_api.h:19



[IRockyContactDataRecorder::enable\_contact\_scalar](structIRockyContactDataRecorder.xhtml#a36e9b7b9de7b99a0e4c6ca703fc7fb5d)

void enable_contact_scalar(ContactScalar scalar, RecordingScope scope)

**Definition** rocky_contact_data_recorder_api.cpp:10



[IRockyContactDataRecorder::get\_contact\_scalar\_index](structIRockyContactDataRecorder.xhtml#a5ebed1613189e54bf4c202b5ec9553b8)

int get_contact_scalar_index(ContactScalar scalar, RecordingScope scope)

**Definition** rocky_contact_data_recorder_api.cpp:36