Skip to main content

Rocky Solver SDK 2025 R2

rocky_model_api

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_model.hpp"
6#include "rocky_particle_api.hpp"
7
8// ================================================================================================
9// IRockyDeviceModel
10// ================================================================================================
11
20{
21
25 ROCKY_FUNCTIONS double get_timestep() const;
26
30 ROCKY_FUNCTIONS double get_current_time() const;
31
39 ROCKY_FUNCTIONS double3 get_gravity() const;
40
48 ROCKY_FUNCTIONS void set_gravity(const double3& gravity);
49
66 int point_cloud_index, const IRockyParticle &particle);
67
75 ROCKY_FUNCTIONS IRockyPairScalars get_pair_scalars(int pair_index);
76
84 ROCKY_FUNCTIONS IRockyGeometryScalars get_geometry_scalars(int geometry_index);
85
88 [[deprecated("Use get_timestep() instead.")]]
89 ROCKY_FUNCTIONS double get_time_step() const;
90
91 RockyDeviceModel _impl;
92
94};
95
96// deprecated
97inline
98ROCKY_FUNCTIONS double IRockyDeviceModel::get_time_step() const
99{
100 return this->_impl.get_timestep();
101}
102
103inline
104ROCKY_FUNCTIONS double IRockyDeviceModel::get_timestep() const
105{
106 return this->_impl.get_timestep();
107}
108
109inline
110ROCKY_FUNCTIONS double IRockyDeviceModel::get_current_time() const
111{
112 return this->_impl.get_current_time();
113}
114
115inline
116ROCKY_FUNCTIONS double3 IRockyDeviceModel::get_gravity() const
117{
118 return this->_impl.get_gravity();
119}
120
121inline
122ROCKY_FUNCTIONS void IRockyDeviceModel::set_gravity(const double3& gravity)
123{
124 this->_impl.set_gravity(gravity);
125}
126
127inline ROCKY_FUNCTIONS IRockyCloudPoint
128IRockyDeviceModel::get_particle_cloud_point(int point_cloud_index, const IRockyParticle& particle)
129{
130 auto point_cloud = this->_impl.model->point_clouds + point_cloud_index;
131 int point_index = this->_impl.model->particle_scalars->get_scalar<int>(
132 point_cloud->particle_scalars_index, particle._impl.particle_index);
133 return IRockyCloudPoint(point_cloud, point_index);
134}
135
136inline ROCKY_FUNCTIONS IRockyPairScalars IRockyDeviceModel::get_pair_scalars(int pair_index)
137{
138 return IRockyPairScalars(*this->_impl.model->pair_scalars, pair_index);
139}
140
141inline ROCKY_FUNCTIONS IRockyGeometryScalars IRockyDeviceModel::get_geometry_scalars(int geometry_index)
142{
143 return IRockyGeometryScalars(*this->_impl.model->boundary_scalars, geometry_index);
144}
Definition rocky_point_cloud_api.hpp:16
Definition rocky_model_api.hpp:20
ROCKY_FUNCTIONS double get_current_time() const
Definition rocky_model_api.hpp:110
ROCKY_FUNCTIONS IRockyPairScalars get_pair_scalars(int pair_index)
Definition rocky_model_api.hpp:136
ROCKY_FUNCTIONS void set_gravity(const double3 &gravity)
Definition rocky_model_api.hpp:122
ROCKY_FUNCTIONS IRockyGeometryScalars get_geometry_scalars(int geometry_index)
Definition rocky_model_api.hpp:141
ROCKY_FUNCTIONS double get_timestep() const
Definition rocky_model_api.hpp:104
ROCKY_FUNCTIONS IRockyCloudPoint get_particle_cloud_point(int point_cloud_index, const IRockyParticle &particle)
Definition rocky_model_api.hpp:128
ROCKY_FUNCTIONS double3 get_gravity() const
Definition rocky_model_api.hpp:116
Definition rocky_boundary_scalars.hpp:97
Definition rocky_pair_scalars.hpp:101
Definition rocky_particle_api.hpp:28

Connect with Ansys