    

 ## On this page

  

 

 # test\_dvs\_client

 Last update: 16.07.2025 

[Go to the documentation of this file.](test__dvs__client_8c.xhtml)<a id="l00001" name="l00001"></a> 1/\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

<a id="l00002" name="l00002"></a> 2 \* Copyright 2017-2024 ANSYS, Inc.

<a id="l00003" name="l00003"></a> 3 \* All Rights Reserved.

<a id="l00004" name="l00004"></a> 4 \*

<a id="l00005" name="l00005"></a> 5 \* Restricted Rights Legend

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

<a id="l00007" name="l00007"></a> 7 \* Use, duplication, or disclosure of this

<a id="l00008" name="l00008"></a> 8 \* software and its documentation by the

<a id="l00009" name="l00009"></a> 9 \* Government is subject to restrictions as

<a id="l00010" name="l00010"></a> 10 \* set forth in subdivision \[(b)(3)(ii)\] of

<a id="l00011" name="l00011"></a> 11 \* the Rights in Technical Data and Computer

<a id="l00012" name="l00012"></a> 12 \* Software clause at 52.227-7013.

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

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

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

<a id="l00024" name="l00024"></a> 24\#include &lt;stdio.h&gt;

<a id="l00025" name="l00025"></a> 25\#include &lt;stdlib.h&gt;

<a id="l00026" name="l00026"></a> 26\#include &lt;string.h&gt;

<a id="l00027" name="l00027"></a> 27\#include &lt;stdint.h&gt;

<a id="l00028" name="l00028"></a> 28\#include &lt;stdarg.h&gt;

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

<a id="l00030" name="l00030"></a> 30\#include "[dynamic\_visualization\_store\_api.h](dynamic__visualization__store__api_8h.xhtml)"

<a id="l00031" name="l00031"></a> 31\#include "[dynamic\_visualization\_store\_enums.h](dynamic__visualization__store__enums_8h.xhtml)"

<a id="l00032" name="l00032"></a> 32\#include "test\_dynamic\_data.h"

<a id="l00033" name="l00033"></a> 33 

<a id="l00034" name="l00034"></a> 34\#ifdef \_WIN32

<a id="l00035" name="l00035"></a> 35\#include &lt;Windows.h&gt;

<a id="l00036" name="l00036"></a> 36\#else

<a id="l00037" name="l00037"></a> 37\#include &lt;unistd.h&gt;

<a id="l00038" name="l00038"></a> 38\#endif

<a id="l00039" name="l00039"></a> 39 

<a id="l00040" name="l00040"></a> 40\#ifndef M\_PI

<a id="l00041" name="l00041"></a> 41\# define M\_PI 3.141592653589793238462643383279502884

<a id="l00042" name="l00042"></a> 42\#endif

<a id="l00043" name="l00043"></a> 43 

<a id="l00044" name="l00044"></a> 44static void logging_function(void* user_data, const char* message)

<a id="l00045" name="l00045"></a> 45{

<a id="l00046" name="l00046"></a> 46 fprintf(stderr, message);

<a id="l00047" name="l00047"></a> 47}

<a id="l00048" name="l00048"></a> 48 

<a id="l00056" name="l00056"></a>[ 56](test__dvs__client_8c.xhtml#a3c04138a5bfe5d72780bb7e82a18e627)int [main](test__dvs__client_8c.xhtml#a3c04138a5bfe5d72780bb7e82a18e627)(int argc, char** argv)

<a id="l00057" name="l00057"></a> 57{

<a id="l00058" name="l00058"></a> 58 uint32_t port = 50055;

<a id="l00059" name="l00059"></a> 59 uint32_t msec_delay = 0;

<a id="l00060" name="l00060"></a> 60 char host[512] = {0};

<a id="l00061" name="l00061"></a> 61 strcpy(host, "127.0.0.1");

<a id="l00062" name="l00062"></a> 62 char protocol[10] = {0};

<a id="l00063" name="l00063"></a> 63 strcpy(protocol, "grpc");

<a id="l00064" name="l00064"></a> 64 uint32_t width = 50;

<a id="l00065" name="l00065"></a> 65 uint32_t height = 50;

<a id="l00066" name="l00066"></a> 66 uint32_t depth = 50;

<a id="l00067" name="l00067"></a> 67 uint32_t max_timesteps = 10;

<a id="l00068" name="l00068"></a> 68 uint32_t current_rank = 0;

<a id="l00069" name="l00069"></a> 69 uint32_t total_ranks = 1;

<a id="l00070" name="l00070"></a> 70 uint8_t create_ghosts = 1;

<a id="l00071" name="l00071"></a> 71 uint8_t block_for_server = 1;

<a id="l00072" name="l00072"></a> 72 uint8_t block_for_reinit = 1;

<a id="l00073" name="l00073"></a> 73 uint32_t starting_timestep = 0;

<a id="l00074" name="l00074"></a> 74 uint32_t dedup = 1;

<a id="l00075" name="l00075"></a> 75 uint32_t send_structured_parts = 0;

<a id="l00076" name="l00076"></a> 76 char dataset_id[255] = {0};

<a id="l00077" name="l00077"></a> 77 strcpy(dataset_id, "Test-C-API");

<a id="l00078" name="l00078"></a> 78 char secret[255] = {0};

<a id="l00079" name="l00079"></a> 79 uint32_t plot_rank = 0;

<a id="l00080" name="l00080"></a> 80 uint32_t server_number = 0;

<a id="l00081" name="l00081"></a> 81 uint32_t server_verbosity = 0;

<a id="l00082" name="l00082"></a> 82 uint32_t local_ranks = 0;

<a id="l00083" name="l00083"></a> 83 uint32_t all_defs = 0;

<a id="l00084" name="l00084"></a> 84 char cache_uri[512] = {0};

<a id="l00085" name="l00085"></a> 85 uint32_t log_all = 0;

<a id="l00086" name="l00086"></a> 86 uint32_t debug_wait = 0;

<a id="l00087" name="l00087"></a> 87 uint32_t start_server = 0;

<a id="l00088" name="l00088"></a> 88 uint32_t test_reinit = 0;

<a id="l00089" name="l00089"></a> 89 uint32_t reinit_parts = 0;

<a id="l00090" name="l00090"></a> 90 uint32_t reinit_plots = 0;

<a id="l00091" name="l00091"></a> 91 uint32_t reinit_vars = 0;

<a id="l00092" name="l00092"></a> 92 uint32_t time_period = 0;

<a id="l00093" name="l00093"></a> 93 uint32_t test_iblanking = 0;

<a id="l00094" name="l00094"></a> 94 char dvs_file_loc[1024] = {0};

<a id="l00095" name="l00095"></a> 95 uint32_t test_delete = 0;

<a id="l00096" name="l00096"></a> 96 uint32_t rm_int64 = 0;

<a id="l00097" name="l00097"></a> 97 uint32_t generate_rbm = 0;

<a id="l00098" name="l00098"></a> 98 

<a id="l00099" name="l00099"></a> 99 uint32_t i = 1;

<a id="l00100" name="l00100"></a> 100 while (i &lt; argc)

<a id="l00101" name="l00101"></a> 101 {

<a id="l00102" name="l00102"></a> 102 if ((strcmp(argv[i], "-p") == 0 ) &amp;&amp; (i &lt; argc - 1))

<a id="l00103" name="l00103"></a> 103 {

<a id="l00104" name="l00104"></a> 104 i++;

<a id="l00105" name="l00105"></a> 105 port = atoi(argv[i]);

<a id="l00106" name="l00106"></a> 106 }

<a id="l00107" name="l00107"></a> 107 else if ((strcmp(argv[i], "-h") == 0) &amp;&amp; (i &lt; argc - 1))

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

<a id="l00109" name="l00109"></a> 109 i++;

<a id="l00110" name="l00110"></a> 110 strncpy(host, argv[i], sizeof(host)-1);

<a id="l00111" name="l00111"></a> 111 }

<a id="l00112" name="l00112"></a> 112 else if ((strcmp(argv[i], "-protocol") == 0) &amp;&amp; (i &lt; argc - 1))

<a id="l00113" name="l00113"></a> 113 {

<a id="l00114" name="l00114"></a> 114 i++;

<a id="l00115" name="l00115"></a> 115 strncpy(protocol, argv[i], sizeof(protocol)-1);

<a id="l00116" name="l00116"></a> 116 if (strcmp(protocol, "grpc") != 0 &amp;&amp; strcmp(protocol, "null") != 0 )

<a id="l00117" name="l00117"></a> 117 {

<a id="l00118" name="l00118"></a> 118 fprintf(stderr, "protocol: %s invalid\\n", protocol);

<a id="l00119" name="l00119"></a> 119 exit(1);

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

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

<a id="l00122" name="l00122"></a> 122 else if ((strcmp(argv[i], "-d") == 0) &amp;&amp; (i &lt; argc - 1))

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

<a id="l00124" name="l00124"></a> 124 i++;

<a id="l00125" name="l00125"></a> 125 msec_delay = atoi(argv[i]);

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

<a id="l00127" name="l00127"></a> 127 else if ((strcmp(argv[i], "-s") == 0) &amp;&amp; (i &lt; argc - 3))

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

<a id="l00129" name="l00129"></a> 129 i++;

<a id="l00130" name="l00130"></a> 130 width = atoi(argv[i++]);

<a id="l00131" name="l00131"></a> 131 height = atoi(argv[i++]);

<a id="l00132" name="l00132"></a> 132 depth = atoi(argv[i]);

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

<a id="l00134" name="l00134"></a> 134 else if ((strcmp(argv[i], "-t") == 0) &amp;&amp; (i &lt; argc - 1))

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

<a id="l00136" name="l00136"></a> 136 i++;

<a id="l00137" name="l00137"></a> 137 max_timesteps = atoi(argv[i]);

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

<a id="l00139" name="l00139"></a> 139 else if ((strcmp(argv[i], "-r") == 0) &amp;&amp; (i &lt; argc - 2))

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

<a id="l00141" name="l00141"></a> 141 i++;

<a id="l00142" name="l00142"></a> 142 current_rank = atoi(argv[i++]);

<a id="l00143" name="l00143"></a> 143 total_ranks = atoi(argv[i]);

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

<a id="l00145" name="l00145"></a> 145 else if (strcmp(argv[i], "-noghost") == 0)

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

<a id="l00147" name="l00147"></a> 147 create_ghosts = 0;

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

<a id="l00149" name="l00149"></a> 149 else if (strcmp(argv[i], "-nowait") == 0)

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

<a id="l00151" name="l00151"></a> 151 block_for_server = 0;

<a id="l00152" name="l00152"></a> 152 }

<a id="l00153" name="l00153"></a> 153 else if(strcmp(argv[i], "-generate\_rbm") == 0){

<a id="l00154" name="l00154"></a> 154 generate_rbm = 1;

<a id="l00155" name="l00155"></a> 155 }

<a id="l00156" name="l00156"></a> 156 else if ((strcmp(argv[i], "-start") == 0) &amp;&amp; (i &lt; argc - 1))

<a id="l00157" name="l00157"></a> 157 {

<a id="l00158" name="l00158"></a> 158 i++;

<a id="l00159" name="l00159"></a> 159 starting_timestep = atoi(argv[i]);

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

<a id="l00161" name="l00161"></a> 161 else if (strcmp(argv[i], "-nodedup") == 0)

<a id="l00162" name="l00162"></a> 162 {

<a id="l00163" name="l00163"></a> 163 dedup = 0;

<a id="l00164" name="l00164"></a> 164 }

<a id="l00165" name="l00165"></a> 165 else if (strcmp(argv[i], "-id") == 0)

<a id="l00166" name="l00166"></a> 166 {

<a id="l00167" name="l00167"></a> 167 i++;

<a id="l00168" name="l00168"></a> 168 memset(dataset_id, 0, 255);

<a id="l00169" name="l00169"></a> 169 strncpy(dataset_id, argv[i], sizeof(dataset_id)-1);

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

<a id="l00171" name="l00171"></a> 171 else if (strcmp(argv[i], "-secret") == 0)

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

<a id="l00173" name="l00173"></a> 173 i++;

<a id="l00174" name="l00174"></a> 174 strncpy(secret, argv[i], sizeof(secret)-1);

<a id="l00175" name="l00175"></a> 175 }

<a id="l00176" name="l00176"></a> 176 else if (strcmp(argv[i], "-structured") == 0)

<a id="l00177" name="l00177"></a> 177 {

<a id="l00178" name="l00178"></a> 178 send_structured_parts = 1;

<a id="l00179" name="l00179"></a> 179 }

<a id="l00180" name="l00180"></a> 180 else if (strcmp(argv[i], "-iblank") == 0)

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

<a id="l00182" name="l00182"></a> 182 test_iblanking = 1;

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

<a id="l00184" name="l00184"></a> 184 else if (strcmp(argv[i], "-plot\_rank") == 0)

<a id="l00185" name="l00185"></a> 185 {

<a id="l00186" name="l00186"></a> 186 i++;

<a id="l00187" name="l00187"></a> 187 plot_rank = atoi(argv[i]);

<a id="l00188" name="l00188"></a> 188 }

<a id="l00189" name="l00189"></a> 189 else if (strcmp(argv[i], "-server") == 0 &amp;&amp; (i &lt; argc - 3))

<a id="l00190" name="l00190"></a> 190 {

<a id="l00191" name="l00191"></a> 191 i++;

<a id="l00192" name="l00192"></a> 192 start_server = 1;

<a id="l00193" name="l00193"></a> 193 server_number = atoi(argv[i++]);

<a id="l00194" name="l00194"></a> 194 local_ranks = atoi(argv[i++]);

<a id="l00195" name="l00195"></a> 195 server_verbosity = atoi(argv[i]);

<a id="l00196" name="l00196"></a> 196 }

<a id="l00197" name="l00197"></a> 197 else if (strcmp(argv[i], "-cache\_uri") == 0)

<a id="l00198" name="l00198"></a> 198 {

<a id="l00199" name="l00199"></a> 199 i++;

<a id="l00200" name="l00200"></a> 200 strncpy(cache_uri, argv[i], sizeof(cache_uri)-1);

<a id="l00201" name="l00201"></a> 201 }

<a id="l00202" name="l00202"></a> 202 else if (strcmp(argv[i], "-all\_defs") == 0)

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

<a id="l00204" name="l00204"></a> 204 all_defs = 1;

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

<a id="l00206" name="l00206"></a> 206 else if (strcmp(argv[i], "-log\_all") == 0)

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

<a id="l00208" name="l00208"></a> 208 log_all = 1;

<a id="l00209" name="l00209"></a> 209 }

<a id="l00210" name="l00210"></a> 210 else if (strcmp(argv[i], "-debug\_wait") == 0)

<a id="l00211" name="l00211"></a> 211 {

<a id="l00212" name="l00212"></a> 212 i++;

<a id="l00213" name="l00213"></a> 213 debug_wait = atoi(argv[i]);

<a id="l00214" name="l00214"></a> 214 }

<a id="l00215" name="l00215"></a> 215 else if (strcmp(argv[i], "-reinit\_vars") == 0)

<a id="l00216" name="l00216"></a> 216 {

<a id="l00217" name="l00217"></a> 217 test_reinit = 1;

<a id="l00218" name="l00218"></a> 218 reinit_vars = 1;

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

<a id="l00220" name="l00220"></a> 220 else if (strcmp(argv[i], "-reinit\_parts") == 0)

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

<a id="l00222" name="l00222"></a> 222 test_reinit = 1;

<a id="l00223" name="l00223"></a> 223 reinit_parts = 1;

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

<a id="l00225" name="l00225"></a> 225 else if (strcmp(argv[i], "-reinit\_plots") == 0)

<a id="l00226" name="l00226"></a> 226 {

<a id="l00227" name="l00227"></a> 227 test_reinit = 1;

<a id="l00228" name="l00228"></a> 228 reinit_plots = 1;

<a id="l00229" name="l00229"></a> 229 }

<a id="l00230" name="l00230"></a> 230 else if (strcmp(argv[i], "-reinit\_all") == 0)

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

<a id="l00232" name="l00232"></a> 232 test_reinit = 1;

<a id="l00233" name="l00233"></a> 233 reinit_parts = 1;

<a id="l00234" name="l00234"></a> 234 reinit_vars = 1;

<a id="l00235" name="l00235"></a> 235 reinit_plots = 1;

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

<a id="l00237" name="l00237"></a> 237 else if (strcmp(argv[i], "-time\_period") == 0)

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

<a id="l00239" name="l00239"></a> 239 i++;

<a id="l00240" name="l00240"></a> 240 time_period = atoi(argv[i]);

<a id="l00241" name="l00241"></a> 241 }

<a id="l00242" name="l00242"></a> 242 else if (strcmp(argv[i], "-dvs\_file") == 0)

<a id="l00243" name="l00243"></a> 243 {

<a id="l00244" name="l00244"></a> 244 i++;

<a id="l00245" name="l00245"></a> 245 strncpy(dvs_file_loc, argv[i], sizeof(dvs_file_loc)-1);

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

<a id="l00247" name="l00247"></a> 247 else if (strcmp(argv[i], "-test\_delete") == 0)

<a id="l00248" name="l00248"></a> 248 {

<a id="l00249" name="l00249"></a> 249 test_delete = 1;

<a id="l00250" name="l00250"></a> 250 }

<a id="l00251" name="l00251"></a> 251 else if (strcmp(argv[i], "-rm\_int64") == 0)

<a id="l00252" name="l00252"></a> 252 {

<a id="l00253" name="l00253"></a> 253 rm_int64 = 1;

<a id="l00254" name="l00254"></a> 254 }

<a id="l00255" name="l00255"></a> 255 else

<a id="l00256" name="l00256"></a> 256 {

<a id="l00257" name="l00257"></a> 257 fprintf(stderr, "Unknown option: %s\\n", argv[i]);

<a id="l00258" name="l00258"></a> 258 fprintf(stderr, "Usage: %s \[-p port\] \[-h host\] \[-d msec\_delay\] \[-t num\_timesteps\] \[-s dx dy dz\] \[-noghost\] \[-nowait\] \[-start t\]\\n", argv[0]);

<a id="l00259" name="l00259"></a> 259 fprintf(stderr, "Options:\\n");

<a id="l00260" name="l00260"></a> 260 fprintf(stderr, " -t timesteps Number of timesteps to generate. Default: %u\\n", max_timesteps);

<a id="l00261" name="l00261"></a> 261 fprintf(stderr, " -p port Server port to connect to. Default: %u\\n", port);

<a id="l00262" name="l00262"></a> 262 fprintf(stderr, " -h host Server hostname to connect to. Default: %s\\n", host);

<a id="l00263" name="l00263"></a> 263 fprintf(stderr, " -protocol str Server protocol. I.E. grpc or null. Default: grpc");

<a id="l00264" name="l00264"></a> 264 fprintf(stderr, " -d delay Number of milliseconds to delay between timestep pushes. Default: %u\\n", msec_delay);

<a id="l00265" name="l00265"></a> 265 fprintf(stderr, " -s dx dy dz Size of 3D hex grid (width height depth) Default: %u %u %u\\n", width, height, depth);

<a id="l00266" name="l00266"></a> 266 fprintf(stderr, " -r x y Rank information x=current rank (0 based), y=total number of ranks. Default: %u %u\\n", current_rank, total_ranks);

<a id="l00267" name="l00267"></a> 267 fprintf(stderr, " -noghost Do not create ghost elements\\n");

<a id="l00268" name="l00268"></a> 268 fprintf(stderr, " -nowait Do not wait for server to be available\\n");

<a id="l00269" name="l00269"></a> 269 fprintf(stderr, " -start t Begin timesteps with timestep Default: %u\\n", starting_timestep);

<a id="l00270" name="l00270"></a> 270 fprintf(stderr, " -nodedup Do not de-duplicate data on the client side Default: deduplicate\\n");

<a id="l00271" name="l00271"></a> 271 fprintf(stderr, " -id string Set an id/name for the dataset Default: TestID\\n");

<a id="l00272" name="l00272"></a> 272 fprintf(stderr, " -secret string Shared secret to use when talking with server Default: no shared secret\\n");

<a id="l00273" name="l00273"></a> 273 fprintf(stderr, " -structured Turn on sending structured part data Default: Don't send structured part data\\n");

<a id="l00274" name="l00274"></a> 274 fprintf(stderr, " -plot\_rank Set the rank which should send plot data to EnSight (zero based) Default: %u\\n", plot_rank);

<a id="l00275" name="l00275"></a> 275 fprintf(stderr, " -server n r v Start a server using server number \[n\], expecting \[r\] local ranks for DVS connections to connect to with verbosity \[v\]. Local Rank Min/Max: 1/1000\\n");

<a id="l00276" name="l00276"></a> 276 fprintf(stderr, " -cache\_uri str The URI for the server to use for the cache. Default: No cache\\n");

<a id="l00277" name="l00277"></a> 277 fprintf(stderr, " -all\_defs Send all part/var definitions no matter the current rank. Default: No\\n");

<a id="l00278" name="l00278"></a> 278 fprintf(stderr, " -log\_all Print out all client logging information\\n. Default: No client logs");

<a id="l00279" name="l00279"></a> 279 fprintf(stderr, " -debug\_wait ms Wait for \[ms\] for debugging\\n");

<a id="l00280" name="l00280"></a> 280 fprintf(stderr, " -reinit\_vars Test reinit vars\\n");

<a id="l00281" name="l00281"></a> 281 fprintf(stderr, " -reinit\_parts Test reinit parts\\n");

<a id="l00282" name="l00282"></a> 282 fprintf(stderr, " -reinit\_plots Test reinit plots\\n");

<a id="l00283" name="l00283"></a> 283 fprintf(stderr, " -reinit\_all Test all reinit\\n");

<a id="l00284" name="l00284"></a> 284 fprintf(stderr, " -time\_period p Set modulus for time value to test timestep overwrite\\n");

<a id="l00285" name="l00285"></a> 285 fprintf(stderr, " -dvs\_file str Set a location for the dvs files to be created Default :./\\n");

<a id="l00286" name="l00286"></a> 286 fprintf(stderr, " -test\_delete Test deleting all timesteps before each update Default: Do not test\\n");

<a id="l00287" name="l00287"></a> 287 fprintf(stderr, " -rm\_int64 Eliminate int64");

<a id="l00288" name="l00288"></a> 288 fprintf(stderr, " -generate\_rbm Generate test rigid body motion");

<a id="l00289" name="l00289"></a> 289 exit(1);

<a id="l00290" name="l00290"></a> 290 }

<a id="l00291" name="l00291"></a> 291 i++;

<a id="l00292" name="l00292"></a> 292 }

<a id="l00293" name="l00293"></a> 293 

<a id="l00294" name="l00294"></a> 294 if (debug_wait &gt; 0)

<a id="l00295" name="l00295"></a> 295 {

<a id="l00296" name="l00296"></a> 296 #ifdef \_WIN32

<a id="l00297" name="l00297"></a> 297 Sleep(debug_wait);

<a id="l00298" name="l00298"></a> 298 #else

<a id="l00299" name="l00299"></a> 299 usleep(debug_wait*1000);

<a id="l00300" name="l00300"></a> 300 #endif

<a id="l00301" name="l00301"></a> 301 }

<a id="l00302" name="l00302"></a> 302 

<a id="l00303" name="l00303"></a> 303 fprintf(stderr, "Current Library Version: %s\\n", [dvs\_get\_version](dynamic__visualization__store__api_8h.xhtml#ab8e85aad9b7ec78976db76017803a6b6)());

<a id="l00304" name="l00304"></a> 304 char uri[512] = {0};

<a id="l00305" name="l00305"></a> 305 sprintf(uri, "%s://%s:%u", protocol, host, port);

<a id="l00306" name="l00306"></a> 306 fprintf(stderr, "Connecting to: %s\\n", uri);

<a id="l00307" name="l00307"></a> 307 fprintf(stderr, "Timestep delay: %u\\n", msec_delay);

<a id="l00308" name="l00308"></a> 308 

<a id="l00309" name="l00309"></a> 309 uint32_t send_vars = 1;

<a id="l00310" name="l00310"></a> 310 uint32_t send_elems = 1;

<a id="l00311" name="l00311"></a> 311 uint32_t send_hex_elems = 1;

<a id="l00312" name="l00312"></a> 312 uint32_t send_nfaced_elems = 1;

<a id="l00313" name="l00313"></a> 313 uint32_t send_pnt_elems = 1;

<a id="l00314" name="l00314"></a> 314 uint32_t send_tri_quad_elems = 1;

<a id="l00315" name="l00315"></a> 315 uint32_t send_nsided_elems = 0;

<a id="l00316" name="l00316"></a> 316 uint32_t send_plots = 1;

<a id="l00317" name="l00317"></a> 317 

<a id="l00318" name="l00318"></a> 318 enum [dvs\_client\_flags](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9f) flags;

<a id="l00319" name="l00319"></a> 319 if (block_for_server) flags |= [BLOCK\_FOR\_SERVER](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9fa9feb185df8061416aa9a23b0150dc821);

<a id="l00320" name="l00320"></a> 320 if (dedup) flags |= [DEDUP](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9fa81b113ffc96eb6d968a19950727c0ff9);

<a id="l00321" name="l00321"></a> 321 if (block_for_reinit) flags |= [BEGIN\_INIT\_WAIT\_ON\_REINIT](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9fa825692bac2ef9eae4260a063ccf6322c);

<a id="l00322" name="l00322"></a> 322 

<a id="l00323" name="l00323"></a> 323 fprintf(stderr, "Client Flags: Blocking: %d, Dedup: %u\\n", ([BLOCK\_FOR\_SERVER](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9fa9feb185df8061416aa9a23b0150dc821) &amp; flags) &gt; 0, ([DEDUP](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9fa81b113ffc96eb6d968a19950727c0ff9) &amp; flags) &gt; 0);

<a id="l00324" name="l00324"></a> 324 

<a id="l00325" name="l00325"></a> 325 int32_t server_id = -1;

<a id="l00326" name="l00326"></a> 326 [dvs\_server\_create](dynamic__visualization__store__api_8h.xhtml#a06196ff56fe7f270172239c1be4ce0cd)(uri, &amp;server_id);

<a id="l00327" name="l00327"></a> 327 if (start_server)

<a id="l00328" name="l00328"></a> 328 {

<a id="l00329" name="l00329"></a> 329 //The below calls are only needed if creating the server locally in this process

<a id="l00330" name="l00330"></a> 330 char temp[10];

<a id="l00331" name="l00331"></a> 331 snprintf(temp, 10, "%u", server_verbosity);

<a id="l00332" name="l00332"></a> 332 [dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)(server_id, "VERBOSE",temp);

<a id="l00333" name="l00333"></a> 333 if (strlen(cache_uri) &gt; 0) [dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)(server_id, "CACHE\_URI",cache_uri);

<a id="l00334" name="l00334"></a> 334 if (strlen(dvs_file_loc) &gt; 0) [dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)(server_id, "DVS\_FILE\_LOCATION", dvs_file_loc);

<a id="l00335" name="l00335"></a> 335 if (strlen(secret) &gt; 0) [dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)(server_id, "SERVER\_SECURITY\_SECRET", secret);

<a id="l00336" name="l00336"></a> 336 //Non-default values to make sure they are being set

<a id="l00337" name="l00337"></a> 337 [dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)(server_id, "GRPC\_MAX\_NUM\_RETRIES", "2");

<a id="l00338" name="l00338"></a> 338 [dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)(server_id, "GRPC\_BACKOFF\_MIN\_MS", "120");

<a id="l00339" name="l00339"></a> 339 [dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)(server_id, "GRPC\_BACKOFF\_MAX\_MS", "300");

<a id="l00340" name="l00340"></a> 340 [dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)(server_id, "GRPC\_BACKOFF\_LINEAR\_MS", "150");

<a id="l00341" name="l00341"></a> 341 [dvs\_server\_start](dynamic__visualization__store__api_8h.xhtml#aa5722a5316ee73bdd998c9a327e8cb3d)(server_id, server_number, local_ranks);

<a id="l00342" name="l00342"></a> 342 [dvs\_ret](dynamic__visualization__store__error__codes_8h.xhtml#a1d7466ae72e89fe36cbf2408b4f7d9c1) err = [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7);

<a id="l00343" name="l00343"></a> 343 uint32_t uri_size = 0;

<a id="l00344" name="l00344"></a> 344 err = [dvs\_server\_get\_uri](dynamic__visualization__store__api_8h.xhtml#a11887bd000ddab30ababc765e244b094)(server_id, NULL, &amp;uri_size);

<a id="l00345" name="l00345"></a> 345 if (err == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) &amp;&amp; uri_size &gt; 0){

<a id="l00346" name="l00346"></a> 346 char* my_uri = (char*)malloc (uri_size * sizeof(char));

<a id="l00347" name="l00347"></a> 347 [dvs\_server\_get\_uri](dynamic__visualization__store__api_8h.xhtml#a11887bd000ddab30ababc765e244b094)(server_id, my_uri, &amp;uri_size);

<a id="l00348" name="l00348"></a> 348 fprintf(stderr, "The URI for the server is: %s\\n", my_uri);

<a id="l00349" name="l00349"></a> 349 free(my_uri);

<a id="l00350" name="l00350"></a> 350 }

<a id="l00351" name="l00351"></a> 351 else{

<a id="l00352" name="l00352"></a> 352 fprintf(stderr, "Error getting the server URI\\n");

<a id="l00353" name="l00353"></a> 353 exit(1);

<a id="l00354" name="l00354"></a> 354 }

<a id="l00355" name="l00355"></a> 355 }

<a id="l00356" name="l00356"></a> 356 int32_t session_id = -1;

<a id="l00357" name="l00357"></a> 357 if ([dvs\_connect](dynamic__visualization__store__api_8h.xhtml#ab96812d4412a9af10e7e7924c572a7c9)(server_id, flags, secret, &amp;session_id) != 0)

<a id="l00358" name="l00358"></a> 358 {

<a id="l00359" name="l00359"></a> 359 fprintf(stderr, "Error making connection to server\\n");

<a id="l00360" name="l00360"></a> 360 exit(1);

<a id="l00361" name="l00361"></a> 361 }

<a id="l00362" name="l00362"></a> 362 

<a id="l00363" name="l00363"></a> 363 enum [dvs\_log\_flags](dynamic__visualization__store__enums_8h.xhtml#a9bca12092877a90e6c497994093a8609) log_flags = log_all == 0 ? [LOG\_UPDATE\_BEG\_END](dynamic__visualization__store__enums_8h.xhtml#a9bca12092877a90e6c497994093a8609a1a3a1b2a98f96b6de074cd9ae93805bb) : [LOG\_ALL](dynamic__visualization__store__enums_8h.xhtml#a9bca12092877a90e6c497994093a8609a87cff070224b283d7aace436723245fc);

<a id="l00364" name="l00364"></a> 364 [dvs\_register\_log\_func](dynamic__visualization__store__api_8h.xhtml#ae57cf8cf0b10421aace6df32a98c60ae)(session_id, NULL, &amp;logging_function, log_flags);

<a id="l00365" name="l00365"></a> 365 

<a id="l00366" name="l00366"></a> 366 {

<a id="l00367" name="l00367"></a> 367 if (part_info_num != 7 || var_info_num != 9)

<a id="l00368" name="l00368"></a> 368 {

<a id="l00369" name="l00369"></a> 369 fprintf(stderr, "This pseudo client code relies on part infos == 7 and var infos == 9, needs modified otherwise\\n");

<a id="l00370" name="l00370"></a> 370 exit(1);

<a id="l00371" name="l00371"></a> 371 }

<a id="l00372" name="l00372"></a> 372 

<a id="l00373" name="l00373"></a> 373 struct TestDynamicData test;

<a id="l00374" name="l00374"></a> 374 test_dynamic_data_init(&amp;test, 0, current_rank, total_ranks);

<a id="l00375" name="l00375"></a> 375 [dvs\_begin\_init](dynamic__visualization__store__api_8h.xhtml#a3744408f15cd4a36d19880d24d442a0d)(session_id, dataset_id, test.current_rank, test.total_ranks, test.num_chunks);

<a id="l00376" name="l00376"></a> 376 [dvs\_set\_unit\_system](dynamic__visualization__store__api_8h.xhtml#a14b52ceff846429259cab42ee11579f0)(session_id, test.unit_system);

<a id="l00377" name="l00377"></a> 377 [dvs\_add\_metadata](dynamic__visualization__store__api_8h.xhtml#ac5c67fdc3806bf89eebbe49e6daea5c2)(session_id, test.metadata_keys, test.metadata_vals, test.metadata_num_pairs);

<a id="l00378" name="l00378"></a> 378 

<a id="l00379" name="l00379"></a> 379 //TODO: Have this done in only the 0th rank once merging definitions is finished

<a id="l00380" name="l00380"></a> 380 if (send_plots &amp;&amp; current_rank == plot_rank) [dvs\_add\_plot\_info](dynamic__visualization__store__api_8h.xhtml#afe298f932fd909b7caabd6f430489b16)(session_id, test.plots, plot_info_num);

<a id="l00381" name="l00381"></a> 381 

<a id="l00382" name="l00382"></a> 382 if ((total_ranks == 1) || (total_ranks == 2) || all_defs != 0)

<a id="l00383" name="l00383"></a> 383 {

<a id="l00384" name="l00384"></a> 384 //If one rank or two ranks and first rank send everything (tests second rank having no definitions)

<a id="l00385" name="l00385"></a> 385 if (current_rank == 0 || all_defs != 0)

<a id="l00386" name="l00386"></a> 386 {

<a id="l00387" name="l00387"></a> 387 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, test.parts, part_info_num);

<a id="l00388" name="l00388"></a> 388 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.vars, var_info_num);

<a id="l00389" name="l00389"></a> 389 }

<a id="l00390" name="l00390"></a> 390 }

<a id="l00391" name="l00391"></a> 391 else if (total_ranks == 3)

<a id="l00392" name="l00392"></a> 392 {

<a id="l00393" name="l00393"></a> 393 //If 3 ranks splitup definition data between first 2 ranks

<a id="l00394" name="l00394"></a> 394 //the last rank will not have any (will receive data from others)

<a id="l00395" name="l00395"></a> 395 if (current_rank == 0)

<a id="l00396" name="l00396"></a> 396 {

<a id="l00397" name="l00397"></a> 397 //Send part 0

<a id="l00398" name="l00398"></a> 398 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, test.parts, 1);

<a id="l00399" name="l00399"></a> 399 //Send vars 0-&gt;1

<a id="l00400" name="l00400"></a> 400 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.vars, 2);

<a id="l00401" name="l00401"></a> 401 }

<a id="l00402" name="l00402"></a> 402 else if (current_rank == 1)

<a id="l00403" name="l00403"></a> 403 {

<a id="l00404" name="l00404"></a> 404 //Send parts 1-&gt;2

<a id="l00405" name="l00405"></a> 405 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, &amp;test.parts[1], part_info_num-1);

<a id="l00406" name="l00406"></a> 406 //Send vars 2-&gt;5

<a id="l00407" name="l00407"></a> 407 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.vars[2], var_info_num - 2);

<a id="l00408" name="l00408"></a> 408 }

<a id="l00409" name="l00409"></a> 409 //Third rank will have empty definitions which should be filled in

<a id="l00410" name="l00410"></a> 410 }

<a id="l00411" name="l00411"></a> 411 else if (total_ranks &gt; 3)

<a id="l00412" name="l00412"></a> 412 {

<a id="l00413" name="l00413"></a> 413 //If more than 3 ranks splitup data between first 3 ranks

<a id="l00414" name="l00414"></a> 414 //other 3 ranks will not have any (will receive data from others)

<a id="l00415" name="l00415"></a> 415 if (current_rank == 0)

<a id="l00416" name="l00416"></a> 416 {

<a id="l00417" name="l00417"></a> 417 //Send part 0

<a id="l00418" name="l00418"></a> 418 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, test.parts, 1);

<a id="l00419" name="l00419"></a> 419 //Send vars 0-&gt;1

<a id="l00420" name="l00420"></a> 420 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.vars, 2);

<a id="l00421" name="l00421"></a> 421 }

<a id="l00422" name="l00422"></a> 422 else if (current_rank == 1)

<a id="l00423" name="l00423"></a> 423 {

<a id="l00424" name="l00424"></a> 424 //Send part 1

<a id="l00425" name="l00425"></a> 425 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, &amp;test.parts[1], 1);

<a id="l00426" name="l00426"></a> 426 //Send parts 2-&gt;3

<a id="l00427" name="l00427"></a> 427 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.vars[2], 2);

<a id="l00428" name="l00428"></a> 428 }

<a id="l00429" name="l00429"></a> 429 else if (current_rank == 2)

<a id="l00430" name="l00430"></a> 430 {

<a id="l00431" name="l00431"></a> 431 //Send part 2

<a id="l00432" name="l00432"></a> 432 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, &amp;test.parts[2], part_info_num-2);

<a id="l00433" name="l00433"></a> 433 //Send parts 4-&gt;5

<a id="l00434" name="l00434"></a> 434 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.vars[4], var_info_num - 4);

<a id="l00435" name="l00435"></a> 435 }

<a id="l00436" name="l00436"></a> 436 }

<a id="l00437" name="l00437"></a> 437 else

<a id="l00438" name="l00438"></a> 438 {

<a id="l00439" name="l00439"></a> 439 //Situation not currently handled exit out

<a id="l00440" name="l00440"></a> 440 fprintf(stderr, "Bad Initialization of Ranks\\n");

<a id="l00441" name="l00441"></a> 441 exit(1);

<a id="l00442" name="l00442"></a> 442 }

<a id="l00443" name="l00443"></a> 443 

<a id="l00444" name="l00444"></a> 444 {

<a id="l00445" name="l00445"></a> 445 uint32_t num_part_info = [dvs\_get\_num\_part\_info](dynamic__visualization__store__api_8h.xhtml#a5a6cd68f61a53bce6780d3ef95038277)(session_id);

<a id="l00446" name="l00446"></a> 446 for (uint32_t i = 0; i &lt; num_part_info; i++)

<a id="l00447" name="l00447"></a> 447 {

<a id="l00448" name="l00448"></a> 448 const struct [dvs\_part\_info](structdvs__part__info.xhtml)* part_info = [dvs\_get\_part\_info](dynamic__visualization__store__api_8h.xhtml#a5b5a64e37bd6830f518947e7a0f7985e)(session_id, i);

<a id="l00449" name="l00449"></a> 449 if (part_info) fprintf(stderr, "Part: %s ID: %u\\n", part_info-&gt;[\_name](structdvs__part__info.xhtml#aa3ef86ed8620b0419f05e4e255dd01fb), part_info-&gt;[\_id](structdvs__part__info.xhtml#ab4e6fd830f27fdfa60c7bf6c2c137695));

<a id="l00450" name="l00450"></a> 450 }

<a id="l00451" name="l00451"></a> 451 

<a id="l00452" name="l00452"></a> 452 uint32_t num_var_info = [dvs\_get\_num\_var\_info](dynamic__visualization__store__api_8h.xhtml#ad75625cedecbcd365c868c9893c6c2d8)(session_id);

<a id="l00453" name="l00453"></a> 453 for (uint32_t i = 0; i &lt; num_var_info; i++)

<a id="l00454" name="l00454"></a> 454 {

<a id="l00455" name="l00455"></a> 455 const struct [dvs\_var\_info](structdvs__var__info.xhtml)* var_info = [dvs\_get\_var\_info](dynamic__visualization__store__api_8h.xhtml#a8992f4a5e6c36c5e4da67968b170313c)(session_id, i);

<a id="l00456" name="l00456"></a> 456 if (var_info) fprintf(stderr, "Var: %s ID: %u\\n", var_info-&gt;[\_name](structdvs__var__info.xhtml#ad1b4aeadeb75d6ab2a446fef37f11d0a), var_info-&gt;[\_id](structdvs__var__info.xhtml#abcef03f7b1e419ae39c7511de2385a9b));

<a id="l00457" name="l00457"></a> 457 }

<a id="l00458" name="l00458"></a> 458 

<a id="l00459" name="l00459"></a> 459 uint32_t num_plot_info = [dvs\_get\_num\_plot\_info](dynamic__visualization__store__api_8h.xhtml#aa44dcb6596c7833d2b9fe2a0435bb4c4)(session_id);

<a id="l00460" name="l00460"></a> 460 for (uint32_t i = 0; i &lt; num_plot_info; i++)

<a id="l00461" name="l00461"></a> 461 {

<a id="l00462" name="l00462"></a> 462 const struct [dvs\_plot\_info](structdvs__plot__info.xhtml)* plot_info = [dvs\_get\_plot\_info](dynamic__visualization__store__api_8h.xhtml#ac3fca7087e8b4366686cef98a95f241f)(session_id, i);

<a id="l00463" name="l00463"></a> 463 if (plot_info) fprintf(stderr, "Plot: %s ID: %u\\n", plot_info-&gt;[\_name](structdvs__plot__info.xhtml#a00c93696be3b5f9f3c2288daf9975f19), plot_info-&gt;[\_id](structdvs__plot__info.xhtml#a7721b22bb882c90e84d68979a748daf3));

<a id="l00464" name="l00464"></a> 464 }

<a id="l00465" name="l00465"></a> 465 }

<a id="l00466" name="l00466"></a> 466 

<a id="l00467" name="l00467"></a> 467 [dvs\_end\_init](dynamic__visualization__store__api_8h.xhtml#ac4d82529053c964b76bd42916c51835e)(session_id);

<a id="l00468" name="l00468"></a> 468 }

<a id="l00469" name="l00469"></a> 469 

<a id="l00470" name="l00470"></a> 470 uint32_t update_num = 0;

<a id="l00471" name="l00471"></a> 471 

<a id="l00472" name="l00472"></a> 472 for (uint32_t i = starting_timestep; i &lt; max_timesteps; i++)

<a id="l00473" name="l00473"></a> 473 {

<a id="l00474" name="l00474"></a> 474 if (i &gt; 1 + starting_timestep &amp;&amp; msec_delay)

<a id="l00475" name="l00475"></a> 475 {

<a id="l00476" name="l00476"></a> 476 #ifdef \_WIN32

<a id="l00477" name="l00477"></a> 477 Sleep(msec_delay);

<a id="l00478" name="l00478"></a> 478 #else

<a id="l00479" name="l00479"></a> 479 usleep(msec_delay*1000);

<a id="l00480" name="l00480"></a> 480 #endif

<a id="l00481" name="l00481"></a> 481 }

<a id="l00482" name="l00482"></a> 482 if (test_delete &amp;&amp; i != starting_timestep) {

<a id="l00483" name="l00483"></a> 483 fprintf(stderr, "Rank: %i of %i Deleting Item\\n", (current_rank+1), total_ranks);

<a id="l00484" name="l00484"></a> 484 [dvs\_delete\_item](dynamic__visualization__store__api_8h.xhtml#a5237ada583b0cb7817d12d1135f9349e)(session_id, update_num++, current_rank, "/timestep.time/gte/0.0");

<a id="l00485" name="l00485"></a> 485 }

<a id="l00486" name="l00486"></a> 486 fprintf(stderr, "Rank: %i of %i Sending Timestep: %i of %i\\n", (current_rank), total_ranks, (i), max_timesteps-1);

<a id="l00487" name="l00487"></a> 487 

<a id="l00488" name="l00488"></a> 488 struct TestDynamicData test;

<a id="l00489" name="l00489"></a> 489 test_dynamic_data_init(&amp;test, i, current_rank, total_ranks);

<a id="l00490" name="l00490"></a> 490 test.ghosts = create_ghosts;

<a id="l00491" name="l00491"></a> 491 test_dynamic_data_create_mesh_and_elements(&amp;test, width, height, depth);

<a id="l00492" name="l00492"></a> 492 

<a id="l00493" name="l00493"></a> 493 float solution_time = test.time;

<a id="l00494" name="l00494"></a> 494 if (time_period &gt; 0) {

<a id="l00495" name="l00495"></a> 495 solution_time = (float)(i%time_period);

<a id="l00496" name="l00496"></a> 496 }

<a id="l00497" name="l00497"></a> 497 [dvs\_begin\_update](dynamic__visualization__store__api_8h.xhtml#aaac598618be531e8aa2b72ad41e18537)(session_id, update_num++, current_rank, test.current_chunk, solution_time);

<a id="l00498" name="l00498"></a> 498 

<a id="l00499" name="l00499"></a> 499 if (send_structured_parts)

<a id="l00500" name="l00500"></a> 500 {

<a id="l00501" name="l00501"></a> 501 [dvs\_update\_nodes\_parallelepiped](dynamic__visualization__store__api_8h.xhtml#a0d0312c5143eb8de2e08a903c929d8c3)

<a id="l00502" name="l00502"></a> 502 (

<a id="l00503" name="l00503"></a> 503 session_id,

<a id="l00504" name="l00504"></a> 504 test.parts[5]._id,

<a id="l00505" name="l00505"></a> 505 test.pp_global_ijk_max,

<a id="l00506" name="l00506"></a> 506 test.pp_local_ijk_min,

<a id="l00507" name="l00507"></a> 507 test.pp_local_ijk_max,

<a id="l00508" name="l00508"></a> 508 test.pp_origin,

<a id="l00509" name="l00509"></a> 509 test.pp_unit_vec_i,

<a id="l00510" name="l00510"></a> 510 test.pp_unit_vec_j,

<a id="l00511" name="l00511"></a> 511 test.pp_unit_vec_k,

<a id="l00512" name="l00512"></a> 512 test.pp_i_vals,

<a id="l00513" name="l00513"></a> 513 test.pp_j_vals,

<a id="l00514" name="l00514"></a> 514 test.pp_k_vals

<a id="l00515" name="l00515"></a> 515 );

<a id="l00516" name="l00516"></a> 516 

<a id="l00517" name="l00517"></a> 517 [dvs\_update\_nodes\_curvilinear](dynamic__visualization__store__api_8h.xhtml#af69daaa5a2ac63f7ce31a2e8e3d66332)

<a id="l00518" name="l00518"></a> 518 (

<a id="l00519" name="l00519"></a> 519 session_id,

<a id="l00520" name="l00520"></a> 520 test.parts[6]._id,

<a id="l00521" name="l00521"></a> 521 test.curv_global_ijk_max,

<a id="l00522" name="l00522"></a> 522 test.curv_local_ijk_min,

<a id="l00523" name="l00523"></a> 523 test.curv_local_ijk_max,

<a id="l00524" name="l00524"></a> 524 test.curv_x_vals,

<a id="l00525" name="l00525"></a> 525 test.curv_y_vals,

<a id="l00526" name="l00526"></a> 526 test.curv_z_vals

<a id="l00527" name="l00527"></a> 527 );

<a id="l00528" name="l00528"></a> 528 }

<a id="l00529" name="l00529"></a> 529 

<a id="l00530" name="l00530"></a> 530 if (send_hex_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[0]._id, test.mesh_x_coords, test.mesh_y_coords, test.mesh_z_coords, test.mesh_coords_size);

<a id="l00531" name="l00531"></a> 531 if (send_pnt_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[1]._id, test.mesh_x_coords, test.mesh_y_coords, test.mesh_z_coords, test.mesh_coords_size);

<a id="l00532" name="l00532"></a> 532 if (send_nfaced_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[2]._id, test.mesh_x_coords, test.mesh_y_coords, test.mesh_z_coords, test.mesh_coords_size);

<a id="l00533" name="l00533"></a> 533 if (send_tri_quad_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[3]._id, test.mesh_x_coords, test.mesh_y_coords, test.mesh_z_coords, test.mesh_coords_size);

<a id="l00534" name="l00534"></a> 534 if (send_nsided_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[4]._id, test.polymesh_x_coords, test.polymesh_y_coords, test.polymesh_z_coords, test.polymesh_coords_size);

<a id="l00535" name="l00535"></a> 535 

<a id="l00536" name="l00536"></a> 536 if (send_elems)

<a id="l00537" name="l00537"></a> 537 {

<a id="l00538" name="l00538"></a> 538 if (send_hex_elems)

<a id="l00539" name="l00539"></a> 539 {

<a id="l00540" name="l00540"></a> 540 [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[0]._id, HEXAHEDRON, test.mesh_hex_elem_coords, test.mesh_hex_elem_coords_size);

<a id="l00541" name="l00541"></a> 541 if (test.mesh_hex_ghost_elem_coords_size &gt; 0)

<a id="l00542" name="l00542"></a> 542 {

<a id="l00543" name="l00543"></a> 543 [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[0]._id, HEXAHEDRON_GHOST, test.mesh_hex_ghost_elem_coords, test.mesh_hex_ghost_elem_coords_size);

<a id="l00544" name="l00544"></a> 544 }

<a id="l00545" name="l00545"></a> 545 }

<a id="l00546" name="l00546"></a> 546 

<a id="l00547" name="l00547"></a> 547 if (send_nfaced_elems)

<a id="l00548" name="l00548"></a> 548 {

<a id="l00549" name="l00549"></a> 549 [dvs\_update\_elements\_polyhedral](dynamic__visualization__store__api_8h.xhtml#aff070e9087ba34f41200ff0cd1d3002e)

<a id="l00550" name="l00550"></a> 550 (

<a id="l00551" name="l00551"></a> 551 session_id,

<a id="l00552" name="l00552"></a> 552 test.parts[2]._id,

<a id="l00553" name="l00553"></a> 553 CONVEX_POLYHEDRON,

<a id="l00554" name="l00554"></a> 554 test.mesh_nfaced_hex_elem_faces_per_elem,

<a id="l00555" name="l00555"></a> 555 test.mesh_nfaced_hex_elem_faces_per_elem_size,

<a id="l00556" name="l00556"></a> 556 test.mesh_nfaced_hex_elem_nodes_per_face,

<a id="l00557" name="l00557"></a> 557 test.mesh_nfaced_hex_elem_nodes_per_face_size,

<a id="l00558" name="l00558"></a> 558 test.mesh_nfaced_hex_elem_coords,

<a id="l00559" name="l00559"></a> 559 test.mesh_nfaced_hex_elem_coords_size

<a id="l00560" name="l00560"></a> 560 );

<a id="l00561" name="l00561"></a> 561 if (test.mesh_nfaced_hex_ghost_elem_coords_size &gt; 0)

<a id="l00562" name="l00562"></a> 562 {

<a id="l00563" name="l00563"></a> 563 [dvs\_update\_elements\_polyhedral](dynamic__visualization__store__api_8h.xhtml#aff070e9087ba34f41200ff0cd1d3002e)

<a id="l00564" name="l00564"></a> 564 (

<a id="l00565" name="l00565"></a> 565 session_id,

<a id="l00566" name="l00566"></a> 566 test.parts[2]._id,

<a id="l00567" name="l00567"></a> 567 CONVEX_POLYHEDRON_GHOST,

<a id="l00568" name="l00568"></a> 568 test.mesh_nfaced_hex_ghost_elem_faces_per_elem,

<a id="l00569" name="l00569"></a> 569 test.mesh_nfaced_hex_ghost_elem_faces_per_elem_size,

<a id="l00570" name="l00570"></a> 570 test.mesh_nfaced_hex_ghost_elem_nodes_per_face,

<a id="l00571" name="l00571"></a> 571 test.mesh_nfaced_hex_ghost_elem_nodes_per_face_size,

<a id="l00572" name="l00572"></a> 572 test.mesh_nfaced_hex_ghost_elem_coords,

<a id="l00573" name="l00573"></a> 573 test.mesh_nfaced_hex_ghost_elem_coords_size

<a id="l00574" name="l00574"></a> 574 );

<a id="l00575" name="l00575"></a> 575 }

<a id="l00576" name="l00576"></a> 576 }

<a id="l00577" name="l00577"></a> 577 

<a id="l00578" name="l00578"></a> 578 if (send_nsided_elems &amp;&amp; current_rank == 0)

<a id="l00579" name="l00579"></a> 579 {

<a id="l00580" name="l00580"></a> 580 //Only send if current rank is 0 as we aren't

<a id="l00581" name="l00581"></a> 581 //splitting this part up based on rank

<a id="l00582" name="l00582"></a> 582 [dvs\_update\_elements\_polygon](dynamic__visualization__store__api_8h.xhtml#a763afb059b0301ba18fefe3cd126ce79)

<a id="l00583" name="l00583"></a> 583 (

<a id="l00584" name="l00584"></a> 584 session_id,

<a id="l00585" name="l00585"></a> 585 test.parts[4]._id,

<a id="l00586" name="l00586"></a> 586 N_SIDED_POLYGON,

<a id="l00587" name="l00587"></a> 587 test.polymesh_elem_nodes_per_face,

<a id="l00588" name="l00588"></a> 588 test.polymesh_elem_nodes_per_face_size,

<a id="l00589" name="l00589"></a> 589 test.polymesh_elem_nodes,

<a id="l00590" name="l00590"></a> 590 test.polymesh_elem_nodes_size

<a id="l00591" name="l00591"></a> 591 );

<a id="l00592" name="l00592"></a> 592 }

<a id="l00593" name="l00593"></a> 593 

<a id="l00594" name="l00594"></a> 594 if (send_pnt_elems) [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[1]._id, PNT, test.mesh_point_elem_coords, test.mesh_point_elem_coords_size);

<a id="l00595" name="l00595"></a> 595 

<a id="l00596" name="l00596"></a> 596 if (send_tri_quad_elems)

<a id="l00597" name="l00597"></a> 597 {

<a id="l00598" name="l00598"></a> 598 [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_coords, test.mesh_quad_elem_coords_size);

<a id="l00599" name="l00599"></a> 599 [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_coords, test.mesh_tri_elem_coords_size);

<a id="l00600" name="l00600"></a> 600 }

<a id="l00601" name="l00601"></a> 601 }

<a id="l00602" name="l00602"></a> 602 

<a id="l00603" name="l00603"></a> 603 if (send_vars)

<a id="l00604" name="l00604"></a> 604 {

<a id="l00605" name="l00605"></a> 605 //Case vars not working correctly with DVS

<a id="l00606" name="l00606"></a> 606 [dvs\_update\_var\_case\_scalar](dynamic__visualization__store__api_8h.xhtml#ad97de401448e85da8cb13d3e45cfb227)(session_id, test.vars[6]._id, test.case_var_value);

<a id="l00607" name="l00607"></a> 607 [dvs\_update\_var\_part\_scalar](dynamic__visualization__store__api_8h.xhtml#a853ed7ef2608619b82dd51055cee3f60)(session_id, test.vars[4]._id, test.parts[0]._id, test.part_scalar[0]);

<a id="l00608" name="l00608"></a> 608 [dvs\_update\_var\_part\_scalar](dynamic__visualization__store__api_8h.xhtml#a853ed7ef2608619b82dd51055cee3f60)(session_id, test.vars[4]._id, test.parts[1]._id, test.part_scalar[1]);

<a id="l00609" name="l00609"></a> 609 if (send_hex_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[0]._id, HEXAHEDRON, test.mesh_hex_elem_var_scalar, test.mesh_hex_elem_var_scalar_size);

<a id="l00610" name="l00610"></a> 610 if (send_hex_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[0]._id, HEXAHEDRON, test.mesh_hex_elem_var_rank_scalar, test.mesh_hex_elem_var_rank_scalar_size);

<a id="l00611" name="l00611"></a> 611 

<a id="l00612" name="l00612"></a> 612 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l00613" name="l00613"></a> 613 if (send_nfaced_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[2]._id, CONVEX_POLYHEDRON, test.mesh_hex_elem_var_scalar, test.mesh_hex_elem_var_scalar_size);

<a id="l00614" name="l00614"></a> 614 if (send_nfaced_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[2]._id, CONVEX_POLYHEDRON, test.mesh_hex_elem_var_rank_scalar, test.mesh_hex_elem_var_rank_scalar_size);

<a id="l00615" name="l00615"></a> 615 

<a id="l00616" name="l00616"></a> 616 if (send_structured_parts)

<a id="l00617" name="l00617"></a> 617 {

<a id="l00618" name="l00618"></a> 618 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[5]._id, STRUCTURED, test.structured_elem_var_scalar, test.structured_elem_var_scalar_size);

<a id="l00619" name="l00619"></a> 619 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[5]._id, STRUCTURED, test.structured_elem_var_scalar_rank, test.structured_elem_var_scalar_rank_size);

<a id="l00620" name="l00620"></a> 620 

<a id="l00621" name="l00621"></a> 621 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[6]._id, STRUCTURED, test.structured_elem_var_scalar, test.structured_elem_var_scalar_size);

<a id="l00622" name="l00622"></a> 622 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[6]._id, STRUCTURED, test.structured_elem_var_scalar_rank, test.structured_elem_var_scalar_rank_size);

<a id="l00623" name="l00623"></a> 623 

<a id="l00624" name="l00624"></a> 624 if (test.structured_elem_ghosts_size &gt; 0)

<a id="l00625" name="l00625"></a> 625 {

<a id="l00626" name="l00626"></a> 626 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, [DVS\_STRUCTURED\_GHOST\_ELEMENTS](dynamic__visualization__store__enums_8h.xhtml#a5f85a0e808c3bad9b9b616e62f5724c0), test.parts[5]._id, STRUCTURED, test.structured_elem_ghosts, test.structured_elem_ghosts_size);

<a id="l00627" name="l00627"></a> 627 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, [DVS\_STRUCTURED\_GHOST\_ELEMENTS](dynamic__visualization__store__enums_8h.xhtml#a5f85a0e808c3bad9b9b616e62f5724c0), test.parts[6]._id, STRUCTURED, test.structured_elem_ghosts, test.structured_elem_ghosts_size);

<a id="l00628" name="l00628"></a> 628 }

<a id="l00629" name="l00629"></a> 629 }

<a id="l00630" name="l00630"></a> 630 

<a id="l00631" name="l00631"></a> 631 if (test.mesh_hex_ghost_elem_var_scalar_size &gt; 0)

<a id="l00632" name="l00632"></a> 632 {

<a id="l00633" name="l00633"></a> 633 if (send_hex_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[0]._id, HEXAHEDRON_GHOST, test.mesh_hex_ghost_elem_var_scalar, test.mesh_hex_ghost_elem_var_scalar_size);

<a id="l00634" name="l00634"></a> 634 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l00635" name="l00635"></a> 635 if (send_nfaced_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[2]._id, CONVEX_POLYHEDRON_GHOST, test.mesh_hex_ghost_elem_var_scalar, test.mesh_hex_ghost_elem_var_scalar_size);

<a id="l00636" name="l00636"></a> 636 }

<a id="l00637" name="l00637"></a> 637 if (test.mesh_hex_ghost_elem_var_rank_scalar_size &gt; 0)

<a id="l00638" name="l00638"></a> 638 {

<a id="l00639" name="l00639"></a> 639 if (send_hex_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[0]._id, HEXAHEDRON_GHOST, test.mesh_hex_ghost_elem_var_rank_scalar, test.mesh_hex_ghost_elem_var_rank_scalar_size);

<a id="l00640" name="l00640"></a> 640 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l00641" name="l00641"></a> 641 if (send_nfaced_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[2]._id, CONVEX_POLYHEDRON_GHOST, test.mesh_hex_ghost_elem_var_rank_scalar, test.mesh_hex_ghost_elem_var_rank_scalar_size);

<a id="l00642" name="l00642"></a> 642 }

<a id="l00643" name="l00643"></a> 643 

<a id="l00644" name="l00644"></a> 644 if (send_pnt_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[1]._id, PNT, test.mesh_point_elem_var_rank_scalar, test.mesh_point_elem_var_rank_scalar_size);

<a id="l00645" name="l00645"></a> 645 

<a id="l00646" name="l00646"></a> 646 if (send_nfaced_elems) [dvs\_update\_var\_element\_vector](dynamic__visualization__store__api_8h.xhtml#af3cd5ecfd626ca40b1273634734f38d5)(session_id, test.vars[3]._id, test.parts[0]._id, HEXAHEDRON, test.mesh_hex_elem_var_vector, test.mesh_hex_elem_var_vector_size);

<a id="l00647" name="l00647"></a> 647 if (test.mesh_hex_ghost_elem_var_vector_size &gt; 0)

<a id="l00648" name="l00648"></a> 648 {

<a id="l00649" name="l00649"></a> 649 if (send_nfaced_elems) [dvs\_update\_var\_element\_vector](dynamic__visualization__store__api_8h.xhtml#af3cd5ecfd626ca40b1273634734f38d5)(session_id, test.vars[3]._id, test.parts[0]._id, HEXAHEDRON_GHOST, test.mesh_hex_ghost_elem_var_vector, test.mesh_hex_ghost_elem_var_vector_size);

<a id="l00650" name="l00650"></a> 650 }

<a id="l00651" name="l00651"></a> 651 

<a id="l00652" name="l00652"></a> 652 if (send_tri_quad_elems)

<a id="l00653" name="l00653"></a> 653 {

<a id="l00654" name="l00654"></a> 654 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_var_scalar, test.mesh_quad_elem_var_scalar_size);

<a id="l00655" name="l00655"></a> 655 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_var_rank_scalar, test.mesh_quad_elem_var_rank_scalar_size);

<a id="l00656" name="l00656"></a> 656 if(!rm_int64) {

<a id="l00657" name="l00657"></a> 657 // Update Elem IDs as scalar variable

<a id="l00658" name="l00658"></a> 658 [dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)(session_id, test.vars[7]._id, test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_var_scalar_int64, test.mesh_quad_elem_var_scalar_int64_size);

<a id="l00659" name="l00659"></a> 659 // Update IDs of elements 

<a id="l00660" name="l00660"></a> 660 [dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)(session_id, [DVS\_ELEMENT\_ID](dynamic__visualization__store__enums_8h.xhtml#a2f5c54081f521c1891cb24f0276d7276), test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_var_scalar_int64, test.mesh_quad_elem_var_scalar_int64_size);

<a id="l00661" name="l00661"></a> 661 }

<a id="l00662" name="l00662"></a> 662 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_var_scalar, test.mesh_tri_elem_var_scalar_size);

<a id="l00663" name="l00663"></a> 663 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_var_rank_scalar, test.mesh_tri_elem_var_rank_scalar_size);

<a id="l00664" name="l00664"></a> 664 if(!rm_int64) {

<a id="l00665" name="l00665"></a> 665 // Update Elem IDs as scalar variable

<a id="l00666" name="l00666"></a> 666 [dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)(session_id, test.vars[7]._id, test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_var_scalar_int64, test.mesh_tri_elem_var_scalar_int64_size);

<a id="l00667" name="l00667"></a> 667 // Update IDs of elements 

<a id="l00668" name="l00668"></a> 668 [dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)(session_id, [DVS\_ELEMENT\_ID](dynamic__visualization__store__enums_8h.xhtml#a2f5c54081f521c1891cb24f0276d7276), test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_var_scalar_int64, test.mesh_tri_elem_var_scalar_int64_size);

<a id="l00669" name="l00669"></a> 669 }

<a id="l00670" name="l00670"></a> 670 }

<a id="l00671" name="l00671"></a> 671 

<a id="l00672" name="l00672"></a> 672 [dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)(session_id, test.vars[0]._id, test.parts[0]._id, test.mesh_node_var_scalar, test.mesh_node_var_scalar_size);

<a id="l00673" name="l00673"></a> 673 [dvs\_update\_var\_node\_vector](dynamic__visualization__store__api_8h.xhtml#a9086155711ed76c6141bdde2291f140a)(session_id, test.vars[1]._id, test.parts[0]._id, test.mesh_node_var_vector, test.mesh_node_var_vector_size);

<a id="l00674" name="l00674"></a> 674 [dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)(session_id, test.vars[0]._id, test.parts[2]._id, test.mesh_node_var_scalar, test.mesh_node_var_scalar_size);

<a id="l00675" name="l00675"></a> 675 [dvs\_update\_var\_node\_vector](dynamic__visualization__store__api_8h.xhtml#a9086155711ed76c6141bdde2291f140a)(session_id, test.vars[1]._id, test.parts[2]._id, test.mesh_node_var_vector, test.mesh_node_var_vector_size);

<a id="l00676" name="l00676"></a> 676 if(!rm_int64) {

<a id="l00677" name="l00677"></a> 677 // Update assigned nodal ids as scalar using 64bit api

<a id="l00678" name="l00678"></a> 678 [dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)(session_id, test.vars[8]._id, test.parts[0]._id, test.mesh_node_var_scalar_int64, test.mesh_node_var_scalar_int64_size);

<a id="l00679" name="l00679"></a> 679 [dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)(session_id, test.vars[8]._id, test.parts[2]._id, test.mesh_node_var_scalar_int64, test.mesh_node_var_scalar_int64_size);

<a id="l00680" name="l00680"></a> 680 // Update assigned nodal ids as NODE ID variable (DVS\_NODE\_ID)

<a id="l00681" name="l00681"></a> 681 // Note that the number of values and IDs are still INT32 as EnSight can't handle 64bit values

<a id="l00682" name="l00682"></a> 682 [dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)(session_id, [DVS\_NODE\_ID](dynamic__visualization__store__enums_8h.xhtml#a103ab970c3f869611c5a888ec2c1f48e), test.parts[0]._id, test.mesh_node_var_scalar_int64, test.mesh_node_var_scalar_int64_size);

<a id="l00683" name="l00683"></a> 683 [dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)(session_id, [DVS\_NODE\_ID](dynamic__visualization__store__enums_8h.xhtml#a103ab970c3f869611c5a888ec2c1f48e), test.parts[2]._id, test.mesh_node_var_scalar_int64, test.mesh_node_var_scalar_int64_size);

<a id="l00684" name="l00684"></a> 684 }

<a id="l00685" name="l00685"></a> 685 

<a id="l00686" name="l00686"></a> 686 if (send_structured_parts)

<a id="l00687" name="l00687"></a> 687 {

<a id="l00688" name="l00688"></a> 688 [dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)(session_id, test.vars[0]._id, test.parts[5]._id, test.structured_nodal_scalar, test.structured_nodal_scalar_size);

<a id="l00689" name="l00689"></a> 689 [dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)(session_id, test.vars[0]._id, test.parts[6]._id, test.structured_nodal_scalar, test.structured_nodal_scalar_size);

<a id="l00690" name="l00690"></a> 690 if (test_iblanking)

<a id="l00691" name="l00691"></a> 691 {

<a id="l00692" name="l00692"></a> 692 [dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)(session_id, [DVS\_STRUCTURED\_IBLANKED\_NODES](dynamic__visualization__store__enums_8h.xhtml#aa405c87964a066405de5426a3089702b), test.parts[5]._id, test.structured_nodal_iblanked, test.structured_nodal_iblanked_size);

<a id="l00693" name="l00693"></a> 693 [dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)(session_id, [DVS\_STRUCTURED\_IBLANKED\_NODES](dynamic__visualization__store__enums_8h.xhtml#aa405c87964a066405de5426a3089702b), test.parts[6]._id, test.structured_nodal_iblanked, test.structured_nodal_iblanked_size);

<a id="l00694" name="l00694"></a> 694 }

<a id="l00695" name="l00695"></a> 695 }

<a id="l00696" name="l00696"></a> 696 }

<a id="l00697" name="l00697"></a> 697 

<a id="l00698" name="l00698"></a> 698 if (send_plots &amp;&amp; current_rank == plot_rank)

<a id="l00699" name="l00699"></a> 699 {

<a id="l00700" name="l00700"></a> 700 [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.plots[0]._id, test.plot_x_values[0], test.plot_y_values[0], test.plot_num_values);

<a id="l00701" name="l00701"></a> 701 [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.plots[1]._id, test.plot_x_values[1], test.plot_y_values[1], test.plot_num_values);

<a id="l00702" name="l00702"></a> 702 [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.plots[2]._id, test.plot_x_values[2], test.plot_y_values[2], test.plot_num_values);

<a id="l00703" name="l00703"></a> 703 }

<a id="l00704" name="l00704"></a> 704 

<a id="l00705" name="l00705"></a> 705 if (generate_rbm){

<a id="l00706" name="l00706"></a> 706 float axisStart[3] = {0, 0, -1};

<a id="l00707" name="l00707"></a> 707 float axisEnd[3] = {0, 0, 1};

<a id="l00708" name="l00708"></a> 708 float relative_rotation_angle = M_PI * update_num / 10;

<a id="l00709" name="l00709"></a> 709 float displacement[3] = {0.3*update_num, 0.3*update_num, 0.3*update_num};

<a id="l00710" name="l00710"></a> 710 float quaternion[4];

<a id="l00711" name="l00711"></a> 711 [dvs\_convert\_rotation\_to\_quaternion](dynamic__visualization__store__api_8h.xhtml#a21864240d89612eb1fb81fdceb829d1e)(session_id, axisStart, axisEnd, relative_rotation_angle, quaternion);

<a id="l00712" name="l00712"></a> 712 

<a id="l00713" name="l00713"></a> 713 [dvs\_add\_part\_rigid\_body\_motion](dynamic__visualization__store__api_8h.xhtml#ab768f6a1427178b8dd5e8888f19da0d4)(

<a id="l00714" name="l00714"></a> 714 session_id, 

<a id="l00715" name="l00715"></a> 715 update_num, 

<a id="l00716" name="l00716"></a> 716 test.parts[0]._id,

<a id="l00717" name="l00717"></a> 717 quaternion,

<a id="l00718" name="l00718"></a> 718 displacement,

<a id="l00719" name="l00719"></a> 719 NULL

<a id="l00720" name="l00720"></a> 720 );

<a id="l00721" name="l00721"></a> 721 }

<a id="l00722" name="l00722"></a> 722 

<a id="l00723" name="l00723"></a> 723 [dvs\_end\_update](dynamic__visualization__store__api_8h.xhtml#ae75177bf47fcb28313e79840bf778c75)(session_id);

<a id="l00724" name="l00724"></a> 724 

<a id="l00725" name="l00725"></a> 725 test_dynamic_data_free(&amp;test);

<a id="l00726" name="l00726"></a> 726 }

<a id="l00727" name="l00727"></a> 727 

<a id="l00728" name="l00728"></a> 728 //Can do 1 timestep at a time with previous changes now

<a id="l00729" name="l00729"></a> 729 int reinit_num_timesteps = 1;

<a id="l00730" name="l00730"></a> 730 if (test_reinit)

<a id="l00731" name="l00731"></a> 731 {

<a id="l00732" name="l00732"></a> 732 for (uint32_t reinit_iter = 0; reinit_iter &lt; 3; reinit_iter++)

<a id="l00733" name="l00733"></a> 733 {

<a id="l00734" name="l00734"></a> 734 fprintf(stderr, "Rank: %i beginning reinit iter: %i\\n", current_rank, reinit_iter);

<a id="l00735" name="l00735"></a> 735 struct TestDynamicData test;

<a id="l00736" name="l00736"></a> 736 test_dynamic_data_init(&amp;test, 0, current_rank, total_ranks);

<a id="l00737" name="l00737"></a> 737 [dvs\_begin\_init](dynamic__visualization__store__api_8h.xhtml#a3744408f15cd4a36d19880d24d442a0d)(session_id, dataset_id, test.current_rank, test.total_ranks, test.num_chunks);

<a id="l00738" name="l00738"></a> 738 [dvs\_set\_unit\_system](dynamic__visualization__store__api_8h.xhtml#a14b52ceff846429259cab42ee11579f0)(session_id, test.unit_system);

<a id="l00739" name="l00739"></a> 739 //TODO: Have this done in only the 0th rank once merging definitions is finished

<a id="l00740" name="l00740"></a> 740 if (send_plots &amp;&amp; current_rank == plot_rank) [dvs\_add\_plot\_info](dynamic__visualization__store__api_8h.xhtml#afe298f932fd909b7caabd6f430489b16)(session_id, test.plots, plot_info_num);

<a id="l00741" name="l00741"></a> 741 if (send_plots &amp;&amp; current_rank == plot_rank &amp;&amp; reinit_plots) [dvs\_add\_plot\_info](dynamic__visualization__store__api_8h.xhtml#afe298f932fd909b7caabd6f430489b16)(session_id, test.reinit_plots, reinit_iter+1);

<a id="l00742" name="l00742"></a> 742 

<a id="l00743" name="l00743"></a> 743 if (reinit_parts) [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, test.reinit_parts, reinit_iter+1);

<a id="l00744" name="l00744"></a> 744 

<a id="l00745" name="l00745"></a> 745 if ((total_ranks == 1) || (total_ranks == 2) || all_defs != 0)

<a id="l00746" name="l00746"></a> 746 {

<a id="l00747" name="l00747"></a> 747 //If one rank or two ranks and first rank send everything (tests second rank having no definitions)

<a id="l00748" name="l00748"></a> 748 if (current_rank == 0 || all_defs != 0)

<a id="l00749" name="l00749"></a> 749 {

<a id="l00750" name="l00750"></a> 750 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, test.parts, part_info_num);

<a id="l00751" name="l00751"></a> 751 //Don't send the last var as it is to test re-initializing

<a id="l00752" name="l00752"></a> 752 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.vars, var_info_num);

<a id="l00753" name="l00753"></a> 753 

<a id="l00754" name="l00754"></a> 754 if (reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_case_vars, reinit_iter+1);

<a id="l00755" name="l00755"></a> 755 if (send_vars &amp;&amp; reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_part_vars, reinit_iter+1);

<a id="l00756" name="l00756"></a> 756 if (send_vars &amp;&amp; reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_vars, reinit_iter+1);

<a id="l00757" name="l00757"></a> 757 }

<a id="l00758" name="l00758"></a> 758 }

<a id="l00759" name="l00759"></a> 759 else if (total_ranks == 3)

<a id="l00760" name="l00760"></a> 760 {

<a id="l00761" name="l00761"></a> 761 //If 3 ranks splitup definition data between first 2 ranks

<a id="l00762" name="l00762"></a> 762 //the last rank will not have any (will receive data from others)

<a id="l00763" name="l00763"></a> 763 if (current_rank == 0)

<a id="l00764" name="l00764"></a> 764 {

<a id="l00765" name="l00765"></a> 765 //Send part 0

<a id="l00766" name="l00766"></a> 766 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, test.parts, 1);

<a id="l00767" name="l00767"></a> 767 //Send vars 0-&gt;1

<a id="l00768" name="l00768"></a> 768 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.vars, 2);

<a id="l00769" name="l00769"></a> 769 

<a id="l00770" name="l00770"></a> 770 if (reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_case_vars, 1);

<a id="l00771" name="l00771"></a> 771 if (send_vars &amp;&amp; reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_vars, reinit_iter+1);

<a id="l00772" name="l00772"></a> 772 }

<a id="l00773" name="l00773"></a> 773 else if (current_rank == 1)

<a id="l00774" name="l00774"></a> 774 {

<a id="l00775" name="l00775"></a> 775 //Send parts 1-&gt;2

<a id="l00776" name="l00776"></a> 776 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, &amp;test.parts[1], 4);

<a id="l00777" name="l00777"></a> 777 //Send vars 2-&gt;5

<a id="l00778" name="l00778"></a> 778 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.vars[2], var_info_num - 1);

<a id="l00779" name="l00779"></a> 779 

<a id="l00780" name="l00780"></a> 780 if (reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_case_vars, reinit_iter+2);

<a id="l00781" name="l00781"></a> 781 if (send_vars &amp;&amp; reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_part_vars, reinit_iter+1);

<a id="l00782" name="l00782"></a> 782 }

<a id="l00783" name="l00783"></a> 783 //Third rank will have empty definitions which should be filled in

<a id="l00784" name="l00784"></a> 784 }

<a id="l00785" name="l00785"></a> 785 else if (total_ranks &gt; 3)

<a id="l00786" name="l00786"></a> 786 {

<a id="l00787" name="l00787"></a> 787 //If more than 3 ranks splitup data between first 3 ranks

<a id="l00788" name="l00788"></a> 788 //other 3 ranks will not have any (will receive data from others)

<a id="l00789" name="l00789"></a> 789 if (current_rank == 0)

<a id="l00790" name="l00790"></a> 790 {

<a id="l00791" name="l00791"></a> 791 //Send part 0

<a id="l00792" name="l00792"></a> 792 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, test.parts, 1);

<a id="l00793" name="l00793"></a> 793 //Send vars 0-&gt;1

<a id="l00794" name="l00794"></a> 794 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.vars, 2);

<a id="l00795" name="l00795"></a> 795 

<a id="l00796" name="l00796"></a> 796 if (send_vars &amp;&amp; reinit_vars &amp;&amp; reinit_iter &gt;= 0) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.reinit_part_vars[0], 1);

<a id="l00797" name="l00797"></a> 797 if (send_vars &amp;&amp; reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_vars, reinit_iter+1);

<a id="l00798" name="l00798"></a> 798 }

<a id="l00799" name="l00799"></a> 799 else if (current_rank == 1)

<a id="l00800" name="l00800"></a> 800 {

<a id="l00801" name="l00801"></a> 801 //Send part 1

<a id="l00802" name="l00802"></a> 802 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, &amp;test.parts[1], 1);

<a id="l00803" name="l00803"></a> 803 //Send parts 2-&gt;3

<a id="l00804" name="l00804"></a> 804 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.vars[2], 2);

<a id="l00805" name="l00805"></a> 805 

<a id="l00806" name="l00806"></a> 806 if (send_vars &amp;&amp; reinit_vars &amp;&amp; reinit_iter &gt;= 1) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.reinit_part_vars[1], 1);

<a id="l00807" name="l00807"></a> 807 }

<a id="l00808" name="l00808"></a> 808 else if (current_rank == 2)

<a id="l00809" name="l00809"></a> 809 {

<a id="l00810" name="l00810"></a> 810 //Send part 2

<a id="l00811" name="l00811"></a> 811 [dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)(session_id, &amp;test.parts[2], 3);

<a id="l00812" name="l00812"></a> 812 //Send parts 4-&gt;5

<a id="l00813" name="l00813"></a> 813 [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.vars[4], var_info_num - 1);

<a id="l00814" name="l00814"></a> 814 

<a id="l00815" name="l00815"></a> 815 if (reinit_vars) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, test.reinit_case_vars, reinit_iter+1);

<a id="l00816" name="l00816"></a> 816 if (send_vars &amp;&amp; reinit_vars &amp;&amp; reinit_iter &gt;= 2) [dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)(session_id, &amp;test.reinit_part_vars[2], 1);

<a id="l00817" name="l00817"></a> 817 }

<a id="l00818" name="l00818"></a> 818 }

<a id="l00819" name="l00819"></a> 819 else

<a id="l00820" name="l00820"></a> 820 {

<a id="l00821" name="l00821"></a> 821 //Situation not currently handled exit out

<a id="l00822" name="l00822"></a> 822 fprintf(stderr, "Bad Initialization of Ranks\\n");

<a id="l00823" name="l00823"></a> 823 exit(1);

<a id="l00824" name="l00824"></a> 824 }

<a id="l00825" name="l00825"></a> 825 

<a id="l00826" name="l00826"></a> 826 [dvs\_end\_init](dynamic__visualization__store__api_8h.xhtml#ac4d82529053c964b76bd42916c51835e)(session_id);

<a id="l00827" name="l00827"></a> 827 //Push 2 more timesteps

<a id="l00828" name="l00828"></a> 828 for (uint32_t i = max_timesteps + (reinit_iter * reinit_num_timesteps); i &lt; max_timesteps + ((reinit_iter+1) * reinit_num_timesteps); i++)

<a id="l00829" name="l00829"></a> 829 {

<a id="l00830" name="l00830"></a> 830 if (i &gt; 1 + starting_timestep &amp;&amp; msec_delay)

<a id="l00831" name="l00831"></a> 831 {

<a id="l00832" name="l00832"></a> 832 #ifdef \_WIN32

<a id="l00833" name="l00833"></a> 833 Sleep(msec_delay);

<a id="l00834" name="l00834"></a> 834 #else

<a id="l00835" name="l00835"></a> 835 usleep(msec_delay*1000);

<a id="l00836" name="l00836"></a> 836 #endif

<a id="l00837" name="l00837"></a> 837 }

<a id="l00838" name="l00838"></a> 838 fprintf

<a id="l00839" name="l00839"></a> 839 (

<a id="l00840" name="l00840"></a> 840 stderr, "Rank: %i of %i Sending Timestep: %i of %i, Reinit: %i\\n",

<a id="l00841" name="l00841"></a> 841 (current_rank),

<a id="l00842" name="l00842"></a> 842 total_ranks,

<a id="l00843" name="l00843"></a> 843 i,

<a id="l00844" name="l00844"></a> 844 max_timesteps + ((reinit_iter+1) * reinit_num_timesteps)-1,

<a id="l00845" name="l00845"></a> 845 reinit_iter

<a id="l00846" name="l00846"></a> 846 );

<a id="l00847" name="l00847"></a> 847 

<a id="l00848" name="l00848"></a> 848 struct TestDynamicData test;

<a id="l00849" name="l00849"></a> 849 test_dynamic_data_init(&amp;test, i, current_rank, total_ranks);

<a id="l00850" name="l00850"></a> 850 test.ghosts = create_ghosts;

<a id="l00851" name="l00851"></a> 851 test_dynamic_data_create_mesh_and_elements(&amp;test, width, height, depth);

<a id="l00852" name="l00852"></a> 852 

<a id="l00853" name="l00853"></a> 853 [dvs\_begin\_update](dynamic__visualization__store__api_8h.xhtml#aaac598618be531e8aa2b72ad41e18537)(session_id, update_num++, current_rank, test.current_chunk, test.time);

<a id="l00854" name="l00854"></a> 854 

<a id="l00855" name="l00855"></a> 855 if (send_hex_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[0]._id, test.mesh_x_coords, test.mesh_y_coords, test.mesh_z_coords, test.mesh_coords_size);

<a id="l00856" name="l00856"></a> 856 if (send_pnt_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[1]._id, test.mesh_x_coords, test.mesh_y_coords, test.mesh_z_coords, test.mesh_coords_size);

<a id="l00857" name="l00857"></a> 857 if (send_nfaced_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[2]._id, test.mesh_x_coords, test.mesh_y_coords, test.mesh_z_coords, test.mesh_coords_size);

<a id="l00858" name="l00858"></a> 858 if (send_tri_quad_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[3]._id, test.mesh_x_coords, test.mesh_y_coords, test.mesh_z_coords, test.mesh_coords_size);

<a id="l00859" name="l00859"></a> 859 if (send_nsided_elems) [dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)(session_id, test.parts[4]._id, test.polymesh_x_coords, test.polymesh_y_coords, test.polymesh_z_coords, test.polymesh_coords_size);

<a id="l00860" name="l00860"></a> 860 

<a id="l00861" name="l00861"></a> 861 if (send_elems)

<a id="l00862" name="l00862"></a> 862 {

<a id="l00863" name="l00863"></a> 863 if (send_hex_elems)

<a id="l00864" name="l00864"></a> 864 {

<a id="l00865" name="l00865"></a> 865 [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[0]._id, HEXAHEDRON, test.mesh_hex_elem_coords, test.mesh_hex_elem_coords_size);

<a id="l00866" name="l00866"></a> 866 if (test.mesh_hex_ghost_elem_coords_size &gt; 0)

<a id="l00867" name="l00867"></a> 867 {

<a id="l00868" name="l00868"></a> 868 [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[0]._id, HEXAHEDRON_GHOST, test.mesh_hex_ghost_elem_coords, test.mesh_hex_ghost_elem_coords_size);

<a id="l00869" name="l00869"></a> 869 }

<a id="l00870" name="l00870"></a> 870 }

<a id="l00871" name="l00871"></a> 871 

<a id="l00872" name="l00872"></a> 872 if (send_nfaced_elems)

<a id="l00873" name="l00873"></a> 873 {

<a id="l00874" name="l00874"></a> 874 [dvs\_update\_elements\_polyhedral](dynamic__visualization__store__api_8h.xhtml#aff070e9087ba34f41200ff0cd1d3002e)

<a id="l00875" name="l00875"></a> 875 (

<a id="l00876" name="l00876"></a> 876 session_id,

<a id="l00877" name="l00877"></a> 877 test.parts[2]._id,

<a id="l00878" name="l00878"></a> 878 CONVEX_POLYHEDRON,

<a id="l00879" name="l00879"></a> 879 test.mesh_nfaced_hex_elem_faces_per_elem,

<a id="l00880" name="l00880"></a> 880 test.mesh_nfaced_hex_elem_faces_per_elem_size,

<a id="l00881" name="l00881"></a> 881 test.mesh_nfaced_hex_elem_nodes_per_face,

<a id="l00882" name="l00882"></a> 882 test.mesh_nfaced_hex_elem_nodes_per_face_size,

<a id="l00883" name="l00883"></a> 883 test.mesh_nfaced_hex_elem_coords,

<a id="l00884" name="l00884"></a> 884 test.mesh_nfaced_hex_elem_coords_size

<a id="l00885" name="l00885"></a> 885 );

<a id="l00886" name="l00886"></a> 886 if (test.mesh_nfaced_hex_ghost_elem_coords_size &gt; 0)

<a id="l00887" name="l00887"></a> 887 {

<a id="l00888" name="l00888"></a> 888 [dvs\_update\_elements\_polyhedral](dynamic__visualization__store__api_8h.xhtml#aff070e9087ba34f41200ff0cd1d3002e)

<a id="l00889" name="l00889"></a> 889 (

<a id="l00890" name="l00890"></a> 890 session_id,

<a id="l00891" name="l00891"></a> 891 test.parts[2]._id,

<a id="l00892" name="l00892"></a> 892 CONVEX_POLYHEDRON_GHOST,

<a id="l00893" name="l00893"></a> 893 test.mesh_nfaced_hex_ghost_elem_faces_per_elem,

<a id="l00894" name="l00894"></a> 894 test.mesh_nfaced_hex_ghost_elem_faces_per_elem_size,

<a id="l00895" name="l00895"></a> 895 test.mesh_nfaced_hex_ghost_elem_nodes_per_face,

<a id="l00896" name="l00896"></a> 896 test.mesh_nfaced_hex_ghost_elem_nodes_per_face_size,

<a id="l00897" name="l00897"></a> 897 test.mesh_nfaced_hex_ghost_elem_coords,

<a id="l00898" name="l00898"></a> 898 test.mesh_nfaced_hex_ghost_elem_coords_size

<a id="l00899" name="l00899"></a> 899 );

<a id="l00900" name="l00900"></a> 900 }

<a id="l00901" name="l00901"></a> 901 }

<a id="l00902" name="l00902"></a> 902 

<a id="l00903" name="l00903"></a> 903 if (send_nsided_elems &amp;&amp; current_rank == 0)

<a id="l00904" name="l00904"></a> 904 {

<a id="l00905" name="l00905"></a> 905 //Only send if current rank is 0 as we aren't

<a id="l00906" name="l00906"></a> 906 //splitting this part up based on rank

<a id="l00907" name="l00907"></a> 907 [dvs\_update\_elements\_polygon](dynamic__visualization__store__api_8h.xhtml#a763afb059b0301ba18fefe3cd126ce79)

<a id="l00908" name="l00908"></a> 908 (

<a id="l00909" name="l00909"></a> 909 session_id,

<a id="l00910" name="l00910"></a> 910 test.parts[4]._id,

<a id="l00911" name="l00911"></a> 911 N_SIDED_POLYGON,

<a id="l00912" name="l00912"></a> 912 test.polymesh_elem_nodes_per_face,

<a id="l00913" name="l00913"></a> 913 test.polymesh_elem_nodes_per_face_size,

<a id="l00914" name="l00914"></a> 914 test.polymesh_elem_nodes,

<a id="l00915" name="l00915"></a> 915 test.polymesh_elem_nodes_size

<a id="l00916" name="l00916"></a> 916 );

<a id="l00917" name="l00917"></a> 917 }

<a id="l00918" name="l00918"></a> 918 

<a id="l00919" name="l00919"></a> 919 if (send_pnt_elems) [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[1]._id, PNT, test.mesh_point_elem_coords, test.mesh_point_elem_coords_size);

<a id="l00920" name="l00920"></a> 920 

<a id="l00921" name="l00921"></a> 921 if (send_tri_quad_elems)

<a id="l00922" name="l00922"></a> 922 {

<a id="l00923" name="l00923"></a> 923 [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_coords, test.mesh_quad_elem_coords_size);

<a id="l00924" name="l00924"></a> 924 [dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)(session_id, test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_coords, test.mesh_tri_elem_coords_size);

<a id="l00925" name="l00925"></a> 925 }

<a id="l00926" name="l00926"></a> 926 }

<a id="l00927" name="l00927"></a> 927 

<a id="l00928" name="l00928"></a> 928 if (send_vars)

<a id="l00929" name="l00929"></a> 929 {

<a id="l00930" name="l00930"></a> 930 //Case vars not working correctly with DVS

<a id="l00931" name="l00931"></a> 931 [dvs\_update\_var\_case\_scalar](dynamic__visualization__store__api_8h.xhtml#ad97de401448e85da8cb13d3e45cfb227)(session_id, test.vars[6]._id, test.case_var_value);

<a id="l00932" name="l00932"></a> 932 if (reinit_vars &amp;&amp; reinit_iter &gt;= 0) [dvs\_update\_var\_case\_scalar](dynamic__visualization__store__api_8h.xhtml#ad97de401448e85da8cb13d3e45cfb227)(session_id, test.reinit_case_vars[0]._id, (test.case_var_value*-1.f));

<a id="l00933" name="l00933"></a> 933 if (reinit_vars &amp;&amp; reinit_iter &gt;= 1) [dvs\_update\_var\_case\_scalar](dynamic__visualization__store__api_8h.xhtml#ad97de401448e85da8cb13d3e45cfb227)(session_id, test.reinit_case_vars[1]._id, (test.case_var_value*-1.f)-10.f);

<a id="l00934" name="l00934"></a> 934 if (reinit_vars &amp;&amp; reinit_iter &gt;= 2) [dvs\_update\_var\_case\_scalar](dynamic__visualization__store__api_8h.xhtml#ad97de401448e85da8cb13d3e45cfb227)(session_id, test.reinit_case_vars[2]._id, (test.case_var_value*-1.f)-20.f);

<a id="l00935" name="l00935"></a> 935 [dvs\_update\_var\_part\_scalar](dynamic__visualization__store__api_8h.xhtml#a853ed7ef2608619b82dd51055cee3f60)(session_id, test.vars[4]._id, test.parts[0]._id, test.part_scalar[0]);

<a id="l00936" name="l00936"></a> 936 [dvs\_update\_var\_part\_scalar](dynamic__visualization__store__api_8h.xhtml#a853ed7ef2608619b82dd51055cee3f60)(session_id, test.vars[4]._id, test.parts[1]._id, test.part_scalar[1]);

<a id="l00937" name="l00937"></a> 937 if (send_hex_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[0]._id, HEXAHEDRON, test.mesh_hex_elem_var_scalar, test.mesh_hex_elem_var_scalar_size);

<a id="l00938" name="l00938"></a> 938 if (send_hex_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[0]._id, HEXAHEDRON, test.mesh_hex_elem_var_rank_scalar, test.mesh_hex_elem_var_rank_scalar_size);

<a id="l00939" name="l00939"></a> 939 

<a id="l00940" name="l00940"></a> 940 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l00941" name="l00941"></a> 941 if (send_nfaced_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[2]._id, CONVEX_POLYHEDRON, test.mesh_hex_elem_var_scalar, test.mesh_hex_elem_var_scalar_size);

<a id="l00942" name="l00942"></a> 942 if (send_nfaced_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[2]._id, CONVEX_POLYHEDRON, test.mesh_hex_elem_var_rank_scalar, test.mesh_hex_elem_var_rank_scalar_size);

<a id="l00943" name="l00943"></a> 943 

<a id="l00944" name="l00944"></a> 944 if (test.mesh_hex_ghost_elem_var_scalar_size &gt; 0)

<a id="l00945" name="l00945"></a> 945 {

<a id="l00946" name="l00946"></a> 946 if (send_hex_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[0]._id, HEXAHEDRON_GHOST, test.mesh_hex_ghost_elem_var_scalar, test.mesh_hex_ghost_elem_var_scalar_size);

<a id="l00947" name="l00947"></a> 947 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l00948" name="l00948"></a> 948 if (send_nfaced_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[2]._id, CONVEX_POLYHEDRON_GHOST, test.mesh_hex_ghost_elem_var_scalar, test.mesh_hex_ghost_elem_var_scalar_size);

<a id="l00949" name="l00949"></a> 949 }

<a id="l00950" name="l00950"></a> 950 if (test.mesh_hex_ghost_elem_var_rank_scalar_size &gt; 0)

<a id="l00951" name="l00951"></a> 951 {

<a id="l00952" name="l00952"></a> 952 if (send_hex_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[0]._id, HEXAHEDRON_GHOST, test.mesh_hex_ghost_elem_var_rank_scalar, test.mesh_hex_ghost_elem_var_rank_scalar_size);

<a id="l00953" name="l00953"></a> 953 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l00954" name="l00954"></a> 954 if (send_nfaced_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[2]._id, CONVEX_POLYHEDRON_GHOST, test.mesh_hex_ghost_elem_var_rank_scalar, test.mesh_hex_ghost_elem_var_rank_scalar_size);

<a id="l00955" name="l00955"></a> 955 }

<a id="l00956" name="l00956"></a> 956 

<a id="l00957" name="l00957"></a> 957 if (send_pnt_elems) [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[1]._id, PNT, test.mesh_point_elem_var_rank_scalar, test.mesh_point_elem_var_rank_scalar_size);

<a id="l00958" name="l00958"></a> 958 

<a id="l00959" name="l00959"></a> 959 if (send_nfaced_elems) [dvs\_update\_var\_element\_vector](dynamic__visualization__store__api_8h.xhtml#af3cd5ecfd626ca40b1273634734f38d5)(session_id, test.vars[3]._id, test.parts[0]._id, HEXAHEDRON, test.mesh_hex_elem_var_vector, test.mesh_hex_elem_var_vector_size);

<a id="l00960" name="l00960"></a> 960 if (test.mesh_hex_ghost_elem_var_vector_size &gt; 0)

<a id="l00961" name="l00961"></a> 961 {

<a id="l00962" name="l00962"></a> 962 if (send_nfaced_elems) [dvs\_update\_var\_element\_vector](dynamic__visualization__store__api_8h.xhtml#af3cd5ecfd626ca40b1273634734f38d5)(session_id, test.vars[3]._id, test.parts[0]._id, HEXAHEDRON_GHOST, test.mesh_hex_ghost_elem_var_vector, test.mesh_hex_ghost_elem_var_vector_size);

<a id="l00963" name="l00963"></a> 963 }

<a id="l00964" name="l00964"></a> 964 

<a id="l00965" name="l00965"></a> 965 if (send_tri_quad_elems)

<a id="l00966" name="l00966"></a> 966 {

<a id="l00967" name="l00967"></a> 967 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_var_scalar, test.mesh_quad_elem_var_scalar_size);

<a id="l00968" name="l00968"></a> 968 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_var_rank_scalar, test.mesh_quad_elem_var_rank_scalar_size);

<a id="l00969" name="l00969"></a> 969 if(!rm_int64) {

<a id="l00970" name="l00970"></a> 970 // Update Elem IDs as scalar variable

<a id="l00971" name="l00971"></a> 971 [dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)(session_id, test.vars[7]._id, test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_var_scalar_int64, test.mesh_quad_elem_var_scalar_int64_size);

<a id="l00972" name="l00972"></a> 972 // Update IDs of elements 

<a id="l00973" name="l00973"></a> 973 [dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)(session_id, [DVS\_ELEMENT\_ID](dynamic__visualization__store__enums_8h.xhtml#a2f5c54081f521c1891cb24f0276d7276), test.parts[3]._id, QUADRANGLE, test.mesh_quad_elem_var_scalar_int64, test.mesh_quad_elem_var_scalar_int64_size);

<a id="l00974" name="l00974"></a> 974 }

<a id="l00975" name="l00975"></a> 975 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[2]._id, test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_var_scalar, test.mesh_tri_elem_var_scalar_size);

<a id="l00976" name="l00976"></a> 976 [dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)(session_id, test.vars[5]._id, test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_var_rank_scalar, test.mesh_tri_elem_var_rank_scalar_size);

<a id="l00977" name="l00977"></a> 977 

<a id="l00978" name="l00978"></a> 978 if(!rm_int64) {

<a id="l00979" name="l00979"></a> 979 // Update Elem IDs as scalar variable

<a id="l00980" name="l00980"></a> 980 [dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)(session_id, test.vars[7]._id, test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_var_scalar_int64, test.mesh_tri_elem_var_scalar_int64_size);

<a id="l00981" name="l00981"></a> 981 // Update IDs of elements 

<a id="l00982" name="l00982"></a> 982 [dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)(session_id, [DVS\_ELEMENT\_ID](dynamic__visualization__store__enums_8h.xhtml#a2f5c54081f521c1891cb24f0276d7276), test.parts[3]._id, TRIANGLE, test.mesh_tri_elem_var_scalar_int64, test.mesh_tri_elem_var_scalar_int64_size);

<a id="l00983" name="l00983"></a> 983 }

<a id="l00984" name="l00984"></a> 984 }

<a id="l00985" name="l00985"></a> 985 

<a id="l00986" name="l00986"></a> 986 [dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)(session_id, test.vars[0]._id, test.parts[0]._id, test.mesh_node_var_scalar, test.mesh_node_var_scalar_size);

<a id="l00987" name="l00987"></a> 987 [dvs\_update\_var\_node\_vector](dynamic__visualization__store__api_8h.xhtml#a9086155711ed76c6141bdde2291f140a)(session_id, test.vars[1]._id, test.parts[0]._id, test.mesh_node_var_vector, test.mesh_node_var_vector_size);

<a id="l00988" name="l00988"></a> 988 [dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)(session_id, test.vars[0]._id, test.parts[2]._id, test.mesh_node_var_scalar, test.mesh_node_var_scalar_size);

<a id="l00989" name="l00989"></a> 989 [dvs\_update\_var\_node\_vector](dynamic__visualization__store__api_8h.xhtml#a9086155711ed76c6141bdde2291f140a)(session_id, test.vars[1]._id, test.parts[2]._id, test.mesh_node_var_vector, test.mesh_node_var_vector_size);

<a id="l00990" name="l00990"></a> 990 if(!rm_int64) {

<a id="l00991" name="l00991"></a> 991 // Update assigned nodal ids as scalar using 64bit api

<a id="l00992" name="l00992"></a> 992 [dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)(session_id, test.vars[8]._id, test.parts[0]._id, test.mesh_node_var_scalar_int64, test.mesh_node_var_scalar_int64_size);

<a id="l00993" name="l00993"></a> 993 [dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)(session_id, test.vars[8]._id, test.parts[2]._id, test.mesh_node_var_scalar_int64, test.mesh_node_var_scalar_int64_size);

<a id="l00994" name="l00994"></a> 994 // Update assigned nodal ids as NODE ID variable (DVS\_NODE\_ID4)

<a id="l00995" name="l00995"></a> 995 // Note that the number of values and IDs are still INT32 as EnSight can't handle 64bit values

<a id="l00996" name="l00996"></a> 996 [dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)(session_id, [DVS\_NODE\_ID](dynamic__visualization__store__enums_8h.xhtml#a103ab970c3f869611c5a888ec2c1f48e), test.parts[0]._id, test.mesh_node_var_scalar_int64, test.mesh_node_var_scalar_int64_size);

<a id="l00997" name="l00997"></a> 997 [dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)(session_id, [DVS\_NODE\_ID](dynamic__visualization__store__enums_8h.xhtml#a103ab970c3f869611c5a888ec2c1f48e), test.parts[2]._id, test.mesh_node_var_scalar_int64, test.mesh_node_var_scalar_int64_size);

<a id="l00998" name="l00998"></a> 998 }

<a id="l00999" name="l00999"></a> 999 }

<a id="l01000" name="l01000"></a> 1000 

<a id="l01001" name="l01001"></a> 1001 if (send_plots &amp;&amp; current_rank == plot_rank)

<a id="l01002" name="l01002"></a> 1002 {

<a id="l01003" name="l01003"></a> 1003 [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.plots[0]._id, test.plot_x_values[0], test.plot_y_values[0], test.plot_num_values);

<a id="l01004" name="l01004"></a> 1004 [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.plots[1]._id, test.plot_x_values[1], test.plot_y_values[1], test.plot_num_values);

<a id="l01005" name="l01005"></a> 1005 [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.plots[2]._id, test.plot_x_values[2], test.plot_y_values[2], test.plot_num_values);

<a id="l01006" name="l01006"></a> 1006 if (reinit_plots &amp;&amp; reinit_iter &gt;= 0) [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.reinit_plots[0]._id, test.plot_x_values[0], test.plot_y_values[0], test.plot_num_values);

<a id="l01007" name="l01007"></a> 1007 if (reinit_plots &amp;&amp; reinit_iter &gt;= 1) [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.reinit_plots[1]._id, test.plot_x_values[1], test.plot_y_values[1], test.plot_num_values);

<a id="l01008" name="l01008"></a> 1008 if (reinit_plots &amp;&amp; reinit_iter &gt;= 2) [dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)(session_id, test.reinit_plots[2]._id, test.plot_x_values[2], test.plot_y_values[2], test.plot_num_values);

<a id="l01009" name="l01009"></a> 1009 }

<a id="l01010" name="l01010"></a> 1010 [dvs\_end\_update](dynamic__visualization__store__api_8h.xhtml#ae75177bf47fcb28313e79840bf778c75)(session_id);

<a id="l01011" name="l01011"></a> 1011 

<a id="l01012" name="l01012"></a> 1012 test_dynamic_data_free(&amp;test);

<a id="l01013" name="l01013"></a> 1013 }

<a id="l01014" name="l01014"></a> 1014 }

<a id="l01015" name="l01015"></a> 1015 }

<a id="l01016" name="l01016"></a> 1016 

<a id="l01017" name="l01017"></a> 1017 //Don't look below here, thar be dragons (this whole thing needs moved to python)

<a id="l01018" name="l01018"></a> 1018 /\*

<a id="l01019" name="l01019"></a> 1019 if (test\_reinit)

<a id="l01020" name="l01020"></a> 1020 {

<a id="l01021" name="l01021"></a> 1021 reinit\_num\_timesteps = 1;

<a id="l01022" name="l01022"></a> 1022 uint32\_t current\_part\_id = 1000;

<a id="l01023" name="l01023"></a> 1023 uint32\_t current\_plot\_id = 2000;

<a id="l01024" name="l01024"></a> 1024 uint32\_t current\_var\_id = 3000;

<a id="l01025" name="l01025"></a> 1025 for (uint32\_t reinit\_iter = 3; reinit\_iter &lt; 50; reinit\_iter++)

<a id="l01026" name="l01026"></a> 1026 {

<a id="l01027" name="l01027"></a> 1027 fprintf(stderr, "Rank: %i beginning reinit iter: %i\\n", current\_rank, reinit\_iter);

<a id="l01028" name="l01028"></a> 1028 struct TestDynamicData test;

<a id="l01029" name="l01029"></a> 1029 test\_dynamic\_data\_init(&amp;test, 0, current\_rank, total\_ranks);

<a id="l01030" name="l01030"></a> 1030 dvs\_begin\_init(session\_id, dataset\_id, test.current\_rank, test.total\_ranks, test.num\_chunks);

<a id="l01031" name="l01031"></a> 1031 dvs\_set\_unit\_system(session\_id, test.unit\_system);

<a id="l01032" name="l01032"></a> 1032 

<a id="l01033" name="l01033"></a> 1033 if (send\_plots &amp;&amp; current\_rank == plot\_rank &amp;&amp; reinit\_plots) 

<a id="l01034" name="l01034"></a> 1034 {

<a id="l01035" name="l01035"></a> 1035 struct dvs\_plot\_info plot\_info;

<a id="l01036" name="l01036"></a> 1036 memset(&amp;plot\_info, 0, sizeof(plot\_info));

<a id="l01037" name="l01037"></a> 1037 plot\_info.\_id = current\_plot\_id++;

<a id="l01038" name="l01038"></a> 1038 char plot\_name\[1000\];

<a id="l01039" name="l01039"></a> 1039 sprintf(plot\_name, "Reinit-Plot-%u\\0", current\_plot\_id-1);

<a id="l01040" name="l01040"></a> 1040 plot\_info.\_name = strdup(plot\_name);

<a id="l01041" name="l01041"></a> 1041 

<a id="l01042" name="l01042"></a> 1042 dvs\_add\_plot\_info(session\_id, &amp;plot\_info, 1);

<a id="l01043" name="l01043"></a> 1043 free(plot\_info.\_name);

<a id="l01044" name="l01044"></a> 1044 }

<a id="l01045" name="l01045"></a> 1045 

<a id="l01046" name="l01046"></a> 1046 if (reinit\_parts)

<a id="l01047" name="l01047"></a> 1047 {

<a id="l01048" name="l01048"></a> 1048 struct dvs\_part\_info part\_info;

<a id="l01049" name="l01049"></a> 1049 memset(&amp;part\_info, 0, sizeof(part\_info));

<a id="l01050" name="l01050"></a> 1050 part\_info.\_id = current\_part\_id++;

<a id="l01051" name="l01051"></a> 1051 char part\_name\[1000\];

<a id="l01052" name="l01052"></a> 1052 sprintf(part\_name, "Reinit-Part-%u\\0", current\_part\_id-1);

<a id="l01053" name="l01053"></a> 1053 part\_info.\_name = strdup(part\_name);

<a id="l01054" name="l01054"></a> 1054 dvs\_add\_part\_info(session\_id, &amp;part\_info, 1);

<a id="l01055" name="l01055"></a> 1055 free(part\_info.\_name);

<a id="l01056" name="l01056"></a> 1056 }

<a id="l01057" name="l01057"></a> 1057 

<a id="l01058" name="l01058"></a> 1058 if (reinit\_vars)

<a id="l01059" name="l01059"></a> 1059 {

<a id="l01060" name="l01060"></a> 1060 struct dvs\_var\_info var\_info;

<a id="l01061" name="l01061"></a> 1061 memset(&amp;var\_info, 0, sizeof(var\_info));

<a id="l01062" name="l01062"></a> 1062 

<a id="l01063" name="l01063"></a> 1063 var\_info.\_id = current\_var\_id++;

<a id="l01064" name="l01064"></a> 1064 char var\_name\[1000\];

<a id="l01065" name="l01065"></a> 1065 sprintf(var\_name, "Reinit-Var-%u\\0", current\_var\_id-1);

<a id="l01066" name="l01066"></a> 1066 var\_info.\_name = strdup(var\_name);

<a id="l01067" name="l01067"></a> 1067 var\_info.\_location = NODE;

<a id="l01068" name="l01068"></a> 1068 var\_info.\_type = SCALAR;

<a id="l01069" name="l01069"></a> 1069 dvs\_add\_var\_info(session\_id, &amp;var\_info, 1);

<a id="l01070" name="l01070"></a> 1070 free(var\_info.\_name);

<a id="l01071" name="l01071"></a> 1071 }

<a id="l01072" name="l01072"></a> 1072 

<a id="l01073" name="l01073"></a> 1073 dvs\_end\_init(session\_id);

<a id="l01074" name="l01074"></a> 1074 //Push 2 more timesteps

<a id="l01075" name="l01075"></a> 1075 for (uint32\_t i = max\_timesteps + (reinit\_iter \* reinit\_num\_timesteps); i &lt; max\_timesteps + ((reinit\_iter+1) \* reinit\_num\_timesteps); i++)

<a id="l01076" name="l01076"></a> 1076 {

<a id="l01077" name="l01077"></a> 1077 if (i &gt; 1 + starting\_timestep &amp;&amp; msec\_delay)

<a id="l01078" name="l01078"></a> 1078 {

<a id="l01079" name="l01079"></a> 1079 #ifdef \_WIN32

<a id="l01080" name="l01080"></a> 1080 Sleep(msec\_delay);

<a id="l01081" name="l01081"></a> 1081 #else

<a id="l01082" name="l01082"></a> 1082 usleep(msec\_delay\*1000);

<a id="l01083" name="l01083"></a> 1083 #endif

<a id="l01084" name="l01084"></a> 1084 }

<a id="l01085" name="l01085"></a> 1085 fprintf

<a id="l01086" name="l01086"></a> 1086 (

<a id="l01087" name="l01087"></a> 1087 stderr, "Rank: %i of %i Sending Timestep: %i of %i, Reinit: %i\\n",

<a id="l01088" name="l01088"></a> 1088 (current\_rank),

<a id="l01089" name="l01089"></a> 1089 total\_ranks,

<a id="l01090" name="l01090"></a> 1090 i,

<a id="l01091" name="l01091"></a> 1091 max\_timesteps + ((reinit\_iter+1) \* reinit\_num\_timesteps)-1,

<a id="l01092" name="l01092"></a> 1092 reinit\_iter

<a id="l01093" name="l01093"></a> 1093 );

<a id="l01094" name="l01094"></a> 1094 

<a id="l01095" name="l01095"></a> 1095 struct TestDynamicData test;

<a id="l01096" name="l01096"></a> 1096 test\_dynamic\_data\_init(&amp;test, i, current\_rank, total\_ranks);

<a id="l01097" name="l01097"></a> 1097 test.ghosts = create\_ghosts;

<a id="l01098" name="l01098"></a> 1098 test\_dynamic\_data\_create\_mesh\_and\_elements(&amp;test, width, height, depth);

<a id="l01099" name="l01099"></a> 1099 

<a id="l01100" name="l01100"></a> 1100 dvs\_begin\_update(session\_id, update\_num++, current\_rank, test.current\_chunk, test.time);

<a id="l01101" name="l01101"></a> 1101 

<a id="l01102" name="l01102"></a> 1102 if (send\_hex\_elems) dvs\_update\_nodes(session\_id, test.parts\[0\].\_id, test.mesh\_x\_coords, test.mesh\_y\_coords, test.mesh\_z\_coords, test.mesh\_coords\_size);

<a id="l01103" name="l01103"></a> 1103 if (send\_pnt\_elems) dvs\_update\_nodes(session\_id, test.parts\[1\].\_id, test.mesh\_x\_coords, test.mesh\_y\_coords, test.mesh\_z\_coords, test.mesh\_coords\_size);

<a id="l01104" name="l01104"></a> 1104 if (send\_nfaced\_elems) dvs\_update\_nodes(session\_id, test.parts\[2\].\_id, test.mesh\_x\_coords, test.mesh\_y\_coords, test.mesh\_z\_coords, test.mesh\_coords\_size);

<a id="l01105" name="l01105"></a> 1105 if (send\_tri\_quad\_elems) dvs\_update\_nodes(session\_id, test.parts\[3\].\_id, test.mesh\_x\_coords, test.mesh\_y\_coords, test.mesh\_z\_coords, test.mesh\_coords\_size);

<a id="l01106" name="l01106"></a> 1106 if (send\_nsided\_elems) dvs\_update\_nodes(session\_id, test.parts\[4\].\_id, test.polymesh\_x\_coords, test.polymesh\_y\_coords, test.polymesh\_z\_coords, test.polymesh\_coords\_size);

<a id="l01107" name="l01107"></a> 1107 

<a id="l01108" name="l01108"></a> 1108 if (send\_elems)

<a id="l01109" name="l01109"></a> 1109 {

<a id="l01110" name="l01110"></a> 1110 if (send\_hex\_elems)

<a id="l01111" name="l01111"></a> 1111 {

<a id="l01112" name="l01112"></a> 1112 dvs\_update\_elements(session\_id, test.parts\[0\].\_id, HEXAHEDRON, test.mesh\_hex\_elem\_coords, test.mesh\_hex\_elem\_coords\_size);

<a id="l01113" name="l01113"></a> 1113 if (test.mesh\_hex\_ghost\_elem\_coords\_size &gt; 0)

<a id="l01114" name="l01114"></a> 1114 {

<a id="l01115" name="l01115"></a> 1115 dvs\_update\_elements(session\_id, test.parts\[0\].\_id, HEXAHEDRON\_GHOST, test.mesh\_hex\_ghost\_elem\_coords, test.mesh\_hex\_ghost\_elem\_coords\_size);

<a id="l01116" name="l01116"></a> 1116 }

<a id="l01117" name="l01117"></a> 1117 }

<a id="l01118" name="l01118"></a> 1118 

<a id="l01119" name="l01119"></a> 1119 if (send\_nfaced\_elems)

<a id="l01120" name="l01120"></a> 1120 {

<a id="l01121" name="l01121"></a> 1121 dvs\_update\_elements\_polyhedral

<a id="l01122" name="l01122"></a> 1122 (

<a id="l01123" name="l01123"></a> 1123 session\_id,

<a id="l01124" name="l01124"></a> 1124 test.parts\[2\].\_id,

<a id="l01125" name="l01125"></a> 1125 CONVEX\_POLYHEDRON,

<a id="l01126" name="l01126"></a> 1126 test.mesh\_nfaced\_hex\_elem\_faces\_per\_elem,

<a id="l01127" name="l01127"></a> 1127 test.mesh\_nfaced\_hex\_elem\_faces\_per\_elem\_size,

<a id="l01128" name="l01128"></a> 1128 test.mesh\_nfaced\_hex\_elem\_nodes\_per\_face,

<a id="l01129" name="l01129"></a> 1129 test.mesh\_nfaced\_hex\_elem\_nodes\_per\_face\_size,

<a id="l01130" name="l01130"></a> 1130 test.mesh\_nfaced\_hex\_elem\_coords,

<a id="l01131" name="l01131"></a> 1131 test.mesh\_nfaced\_hex\_elem\_coords\_size

<a id="l01132" name="l01132"></a> 1132 );

<a id="l01133" name="l01133"></a> 1133 if (test.mesh\_nfaced\_hex\_ghost\_elem\_coords\_size &gt; 0)

<a id="l01134" name="l01134"></a> 1134 {

<a id="l01135" name="l01135"></a> 1135 dvs\_update\_elements\_polyhedral

<a id="l01136" name="l01136"></a> 1136 (

<a id="l01137" name="l01137"></a> 1137 session\_id,

<a id="l01138" name="l01138"></a> 1138 test.parts\[2\].\_id,

<a id="l01139" name="l01139"></a> 1139 CONVEX\_POLYHEDRON\_GHOST,

<a id="l01140" name="l01140"></a> 1140 test.mesh\_nfaced\_hex\_ghost\_elem\_faces\_per\_elem,

<a id="l01141" name="l01141"></a> 1141 test.mesh\_nfaced\_hex\_ghost\_elem\_faces\_per\_elem\_size,

<a id="l01142" name="l01142"></a> 1142 test.mesh\_nfaced\_hex\_ghost\_elem\_nodes\_per\_face,

<a id="l01143" name="l01143"></a> 1143 test.mesh\_nfaced\_hex\_ghost\_elem\_nodes\_per\_face\_size,

<a id="l01144" name="l01144"></a> 1144 test.mesh\_nfaced\_hex\_ghost\_elem\_coords,

<a id="l01145" name="l01145"></a> 1145 test.mesh\_nfaced\_hex\_ghost\_elem\_coords\_size

<a id="l01146" name="l01146"></a> 1146 );

<a id="l01147" name="l01147"></a> 1147 }

<a id="l01148" name="l01148"></a> 1148 }

<a id="l01149" name="l01149"></a> 1149 

<a id="l01150" name="l01150"></a> 1150 if (send\_nsided\_elems &amp;&amp; current\_rank == 0)

<a id="l01151" name="l01151"></a> 1151 {

<a id="l01152" name="l01152"></a> 1152 //Only send if current rank is 0 as we aren't

<a id="l01153" name="l01153"></a> 1153 //splitting this part up based on rank

<a id="l01154" name="l01154"></a> 1154 dvs\_update\_elements\_polygon

<a id="l01155" name="l01155"></a> 1155 (

<a id="l01156" name="l01156"></a> 1156 session\_id,

<a id="l01157" name="l01157"></a> 1157 test.parts\[4\].\_id,

<a id="l01158" name="l01158"></a> 1158 N\_SIDED\_POLYGON,

<a id="l01159" name="l01159"></a> 1159 test.polymesh\_elem\_nodes\_per\_face,

<a id="l01160" name="l01160"></a> 1160 test.polymesh\_elem\_nodes\_per\_face\_size,

<a id="l01161" name="l01161"></a> 1161 test.polymesh\_elem\_nodes,

<a id="l01162" name="l01162"></a> 1162 test.polymesh\_elem\_nodes\_size

<a id="l01163" name="l01163"></a> 1163 );

<a id="l01164" name="l01164"></a> 1164 }

<a id="l01165" name="l01165"></a> 1165 

<a id="l01166" name="l01166"></a> 1166 if (send\_pnt\_elems) dvs\_update\_elements(session\_id, test.parts\[1\].\_id, PNT, test.mesh\_point\_elem\_coords, test.mesh\_point\_elem\_coords\_size);

<a id="l01167" name="l01167"></a> 1167 

<a id="l01168" name="l01168"></a> 1168 if (send\_tri\_quad\_elems)

<a id="l01169" name="l01169"></a> 1169 {

<a id="l01170" name="l01170"></a> 1170 dvs\_update\_elements(session\_id, test.parts\[3\].\_id, QUADRANGLE, test.mesh\_quad\_elem\_coords, test.mesh\_quad\_elem\_coords\_size);

<a id="l01171" name="l01171"></a> 1171 dvs\_update\_elements(session\_id, test.parts\[3\].\_id, TRIANGLE, test.mesh\_tri\_elem\_coords, test.mesh\_tri\_elem\_coords\_size);

<a id="l01172" name="l01172"></a> 1172 }

<a id="l01173" name="l01173"></a> 1173 }

<a id="l01174" name="l01174"></a> 1174 

<a id="l01175" name="l01175"></a> 1175 if (send\_vars)

<a id="l01176" name="l01176"></a> 1176 {

<a id="l01177" name="l01177"></a> 1177 //Case vars not working correctly with DVS

<a id="l01178" name="l01178"></a> 1178 if (send\_case\_vars) dvs\_update\_var\_case\_scalar(session\_id, test.vars\[6\].\_id, test.case\_var\_value);

<a id="l01179" name="l01179"></a> 1179 if (send\_case\_vars &amp;&amp; reinit\_vars &amp;&amp; reinit\_iter &gt;= 0) dvs\_update\_var\_case\_scalar(session\_id, test.reinit\_case\_vars\[0\].\_id, (test.case\_var\_value\*-1.f));

<a id="l01180" name="l01180"></a> 1180 if (send\_case\_vars &amp;&amp; reinit\_vars &amp;&amp; reinit\_iter &gt;= 1) dvs\_update\_var\_case\_scalar(session\_id, test.reinit\_case\_vars\[1\].\_id, (test.case\_var\_value\*-1.f)-10.f);

<a id="l01181" name="l01181"></a> 1181 if (send\_case\_vars &amp;&amp; reinit\_vars &amp;&amp; reinit\_iter &gt;= 2) dvs\_update\_var\_case\_scalar(session\_id, test.reinit\_case\_vars\[2\].\_id, (test.case\_var\_value\*-1.f)-20.f);

<a id="l01182" name="l01182"></a> 1182 dvs\_update\_var\_part\_scalar(session\_id, test.vars\[4\].\_id, test.parts\[0\].\_id, test.part\_scalar\[0\]);

<a id="l01183" name="l01183"></a> 1183 dvs\_update\_var\_part\_scalar(session\_id, test.vars\[4\].\_id, test.parts\[1\].\_id, test.part\_scalar\[1\]);

<a id="l01184" name="l01184"></a> 1184 if (send\_hex\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[2\].\_id, test.parts\[0\].\_id, HEXAHEDRON, test.mesh\_hex\_elem\_var\_scalar, test.mesh\_hex\_elem\_var\_scalar\_size);

<a id="l01185" name="l01185"></a> 1185 if (send\_hex\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[5\].\_id, test.parts\[0\].\_id, HEXAHEDRON, test.mesh\_hex\_elem\_var\_rank\_scalar, test.mesh\_hex\_elem\_var\_rank\_scalar\_size);

<a id="l01186" name="l01186"></a> 1186 

<a id="l01187" name="l01187"></a> 1187 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l01188" name="l01188"></a> 1188 if (send\_nfaced\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[2\].\_id, test.parts\[2\].\_id, CONVEX\_POLYHEDRON, test.mesh\_hex\_elem\_var\_scalar, test.mesh\_hex\_elem\_var\_scalar\_size);

<a id="l01189" name="l01189"></a> 1189 if (send\_nfaced\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[5\].\_id, test.parts\[2\].\_id, CONVEX\_POLYHEDRON, test.mesh\_hex\_elem\_var\_rank\_scalar, test.mesh\_hex\_elem\_var\_rank\_scalar\_size);

<a id="l01190" name="l01190"></a> 1190 

<a id="l01191" name="l01191"></a> 1191 if (test.mesh\_hex\_ghost\_elem\_var\_scalar\_size &gt; 0)

<a id="l01192" name="l01192"></a> 1192 {

<a id="l01193" name="l01193"></a> 1193 if (send\_hex\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[2\].\_id, test.parts\[0\].\_id, HEXAHEDRON\_GHOST, test.mesh\_hex\_ghost\_elem\_var\_scalar, test.mesh\_hex\_ghost\_elem\_var\_scalar\_size);

<a id="l01194" name="l01194"></a> 1194 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l01195" name="l01195"></a> 1195 if (send\_nfaced\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[2\].\_id, test.parts\[2\].\_id, CONVEX\_POLYHEDRON\_GHOST, test.mesh\_hex\_ghost\_elem\_var\_scalar, test.mesh\_hex\_ghost\_elem\_var\_scalar\_size);

<a id="l01196" name="l01196"></a> 1196 }

<a id="l01197" name="l01197"></a> 1197 if (test.mesh\_hex\_ghost\_elem\_var\_rank\_scalar\_size &gt; 0)

<a id="l01198" name="l01198"></a> 1198 {

<a id="l01199" name="l01199"></a> 1199 if (send\_hex\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[5\].\_id, test.parts\[0\].\_id, HEXAHEDRON\_GHOST, test.mesh\_hex\_ghost\_elem\_var\_rank\_scalar, test.mesh\_hex\_ghost\_elem\_var\_rank\_scalar\_size);

<a id="l01200" name="l01200"></a> 1200 //N-FACED Elements use the same elemental vars for now as hex elements

<a id="l01201" name="l01201"></a> 1201 if (send\_nfaced\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[5\].\_id, test.parts\[2\].\_id, CONVEX\_POLYHEDRON\_GHOST, test.mesh\_hex\_ghost\_elem\_var\_rank\_scalar, test.mesh\_hex\_ghost\_elem\_var\_rank\_scalar\_size);

<a id="l01202" name="l01202"></a> 1202 }

<a id="l01203" name="l01203"></a> 1203 

<a id="l01204" name="l01204"></a> 1204 if (send\_pnt\_elems) dvs\_update\_var\_element\_scalar(session\_id, test.vars\[5\].\_id, test.parts\[1\].\_id, PNT, test.mesh\_point\_elem\_var\_rank\_scalar, test.mesh\_point\_elem\_var\_rank\_scalar\_size);

<a id="l01205" name="l01205"></a> 1205 

<a id="l01206" name="l01206"></a> 1206 if (send\_nfaced\_elems) dvs\_update\_var\_element\_vector(session\_id, test.vars\[3\].\_id, test.parts\[0\].\_id, HEXAHEDRON, test.mesh\_hex\_elem\_var\_vector, test.mesh\_hex\_elem\_var\_vector\_size);

<a id="l01207" name="l01207"></a> 1207 if (test.mesh\_hex\_ghost\_elem\_var\_vector\_size &gt; 0)

<a id="l01208" name="l01208"></a> 1208 {

<a id="l01209" name="l01209"></a> 1209 if (send\_nfaced\_elems) dvs\_update\_var\_element\_vector(session\_id, test.vars\[3\].\_id, test.parts\[0\].\_id, HEXAHEDRON\_GHOST, test.mesh\_hex\_ghost\_elem\_var\_vector, test.mesh\_hex\_ghost\_elem\_var\_vector\_size);

<a id="l01210" name="l01210"></a> 1210 }

<a id="l01211" name="l01211"></a> 1211 

<a id="l01212" name="l01212"></a> 1212 if (send\_tri\_quad\_elems)

<a id="l01213" name="l01213"></a> 1213 {

<a id="l01214" name="l01214"></a> 1214 dvs\_update\_var\_element\_scalar(session\_id, test.vars\[2\].\_id, test.parts\[3\].\_id, QUADRANGLE, test.mesh\_quad\_elem\_var\_scalar, test.mesh\_quad\_elem\_var\_scalar\_size);

<a id="l01215" name="l01215"></a> 1215 dvs\_update\_var\_element\_scalar(session\_id, test.vars\[5\].\_id, test.parts\[3\].\_id, QUADRANGLE, test.mesh\_quad\_elem\_var\_rank\_scalar, test.mesh\_quad\_elem\_var\_rank\_scalar\_size);

<a id="l01216" name="l01216"></a> 1216 dvs\_update\_var\_element\_scalar(session\_id, test.vars\[2\].\_id, test.parts\[3\].\_id, TRIANGLE, test.mesh\_tri\_elem\_var\_scalar, test.mesh\_tri\_elem\_var\_scalar\_size);

<a id="l01217" name="l01217"></a> 1217 dvs\_update\_var\_element\_scalar(session\_id, test.vars\[5\].\_id, test.parts\[3\].\_id, TRIANGLE, test.mesh\_tri\_elem\_var\_rank\_scalar, test.mesh\_tri\_elem\_var\_rank\_scalar\_size);

<a id="l01218" name="l01218"></a> 1218 }

<a id="l01219" name="l01219"></a> 1219 

<a id="l01220" name="l01220"></a> 1220 dvs\_update\_var\_node\_scalar(session\_id, test.vars\[0\].\_id, test.parts\[0\].\_id, test.mesh\_node\_var\_scalar, test.mesh\_node\_var\_scalar\_size);

<a id="l01221" name="l01221"></a> 1221 dvs\_update\_var\_node\_vector(session\_id, test.vars\[1\].\_id, test.parts\[0\].\_id, test.mesh\_node\_var\_vector, test.mesh\_node\_var\_vector\_size);

<a id="l01222" name="l01222"></a> 1222 dvs\_update\_var\_node\_scalar(session\_id, test.vars\[0\].\_id, test.parts\[2\].\_id, test.mesh\_node\_var\_scalar, test.mesh\_node\_var\_scalar\_size);

<a id="l01223" name="l01223"></a> 1223 dvs\_update\_var\_node\_vector(session\_id, test.vars\[1\].\_id, test.parts\[2\].\_id, test.mesh\_node\_var\_vector, test.mesh\_node\_var\_vector\_size);

<a id="l01224" name="l01224"></a> 1224 }

<a id="l01225" name="l01225"></a> 1225 

<a id="l01226" name="l01226"></a> 1226 if (send\_plots &amp;&amp; current\_rank == plot\_rank)

<a id="l01227" name="l01227"></a> 1227 {

<a id="l01228" name="l01228"></a> 1228 dvs\_update\_plot(session\_id, test.plots\[0\].\_id, test.plot\_x\_values\[0\], test.plot\_y\_values\[0\], test.plot\_num\_values);

<a id="l01229" name="l01229"></a> 1229 dvs\_update\_plot(session\_id, test.plots\[1\].\_id, test.plot\_x\_values\[1\], test.plot\_y\_values\[1\], test.plot\_num\_values);

<a id="l01230" name="l01230"></a> 1230 dvs\_update\_plot(session\_id, test.plots\[2\].\_id, test.plot\_x\_values\[2\], test.plot\_y\_values\[2\], test.plot\_num\_values);

<a id="l01231" name="l01231"></a> 1231 if (reinit\_plots &amp;&amp; reinit\_iter &gt;= 0) dvs\_update\_plot(session\_id, test.reinit\_plots\[0\].\_id, test.plot\_x\_values\[0\], test.plot\_y\_values\[0\], test.plot\_num\_values);

<a id="l01232" name="l01232"></a> 1232 if (reinit\_plots &amp;&amp; reinit\_iter &gt;= 1) dvs\_update\_plot(session\_id, test.reinit\_plots\[1\].\_id, test.plot\_x\_values\[1\], test.plot\_y\_values\[1\], test.plot\_num\_values);

<a id="l01233" name="l01233"></a> 1233 if (reinit\_plots &amp;&amp; reinit\_iter &gt;= 2) dvs\_update\_plot(session\_id, test.reinit\_plots\[2\].\_id, test.plot\_x\_values\[2\], test.plot\_y\_values\[2\], test.plot\_num\_values);

<a id="l01234" name="l01234"></a> 1234 }

<a id="l01235" name="l01235"></a> 1235 dvs\_end\_update(session\_id);

<a id="l01236" name="l01236"></a> 1236 

<a id="l01237" name="l01237"></a> 1237 test\_dynamic\_data\_free(&amp;test);

<a id="l01238" name="l01238"></a> 1238 }

<a id="l01239" name="l01239"></a> 1239 }

<a id="l01240" name="l01240"></a> 1240 }\*/

<a id="l01241" name="l01241"></a> 1241 [dvs\_print\_stats](dynamic__visualization__store__api_8h.xhtml#a345e9b656b994a3e1677b354077b2fff)(session_id);

<a id="l01242" name="l01242"></a> 1242 if (start_server)

<a id="l01243" name="l01243"></a> 1243 {

<a id="l01244" name="l01244"></a> 1244 //If we started our own server wait for the pending timesteps to clear before tearing everything down

<a id="l01245" name="l01245"></a> 1245 //in case it was writing stuff. 

<a id="l01246" name="l01246"></a> 1246 

<a id="l01247" name="l01247"></a> 1247 //Not waiting isn't a problem but if we had another process connecting to this

<a id="l01248" name="l01248"></a> 1248 //process' server and sending data we might lose the last timestep since it won't be 

<a id="l01249" name="l01249"></a> 1249 //fully complete and we would not have written it yet.

<a id="l01250" name="l01250"></a> 1250 uint32_t num_pending = 1;

<a id="l01251" name="l01251"></a> 1251 uint32_t num_complete = 0;

<a id="l01252" name="l01252"></a> 1252 while (num_pending &gt; 0) {

<a id="l01253" name="l01253"></a> 1253 [dvs\_ret](dynamic__visualization__store__error__codes_8h.xhtml#a1d7466ae72e89fe36cbf2408b4f7d9c1) error = [dvs\_server\_timestep\_count](dynamic__visualization__store__api_8h.xhtml#adeb64f5db63b08a79f2a59a85c5d9683)(server_id, &amp;num_pending, &amp;num_complete);

<a id="l01254" name="l01254"></a> 1254 if (error != [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) break;

<a id="l01255" name="l01255"></a> 1255 // Avoid burning up a CPU waiting for the I/O to complete

<a id="l01256" name="l01256"></a> 1256 const uint32_t temp_delay_ms = 50;

<a id="l01257" name="l01257"></a> 1257\#ifdef \_WIN32

<a id="l01258" name="l01258"></a> 1258 Sleep(temp_delay_ms);

<a id="l01259" name="l01259"></a> 1259\#else

<a id="l01260" name="l01260"></a> 1260 usleep(temp_delay_ms * 1000);

<a id="l01261" name="l01261"></a> 1261\#endif

<a id="l01262" name="l01262"></a> 1262 }

<a id="l01263" name="l01263"></a> 1263 }

<a id="l01264" name="l01264"></a> 1264 [dvs\_shutdown](dynamic__visualization__store__api_8h.xhtml#a815bb1d2251e35e3bfd3c44a4a338052)();

<a id="l01265" name="l01265"></a> 1265 return 0;

<a id="l01266" name="l01266"></a> 1266}



[dynamic\_visualization\_store\_api.h](dynamic__visualization__store__api_8h.xhtml)

C API for using Dynamic Visualization Store.



[dvs\_update\_var\_element\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a008017a6bb9e8c8488e392d3cf58f7ad)

DVS_DLL_EXPORT dvs_ret dvs_update_var_element_scalar_int64(int32_t session_id, uint32_t var_id, uint32_t part_id, enum dvs_element_type type, const int64_t *scalars, uint32_t num_vals)

Update a field of int64 scalars on elements.



[dvs\_update\_elements](dynamic__visualization__store__api_8h.xhtml#a05061077e83272567bbc43367c0b8e74)

DVS_DLL_EXPORT dvs_ret dvs_update_elements(int32_t session_id, uint32_t part_id, enum dvs_element_type type, const uint32_t *indices, uint32_t num_indices)

Update elements for a specific part and element type.



[dvs\_server\_create](dynamic__visualization__store__api_8h.xhtml#a06196ff56fe7f270172239c1be4ce0cd)

DVS_DLL_EXPORT dvs_ret dvs_server_create(const char *server_uri, int32_t *server_id)

Create a Dynamic Visualization Store server instance for the client to connect.



[dvs\_add\_var\_info](dynamic__visualization__store__api_8h.xhtml#a0b9bbed0db0a5f3e91af8a02aed48e1e)

DVS_DLL_EXPORT dvs_ret dvs_add_var_info(int32_t session_id, const struct dvs_var_info *vars, uint32_t num_vars)

Add var info for simulation.



[dvs\_update\_nodes\_parallelepiped](dynamic__visualization__store__api_8h.xhtml#a0d0312c5143eb8de2e08a903c929d8c3)

DVS_DLL_EXPORT dvs_ret dvs_update_nodes_parallelepiped(int32_t session_id, uint32_t part_id, const uint32_t global_ijk_max[3], const uint32_t local_ijk_min[3], const uint32_t local_ijk_max[3], const float origin[3], const float dir_i[3], const float dir_j[3], const float dir_k[3], const float *i_vals, const float *j_vals, const float *k_vals)

Update the nodes for a parallelepiped structured part.



[dvs\_server\_get\_uri](dynamic__visualization__store__api_8h.xhtml#a11887bd000ddab30ababc765e244b094)

DVS_DLL_EXPORT dvs_ret dvs_server_get_uri(int32_t server_id, char *uri, uint32_t *size)

Return the URI of the requested server.



[dvs\_set\_unit\_system](dynamic__visualization__store__api_8h.xhtml#a14b52ceff846429259cab42ee11579f0)

DVS_DLL_EXPORT dvs_ret dvs_set_unit_system(int32_t session_id, const char *system)

Set a unit system (optional but recommended)



[dvs\_convert\_rotation\_to\_quaternion](dynamic__visualization__store__api_8h.xhtml#a21864240d89612eb1fb81fdceb829d1e)

DVS_DLL_EXPORT dvs_ret dvs_convert_rotation_to_quaternion(int32_t session_id, const float *axis_start, const float *axis_end, float relative_rotation_angle, float *quaternion)

Utility API to convert a rigid body rotation described by the rotation axis and the angle of rotation...



[dvs\_print\_stats](dynamic__visualization__store__api_8h.xhtml#a345e9b656b994a3e1677b354077b2fff)

DVS_DLL_EXPORT dvs_ret dvs_print_stats(int32_t session_id)

This will be deprecated, just placeholder for printing out stats that the client is collecting for pr...



[dvs\_begin\_init](dynamic__visualization__store__api_8h.xhtml#a3744408f15cd4a36d19880d24d442a0d)

DVS_DLL_EXPORT dvs_ret dvs_begin_init(int32_t session_id, const char *dataset_name, uint32_t current_rank, uint32_t total_ranks, uint32_t num_chunks)

begin setup of rank



[dvs\_update\_plot](dynamic__visualization__store__api_8h.xhtml#a433ce5100e551dca71dee92b0afe1563)

DVS_DLL_EXPORT dvs_ret dvs_update_plot(int32_t session_id, uint32_t plot_id, const float *x_values, const float *y_values, uint32_t num_values)

Update the data for a plot.



[dvs\_add\_part\_info](dynamic__visualization__store__api_8h.xhtml#a4e8a904ae19fd7f2b0c300543bc42576)

DVS_DLL_EXPORT dvs_ret dvs_add_part_info(int32_t session_id, const struct dvs_part_info *parts, uint32_t num_parts)

Add part info for simulation.



[dvs\_delete\_item](dynamic__visualization__store__api_8h.xhtml#a5237ada583b0cb7817d12d1135f9349e)

DVS_DLL_EXPORT dvs_ret dvs_delete_item(int32_t session_id, uint32_t update_num, uint32_t rank, const char *filter)

Delete an item.



[dvs\_get\_num\_part\_info](dynamic__visualization__store__api_8h.xhtml#a5a6cd68f61a53bce6780d3ef95038277)

DVS_DLL_EXPORT uint32_t dvs_get_num_part_info(int32_t session_id)

Get the number of dvs_part_info objects for this client session.



[dvs\_get\_part\_info](dynamic__visualization__store__api_8h.xhtml#a5b5a64e37bd6830f518947e7a0f7985e)

DVS_DLL_EXPORT const struct dvs_part_info * dvs_get_part_info(int32_t session_id, uint32_t index)

Get the dvs_part_info object for this index.



[dvs\_update\_elements\_polygon](dynamic__visualization__store__api_8h.xhtml#a763afb059b0301ba18fefe3cd126ce79)

DVS_DLL_EXPORT dvs_ret dvs_update_elements_polygon(int32_t session_id, uint32_t part_id, enum dvs_element_type type, const uint32_t *nodes_per_polygon, uint32_t nodes_per_polygon_size, const uint32_t *indices, uint32_t indices_size)

Update N-SIDED elements.



[dvs\_update\_var\_node\_scalar\_int64](dynamic__visualization__store__api_8h.xhtml#a7c130a702347b1baa7e884303f3ce9d5)

DVS_DLL_EXPORT dvs_ret dvs_update_var_node_scalar_int64(int32_t session_id, uint32_t var_id, uint32_t part_id, const int64_t *scalars, uint32_t num_vals)

Update a field of int64 scalars on nodes.



[dvs\_update\_nodes](dynamic__visualization__store__api_8h.xhtml#a7fdc956a0712ef2a60195fa013e59222)

DVS_DLL_EXPORT dvs_ret dvs_update_nodes(int32_t session_id, uint32_t part_id, const float *x, const float *y, const float *z, uint32_t num_values)

Update nodes for a specific part.



[dvs\_shutdown](dynamic__visualization__store__api_8h.xhtml#a815bb1d2251e35e3bfd3c44a4a338052)

DVS_DLL_EXPORT void dvs_shutdown()

Shuts down the api, performing any necessary cleanup, also calls dvs_server_shutdown_all() if any ser...



[dvs\_update\_var\_part\_scalar](dynamic__visualization__store__api_8h.xhtml#a853ed7ef2608619b82dd51055cee3f60)

DVS_DLL_EXPORT dvs_ret dvs_update_var_part_scalar(int32_t session_id, uint32_t var_id, uint32_t part_id, float scalar)

Update value of part scalar.



[dvs\_get\_var\_info](dynamic__visualization__store__api_8h.xhtml#a8992f4a5e6c36c5e4da67968b170313c)

DVS_DLL_EXPORT const struct dvs_var_info * dvs_get_var_info(int32_t session_id, uint32_t index)

Get the dvs_var_info object for this index.



[dvs\_update\_var\_node\_vector](dynamic__visualization__store__api_8h.xhtml#a9086155711ed76c6141bdde2291f140a)

DVS_DLL_EXPORT dvs_ret dvs_update_var_node_vector(int32_t session_id, uint32_t var_id, uint32_t part_id, const float *values, uint32_t num_values)

Update a field of vectors on nodes.



[dvs\_get\_num\_plot\_info](dynamic__visualization__store__api_8h.xhtml#aa44dcb6596c7833d2b9fe2a0435bb4c4)

DVS_DLL_EXPORT uint32_t dvs_get_num_plot_info(int32_t session_id)

Get the number of dvs_plot_info objects for this client session.



[dvs\_server\_start](dynamic__visualization__store__api_8h.xhtml#aa5722a5316ee73bdd998c9a327e8cb3d)

DVS_DLL_EXPORT dvs_ret dvs_server_start(int32_t server_id, uint32_t server_number, uint32_t local_ranks)

Start a Dynamic Visualization Store server in a separate thread to receive data from solver node.



[dvs\_begin\_update](dynamic__visualization__store__api_8h.xhtml#aaac598618be531e8aa2b72ad41e18537)

DVS_DLL_EXPORT dvs_ret dvs_begin_update(int32_t session_id, uint32_t update_num, uint32_t rank, uint32_t chunk, float time)

Method to begin an update.



[dvs\_update\_var\_element\_scalar](dynamic__visualization__store__api_8h.xhtml#aae3c0a5237c193d05266fba6e6798a4c)

DVS_DLL_EXPORT dvs_ret dvs_update_var_element_scalar(int32_t session_id, uint32_t var_id, uint32_t part_id, enum dvs_element_type type, const float *scalars, uint32_t num_vals)

Update a field of scalars on elements.



[dvs\_add\_part\_rigid\_body\_motion](dynamic__visualization__store__api_8h.xhtml#ab768f6a1427178b8dd5e8888f19da0d4)

DVS_DLL_EXPORT dvs_ret dvs_add_part_rigid_body_motion(int32_t session_id, uint32_t update_num, uint32_t part_id, const float *quaternion, const float *displacement, const float *cg_offset)

Add rigid body motion data to a specific part for a specific update. Any non-needed input can be set ...



[dvs\_get\_version](dynamic__visualization__store__api_8h.xhtml#ab8e85aad9b7ec78976db76017803a6b6)

DVS_DLL_EXPORT const char * dvs_get_version()

Get the current version of the built library.



[dvs\_connect](dynamic__visualization__store__api_8h.xhtml#ab96812d4412a9af10e7e7924c572a7c9)

DVS_DLL_EXPORT dvs_ret dvs_connect(int32_t server_id, enum dvs_client_flags flags, const char *secret, int32_t *session_id)

Connect to dvs server.



[dvs\_get\_plot\_info](dynamic__visualization__store__api_8h.xhtml#ac3fca7087e8b4366686cef98a95f241f)

DVS_DLL_EXPORT const struct dvs_plot_info * dvs_get_plot_info(int32_t session_id, uint32_t index)

Get the dvs_plot_info object for this index.



[dvs\_end\_init](dynamic__visualization__store__api_8h.xhtml#ac4d82529053c964b76bd42916c51835e)

DVS_DLL_EXPORT dvs_ret dvs_end_init(int32_t session_id)

end the initialization of the rank



[dvs\_add\_metadata](dynamic__visualization__store__api_8h.xhtml#ac5c67fdc3806bf89eebbe49e6daea5c2)

DVS_DLL_EXPORT dvs_ret dvs_add_metadata(int32_t session_id, const char *const metadata_keys[], const char *const metadata_vals[], uint32_t num_metadata_pairs)

Add metadata for the current dataset.



[dvs\_get\_num\_var\_info](dynamic__visualization__store__api_8h.xhtml#ad75625cedecbcd365c868c9893c6c2d8)

DVS_DLL_EXPORT uint32_t dvs_get_num_var_info(int32_t session_id)

Get the number of dvs_var_info objects for this client session.



[dvs\_update\_var\_case\_scalar](dynamic__visualization__store__api_8h.xhtml#ad97de401448e85da8cb13d3e45cfb227)

DVS_DLL_EXPORT dvs_ret dvs_update_var_case_scalar(int32_t session_id, uint32_t var_id, float scalar)

Update value of case scalar.



[dvs\_server\_timestep\_count](dynamic__visualization__store__api_8h.xhtml#adeb64f5db63b08a79f2a59a85c5d9683)

DVS_DLL_EXPORT dvs_ret dvs_server_timestep_count(int32_t server_id, uint32_t *num_pending, uint32_t *num_complete)

Query a Dynamic Visualization Store server as to the number of timesteps it contains.



[dvs\_register\_log\_func](dynamic__visualization__store__api_8h.xhtml#ae57cf8cf0b10421aace6df32a98c60ae)

DVS_DLL_EXPORT dvs_ret dvs_register_log_func(int32_t session_id, void *user_data, dvs_log_func func, enum dvs_log_flags flags)

Register logging function for client to call (optional but recommended)



[dvs\_end\_update](dynamic__visualization__store__api_8h.xhtml#ae75177bf47fcb28313e79840bf778c75)

DVS_DLL_EXPORT dvs_ret dvs_end_update(int32_t session_id)

Call to end the update for this timestep/rank/chunk.



[dvs\_server\_set\_option](dynamic__visualization__store__api_8h.xhtml#ae8abdb8455cea44bbd9f509c1a063516)

DVS_DLL_EXPORT dvs_ret dvs_server_set_option(int32_t server_id, const char *key, const char *value)

Add an option to the server.



[dvs\_update\_var\_node\_scalar](dynamic__visualization__store__api_8h.xhtml#aea17a7bbdc6ac8c2cdd4e6c35c1a8578)

DVS_DLL_EXPORT dvs_ret dvs_update_var_node_scalar(int32_t session_id, uint32_t var_id, uint32_t part_id, const float *scalars, uint32_t num_vals)

Update a field of scalars on nodes.



[dvs\_update\_var\_element\_vector](dynamic__visualization__store__api_8h.xhtml#af3cd5ecfd626ca40b1273634734f38d5)

DVS_DLL_EXPORT dvs_ret dvs_update_var_element_vector(int32_t session_id, uint32_t var_id, uint32_t part_id, enum dvs_element_type type, const float *values, uint32_t num_values)

Update a field of vectors on elements.



[dvs\_update\_nodes\_curvilinear](dynamic__visualization__store__api_8h.xhtml#af69daaa5a2ac63f7ce31a2e8e3d66332)

DVS_DLL_EXPORT dvs_ret dvs_update_nodes_curvilinear(int32_t session_id, uint32_t part_id, const uint32_t global_ijk_max[3], const uint32_t local_ijk_min[3], const uint32_t local_ijk_max[3], const float *x_vals, const float *y_vals, const float *z_vals)

Update the nodes for a curvilinear structured part.



[dvs\_add\_plot\_info](dynamic__visualization__store__api_8h.xhtml#afe298f932fd909b7caabd6f430489b16)

DVS_DLL_EXPORT dvs_ret dvs_add_plot_info(int32_t session_id, const struct dvs_plot_info *plots, uint32_t num_plots)

Add plot info for simulation.



[dvs\_update\_elements\_polyhedral](dynamic__visualization__store__api_8h.xhtml#aff070e9087ba34f41200ff0cd1d3002e)

DVS_DLL_EXPORT dvs_ret dvs_update_elements_polyhedral(int32_t session_id, uint32_t part_id, enum dvs_element_type type, const uint32_t *faces_per_element, uint32_t faces_per_element_size, const uint32_t *nodes_per_face, uint32_t nodes_per_face_size, const uint32_t *indices, uint32_t indices_size)

Update N-FACED Elements.



[dynamic\_visualization\_store\_enums.h](dynamic__visualization__store__enums_8h.xhtml)

Contains enums used in C/C++ API.



[DVS\_NODE\_ID](dynamic__visualization__store__enums_8h.xhtml#a103ab970c3f869611c5a888ec2c1f48e)

\#define DVS_NODE_ID

**Definition** [dynamic\_visualization\_store\_enums.h:119](dynamic__visualization__store__enums_8h_source.xhtml#l00119)



[DVS\_ELEMENT\_ID](dynamic__visualization__store__enums_8h.xhtml#a2f5c54081f521c1891cb24f0276d7276)

\#define DVS_ELEMENT_ID

**Definition** [dynamic\_visualization\_store\_enums.h:121](dynamic__visualization__store__enums_8h_source.xhtml#l00121)



[DVS\_STRUCTURED\_GHOST\_ELEMENTS](dynamic__visualization__store__enums_8h.xhtml#a5f85a0e808c3bad9b9b616e62f5724c0)

\#define DVS_STRUCTURED_GHOST_ELEMENTS

**Definition** [dynamic\_visualization\_store\_enums.h:117](dynamic__visualization__store__enums_8h_source.xhtml#l00117)



[dvs\_log\_flags](dynamic__visualization__store__enums_8h.xhtml#a9bca12092877a90e6c497994093a8609)

dvs_log_flags

Flags to control logging filters.

**Definition** [dynamic\_visualization\_store\_enums.h:67](dynamic__visualization__store__enums_8h_source.xhtml#l00066)



[LOG\_UPDATE\_BEG\_END](dynamic__visualization__store__enums_8h.xhtml#a9bca12092877a90e6c497994093a8609a1a3a1b2a98f96b6de074cd9ae93805bb)

@ LOG_UPDATE_BEG_END

Log messages related to begin and end of updates.

**Definition** [dynamic\_visualization\_store\_enums.h:71](dynamic__visualization__store__enums_8h_source.xhtml#l00071)



[LOG\_ALL](dynamic__visualization__store__enums_8h.xhtml#a9bca12092877a90e6c497994093a8609a87cff070224b283d7aace436723245fc)

@ LOG_ALL

Log all messages.

**Definition** [dynamic\_visualization\_store\_enums.h:72](dynamic__visualization__store__enums_8h_source.xhtml#l00073)



[DVS\_STRUCTURED\_IBLANKED\_NODES](dynamic__visualization__store__enums_8h.xhtml#aa405c87964a066405de5426a3089702b)

\#define DVS_STRUCTURED_IBLANKED_NODES

**Definition** [dynamic\_visualization\_store\_enums.h:115](dynamic__visualization__store__enums_8h_source.xhtml#l00115)



[dvs\_client\_flags](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9f)

dvs_client_flags

Flags for specific server setup.

**Definition** [dynamic\_visualization\_store\_enums.h:55](dynamic__visualization__store__enums_8h_source.xhtml#l00054)



[DEDUP](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9fa81b113ffc96eb6d968a19950727c0ff9)

@ DEDUP

Do not send duplicate data to server.

**Definition** [dynamic\_visualization\_store\_enums.h:58](dynamic__visualization__store__enums_8h_source.xhtml#l00058)



[BEGIN\_INIT\_WAIT\_ON\_REINIT](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9fa825692bac2ef9eae4260a063ccf6322c)

@ BEGIN_INIT_WAIT_ON_REINIT

Blocking wait on reinitialization to complete before reinitializing again.

**Definition** [dynamic\_visualization\_store\_enums.h:59](dynamic__visualization__store__enums_8h_source.xhtml#l00059)



[BLOCK\_FOR\_SERVER](dynamic__visualization__store__enums_8h.xhtml#aec8cbac60b9cafe5d1c0ad6593f05e9fa9feb185df8061416aa9a23b0150dc821)

@ BLOCK_FOR_SERVER

Clients should block for servers to be initialized before sending data.

**Definition** [dynamic\_visualization\_store\_enums.h:57](dynamic__visualization__store__enums_8h_source.xhtml#l00057)



[dvs\_ret](dynamic__visualization__store__error__codes_8h.xhtml#a1d7466ae72e89fe36cbf2408b4f7d9c1)

int32_t dvs_ret

Return value of methods, TODO.

**Definition** [dynamic\_visualization\_store\_error\_codes.h:32](dynamic__visualization__store__error__codes_8h_source.xhtml#l00032)



[DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)

\#define DVS_NONE

No detected error has occurred.

**Definition** [dynamic\_visualization\_store\_error\_codes.h:103](dynamic__visualization__store__error__codes_8h_source.xhtml#l00103)



[dvs\_part\_info](structdvs__part__info.xhtml)

Struct holding information for a part's definition.

**Definition** [dynamic\_visualization\_store\_api.h:77](dynamic__visualization__store__api_8h_source.xhtml#l00076)



[dvs\_part\_info::\_name](structdvs__part__info.xhtml#aa3ef86ed8620b0419f05e4e255dd01fb)

char * _name

UTF-8 Compatible name of part [null terminated], max name length visible in GUI == 79,...

**Definition** [dynamic\_visualization\_store\_api.h:79](dynamic__visualization__store__api_8h_source.xhtml#l00079)



[dvs\_part\_info::\_id](structdvs__part__info.xhtml#ab4e6fd830f27fdfa60c7bf6c2c137695)

uint32_t _id

Unique identifier for part, MUST BE &gt; 0.

**Definition** [dynamic\_visualization\_store\_api.h:78](dynamic__visualization__store__api_8h_source.xhtml#l00078)



[dvs\_plot\_info](structdvs__plot__info.xhtml)

Struct holding information for a plot's definition.

**Definition** [dynamic\_visualization\_store\_api.h:109](dynamic__visualization__store__api_8h_source.xhtml#l00108)



[dvs\_plot\_info::\_name](structdvs__plot__info.xhtml#a00c93696be3b5f9f3c2288daf9975f19)

char * _name

UTF-8 Compatible name for plot, must be unique from other plot names.

**Definition** [dynamic\_visualization\_store\_api.h:111](dynamic__visualization__store__api_8h_source.xhtml#l00111)



[dvs\_plot\_info::\_id](structdvs__plot__info.xhtml#a7721b22bb882c90e84d68979a748daf3)

uint32_t _id

Unique id for plot.

**Definition** [dynamic\_visualization\_store\_api.h:110](dynamic__visualization__store__api_8h_source.xhtml#l00110)



[dvs\_var\_info](structdvs__var__info.xhtml)

Struct holding information for a variable's definiton.

**Definition** [dynamic\_visualization\_store\_api.h:92](dynamic__visualization__store__api_8h_source.xhtml#l00091)



[dvs\_var\_info::\_id](structdvs__var__info.xhtml#abcef03f7b1e419ae39c7511de2385a9b)

uint32_t _id

Unique id for variable.

**Definition** [dynamic\_visualization\_store\_api.h:93](dynamic__visualization__store__api_8h_source.xhtml#l00093)



[dvs\_var\_info::\_name](structdvs__var__info.xhtml#ad1b4aeadeb75d6ab2a446fef37f11d0a)

char * _name

UTF-8 Compatible name of variable [null terminated], max name length visible in the GUI == 49,...

**Definition** [dynamic\_visualization\_store\_api.h:94](dynamic__visualization__store__api_8h_source.xhtml#l00094)



[main](test__dvs__client_8c.xhtml#a3c04138a5bfe5d72780bb7e82a18e627)

int main(int argc, char **argv)

Main method of test client application.

**Definition** [test\_dvs\_client.c:56](#l00056)