Skip to main content

Rocky Solver SDK 2025 R2

rocky_triangle_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
7
8// Forward declarations ===========================================================================
9class cuda_host;
10typedef cuda_host RockyModel;
11
12using rocky20::KnownTriangleScalars;
13
14// =================================================================================================
15// IRockyTriangleScalarsModel
16// =================================================================================================
17
25struct IRockyTriangleScalarsModel : ScalarsModel<rocky20::TriangleScalarsController>
26{
27
28#ifdef ONLY_FOR_DOXYGEN
29
31 int find(const char* name);
32
34 int add(const char* name, const char* unit, bool output = true);
35
58 template <class data_type>
59 int add_accumulation_scalar(const char* name, const char* unit, bool output = true);
60
62 void reset(int scalar_index);
63
65 void set_dimension(int scalar_index, double dimension_factor);
66
67#endif
68
78
88
96 std::vector<double> calculate_sum_over_geometries(int scalar_index);
97
107 void pull_scalar_from_devices(int scalar_index);
108
115 void push_scalar_to_devices(int scalar_index);
116
119 [[deprecated("Use the ROCKY_PLUGIN_INITIALIZE_TRIANGLE hook instead.")]]
120 void fill_with_geometry_values(int scalar_index, double* geometry_values);
121
122 int add(const char* name, const char* unit, bool output = true);
123
124 template <class data_type>
125 int add(const char* name, const char* unit, bool output = true)
126 {
127 return this->_impl.rocky20::TriangleScalarsController::template add_scalars<data_type>(
128 name, unit, rocky20::ScalarsInfo::cotIntegrated, output);
129 }
130
131 template <class data_type>
132 int add_accumulation_scalar(const char* name, const char* unit, bool output = true)
133 {
134 return this->_impl.rocky20::TriangleScalarsController::template add_scalars<data_type>(
135 name,
136 unit,
137 rocky20::ScalarsInfo::CollectiveOperationType::cotAccumulateOnDemand,
138 output);
139 }
140
141 IRockyTriangleScalarsModel(RockyModel *_model);
142
143 RockyModel *model;
144
146};
147
148// =================================================================================================
149// IRockyTriangleScalars
150// =================================================================================================
151
160struct IRockyTriangleScalars : EntityScalars<rocky20::TriangleScalars>
161{
168 ROCKY_FUNCTIONS inline double get_thermal_conductivity() const
169 {
170 return this->get_known_scalar(KnownTriangleScalars::ThermalConductivity);
171 }
172
180 ROCKY_FUNCTIONS inline void set_thermal_conductivity(const double value)
181 {
182 this->get_known_scalar(KnownTriangleScalars::ThermalConductivity) = value;
183 }
184
191 ROCKY_FUNCTIONS inline double get_poisson_ratio() const
192 {
193 return this->get_known_scalar(KnownTriangleScalars::PoissonRatio);
194 }
195
203 ROCKY_FUNCTIONS inline void set_poisson_ratio(const double value)
204 {
205 this->get_known_scalar(KnownTriangleScalars::PoissonRatio) = value;
206 }
207
219 ROCKY_FUNCTIONS inline double get_exchanged_heat() const
220 {
221 return this->get_known_scalar(KnownTriangleScalars::HeatExchanged);
222 }
223
224#ifdef ONLY_FOR_DOXYGEN
225
227 ROCKY_FUNCTIONS double get_scalar(int scalar_index) const;
228
230 ROCKY_FUNCTIONS void set_scalar(int scalar_index, double value) const;
231
233 ROCKY_FUNCTIONS void add_scalar(int scalar_index, double value) const;
234
236 ROCKY_FUNCTIONS void max_scalar(int scalar_index, double value) const;
237
238#endif
239
242 __host__ __device__
243 IRockyTriangleScalars(rocky20::TriangleScalars &_scalars, int _element_index) :
244 EntityScalars< rocky20::TriangleScalars>(_scalars, _element_index)
245 {}
246
248};
Definition rocky_triangle_scalars.hpp:26
void enable_storage_of_exchanged_heat()
Definition rocky_triangle_scalars.cpp:8
void push_scalar_to_devices(int scalar_index)
Definition rocky_triangle_scalars.cpp:88
int add(const char *name, const char *unit, bool output=true)
Definition rocky_triangle_scalars.cpp:39
void pull_scalar_from_devices(int scalar_index)
Definition rocky_triangle_scalars.cpp:79
void set_dimension(int scalar_index, double dimension_factor)
void reset_exchanged_heat()
Definition rocky_triangle_scalars.cpp:13
int add_accumulation_scalar(const char *name, const char *unit, bool output=true)
std::vector< double > calculate_sum_over_geometries(int scalar_index)
Definition rocky_triangle_scalars.cpp:46
void reset(int scalar_index)
int find(const char *name)
Definition rocky_triangle_scalars.hpp:161
ROCKY_FUNCTIONS double get_thermal_conductivity() const
Definition rocky_triangle_scalars.hpp:168
ROCKY_FUNCTIONS double get_scalar(int scalar_index) const
ROCKY_FUNCTIONS void set_scalar(int scalar_index, double value) const
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_poisson_ratio(const double value)
Definition rocky_triangle_scalars.hpp:203
ROCKY_FUNCTIONS double get_poisson_ratio() const
Definition rocky_triangle_scalars.hpp:191
ROCKY_FUNCTIONS void set_thermal_conductivity(const double value)
Definition rocky_triangle_scalars.hpp:180
ROCKY_FUNCTIONS double get_exchanged_heat() const
Definition rocky_triangle_scalars.hpp:219

Connect with Ansys