    

 ## On this page

  

 

 # test\_dvs\_reader

 Last update: 16.07.2025 

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

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

<a id="l00003" name="l00003"></a> 3\* (C) 2024 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.

<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="l00016" name="l00016"></a> 16 

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

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

<a id="l00026" name="l00026"></a> 26\#include "[logger\_verbose.h](logger__verbose_8h.xhtml)"

<a id="l00027" name="l00027"></a> 27\#include "[dvs\_server\_interface.h](dvs__server__interface_8h.xhtml)"

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

<a id="l00029" name="l00029"></a> 29\#include &lt;chrono&gt;

<a id="l00030" name="l00030"></a> 30\#include &lt;functional&gt;

<a id="l00031" name="l00031"></a> 31\#include &lt;memory&gt;

<a id="l00032" name="l00032"></a> 32\#include &lt;string&gt;

<a id="l00033" name="l00033"></a> 33\#include &lt;thread&gt;

<a id="l00034" name="l00034"></a> 34\#include &lt;vector&gt;

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

<a id="l00036" name="l00036"></a> 36\#include &lt;iostream&gt;

<a id="l00037" name="l00037"></a> 37 

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

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

<a id="l00040" name="l00040"></a> 40 fprintf(stdout, message);

<a id="l00041" name="l00041"></a> 41}

<a id="l00042" name="l00042"></a> 42 

<a id="l00043" name="l00043"></a> 43static void print(const [DVS::IObject](class_d_v_s_1_1_i_object.xhtml)* object)

<a id="l00044" name="l00044"></a> 44{

<a id="l00045" name="l00045"></a> 45 if (object)

<a id="l00046" name="l00046"></a> 46 {

<a id="l00047" name="l00047"></a> 47 std::string object_name = "Unknown:";

<a id="l00048" name="l00048"></a> 48 if (object-&gt;get_type() == [DVS::IObject::PART](class_d_v_s_1_1_i_object.xhtml#aa897daa1f7d0467515fd108c29015348a8b2484e08a16329d2d91c18c254f5ca6)) {

<a id="l00049" name="l00049"></a> 49 object_name = "Part";

<a id="l00050" name="l00050"></a> 50 }

<a id="l00051" name="l00051"></a> 51 else if (object-&gt;get_type() == [DVS::IObject::PLOT](class_d_v_s_1_1_i_object.xhtml#aa897daa1f7d0467515fd108c29015348abe80fa1e67dae7efb56fdb2936914cae)) {

<a id="l00052" name="l00052"></a> 52 object_name = "Plot";

<a id="l00053" name="l00053"></a> 53 }

<a id="l00054" name="l00054"></a> 54 

<a id="l00055" name="l00055"></a> 55 fprintf( stdout, "%s: Name: %s Type: %i\\n", object_name.c_str(), object-&gt;get_name(), object-&gt;get_type() );

<a id="l00056" name="l00056"></a> 56 fprintf( stdout, "Dataset Name: %s\\n", object-&gt;get_dataset()-&gt;get_name());

<a id="l00057" name="l00057"></a> 57 fprintf( stdout, "Metadata Size: %u\\n", object-&gt;get_num_metadata());

<a id="l00058" name="l00058"></a> 58 if (object-&gt;get_num_metadata()) {

<a id="l00059" name="l00059"></a> 59 for (uint32_t metadata_idx = 0; metadata_idx &lt; object-&gt;get_num_metadata(); metadata_idx++) {

<a id="l00060" name="l00060"></a> 60 fprintf(stdout, "Key: %s, Val:%s ", object-&gt;get_metadata_key(metadata_idx), object-&gt;get_metadata_value(metadata_idx));

<a id="l00061" name="l00061"></a> 61 }

<a id="l00062" name="l00062"></a> 62 fprintf(stdout, "\\n");

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

<a id="l00064" name="l00064"></a> 64 fprintf(stdout, "\\n");

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

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

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

<a id="l00068" name="l00068"></a> 68static void print(const [DVS::IVar](class_d_v_s_1_1_i_var.xhtml)* var)

<a id="l00069" name="l00069"></a> 69{

<a id="l00070" name="l00070"></a> 70 if (var)

<a id="l00071" name="l00071"></a> 71 {

<a id="l00072" name="l00072"></a> 72 fprintf( stdout, "Var: Name: %s, Type: %i, Location: %i, Unit Dim: %s, Unit Label: %s\\n",

<a id="l00073" name="l00073"></a> 73 var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), var-&gt;[get\_var\_type](class_d_v_s_1_1_i_var.xhtml#ae837af2ee946d8f54695d1abf95c5cda)(), var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)(), var-&gt;[get\_unit\_dimension](class_d_v_s_1_1_i_var.xhtml#a6aa67cf54eb22ee51a7bf5eeb778cee5)(), var-&gt;[get\_unit\_label](class_d_v_s_1_1_i_var.xhtml#aa484336b355e68f93069e97d771e4a6e)());

<a id="l00074" name="l00074"></a> 74 fprintf(stdout, "Dataset Name: %s\\n", var-&gt;[get\_dataset](class_d_v_s_1_1_i_var.xhtml#acd4c1b8698417ac314a45143e92986d6)()-&gt;[get\_name](class_d_v_s_1_1_i_object.xhtml#a39be8b08200f75b20a7b5cf715ba9dd3)());

<a id="l00075" name="l00075"></a> 75 fprintf( stdout, "Metadata Size: %u\\n", var-&gt;[get\_num\_metadata](class_d_v_s_1_1_i_var.xhtml#a2deab60f72955106a4a4a3f67a0f295e)());

<a id="l00076" name="l00076"></a> 76 if (var-&gt;[get\_num\_metadata](class_d_v_s_1_1_i_var.xhtml#a2deab60f72955106a4a4a3f67a0f295e)()) {

<a id="l00077" name="l00077"></a> 77 for (uint32_t metadata_idx = 0; metadata_idx &lt; var-&gt;[get\_num\_metadata](class_d_v_s_1_1_i_var.xhtml#a2deab60f72955106a4a4a3f67a0f295e)(); metadata_idx++) {

<a id="l00078" name="l00078"></a> 78 fprintf(stdout, "Key: %s, Val:%s ", var-&gt;[get\_metadata\_key](class_d_v_s_1_1_i_var.xhtml#ae18e148e2d2996891560734e53cd9671)(metadata_idx), var-&gt;[get\_metadata\_value](class_d_v_s_1_1_i_var.xhtml#a22432a4b79163a933a850a7a58dfe315)(metadata_idx));

<a id="l00079" name="l00079"></a> 79 }

<a id="l00080" name="l00080"></a> 80 fprintf(stdout, "\\n");

<a id="l00081" name="l00081"></a> 81 }

<a id="l00082" name="l00082"></a> 82 fprintf(stdout, "\\n");

<a id="l00083" name="l00083"></a> 83 }

<a id="l00084" name="l00084"></a> 84}

<a id="l00085" name="l00085"></a> 85 

<a id="l00093" name="l00093"></a>[ 93](test__dvs__reader_8cpp.xhtml#a3c04138a5bfe5d72780bb7e82a18e627)int [main](test__dvs__reader_8cpp.xhtml#a3c04138a5bfe5d72780bb7e82a18e627)(int argc, char** argv)

<a id="l00094" name="l00094"></a> 94{

<a id="l00095" name="l00095"></a> 95 [DVS::IServer](class_d_v_s_1_1_i_server.xhtml)* server = nullptr;

<a id="l00096" name="l00096"></a> 96 char server_uri[512] = {0};

<a id="l00097" name="l00097"></a> 97 char server_filter[512] = {0};

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

<a id="l00099" name="l00099"></a> 99 uint32_t debug_wait = 0;

<a id="l00100" name="l00100"></a> 100 uint32_t timestep_wait = 0;

<a id="l00101" name="l00101"></a> 101 bool all_coords = false;

<a id="l00102" name="l00102"></a> 102 bool all_connectivity = false;

<a id="l00103" name="l00103"></a> 103 bool all_variable_data = false;

<a id="l00104" name="l00104"></a> 104 uint32_t server_number = 0;

<a id="l00105" name="l00105"></a> 105 uint32_t local_ranks = 1;

<a id="l00106" name="l00106"></a> 106 uint32_t server_verbosity = 0;

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

<a id="l00108" name="l00108"></a> 108 uint32_t i = 1;

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

<a id="l00110" name="l00110"></a> 110 {

<a id="l00111" name="l00111"></a> 111 if ((strcmp(argv[i], "-cache\_uri") == 0) &amp;&amp; (i &lt; argc - 1))

<a id="l00112" name="l00112"></a> 112 {

<a id="l00113" name="l00113"></a> 113 i++;

<a id="l00114" name="l00114"></a> 114 strncpy(cache_uri, argv[i], 512);

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

<a id="l00116" name="l00116"></a> 116 else if ((strcmp(argv[i], "-server\_uri") == 0) &amp;&amp; (i &lt; argc - 1))

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

<a id="l00118" name="l00118"></a> 118 i++;

<a id="l00119" name="l00119"></a> 119 strncpy(server_uri, argv[i], 512);

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

<a id="l00121" name="l00121"></a> 121 else if ((strcmp(argv[i], "-server\_filter") == 0))

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

<a id="l00123" name="l00123"></a> 123 i++;

<a id="l00124" name="l00124"></a> 124 strncpy(server_filter, argv[i], 512);

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

<a id="l00126" name="l00126"></a> 126 else if ((strcmp(argv[i], "-all\_coords") == 0))

<a id="l00127" name="l00127"></a> 127 {

<a id="l00128" name="l00128"></a> 128 all_coords = true;

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

<a id="l00130" name="l00130"></a> 130 else if ((strcmp(argv[i], "-all\_conn") == 0))

<a id="l00131" name="l00131"></a> 131 {

<a id="l00132" name="l00132"></a> 132 all_connectivity = true;

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

<a id="l00134" name="l00134"></a> 134 else if ((strcmp(argv[i], "-all\_vars") == 0))

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

<a id="l00136" name="l00136"></a> 136 all_variable_data = true;

<a id="l00137" name="l00137"></a> 137 }

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

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

<a id="l00140" name="l00140"></a> 140 i++;

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

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

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

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

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

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

<a id="l00147" name="l00147"></a> 147 all_variable_data = true;

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

<a id="l00149" name="l00149"></a> 149 else if ((strcmp(argv[i], "-debug\_wait") == 0) &amp;&amp; (i &lt; argc - 1))

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

<a id="l00151" name="l00151"></a> 151 i++;

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

<a id="l00153" name="l00153"></a> 153 }

<a id="l00154" name="l00154"></a> 154 else if ((strcmp(argv[i], "-timestep\_wait") == 0) &amp;&amp; (i &lt; argc - 1))

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

<a id="l00156" name="l00156"></a> 156 i++;

<a id="l00157" name="l00157"></a> 157 timestep_wait = atoi(argv[i]);

<a id="l00158" name="l00158"></a> 158 }

<a id="l00159" name="l00159"></a> 159 else

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

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

<a id="l00162" name="l00162"></a> 162 fprintf(stderr, "Usage: %s \[-uri str\] \[-debug\_wait ms\] \\n", argv[0]);

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

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

<a id="l00165" name="l00165"></a> 165 fprintf(stderr, " -server\_uri str The URI for the reader to connect to a running DVS server. Default: no server\\n");

<a id="l00166" name="l00166"></a> 166 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. Defaults to 0 1 0\\n");

<a id="l00167" name="l00167"></a> 167 fprintf(stderr, " -server\_filter A filter to apply to the query generated from the DVS server");

<a id="l00168" name="l00168"></a> 168 fprintf(stderr, " -all\_coords Print the full coordinates for the mesh chunks iterated over (not a good idea for large datasets)\\n");

<a id="l00169" name="l00169"></a> 169 fprintf(stderr, " -all\_conn Print the full connectivity for the element blocks iterated over (not a good idea for large datasets)\\n");

<a id="l00170" name="l00170"></a> 170 fprintf(stderr, " -all\_vars Print the full variable values for mesh chunks and element blocks (not a good idea for large datasets)\\n");

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

<a id="l00172" name="l00172"></a> 172 fprintf(stderr, " -timestep\_wait s Wait for \[s\] for eventual new timesteps\\n");

<a id="l00173" name="l00173"></a> 173 exit(1);

<a id="l00174" name="l00174"></a> 174 }

<a id="l00175" name="l00175"></a> 175 i++;

<a id="l00176" name="l00176"></a> 176 }

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

<a id="l00178" name="l00178"></a> 178 if (debug_wait &gt; 0) {

<a id="l00179" name="l00179"></a> 179 std::this_thread::sleep_for(std::chrono::seconds(debug_wait));

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

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

<a id="l00182" name="l00182"></a> 182 std::unique_ptr&lt;[DVS::IQuery](class_d_v_s_1_1_i_query.xhtml), std::function&lt;void([DVS::IQuery](class_d_v_s_1_1_i_query.xhtml)*)&gt;&gt; dataset_query(DVS::CREATE_QUERY_INSTANCE(),

<a id="l00183" name="l00183"></a> 183 []([DVS::IQuery](class_d_v_s_1_1_i_query.xhtml)* p){p-&gt;[release](class_d_v_s_1_1_i_query.xhtml#a257f79d7de21658c07dc602dfa6bbf34)();});

<a id="l00184" name="l00184"></a> 184 if (strlen(server_uri) &gt; 0){

<a id="l00185" name="l00185"></a> 185 server = DVS::CREATE_SERVER_INSTANCE(server_uri);

<a id="l00186" name="l00186"></a> 186 server-&gt;[startup\_unthreaded](class_d_v_s_1_1_i_server.xhtml#ac61ce2698eec1adb521bbbf60cb78756)(server_number, local_ranks);

<a id="l00187" name="l00187"></a> 187 server-&gt;[update](class_d_v_s_1_1_i_server.xhtml#add6fcb530763dc217f5b3c17b25093c0)();

<a id="l00188" name="l00188"></a> 188 char temp[10];

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

<a id="l00190" name="l00190"></a> 190 server-&gt;[set\_option](class_d_v_s_1_1_i_server.xhtml#a1edb4dec67086f10bc0329b6adf9084c)("VERBOSE",temp);

<a id="l00191" name="l00191"></a> 191 [DVS::IQuery](class_d_v_s_1_1_i_query.xhtml)* server_query;

<a id="l00192" name="l00192"></a> 192 server_query = server-&gt;[create\_query](class_d_v_s_1_1_i_server.xhtml#aee25312f757c5bc4f6dd304dd7da68a9)(std::string(server_filter));

<a id="l00193" name="l00193"></a> 193 dataset_query.reset(server_query);

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

<a id="l00195" name="l00195"></a> 195 dataset_query-&gt;[set\_logger](class_d_v_s_1_1_i_query.xhtml#ab6ce54c68281ea1676af650ebc5716a0)(new [DVS::LoggerVerbose](class_d_v_s_1_1_logger_verbose.xhtml)(nullptr, [dvs\_verbosity::DVS\_VERBOSE](dynamic__visualization__store__enums_8h.xhtml#aafcfd80cd55c92c53106bb56fdaf026da95f57c1525070266247b1a687f565f5b), &amp;logging_function));

<a id="l00196" name="l00196"></a> 196 [dvs\_ret](dynamic__visualization__store__error__codes_8h.xhtml#a1d7466ae72e89fe36cbf2408b4f7d9c1) err;

<a id="l00197" name="l00197"></a> 197 if (!server){

<a id="l00198" name="l00198"></a> 198 err = dataset_query-&gt;add_uri(cache_uri);

<a id="l00199" name="l00199"></a> 199 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00200" name="l00200"></a> 200 return err;

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

<a id="l00202" name="l00202"></a> 202 }

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

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

<a id="l00205" name="l00205"></a> 205 fprintf(stdout, "---------------------------\\n");

<a id="l00206" name="l00206"></a> 206 fprintf(stdout, "Listing All Timesteps for Query\\n");

<a id="l00207" name="l00207"></a> 207 fprintf(stdout, "---------------------------\\n");

<a id="l00208" name="l00208"></a> 208 uint32_t num_timesteps = 0;

<a id="l00209" name="l00209"></a> 209 if (server){

<a id="l00210" name="l00210"></a> 210 bool flag = true;

<a id="l00211" name="l00211"></a> 211 uint32_t pending, complete;

<a id="l00212" name="l00212"></a> 212 while (flag){

<a id="l00213" name="l00213"></a> 213 std::this_thread::sleep_for(std::chrono::seconds(timestep_wait));

<a id="l00214" name="l00214"></a> 214 server-&gt;[get\_timestep\_count](class_d_v_s_1_1_i_server.xhtml#a8a5339f222bcd46b06c2fa9a474b2c37)(pending, complete);

<a id="l00215" name="l00215"></a> 215 if (pending &gt; 0){

<a id="l00216" name="l00216"></a> 216 server-&gt;[update](class_d_v_s_1_1_i_server.xhtml#add6fcb530763dc217f5b3c17b25093c0)();

<a id="l00217" name="l00217"></a> 217 dataset_query-&gt;clear_data();

<a id="l00218" name="l00218"></a> 218 auto server_query = server-&gt;[create\_query](class_d_v_s_1_1_i_server.xhtml#aee25312f757c5bc4f6dd304dd7da68a9)(std::string(server_filter));

<a id="l00219" name="l00219"></a> 219 dataset_query.reset(server_query);

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

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

<a id="l00222" name="l00222"></a> 222 flag = false;

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

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

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

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

<a id="l00227" name="l00227"></a> 227 err = dataset_query-&gt;get_num_timesteps(num_timesteps);

<a id="l00228" name="l00228"></a> 228 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00229" name="l00229"></a> 229 fprintf(stdout, "Error getting number of timesteps\\n");

<a id="l00230" name="l00230"></a> 230 return err;

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

<a id="l00232" name="l00232"></a> 232 

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

<a id="l00234" name="l00234"></a> 234 std::vector&lt;float&gt; timesteps(num_timesteps, 0.f);

<a id="l00235" name="l00235"></a> 235 dataset_query-&gt;get_timesteps(timesteps.data());

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

<a id="l00237" name="l00237"></a> 237 fprintf(stdout, "Timesteps: ");

<a id="l00238" name="l00238"></a> 238 for (auto time : timesteps) {

<a id="l00239" name="l00239"></a> 239 fprintf (stdout, " %f", time);

<a id="l00240" name="l00240"></a> 240 }

<a id="l00241" name="l00241"></a> 241 fprintf(stdout, "\\n");

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

<a id="l00243" name="l00243"></a> 243 fprintf(stdout, "---------------------------\\n");

<a id="l00244" name="l00244"></a> 244 fprintf(stdout, "Listing All Ranks for Query\\n");

<a id="l00245" name="l00245"></a> 245 fprintf(stdout, "---------------------------\\n");

<a id="l00246" name="l00246"></a> 246 uint32_t num_ranks = 0;

<a id="l00247" name="l00247"></a> 247 err = dataset_query-&gt;get_num_ranks(num_ranks);

<a id="l00248" name="l00248"></a> 248 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00249" name="l00249"></a> 249 fprintf(stdout, "Error getting number of ranks\\n");

<a id="l00250" name="l00250"></a> 250 return err;

<a id="l00251" name="l00251"></a> 251 }

<a id="l00252" name="l00252"></a> 252 std::vector&lt;uint32_t&gt; global_ranks(num_ranks, 0);

<a id="l00253" name="l00253"></a> 253 dataset_query-&gt;get_ranks(global_ranks.data());

<a id="l00254" name="l00254"></a> 254 for (auto rank : global_ranks) {

<a id="l00255" name="l00255"></a> 255 fprintf(stdout, "%u ", rank);

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

<a id="l00257" name="l00257"></a> 257 fprintf(stdout, "\\n");

<a id="l00258" name="l00258"></a> 258 

<a id="l00259" name="l00259"></a> 259 fprintf(stdout, "---------------------------\\n");

<a id="l00260" name="l00260"></a> 260 fprintf(stdout, "Listing Max Chunks for Query\\n");

<a id="l00261" name="l00261"></a> 261 fprintf(stdout, "---------------------------\\n");

<a id="l00262" name="l00262"></a> 262 

<a id="l00263" name="l00263"></a> 263 uint32_t num_chunks_per_rank = 0;

<a id="l00264" name="l00264"></a> 264 err = dataset_query-&gt;get_num_chunks_per_rank(num_chunks_per_rank);

<a id="l00265" name="l00265"></a> 265 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00266" name="l00266"></a> 266 fprintf(stdout, "Error getting number of chunks per rank\\n");

<a id="l00267" name="l00267"></a> 267 return err;

<a id="l00268" name="l00268"></a> 268 }

<a id="l00269" name="l00269"></a> 269 std::vector&lt;uint32_t&gt; global_chunk_max(num_chunks_per_rank, 0);

<a id="l00270" name="l00270"></a> 270 dataset_query-&gt;get_chunks_per_rank(global_chunk_max.data());

<a id="l00271" name="l00271"></a> 271 for (auto chunk : global_chunk_max) {

<a id="l00272" name="l00272"></a> 272 fprintf(stdout, "%u ", chunk);

<a id="l00273" name="l00273"></a> 273 }

<a id="l00274" name="l00274"></a> 274 fprintf(stdout, "\\n");

<a id="l00275" name="l00275"></a> 275 

<a id="l00276" name="l00276"></a> 276 fprintf(stdout, "---------------------------\\n");

<a id="l00277" name="l00277"></a> 277 fprintf(stdout, "Listing All Parts for Query\\n");

<a id="l00278" name="l00278"></a> 278 fprintf(stdout, "---------------------------\\n");

<a id="l00279" name="l00279"></a> 279 uint32_t num_parts = 0;

<a id="l00280" name="l00280"></a> 280 err = dataset_query-&gt;get_num_parts(num_parts);

<a id="l00281" name="l00281"></a> 281 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00282" name="l00282"></a> 282 fprintf(stdout, "Error getting number of parts\\n");

<a id="l00283" name="l00283"></a> 283 return err;

<a id="l00284" name="l00284"></a> 284 }

<a id="l00285" name="l00285"></a> 285 for (uint32_t part_index = 0; part_index &lt; num_parts; part_index++)

<a id="l00286" name="l00286"></a> 286 {

<a id="l00287" name="l00287"></a> 287 auto part = dataset_query-&gt;get_part(part_index);

<a id="l00288" name="l00288"></a> 288 if (!part) continue;

<a id="l00289" name="l00289"></a> 289 print(part);

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

<a id="l00291" name="l00291"></a> 291 fprintf(stdout, "---------------------------\\n");

<a id="l00292" name="l00292"></a> 292 fprintf(stdout, "Listing All Plots for Query\\n");

<a id="l00293" name="l00293"></a> 293 fprintf(stdout, "---------------------------\\n");

<a id="l00294" name="l00294"></a> 294 uint32_t num_plots = 0;

<a id="l00295" name="l00295"></a> 295 err = dataset_query-&gt;get_num_plots(num_plots);

<a id="l00296" name="l00296"></a> 296 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00297" name="l00297"></a> 297 fprintf(stdout, "Error getting number of plots\\n");

<a id="l00298" name="l00298"></a> 298 return err;

<a id="l00299" name="l00299"></a> 299 }

<a id="l00300" name="l00300"></a> 300 for (uint32_t plot_index = 0; plot_index &lt; num_plots; plot_index++)

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

<a id="l00302" name="l00302"></a> 302 auto plot = dataset_query-&gt;get_plot(plot_index);

<a id="l00303" name="l00303"></a> 303 if (!plot) continue;

<a id="l00304" name="l00304"></a> 304 print(plot);

<a id="l00305" name="l00305"></a> 305 }

<a id="l00306" name="l00306"></a> 306 fprintf(stdout, "---------------------------\\n");

<a id="l00307" name="l00307"></a> 307 fprintf(stdout, "Listing All Vars for Query\\n");

<a id="l00308" name="l00308"></a> 308 fprintf(stdout, "---------------------------\\n");

<a id="l00309" name="l00309"></a> 309 uint32_t num_vars = 0;

<a id="l00310" name="l00310"></a> 310 err = dataset_query-&gt;get_num_variables(num_vars);

<a id="l00311" name="l00311"></a> 311 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00312" name="l00312"></a> 312 fprintf(stdout, "Error getting number of vars\\n");

<a id="l00313" name="l00313"></a> 313 return err;

<a id="l00314" name="l00314"></a> 314 }

<a id="l00315" name="l00315"></a> 315 for (uint32_t var_index = 0; var_index &lt; num_vars; var_index++)

<a id="l00316" name="l00316"></a> 316 {

<a id="l00317" name="l00317"></a> 317 auto var = dataset_query-&gt;get_variable(var_index);

<a id="l00318" name="l00318"></a> 318 if (!var) continue;

<a id="l00319" name="l00319"></a> 319 print(var);

<a id="l00320" name="l00320"></a> 320 }

<a id="l00321" name="l00321"></a> 321 fprintf(stdout, "---------------------------\\n");

<a id="l00322" name="l00322"></a> 322 fprintf(stdout, "Listing All Case Variables for Query\\n\\n");

<a id="l00323" name="l00323"></a> 323 num_vars = 0;

<a id="l00324" name="l00324"></a> 324 err = dataset_query-&gt;get_num_variables(num_vars);

<a id="l00325" name="l00325"></a> 325 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00326" name="l00326"></a> 326 fprintf(stdout, "Error getting number of vars for case vars\\n");

<a id="l00327" name="l00327"></a> 327 return err;

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

<a id="l00329" name="l00329"></a> 329 for (uint32_t var_index = 0; var_index &lt; num_vars; var_index++)

<a id="l00330" name="l00330"></a> 330 {

<a id="l00331" name="l00331"></a> 331 auto var = dataset_query-&gt;get_variable(var_index);

<a id="l00332" name="l00332"></a> 332 if (var &amp;&amp; var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)() == [dvs\_var\_location::CASE](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a9c9b14644e9370719a51b7342bbc9c4d)) {

<a id="l00333" name="l00333"></a> 333 const [DVS::IDataset](class_d_v_s_1_1_i_dataset.xhtml)* dataset = var-&gt;[get\_dataset](class_d_v_s_1_1_i_var.xhtml#acd4c1b8698417ac314a45143e92986d6)();

<a id="l00334" name="l00334"></a> 334 std::vector&lt;float&gt; var_value(var-&gt;[get\_float\_count\_per\_value](class_d_v_s_1_1_i_var.xhtml#a9dbdd84e6f6342deae82ede6dcf2156e)());

<a id="l00335" name="l00335"></a> 335 for (float timestep : timesteps) {

<a id="l00336" name="l00336"></a> 336 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == dataset_query-&gt;get_variable_data(dataset, var, timestep, var_value.data())) {

<a id="l00337" name="l00337"></a> 337 //Only scalars are supported for case/part variables right now so we

<a id="l00338" name="l00338"></a> 338 //can just look at the first value

<a id="l00339" name="l00339"></a> 339 fprintf(stdout, "Dataset: %s, Var: %s, Time: %f, Value: %f\\n",

<a id="l00340" name="l00340"></a> 340 dataset-&gt;[get\_name](class_d_v_s_1_1_i_object.xhtml#a39be8b08200f75b20a7b5cf715ba9dd3)(), var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), timestep, var_value[0]);

<a id="l00341" name="l00341"></a> 341 }

<a id="l00342" name="l00342"></a> 342 else {

<a id="l00343" name="l00343"></a> 343 fprintf(stdout, "Dataset: %s, Var: %s, Time: %f, No Value Found\\n",

<a id="l00344" name="l00344"></a> 344 dataset-&gt;[get\_name](class_d_v_s_1_1_i_object.xhtml#a39be8b08200f75b20a7b5cf715ba9dd3)(), var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), timestep);

<a id="l00345" name="l00345"></a> 345 }

<a id="l00346" name="l00346"></a> 346 }

<a id="l00347" name="l00347"></a> 347 }

<a id="l00348" name="l00348"></a> 348 }

<a id="l00349" name="l00349"></a> 349 fprintf(stdout, "---------------------------\\n");

<a id="l00350" name="l00350"></a> 350 fprintf(stdout, "Listing All Part Variables for Query\\n\\n");

<a id="l00351" name="l00351"></a> 351 num_vars = 0;

<a id="l00352" name="l00352"></a> 352 err = dataset_query-&gt;get_num_variables(num_vars);

<a id="l00353" name="l00353"></a> 353 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00354" name="l00354"></a> 354 fprintf(stdout, "Error getting number of vars for part vars\\n");

<a id="l00355" name="l00355"></a> 355 return err;

<a id="l00356" name="l00356"></a> 356 }

<a id="l00357" name="l00357"></a> 357 for (uint32_t var_index = 0; var_index &lt; num_vars; var_index++)

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

<a id="l00359" name="l00359"></a> 359 auto var = dataset_query-&gt;get_variable(var_index);

<a id="l00360" name="l00360"></a> 360 if (var &amp;&amp; var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)() == [dvs\_var\_location::PART](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a173f98c603042f6241b70157d56e385f)) {

<a id="l00361" name="l00361"></a> 361 auto dataset = var-&gt;[get\_dataset](class_d_v_s_1_1_i_var.xhtml#acd4c1b8698417ac314a45143e92986d6)();

<a id="l00362" name="l00362"></a> 362 std::vector&lt;float&gt; var_value(var-&gt;[get\_float\_count\_per\_value](class_d_v_s_1_1_i_var.xhtml#a9dbdd84e6f6342deae82ede6dcf2156e)());

<a id="l00363" name="l00363"></a> 363 for (float timestep : timesteps) {

<a id="l00364" name="l00364"></a> 364 for (uint32_t part_index = 0; part_index &lt; dataset-&gt;get_num_parts(); part_index++) {

<a id="l00365" name="l00365"></a> 365 const [DVS::IObject](class_d_v_s_1_1_i_object.xhtml)* part = dataset-&gt;get_part(part_index);

<a id="l00366" name="l00366"></a> 366 if (!part) {

<a id="l00367" name="l00367"></a> 367 continue;

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

<a id="l00369" name="l00369"></a> 369 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == dataset_query-&gt;get_variable_data(part, var, timestep, var_value.data())) {

<a id="l00370" name="l00370"></a> 370 //Only scalars are supported for case/part variables right now so we

<a id="l00371" name="l00371"></a> 371 //can just look at the first value

<a id="l00372" name="l00372"></a> 372 fprintf(stdout, "Dataset: %s, Part: %s, Var: %s, Time: %f, Value: %f\\n",

<a id="l00373" name="l00373"></a> 373 dataset-&gt;get_name(), part-&gt;[get\_name](class_d_v_s_1_1_i_object.xhtml#a39be8b08200f75b20a7b5cf715ba9dd3)(), var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), timestep, var_value[0]);

<a id="l00374" name="l00374"></a> 374 }

<a id="l00375" name="l00375"></a> 375 else {

<a id="l00376" name="l00376"></a> 376 fprintf(stdout, "Dataset: %s, Part: %s, Var: %s, Time: %f, No Value Found\\n",

<a id="l00377" name="l00377"></a> 377 dataset-&gt;get_name(), part-&gt;[get\_name](class_d_v_s_1_1_i_object.xhtml#a39be8b08200f75b20a7b5cf715ba9dd3)(), var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), timestep);

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

<a id="l00379" name="l00379"></a> 379 }

<a id="l00380" name="l00380"></a> 380 }

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

<a id="l00382" name="l00382"></a> 382 }

<a id="l00383" name="l00383"></a> 383 fprintf(stdout, "---------------------------\\n");

<a id="l00384" name="l00384"></a> 384 fprintf(stdout, "Listing All Datasets for Query\\n");

<a id="l00385" name="l00385"></a> 385 uint32_t num_datasets = 0;

<a id="l00386" name="l00386"></a> 386 err = dataset_query-&gt;get_num_datasets(num_datasets);

<a id="l00387" name="l00387"></a> 387 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00388" name="l00388"></a> 388 fprintf (stdout, "Error getting number of datasets\\n");

<a id="l00389" name="l00389"></a> 389 return err;

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

<a id="l00391" name="l00391"></a> 391 for (uint32_t dataset_idx = 0; dataset_idx &lt; num_datasets; dataset_idx++)

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

<a id="l00393" name="l00393"></a> 393 [DVS::IDataset](class_d_v_s_1_1_i_dataset.xhtml)* dataset = dataset_query-&gt;[get\_dataset](class_d_v_s_1_1_i_object.xhtml#aea688a307b1cb02ae53e0e8fd3791e64)(dataset_idx);

<a id="l00394" name="l00394"></a> 394 if (dataset)

<a id="l00395" name="l00395"></a> 395 {

<a id="l00396" name="l00396"></a> 396 fprintf(stdout, "---------------------------\\n");

<a id="l00397" name="l00397"></a> 397 fprintf(stdout, "Dataset: %s Units System: %s\\n",

<a id="l00398" name="l00398"></a> 398 dataset-&gt;[get\_name](class_d_v_s_1_1_i_object.xhtml#a39be8b08200f75b20a7b5cf715ba9dd3)(), dataset-&gt;[get\_unit\_system](class_d_v_s_1_1_i_dataset.xhtml#af69301cb1a2d466933e8fee162411a60)() );

<a id="l00399" name="l00399"></a> 399 for (uint32_t cur_pair = 0; cur_pair &lt; dataset-&gt;[get\_num\_metadata](class_d_v_s_1_1_i_object.xhtml#a31db3b716cc815c2c73f826f24384f6a)(); cur_pair++) {

<a id="l00400" name="l00400"></a> 400 fprintf(stdout, "Key: %s, Val: %s\\n", dataset-&gt;[get\_metadata\_key](class_d_v_s_1_1_i_object.xhtml#a04ee2919ffeb46d966d4675c8cd4420c)(cur_pair), dataset-&gt;[get\_metadata\_value](class_d_v_s_1_1_i_object.xhtml#a7a37d603ccf93f7f1ec9f962fa9d1f61)(cur_pair));

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

<a id="l00402" name="l00402"></a> 402 fprintf(stdout, "\\n");

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

<a id="l00404" name="l00404"></a> 404 std::vector&lt;uint32_t&gt; ranks(dataset-&gt;[get\_num\_ranks](class_d_v_s_1_1_i_dataset.xhtml#a423774f63a6f5275d4d4f33da65f37b4)(), 0);

<a id="l00405" name="l00405"></a> 405 dataset-&gt;[get\_ranks](class_d_v_s_1_1_i_dataset.xhtml#ac620a1f5fb513d636ed59d7b4552197a)(ranks.data());

<a id="l00406" name="l00406"></a> 406 

<a id="l00407" name="l00407"></a> 407 fprintf(stdout, "Ranks: ");

<a id="l00408" name="l00408"></a> 408 for (auto rank : ranks) {

<a id="l00409" name="l00409"></a> 409 fprintf(stdout, " %u", rank);

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

<a id="l00411" name="l00411"></a> 411 fprintf(stdout, "\\n");

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

<a id="l00413" name="l00413"></a> 413 std::vector&lt;uint32_t&gt; chunks(dataset-&gt;[get\_num\_chunks\_per\_rank](class_d_v_s_1_1_i_dataset.xhtml#a5ec19061a478d6b2aea0976b9e79f73b)(), 0);

<a id="l00414" name="l00414"></a> 414 dataset-&gt;[get\_chunks\_per\_rank](class_d_v_s_1_1_i_dataset.xhtml#afb023f6b10fd4c072e8c7cb140d666ae)(chunks.data());

<a id="l00415" name="l00415"></a> 415 fprintf(stdout, "Chunks: ");

<a id="l00416" name="l00416"></a> 416 for (auto chunk : chunks) {

<a id="l00417" name="l00417"></a> 417 fprintf(stdout, " %u", chunk);

<a id="l00418" name="l00418"></a> 418 }

<a id="l00419" name="l00419"></a> 419 fprintf(stdout, "\\n");

<a id="l00420" name="l00420"></a> 420 

<a id="l00421" name="l00421"></a> 421 for (uint32_t part_idx = 0; part_idx &lt; dataset-&gt;[get\_num\_parts](class_d_v_s_1_1_i_dataset.xhtml#a69aa8f4d0ad2c4fd69e6443f662fbc1d)(); part_idx++) {

<a id="l00422" name="l00422"></a> 422 const [DVS::IObject](class_d_v_s_1_1_i_object.xhtml)* part = dataset-&gt;[get\_part](class_d_v_s_1_1_i_dataset.xhtml#af000ab1d7bfdd043cdc2b4f6cd4d682c)(part_idx);

<a id="l00423" name="l00423"></a> 423 if (!part) continue;

<a id="l00424" name="l00424"></a> 424 print(part);

<a id="l00425" name="l00425"></a> 425 }

<a id="l00426" name="l00426"></a> 426 

<a id="l00427" name="l00427"></a> 427 for (uint32_t plot_idx = 0; plot_idx &lt; dataset-&gt;[get\_num\_plots](class_d_v_s_1_1_i_dataset.xhtml#a49e3b27865d865ba36dd5d7e5c659a6b)(); plot_idx++) {

<a id="l00428" name="l00428"></a> 428 const [DVS::IObject](class_d_v_s_1_1_i_object.xhtml)* plot = dataset-&gt;[get\_plot](class_d_v_s_1_1_i_dataset.xhtml#a8f3bb3e37530f0b1dd6630fb6f9925f5)(plot_idx);

<a id="l00429" name="l00429"></a> 429 if (!plot) continue;

<a id="l00430" name="l00430"></a> 430 print(plot);

<a id="l00431" name="l00431"></a> 431 }

<a id="l00432" name="l00432"></a> 432 

<a id="l00433" name="l00433"></a> 433 for (uint32_t var_idx = 0; var_idx &lt; dataset-&gt;[get\_num\_variables](class_d_v_s_1_1_i_dataset.xhtml#acd0c0e81b283bce8044d9b4de796574a)(); var_idx++) {

<a id="l00434" name="l00434"></a> 434 const [DVS::IVar](class_d_v_s_1_1_i_var.xhtml)* var = dataset-&gt;[get\_var](class_d_v_s_1_1_i_dataset.xhtml#abfef24372147723533c9feebd55666c1)(var_idx);

<a id="l00435" name="l00435"></a> 435 if (!var) continue;

<a id="l00436" name="l00436"></a> 436 print(var);

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

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

<a id="l00439" name="l00439"></a> 439 }

<a id="l00440" name="l00440"></a> 440 

<a id="l00441" name="l00441"></a> 441 fprintf(stdout, "---------------------------\\n");

<a id="l00442" name="l00442"></a> 442 fprintf(stdout, "Listing All Mesh Chunks for Query\\n");

<a id="l00443" name="l00443"></a> 443 fprintf(stdout, "---------------------------\\n");

<a id="l00444" name="l00444"></a> 444 uint32_t num_mesh_chunks = 0;

<a id="l00445" name="l00445"></a> 445 err = dataset_query-&gt;get_num_mesh_chunks(num_mesh_chunks);

<a id="l00446" name="l00446"></a> 446 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l00447" name="l00447"></a> 447 fprintf(stdout, "Error getting number of mesh chunks\\n");

<a id="l00448" name="l00448"></a> 448 return err;

<a id="l00449" name="l00449"></a> 449 }

<a id="l00450" name="l00450"></a> 450 for (uint32_t index = 0; index &lt; num_mesh_chunks; index++) {

<a id="l00451" name="l00451"></a> 451 [DVS::IMeshChunk](class_d_v_s_1_1_i_mesh_chunk.xhtml)* mesh_chunk = dataset_query-&gt;get_mesh_chunk(index);

<a id="l00452" name="l00452"></a> 452 if (mesh_chunk) {

<a id="l00453" name="l00453"></a> 453 [DVS::IMeshChunk::MeshType](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144a) type = mesh_chunk-&gt;[get\_type](class_d_v_s_1_1_i_mesh_chunk.xhtml#ab025d1550b2b3cd77faefecec5199852)();

<a id="l00454" name="l00454"></a> 454 const [DVS::IObject](class_d_v_s_1_1_i_object.xhtml)* part = mesh_chunk-&gt;[get\_object](class_d_v_s_1_1_i_mesh_chunk.xhtml#abb13b29450a5ccfaa9027cfda3ceb108)();

<a id="l00455" name="l00455"></a> 455 float time = mesh_chunk-&gt;[get\_time](class_d_v_s_1_1_i_mesh_chunk.xhtml#a32ad562394805327fbabffa322643701)();

<a id="l00456" name="l00456"></a> 456 uint32_t rank = mesh_chunk-&gt;[get\_rank](class_d_v_s_1_1_i_mesh_chunk.xhtml#a6c520674083999e99bdf77b2b1eaacf8)();

<a id="l00457" name="l00457"></a> 457 uint32_t chunk = mesh_chunk-&gt;[get\_chunk](class_d_v_s_1_1_i_mesh_chunk.xhtml#a6b894c57bfd1e70168290ce69ecc5af4)();

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

<a id="l00459" name="l00459"></a> 459 std::string coords_hash(mesh_chunk-&gt;[get\_hash\_size](class_d_v_s_1_1_i_hash.xhtml#ac0dedeb8d9dfd442d49d16cb4ddfb221)(), 0);

<a id="l00460" name="l00460"></a> 460 if (coords_hash.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_hash](class_d_v_s_1_1_i_hash.xhtml#a51eaee86a6e2db4dda7f4326daa33874)(&amp;(coords_hash[0]))) {

<a id="l00461" name="l00461"></a> 461 fprintf(stdout, "ERROR: Could not load coordinates hash\\n");

<a id="l00462" name="l00462"></a> 462 }

<a id="l00463" name="l00463"></a> 463 

<a id="l00464" name="l00464"></a> 464 fprintf(stdout, "Mesh Chunk %u Type: %i Part: %s Rank: %u Chunk: %u Time: %f Hash: %s\\n",

<a id="l00465" name="l00465"></a> 465 index, type, part-&gt;[get\_name](class_d_v_s_1_1_i_object.xhtml#a39be8b08200f75b20a7b5cf715ba9dd3)(), rank, chunk, time, coords_hash.c_str());

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

<a id="l00467" name="l00467"></a> 467 std::array&lt;uint32_t,3&gt; num_coords;

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

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

<a id="l00470" name="l00470"></a> 470 

<a id="l00471" name="l00471"></a> 471 if (type == [DVS::IMeshChunk::MeshType::UNSTRUCTURED](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aabd8a1a2f952443e439d96cbea674208e)) {

<a id="l00472" name="l00472"></a> 472 coord_ret = mesh_chunk-&gt;[get\_coords\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#a0fe402e619754256a19e0087b76e2c53)(num_coords[0]);

<a id="l00473" name="l00473"></a> 473 //Coords of all axis match for unstructured

<a id="l00474" name="l00474"></a> 474 num_coords[1] = num_coords[2] = num_coords[0];

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

<a id="l00476" name="l00476"></a> 476 else if (type == [DVS::IMeshChunk::MeshType::CURVILINEAR](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aab7e091dc6959aa447a0b6a44be352013)) {

<a id="l00477" name="l00477"></a> 477 coord_ret = mesh_chunk-&gt;[get\_coords\_curv\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#a70b1069fc8737730efa0fc01a0698fbd)(num_coords[0]);

<a id="l00478" name="l00478"></a> 478 //Coords of all axis match for curvilinear

<a id="l00479" name="l00479"></a> 479 num_coords[1] = num_coords[2] = num_coords[0];

<a id="l00480" name="l00480"></a> 480 }

<a id="l00481" name="l00481"></a> 481 else if (type == [DVS::IMeshChunk::MeshType::PARALLELEPIPED](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aa95416cf06dfb48f6331a1f7c5c2704d2)) {

<a id="l00482" name="l00482"></a> 482 coord_ret = mesh_chunk-&gt;[get\_coords\_parallele\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#abda21734e2f506b982b65007d17c92fd)(num_coords[0], num_coords[1], num_coords[2]);

<a id="l00483" name="l00483"></a> 483 }

<a id="l00484" name="l00484"></a> 484 if (coord_ret != [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) {

<a id="l00485" name="l00485"></a> 485 fprintf(stdout, "ERROR: %d Loading Coords Size\\n", coord_ret);

<a id="l00486" name="l00486"></a> 486 }

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

<a id="l00488" name="l00488"></a> 488 fprintf(stdout, "Size of coords arrays: X(I): %d Y(J): %d Z(K): %d\\n", num_coords[0], num_coords[1], num_coords[2]);

<a id="l00489" name="l00489"></a> 489 }

<a id="l00490" name="l00490"></a> 490 if (coord_ret == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) &amp;&amp; all_coords) {

<a id="l00491" name="l00491"></a> 491 

<a id="l00492" name="l00492"></a> 492 std::vector&lt;float&gt; x_coords(num_coords[0]);

<a id="l00493" name="l00493"></a> 493 std::vector&lt;float&gt; y_coords(num_coords[1]);

<a id="l00494" name="l00494"></a> 494 std::vector&lt;float&gt; z_coords(num_coords[2]);

<a id="l00495" name="l00495"></a> 495 

<a id="l00496" name="l00496"></a> 496 //The vars are for structured data if needed

<a id="l00497" name="l00497"></a> 497 std::array&lt;float,3&gt; origin;

<a id="l00498" name="l00498"></a> 498 std::array&lt;float,3&gt; dir_vec_i, dir_vec_j, dir_vec_k;

<a id="l00499" name="l00499"></a> 499 std::array&lt;float,3&gt; local_ijk_min, local_ijk_max, global_ijk_max;

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

<a id="l00501" name="l00501"></a> 501 if (type == [DVS::IMeshChunk::MeshType::UNSTRUCTURED](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aabd8a1a2f952443e439d96cbea674208e)) {

<a id="l00502" name="l00502"></a> 502 coord_ret = mesh_chunk-&gt;[get\_coords](class_d_v_s_1_1_i_mesh_chunk.xhtml#a7738e954570e849462ff493ec875bc80)(x_coords.data(), y_coords.data(), z_coords.data());

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

<a id="l00504" name="l00504"></a> 504 //Validating the coords match if interleaved

<a id="l00505" name="l00505"></a> 505 std::vector&lt;float&gt; interleaved(num_coords[0]+num_coords[1]+num_coords[2]);

<a id="l00506" name="l00506"></a> 506 auto interleaved_ret = mesh_chunk-&gt;[get\_coords\_interleaved](class_d_v_s_1_1_i_mesh_chunk.xhtml#a39c2d8cc95f14ecbe9789908881c92a0)(interleaved.data());

<a id="l00507" name="l00507"></a> 507 if (coord_ret == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) &amp;&amp; interleaved_ret == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) {

<a id="l00508" name="l00508"></a> 508 bool good_values = x_coords[0] == interleaved[0];

<a id="l00509" name="l00509"></a> 509 good_values &amp;= y_coords[0] == interleaved[1];

<a id="l00510" name="l00510"></a> 510 good_values &amp;= z_coords[0] == interleaved[2];

<a id="l00511" name="l00511"></a> 511 for (uint32_t i = 1; i &lt; num_coords[0] &amp;&amp; good_values; i++) {

<a id="l00512" name="l00512"></a> 512 good_values &amp;= x_coords[i] == interleaved[i*3];

<a id="l00513" name="l00513"></a> 513 good_values &amp;= y_coords[i] == interleaved[i*3+1];

<a id="l00514" name="l00514"></a> 514 good_values &amp;= z_coords[i] == interleaved[i*3+2];

<a id="l00515" name="l00515"></a> 515 }

<a id="l00516" name="l00516"></a> 516 if (!good_values) {

<a id="l00517" name="l00517"></a> 517 fprintf(stdout, "ERROR: Interleaved coords don't match non-interleaved\\n");

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

<a id="l00519" name="l00519"></a> 519 }

<a id="l00520" name="l00520"></a> 520 else if (interleaved_ret != [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) {

<a id="l00521" name="l00521"></a> 521 //Error message for coord\_ret handled later

<a id="l00522" name="l00522"></a> 522 fprintf(stdout, "ERROR: %d, Getting interleaved coords\\n", interleaved_ret);

<a id="l00523" name="l00523"></a> 523 }

<a id="l00524" name="l00524"></a> 524 }

<a id="l00525" name="l00525"></a> 525 else if (type == [DVS::IMeshChunk::MeshType::CURVILINEAR](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aab7e091dc6959aa447a0b6a44be352013)) {

<a id="l00526" name="l00526"></a> 526 coord_ret = mesh_chunk-&gt;[get\_coords\_curv](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8da90ca355541bf876fa23ed267f94cb)(local_ijk_min.data(),

<a id="l00527" name="l00527"></a> 527 local_ijk_max.data(),

<a id="l00528" name="l00528"></a> 528 global_ijk_max.data(),

<a id="l00529" name="l00529"></a> 529 x_coords.data(),

<a id="l00530" name="l00530"></a> 530 y_coords.data(),

<a id="l00531" name="l00531"></a> 531 z_coords.data());

<a id="l00532" name="l00532"></a> 532 if (coord_ret == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) {

<a id="l00533" name="l00533"></a> 533 //Error message for coord\_ret handled later

<a id="l00534" name="l00534"></a> 534 fprintf(stdout, "LocalIJKMin: %f %f %f\\n", local_ijk_min[0], local_ijk_min[1], local_ijk_min[2]);

<a id="l00535" name="l00535"></a> 535 fprintf(stdout, "LocalIJKMax: %f %f %f\\n", local_ijk_max[0], local_ijk_max[1], local_ijk_max[2]);

<a id="l00536" name="l00536"></a> 536 fprintf(stdout, "GlobalIJKMax: %f %f %f\\n", global_ijk_max[0], global_ijk_max[1], global_ijk_max[2]);

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

<a id="l00538" name="l00538"></a> 538 

<a id="l00539" name="l00539"></a> 539 //Validating the coords match if interleaved

<a id="l00540" name="l00540"></a> 540 std::vector&lt;float&gt; interleaved(num_coords[0]+num_coords[1]+num_coords[2]);

<a id="l00541" name="l00541"></a> 541 std::array&lt;float,3&gt; local_ijk_min_2, local_ijk_max_2, global_ijk_max_2;

<a id="l00542" name="l00542"></a> 542 auto interleaved_ret = mesh_chunk-&gt;[get\_coords\_curv\_interleaved](class_d_v_s_1_1_i_mesh_chunk.xhtml#a5c191e3ec6d65a527fc1f3224f84d503)(local_ijk_min_2.data(),

<a id="l00543" name="l00543"></a> 543 local_ijk_max_2.data(),

<a id="l00544" name="l00544"></a> 544 global_ijk_max_2.data(),

<a id="l00545" name="l00545"></a> 545 interleaved.data());

<a id="l00546" name="l00546"></a> 546 if (coord_ret == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) &amp;&amp; interleaved_ret == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) {

<a id="l00547" name="l00547"></a> 547 bool good_values = x_coords[0] == interleaved[0];

<a id="l00548" name="l00548"></a> 548 good_values &amp;= y_coords[0] == interleaved[1];

<a id="l00549" name="l00549"></a> 549 good_values &amp;= z_coords[0] == interleaved[2];

<a id="l00550" name="l00550"></a> 550 for (uint32_t i = 1; i &lt; num_coords[0] &amp;&amp; good_values; i++) {

<a id="l00551" name="l00551"></a> 551 good_values &amp;= x_coords[i] == interleaved[i*3];

<a id="l00552" name="l00552"></a> 552 good_values &amp;= y_coords[i] == interleaved[i*3+1];

<a id="l00553" name="l00553"></a> 553 good_values &amp;= z_coords[i] == interleaved[i*3+2];

<a id="l00554" name="l00554"></a> 554 }

<a id="l00555" name="l00555"></a> 555 for (uint32_t i = 0; i &lt; 3 &amp;&amp; good_values; i++) {

<a id="l00556" name="l00556"></a> 556 good_values &amp;= local_ijk_min[i] == local_ijk_min_2[i];

<a id="l00557" name="l00557"></a> 557 good_values &amp;= local_ijk_max[i] == local_ijk_max_2[i];

<a id="l00558" name="l00558"></a> 558 good_values &amp;= global_ijk_max[i] == global_ijk_max_2[i];

<a id="l00559" name="l00559"></a> 559 }

<a id="l00560" name="l00560"></a> 560 if (!good_values) {

<a id="l00561" name="l00561"></a> 561 fprintf(stdout, "ERROR: Interleaved curv coords don't match non-interleaved\\n");

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

<a id="l00563" name="l00563"></a> 563 }

<a id="l00564" name="l00564"></a> 564 else if (interleaved_ret != [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) {

<a id="l00565" name="l00565"></a> 565 //Error message for coord\_ret handled later

<a id="l00566" name="l00566"></a> 566 fprintf(stdout, "ERROR: %d, Getting interleaved curv coords\\n", interleaved_ret);

<a id="l00567" name="l00567"></a> 567 }

<a id="l00568" name="l00568"></a> 568 }

<a id="l00569" name="l00569"></a> 569 else if (type == [DVS::IMeshChunk::MeshType::PARALLELEPIPED](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aa95416cf06dfb48f6331a1f7c5c2704d2)) {

<a id="l00570" name="l00570"></a> 570 coord_ret = mesh_chunk-&gt;[get\_coords\_parallele](class_d_v_s_1_1_i_mesh_chunk.xhtml#a959ecd945a3e46b25b4e816a35eb4123)(origin.data(),

<a id="l00571" name="l00571"></a> 571 dir_vec_i.data(),

<a id="l00572" name="l00572"></a> 572 dir_vec_j.data(),

<a id="l00573" name="l00573"></a> 573 dir_vec_k.data(),

<a id="l00574" name="l00574"></a> 574 local_ijk_min.data(),

<a id="l00575" name="l00575"></a> 575 local_ijk_max.data(),

<a id="l00576" name="l00576"></a> 576 global_ijk_max.data(),

<a id="l00577" name="l00577"></a> 577 x_coords.data(),

<a id="l00578" name="l00578"></a> 578 y_coords.data(),

<a id="l00579" name="l00579"></a> 579 z_coords.data());

<a id="l00580" name="l00580"></a> 580 if (coord_ret == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) {

<a id="l00581" name="l00581"></a> 581 fprintf(stdout, "Origin: %f %f %f\\n", origin[0], origin[1], origin[2]);

<a id="l00582" name="l00582"></a> 582 fprintf(stdout, "DirVecI: %f, %f, %f\\n", dir_vec_i[0], dir_vec_i[1], dir_vec_i[2]);

<a id="l00583" name="l00583"></a> 583 fprintf(stdout, "DirVecJ: %f, %f, %f\\n", dir_vec_j[0], dir_vec_j[1], dir_vec_j[2]);

<a id="l00584" name="l00584"></a> 584 fprintf(stdout, "DirVecK: %f, %f, %f\\n", dir_vec_k[0], dir_vec_k[1], dir_vec_k[2]);

<a id="l00585" name="l00585"></a> 585 fprintf(stdout, "LocalIJKMin: %f %f %f\\n", local_ijk_min[0], local_ijk_min[1], local_ijk_min[2]);

<a id="l00586" name="l00586"></a> 586 fprintf(stdout, "LocalIJKMax: %f %f %f\\n", local_ijk_max[0], local_ijk_max[1], local_ijk_max[2]);

<a id="l00587" name="l00587"></a> 587 fprintf(stdout, "GlobalIJKMax: %f %f %f\\n", global_ijk_max[0], global_ijk_max[1], global_ijk_max[2]);

<a id="l00588" name="l00588"></a> 588 }

<a id="l00589" name="l00589"></a> 589 }

<a id="l00590" name="l00590"></a> 590 

<a id="l00591" name="l00591"></a> 591 if (coord_ret == [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7)) {

<a id="l00592" name="l00592"></a> 592 fprintf(stdout, "X:");

<a id="l00593" name="l00593"></a> 593 for (uint32_t i = 0; i &lt; num_coords[0]; i++) {

<a id="l00594" name="l00594"></a> 594 fprintf(stdout, " %f", x_coords[i]);

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

<a id="l00596" name="l00596"></a> 596 fprintf(stdout, "\\n");

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

<a id="l00598" name="l00598"></a> 598 fprintf(stdout, "Y:");

<a id="l00599" name="l00599"></a> 599 for (uint32_t i = 0; i &lt; num_coords[1]; i++) {

<a id="l00600" name="l00600"></a> 600 fprintf(stdout, " %f", y_coords[i]);

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

<a id="l00602" name="l00602"></a> 602 fprintf(stdout, "\\n");

<a id="l00603" name="l00603"></a> 603 

<a id="l00604" name="l00604"></a> 604 fprintf(stdout, "Z:");

<a id="l00605" name="l00605"></a> 605 for (uint32_t i = 0; i &lt; num_coords[2]; i++) {

<a id="l00606" name="l00606"></a> 606 fprintf(stdout, " %f", z_coords[i]);

<a id="l00607" name="l00607"></a> 607 }

<a id="l00608" name="l00608"></a> 608 fprintf(stdout, "\\n");

<a id="l00609" name="l00609"></a> 609 }

<a id="l00610" name="l00610"></a> 610 else {

<a id="l00611" name="l00611"></a> 611 fprintf(stdout, "ERROR: %d, Getting coords\\n", coord_ret);

<a id="l00612" name="l00612"></a> 612 }

<a id="l00613" name="l00613"></a> 613 }

<a id="l00614" name="l00614"></a> 614 

<a id="l00615" name="l00615"></a> 615 uint32_t num_nodal_vars = 0;

<a id="l00616" name="l00616"></a> 616 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_num\_variables](class_d_v_s_1_1_i_mesh_chunk.xhtml#a0b819acf4a968957e8ba90876dd880d9)(num_nodal_vars)) {

<a id="l00617" name="l00617"></a> 617 fprintf(stdout, "ERROR: Could not get num nodal vars\\n");

<a id="l00618" name="l00618"></a> 618 }

<a id="l00619" name="l00619"></a> 619 for (uint32_t var_index = 0; var_index &lt; num_nodal_vars; var_index++) {

<a id="l00620" name="l00620"></a> 620 auto var = mesh_chunk-&gt;[get\_variable](class_d_v_s_1_1_i_mesh_chunk.xhtml#a3fbe50455053f953a39707671d8b3ab3)(var_index);

<a id="l00621" name="l00621"></a> 621 if (var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)() != [dvs\_var\_location::NODE](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a59a889456a2d742fdca191dccb3e871d)) {

<a id="l00622" name="l00622"></a> 622 fprintf(stdout, "ERROR: Var is not nodal and should be\\n");

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

<a id="l00624" name="l00624"></a> 624 

<a id="l00625" name="l00625"></a> 625 uint32_t num_var_values = 0;

<a id="l00626" name="l00626"></a> 626 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_variable\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#a6d0e7efa6c204cbb7730ef1bf4024fbc)(var_index, num_var_values)) {

<a id="l00627" name="l00627"></a> 627 fprintf(stdout, "ERROR: Could not get nodal var data\\n");

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

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

<a id="l00630" name="l00630"></a> 630 std::string nodal_var_hash_1(mesh_chunk-&gt;[get\_var\_hash\_size](class_d_v_s_1_1_i_var_hash.xhtml#a85c3ade756029207e15b1c8de8cd5c1b)(var_index), 0);

<a id="l00631" name="l00631"></a> 631 std::string nodal_var_hash_2(mesh_chunk-&gt;[get\_var\_hash\_size](class_d_v_s_1_1_i_var_hash.xhtml#a85c3ade756029207e15b1c8de8cd5c1b)(var), 0);

<a id="l00632" name="l00632"></a> 632 if (nodal_var_hash_1.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_var\_hash](class_d_v_s_1_1_i_var_hash.xhtml#a17fff1548eb276edd326a0af08f6a7c4)(var_index, &amp;(nodal_var_hash_1[0]))) {

<a id="l00633" name="l00633"></a> 633 fprintf(stdout, "ERROR: Could not get nodal var hash 1\\n");

<a id="l00634" name="l00634"></a> 634 }

<a id="l00635" name="l00635"></a> 635 if (nodal_var_hash_2.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_var\_hash](class_d_v_s_1_1_i_var_hash.xhtml#a17fff1548eb276edd326a0af08f6a7c4)(var, &amp;(nodal_var_hash_2[0]))) {

<a id="l00636" name="l00636"></a> 636 fprintf(stdout, "ERROR: Could not get nodal var hash 2\\n");

<a id="l00637" name="l00637"></a> 637 }

<a id="l00638" name="l00638"></a> 638 if (nodal_var_hash_1 != nodal_var_hash_2) {

<a id="l00639" name="l00639"></a> 639 fprintf(stdout, "ERROR: Nodal var hashes do not match\\n");

<a id="l00640" name="l00640"></a> 640 }

<a id="l00641" name="l00641"></a> 641 

<a id="l00642" name="l00642"></a> 642 fprintf(stdout, "Nodal Var: %s, Num Values: %u, Hash: %s\\n", var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), num_var_values, nodal_var_hash_1.c_str());

<a id="l00643" name="l00643"></a> 643 if (all_variable_data) {

<a id="l00644" name="l00644"></a> 644 float min = FLT_MAX-1;

<a id="l00645" name="l00645"></a> 645 float max = -1*min;

<a id="l00646" name="l00646"></a> 646 std::vector&lt;float&gt; var_data(num_var_values);

<a id="l00647" name="l00647"></a> 647 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_variable\_data](class_d_v_s_1_1_i_mesh_chunk.xhtml#ae7fe3d3b75e14f1cdd0d810e30a35fe0)(var_index, var_data.data())) {

<a id="l00648" name="l00648"></a> 648 fprintf(stdout, "ERROR: Could not get nodal var data\\n");

<a id="l00649" name="l00649"></a> 649 }

<a id="l00650" name="l00650"></a> 650 fprintf(stdout, "VarData:");

<a id="l00651" name="l00651"></a> 651 for (const auto&amp; val : var_data) {

<a id="l00652" name="l00652"></a> 652 fprintf(stdout, " %f", val);

<a id="l00653" name="l00653"></a> 653 if (val &lt; min) {

<a id="l00654" name="l00654"></a> 654 min = val;

<a id="l00655" name="l00655"></a> 655 }

<a id="l00656" name="l00656"></a> 656 if (val &gt; max) {

<a id="l00657" name="l00657"></a> 657 max = val;

<a id="l00658" name="l00658"></a> 658 }

<a id="l00659" name="l00659"></a> 659 }

<a id="l00660" name="l00660"></a> 660 fprintf(stdout, "\\n");

<a id="l00661" name="l00661"></a> 661 fprintf(stdout, "Min: %f, Max: %f\\n", min, max);

<a id="l00662" name="l00662"></a> 662 }

<a id="l00663" name="l00663"></a> 663 }

<a id="l00664" name="l00664"></a> 664 

<a id="l00665" name="l00665"></a> 665 fprintf(stdout, "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\\n"

<a id="l00666" name="l00666"></a> 666 "Mesh Chunk: Test New Interfaces for Floats\\n"

<a id="l00667" name="l00667"></a> 667 "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\\n");

<a id="l00668" name="l00668"></a> 668 uint32_t num_nodal_vars_floats = 0;

<a id="l00669" name="l00669"></a> 669 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_num\_variables](class_d_v_s_1_1_i_mesh_chunk.xhtml#a0b819acf4a968957e8ba90876dd880d9)(num_nodal_vars_floats, DVS::VAR_TYPE::FLOAT)) {

<a id="l00670" name="l00670"></a> 670 fprintf(stdout, "ERROR: Could not get num nodal vars\\n");

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

<a id="l00672" name="l00672"></a> 672 for (uint32_t var_index = 0; var_index &lt; num_nodal_vars_floats; ++var_index) {

<a id="l00673" name="l00673"></a> 673 auto var = mesh_chunk-&gt;[get\_variable](class_d_v_s_1_1_i_mesh_chunk.xhtml#a3fbe50455053f953a39707671d8b3ab3)(var_index, DVS::VAR_TYPE::FLOAT);

<a id="l00674" name="l00674"></a> 674 if (var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)() != [dvs\_var\_location::NODE](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a59a889456a2d742fdca191dccb3e871d)) {

<a id="l00675" name="l00675"></a> 675 fprintf(stdout, "ERROR: Var is not nodal and should be\\n");

<a id="l00676" name="l00676"></a> 676 }

<a id="l00677" name="l00677"></a> 677 

<a id="l00678" name="l00678"></a> 678 uint32_t num_var_values = 0;

<a id="l00679" name="l00679"></a> 679 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_variable\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#a6d0e7efa6c204cbb7730ef1bf4024fbc)(var_index, num_var_values, DVS::VAR_TYPE::FLOAT)) {

<a id="l00680" name="l00680"></a> 680 fprintf(stdout, "ERROR: Could not get nodal var data\\n");

<a id="l00681" name="l00681"></a> 681 }

<a id="l00682" name="l00682"></a> 682 

<a id="l00683" name="l00683"></a> 683 std::string nodal_var_hash_1(mesh_chunk-&gt;[get\_var\_hash\_size](class_d_v_s_1_1_i_var_hash.xhtml#a85c3ade756029207e15b1c8de8cd5c1b)(var_index, DVS::VAR_TYPE::FLOAT), 0);

<a id="l00684" name="l00684"></a> 684 std::string nodal_var_hash_2(mesh_chunk-&gt;[get\_var\_hash\_size](class_d_v_s_1_1_i_var_hash.xhtml#a85c3ade756029207e15b1c8de8cd5c1b)(var), 0);

<a id="l00685" name="l00685"></a> 685 if (nodal_var_hash_1.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_var\_hash](class_d_v_s_1_1_i_var_hash.xhtml#a17fff1548eb276edd326a0af08f6a7c4)(var_index, &amp;(nodal_var_hash_1[0]), DVS::VAR_TYPE::FLOAT)) {

<a id="l00686" name="l00686"></a> 686 fprintf(stdout, "ERROR: Could not get nodal var hash 1\\n");

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

<a id="l00688" name="l00688"></a> 688 if (nodal_var_hash_2.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_var\_hash](class_d_v_s_1_1_i_var_hash.xhtml#a17fff1548eb276edd326a0af08f6a7c4)(var, &amp;(nodal_var_hash_2[0]))) {

<a id="l00689" name="l00689"></a> 689 fprintf(stdout, "ERROR: Could not get nodal var hash 2\\n");

<a id="l00690" name="l00690"></a> 690 }

<a id="l00691" name="l00691"></a> 691 if (nodal_var_hash_1 != nodal_var_hash_2) {

<a id="l00692" name="l00692"></a> 692 fprintf(stdout, "ERROR: Nodal var hashes do not match\\n");

<a id="l00693" name="l00693"></a> 693 }

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

<a id="l00695" name="l00695"></a> 695 fprintf(stdout, "Nodal Var: %s, Num Values: %u, Hash: %s\\n", var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), num_var_values, nodal_var_hash_1.c_str());

<a id="l00696" name="l00696"></a> 696 if (all_variable_data) {

<a id="l00697" name="l00697"></a> 697 float min = FLT_MAX-1;

<a id="l00698" name="l00698"></a> 698 float max = -1*min;

<a id="l00699" name="l00699"></a> 699 std::vector&lt;float&gt; var_data(num_var_values);

<a id="l00700" name="l00700"></a> 700 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_variable\_data](class_d_v_s_1_1_i_mesh_chunk.xhtml#ae7fe3d3b75e14f1cdd0d810e30a35fe0)(var_index, var_data.data())) {

<a id="l00701" name="l00701"></a> 701 fprintf(stdout, "ERROR: Could not get nodal var data\\n");

<a id="l00702" name="l00702"></a> 702 }

<a id="l00703" name="l00703"></a> 703 fprintf(stdout, "VarData:");

<a id="l00704" name="l00704"></a> 704 for (const auto&amp; val : var_data) {

<a id="l00705" name="l00705"></a> 705 std::cout &lt;&lt; " " &lt;&lt; val;

<a id="l00706" name="l00706"></a> 706 if (val &lt; min) {

<a id="l00707" name="l00707"></a> 707 min = val;

<a id="l00708" name="l00708"></a> 708 }

<a id="l00709" name="l00709"></a> 709 if (val &gt; max) {

<a id="l00710" name="l00710"></a> 710 max = val;

<a id="l00711" name="l00711"></a> 711 }

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

<a id="l00713" name="l00713"></a> 713 fprintf(stdout, "\\n");

<a id="l00714" name="l00714"></a> 714 std::cout &lt;&lt; "Min: " &lt;&lt; min &lt;&lt; ", Max: " &lt;&lt; max &lt;&lt; std::endl;

<a id="l00715" name="l00715"></a> 715 }

<a id="l00716" name="l00716"></a> 716 }

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

<a id="l00718" name="l00718"></a> 718 fprintf(stdout, "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\\n"

<a id="l00719" name="l00719"></a> 719 "Mesh Chunk: Test New Interfaces for Int64s\\n"

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

<a id="l00721" name="l00721"></a> 721 uint32_t num_nodal_vars_int64s = 0;

<a id="l00722" name="l00722"></a> 722 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_num\_variables](class_d_v_s_1_1_i_mesh_chunk.xhtml#a0b819acf4a968957e8ba90876dd880d9)(num_nodal_vars_int64s, DVS::VAR_TYPE::INT64)) {

<a id="l00723" name="l00723"></a> 723 fprintf(stdout, "ERROR: Could not get num nodal vars\\n");

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

<a id="l00725" name="l00725"></a> 725 for (uint32_t var_index = 0; var_index &lt; num_nodal_vars_int64s; ++var_index) {

<a id="l00726" name="l00726"></a> 726 auto var = mesh_chunk-&gt;[get\_variable](class_d_v_s_1_1_i_mesh_chunk.xhtml#a3fbe50455053f953a39707671d8b3ab3)(var_index, DVS::VAR_TYPE::INT64);

<a id="l00727" name="l00727"></a> 727 if (var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)() != [dvs\_var\_location::NODE](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a59a889456a2d742fdca191dccb3e871d)) {

<a id="l00728" name="l00728"></a> 728 fprintf(stdout, "ERROR: Var is not nodal and should be\\n");

<a id="l00729" name="l00729"></a> 729 }

<a id="l00730" name="l00730"></a> 730 

<a id="l00731" name="l00731"></a> 731 uint32_t num_var_values = 0;

<a id="l00732" name="l00732"></a> 732 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_variable\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#a6d0e7efa6c204cbb7730ef1bf4024fbc)(var_index, num_var_values, DVS::VAR_TYPE::INT64)) {

<a id="l00733" name="l00733"></a> 733 fprintf(stdout, "ERROR: Could not get nodal var data\\n");

<a id="l00734" name="l00734"></a> 734 }

<a id="l00735" name="l00735"></a> 735 

<a id="l00736" name="l00736"></a> 736 std::string nodal_var_hash_1(mesh_chunk-&gt;[get\_var\_hash\_size](class_d_v_s_1_1_i_var_hash.xhtml#a85c3ade756029207e15b1c8de8cd5c1b)(var_index, DVS::VAR_TYPE::INT64), 0);

<a id="l00737" name="l00737"></a> 737 std::string nodal_var_hash_2(mesh_chunk-&gt;[get\_var\_hash\_size](class_d_v_s_1_1_i_var_hash.xhtml#a85c3ade756029207e15b1c8de8cd5c1b)(var), 0);

<a id="l00738" name="l00738"></a> 738 if (nodal_var_hash_1.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_var\_hash](class_d_v_s_1_1_i_var_hash.xhtml#a17fff1548eb276edd326a0af08f6a7c4)(var_index, &amp;(nodal_var_hash_1[0]), DVS::VAR_TYPE::INT64)) {

<a id="l00739" name="l00739"></a> 739 fprintf(stdout, "ERROR: Could not get nodal var hash 1\\n");

<a id="l00740" name="l00740"></a> 740 }

<a id="l00741" name="l00741"></a> 741 if (nodal_var_hash_2.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_var\_hash](class_d_v_s_1_1_i_var_hash.xhtml#a17fff1548eb276edd326a0af08f6a7c4)(var, &amp;(nodal_var_hash_2[0]))) {

<a id="l00742" name="l00742"></a> 742 fprintf(stdout, "ERROR: Could not get nodal var hash 2\\n");

<a id="l00743" name="l00743"></a> 743 }

<a id="l00744" name="l00744"></a> 744 if (nodal_var_hash_1 != nodal_var_hash_2) {

<a id="l00745" name="l00745"></a> 745 fprintf(stdout, "ERROR: Nodal var hashes do not match\\n");

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

<a id="l00747" name="l00747"></a> 747 

<a id="l00748" name="l00748"></a> 748 fprintf(stdout, "Nodal Var: %s, Num Values: %u, Hash: %s\\n", var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), num_var_values, nodal_var_hash_1.c_str());

<a id="l00749" name="l00749"></a> 749 if (all_variable_data) {

<a id="l00750" name="l00750"></a> 750 int64_t min = INT64_MAX-1;

<a id="l00751" name="l00751"></a> 751 int64_t max = -1*min;

<a id="l00752" name="l00752"></a> 752 std::vector&lt;int64_t&gt; var_data(num_var_values);

<a id="l00753" name="l00753"></a> 753 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_variable\_data](class_d_v_s_1_1_i_mesh_chunk.xhtml#ae7fe3d3b75e14f1cdd0d810e30a35fe0)(var_index, var_data.data())) {

<a id="l00754" name="l00754"></a> 754 fprintf(stdout, "ERROR: Could not get nodal var data\\n");

<a id="l00755" name="l00755"></a> 755 }

<a id="l00756" name="l00756"></a> 756 fprintf(stdout, "VarData:");

<a id="l00757" name="l00757"></a> 757 for (const auto&amp; val : var_data) {

<a id="l00758" name="l00758"></a> 758 std::cout &lt;&lt; " " &lt;&lt; val;

<a id="l00759" name="l00759"></a> 759 if (val &lt; min) {

<a id="l00760" name="l00760"></a> 760 min = val;

<a id="l00761" name="l00761"></a> 761 }

<a id="l00762" name="l00762"></a> 762 if (val &gt; max) {

<a id="l00763" name="l00763"></a> 763 max = val;

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

<a id="l00765" name="l00765"></a> 765 }

<a id="l00766" name="l00766"></a> 766 fprintf(stdout, "\\n");

<a id="l00767" name="l00767"></a> 767 std::cout &lt;&lt; "Min: " &lt;&lt; min &lt;&lt; ", Max: " &lt;&lt; max &lt;&lt; std::endl;

<a id="l00768" name="l00768"></a> 768 }

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

<a id="l00770" name="l00770"></a> 770 

<a id="l00771" name="l00771"></a> 771 

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

<a id="l00773" name="l00773"></a> 773 

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

<a id="l00775" name="l00775"></a> 775 

<a id="l00776" name="l00776"></a> 776 

<a id="l00777" name="l00777"></a> 777 uint32_t num_element_blocks = 0;

<a id="l00778" name="l00778"></a> 778 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != mesh_chunk-&gt;[get\_num\_element\_blocks](class_d_v_s_1_1_i_mesh_chunk.xhtml#a5f3772e845d3ffe73c4a6525d78ab2ad)(num_element_blocks)) {

<a id="l00779" name="l00779"></a> 779 fprintf(stdout, "ERROR: Could not get number of element blocks\\n");

<a id="l00780" name="l00780"></a> 780 }

<a id="l00781" name="l00781"></a> 781 std::vector&lt;dvs_element_type&gt; element_block_types(num_element_blocks);

<a id="l00782" name="l00782"></a> 782 mesh_chunk-&gt;[get\_element\_block\_types](class_d_v_s_1_1_i_mesh_chunk.xhtml#a44a916bcd71f4d6b33661b249d52c61b)(element_block_types.data());

<a id="l00783" name="l00783"></a> 783 for (const auto&amp; elem_type : element_block_types) {

<a id="l00784" name="l00784"></a> 784 auto elem_block = mesh_chunk-&gt;[get\_element\_block\_by\_type](class_d_v_s_1_1_i_mesh_chunk.xhtml#a7ca84ad8d766514684790bacd31803fc)(elem_type);

<a id="l00785" name="l00785"></a> 785 if (elem_block) {

<a id="l00786" name="l00786"></a> 786 switch(elem_block-&gt;get_element_type())

<a id="l00787" name="l00787"></a> 787 {

<a id="l00788" name="l00788"></a> 788 case N_SIDED_POLYGON:

<a id="l00789" name="l00789"></a> 789 case N_SIDED_POLYGON_GHOST:

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

<a id="l00791" name="l00791"></a> 791 uint32_t dummy = 0;

<a id="l00792" name="l00792"></a> 792 uint32_t num_elements = 0;

<a id="l00793" name="l00793"></a> 793 uint32_t nodes_per_polygon_size = 0;

<a id="l00794" name="l00794"></a> 794 uint32_t indices_size = 0;

<a id="l00795" name="l00795"></a> 795 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_num_elements(num_elements)) {

<a id="l00796" name="l00796"></a> 796 fprintf(stdout, "ERROR getting number of elements\\n");

<a id="l00797" name="l00797"></a> 797 }

<a id="l00798" name="l00798"></a> 798 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_nodes_per_element(dummy)) {

<a id="l00799" name="l00799"></a> 799 fprintf(stdout, "ERROR get\_nodes\_per\_element should be invalid for this type\\n");

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

<a id="l00801" name="l00801"></a> 801 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_size(dummy)) {

<a id="l00802" name="l00802"></a> 802 fprintf(stdout, "ERROR get\_connectivity\_size should be invalid for this type\\n");

<a id="l00803" name="l00803"></a> 803 }

<a id="l00804" name="l00804"></a> 804 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity(nullptr)) {

<a id="l00805" name="l00805"></a> 805 fprintf(stdout, "ERROR get\_connectivity should be invalid for this type\\n");

<a id="l00806" name="l00806"></a> 806 }

<a id="l00807" name="l00807"></a> 807 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polyhedral_size(dummy, dummy, dummy)) {

<a id="l00808" name="l00808"></a> 808 fprintf(stdout, "ERROR get\_connectivity\_polyhedral\_size should be invalid for this type\\n");

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

<a id="l00810" name="l00810"></a> 810 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polyhedral(nullptr,nullptr,nullptr)) {

<a id="l00811" name="l00811"></a> 811 fprintf(stdout, "ERROR get\_connectivity\_polyhedral should be invalid for this type\\n");

<a id="l00812" name="l00812"></a> 812 }

<a id="l00813" name="l00813"></a> 813 

<a id="l00814" name="l00814"></a> 814 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity_polygon_size(nodes_per_polygon_size, indices_size)) {

<a id="l00815" name="l00815"></a> 815 fprintf(stdout, "ERROR with get\_connectivity\_polygon\_size()\\n");

<a id="l00816" name="l00816"></a> 816 }

<a id="l00817" name="l00817"></a> 817 

<a id="l00818" name="l00818"></a> 818 std::string conn_hash(elem_block-&gt;get_hash_size(), 0);

<a id="l00819" name="l00819"></a> 819 if (conn_hash.empty() || elem_block-&gt;get_hash(&amp;(conn_hash[0]))) {

<a id="l00820" name="l00820"></a> 820 fprintf(stdout, "ERROR: Could not load connectivity hash\\n");

<a id="l00821" name="l00821"></a> 821 }

<a id="l00822" name="l00822"></a> 822 fprintf(stdout, "- Unstructured Polygon Element: Type: %i, Ghost: %u, Number of Elements: %u, Nodes Per Poly: %u, Indices Size: %u, Hash: %s\\n",

<a id="l00823" name="l00823"></a> 823 elem_type, elem_block-&gt;get_is_ghost(), num_elements, nodes_per_polygon_size, indices_size, conn_hash.c_str());

<a id="l00824" name="l00824"></a> 824 

<a id="l00825" name="l00825"></a> 825 

<a id="l00826" name="l00826"></a> 826 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity_polygon(nullptr, nullptr)) {

<a id="l00827" name="l00827"></a> 827 fprintf(stdout, "ERROR get\_connectivity\_polygon\\n");

<a id="l00828" name="l00828"></a> 828 }

<a id="l00829" name="l00829"></a> 829 

<a id="l00830" name="l00830"></a> 830 if (all_connectivity) {

<a id="l00831" name="l00831"></a> 831 std::vector&lt;uint32_t&gt; nodes_per_polygon(nodes_per_polygon_size);

<a id="l00832" name="l00832"></a> 832 std::vector&lt;uint32_t&gt; indices(indices_size);

<a id="l00833" name="l00833"></a> 833 

<a id="l00834" name="l00834"></a> 834 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity_polygon(nodes_per_polygon.data(),

<a id="l00835" name="l00835"></a> 835 indices.data())) {

<a id="l00836" name="l00836"></a> 836 fprintf(stdout, "ERROR get\_connectivity\_polygon\\n");

<a id="l00837" name="l00837"></a> 837 }

<a id="l00838" name="l00838"></a> 838 else {

<a id="l00839" name="l00839"></a> 839 fprintf(stdout, "NPP:");

<a id="l00840" name="l00840"></a> 840 for (const auto&amp; nodes : nodes_per_polygon) {

<a id="l00841" name="l00841"></a> 841 fprintf(stdout, " %u", nodes);

<a id="l00842" name="l00842"></a> 842 }

<a id="l00843" name="l00843"></a> 843 fprintf(stdout, "\\n");

<a id="l00844" name="l00844"></a> 844 fprintf(stdout, "Indices:");

<a id="l00845" name="l00845"></a> 845 for (const auto&amp; index : indices) {

<a id="l00846" name="l00846"></a> 846 fprintf(stdout, " %u", index);

<a id="l00847" name="l00847"></a> 847 }

<a id="l00848" name="l00848"></a> 848 fprintf(stdout, "\\n");

<a id="l00849" name="l00849"></a> 849 }

<a id="l00850" name="l00850"></a> 850 }

<a id="l00851" name="l00851"></a> 851 break;

<a id="l00852" name="l00852"></a> 852 }

<a id="l00853" name="l00853"></a> 853 case CONVEX_POLYHEDRON:

<a id="l00854" name="l00854"></a> 854 case CONVEX_POLYHEDRON_GHOST:

<a id="l00855" name="l00855"></a> 855 {

<a id="l00856" name="l00856"></a> 856 uint32_t dummy = 0;

<a id="l00857" name="l00857"></a> 857 uint32_t num_elements = 0;

<a id="l00858" name="l00858"></a> 858 uint32_t faces_per_elem_size = 0;

<a id="l00859" name="l00859"></a> 859 uint32_t nodes_per_face_size = 0;

<a id="l00860" name="l00860"></a> 860 uint32_t indices_size = 0;

<a id="l00861" name="l00861"></a> 861 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_num_elements(num_elements)) {

<a id="l00862" name="l00862"></a> 862 fprintf(stdout, "ERROR getting number of elements\\n");

<a id="l00863" name="l00863"></a> 863 }

<a id="l00864" name="l00864"></a> 864 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_nodes_per_element(dummy)) {

<a id="l00865" name="l00865"></a> 865 fprintf(stdout, "ERROR get\_nodes\_per\_element should be invalid for this type\\n");

<a id="l00866" name="l00866"></a> 866 }

<a id="l00867" name="l00867"></a> 867 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_size(dummy)) {

<a id="l00868" name="l00868"></a> 868 fprintf(stdout, "ERROR get\_connectivity\_size should be invalid for this type\\n");

<a id="l00869" name="l00869"></a> 869 }

<a id="l00870" name="l00870"></a> 870 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polygon_size(dummy, dummy)) {

<a id="l00871" name="l00871"></a> 871 fprintf(stdout, "ERROR get\_connectivity\_polygon\_size should be invalid for this type\\n");

<a id="l00872" name="l00872"></a> 872 }

<a id="l00873" name="l00873"></a> 873 

<a id="l00874" name="l00874"></a> 874 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity_polyhedral_size(faces_per_elem_size, nodes_per_face_size, indices_size)) {

<a id="l00875" name="l00875"></a> 875 fprintf(stdout, "ERROR with get\_connectivity\_polyhedral\_size\\n");

<a id="l00876" name="l00876"></a> 876 }

<a id="l00877" name="l00877"></a> 877 

<a id="l00878" name="l00878"></a> 878 std::string conn_hash(elem_block-&gt;get_hash_size(), 0);

<a id="l00879" name="l00879"></a> 879 if (conn_hash.empty() || elem_block-&gt;get_hash(&amp;(conn_hash[0]))) {

<a id="l00880" name="l00880"></a> 880 fprintf(stdout, "ERROR: Could not load connectivity hash\\n");

<a id="l00881" name="l00881"></a> 881 }

<a id="l00882" name="l00882"></a> 882 

<a id="l00883" name="l00883"></a> 883 fprintf(stdout, "- Unstructured Polyhedral Element: Type: %i, Ghost: %u, Number of Elements: %u, FPE: %u NPF: %u Indices: %u, Hash: %s\\n",

<a id="l00884" name="l00884"></a> 884 elem_type, elem_block-&gt;get_is_ghost(), num_elements, faces_per_elem_size, nodes_per_face_size, indices_size, conn_hash.c_str());

<a id="l00885" name="l00885"></a> 885 

<a id="l00886" name="l00886"></a> 886 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity_polyhedral(nullptr, nullptr, nullptr)) {

<a id="l00887" name="l00887"></a> 887 fprintf(stdout, "ERROR get\_connectivity\_polyhedral\\n");

<a id="l00888" name="l00888"></a> 888 }

<a id="l00889" name="l00889"></a> 889 

<a id="l00890" name="l00890"></a> 890 if (all_connectivity) {

<a id="l00891" name="l00891"></a> 891 std::vector&lt;uint32_t&gt; faces_per_element(faces_per_elem_size);

<a id="l00892" name="l00892"></a> 892 std::vector&lt;uint32_t&gt; nodes_per_face(nodes_per_face_size);

<a id="l00893" name="l00893"></a> 893 std::vector&lt;uint32_t&gt; indices(indices_size);

<a id="l00894" name="l00894"></a> 894 

<a id="l00895" name="l00895"></a> 895 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity_polyhedral(faces_per_element.data(),

<a id="l00896" name="l00896"></a> 896 nodes_per_face.data(),

<a id="l00897" name="l00897"></a> 897 indices.data())) {

<a id="l00898" name="l00898"></a> 898 fprintf(stdout, "ERROR get\_connectivity\_polyhedral\\n");

<a id="l00899" name="l00899"></a> 899 }

<a id="l00900" name="l00900"></a> 900 else {

<a id="l00901" name="l00901"></a> 901 fprintf(stdout, "FPE:");

<a id="l00902" name="l00902"></a> 902 for (const auto&amp; faces : faces_per_element) {

<a id="l00903" name="l00903"></a> 903 fprintf(stdout, " %u", faces);

<a id="l00904" name="l00904"></a> 904 }

<a id="l00905" name="l00905"></a> 905 fprintf(stdout, "\\n");

<a id="l00906" name="l00906"></a> 906 fprintf(stdout, "NPF:");

<a id="l00907" name="l00907"></a> 907 for (const auto&amp; nodes : nodes_per_face) {

<a id="l00908" name="l00908"></a> 908 fprintf(stdout, " %u", nodes);

<a id="l00909" name="l00909"></a> 909 }

<a id="l00910" name="l00910"></a> 910 fprintf(stdout, "\\n");

<a id="l00911" name="l00911"></a> 911 fprintf(stdout, "Indices:");

<a id="l00912" name="l00912"></a> 912 for (const auto&amp; index : indices) {

<a id="l00913" name="l00913"></a> 913 fprintf(stdout, " %u", index);

<a id="l00914" name="l00914"></a> 914 }

<a id="l00915" name="l00915"></a> 915 fprintf(stdout, "\\n");

<a id="l00916" name="l00916"></a> 916 }

<a id="l00917" name="l00917"></a> 917 }

<a id="l00918" name="l00918"></a> 918 break;

<a id="l00919" name="l00919"></a> 919 }

<a id="l00920" name="l00920"></a> 920 case STRUCTURED:

<a id="l00921" name="l00921"></a> 921 {

<a id="l00922" name="l00922"></a> 922 uint32_t dummy = 0;

<a id="l00923" name="l00923"></a> 923 uint32_t num_elements = 0;

<a id="l00924" name="l00924"></a> 924 uint32_t nodes_per_element = 0;

<a id="l00925" name="l00925"></a> 925 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_num_elements(num_elements)) {

<a id="l00926" name="l00926"></a> 926 fprintf(stdout, "ERROR get\_num\_elements\\n");

<a id="l00927" name="l00927"></a> 927 }

<a id="l00928" name="l00928"></a> 928 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_nodes_per_element(nodes_per_element)) {

<a id="l00929" name="l00929"></a> 929 fprintf(stdout, "Error get\_nodes\_per\_element\\n");

<a id="l00930" name="l00930"></a> 930 }

<a id="l00931" name="l00931"></a> 931 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_size(dummy)) {

<a id="l00932" name="l00932"></a> 932 fprintf(stdout, "Error get\_connectivity\_size should be invalid for this type\\n");

<a id="l00933" name="l00933"></a> 933 }

<a id="l00934" name="l00934"></a> 934 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity(nullptr)) {

<a id="l00935" name="l00935"></a> 935 fprintf(stdout, "Error get\_connectivity should be invalid for this type\\n");

<a id="l00936" name="l00936"></a> 936 }

<a id="l00937" name="l00937"></a> 937 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polygon_size(dummy,dummy)) {

<a id="l00938" name="l00938"></a> 938 fprintf(stdout, "Error get\_connectivity\_polygon\_size should be invalid for this type\\n");

<a id="l00939" name="l00939"></a> 939 }

<a id="l00940" name="l00940"></a> 940 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polygon(nullptr,nullptr)) {

<a id="l00941" name="l00941"></a> 941 fprintf(stdout, "Error get\_connectivity\_polygon should be invalid for this type\\n");

<a id="l00942" name="l00942"></a> 942 }

<a id="l00943" name="l00943"></a> 943 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polyhedral_size(dummy,dummy,dummy)) {

<a id="l00944" name="l00944"></a> 944 fprintf(stdout, "Error get\_connectivity\_polyhedral\_size should be invalid for this type\\n");

<a id="l00945" name="l00945"></a> 945 }

<a id="l00946" name="l00946"></a> 946 std::string conn_hash(elem_block-&gt;get_hash_size(), 0);

<a id="l00947" name="l00947"></a> 947 if (conn_hash.empty() || elem_block-&gt;get_hash(&amp;(conn_hash[0]))) {

<a id="l00948" name="l00948"></a> 948 fprintf(stdout, "ERROR: Could not load connectivity hash\\n");

<a id="l00949" name="l00949"></a> 949 }

<a id="l00950" name="l00950"></a> 950 fprintf(stdout, "- Structured Element: Type: %i NPE: %u Hash: %s\\n", elem_type, nodes_per_element, conn_hash.c_str());

<a id="l00951" name="l00951"></a> 951 break;

<a id="l00952" name="l00952"></a> 952 }

<a id="l00953" name="l00953"></a> 953 case UNDEFINED:

<a id="l00954" name="l00954"></a> 954 case UNDEFINED_PARALLELEPIPED:

<a id="l00955" name="l00955"></a> 955 case UNDEFINED_CURVILINEAR:

<a id="l00956" name="l00956"></a> 956 fprintf(stdout, "ERROR, undefined element type found\\n");

<a id="l00957" name="l00957"></a> 957 break;

<a id="l00958" name="l00958"></a> 958 

<a id="l00959" name="l00959"></a> 959 default:

<a id="l00960" name="l00960"></a> 960 {

<a id="l00961" name="l00961"></a> 961 uint32_t dummy = 0;

<a id="l00962" name="l00962"></a> 962 uint32_t num_elements = 0;

<a id="l00963" name="l00963"></a> 963 uint32_t nodes_per_elem = 0;

<a id="l00964" name="l00964"></a> 964 uint32_t indices_size = 0;

<a id="l00965" name="l00965"></a> 965 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_num_elements(num_elements)) {

<a id="l00966" name="l00966"></a> 966 fprintf(stdout, "ERROR getting number of elements\\n");

<a id="l00967" name="l00967"></a> 967 }

<a id="l00968" name="l00968"></a> 968 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_nodes_per_element(nodes_per_elem)) {

<a id="l00969" name="l00969"></a> 969 fprintf(stdout, "ERROR getting nodes per element\\n");

<a id="l00970" name="l00970"></a> 970 }

<a id="l00971" name="l00971"></a> 971 

<a id="l00972" name="l00972"></a> 972 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polygon_size(dummy, dummy)) {

<a id="l00973" name="l00973"></a> 973 fprintf(stdout, "ERROR get\_connectivity\_polygon\_size should be invalid for this type\\n");

<a id="l00974" name="l00974"></a> 974 }

<a id="l00975" name="l00975"></a> 975 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polygon(nullptr, nullptr)) {

<a id="l00976" name="l00976"></a> 976 fprintf(stdout, "ERROR get\_connectivity\_polygon should be invalid for this type\\n");

<a id="l00977" name="l00977"></a> 977 }

<a id="l00978" name="l00978"></a> 978 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polyhedral_size(dummy, dummy, dummy)) {

<a id="l00979" name="l00979"></a> 979 fprintf(stdout, "ERROR get\_connectivity\_polyhedral\_size should be invalid for this type\\n");

<a id="l00980" name="l00980"></a> 980 }

<a id="l00981" name="l00981"></a> 981 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) == elem_block-&gt;get_connectivity_polyhedral(nullptr, nullptr, nullptr)) {

<a id="l00982" name="l00982"></a> 982 fprintf(stdout, "ERROR get\_connectivity\_polyhedral should be invalid for this type\\n");

<a id="l00983" name="l00983"></a> 983 }

<a id="l00984" name="l00984"></a> 984 

<a id="l00985" name="l00985"></a> 985 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity_size(indices_size)) {

<a id="l00986" name="l00986"></a> 986 fprintf(stdout, "ERROR get\_connectivity\_size\\n");

<a id="l00987" name="l00987"></a> 987 }

<a id="l00988" name="l00988"></a> 988 

<a id="l00989" name="l00989"></a> 989 std::string conn_hash(elem_block-&gt;get_hash_size(), 0);

<a id="l00990" name="l00990"></a> 990 if (conn_hash.empty() || elem_block-&gt;get_hash(&amp;(conn_hash[0]))) {

<a id="l00991" name="l00991"></a> 991 fprintf(stdout, "ERROR: Could not load connectivity hash\\n");

<a id="l00992" name="l00992"></a> 992 }

<a id="l00993" name="l00993"></a> 993 

<a id="l00994" name="l00994"></a> 994 fprintf(stdout, "- Unstructured Basic Element: Type: %i, Ghost: %u, Number of Elements: %u, Nodes Per Elem: %u, Indices Size: %u, Hash: %s\\n",

<a id="l00995" name="l00995"></a> 995 elem_type, elem_block-&gt;get_is_ghost(), num_elements, nodes_per_elem, indices_size, conn_hash.c_str());

<a id="l00996" name="l00996"></a> 996 

<a id="l00997" name="l00997"></a> 997 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity(nullptr)) {

<a id="l00998" name="l00998"></a> 998 fprintf(stdout, "ERROR get\_connectivity\\n");

<a id="l00999" name="l00999"></a> 999 }

<a id="l01000" name="l01000"></a> 1000 

<a id="l01001" name="l01001"></a> 1001 if (all_connectivity) {

<a id="l01002" name="l01002"></a> 1002 std::vector&lt;uint32_t&gt; indices(indices_size);

<a id="l01003" name="l01003"></a> 1003 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_connectivity(indices.data())) {

<a id="l01004" name="l01004"></a> 1004 fprintf(stdout, "ERROR get\_connectivity\\n");

<a id="l01005" name="l01005"></a> 1005 }

<a id="l01006" name="l01006"></a> 1006 else {

<a id="l01007" name="l01007"></a> 1007 fprintf(stdout, "Indices:");

<a id="l01008" name="l01008"></a> 1008 for (const auto&amp; index : indices) {

<a id="l01009" name="l01009"></a> 1009 fprintf(stdout, " %u", index);

<a id="l01010" name="l01010"></a> 1010 }

<a id="l01011" name="l01011"></a> 1011 fprintf(stdout, "\\n");

<a id="l01012" name="l01012"></a> 1012 }

<a id="l01013" name="l01013"></a> 1013 }

<a id="l01014" name="l01014"></a> 1014 break;

<a id="l01015" name="l01015"></a> 1015 }

<a id="l01016" name="l01016"></a> 1016 }

<a id="l01017" name="l01017"></a> 1017 

<a id="l01018" name="l01018"></a> 1018 uint32_t num_elemental_vars = 0;

<a id="l01019" name="l01019"></a> 1019 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_num_variables(num_elemental_vars)) {

<a id="l01020" name="l01020"></a> 1020 fprintf(stdout, "ERROR: Could not get num elemental vars\\n");

<a id="l01021" name="l01021"></a> 1021 }

<a id="l01022" name="l01022"></a> 1022 

<a id="l01023" name="l01023"></a> 1023 for (uint32_t var_index = 0; var_index &lt; num_elemental_vars; var_index++) {

<a id="l01024" name="l01024"></a> 1024 auto var = elem_block-&gt;get_variable(var_index);

<a id="l01025" name="l01025"></a> 1025 if (var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)() != [dvs\_var\_location::ELEMENT](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a3d10bfe84917127ab3347aa5c6309f33)) {

<a id="l01026" name="l01026"></a> 1026 fprintf(stdout, "ERROR: Var is not elemental and should be\\n");

<a id="l01027" name="l01027"></a> 1027 }

<a id="l01028" name="l01028"></a> 1028 

<a id="l01029" name="l01029"></a> 1029 uint32_t num_elem_var_values = 0;

<a id="l01030" name="l01030"></a> 1030 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_variable_data(var_index, &amp;num_elem_var_values, nullptr)) {

<a id="l01031" name="l01031"></a> 1031 fprintf(stdout, "ERROR: Could not get elemental var data\\n");

<a id="l01032" name="l01032"></a> 1032 }

<a id="l01033" name="l01033"></a> 1033 std::string elem_var_hash_1(elem_block-&gt;get_var_hash_size(var_index), 0);

<a id="l01034" name="l01034"></a> 1034 std::string elem_var_hash_2(elem_block-&gt;get_var_hash_size(var), 0);

<a id="l01035" name="l01035"></a> 1035 if (elem_var_hash_1.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_var_hash(var_index, &amp;(elem_var_hash_1[0]))) {

<a id="l01036" name="l01036"></a> 1036 fprintf(stdout, "ERROR: Could not get elem var hash 1\\n");

<a id="l01037" name="l01037"></a> 1037 }

<a id="l01038" name="l01038"></a> 1038 if (elem_var_hash_2.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_var_hash(var, &amp;(elem_var_hash_2[0]))) {

<a id="l01039" name="l01039"></a> 1039 fprintf(stdout, "ERROR: Could not get elem var hash 2\\n");

<a id="l01040" name="l01040"></a> 1040 }

<a id="l01041" name="l01041"></a> 1041 if (elem_var_hash_1 != elem_var_hash_2) {

<a id="l01042" name="l01042"></a> 1042 fprintf(stdout, "ERROR: Elem var hashes do not match\\n");

<a id="l01043" name="l01043"></a> 1043 }

<a id="l01044" name="l01044"></a> 1044 fprintf(stdout, "Elemental Var: %s, Num Values: %u, Hash: %s\\n", var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), num_elem_var_values, elem_var_hash_1.c_str());

<a id="l01045" name="l01045"></a> 1045 

<a id="l01046" name="l01046"></a> 1046 if (all_variable_data) {

<a id="l01047" name="l01047"></a> 1047 std::vector&lt;float&gt; elem_var_data(num_elem_var_values);

<a id="l01048" name="l01048"></a> 1048 float min = FLT_MAX-1;

<a id="l01049" name="l01049"></a> 1049 float max = -1*min;

<a id="l01050" name="l01050"></a> 1050 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_variable_data(var_index, nullptr, elem_var_data.data())) {

<a id="l01051" name="l01051"></a> 1051 fprintf(stdout, "ERROR: Could not get elemental var data\\n");

<a id="l01052" name="l01052"></a> 1052 }

<a id="l01053" name="l01053"></a> 1053 fprintf(stdout, "VarData:");

<a id="l01054" name="l01054"></a> 1054 for (const auto&amp; val : elem_var_data) {

<a id="l01055" name="l01055"></a> 1055 fprintf(stdout, " %f", val);

<a id="l01056" name="l01056"></a> 1056 if (val &lt; min) {

<a id="l01057" name="l01057"></a> 1057 min = val;

<a id="l01058" name="l01058"></a> 1058 }

<a id="l01059" name="l01059"></a> 1059 if (val &gt; max) {

<a id="l01060" name="l01060"></a> 1060 max = val;

<a id="l01061" name="l01061"></a> 1061 }

<a id="l01062" name="l01062"></a> 1062 }

<a id="l01063" name="l01063"></a> 1063 fprintf(stdout, "\\n");

<a id="l01064" name="l01064"></a> 1064 fprintf(stdout, "Min: %f, Max: %f\\n", min, max);

<a id="l01065" name="l01065"></a> 1065 }

<a id="l01066" name="l01066"></a> 1066 }

<a id="l01067" name="l01067"></a> 1067 

<a id="l01068" name="l01068"></a> 1068 

<a id="l01069" name="l01069"></a> 1069 fprintf(stdout, "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\\n"

<a id="l01070" name="l01070"></a> 1070 "Elem Block: Test New Interfaces for Floats\\n"

<a id="l01071" name="l01071"></a> 1071 "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\\n");

<a id="l01072" name="l01072"></a> 1072 uint32_t num_elemental_vars_floats = 0;

<a id="l01073" name="l01073"></a> 1073 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_num_variables(num_elemental_vars_floats, DVS::VAR_TYPE::FLOAT)) {

<a id="l01074" name="l01074"></a> 1074 fprintf(stdout, "ERROR: Could not get num elemental vars\\n");

<a id="l01075" name="l01075"></a> 1075 }

<a id="l01076" name="l01076"></a> 1076 for (uint32_t var_index = 0; var_index &lt; num_elemental_vars_floats; var_index++) {

<a id="l01077" name="l01077"></a> 1077 auto var = elem_block-&gt;get_variable(var_index, DVS::VAR_TYPE::FLOAT);

<a id="l01078" name="l01078"></a> 1078 if (var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)() != [dvs\_var\_location::ELEMENT](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a3d10bfe84917127ab3347aa5c6309f33)) {

<a id="l01079" name="l01079"></a> 1079 fprintf(stdout, "ERROR: Var is not elemental and should be\\n");

<a id="l01080" name="l01080"></a> 1080 }

<a id="l01081" name="l01081"></a> 1081 

<a id="l01082" name="l01082"></a> 1082 uint32_t num_elem_var_values = 0;

<a id="l01083" name="l01083"></a> 1083 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_variable_size(var_index, num_elem_var_values, DVS::VAR_TYPE::FLOAT)) {

<a id="l01084" name="l01084"></a> 1084 fprintf(stdout, "ERROR: Could not get elemental var data\\n");

<a id="l01085" name="l01085"></a> 1085 }

<a id="l01086" name="l01086"></a> 1086 std::string elem_var_hash_1(elem_block-&gt;get_var_hash_size(var_index, DVS::VAR_TYPE::FLOAT), 0);

<a id="l01087" name="l01087"></a> 1087 std::string elem_var_hash_2(elem_block-&gt;get_var_hash_size(var), 0);

<a id="l01088" name="l01088"></a> 1088 if (elem_var_hash_1.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_var_hash(var_index, &amp;(elem_var_hash_1[0]), DVS::VAR_TYPE::FLOAT)) {

<a id="l01089" name="l01089"></a> 1089 fprintf(stdout, "ERROR: Could not get elem var hash 1\\n");

<a id="l01090" name="l01090"></a> 1090 }

<a id="l01091" name="l01091"></a> 1091 if (elem_var_hash_2.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_var_hash(var, &amp;(elem_var_hash_2[0]))) {

<a id="l01092" name="l01092"></a> 1092 fprintf(stdout, "ERROR: Could not get elem var hash 2\\n");

<a id="l01093" name="l01093"></a> 1093 }

<a id="l01094" name="l01094"></a> 1094 if (elem_var_hash_1 != elem_var_hash_2) {

<a id="l01095" name="l01095"></a> 1095 fprintf(stdout, "ERROR: Elem var hashes do not match\\n");

<a id="l01096" name="l01096"></a> 1096 }

<a id="l01097" name="l01097"></a> 1097 fprintf(stdout, "Elemental Var: %s, Num Values: %u, Hash: %s\\n", var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), num_elem_var_values, elem_var_hash_1.c_str());

<a id="l01098" name="l01098"></a> 1098 

<a id="l01099" name="l01099"></a> 1099 if (all_variable_data) {

<a id="l01100" name="l01100"></a> 1100 std::vector&lt;float&gt; elem_var_data(num_elem_var_values);

<a id="l01101" name="l01101"></a> 1101 float min = FLT_MAX-1;

<a id="l01102" name="l01102"></a> 1102 float max = -1*min;

<a id="l01103" name="l01103"></a> 1103 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_variable_data(var_index, elem_var_data.data())) {

<a id="l01104" name="l01104"></a> 1104 fprintf(stdout, "ERROR: Could not get elemental var data\\n");

<a id="l01105" name="l01105"></a> 1105 }

<a id="l01106" name="l01106"></a> 1106 fprintf(stdout, "VarData:");

<a id="l01107" name="l01107"></a> 1107 for (const auto&amp; val : elem_var_data) {

<a id="l01108" name="l01108"></a> 1108 fprintf(stdout, " %f", val);

<a id="l01109" name="l01109"></a> 1109 if (val &lt; min) {

<a id="l01110" name="l01110"></a> 1110 min = val;

<a id="l01111" name="l01111"></a> 1111 }

<a id="l01112" name="l01112"></a> 1112 if (val &gt; max) {

<a id="l01113" name="l01113"></a> 1113 max = val;

<a id="l01114" name="l01114"></a> 1114 }

<a id="l01115" name="l01115"></a> 1115 }

<a id="l01116" name="l01116"></a> 1116 fprintf(stdout, "\\n");

<a id="l01117" name="l01117"></a> 1117 fprintf(stdout, "Min: %f, Max: %f\\n", min, max);

<a id="l01118" name="l01118"></a> 1118 }

<a id="l01119" name="l01119"></a> 1119 }

<a id="l01120" name="l01120"></a> 1120 

<a id="l01121" name="l01121"></a> 1121 

<a id="l01122" name="l01122"></a> 1122 fprintf(stdout, "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\\n"

<a id="l01123" name="l01123"></a> 1123 "Elem Block: Test New Interfaces for INT64S\\n"

<a id="l01124" name="l01124"></a> 1124 "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\\n");

<a id="l01125" name="l01125"></a> 1125 uint32_t num_elemental_vars_int64s = 0;

<a id="l01126" name="l01126"></a> 1126 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_num_variables(num_elemental_vars_int64s, DVS::VAR_TYPE::INT64)) {

<a id="l01127" name="l01127"></a> 1127 fprintf(stdout, "ERROR: Could not get num elemental vars\\n");

<a id="l01128" name="l01128"></a> 1128 }

<a id="l01129" name="l01129"></a> 1129 for (uint32_t var_index = 0; var_index &lt; num_elemental_vars_int64s; var_index++) {

<a id="l01130" name="l01130"></a> 1130 auto var = elem_block-&gt;get_variable(var_index, DVS::VAR_TYPE::INT64);

<a id="l01131" name="l01131"></a> 1131 if (var-&gt;[get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)() != [dvs\_var\_location::ELEMENT](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a3d10bfe84917127ab3347aa5c6309f33)) {

<a id="l01132" name="l01132"></a> 1132 fprintf(stdout, "ERROR: Var is not elemental and should be\\n");

<a id="l01133" name="l01133"></a> 1133 }

<a id="l01134" name="l01134"></a> 1134 

<a id="l01135" name="l01135"></a> 1135 uint32_t num_elem_var_values = 0;

<a id="l01136" name="l01136"></a> 1136 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_variable_size(var_index, num_elem_var_values, DVS::VAR_TYPE::INT64)) {

<a id="l01137" name="l01137"></a> 1137 fprintf(stdout, "ERROR: Could not get elemental var data\\n");

<a id="l01138" name="l01138"></a> 1138 }

<a id="l01139" name="l01139"></a> 1139 std::string elem_var_hash_1(elem_block-&gt;get_var_hash_size(var_index, DVS::VAR_TYPE::INT64), 0);

<a id="l01140" name="l01140"></a> 1140 std::string elem_var_hash_2(elem_block-&gt;get_var_hash_size(var), 0);

<a id="l01141" name="l01141"></a> 1141 if (elem_var_hash_1.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_var_hash(var_index, &amp;(elem_var_hash_1[0]), DVS::VAR_TYPE::INT64)) {

<a id="l01142" name="l01142"></a> 1142 fprintf(stdout, "ERROR: Could not get elem var hash 1\\n");

<a id="l01143" name="l01143"></a> 1143 }

<a id="l01144" name="l01144"></a> 1144 if (elem_var_hash_2.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_var_hash(var, &amp;(elem_var_hash_2[0]))) {

<a id="l01145" name="l01145"></a> 1145 fprintf(stdout, "ERROR: Could not get elem var hash 2\\n");

<a id="l01146" name="l01146"></a> 1146 }

<a id="l01147" name="l01147"></a> 1147 if (elem_var_hash_1 != elem_var_hash_2) {

<a id="l01148" name="l01148"></a> 1148 fprintf(stdout, "ERROR: Elem var hashes do not match\\n");

<a id="l01149" name="l01149"></a> 1149 }

<a id="l01150" name="l01150"></a> 1150 fprintf(stdout, "Elemental Var: %s, Num Values: %u, Hash: %s\\n", var-&gt;[get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)(), num_elem_var_values, elem_var_hash_1.c_str());

<a id="l01151" name="l01151"></a> 1151 

<a id="l01152" name="l01152"></a> 1152 if (all_variable_data) {

<a id="l01153" name="l01153"></a> 1153 std::vector&lt;int64_t&gt; elem_var_data(num_elem_var_values);

<a id="l01154" name="l01154"></a> 1154 int64_t min = INT64_MAX-1;

<a id="l01155" name="l01155"></a> 1155 int64_t max = -1*min;

<a id="l01156" name="l01156"></a> 1156 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != elem_block-&gt;get_variable_data(var_index, elem_var_data.data())) {

<a id="l01157" name="l01157"></a> 1157 fprintf(stdout, "ERROR: Could not get elemental var data\\n");

<a id="l01158" name="l01158"></a> 1158 }

<a id="l01159" name="l01159"></a> 1159 fprintf(stdout, "VarData:");

<a id="l01160" name="l01160"></a> 1160 for (const auto&amp; val : elem_var_data) {

<a id="l01161" name="l01161"></a> 1161 std::cout &lt;&lt; " " &lt;&lt; val;

<a id="l01162" name="l01162"></a> 1162 if (val &lt; min) {

<a id="l01163" name="l01163"></a> 1163 min = val;

<a id="l01164" name="l01164"></a> 1164 }

<a id="l01165" name="l01165"></a> 1165 if (val &gt; max) {

<a id="l01166" name="l01166"></a> 1166 max = val;

<a id="l01167" name="l01167"></a> 1167 }

<a id="l01168" name="l01168"></a> 1168 }

<a id="l01169" name="l01169"></a> 1169 fprintf(stdout, "\\n");

<a id="l01170" name="l01170"></a> 1170 std::cout &lt;&lt; "Min: " &lt;&lt; min &lt;&lt; ", Max: " &lt;&lt; max &lt;&lt; std::endl;

<a id="l01171" name="l01171"></a> 1171 }

<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 

<a id="l01176" name="l01176"></a> 1176 }

<a id="l01177" name="l01177"></a> 1177 } // For elem block types

<a id="l01178" name="l01178"></a> 1178 }

<a id="l01179" name="l01179"></a> 1179 fprintf (stdout, "\\n");

<a id="l01180" name="l01180"></a> 1180 } // For mesh chunks

<a id="l01181" name="l01181"></a> 1181 

<a id="l01182" name="l01182"></a> 1182 fprintf(stdout, "---------------------------\\n");

<a id="l01183" name="l01183"></a> 1183 fprintf(stdout, "Listing All Plot Chunks for Query\\n");

<a id="l01184" name="l01184"></a> 1184 fprintf(stdout, "---------------------------\\n");

<a id="l01185" name="l01185"></a> 1185 

<a id="l01186" name="l01186"></a> 1186 uint32_t num_plot_chunks = 0;

<a id="l01187" name="l01187"></a> 1187 err = dataset_query-&gt;get_num_plot_chunks(num_plot_chunks);

<a id="l01188" name="l01188"></a> 1188 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != err) {

<a id="l01189" name="l01189"></a> 1189 fprintf(stdout, "Error getting number of plot chunks\\n");

<a id="l01190" name="l01190"></a> 1190 return err;

<a id="l01191" name="l01191"></a> 1191 }

<a id="l01192" name="l01192"></a> 1192 for (uint32_t plot_index = 0; plot_index &lt; num_plot_chunks; plot_index++) {

<a id="l01193" name="l01193"></a> 1193 auto plot = dataset_query-&gt;get_plot_chunk(plot_index);

<a id="l01194" name="l01194"></a> 1194 if (plot) {

<a id="l01195" name="l01195"></a> 1195 auto plot_def = plot-&gt;get_object();

<a id="l01196" name="l01196"></a> 1196 std::string name;

<a id="l01197" name="l01197"></a> 1197 if (plot_def) {

<a id="l01198" name="l01198"></a> 1198 name = plot_def-&gt;get_name();

<a id="l01199" name="l01199"></a> 1199 }

<a id="l01200" name="l01200"></a> 1200 else {

<a id="l01201" name="l01201"></a> 1201 fprintf(stdout, "ERROR: No plot definition for plot data\\n");

<a id="l01202" name="l01202"></a> 1202 }

<a id="l01203" name="l01203"></a> 1203 float time = plot-&gt;get_time();

<a id="l01204" name="l01204"></a> 1204 uint32_t rank = plot-&gt;get_rank();

<a id="l01205" name="l01205"></a> 1205 

<a id="l01206" name="l01206"></a> 1206 std::string hash(plot-&gt;get_hash_size(), 0);

<a id="l01207" name="l01207"></a> 1207 if (hash.empty() || [DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != plot-&gt;get_hash(&amp;(hash[0]))) {

<a id="l01208" name="l01208"></a> 1208 fprintf(stdout, "ERROR: Could not get plot hash\\n");

<a id="l01209" name="l01209"></a> 1209 }

<a id="l01210" name="l01210"></a> 1210 

<a id="l01211" name="l01211"></a> 1211 fprintf(stdout, "Plot: %s, Time: %f, Rank: %d, Hash: %s\\n",

<a id="l01212" name="l01212"></a> 1212 name.c_str(), time, rank, hash.c_str());

<a id="l01213" name="l01213"></a> 1213 

<a id="l01214" name="l01214"></a> 1214 uint32_t num_values = 0;

<a id="l01215" name="l01215"></a> 1215 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != plot-&gt;get_data(&amp;num_values, nullptr, nullptr)) {

<a id="l01216" name="l01216"></a> 1216 fprintf(stdout, "ERROR: Could not get plot number of values\\n");

<a id="l01217" name="l01217"></a> 1217 }

<a id="l01218" name="l01218"></a> 1218 

<a id="l01219" name="l01219"></a> 1219 if (num_values &gt; 0) {

<a id="l01220" name="l01220"></a> 1220 std::vector&lt;float&gt; x_values(num_values);

<a id="l01221" name="l01221"></a> 1221 std::vector&lt;float&gt; y_values(num_values);

<a id="l01222" name="l01222"></a> 1222 

<a id="l01223" name="l01223"></a> 1223 if ([DVS\_NONE](dynamic__visualization__store__error__codes_8h.xhtml#a83b88ce16159d34fe5ce63e7024462a7) != plot-&gt;get_data(nullptr, x_values.data(), y_values.data())) {

<a id="l01224" name="l01224"></a> 1224 fprintf(stdout, "ERROR: Could not get plot data values\\n");

<a id="l01225" name="l01225"></a> 1225 }

<a id="l01226" name="l01226"></a> 1226 

<a id="l01227" name="l01227"></a> 1227 fprintf(stdout, "X Values:");

<a id="l01228" name="l01228"></a> 1228 for (uint32_t i = 0; i &lt; num_values; i++) {

<a id="l01229" name="l01229"></a> 1229 fprintf(stdout, " %f", x_values[i]);

<a id="l01230" name="l01230"></a> 1230 }

<a id="l01231" name="l01231"></a> 1231 fprintf(stdout, "\\n");

<a id="l01232" name="l01232"></a> 1232 

<a id="l01233" name="l01233"></a> 1233 fprintf(stdout, "Y Values:");

<a id="l01234" name="l01234"></a> 1234 for (uint32_t i = 0; i &lt; num_values; i++) {

<a id="l01235" name="l01235"></a> 1235 fprintf(stdout, " %f", y_values[i]);

<a id="l01236" name="l01236"></a> 1236 }

<a id="l01237" name="l01237"></a> 1237 fprintf(stdout, "\\n");

<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 

<a id="l01242" name="l01242"></a> 1242 return 0;

<a id="l01243" name="l01243"></a> 1243 

<a id="l01244" name="l01244"></a> 1244 

<a id="l01245" name="l01245"></a> 1245}



[DVS::IDataset](class_d_v_s_1_1_i_dataset.xhtml)

Interface for datasets for the DVS Reader API.

**Definition** [dvs\_dataset\_interface.h:44](dvs__dataset__interface_8h_source.xhtml#l00043)



[DVS::IDataset::get\_num\_ranks](class_d_v_s_1_1_i_dataset.xhtml#a423774f63a6f5275d4d4f33da65f37b4)

virtual uint32_t get_num_ranks() const =0

Get the number of ranks for the dataset.



[DVS::IDataset::get\_num\_plots](class_d_v_s_1_1_i_dataset.xhtml#a49e3b27865d865ba36dd5d7e5c659a6b)

virtual uint32_t get_num_plots() const =0

Get the number of plots for this datasets.



[DVS::IDataset::get\_num\_chunks\_per\_rank](class_d_v_s_1_1_i_dataset.xhtml#a5ec19061a478d6b2aea0976b9e79f73b)

virtual uint32_t get_num_chunks_per_rank() const =0

Get the size of the chunks_per_rank array for get_chunks_per_rank()



[DVS::IDataset::get\_num\_parts](class_d_v_s_1_1_i_dataset.xhtml#a69aa8f4d0ad2c4fd69e6443f662fbc1d)

virtual uint32_t get_num_parts() const =0

Get the number of parts for this dataset.



[DVS::IDataset::get\_plot](class_d_v_s_1_1_i_dataset.xhtml#a8f3bb3e37530f0b1dd6630fb6f9925f5)

virtual const DVS::IObject * get_plot(uint32_t index) const =0

Get the plot object.



[DVS::IDataset::get\_var](class_d_v_s_1_1_i_dataset.xhtml#abfef24372147723533c9feebd55666c1)

virtual const DVS::IVar * get_var(uint32_t index) const =0

Get the var object.



[DVS::IDataset::get\_ranks](class_d_v_s_1_1_i_dataset.xhtml#ac620a1f5fb513d636ed59d7b4552197a)

virtual dvs_ret get_ranks(uint32_t *ranks) const =0

Get an array of the ranks for this dataset query.



[DVS::IDataset::get\_num\_variables](class_d_v_s_1_1_i_dataset.xhtml#acd0c0e81b283bce8044d9b4de796574a)

virtual uint32_t get_num_variables() const =0

Get the number of variables for this dataset.



[DVS::IDataset::get\_part](class_d_v_s_1_1_i_dataset.xhtml#af000ab1d7bfdd043cdc2b4f6cd4d682c)

virtual const DVS::IObject * get_part(uint32_t index) const =0

Get a part by index.



[DVS::IDataset::get\_unit\_system](class_d_v_s_1_1_i_dataset.xhtml#af69301cb1a2d466933e8fee162411a60)

virtual const char * get_unit_system() const =0

Get the unit system of the dataset.



[DVS::IDataset::get\_chunks\_per\_rank](class_d_v_s_1_1_i_dataset.xhtml#afb023f6b10fd4c072e8c7cb140d666ae)

virtual dvs_ret get_chunks_per_rank(uint32_t *chunks_per_rank) const =0

Get the number of chunks for each rank.



[DVS::IHash::get\_hash](class_d_v_s_1_1_i_hash.xhtml#a51eaee86a6e2db4dda7f4326daa33874)

virtual dvs_ret get_hash(char *hash) const =0

Get the hash of the data.



[DVS::IHash::get\_hash\_size](class_d_v_s_1_1_i_hash.xhtml#ac0dedeb8d9dfd442d49d16cb4ddfb221)

virtual uint32_t get_hash_size() const =0

Get the size of the hash to use with IHash::get_hash()



[DVS::IMeshChunk](class_d_v_s_1_1_i_mesh_chunk.xhtml)

Mesh Chunk Interface for DVS Reader API.

**Definition** [dvs\_mesh\_chunk\_interface.h:49](dvs__mesh__chunk__interface_8h_source.xhtml#l00048)



[DVS::IMeshChunk::get\_num\_variables](class_d_v_s_1_1_i_mesh_chunk.xhtml#a0b819acf4a968957e8ba90876dd880d9)

virtual dvs_ret get_num_variables(uint32_t &amp;num_vars, VAR_TYPE type=VAR_TYPE::FLOAT) const =0

Get the number of nodal variables this mesh chunk has data for, based on the specified type.



[DVS::IMeshChunk::get\_coords\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#a0fe402e619754256a19e0087b76e2c53)

virtual dvs_ret get_coords_size(uint32_t &amp;component_size)=0

Get the size of each coordinate component for unstructured meshes.



[DVS::IMeshChunk::get\_time](class_d_v_s_1_1_i_mesh_chunk.xhtml#a32ad562394805327fbabffa322643701)

virtual float get_time() const =0

Get the time for this mesh chunk.



[DVS::IMeshChunk::get\_coords\_interleaved](class_d_v_s_1_1_i_mesh_chunk.xhtml#a39c2d8cc95f14ecbe9789908881c92a0)

virtual dvs_ret get_coords_interleaved(float *coords)=0

Get the coords for a unstructured meshes interleaved in a single array.



[DVS::IMeshChunk::get\_variable](class_d_v_s_1_1_i_mesh_chunk.xhtml#a3fbe50455053f953a39707671d8b3ab3)

virtual const DVS::IVar * get_variable(uint32_t index, VAR_TYPE type=VAR_TYPE::FLOAT) const =0

Get the variable definition associates with the nodal variable for this index and the specified type.



[DVS::IMeshChunk::get\_element\_block\_types](class_d_v_s_1_1_i_mesh_chunk.xhtml#a44a916bcd71f4d6b33661b249d52c61b)

virtual dvs_ret get_element_block_types(dvs_element_type *element_types) const =0

Get an array of the element block types for this mesh chunk.



[DVS::IMeshChunk::get\_coords\_curv\_interleaved](class_d_v_s_1_1_i_mesh_chunk.xhtml#a5c191e3ec6d65a527fc1f3224f84d503)

virtual dvs_ret get_coords_curv_interleaved(float local_ijk_min[3], float local_ijk_max[3], float global_ijk_max[3], float *coords)=0

Get the coords for structured curvilinear meshes interleaved in a single array.



[DVS::IMeshChunk::get\_num\_element\_blocks](class_d_v_s_1_1_i_mesh_chunk.xhtml#a5f3772e845d3ffe73c4a6525d78ab2ad)

virtual dvs_ret get_num_element_blocks(uint32_t &amp;num_elem_blocks) const =0

Get the number of element blocks for this mesh chunk.



[DVS::IMeshChunk::get\_chunk](class_d_v_s_1_1_i_mesh_chunk.xhtml#a6b894c57bfd1e70168290ce69ecc5af4)

virtual uint32_t get_chunk() const =0

Get the chunk for this mesh chunk.



[DVS::IMeshChunk::get\_rank](class_d_v_s_1_1_i_mesh_chunk.xhtml#a6c520674083999e99bdf77b2b1eaacf8)

virtual uint32_t get_rank() const =0

Get the rank for the mesh chunk.



[DVS::IMeshChunk::get\_variable\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#a6d0e7efa6c204cbb7730ef1bf4024fbc)

virtual dvs_ret get_variable_size(uint32_t index, uint32_t &amp;num_values, VAR_TYPE type=VAR_TYPE::FLOAT) const =0

Get the variable size via the index and specified type.



[DVS::IMeshChunk::get\_coords\_curv\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#a70b1069fc8737730efa0fc01a0698fbd)

virtual dvs_ret get_coords_curv_size(uint32_t &amp;component_size)=0

Get the size of each coordinate component for structured curvilinear meshes.



[DVS::IMeshChunk::get\_coords](class_d_v_s_1_1_i_mesh_chunk.xhtml#a7738e954570e849462ff493ec875bc80)

virtual dvs_ret get_coords(float *x_coords, float *y_coords, float *z_coords)=0

Get the coordinates for an unstructured mesh.



[DVS::IMeshChunk::get\_element\_block\_by\_type](class_d_v_s_1_1_i_mesh_chunk.xhtml#a7ca84ad8d766514684790bacd31803fc)

virtual DVS::IElementBlock * get_element_block_by_type(dvs_element_type type)=0

Get the element block by element type.



[DVS::IMeshChunk::MeshType](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144a)

MeshType

The different mesh types allowed.

**Definition** [dvs\_mesh\_chunk\_interface.h:64](dvs__mesh__chunk__interface_8h_source.xhtml#l00063)



[DVS::IMeshChunk::PARALLELEPIPED](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aa95416cf06dfb48f6331a1f7c5c2704d2)

@ PARALLELEPIPED

Parallelepiped structured mesh data.

**Definition** [dvs\_mesh\_chunk\_interface.h:67](dvs__mesh__chunk__interface_8h_source.xhtml#l00067)



[DVS::IMeshChunk::CURVILINEAR](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aab7e091dc6959aa447a0b6a44be352013)

@ CURVILINEAR

Curvilinear structured mesh data.

**Definition** [dvs\_mesh\_chunk\_interface.h:68](dvs__mesh__chunk__interface_8h_source.xhtml#l00068)



[DVS::IMeshChunk::UNSTRUCTURED](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8b7de1a1e47e05ab63f6bb41ccf5144aabd8a1a2f952443e439d96cbea674208e)

@ UNSTRUCTURED

Unstructured mesh data.

**Definition** [dvs\_mesh\_chunk\_interface.h:66](dvs__mesh__chunk__interface_8h_source.xhtml#l00066)



[DVS::IMeshChunk::get\_coords\_curv](class_d_v_s_1_1_i_mesh_chunk.xhtml#a8da90ca355541bf876fa23ed267f94cb)

virtual dvs_ret get_coords_curv(float local_ijk_min[3], float local_ijk_max[3], float global_ijk_max[3], float *x_coords, float *y_coords, float *z_coords)=0

Get coordinate data for a structured curvilinear mesh.



[DVS::IMeshChunk::get\_coords\_parallele](class_d_v_s_1_1_i_mesh_chunk.xhtml#a959ecd945a3e46b25b4e816a35eb4123)

virtual dvs_ret get_coords_parallele(float origin[3], float dir_vec_i[3], float dir_vec_j[3], float dir_vec_k[3], float local_ijk_min[3], float local_ijk_max[3], float global_ijk_max[3], float *i_vals, float *j_vals, float *k_vals)=0

Get the ijk mesh information for structured parallelepiped mesh chunks.



[DVS::IMeshChunk::get\_type](class_d_v_s_1_1_i_mesh_chunk.xhtml#ab025d1550b2b3cd77faefecec5199852)

virtual MeshType get_type() const =0

Get the type of mesh chunk.



[DVS::IMeshChunk::get\_object](class_d_v_s_1_1_i_mesh_chunk.xhtml#abb13b29450a5ccfaa9027cfda3ceb108)

virtual const DVS::IObject * get_object() const =0

Get the object definiton this mesh chunk is associated with.



[DVS::IMeshChunk::get\_coords\_parallele\_size](class_d_v_s_1_1_i_mesh_chunk.xhtml#abda21734e2f506b982b65007d17c92fd)

virtual dvs_ret get_coords_parallele_size(uint32_t &amp;i_vals_size, uint32_t &amp;j_vals_size, uint32_t &amp;k_vals_size)=0

Get the size of each ijk component for structured parallelpiped meshes.



[DVS::IMeshChunk::get\_variable\_data](class_d_v_s_1_1_i_mesh_chunk.xhtml#ae7fe3d3b75e14f1cdd0d810e30a35fe0)

virtual dvs_ret get_variable_data(uint32_t index, float *array) const =0

Get the variable data by index.



[DVS::IObject](class_d_v_s_1_1_i_object.xhtml)

Interface for part/plot objects for DVS Reader API.

**Definition** [dvs\_object\_interface.h:45](dvs__object__interface_8h_source.xhtml#l00044)



[DVS::IObject::get\_metadata\_key](class_d_v_s_1_1_i_object.xhtml#a04ee2919ffeb46d966d4675c8cd4420c)

virtual const char * get_metadata_key(uint32_t index) const =0

Get the metadata key by index.



[DVS::IObject::get\_num\_metadata](class_d_v_s_1_1_i_object.xhtml#a31db3b716cc815c2c73f826f24384f6a)

virtual uint32_t get_num_metadata() const =0

Get the number of metadata objects.



[DVS::IObject::get\_name](class_d_v_s_1_1_i_object.xhtml#a39be8b08200f75b20a7b5cf715ba9dd3)

virtual const char * get_name() const =0

Get the name of the object.



[DVS::IObject::get\_metadata\_value](class_d_v_s_1_1_i_object.xhtml#a7a37d603ccf93f7f1ec9f962fa9d1f61)

virtual const char * get_metadata_value(uint32_t index) const =0

Get the metadata value by index.



[DVS::IObject::PART](class_d_v_s_1_1_i_object.xhtml#aa897daa1f7d0467515fd108c29015348a8b2484e08a16329d2d91c18c254f5ca6)

@ PART

Type for a part object.

**Definition** [dvs\_object\_interface.h:61](dvs__object__interface_8h_source.xhtml#l00061)



[DVS::IObject::PLOT](class_d_v_s_1_1_i_object.xhtml#aa897daa1f7d0467515fd108c29015348abe80fa1e67dae7efb56fdb2936914cae)

@ PLOT

Type for a plot object.

**Definition** [dvs\_object\_interface.h:62](dvs__object__interface_8h_source.xhtml#l00062)



[DVS::IObject::get\_dataset](class_d_v_s_1_1_i_object.xhtml#aea688a307b1cb02ae53e0e8fd3791e64)

virtual const DVS::IDataset * get_dataset() const =0

Get the reference dataset for this object.



[DVS::IQuery](class_d_v_s_1_1_i_query.xhtml)

The query interface for the DVS Reader API.

**Definition** [dvs\_query\_interface.h:80](dvs__query__interface_8h_source.xhtml#l00079)



[DVS::IQuery::release](class_d_v_s_1_1_i_query.xhtml#a257f79d7de21658c07dc602dfa6bbf34)

virtual void release()=0

Release the memory of the query.



[DVS::IQuery::set\_logger](class_d_v_s_1_1_i_query.xhtml#ab6ce54c68281ea1676af650ebc5716a0)

virtual void set_logger(DVS::ILogger *logger)=0

Set the logger object.



[DVS::IServer](class_d_v_s_1_1_i_server.xhtml)

Interface class used to run a dynamic data server in a thread accepting incoming client connections.

**Definition** [dvs\_server\_interface.h:60](dvs__server__interface_8h_source.xhtml#l00059)



[DVS::IServer::set\_option](class_d_v_s_1_1_i_server.xhtml#a1edb4dec67086f10bc0329b6adf9084c)

virtual void set_option(const char *key, const char *value)=0

Set a specific option on the server, these are used during startup See See Server Options.



[DVS::IServer::get\_timestep\_count](class_d_v_s_1_1_i_server.xhtml#a8a5339f222bcd46b06c2fa9a474b2c37)

virtual dvs_ret get_timestep_count(uint32_t &amp;num_pending, uint32_t &amp;num_complete) const =0

return the current number of pending and complete timesteps in the server



[DVS::IServer::startup\_unthreaded](class_d_v_s_1_1_i_server.xhtml#ac61ce2698eec1adb521bbbf60cb78756)

virtual dvs_ret startup_unthreaded(uint32_t server_number, uint32_t local_ranks)=0

Startup a server manually without threads.



[DVS::IServer::update](class_d_v_s_1_1_i_server.xhtml#add6fcb530763dc217f5b3c17b25093c0)

virtual dvs_ret update()=0

Perform a server update.



[DVS::IServer::create\_query](class_d_v_s_1_1_i_server.xhtml#aee25312f757c5bc4f6dd304dd7da68a9)

virtual DVS::IQuery * create_query(const std::string &amp;filter=std::string(), DVS::IQuery *parent=nullptr)=0

Create a DVS query instance. This will inherit the DVS server reader instance.



[DVS::IVarHash::get\_var\_hash](class_d_v_s_1_1_i_var_hash.xhtml#a17fff1548eb276edd326a0af08f6a7c4)

virtual dvs_ret get_var_hash(uint32_t index, char *hash, VAR_TYPE type=VAR_TYPE::FLOAT) const =0

Get the hash of the variable data.



[DVS::IVarHash::get\_var\_hash\_size](class_d_v_s_1_1_i_var_hash.xhtml#a85c3ade756029207e15b1c8de8cd5c1b)

virtual uint32_t get_var_hash_size(uint32_t index, VAR_TYPE type=VAR_TYPE::FLOAT) const =0

Get the size of the hash to use with IVarHash::get_var_hash()



[DVS::IVar](class_d_v_s_1_1_i_var.xhtml)

Interface for variables for the DVS Reader API.

**Definition** [dvs\_var\_interface.h:58](dvs__var__interface_8h_source.xhtml#l00057)



[DVS::IVar::get\_name](class_d_v_s_1_1_i_var.xhtml#a12b24dd196d3ddf3dbbdc29eca9cca3f)

virtual const char * get_name() const =0

Get the name of the variable.



[DVS::IVar::get\_metadata\_value](class_d_v_s_1_1_i_var.xhtml#a22432a4b79163a933a850a7a58dfe315)

virtual const char * get_metadata_value(uint32_t index) const =0

Get the metadata value base on the index.



[DVS::IVar::get\_num\_metadata](class_d_v_s_1_1_i_var.xhtml#a2deab60f72955106a4a4a3f67a0f295e)

virtual uint32_t get_num_metadata() const =0

Get the num metadata values on this var.



[DVS::IVar::get\_unit\_dimension](class_d_v_s_1_1_i_var.xhtml#a6aa67cf54eb22ee51a7bf5eeb778cee5)

virtual const char * get_unit_dimension() const =0

Get the unit dimensions as string.



[DVS::IVar::get\_var\_location](class_d_v_s_1_1_i_var.xhtml#a7e97f43d3d1057267399c0e66deadd3d)

virtual dvs_var_location get_var_location() const =0

Get the var location.



[DVS::IVar::get\_float\_count\_per\_value](class_d_v_s_1_1_i_var.xhtml#a9dbdd84e6f6342deae82ede6dcf2156e)

virtual uint32_t get_float_count_per_value() const =0

Get the number of floats per value.



[DVS::IVar::get\_unit\_label](class_d_v_s_1_1_i_var.xhtml#aa484336b355e68f93069e97d771e4a6e)

virtual const char * get_unit_label() const =0

Get the unit label as string.



[DVS::IVar::get\_dataset](class_d_v_s_1_1_i_var.xhtml#acd4c1b8698417ac314a45143e92986d6)

virtual const DVS::IDataset * get_dataset() const =0

Get the reference dataset for this var.



[DVS::IVar::get\_metadata\_key](class_d_v_s_1_1_i_var.xhtml#ae18e148e2d2996891560734e53cd9671)

virtual const char * get_metadata_key(uint32_t index) const =0

Get a metadata key based on the index.



[DVS::IVar::get\_var\_type](class_d_v_s_1_1_i_var.xhtml#ae837af2ee946d8f54695d1abf95c5cda)

virtual dvs_var_type get_var_type() const =0

Get the type of var.



[DVS::LoggerVerbose](class_d_v_s_1_1_logger_verbose.xhtml)

Logger class based on verbosity.

**Definition** [logger\_verbose.h:40](logger__verbose_8h_source.xhtml#l00039)



[dvs\_server\_interface.h](dvs__server__interface_8h.xhtml)

C++ Server API for using Dynamic Visualization Store Server.



[DVS\_VERBOSE](dynamic__visualization__store__enums_8h.xhtml#aafcfd80cd55c92c53106bb56fdaf026da95f57c1525070266247b1a687f565f5b)

@ DVS_VERBOSE

Displays informational messages, warnings, errors.

**Definition** [dynamic\_visualization\_store\_enums.h:86](dynamic__visualization__store__enums_8h_source.xhtml#l00086)



[PART](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a173f98c603042f6241b70157d56e385f)

@ PART

This is a variable for an entire part.

**Definition** [dynamic\_visualization\_store\_enums.h:21](dynamic__visualization__store__enums_8h_source.xhtml#l00021)



[ELEMENT](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a3d10bfe84917127ab3347aa5c6309f33)

@ ELEMENT

This is a field variable per each element of a part.

**Definition** [dynamic\_visualization\_store\_enums.h:20](dynamic__visualization__store__enums_8h_source.xhtml#l00020)



[NODE](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a59a889456a2d742fdca191dccb3e871d)

@ NODE

This is a field variable per each node of a part's mesh.

**Definition** [dynamic\_visualization\_store\_enums.h:19](dynamic__visualization__store__enums_8h_source.xhtml#l00019)



[CASE](dynamic__visualization__store__enums_8h.xhtml#af4f0eba512eff253854b44d7ce078491a9c9b14644e9370719a51b7342bbc9c4d)

@ CASE

This is a variable for an entire case (i.e. dataset)

**Definition** [dynamic\_visualization\_store\_enums.h:22](dynamic__visualization__store__enums_8h_source.xhtml#l00022)



[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)



[logger\_verbose.h](logger__verbose_8h.xhtml)

Verbosity based logger for DVS.



[main](test__dvs__reader_8cpp.xhtml#a3c04138a5bfe5d72780bb7e82a18e627)

int main(int argc, char **argv)

Main method of test reader application.

**Definition** [test\_dvs\_reader.cpp:93](#l00093)