From: leicht Date: Wed, 10 Jan 2007 16:03:06 +0000 (+0000) Subject: bug fix: renumber vertices in GridOut::write_dx() to match implicit vertex numbering... X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=43c5ed91b49bf61ed466c4e457c260b673244339;p=dealii-svn.git bug fix: renumber vertices in GridOut::write_dx() to match implicit vertex numbering of dx format in triangulations with unused vertices git-svn-id: https://svn.dealii.org/trunk@14293 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/source/grid/grid_out.cc b/deal.II/deal.II/source/grid/grid_out.cc index e680ac11a9..91c18d21a1 100644 --- a/deal.II/deal.II/source/grid/grid_out.cc +++ b/deal.II/deal.II/source/grid/grid_out.cc @@ -57,6 +57,20 @@ void GridOut::write_dx (const Triangulation &tria, const unsigned int n_vertices = tria.n_used_vertices(); + // vertices are implicitly numbered from 0 to + // n_vertices-1. we have to renumber the + // vertices, because otherwise we would end + // up with wrong results, if there are unused + // vertices + std::vector renumber(vertices.size()); + // fill this vector with new vertex numbers + // ranging from 0 to n_vertices-1 + unsigned int new_number=0; + for (unsigned int i=0; i::active_cell_iterator cell; const typename Triangulation::active_cell_iterator endc=tria.end(); @@ -92,7 +106,7 @@ void GridOut::write_dx (const Triangulation &tria, for (cell = tria.begin_active(); cell != endc; ++cell) { for (unsigned int v=0; v::vertices_per_cell; ++v) - out << '\t' << cell->vertex_index(GeometryInfo::dx_to_deal[v]); + out << '\t' << renumber[cell->vertex_index(GeometryInfo::dx_to_deal[v])]; out << '\n'; } out << "attribute \"element type\" string \""; @@ -153,7 +167,7 @@ void GridOut::write_dx (const Triangulation &tria, typename Triangulation::face_iterator face = cell->face(f); for (unsigned int v=0; v::vertices_per_face; ++v) - out << '\t' << face->vertex_index(GeometryInfo::dx_to_deal[v]); + out << '\t' << renumber[face->vertex_index(GeometryInfo::dx_to_deal[v])]; out << '\n'; } }