diff --git a/examples/decomp_example/src/mesh_decomp_example.cpp b/examples/decomp_example/src/mesh_decomp_example.cpp index 690f852d..7e2ad07c 100644 --- a/examples/decomp_example/src/mesh_decomp_example.cpp +++ b/examples/decomp_example/src/mesh_decomp_example.cpp @@ -41,7 +41,7 @@ int main(int argc, char** argv) { MPI_Comm_rank(MPI_COMM_WORLD, &rank); int num_dims = 3; - int Pn_order = 3; + int Pn_order = 2; double t_main_start = MPI_Wtime(); @@ -90,7 +90,8 @@ int main(int argc, char** argv) { // Morph the inital mesh to show curvature - if(Pn_order > 1) { + bool morph_mesh = false; + if(morph_mesh && Pn_order > 1) { FOR_ALL(i, 0, initial_mesh.num_nodes, { initial_node_coords(i, 0) += 0.0; //0.02 * std::sin(10.0 * initial_node_coords(i, 0)); @@ -137,8 +138,9 @@ int main(int argc, char** argv) { std::cout<<"Final mesh has " << final_mesh.num_owned_elems << " owned elements and " << final_mesh.num_owned_nodes << " owned nodes" << std::endl; // Verify communicaiton plans - element_communication_plan.verify_graph_communicator(); - node_communication_plan.verify_graph_communicator(); + if(world_size != 1) element_communication_plan.verify_graph_communicator(); + if(world_size != 1) node_communication_plan.verify_graph_communicator(); + MPI_Barrier(MPI_COMM_WORLD); if(rank == 0) { diff --git a/src/decomp_utilities/decomp_utils.h b/src/decomp_utilities/decomp_utils.h index 3d274c63..f6e02106 100644 --- a/src/decomp_utilities/decomp_utils.h +++ b/src/decomp_utilities/decomp_utils.h @@ -382,7 +382,7 @@ inline void naive_partition_mesh( 0, MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); - if (rank == 0) std::cout<< " Finished scatter" <(total_elem_elem_entries, "elems_in_elem_on_rank"); @@ -404,13 +404,13 @@ inline void naive_partition_mesh( for(int i = 0; i < world_size; i++) { displs_ee[i] = displacement; - std::cout<< "Rank = "<< i < all_elems_in_elem; std::vector sendcounts(world_size); @@ -642,7 +642,7 @@ inline void build_ghost( int nodes_per_elem = input_mesh.num_nodes_in_elem; - std::cout<<"Rank "< vector of node_gids // We pre-allocate the vector size to avoid repeated reallocations @@ -1158,7 +1158,7 @@ inline void build_ghost( output_mesh.build_connectivity(); MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) std::cout << " Finished building final mesh structure" << std::endl; + if(rank == 0 && print_info) std::cout << " Finished building final mesh structure" << std::endl; // ****************************************************************************************** @@ -1241,7 +1241,7 @@ inline void build_ghost( // Create coordinate-specific counts and displacements (in units of doubles, not nodes) MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) std::cout << " Getting coord_counts" << std::endl; + if(rank == 0 && print_info) std::cout << " Getting coord_counts" << std::endl; std::vector coord_counts(world_size); std::vector coord_displs(world_size); @@ -1344,7 +1344,7 @@ inline void build_ghost( } MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) std::cout<<"After boundary_elem_targets"< boundary_elem_local_ids; @@ -1493,7 +1493,7 @@ inline void build_ghost( // Initialize the graph communicator for node communication node_communication_plan.initialize_graph_communicator(node_outdegree, node_destinations, node_indegree, node_sources); MPI_Barrier(MPI_COMM_WORLD); - if (rank == 0) std::cout<<"After node graph communicator"< conn_sdispls(world_size), conn_rdispls(world_size); int conn_send_total = 0, conn_recv_total = 0; @@ -2188,7 +2186,7 @@ inline void partition_mesh( conn_recvbuf.data(), conn_recvcounts.data(), conn_rdispls.data(), MPI_INT, MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) std::cout<<" Finished exchanging element–node connectivity"< node_gid_set(conn_recvbuf.begin(), conn_recvbuf.end()); @@ -2200,8 +2198,7 @@ inline void partition_mesh( for (int i = 0; i < num_new_nodes; i++) node_gid_to_lid[new_node_gids[i]] = i; - if (print_info) - std::cout << "[rank " << rank << "] owns " << num_new_nodes << " unique nodes\n"; + if (print_info) std::cout << "[rank " << rank << "] owns " << num_new_nodes << " unique nodes\n"; // -------------- Phase 5: Request node coordinates -------------- @@ -2230,7 +2227,7 @@ inline void partition_mesh( MPI_Alltoall(coord_sendcounts.data(), 1, MPI_INT, coord_recvcounts.data(), 1, MPI_INT, MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) std::cout<<" Finished exchanging node coordinates counts"< coord_sdispls(world_size), coord_rdispls(world_size); int coord_send_total = 0, coord_recv_total = 0; @@ -2246,7 +2243,7 @@ inline void partition_mesh( coord_recvbuf.data(), coord_recvcounts.data(), coord_rdispls.data(), MPI_DOUBLE, MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) std::cout<<" Finished exchanging node coordinates"< boundary_node_local_ids; ///< Local IDs of boundary nodes on this rank (send data to neighboring MPI ranks) size_t num_ghost_nodes; ///< Number of ghost nodes on this rank (receive data from neighboring MPI ranks) - - - - // initialization methods void initialize_nodes(const size_t num_nodes_inp) { @@ -674,7 +670,7 @@ struct Mesh else if (elem_kind == mesh_init::arbitrary_tensor_element) { size_t temp_node_lids[num_nodes_in_patch * num_patches_in_surf * num_surfs_in_elem]; - printf("arbitrary order tensor element \n"); + if (verbose) printf("arbitrary order tensor element \n"); // arbitrary-order node ordering in patches of an element if (num_dims == 3) { @@ -734,7 +730,7 @@ struct Mesh i_patch = num_1D - 1; // printf("num_1D = %zu \n", num_1D); // printf("i_patch = %d \n", i_patch); - printf("num_nodes_in_elem %zu \n", num_nodes_in_elem); + if (verbose) printf("num_nodes_in_elem %zu \n", num_nodes_in_elem); for (int k = 0; k < num_1D - 1; k++) { for (int j = 0; j < num_1D - 1; j++) { // node_lid 0 in patch @@ -1467,7 +1463,6 @@ struct Mesh ///////////////////////////////////////////////////////////////////////////// void build_connectivity() { - verbose = true; build_corner_connectivity(); if (verbose) printf("Built corner connectivity \n");