On Thu, Feb 11, 2010 at 07:24:51PM +0000, Garth N. Wells wrote: > > > Anders Logg wrote: > > I had to get things to compile so I could push a bug fix. I won't > > touch it more. > > > > Why are so many lines which are the same 'touched', e.g. > > - partition(local_graph, ghost_vertices, global_cell_indices, > + partition(local_graph, ghost_vertices, global_cell_indices, > > Is it your editor? > > Garth
It's because of the following setting in my .emacs configuration file: ;; Remove trailing whitespaces before saving (add-hook 'before-save-hook 'delete-trailing-whitespace) This deletes whitespaces at the end of lines. So even if I change just a single character, many lines will be cleaned up automatically. I used to check this manually before but now I don't have to. -- Anders > > >> Please don't touch the SCOCTH files just yet. > >> > >> Garth > >> > >> -------- Original Message -------- > >> Subject: [Branch ~dolfin-core/dolfin/main] Rev 4482: Add missing SCOTCH > >> functions when SCOTCH is not available > >> Date: Thu, 11 Feb 2010 18:11:17 -0000 > >> From: [email protected] > >> Reply-To: [email protected] > >> To: Garth Wells <[email protected]> > >> > >> ------------------------------------------------------------ > >> revno: 4482 > >> committer: Anders Logg <[email protected]> > >> branch nick: dolfin-dev > >> timestamp: Thu 2010-02-11 19:09:37 +0100 > >> message: > >> Add missing SCOTCH functions when SCOTCH is not available > >> modified: > >> dolfin/graph/SCOTCH.cpp > >> > >> > > > >> === modified file 'dolfin/graph/SCOTCH.cpp' > >> --- dolfin/graph/SCOTCH.cpp 2010-02-11 01:50:04 +0000 > >> +++ dolfin/graph/SCOTCH.cpp 2010-02-11 18:09:37 +0000 > >> @@ -2,7 +2,7 @@ > >> // Licensed under the GNU LGPL Version 2.1. > >> // > >> // First added: 2010-02-10 > >> -// Last changed: > >> +// Last changed: 2010-02-11 > >> > >> #include <algorithm> > >> #include <numeric> > >> @@ -40,7 +40,7 @@ > >> > >> // Compute partitions > >> cout << "Compute partitions" << endl; > >> - partition(local_graph, ghost_vertices, global_cell_indices, > >> + partition(local_graph, ghost_vertices, global_cell_indices, > >> num_global_vertices, cell_partition); > >> cout << "End compute parttions" << endl; > >> } > >> @@ -63,7 +63,7 @@ > >> for (vertices = cell_vertices.begin(); vertices != cell_vertices.end(); > >> ++vertices) > >> std::sort(vertices->begin(), vertices->end()); > >> > >> - // Resize graph (cell are graph vertices, cell-cell connections are > >> graph edges) > >> + // Resize graph (cell are graph vertices, cell-cell connections are > >> graph edges) > >> local_graph.resize(num_local_cells); > >> > >> // Get number of cells on each process > >> @@ -72,7 +72,7 @@ > >> // Compute offset for going from local to (internal) global numbering > >> std::vector<uint> process_offsets(MPI::num_processes()); > >> for (uint i = 0; i < MPI::num_processes(); ++i) > >> - process_offsets[i] = std::accumulate(cells_per_process.begin(), > >> cells_per_process.begin() + i, 0); > >> + process_offsets[i] = std::accumulate(cells_per_process.begin(), > >> cells_per_process.begin() + i, 0); > >> const uint process_offset = process_offsets[MPI::process_number()]; > >> > >> // Compute local edges (cell-cell connections) using global (internal) > >> numbering > >> @@ -92,12 +92,12 @@ > >> assert(i < local_graph.size()); > >> if (local_graph[i].size() != num_cell_facets) > >> local_boundary_cells.push_back(i); > >> - } > >> - cout << "Number of possible boundary cells " << > >> local_boundary_cells.size() << endl; > >> + } > >> + cout << "Number of possible boundary cells " << > >> local_boundary_cells.size() << endl; > >> > >> // Get number of possible ghost cells coming from each process > >> std::vector<uint> boundary_cells_per_process = > >> MPI::gather(local_boundary_cells.size()); > >> - > >> + > >> // Pack local data for candidate ghost cells (global cell index and > >> vertices) > >> std::vector<uint> connected_cell_data; > >> for (uint i = 0; i < local_boundary_cells.size(); ++i) > >> @@ -108,8 +108,8 @@ > >> // Candidate cell vertices > >> std::vector<uint>& vertices = cell_vertices[local_boundary_cells[i]]; > >> for (uint j = 0; j < num_cell_vertices; ++j) > >> - connected_cell_data.push_back(vertices[j]); > >> - } > >> + connected_cell_data.push_back(vertices[j]); > >> + } > >> > >> // Prepare package to send (do not send data belonging to this process) > >> std::vector<uint> partition; > >> @@ -118,7 +118,7 @@ > >> { > >> if(i != MPI::process_number()) > >> { > >> - transmit_data.insert(transmit_data.end(), > >> connected_cell_data.begin(), > >> + transmit_data.insert(transmit_data.end(), > >> connected_cell_data.begin(), > >> connected_cell_data.end()); > >> partition.insert(partition.end(), connected_cell_data.size(), i); > >> } > >> @@ -140,7 +140,7 @@ > >> uint _offset = 0; > >> for (uint i = 0; i < MPI::num_processes()-1; ++i) > >> { > >> - const uint p = partition[_offset]; > >> + const uint p = partition[_offset]; > >> const uint data_length = > >> (num_cell_vertices+1)*boundary_cells_per_process[p]; > >> > >> std::vector<uint>& _global_cell_indices = > >> candidate_ghost_cell_global_indices[p]; > >> @@ -158,9 +158,9 @@ > >> std::vector<uint> vertices; > >> for (uint k = 0; k < num_cell_vertices; ++k) > >> vertices.push_back(transmit_data[(j+1)+k]); > >> - _cell_vertices.push_back(vertices); > >> + _cell_vertices.push_back(vertices); > >> } > >> - > >> + > >> // Update offset > >> _offset += data_length; > >> } > >> @@ -170,17 +170,17 @@ > >> std::set<uint> ghost_cell_global_indices; > >> for (uint i = 0; i < candidate_ghost_cell_vertices.size(); ++i) > >> { > >> - compute_ghost_connectivity(cell_vertices, local_boundary_cells, > >> - candidate_ghost_cell_vertices[i], > >> - candidate_ghost_cell_global_indices[i], > >> - num_cell_facets, num_facet_vertices, > >> + compute_ghost_connectivity(cell_vertices, local_boundary_cells, > >> + candidate_ghost_cell_vertices[i], > >> + candidate_ghost_cell_global_indices[i], > >> + num_cell_facets, num_facet_vertices, > >> local_graph, ghost_cell_global_indices); > >> } > >> cout << "Finish compute graph ghost edges" << endl; > >> } > >> > >> //----------------------------------------------------------------------------- > >> void SCOTCH::compute_connectivity(const std::vector<std::vector<uint> >& > >> cell_vertices, > >> - uint num_cell_facets, > >> + uint num_cell_facets, > >> uint num_facet_vertices, uint offset, > >> std::vector<std::set<uint> >& > >> local_graph) > >> { > >> @@ -197,10 +197,10 @@ > >> > >> // Find numer of vertices shared by cells i and j > >> std::vector<uint> intersection(num_cell_facets); > >> - it = std::set_intersection(cell_vertices[i].begin(), > >> cell_vertices[i].end(), > >> - cell_vertices[j].begin(), > >> cell_vertices[j].end(), > >> + it = std::set_intersection(cell_vertices[i].begin(), > >> cell_vertices[i].end(), > >> + cell_vertices[j].begin(), > >> cell_vertices[j].end(), > >> intersection.begin()); > >> - const uint num_shared_vertices = it - intersection.begin(); > >> + const uint num_shared_vertices = it - intersection.begin(); > >> > >> // Insert edge if cells are neighbours > >> if ( num_shared_vertices == num_facet_vertices ) > >> @@ -218,10 +218,10 @@ > >> > >> // Find numer of vertices shared by cell0 and cell1 > >> std::vector<uint> intersection(num_cell_facets); > >> - it = std::set_intersection(cell_vertices[i].begin(), > >> cell_vertices[i].end(), > >> - cell_vertices[j].begin(), > >> cell_vertices[j].end(), > >> + it = std::set_intersection(cell_vertices[i].begin(), > >> cell_vertices[i].end(), > >> + cell_vertices[j].begin(), > >> cell_vertices[j].end(), > >> intersection.begin()); > >> - const uint num_shared_vertices = it - intersection.begin(); > >> + const uint num_shared_vertices = it - intersection.begin(); > >> > >> // Insert edge if cells are neighbours > >> if ( num_shared_vertices == num_facet_vertices ) > >> @@ -229,7 +229,7 @@ > >> else if ( num_shared_vertices > num_facet_vertices) > >> error("Too many shared vertices. Cannot construct dual graph."); > >> } > >> - } > >> + } > >> } > >> > >> //----------------------------------------------------------------------------- > >> dolfin::uint SCOTCH::compute_ghost_connectivity(const > >> std::vector<std::vector<uint> >& cell_vertices, > >> @@ -241,7 +241,7 @@ > >> std::vector<std::set<uint> >& > >> local_graph, > >> std::set<uint>& ghost_cells) > >> { > >> - // FIXME: This function needs to be made more efficient. > >> + // FIXME: This function needs to be made more efficient. > >> > >> const uint num_ghost_vertices_0 = ghost_cells.size(); > >> > >> @@ -253,10 +253,10 @@ > >> { > >> // Find numer of vertices shared by cells i and j > >> std::vector<uint> intersection(num_cell_facets); > >> - it = std::set_intersection(cell_vertices[local_cell_index].begin(), > >> cell_vertices[local_cell_index].end(), > >> - candidate_ghost_vertices[j].begin(), > >> candidate_ghost_vertices[j].end(), > >> + it = std::set_intersection(cell_vertices[local_cell_index].begin(), > >> cell_vertices[local_cell_index].end(), > >> + candidate_ghost_vertices[j].begin(), > >> candidate_ghost_vertices[j].end(), > >> intersection.begin()); > >> - const uint num_shared_vertices = it - intersection.begin(); > >> + const uint num_shared_vertices = it - intersection.begin(); > >> > >> if ( num_shared_vertices == num_facet_vertices ) > >> { > >> @@ -267,7 +267,7 @@ > >> error("Too many shared vertices. Cannot construct dual graph."); > >> } > >> } > >> - > >> + > >> // Return number of newly added ghost vertices > >> return ghost_cells.size() - num_ghost_vertices_0; > >> } > >> @@ -290,7 +290,7 @@ > >> //const uint vertgstnbr = local_graph.size() + ghost_vertices.size(); > >> > >> // Number of local edges + edges connecting to ghost vertices > >> - SCOTCH_Num edgelocnbr = 0; > >> + SCOTCH_Num edgelocnbr = 0; > >> std::vector<std::set<uint> >::const_iterator vertex; > >> for(vertex = local_graph.begin(); vertex != local_graph.end(); ++vertex) > >> edgelocnbr += vertex->size(); > >> @@ -323,8 +323,8 @@ > >> std::vector<SCOTCH_Num> proccnttab(MPI::num_processes()); > >> for (uint i = 0; i < MPI::num_processes(); ++i) > >> proccnttab[i] = tmp[i]; > >> - > >> - // Array containing . . . . > >> + > >> + // Array containing . . . . > >> std::vector<SCOTCH_Num> procvrttab(MPI::num_processes() + 1); > >> for (uint i = 0; i < MPI::num_processes(); ++i) > >> procvrttab[i] = std::accumulate(proccnttab.begin(), > >> proccnttab.begin() + i, 0); > >> @@ -383,7 +383,7 @@ > >> //if (err != 0) > >> // error("Error buidling SCOTCH ghost points."); > >> > >> - // Check graph > >> + // Check graph > >> if (SCOTCH_dgraphCheck(&dgrafdat)) > >> error("Consistency error in SCOTCH graph."); > >> > >> @@ -409,6 +409,49 @@ > >> cell_partition[i] = partloctab[i]; > >> } > >> > >> //----------------------------------------------------------------------------- > >> +#else > >> +//----------------------------------------------------------------------------- > >> +void SCOTCH::compute_partition(std::vector<uint>& cell_partition, > >> + const LocalMeshData& mesh_data) > >> +{ > >> + error("This function requires SCOTCH."); > >> +} > >> +//----------------------------------------------------------------------------- > >> +void SCOTCH::compute_dual_graph(const LocalMeshData& mesh_data, > >> + std::vector<std::set<uint> >& local_graph, > >> + std::set<uint>& ghost_vertices) > >> +{ > >> + error("This function requires SCOTCH."); > >> +} > >> +//----------------------------------------------------------------------------- > >> +void SCOTCH::compute_connectivity(const std::vector<std::vector<uint> >& > >> cell_vertices, > >> + uint num_cell_facets, uint > >> num_facet_vertices, > >> + uint offset, > >> + std::vector<std::set<uint> >& graph) > >> +{ > >> + error("This function requires SCOTCH."); > >> +} > >> +//----------------------------------------------------------------------------- > >> +dolfin::uint SCOTCH::compute_ghost_connectivity(const > >> std::vector<std::vector<uint> >& cell_vertices, > >> + const std::vector<uint>& > >> local_boundary_cells, > >> + const > >> std::vector<std::vector<uint> >& candidate_ghost_vertices, > >> + const std::vector<uint>& > >> candidate_ghost_global_indices, > >> + uint num_cell_facets, > >> uint num_facet_vertices, > >> + > >> std::vector<std::set<uint> >& ghost_graph_edges, > >> + std::set<uint>& > >> ghost_cells) > >> +{ > >> + error("This function requires SCOTCH."); > >> + return 0; > >> +} > >> +//----------------------------------------------------------------------------- > >> +void SCOTCH::partition(const std::vector<std::set<uint> >& local_graph, > >> + const std::set<uint>& ghost_vertices, > >> + const std::vector<uint>& global_cell_indices, > >> + uint num_global_vertices, > >> + std::vector<uint>& cell_partition) > >> +{ > >> + error("This function requires SCOTCH."); > >> +} > >> +//----------------------------------------------------------------------------- > >> > >> #endif > >> - > >> > >> > > > >> _______________________________________________ > >> Mailing list: https://launchpad.net/~dolfin > >> Post to : [email protected] > >> Unsubscribe : https://launchpad.net/~dolfin > >> More help : https://help.launchpad.net/ListHelp > >
signature.asc
Description: Digital signature
_______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

