    

 ## On this page

  

 

 # rocky\_triangle\_scalars

 Last update: 16.07.2025 

<a id="l00001" name="l00001"></a> 1// (C) 2024 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.

<a id="l00002" name="l00002"></a> 2\#pragma once

<a id="l00003" name="l00003"></a> 3 

<a id="l00004" name="l00004"></a> 4// Includes ========================================================================================

<a id="l00005" name="l00005"></a> 5\#include "rocky\_scalars.h"

<a id="l00006" name="l00006"></a> 6 

<a id="l00007" name="l00007"></a> 7 

<a id="l00008" name="l00008"></a> 8// Forward declarations ===========================================================================

<a id="l00009" name="l00009"></a> 9class cuda_host;

<a id="l00010" name="l00010"></a> 10typedef cuda_host RockyModel;

<a id="l00011" name="l00011"></a> 11 

<a id="l00012" name="l00012"></a> 12using rocky20::KnownTriangleScalars;

<a id="l00013" name="l00013"></a> 13 

<a id="l00014" name="l00014"></a> 14// =================================================================================================

<a id="l00015" name="l00015"></a> 15// IRockyTriangleScalarsModel

<a id="l00016" name="l00016"></a> 16// =================================================================================================

<a id="l00017" name="l00017"></a> 17 

<a id="l00025" name="l00025"></a>[ 25](structIRockyTriangleScalarsModel.xhtml)struct [IRockyTriangleScalarsModel](structIRockyTriangleScalarsModel.xhtml) : ScalarsModel&lt;rocky20::TriangleScalarsController&gt;

<a id="l00026" name="l00026"></a> 26{

<a id="l00027" name="l00027"></a> 27 

<a id="l00028" name="l00028"></a> 28\#ifdef ONLY\_FOR\_DOXYGEN

<a id="l00029" name="l00029"></a> 29 

<a id="l00031" name="l00031"></a>[ 31](structIRockyTriangleScalarsModel.xhtml#afc273a1e67e4995f848452fda3f71c31) int [find](structIRockyTriangleScalarsModel.xhtml#afc273a1e67e4995f848452fda3f71c31)(const char* name);

<a id="l00032" name="l00032"></a> 32 

<a id="l00034" name="l00034"></a> 34 int [add](structIRockyTriangleScalarsModel.xhtml#a41b8986cbde7d37e0946a3a8a8361d19)(const char* name, const char* unit, bool output = true);

<a id="l00035" name="l00035"></a> 35 

<a id="l00058" name="l00058"></a> 58 template &lt;class data_type&gt;

<a id="l00059" name="l00059"></a>[ 59](structIRockyTriangleScalarsModel.xhtml#ac3e84af17e0dfaea602eab3a7a888b83) int [add\_accumulation\_scalar](structIRockyTriangleScalarsModel.xhtml#ac3e84af17e0dfaea602eab3a7a888b83)(const char* name, const char* unit, bool output = true);

<a id="l00060" name="l00060"></a> 60 

<a id="l00062" name="l00062"></a>[ 62](structIRockyTriangleScalarsModel.xhtml#ae4f5d565ed2b3fa05b52f9274d542d69) void [reset](structIRockyTriangleScalarsModel.xhtml#ae4f5d565ed2b3fa05b52f9274d542d69)(int scalar_index);

<a id="l00063" name="l00063"></a> 63 

<a id="l00065" name="l00065"></a>[ 65](structIRockyTriangleScalarsModel.xhtml#aa02d862be5d91a62af18a1b1320286e7) void [set\_dimension](structIRockyTriangleScalarsModel.xhtml#aa02d862be5d91a62af18a1b1320286e7)(int scalar_index, double dimension_factor);

<a id="l00066" name="l00066"></a> 66 

<a id="l00067" name="l00067"></a> 67\#endif 

<a id="l00068" name="l00068"></a> 68 

<a id="l00077" name="l00077"></a> 77 void [enable\_storage\_of\_exchanged\_heat](structIRockyTriangleScalarsModel.xhtml#a01f4979062e25a0fb10b874f9f1f81d9)();

<a id="l00078" name="l00078"></a> 78 

<a id="l00087" name="l00087"></a> 87 void [reset\_exchanged\_heat](structIRockyTriangleScalarsModel.xhtml#abe794fd133422249549fad8c56fee6eb)();

<a id="l00088" name="l00088"></a> 88 

<a id="l00096" name="l00096"></a> 96 std::vector&lt;double&gt; [calculate\_sum\_over\_geometries](structIRockyTriangleScalarsModel.xhtml#acba5f06875d88bba1d66bd829c37fb52)(int scalar_index);

<a id="l00097" name="l00097"></a> 97 

<a id="l00107" name="l00107"></a> 107 void [pull\_scalar\_from\_devices](structIRockyTriangleScalarsModel.xhtml#a60ee5f18541c3104a7a286d244a5f896)(int scalar_index);

<a id="l00108" name="l00108"></a> 108 

<a id="l00115" name="l00115"></a> 115 void [push\_scalar\_to\_devices](structIRockyTriangleScalarsModel.xhtml#a1111ee6479b40ce1e086aec31c405e3e)(int scalar_index);

<a id="l00116" name="l00116"></a> 116 

<a id="l00119" name="l00119"></a> 119 [[deprecated("Use the ROCKY\_PLUGIN\_INITIALIZE\_TRIANGLE hook instead.")]]

<a id="l00120" name="l00120"></a> 120 void fill_with_geometry_values(int scalar_index, double* geometry_values);

<a id="l00121" name="l00121"></a> 121 

<a id="l00122" name="l00122"></a> 122 int [add](structIRockyTriangleScalarsModel.xhtml#a41b8986cbde7d37e0946a3a8a8361d19)(const char* name, const char* unit, bool output = true);

<a id="l00123" name="l00123"></a> 123 

<a id="l00124" name="l00124"></a> 124 template &lt;class data_type&gt;

<a id="l00125" name="l00125"></a> 125 int [add](structIRockyTriangleScalarsModel.xhtml#a41b8986cbde7d37e0946a3a8a8361d19)(const char* name, const char* unit, bool output = true)

<a id="l00126" name="l00126"></a> 126 {

<a id="l00127" name="l00127"></a> 127 return this-&gt;_impl.rocky20::TriangleScalarsController::template add_scalars&lt;data_type&gt;(

<a id="l00128" name="l00128"></a> 128 name, unit, rocky20::ScalarsInfo::cotIntegrated, output);

<a id="l00129" name="l00129"></a> 129 }

<a id="l00130" name="l00130"></a> 130 

<a id="l00131" name="l00131"></a> 131 template &lt;class data_type&gt;

<a id="l00132" name="l00132"></a> 132 int [add\_accumulation\_scalar](structIRockyTriangleScalarsModel.xhtml#ac3e84af17e0dfaea602eab3a7a888b83)(const char* name, const char* unit, bool output = true)

<a id="l00133" name="l00133"></a> 133 {

<a id="l00134" name="l00134"></a> 134 return this-&gt;_impl.rocky20::TriangleScalarsController::template add_scalars&lt;data_type&gt;(

<a id="l00135" name="l00135"></a> 135 name,

<a id="l00136" name="l00136"></a> 136 unit,

<a id="l00137" name="l00137"></a> 137 rocky20::ScalarsInfo::CollectiveOperationType::cotAccumulateOnDemand,

<a id="l00138" name="l00138"></a> 138 output);

<a id="l00139" name="l00139"></a> 139 }

<a id="l00140" name="l00140"></a> 140 

<a id="l00141" name="l00141"></a> 141 [IRockyTriangleScalarsModel](structIRockyTriangleScalarsModel.xhtml)(RockyModel *_model);

<a id="l00142" name="l00142"></a> 142 

<a id="l00143" name="l00143"></a> 143 RockyModel *model;

<a id="l00144" name="l00144"></a> 144 

<a id="l00146" name="l00146"></a> 146};



<a id="l00147" name="l00147"></a> 147 

<a id="l00148" name="l00148"></a> 148// =================================================================================================

<a id="l00149" name="l00149"></a> 149// IRockyTriangleScalars

<a id="l00150" name="l00150"></a> 150// =================================================================================================

<a id="l00151" name="l00151"></a> 151 

<a id="l00160" name="l00160"></a>[ 160](structIRockyTriangleScalars.xhtml)struct [IRockyTriangleScalars](structIRockyTriangleScalars.xhtml) : EntityScalars&lt;rocky20::TriangleScalars&gt;

<a id="l00161" name="l00161"></a> 161{

<a id="l00168" name="l00168"></a>[ 168](structIRockyTriangleScalars.xhtml#a05684b0ee2ad2ea56b3ed0d627d86cfe) ROCKY_FUNCTIONS inline double [get\_thermal\_conductivity](structIRockyTriangleScalars.xhtml#a05684b0ee2ad2ea56b3ed0d627d86cfe)() const

<a id="l00169" name="l00169"></a> 169 {

<a id="l00170" name="l00170"></a> 170 return this-&gt;get_known_scalar(KnownTriangleScalars::ThermalConductivity);

<a id="l00171" name="l00171"></a> 171 }



<a id="l00172" name="l00172"></a> 172 

<a id="l00180" name="l00180"></a>[ 180](structIRockyTriangleScalars.xhtml#adfb451a883a51e0e52bbb4fb304bdbee) ROCKY_FUNCTIONS inline void [set\_thermal\_conductivity](structIRockyTriangleScalars.xhtml#adfb451a883a51e0e52bbb4fb304bdbee)(const double value)

<a id="l00181" name="l00181"></a> 181 {

<a id="l00182" name="l00182"></a> 182 this-&gt;get_known_scalar(KnownTriangleScalars::ThermalConductivity) = value;

<a id="l00183" name="l00183"></a> 183 }



<a id="l00184" name="l00184"></a> 184 

<a id="l00191" name="l00191"></a>[ 191](structIRockyTriangleScalars.xhtml#ac72837182e4220fc58411bad8db38042) ROCKY_FUNCTIONS inline double [get\_poisson\_ratio](structIRockyTriangleScalars.xhtml#ac72837182e4220fc58411bad8db38042)() const

<a id="l00192" name="l00192"></a> 192 {

<a id="l00193" name="l00193"></a> 193 return this-&gt;get_known_scalar(KnownTriangleScalars::PoissonRatio);

<a id="l00194" name="l00194"></a> 194 }



<a id="l00195" name="l00195"></a> 195 

<a id="l00203" name="l00203"></a>[ 203](structIRockyTriangleScalars.xhtml#abc7a467e91fb2232868c27518c92c844) ROCKY_FUNCTIONS inline void [set\_poisson\_ratio](structIRockyTriangleScalars.xhtml#abc7a467e91fb2232868c27518c92c844)(const double value)

<a id="l00204" name="l00204"></a> 204 {

<a id="l00205" name="l00205"></a> 205 this-&gt;get_known_scalar(KnownTriangleScalars::PoissonRatio) = value;

<a id="l00206" name="l00206"></a> 206 }



<a id="l00207" name="l00207"></a> 207 

<a id="l00219" name="l00219"></a>[ 219](structIRockyTriangleScalars.xhtml#afaf1ed93d75a4a75ad38c31f675decc2) ROCKY_FUNCTIONS inline double [get\_exchanged\_heat](structIRockyTriangleScalars.xhtml#afaf1ed93d75a4a75ad38c31f675decc2)() const

<a id="l00220" name="l00220"></a> 220 {

<a id="l00221" name="l00221"></a> 221 return this-&gt;get_known_scalar(KnownTriangleScalars::HeatExchanged);

<a id="l00222" name="l00222"></a> 222 }



<a id="l00223" name="l00223"></a> 223 

<a id="l00224" name="l00224"></a> 224\#ifdef ONLY\_FOR\_DOXYGEN

<a id="l00225" name="l00225"></a> 225 

<a id="l00227" name="l00227"></a>[ 227](structIRockyTriangleScalars.xhtml#a27cf07c2dd9371c2b26106133266a327) ROCKY_FUNCTIONS double [get\_scalar](structIRockyTriangleScalars.xhtml#a27cf07c2dd9371c2b26106133266a327)(int scalar_index) const;

<a id="l00228" name="l00228"></a> 228 

<a id="l00230" name="l00230"></a>[ 230](structIRockyTriangleScalars.xhtml#a2882608ab8fdf75777d411400604e135) ROCKY_FUNCTIONS void [set\_scalar](structIRockyTriangleScalars.xhtml#a2882608ab8fdf75777d411400604e135)(int scalar_index, double value) const;

<a id="l00231" name="l00231"></a> 231 

<a id="l00233" name="l00233"></a>[ 233](structIRockyTriangleScalars.xhtml#ab9721444212bd5fe4e3af03fe3a70294) ROCKY_FUNCTIONS void [add\_scalar](structIRockyTriangleScalars.xhtml#ab9721444212bd5fe4e3af03fe3a70294)(int scalar_index, double value) const;

<a id="l00234" name="l00234"></a> 234 

<a id="l00236" name="l00236"></a>[ 236](structIRockyTriangleScalars.xhtml#a6d802b0828e406fd357377d8500625f5) ROCKY_FUNCTIONS void [max\_scalar](structIRockyTriangleScalars.xhtml#a6d802b0828e406fd357377d8500625f5)(int scalar_index, double value) const;

<a id="l00237" name="l00237"></a> 237 

<a id="l00238" name="l00238"></a> 238\#endif

<a id="l00239" name="l00239"></a> 239 

<a id="l00242" name="l00242"></a> 242 __host__ __device__

<a id="l00243" name="l00243"></a> 243 [IRockyTriangleScalars](structIRockyTriangleScalars.xhtml)(rocky20::TriangleScalars &amp;_scalars, int _element_index) :

<a id="l00244" name="l00244"></a> 244 EntityScalars&lt; rocky20::TriangleScalars&gt;(_scalars, _element_index)

<a id="l00245" name="l00245"></a> 245 {}

<a id="l00246" name="l00246"></a> 246 

<a id="l00248" name="l00248"></a> 248};



[IRockyTriangleScalarsModel](structIRockyTriangleScalarsModel.xhtml)

**Definition** rocky_triangle_scalars.hpp:26



[IRockyTriangleScalarsModel::enable\_storage\_of\_exchanged\_heat](structIRockyTriangleScalarsModel.xhtml#a01f4979062e25a0fb10b874f9f1f81d9)

void enable_storage_of_exchanged_heat()

**Definition** rocky_triangle_scalars.cpp:8



[IRockyTriangleScalarsModel::push\_scalar\_to\_devices](structIRockyTriangleScalarsModel.xhtml#a1111ee6479b40ce1e086aec31c405e3e)

void push_scalar_to_devices(int scalar_index)

**Definition** rocky_triangle_scalars.cpp:88



[IRockyTriangleScalarsModel::add](structIRockyTriangleScalarsModel.xhtml#a41b8986cbde7d37e0946a3a8a8361d19)

int add(const char *name, const char *unit, bool output=true)

**Definition** rocky_triangle_scalars.cpp:39



[IRockyTriangleScalarsModel::pull\_scalar\_from\_devices](structIRockyTriangleScalarsModel.xhtml#a60ee5f18541c3104a7a286d244a5f896)

void pull_scalar_from_devices(int scalar_index)

**Definition** rocky_triangle_scalars.cpp:79



[IRockyTriangleScalarsModel::set\_dimension](structIRockyTriangleScalarsModel.xhtml#aa02d862be5d91a62af18a1b1320286e7)

void set_dimension(int scalar_index, double dimension_factor)



[IRockyTriangleScalarsModel::reset\_exchanged\_heat](structIRockyTriangleScalarsModel.xhtml#abe794fd133422249549fad8c56fee6eb)

void reset_exchanged_heat()

**Definition** rocky_triangle_scalars.cpp:13



[IRockyTriangleScalarsModel::add\_accumulation\_scalar](structIRockyTriangleScalarsModel.xhtml#ac3e84af17e0dfaea602eab3a7a888b83)

int add_accumulation_scalar(const char *name, const char *unit, bool output=true)



[IRockyTriangleScalarsModel::calculate\_sum\_over\_geometries](structIRockyTriangleScalarsModel.xhtml#acba5f06875d88bba1d66bd829c37fb52)

std::vector&lt; double &gt; calculate_sum_over_geometries(int scalar_index)

**Definition** rocky_triangle_scalars.cpp:46



[IRockyTriangleScalarsModel::reset](structIRockyTriangleScalarsModel.xhtml#ae4f5d565ed2b3fa05b52f9274d542d69)

void reset(int scalar_index)



[IRockyTriangleScalarsModel::find](structIRockyTriangleScalarsModel.xhtml#afc273a1e67e4995f848452fda3f71c31)

int find(const char *name)



[IRockyTriangleScalars](structIRockyTriangleScalars.xhtml)

**Definition** rocky_triangle_scalars.hpp:161



[IRockyTriangleScalars::get\_thermal\_conductivity](structIRockyTriangleScalars.xhtml#a05684b0ee2ad2ea56b3ed0d627d86cfe)

ROCKY_FUNCTIONS double get_thermal_conductivity() const

**Definition** rocky_triangle_scalars.hpp:168



[IRockyTriangleScalars::get\_scalar](structIRockyTriangleScalars.xhtml#a27cf07c2dd9371c2b26106133266a327)

ROCKY_FUNCTIONS double get_scalar(int scalar_index) const



[IRockyTriangleScalars::set\_scalar](structIRockyTriangleScalars.xhtml#a2882608ab8fdf75777d411400604e135)

ROCKY_FUNCTIONS void set_scalar(int scalar_index, double value) const



[IRockyTriangleScalars::max\_scalar](structIRockyTriangleScalars.xhtml#a6d802b0828e406fd357377d8500625f5)

ROCKY_FUNCTIONS void max_scalar(int scalar_index, double value) const



[IRockyTriangleScalars::add\_scalar](structIRockyTriangleScalars.xhtml#ab9721444212bd5fe4e3af03fe3a70294)

ROCKY_FUNCTIONS void add_scalar(int scalar_index, double value) const



[IRockyTriangleScalars::set\_poisson\_ratio](structIRockyTriangleScalars.xhtml#abc7a467e91fb2232868c27518c92c844)

ROCKY_FUNCTIONS void set_poisson_ratio(const double value)

**Definition** rocky_triangle_scalars.hpp:203



[IRockyTriangleScalars::get\_poisson\_ratio](structIRockyTriangleScalars.xhtml#ac72837182e4220fc58411bad8db38042)

ROCKY_FUNCTIONS double get_poisson_ratio() const

**Definition** rocky_triangle_scalars.hpp:191



[IRockyTriangleScalars::set\_thermal\_conductivity](structIRockyTriangleScalars.xhtml#adfb451a883a51e0e52bbb4fb304bdbee)

ROCKY_FUNCTIONS void set_thermal_conductivity(const double value)

**Definition** rocky_triangle_scalars.hpp:180



[IRockyTriangleScalars::get\_exchanged\_heat](structIRockyTriangleScalars.xhtml#afaf1ed93d75a4a75ad38c31f675decc2)

ROCKY_FUNCTIONS double get_exchanged_heat() const

**Definition** rocky_triangle_scalars.hpp:219