[cig-commits] r9252 - short/3D/PyLith/trunk/libsrc/meshio
knepley at geodynamics.org
knepley at geodynamics.org
Tue Feb 5 20:11:37 PST 2008
Author: knepley
Date: 2008-02-05 20:11:37 -0800 (Tue, 05 Feb 2008)
New Revision: 9252
Modified:
short/3D/PyLith/trunk/libsrc/meshio/DataWriterVTK.cc
Log:
Think I fixed output on a variety of meshes
Modified: short/3D/PyLith/trunk/libsrc/meshio/DataWriterVTK.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/meshio/DataWriterVTK.cc 2008-02-06 01:36:29 UTC (rev 9251)
+++ short/3D/PyLith/trunk/libsrc/meshio/DataWriterVTK.cc 2008-02-06 04:11:37 UTC (rev 9252)
@@ -134,14 +134,23 @@
assert(0 != name);
try {
- const ALE::Obj<Mesh::label_sequence>& vertices = mesh->depthStratum(0);
+ std::string labelName;
+ PetscErrorCode err = 0;
+
+ if (mesh->hasLabel("censored depth")) {
+ labelName = "censored depth";
+ } else {
+ labelName = "depth";
+ }
+ const ALE::Obj<Mesh::numbering_type>& numbering = mesh->getFactory()->getNumbering(mesh, labelName, 0);
const int fiberDim = (fieldType != VECTOR_FIELD) ?
- field->getFiberDimension(*vertices->begin()) : 3;
+ field->getFiberDimension(*mesh->getLabelStratum(labelName, 0)->begin()) : 3;
- PetscErrorCode err = SectionView_Sieve_Ascii(mesh, field, name,
- _viewer, fiberDim);
+ // Should only print this once
+ err = PetscViewerASCIIPrintf(_viewer, "POINT_DATA %d\n", numbering->getGlobalSize());
if (err)
- throw std::runtime_error("Could not write vertex data.");
+ throw std::runtime_error("Could not write VTK point data header.");
+ VTKViewer::writeField(field, name, fiberDim, numbering, _viewer, fiberDim);
} catch (const std::exception& err) {
std::ostringstream msg;
msg << "Error while writing field '" << name << "' at time "
@@ -168,18 +177,24 @@
assert(0 != name);
try {
+ std::string labelName;
PetscErrorCode err = 0;
- err = PetscViewerPushFormat(_viewer, PETSC_VIEWER_ASCII_VTK_CELL);
-
- // Get fiber dimension of first cell
- const ALE::Obj<Mesh::label_sequence>& cells = mesh->heightStratum(0);
+ if (mesh->hasLabel("censored depth")) {
+ labelName = "censored depth";
+ } else {
+ labelName = "depth";
+ }
+
+ const ALE::Obj<Mesh::numbering_type>& numbering = mesh->getFactory()->getNumbering(mesh, labelName, mesh->depth());
const int fiberDim = (fieldType != VECTOR_FIELD) ?
- field->getFiberDimension(*cells->begin()) : 3;
- err = SectionView_Sieve_Ascii(mesh, field, name,
- _viewer, fiberDim);
+ field->getFiberDimension(*mesh->getLabelStratum(labelName, mesh->depth())->begin()) : 3;
+
+ // Should only print this once
+ err = PetscViewerASCIIPrintf(_viewer, "CELL_DATA %d\n", numbering->getGlobalSize());
if (err)
- throw std::runtime_error("Could not write cell data.");
+ throw std::runtime_error("Could not write VTK point data header.");
+ VTKViewer::writeField(field, name, fiberDim, numbering, _viewer, fiberDim);
} catch (const std::exception& err) {
std::ostringstream msg;
msg << "Error while writing field '" << name << "' at time "
More information about the cig-commits
mailing list