107 read_options =
"PARALLEL=READ_PART;PARTITION=PARALLEL_PARTITION;PARALLEL_RESOLVE_SHARED_ENTS";
111 else if( procs == 1 )
120 unsigned long long sTotS, sTAS, sES, sAES, sAS, sAAS, sTS, sATS;
121 sTotS = sTAS = sES = sAES = sAS = sAAS = sTS = sATS = 0;
122 mbImpl->
estimated_memory_use( NULL, 0, &sTotS, &sTAS, &sES, &sAES, &sAS, &sAAS, NULL, 0, &sTS, &sATS );
124 qmem.total_storage[0] = sTotS;
125 qmem.amortized_total_storage[0] = sTAS;
126 qmem.entity_storage[0] = sES;
127 qmem.amortized_entity_storage[0] = sAES;
128 qmem.adjacency_storage[0] = sAS;
129 qmem.amortized_adjacency_storage[0] = sAAS;
130 qmem.tag_storage[0] = sTS;
131 qmem.amortized_tag_storage[0] = sATS;
134 Range verts, edges, faces, cells;
140 int nverts = verts.
size();
141 int nedges = edges.
size();
142 int nfaces = faces.
size();
143 int ncells = cells.
size();
145 std::cout <<
"MESH SIZE :: "
146 <<
"NV = " << nverts <<
", NE = " << nedges <<
", NF = " << nfaces <<
", NC = " << ncells << std::endl;
149 double time_start, time_avg, time_total;
152 std::vector< EntityHandle > adjents;
159 qtime.ds_construction = time_total;
163 std::cout <<
"1D QUERIES Start" << std::endl;
173 time_avg = time_total / (double)verts.
size();
175 qtime.vertex_to_edges_total = time_total;
176 qtime.vertex_to_edges_avg = time_avg;
187 time_avg = time_total / (double)edges.
size();
189 error = mtu.get_bridge_adjacencies( *edges.
begin(), 0, 1, ngbents );
194 error = mtu.get_bridge_adjacencies( *i, 0, 1, ngbents );
197 time_avg = time_total / (double)edges.
size();
200 qtime.edge_to_edges_total = time_total;
201 qtime.edge_to_edges_avg = time_avg;
203 std::cout <<
"1D QUERIES End" << std::endl;
207 std::cout <<
"2D QUERIES Start" << std::endl;
217 time_avg = time_total / (double)verts.
size();
219 qtime.vertex_to_faces_total = time_total;
220 qtime.vertex_to_faces_avg = time_avg;
230 time_avg = time_total / (double)edges.
size();
232 qtime.edge_to_faces_total = time_total;
233 qtime.edge_to_faces_avg = time_avg;
244 time_avg = time_total / (double)faces.
size();
246 error = mtu.get_bridge_adjacencies( *faces.
begin(), 1, 2, ngbents );
251 error = mtu.get_bridge_adjacencies( *i, 1, 2, ngbents );
254 time_avg = time_total / (double)faces.
size();
257 qtime.face_to_faces_total = time_total;
258 qtime.face_to_faces_avg = time_avg;
268 time_avg = time_total / (double)faces.
size();
270 qtime.face_to_edges_total = time_total;
271 qtime.face_to_edges_avg = time_avg;
273 std::cout <<
"2D QUERIES End" << std::endl;
277 std::cout <<
"3D QUERIES Start " << std::endl;
287 time_avg = time_total / (double)verts.
size();
289 qtime.vertex_to_cells_total = time_total;
290 qtime.vertex_to_cells_avg = time_avg;
300 time_avg = time_total / (double)edges.
size();
302 qtime.edge_to_cells_total = time_total;
303 qtime.edge_to_cells_avg = time_avg;
313 time_avg = time_total / (double)faces.
size();
315 qtime.face_to_cells_total = time_total;
316 qtime.face_to_cells_avg = time_avg;
327 time_avg = time_total / (double)cells.
size();
329 error = mtu.get_bridge_adjacencies( *cells.
begin(), 2, 3, ngbents );
334 error = mtu.get_bridge_adjacencies( *i, 2, 3, ngbents );
337 time_avg = time_total / (double)cells.
size();
340 qtime.cell_to_cells_total = time_total;
341 qtime.cell_to_cells_avg = time_avg;
351 time_avg = time_total / (double)cells.
size();
353 qtime.cell_to_edges_total = time_total;
354 qtime.cell_to_edges_avg = time_avg;
364 time_avg = time_total / (double)cells.
size();
366 qtime.cell_to_faces_total = time_total;
367 qtime.cell_to_faces_avg = time_avg;
369 std::cout <<
"3D QUERIES End" << std::endl;
372 unsigned long long eTotS, eTAS, eES, eAES, eAS, eAAS, eTS, eATS;
373 eTotS = eTAS = eES = eAES = eAS = eAAS = eTS = eATS = 0;
374 mbImpl->
estimated_memory_use( NULL, 0, &eTotS, &eTAS, &eES, &eAES, &eAS, &eAAS, NULL, 0, &eTS, &eATS );
376 qmem.total_storage[1] = eTotS;
377 qmem.amortized_total_storage[1] = eTAS;
378 qmem.entity_storage[1] = eES;
379 qmem.amortized_entity_storage[1] = eAES;
380 qmem.adjacency_storage[1] = eAS;
381 qmem.amortized_adjacency_storage[1] = eAAS;
382 qmem.tag_storage[1] = eTS;
383 qmem.amortized_tag_storage[1] = eATS;
386 std::cout << std::endl;
387 std::cout <<
" Data Structure Construction Time = " << qtime.ds_construction <<
" Secs" << std::endl;
388 std::cout << std::endl;
389 std::cout <<
"Query times in Seconds" << std::endl;
391 std::cout <<
"QUERY: Vertex -> Edges :: MOAB_AHF: Average time = " << qtime.vertex_to_edges_avg;
392 std::cout <<
", Total time = " << qtime.vertex_to_edges_total << std::endl;
393 std::cout << std::endl;
395 std::cout <<
"QUERY: Vertex -> Edges :: MOAB: Average time = " << qtime.vertex_to_edges_avg;
396 std::cout <<
", Total time = " << qtime.vertex_to_edges_total << std::endl;
397 std::cout << std::endl;
401 std::cout <<
"QUERY: Edge -> Edges :: MOAB_AHF: Average time = " << qtime.edge_to_edges_avg;
402 std::cout <<
", Total time = " << qtime.edge_to_edges_total << std::endl;
403 std::cout << std::endl;
405 std::cout <<
"QUERY: Edge -> Edges :: MOAB: Average time = " << qtime.edge_to_edges_avg;
406 std::cout <<
", Total time = " << qtime.edge_to_edges_total << std::endl;
407 std::cout << std::endl;
411 std::cout <<
"QUERY: Vertex -> Faces :: MOAB_AHF: Average time = " << qtime.vertex_to_faces_avg;
412 std::cout <<
", Total time = " << qtime.vertex_to_faces_total << std::endl;
413 std::cout << std::endl;
415 std::cout <<
"QUERY: Vertex -> Faces :: MOAB: Average time = " << qtime.vertex_to_faces_avg;
416 std::cout <<
", Total time = " << qtime.vertex_to_faces_total << std::endl;
417 std::cout << std::endl;
421 std::cout <<
"QUERY: Edge -> Faces :: MOAB_AHF: Average time = " << qtime.edge_to_faces_avg;
422 std::cout <<
", Total time = " << qtime.edge_to_faces_total << std::endl;
423 std::cout << std::endl;
425 std::cout <<
"QUERY: Edge -> Faces :: MOAB: Average time = " << qtime.edge_to_faces_avg;
426 std::cout <<
", Total time = " << qtime.edge_to_faces_total << std::endl;
427 std::cout << std::endl;
431 std::cout <<
"QUERY: Face -> Faces :: MOAB_AHF: Average time = " << qtime.face_to_faces_avg;
432 std::cout <<
", Total time = " << qtime.face_to_faces_total << std::endl;
433 std::cout << std::endl;
435 std::cout <<
"QUERY: Face -> Faces :: MOAB: Average time = " << qtime.face_to_faces_avg;
436 std::cout <<
", Total time = " << qtime.face_to_faces_total << std::endl;
437 std::cout << std::endl;
441 std::cout <<
"QUERY: Face -> Edges :: MOAB_AHF: Average time = " << qtime.face_to_edges_avg;
442 std::cout <<
", Total time = " << qtime.face_to_edges_total << std::endl;
443 std::cout << std::endl;
445 std::cout <<
"QUERY: Face -> Edges :: MOAB: Average time = " << qtime.face_to_edges_avg;
446 std::cout <<
", Total time = " << qtime.face_to_edges_total << std::endl;
447 std::cout << std::endl;
451 std::cout <<
"QUERY: Vertex -> Cells :: MOAB_AHF: Average time = " << qtime.vertex_to_cells_avg;
452 std::cout <<
", Total time = " << qtime.vertex_to_cells_total << std::endl;
453 std::cout << std::endl;
455 std::cout <<
"QUERY: Vertex -> Cells :: MOAB: Average time = " << qtime.vertex_to_cells_avg;
456 std::cout <<
", Total time = " << qtime.vertex_to_cells_total << std::endl;
457 std::cout << std::endl;
461 std::cout <<
"QUERY: Edge -> Cells :: MOAB_AHF: Average time = " << qtime.edge_to_cells_avg;
462 std::cout <<
", Total time = " << qtime.edge_to_cells_total << std::endl;
463 std::cout << std::endl;
465 std::cout <<
"QUERY: Edge -> Cells :: MOAB: Average time = " << qtime.edge_to_cells_avg;
466 std::cout <<
", Total time = " << qtime.edge_to_cells_total << std::endl;
467 std::cout << std::endl;
471 std::cout <<
"QUERY: Face -> Cells :: MOAB_AHF: Average time = " << qtime.face_to_cells_avg;
472 std::cout <<
", Total time = " << qtime.face_to_cells_total << std::endl;
473 std::cout << std::endl;
475 std::cout <<
"QUERY: Face -> Cells :: MOAB: Average time = " << qtime.face_to_cells_avg;
476 std::cout <<
", Total time = " << qtime.face_to_cells_total << std::endl;
477 std::cout << std::endl;
481 std::cout <<
"QUERY: Cell -> Cells :: MOAB_AHF: Average time = " << qtime.cell_to_cells_avg;
482 std::cout <<
", Total time = " << qtime.cell_to_cells_total << std::endl;
483 std::cout << std::endl;
485 std::cout <<
"QUERY: Cell -> Cells :: MOAB: Average time = " << qtime.cell_to_cells_avg;
486 std::cout <<
", Total time = " << qtime.cell_to_cells_total << std::endl;
487 std::cout << std::endl;
491 std::cout <<
"QUERY: Cell -> Edges :: MOAB_AHF: Average time = " << qtime.cell_to_edges_avg;
492 std::cout <<
", Total time = " << qtime.cell_to_edges_total << std::endl;
493 std::cout << std::endl;
495 std::cout <<
"QUERY: Cell -> Edges :: MOAB: Average time = " << qtime.cell_to_edges_avg;
496 std::cout <<
", Total time = " << qtime.cell_to_edges_total << std::endl;
497 std::cout << std::endl;
501 std::cout <<
"QUERY: Cell -> Faces :: MOAB_AHF: Average time = " << qtime.cell_to_faces_avg;
502 std::cout <<
", Total time = " << qtime.cell_to_faces_total << std::endl;
503 std::cout << std::endl;
505 std::cout <<
"QUERY: Cell -> Faces :: MOAB: Average time = " << qtime.cell_to_faces_avg;
506 std::cout <<
", Total time = " << qtime.cell_to_faces_total << std::endl;
507 std::cout << std::endl;
511 std::cout << std::endl;
512 for(
int i = 0; i < 2; i++ )
515 std::cout <<
"STORAGE BEFORE CALLING ADJACENCIES" << std::endl;
517 std::cout <<
"STORAGE AFTER CALLING ADJACENCIES" << std::endl;
519 std::cout <<
"Total storage = " << qmem.total_storage[i] << std::endl;
520 std::cout <<
"Total amortized storage = " << qmem.amortized_total_storage[i] << std::endl;
521 std::cout << std::endl;
523 std::cout <<
"Entity storage = " << qmem.entity_storage[i] << std::endl;
524 std::cout <<
"Amortized entity storage = " << qmem.amortized_entity_storage[i] << std::endl;
525 std::cout << std::endl;
527 std::cout <<
"Adjacency storage = " << qmem.adjacency_storage[i] << std::endl;
528 std::cout <<
"Amortized adjacency storage = " << qmem.amortized_adjacency_storage[i] << std::endl;
529 std::cout << std::endl;
531 std::cout <<
"Tag storage = " << qmem.tag_storage[i] << std::endl;
532 std::cout <<
"Amortized tag storage = " << qmem.amortized_tag_storage[i] << std::endl;
533 std::cout << std::endl;
536 double total_time = qtime.vertex_to_edges_total + qtime.edge_to_edges_total + qtime.vertex_to_faces_total +
537 qtime.edge_to_faces_total + qtime.face_to_faces_total + qtime.face_to_edges_total +
538 qtime.vertex_to_cells_total + qtime.edge_to_cells_total + qtime.face_to_cells_total +
539 qtime.cell_to_cells_total + qtime.cell_to_edges_total + qtime.cell_to_faces_total;
542 std::cout << qtime.ds_construction <<
" " << total_time <<
" " << qmem.entity_storage[1] <<
" "
543 << qmem.adjacency_storage[1] <<
" " << qtime.vertex_to_edges_avg <<
" " << qtime.edge_to_edges_avg
544 <<
" " << qtime.vertex_to_faces_avg <<
" " << qtime.edge_to_faces_avg <<
" " << qtime.face_to_faces_avg
545 <<
" " << qtime.face_to_edges_avg <<
" " << qtime.vertex_to_cells_avg <<
" " << qtime.edge_to_cells_avg
546 <<
" " << qtime.face_to_cells_avg <<
" " << qtime.cell_to_cells_avg <<
" " << qtime.cell_to_edges_avg
547 <<
" " << qtime.cell_to_faces_avg << std::endl;