Skip to main content

Rocky Solver SDK 2024 R2

rocky_contact_scalars

Last update: 17.07.2025
1#pragma once
2
3// Includes ========================================================================================
4#include "rocky_scalars.h"
5
6using rocky20::KnownContactScalars;
7
8// =================================================================================================
9// IRockyContactScalarsModel
10// =================================================================================================
11
19struct IRockyContactScalarsModel : ScalarsModel<rocky20::BaseContactScalarsController>
20{
21
22#ifdef ONLY_FOR_DOXYGEN
23
34 int find(const char* name);
35
42 void reset(int scalar_index);
43
58 void set_dimension(int scalar_index, double dimension_factor);
59
79 int add(const char* name, const char* unit, bool output = true);
80
100 template<class data_type>
101 int add(const char* name, const char* unit, bool output);
102
103#endif
104
113
122
131
141
150
162
173
184
193
204
218
230
247 void mark_scalar_as_history_dependent(int scalar_index);
248
250 IRockyContactScalarsModel(RockyModel* solver_model, bool is_particle_contact);
251
252 int add(const char *_name, const char *_unit, bool _output = true);
253
254 template<class _data_type>
255 int add(const char* _name, const char* _unit, bool _output)
256 {
257 auto indexes = this->_model->contact_scalars_controller.add_scalars<_data_type>(
258 _name, _unit, this->_is_particle_contact, !this->_is_particle_contact, _output);
259 return (this->_is_particle_contact) ? indexes.first : indexes.second;
260 }
261
262 RockyModel* _model;
263 bool _is_particle_contact;
265};
266
267// =================================================================================================
268// IRockyContactScalars
269// =================================================================================================
270
277struct IRockyContactScalars : EntityScalars<rocky20::ContactScalars>
278{
279
281 ROCKY_FUNCTIONS IRockyContactScalars(rocky20::ContactScalars& _scalars, int _contact_index)
282 : EntityScalars<rocky20::ContactScalars>(_scalars, _contact_index)
283 {}
286#ifdef ONLY_FOR_DOXYGEN
287
298 ROCKY_FUNCTIONS double get_scalar(int scalar_index) const;
299
310 ROCKY_FUNCTIONS void set_scalar(int scalar_index, double value) const;
311
322 ROCKY_FUNCTIONS void add_scalar(int scalar_index, double value) const;
323
336 ROCKY_FUNCTIONS void max_scalar(int scalar_index, double value) const;
337
338#endif
339
340};
Definition rocky_contact_scalars.hpp:20
int add(const char *name, const char *unit, bool output=true)
Definition rocky_contact_scalars.cpp:21
void enable_storage_normal_adhesion_force()
Definition rocky_contact_scalars.cpp:80
int add(const char *name, const char *unit, bool output)
void mark_scalar_as_history_dependent(int scalar_index)
Definition rocky_contact_scalars.cpp:110
void enable_storage_is_sliding_marker()
Definition rocky_contact_scalars.cpp:56
void enable_storage_normal_relative_velocity()
Definition rocky_contact_scalars.cpp:68
void enable_storage_previous_normal_vector()
Definition rocky_contact_scalars.cpp:92
void enable_variable_static_friction_coefficient()
Definition rocky_contact_scalars.cpp:36
void reset(int scalar_index)
void enable_storage_tangential_contact_force()
Definition rocky_contact_scalars.cpp:62
void enable_variable_restitution_coefficient()
Definition rocky_contact_scalars.cpp:44
void enable_storage_sliding_distance()
Definition rocky_contact_scalars.cpp:50
void set_dimension(int scalar_index, double dimension_factor)
void enable_previous_moment_vector()
Definition rocky_contact_scalars.cpp:101
void enable_storage_tangential_adhesion_force()
Definition rocky_contact_scalars.cpp:86
int find(const char *name)
void enable_storage_tangential_relative_velocity()
Definition rocky_contact_scalars.cpp:74
void enable_variable_dynamic_friction_coefficient()
Definition rocky_contact_scalars.cpp:28
Definition rocky_contact_scalars.hpp:278
ROCKY_FUNCTIONS void max_scalar(int scalar_index, double value) const
ROCKY_FUNCTIONS void add_scalar(int scalar_index, double value) const
ROCKY_FUNCTIONS void set_scalar(int scalar_index, double value) const
ROCKY_FUNCTIONS double get_scalar(int scalar_index) const

Connect with Ansys