Skip to main content

Rocky Solver SDK 2024 R2

rocky_triangle_scalars

Last update: 17.07.2025
1#pragma once
2
3// Includes ========================================================================================
4#include "rocky_scalars.h"
5
6
7// Forward declarations ===========================================================================
8class cuda_host;
9typedef cuda_host RockyModel;
10
11using rocky20::KnownTriangleScalars;
12
13// =================================================================================================
14// IRockyTriangleScalarsModel
15// =================================================================================================
16
24struct IRockyTriangleScalarsModel : ScalarsModel<rocky20::TriangleScalarsController>
25{
26
27#ifdef ONLY_FOR_DOXYGEN
28
30 int find(const char* name);
31
33 int add(const char* name, const char* unit, bool output = true);
34
57 template <class data_type>
58 int add_accumulation_scalar(const char* name, const char* unit, bool output = true);
59
61 void reset(int scalar_index);
62
64 void set_dimension(int scalar_index, double dimension_factor);
65
66#endif
67
77
87
95 std::vector<double> calculate_sum_over_geometries(int scalar_index);
96
106 void pull_scalar_from_devices(int scalar_index);
107
114 void push_scalar_to_devices(int scalar_index);
115
118 [[deprecated("Use the ROCKY_PLUGIN_INITIALIZE_TRIANGLE hook instead.")]]
119 void fill_with_geometry_values(int scalar_index, double* geometry_values);
120
121 int add(const char* name, const char* unit, bool output = true);
122
123 template <class data_type>
124 int add(const char* name, const char* unit, bool output = true)
125 {
126 return this->_impl.rocky20::TriangleScalarsController::template add_scalars<data_type>(
127 name, unit, rocky20::ScalarsInfo::cotIntegrated, output);
128 }
129
130 template <class data_type>
131 int add_accumulation_scalar(const char* name, const char* unit, bool output = true)
132 {
133 return this->_impl.rocky20::TriangleScalarsController::template add_scalars<data_type>(
134 name,
135 unit,
136 rocky20::ScalarsInfo::CollectiveOperationType::cotAccumulateOnDemand,
137 output);
138 }
139
140 IRockyTriangleScalarsModel(RockyModel *_model);
141
142 RockyModel *model;
143
145};
146
147// =================================================================================================
148// IRockyTriangleScalars
149// =================================================================================================
150
159struct IRockyTriangleScalars : EntityScalars<rocky20::TriangleScalars>
160{
167 ROCKY_FUNCTIONS inline double get_thermal_conductivity() const
168 {
169 return this->get_known_scalar(KnownTriangleScalars::ThermalConductivity);
170 }
171
179 ROCKY_FUNCTIONS inline void set_thermal_conductivity(const double value)
180 {
181 this->get_known_scalar(KnownTriangleScalars::ThermalConductivity) = value;
182 }
183
190 ROCKY_FUNCTIONS inline double get_poisson_ratio() const
191 {
192 return this->get_known_scalar(KnownTriangleScalars::PoissonRatio);
193 }
194
202 ROCKY_FUNCTIONS inline void set_poisson_ratio(const double value)
203 {
204 this->get_known_scalar(KnownTriangleScalars::PoissonRatio) = value;
205 }
206
218 ROCKY_FUNCTIONS inline double get_exchanged_heat() const
219 {
220 return this->get_known_scalar(KnownTriangleScalars::HeatExchanged);
221 }
222
223#ifdef ONLY_FOR_DOXYGEN
224
226 ROCKY_FUNCTIONS double get_scalar(int scalar_index) const;
227
229 ROCKY_FUNCTIONS void set_scalar(int scalar_index, double value) const;
230
232 ROCKY_FUNCTIONS void add_scalar(int scalar_index, double value) const;
233
235 ROCKY_FUNCTIONS void max_scalar(int scalar_index, double value) const;
236
237#endif
238
241 __host__ __device__
242 IRockyTriangleScalars(rocky20::TriangleScalars &_scalars, int _element_index) :
243 EntityScalars< rocky20::TriangleScalars>(_scalars, _element_index)
244 {}
245
247};
Definition rocky_triangle_scalars.hpp:25
void enable_storage_of_exchanged_heat()
Definition rocky_triangle_scalars.cpp:5
void push_scalar_to_devices(int scalar_index)
Definition rocky_triangle_scalars.cpp:86
int add(const char *name, const char *unit, bool output=true)
Definition rocky_triangle_scalars.cpp:36
void pull_scalar_from_devices(int scalar_index)
Definition rocky_triangle_scalars.cpp:77
void set_dimension(int scalar_index, double dimension_factor)
void reset_exchanged_heat()
Definition rocky_triangle_scalars.cpp:10
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:43
void reset(int scalar_index)
int find(const char *name)
Definition rocky_triangle_scalars.hpp:160
ROCKY_FUNCTIONS double get_thermal_conductivity() const
Definition rocky_triangle_scalars.hpp:167
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:202
ROCKY_FUNCTIONS double get_poisson_ratio() const
Definition rocky_triangle_scalars.hpp:190
ROCKY_FUNCTIONS void set_thermal_conductivity(const double value)
Definition rocky_triangle_scalars.hpp:179
ROCKY_FUNCTIONS double get_exchanged_heat() const
Definition rocky_triangle_scalars.hpp:218

Connect with Ansys