13 std::string
example = TestDir +
"unittest/io/mpasx1.642.t.2.nc";
17 #if defined( MOAB_HAVE_MPI ) && defined( MOAB_HAVE_ZOLTAN )
24 #if defined( MOAB_HAVE_MPI ) && defined( MOAB_HAVE_ZOLTAN )
42 const double eps = 1e-20;
44 int main(
int argc,
char* argv[] )
46 MPI_Init( &argc, &argv );
51 #if defined( MOAB_HAVE_MPI ) && defined( MOAB_HAVE_ZOLTAN )
58 #if defined( MOAB_HAVE_MPI ) && defined( MOAB_HAVE_ZOLTAN )
139 read_options =
"PARALLEL=READ_PART;PARTITION_METHOD=TRIVIAL;NO_EDGES;VARIABLE=ke";
140 if( rcbzoltan )
read_options =
"PARALLEL=READ_PART;PARTITION_METHOD=RCBZOLTAN;NO_EDGES;VARIABLE=ke";
142 if( no_mixed_elements )
read_options +=
";NO_MIXED_ELEMENTS";
157 std::vector< int > gids( local_cells.
size() );
159 Range local_cell_gids;
160 std::copy( gids.rbegin(), gids.rend(),
range_inserter( local_cell_gids ) );
181 EntityHandle cell_ents[] = { local_cells[0], local_cells[160], local_cells[320] };
261 read_options =
"PARALLEL=READ_PART;PARTITION_METHOD=TRIVIAL;PARALLEL_RESOLVE_SHARED_ENTS;VARIABLE=";
263 read_options =
"PARALLEL=READ_PART;PARTITION_METHOD=RCBZOLTAN;PARALLEL_RESOLVE_SHARED_ENTS;VARIABLE=";
265 if( no_mixed_elements )
read_options +=
";NO_MIXED_ELEMENTS";
279 int verts_num = local_verts.
size();
300 verts_num = local_verts.
size();
323 int edges_num = local_edges.
size();
344 edges_num = local_edges.
size();
367 int cells_num = local_cells.
size();
376 cells_num = local_cells.
size();
383 std::cout <<
"proc: " <<
rank <<
" verts:" << verts_num <<
"\n";
386 MPI_Reduce( &verts_num, &total_verts_num, 1, MPI_INT, MPI_SUM, 0, pcomm->
proc_config().
proc_comm() );
389 std::cout <<
"total vertices: " << total_verts_num <<
"\n";
393 std::cout <<
"proc: " <<
rank <<
" edges:" << edges_num <<
"\n";
396 MPI_Reduce( &edges_num, &total_edges_num, 1, MPI_INT, MPI_SUM, 0, pcomm->
proc_config().
proc_comm() );
399 std::cout <<
"total edges: " << total_edges_num <<
"\n";
403 std::cout <<
"proc: " <<
rank <<
" cells:" << cells_num <<
"\n";
406 MPI_Reduce( &cells_num, &total_cells_num, 1, MPI_INT, MPI_SUM, 0, pcomm->
proc_config().
proc_comm() );
409 std::cout <<
"total cells: " << total_cells_num <<
"\n";
413 #ifdef MOAB_HAVE_HDF5_PARALLEL
414 std::string write_options(
"PARALLEL=WRITE_PART;" );
416 std::string output_file =
"test_mpas";
417 if( rcbzoltan ) output_file +=
"_rcbzoltan";
418 if( no_mixed_elements ) output_file +=
"_no_mixed_elements";
419 output_file +=
".h5m";
421 mb.
write_file( output_file.c_str(), NULL, write_options.c_str() );
433 read_options =
"PARALLEL=READ_PART;PARTITION_METHOD=TRIVIAL;PARALLEL_RESOLVE_SHARED_ENTS";
434 std::ostringstream gather_set_option;
435 gather_set_option <<
";GATHER_SET=" << gather_set_rank;
445 if( gather_set_rank < 0 || gather_set_rank >= procs )
return;
447 Range cells, cells_owned;
454 if( gather_set_rank ==
rank )
460 assert( gather_set != 0 );
463 Tag ke_tag0, gid_tag;
468 pcomm->
gather_data( cells_owned, ke_tag0, gid_tag, gather_set, gather_set_rank );
470 if( gather_set_rank ==
rank )
473 Range gather_set_cells;
480 EntityHandle cell_ents[] = { gather_set_cells[0], gather_set_cells[11], gather_set_cells[12],
481 gather_set_cells[641] };
503 read_options =
"PARALLEL=READ_PART;PARTITION;NOMESH;VARIABLE=;PARTITION_METHOD=TRIVIAL";
504 if( no_mixed_elements )
read_options +=
";NO_MIXED_ELEMENTS";
509 read_options =
"PARALLEL=READ_PART;PARTITION;PARALLEL_RESOLVE_SHARED_ENTS;PARTITION_METHOD="
511 if( no_mixed_elements )
read_options +=
";NO_MIXED_ELEMENTS";
516 read_options =
"PARALLEL=READ_PART;PARTITION;PARTITION_METHOD=TRIVIAL;NOMESH;VARIABLE=ke;TIMESTEP=0";
517 if( no_mixed_elements )
read_options +=
";NO_MIXED_ELEMENTS";
544 EntityHandle cell_ents[] = { local_cells[0], local_cells[160], local_cells[320] };