10 #include "../TestUtil.hpp"
61 unsigned long long total_storage[2];
62 unsigned long long amortized_total_storage[2];
63 unsigned long long entity_storage[2];
64 unsigned long long amortized_entity_storage[2];
65 unsigned long long adjacency_storage[2];
66 unsigned long long amortized_adjacency_storage[2];
67 unsigned long long tag_storage[2];
68 unsigned long long amortized_tag_storage[2];
78 if(
rank == 0 ) std::cout <<
"Success";
80 std::cout <<
"Success";
86 std::cout <<
"Failure";
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 );
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;
163 std::cout <<
"1D QUERIES Start" << std::endl;
173 time_avg = time_total / (double)verts.
size();
187 time_avg = time_total / (double)edges.
size();
197 time_avg = time_total / (double)edges.
size();
203 std::cout <<
"1D QUERIES End" << std::endl;
207 std::cout <<
"2D QUERIES Start" << std::endl;
217 time_avg = time_total / (double)verts.
size();
230 time_avg = time_total / (double)edges.
size();
244 time_avg = time_total / (double)faces.
size();
254 time_avg = time_total / (double)faces.
size();
268 time_avg = time_total / (double)faces.
size();
273 std::cout <<
"2D QUERIES End" << std::endl;
277 std::cout <<
"3D QUERIES Start " << std::endl;
287 time_avg = time_total / (double)verts.
size();
300 time_avg = time_total / (double)edges.
size();
313 time_avg = time_total / (double)faces.
size();
327 time_avg = time_total / (double)cells.
size();
337 time_avg = time_total / (double)cells.
size();
351 time_avg = time_total / (double)cells.
size();
364 time_avg = time_total / (double)cells.
size();
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 );
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;
393 std::cout << std::endl;
395 std::cout <<
"QUERY: Vertex -> Edges :: MOAB: Average time = " << qtime.
vertex_to_edges_avg;
397 std::cout << std::endl;
401 std::cout <<
"QUERY: Edge -> Edges :: MOAB_AHF: Average time = " << qtime.
edge_to_edges_avg;
403 std::cout << std::endl;
405 std::cout <<
"QUERY: Edge -> Edges :: MOAB: Average time = " << qtime.
edge_to_edges_avg;
407 std::cout << std::endl;
411 std::cout <<
"QUERY: Vertex -> Faces :: MOAB_AHF: Average time = " << qtime.
vertex_to_faces_avg;
413 std::cout << std::endl;
415 std::cout <<
"QUERY: Vertex -> Faces :: MOAB: Average time = " << qtime.
vertex_to_faces_avg;
417 std::cout << std::endl;
421 std::cout <<
"QUERY: Edge -> Faces :: MOAB_AHF: Average time = " << qtime.
edge_to_faces_avg;
423 std::cout << std::endl;
425 std::cout <<
"QUERY: Edge -> Faces :: MOAB: Average time = " << qtime.
edge_to_faces_avg;
427 std::cout << std::endl;
431 std::cout <<
"QUERY: Face -> Faces :: MOAB_AHF: Average time = " << qtime.
face_to_faces_avg;
433 std::cout << std::endl;
435 std::cout <<
"QUERY: Face -> Faces :: MOAB: Average time = " << qtime.
face_to_faces_avg;
437 std::cout << std::endl;
441 std::cout <<
"QUERY: Face -> Edges :: MOAB_AHF: Average time = " << qtime.
face_to_edges_avg;
443 std::cout << std::endl;
445 std::cout <<
"QUERY: Face -> Edges :: MOAB: Average time = " << qtime.
face_to_edges_avg;
447 std::cout << std::endl;
451 std::cout <<
"QUERY: Vertex -> Cells :: MOAB_AHF: Average time = " << qtime.
vertex_to_cells_avg;
453 std::cout << std::endl;
455 std::cout <<
"QUERY: Vertex -> Cells :: MOAB: Average time = " << qtime.
vertex_to_cells_avg;
457 std::cout << std::endl;
461 std::cout <<
"QUERY: Edge -> Cells :: MOAB_AHF: Average time = " << qtime.
edge_to_cells_avg;
463 std::cout << std::endl;
465 std::cout <<
"QUERY: Edge -> Cells :: MOAB: Average time = " << qtime.
edge_to_cells_avg;
467 std::cout << std::endl;
471 std::cout <<
"QUERY: Face -> Cells :: MOAB_AHF: Average time = " << qtime.
face_to_cells_avg;
473 std::cout << std::endl;
475 std::cout <<
"QUERY: Face -> Cells :: MOAB: Average time = " << qtime.
face_to_cells_avg;
477 std::cout << std::endl;
481 std::cout <<
"QUERY: Cell -> Cells :: MOAB_AHF: Average time = " << qtime.
cell_to_cells_avg;
483 std::cout << std::endl;
485 std::cout <<
"QUERY: Cell -> Cells :: MOAB: Average time = " << qtime.
cell_to_cells_avg;
487 std::cout << std::endl;
491 std::cout <<
"QUERY: Cell -> Edges :: MOAB_AHF: Average time = " << qtime.
cell_to_edges_avg;
493 std::cout << std::endl;
495 std::cout <<
"QUERY: Cell -> Edges :: MOAB: Average time = " << qtime.
cell_to_edges_avg;
497 std::cout << std::endl;
501 std::cout <<
"QUERY: Cell -> Faces :: MOAB_AHF: Average time = " << qtime.
cell_to_faces_avg;
503 std::cout << std::endl;
505 std::cout <<
"QUERY: Cell -> Faces :: MOAB: Average time = " << qtime.
cell_to_faces_avg;
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;
521 std::cout << std::endl;
523 std::cout <<
"Entity storage = " << qmem.
entity_storage[i] << std::endl;
525 std::cout << std::endl;
529 std::cout << std::endl;
531 std::cout <<
"Tag storage = " << qmem.
tag_storage[i] << std::endl;
533 std::cout << std::endl;
553 int main(
int argc,
char* argv[] )
557 MPI_Init( &argc, &argv );
565 #ifdef MOAB_HAVE_HDF5
566 filename = TestDir +
"unittest/32hex_ef.h5m";
568 filename = TestDir +
"unittest/hexes_mixed.vtk";
574 if(
rank == 0 ) std::cout <<
"Using default input file:" <<
filename << std::endl;
576 std::cout <<
"Using default input file:" <<
filename << std::endl;
584 std::cerr <<
"Usage: " << argv[0] <<
" [filename]" << std::endl;
591 if(
rank == 0 ) std::cout <<
" para_adj_perf: ";
593 std::cout <<
"adj_perf:";