Has anyone else experienced this problem? Is it just because I have so many cells in one block? To reproduce: compile structured grid generator that is attached, create grid with dimensions 1000 x 1000 x 80, use clean to grid to make unstructured, and then try viewing the surface.
Note: this uses quite a bit of memory.... Regards, Paul 2008/10/17 Edwards, Paul <[EMAIL PROTECTED]>: > I think this int needs to be unsigned (or more bits)….. > > > > (gdb) frame 3 > > #3 0x00002aaab2c053ea in vtkDataSetSurfaceFilter::NewFastGeomQuad > (this=0x14fe670, numPts=4) > > at > /tmp/padramgui-1.1/tmp/src/paraview/VTK/Graphics/vtkDataSetSurfaceFilter.cxx:1730 > > 1730 this->FastGeomQuadArrays[this->NextArrayIndex] > > (gdb) list > > 1720 } > > 1721 } > > 1722 delete [] this->FastGeomQuadArrays; > > 1723 this->FastGeomQuadArrays = newArrays; > > 1724 this->NumberOfFastGeomQuadArrays = num; > > 1725 } > > 1726 > > 1727 // Next: allocate a new array if necessary. > > 1728 if (this->FastGeomQuadArrays[this->NextArrayIndex] == NULL) > > 1729 { > > 1730 this->FastGeomQuadArrays[this->NextArrayIndex] > > 1731 = new unsigned char[this->FastGeomQuadArrayLength]; > > 1732 } > > 1733 > > 1734 vtkFastGeomQuad* q = reinterpret_cast<vtkFastGeomQuad*> > > 1735 (this->FastGeomQuadArrays[this->NextArrayIndex] + > this->NextQuadIndex); > > 1736 q->numPts = numPts; > > 1737 > > 1738 this->NextQuadIndex += polySize; > > 1739 > > (gdb) print this->FastGeomQuadArrayLength > > $2 = -1721647736 > > (gdb) whatis this->FastGeomQuadArrayLength > > type = int > > (gdb) > > > > More than just that variable needs to be updated though. > > > > I experienced this when viewing the surface of a mesh with 90M cells on a > single machine. Cuts worked without any problems. > > > > Regards, > > Paul > > The data contained in, or attached to, this e-mail, may contain confidential > information. If you have received it in error you should notify the sender > immediately by reply e-mail, delete the message from your system and contact > +44 (0) 1332 242424 (the Rolls-Royce IT Security Director) if you need > assistance. Please do not copy it for any purpose, or disclose its contents > to any other person. > > An e-mail response to this address may be subject to interception or > monitoring for operational reasons or for lawful business practices. > > (c) 2008 Rolls-Royce plc > > Registered office: 65 Buckingham Gate, London SW1E 6AT Company number: > 1003142. Registered in England. > > _______________________________________________ > ParaView mailing list > ParaView@paraview.org > http://www.paraview.org/mailman/listinfo/paraview > >
#ifndef __vtkStructuredGridGenerator_h #define __vtkStructuredGridGenerator_h #include <vtkStructuredGridAlgorithm.h> class vtkStructuredGridGenerator : public vtkStructuredGridAlgorithm { public: static vtkStructuredGridGenerator* New(); vtkTypeRevisionMacro(vtkStructuredGridGenerator, vtkStructuredGridAlgorithm); void PrintSelf(ostream& os, vtkIndent indent); vtkSetVector2Macro(IRange, double); vtkGetVectorMacro(IRange, double, 2); vtkSetVector2Macro(JRange, double); vtkGetVectorMacro(JRange, double, 2); vtkSetVector2Macro(KRange, double); vtkGetVectorMacro(KRange, double, 2); vtkSetVector3Macro(Dimensions, int); vtkGetVectorMacro(Dimensions, int, 3); virtual int RequestInformation( vtkInformation *vtkNotUsed(request), vtkInformationVector **vtkNotUsed(inputVector), vtkInformationVector *outputVector); virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*); protected: vtkStructuredGridGenerator(); ~vtkStructuredGridGenerator(); double IRange[2]; double JRange[2]; double KRange[2]; int Dimensions[3]; private: vtkStructuredGridGenerator(const vtkStructuredGridGenerator&); // Not implemented. void operator=(const vtkStructuredGridGenerator&); // Not implemented. }; #endif
#include "vtkStructuredGridGenerator.h" #include <vtkObjectFactory.h> #include <vtkStructuredGrid.h> #include <vtkInformation.h> #include <vtkInformationVector.h> #include <vtkSmartPointer.h> #include <vtkStreamingDemandDrivenPipeline.h> #include <vtkPoints.h> #define VTK_CREATE(type, name) \ vtkSmartPointer<type> name = vtkSmartPointer<type>::New() vtkCxxRevisionMacro(vtkStructuredGridGenerator, "$Revision: 0.1 $"); vtkStandardNewMacro(vtkStructuredGridGenerator); vtkStructuredGridGenerator::vtkStructuredGridGenerator() { this->SetNumberOfInputPorts(0); this->IRange[0] = -1.0; this->IRange[1] = 1.0; this->JRange[0] = -1.0; this->JRange[1] = 1.0; this->KRange[0] = -1.0; this->KRange[1] = 1.0; this->Dimensions[0] = 2; this->Dimensions[1] = 2; this->Dimensions[2] = 2; } vtkStructuredGridGenerator::~vtkStructuredGridGenerator() { } int vtkStructuredGridGenerator::RequestInformation( vtkInformation *vtkNotUsed(request), vtkInformationVector **vtkNotUsed(inputVector), vtkInformationVector *outputVector) { vtkInformation *outInfo = outputVector->GetInformationObject(0); int wholeExtent[6]; wholeExtent[0] = 0; wholeExtent[1] = this->Dimensions[0] - 1; wholeExtent[2] = 0; wholeExtent[3] = this->Dimensions[1] - 1; wholeExtent[4] = 0; wholeExtent[5] = this->Dimensions[2] - 1; outInfo->Set(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(), wholeExtent, 6); return 1; } int vtkStructuredGridGenerator::RequestData( vtkInformation* vtkNotUsed(request), vtkInformationVector** inputVector, vtkInformationVector* outputVector) { vtkInformation* outInfo = outputVector->GetInformationObject(0); vtkStructuredGrid* output = vtkStructuredGrid::SafeDownCast( outInfo->Get(vtkDataObject::DATA_OBJECT())); if (!output) { vtkDebugMacro( << "Invalid output"); return 0; } int extent[6]; outInfo->Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(), extent); output->SetExtent(extent); double steps[3]; steps[0] = (this->IRange[1] - this->IRange[0]) / static_cast<double>(this->Dimensions[0] - 1); steps[1] = (this->JRange[1] - this->JRange[0]) / static_cast<double>(this->Dimensions[1] - 1); steps[2] = (this->KRange[1] - this->KRange[0]) / static_cast<double>(this->Dimensions[2] - 1); VTK_CREATE(vtkPoints, points); points->Allocate((extent[1] - extent[0] + 1) * (extent[3] - extent[2] + 1) * (extent[5] - extent[4] + 1)); for (int k = extent[4]; k <= extent[5]; ++k) for (int j = extent[2]; j <= extent[3]; ++j) for (int i = extent[0]; i <= extent[1]; ++i) { double p[3]; p[0] = IRange[0] + (steps[0] * static_cast<double>(i)); p[1] = JRange[0] + (steps[1] * static_cast<double>(j)); p[2] = KRange[0] + (steps[2] * static_cast<double>(k)); points->InsertNextPoint(p); } output->SetPoints(points); return 1; } void vtkStructuredGridGenerator::PrintSelf(ostream& os, vtkIndent indent) { this->Superclass::PrintSelf(os, indent); }
<ServerManagerConfiguration> <ProxyGroup name="sources"> <SourceProxy name="StructuredGridGenerator" class="vtkStructuredGridGenerator" label="StructuredGridGenerator"> <Documentation long_help="StructuredGridGenerator" short_help="StructuredGridGenerator."> StructuredGridGenerator </Documentation> <DoubleVectorProperty name="IRange" command="SetIRange" number_of_elements="2" default_values="-1.0 1.0"> <DoubleRangeDomain name="range"/> </DoubleVectorProperty> <DoubleVectorProperty name="JRange" command="SetJRange" number_of_elements="2" default_values="-1.0 1.0"> <DoubleRangeDomain name="range"/> </DoubleVectorProperty> <DoubleVectorProperty name="KRange" command="SetKRange" number_of_elements="2" default_values="-1.0 1.0"> <DoubleRangeDomain name="range"/> </DoubleVectorProperty> <IntVectorProperty name="Dimensions" command="SetDimensions" number_of_elements="3" default_values="2 2 2" label="Dimensions (I, J, K)" > <IntRangeDomain name="range"/> <Documentation> This property specifies the number of points along the I, J, and J axes of the data set. </Documentation> </IntVectorProperty> </SourceProxy> </ProxyGroup> </ServerManagerConfiguration>
_______________________________________________ ParaView mailing list ParaView@paraview.org http://www.paraview.org/mailman/listinfo/paraview