    

 ## On this page

  

 

 # rocky\_triangle\_scalars

 Last update: 17.07.2025 

<a id="l00001" name="l00001"></a> 1\#pragma once

<a id="l00002" name="l00002"></a> 2 

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

<a id="l00004" name="l00004"></a> 4\#include "rocky\_scalars.h"

<a id="l00005" name="l00005"></a> 5 

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

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

<a id="l00008" name="l00008"></a> 8class cuda_host;

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

<a id="l00010" name="l00010"></a> 10 

<a id="l00011" name="l00011"></a> 11using rocky20::KnownTriangleScalars;

<a id="l00012" name="l00012"></a> 12 

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

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

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

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

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

<a id="l00025" name="l00025"></a> 25{

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

<a id="l00027" name="l00027"></a> 27\#ifdef ONLY\_FOR\_DOXYGEN

<a id="l00028" name="l00028"></a> 28 

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

<a id="l00031" name="l00031"></a> 31 

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

<a id="l00034" name="l00034"></a> 34 

<a id="l00057" name="l00057"></a> 57 template &lt;class data_type&gt;

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

<a id="l00059" name="l00059"></a> 59 

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

<a id="l00062" name="l00062"></a> 62 

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

<a id="l00065" name="l00065"></a> 65 

<a id="l00066" name="l00066"></a> 66\#endif 

<a id="l00067" name="l00067"></a> 67 

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

<a id="l00077" name="l00077"></a> 77 

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

<a id="l00087" name="l00087"></a> 87 

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

<a id="l00096" name="l00096"></a> 96 

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

<a id="l00107" name="l00107"></a> 107 

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

<a id="l00115" name="l00115"></a> 115 

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

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

<a id="l00120" name="l00120"></a> 120 

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

<a id="l00122" name="l00122"></a> 122 

<a id="l00123" name="l00123"></a> 123 template &lt;class data_type&gt;

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

<a id="l00125" name="l00125"></a> 125 {

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

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

<a id="l00128" name="l00128"></a> 128 }

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

<a id="l00130" name="l00130"></a> 130 template &lt;class data_type&gt;

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

<a id="l00132" name="l00132"></a> 132 {

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

<a id="l00134" name="l00134"></a> 134 name,

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

<a id="l00136" name="l00136"></a> 136 rocky20::ScalarsInfo::CollectiveOperationType::cotAccumulateOnDemand,

<a id="l00137" name="l00137"></a> 137 output);

<a id="l00138" name="l00138"></a> 138 }

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

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

<a id="l00141" name="l00141"></a> 141 

<a id="l00142" name="l00142"></a> 142 RockyModel *model;

<a id="l00143" name="l00143"></a> 143 

<a id="l00145" name="l00145"></a> 145};



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

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

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

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

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

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

<a id="l00160" name="l00160"></a> 160{

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

<a id="l00168" name="l00168"></a> 168 {

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

<a id="l00170" name="l00170"></a> 170 }



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

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

<a id="l00180" name="l00180"></a> 180 {

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

<a id="l00182" name="l00182"></a> 182 }



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

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

<a id="l00191" name="l00191"></a> 191 {

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

<a id="l00193" name="l00193"></a> 193 }



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

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

<a id="l00203" name="l00203"></a> 203 {

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

<a id="l00205" name="l00205"></a> 205 }



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

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

<a id="l00219" name="l00219"></a> 219 {

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

<a id="l00221" name="l00221"></a> 221 }



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

<a id="l00223" name="l00223"></a> 223\#ifdef ONLY\_FOR\_DOXYGEN

<a id="l00224" name="l00224"></a> 224 

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

<a id="l00227" name="l00227"></a> 227 

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

<a id="l00230" name="l00230"></a> 230 

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

<a id="l00233" name="l00233"></a> 233 

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

<a id="l00236" name="l00236"></a> 236 

<a id="l00237" name="l00237"></a> 237\#endif

<a id="l00238" name="l00238"></a> 238 

<a id="l00241" name="l00241"></a> 241 __host__ __device__

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

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

<a id="l00244" name="l00244"></a> 244 {}

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

<a id="l00247" name="l00247"></a> 247};



[IRockyTriangleScalarsModel](structIRockyTriangleScalarsModel.xhtml)

**Definition** rocky_triangle_scalars.hpp:25



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

void enable_storage_of_exchanged_heat()

**Definition** rocky_triangle_scalars.cpp:7



[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:38



[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:12



[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:45



[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:160



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

ROCKY_FUNCTIONS double get_thermal_conductivity() const

**Definition** rocky_triangle_scalars.hpp:167



[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:202



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

ROCKY_FUNCTIONS double get_poisson_ratio() const

**Definition** rocky_triangle_scalars.hpp:190



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

ROCKY_FUNCTIONS void set_thermal_conductivity(const double value)

**Definition** rocky_triangle_scalars.hpp:179



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

ROCKY_FUNCTIONS double get_exchanged_heat() const

**Definition** rocky_triangle_scalars.hpp:218