ExodusIIReader handles requested time wrongly
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
The ExodusIIReader seems to handle the time that is requested from the pipeline (via UPDATE_TIME_STEPS) wrongly. Specifically, in the routine vtkExodusIIReader::RequestData(vtkInformation* vtkNotUsed(request), vtkInformationVector** vtkNotUsed(inputVector), vtkInformationVector* outputVector), there is an int timeStep that is set to this->TimeStep in the beginning. Afterwards, this->TimeStep is updated to the value closest to the requested UPDATA_TIME_STEP. Then, however, timeStep is used as the time step for which data is requested, instead of this->TimeStep. I.e., one always gets the data from the time step that was correct in the previous call of RequestData. The following patch fixes this:
--- orig/VTK/Hybrid/vtkExodusIIReader.cxx 2010-09-27 16:40:04.000000000 -0400 +++ VTK/Hybrid/vtkExodusIIReader.cxx 2011-05-19 13:43:23.000000000 -0400 @@ -5593,7 +5593,7 @@ vtkMultiBlockDataSet *output = vtkMultiBlockDataSet::SafeDownCast( outInfo->Get( vtkDataObject::DATA_OBJECT() ) );
// Check if a particular time was requested.
- int timeStep = this->TimeStep;
-
//int timeStep = this->TimeStep;
if ( outInfo->Has( vtkStreamingDemandDrivenPipeline::UPDATE_TIME_STEPS() ) ) { // Get the requested time step. We only support requests of a single time step in this reader right now @@ -5670,8 +5670,8 @@ haveFastPath = true; }
- //cout << "Requesting step " << timeStep << " for output " << output << "\n";
- this->Metadata->RequestData( timeStep, output );
-
//cout << "Requesting step " << this->TimeStep << " for output " << output << "\n";
-
this->Metadata->RequestData( this->TimeStep, output ); this->ProducedFastPathOutput = this->Metadata->ProducedFastPathOutput;
// Restore previous fastpath values so we don't respond to old pipeline requests