Skip to main content

Rocky Solver SDK 2025 R2

rocky_contact_scalars

Last update: 16.07.2025
1// (C) 2024 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
2#pragma once
3
4// Includes ========================================================================================
5#include "rocky_scalars.h"
6
7using rocky20::KnownContactScalars;
8
9// =================================================================================================
10// IRockyContactScalarsModel
11// =================================================================================================
12
20struct IRockyContactScalarsModel : ScalarsModel<rocky20::BaseContactScalarsController>
21{
22
23#ifdef ONLY_FOR_DOXYGEN
24
35 int find(const char* name);
36
43 void reset(int scalar_index);
44
59 void set_dimension(int scalar_index, double dimension_factor);
60
80 int add(const char* name, const char* unit, bool output = true);
81
101 template<class data_type>
102 int add(const char* name, const char* unit, bool output);
103
104#endif
105
114
123
132
142
151
163
174
185
194
205
219
231
248 void mark_scalar_as_history_dependent(int scalar_index);
249
251 IRockyContactScalarsModel(RockyModel* solver_model, bool is_particle_contact);
252
253 int add(const char *_name, const char *_unit, bool _output = true);
254
255 template<class _data_type>
256 int add(const char* _name, const char* _unit, bool _output)
257 {
258 auto indexes = this->_model->contact_scalars_controller.add_scalars<_data_type>(
259 _name, _unit, this->_is_particle_contact, !this->_is_particle_contact, _output);
260 return (this->_is_particle_contact) ? indexes.first : indexes.second;
261 }
262
263 RockyModel* _model;
264 bool _is_particle_contact;
266};
267
268// =================================================================================================
269// IRockyContactScalars
270// =================================================================================================
271
278struct IRockyContactScalars : EntityScalars<rocky20::ContactScalars>
279{
280
282 ROCKY_FUNCTIONS IRockyContactScalars(rocky20::ContactScalars& _scalars, int _contact_index)
283 : EntityScalars<rocky20::ContactScalars>(_scalars, _contact_index)
284 {}
287#ifdef ONLY_FOR_DOXYGEN
288
299 ROCKY_FUNCTIONS double get_scalar(int scalar_index) const;
300
311 ROCKY_FUNCTIONS void set_scalar(int scalar_index, double value) const;
312
323 ROCKY_FUNCTIONS void add_scalar(int scalar_index, double value) const;
324
337 ROCKY_FUNCTIONS void max_scalar(int scalar_index, double value) const;
338
339#endif
340
341};
Definition rocky_contact_scalars.hpp:21
int add(const char *name, const char *unit, bool output=true)
Definition rocky_contact_scalars.cpp:22
void enable_storage_normal_adhesion_force()
Definition rocky_contact_scalars.cpp:81
int add(const char *name, const char *unit, bool output)
void mark_scalar_as_history_dependent(int scalar_index)
Definition rocky_contact_scalars.cpp:111
void enable_storage_is_sliding_marker()
Definition rocky_contact_scalars.cpp:57
void enable_storage_normal_relative_velocity()
Definition rocky_contact_scalars.cpp:69
void enable_storage_previous_normal_vector()
Definition rocky_contact_scalars.cpp:93
void enable_variable_static_friction_coefficient()
Definition rocky_contact_scalars.cpp:37
void reset(int scalar_index)
void enable_storage_tangential_contact_force()
Definition rocky_contact_scalars.cpp:63
void enable_variable_restitution_coefficient()
Definition rocky_contact_scalars.cpp:45
void enable_storage_sliding_distance()
Definition rocky_contact_scalars.cpp:51
void set_dimension(int scalar_index, double dimension_factor)
void enable_previous_moment_vector()
Definition rocky_contact_scalars.cpp:102
void enable_storage_tangential_adhesion_force()
Definition rocky_contact_scalars.cpp:87
int find(const char *name)
void enable_storage_tangential_relative_velocity()
Definition rocky_contact_scalars.cpp:75
void enable_variable_dynamic_friction_coefficient()
Definition rocky_contact_scalars.cpp:29
Definition rocky_contact_scalars.hpp:279
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