diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index 54590f55a3..724602009a 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -256,8 +256,7 @@ void Foam::kineticTheoryModel::solve() /(alpha*rhoa_*sqrtPi*(ThetaSqrt + TsmallSqrt)); // bulk viscosity p. 45 (Lun et al. 1984). - volScalarField lambda_ = - (4.0/3.0)*sqr(alpha_)*rhoa_*da_*gs0_*(1.0+e_)*ThetaSqrt/sqrtPi; + lambda_ = (4.0/3.0)*sqr(alpha_)*rhoa_*da_*gs0_*(1.0+e_)*ThetaSqrt/sqrtPi; // stress tensor, Definitions, Table 3.1, p. 43 diff --git a/applications/utilities/mesh/conversion/Optional/Allwmake b/applications/utilities/mesh/conversion/Optional/Allwmake index 31617e3b12..ca1fbac090 100755 --- a/applications/utilities/mesh/conversion/Optional/Allwmake +++ b/applications/utilities/mesh/conversion/Optional/Allwmake @@ -5,15 +5,12 @@ set -x # run from this directory only cd ${0%/*} || exit 1 -# build libccmio if required -if [ ! -e $FOAM_LIBBIN/libccmio.so ] -then +# build libccmio and create lnInclude directory ( cd $WM_THIRD_PARTY_DIR && ./AllwmakeLibccmio ) -fi -# if the library built okay, the headers must exist too +# if the library built okay, the headers should exist too if [ -e $FOAM_LIBBIN/libccmio.so ] then wmake ccm26ToFoam diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C index e337b0d167..e73a5262b9 100644 --- a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C +++ b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C @@ -22,9 +22,29 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +Application + blockMesh + Description A multi-block mesh generator. + Uses the block mesh description found in + @a constant/polyMesh/blockMeshDict + (or @a constant/\/polyMesh/blockMeshDict). + +Usage + + - blockMesh [OPTION] + + @param -blockTopology \n + Write the topology as a set of edges in OBJ format. + + @param -region \ \n + Specify an alternative mesh region. + + @param -dict \ \n + Specify an alternative dictionary for the block mesh description. + \*---------------------------------------------------------------------------*/ #include "Time.H" @@ -60,59 +80,70 @@ int main(int argc, char *argv[]) word regionName; fileName polyMeshDir; + word dictName("blockMeshDict"); + fileName dictPath(runTime.constant()); if (args.options().found("region")) { - regionName = args.options()["region"]; + // constant//polyMesh/blockMeshDict + regionName = args.options()["region"]; polyMeshDir = regionName/polyMesh::meshSubDir; Info<< nl << "Generating mesh for region " << regionName << endl; } else { - regionName = polyMesh::defaultRegion; + // constant/polyMesh/blockMeshDict + regionName = polyMesh::defaultRegion; polyMeshDir = polyMesh::meshSubDir; } - - Info<< nl << "Reading block mesh description dictionary" << endl; - - word dictName("blockMeshDict"); - fileName dictPath(runTime.constant()/polyMeshDir); + fileName dictLocal = polyMeshDir; if (args.options().found("dict")) { - fileName userDict(args.options()["dict"]); + wordList elems(fileName(args.options()["dict"]).components()); + dictName = elems[elems.size()-1]; + dictPath = elems[0]; + dictLocal = ""; - dictName = userDict.name(); - dictPath = userDict.path(); + if (elems.size() == 1) + { + dictPath = "."; + } + else if (elems.size() > 2) + { + dictLocal = fileName(SubList(elems, elems.size()-2, 1)); + } } - IOobject meshDescriptionIOobject + + IOobject meshDictIo ( dictName, dictPath, + dictLocal, runTime, IOobject::MUST_READ, IOobject::NO_WRITE, false ); - if (!meshDescriptionIOobject.headerOk()) + if (!meshDictIo.headerOk()) { FatalErrorIn(args.executable()) - << "Cannot open mesh description file: " << nl - << dictPath/dictName << nl + << "Cannot open mesh description file\n " + << meshDictIo.objectPath() + << nl << exit(FatalError); } - IOdictionary meshDescription(meshDescriptionIOobject); + Info<< nl << "Creating block mesh from\n " + << meshDictIo.objectPath() << endl; + IOdictionary meshDict(meshDictIo); - Info<< nl << "Creating block mesh" << endl; - - blockMesh blocks(meshDescription); - + blockMesh blocks(meshDict); if (writeTopo) { @@ -169,7 +200,7 @@ int main(int argc, char *argv[]) ( runTime, runTime.constant(), - polyMeshDir, //polyMesh::meshSubDir + polyMeshDir, patchNames, patchTypes, defaultFacesName, @@ -197,11 +228,11 @@ int main(int argc, char *argv[]) // Read in a list of dictionaries for the merge patch pairs - if (meshDescription.found("mergePatchPairs")) + if (meshDict.found("mergePatchPairs")) { List > mergePatchPairs ( - meshDescription.lookup("mergePatchPairs") + meshDict.lookup("mergePatchPairs") ); if (mergePatchPairs.size()) diff --git a/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C b/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C index 0335cf3abc..bcd1c5c9ce 100644 --- a/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C +++ b/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C @@ -275,6 +275,12 @@ void Foam::mergePolyMesh::addMesh(const polyMesh& m) patchIndices[patchI] = patchIndex(bm[patchI]); } + // Temporary: update number of allowable patches. This should be + // determined at the top - before adding anything. + meshMod_.setNumPatches(patchNames_.size()); + + + const faceZoneMesh& fz = m.faceZones(); labelList faceZoneIndices(fz.size()); diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict index c7317b464f..7ece22c5ae 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict +++ b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict @@ -58,4 +58,15 @@ manualCoeffs dataFile "decompositionData"; } + +//// Is the case distributred +//distributed yes; +//// Per slave (so nProcs-1 entries) the directory above the case. +//roots +//( +// "/tmp" +// "/tmp" +//); + + // ************************************************************************* // diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean b/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean index 0993c14cee..206ee02089 100755 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean @@ -1,7 +1,5 @@ #!/bin/sh set -x -rm -r PV3FoamReader/Make - +rm -rf PV3FoamReader/Make wclean libso vtkPV3Foam - diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.xml b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.xml index 41b44048d9..123c736f54 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.xml +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.xml @@ -1,6 +1,6 @@ + file_description="OpenFOAM Reader"> diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml index c097562a53..07620fd849 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml @@ -31,26 +31,6 @@ - - - - - - - - - - - - + + + -PV3FOAM_TIMESELECTION ---> + + + + diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx index 3e576a77db..81885deee7 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx @@ -21,32 +21,19 @@ // VTK includes #include "vtkCallbackCommand.h" -#include "vtkCellArray.h" -#include "vtkCellData.h" #include "vtkDataArraySelection.h" -#include "vtkDirectory.h" -#include "vtkDoubleArray.h" -#include "vtkErrorCode.h" -#include "vtkFloatArray.h" #include "vtkInformation.h" #include "vtkInformationVector.h" -#include "vtkIntArray.h" #include "vtkMultiBlockDataSet.h" #include "vtkObjectFactory.h" -#include "vtkPoints.h" -#include "vtkRenderer.h" #include "vtkSMRenderViewProxy.h" #include "vtkStreamingDemandDrivenPipeline.h" #include "vtkStringArray.h" -#include "vtkUnstructuredGrid.h" -#include "vtkUnstructuredGridAlgorithm.h" -#include "vtkAlgorithmOutput.h" -#include "vtkMultiBlockDataSet.h" // Foam includes #include "vtkPV3Foam.H" -vtkCxxRevisionMacro(vtkPV3FoamReader, "$Revision: 1.2$"); +vtkCxxRevisionMacro(vtkPV3FoamReader, "$Revision: 1.5$"); vtkStandardNewMacro(vtkPV3FoamReader); @@ -60,17 +47,22 @@ vtkPV3FoamReader::vtkPV3FoamReader() FileName = NULL; foamData_ = NULL; - CacheMesh = 0; + output1_ = NULL; - UpdateGUI = 1; - UpdateGUIOld = 1; TimeStep = 0; TimeStepRange[0] = 0; TimeStepRange[1] = 0; + CacheMesh = 0; + + ExtrapolateWalls = 0; + IncludeSets = 0; + IncludeZones = 0; ShowPatchNames = 0; - TimeSelection = vtkDataArraySelection::New(); + UpdateGUI = 1; + UpdateGUIOld = 1; + RegionSelection = vtkDataArraySelection::New(); VolFieldSelection = vtkDataArraySelection::New(); PointFieldSelection = vtkDataArraySelection::New(); @@ -85,11 +77,6 @@ vtkPV3FoamReader::vtkPV3FoamReader() ); SelectionObserver->SetClientData(this); - TimeSelection->AddObserver - ( - vtkCommand::ModifiedEvent, - this->SelectionObserver - ); RegionSelection->AddObserver ( vtkCommand::ModifiedEvent, @@ -112,6 +99,7 @@ vtkPV3FoamReader::vtkPV3FoamReader() ); } + vtkPV3FoamReader::~vtkPV3FoamReader() { vtkDebugMacro(<<"Deconstructor"); @@ -126,7 +114,6 @@ vtkPV3FoamReader::~vtkPV3FoamReader() delete [] FileName; } - TimeSelection->RemoveObserver(this->SelectionObserver); RegionSelection->RemoveObserver(this->SelectionObserver); VolFieldSelection->RemoveObserver(this->SelectionObserver); PointFieldSelection->RemoveObserver(this->SelectionObserver); @@ -134,7 +121,6 @@ vtkPV3FoamReader::~vtkPV3FoamReader() SelectionObserver->Delete(); - TimeSelection->Delete(); RegionSelection->Delete(); VolFieldSelection->Delete(); PointFieldSelection->Delete(); @@ -152,7 +138,6 @@ int vtkPV3FoamReader::RequestInformation { vtkDebugMacro(<<"RequestInformation"); - if (Foam::vtkPV3Foam::debug) { cout<<"REQUEST_INFORMATION\n"; @@ -164,38 +149,6 @@ int vtkPV3FoamReader::RequestInformation return 0; } - if (Foam::vtkPV3Foam::debug) - { - vtkInformation* outputInfo = this->GetOutputPortInformation(0); - - vtkMultiBlockDataSet* output = vtkMultiBlockDataSet::SafeDownCast - ( - outputInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) - ); - - outputInfo->Print(cout); - if (output) - { - output->Print(cout); - } - else - { - cout << "no output\n"; - } - - this->GetExecutive()->GetOutputInformation(0)->Print(cout); - - int nInfo = outputVector->GetNumberOfInformationObjects(); - - cout<< "requestInfo with " << nInfo << " items:\n"; - - for (int i=0; iGetInformationObject(i); - info->Print(cout); - } - } - vtkInformation *outInfo = outputVector->GetInformationObject(0); if (!foamData_) @@ -205,17 +158,22 @@ int vtkPV3FoamReader::RequestInformation ( outInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - foamData_ = new Foam::vtkPV3Foam(FileName, this, output); - foamData_->UpdateInformation(); + + if (Foam::vtkPV3Foam::debug) + { + cout<< "constructed vtkPV3Foam with output: "; + output->Print(cout); + } + + foamData_ = new Foam::vtkPV3Foam(FileName, this); } else { - vtkDebugMacro("RequestInformation: updating information"); foamData_->UpdateInformation(); } int nTimeSteps = 0; - double* timeSteps = foamData_->timeSteps(nTimeSteps); + double* timeSteps = foamData_->findTimes(nTimeSteps); outInfo->Set ( @@ -230,7 +188,7 @@ int vtkPV3FoamReader::RequestInformation timeRange[0] = timeSteps[0]; timeRange[1] = timeSteps[nTimeSteps-1]; - if (Foam::vtkPV3Foam::debug) + if (Foam::vtkPV3Foam::debug > 1) { cout<<"nTimeSteps " << nTimeSteps << "\n"; cout<<"timeRange " << timeRange[0] << " to " << timeRange[1] << "\n"; @@ -271,20 +229,15 @@ int vtkPV3FoamReader::RequestData return 0; } + if (Foam::vtkPV3Foam::debug) { int nInfo = outputVector->GetNumberOfInformationObjects(); - if (Foam::vtkPV3Foam::debug) - { - cout<<"requestData with " << nInfo << " items\n"; - } - for (int i=0; iGetInformationObject(i); - - if (Foam::vtkPV3Foam::debug) - { - info->Print(cout); - } + info->Print(cout); } } @@ -330,7 +283,7 @@ int vtkPV3FoamReader::RequestData } else { - cout << "no data_object\n"; + cout<< "no data_object\n"; } } @@ -423,91 +376,29 @@ void vtkPV3FoamReader::removePatchNamesFromView() } -void vtkPV3FoamReader::PrintSelf -( - ostream& os, - vtkIndent indent -) +void vtkPV3FoamReader::PrintSelf(ostream& os, vtkIndent indent) { vtkDebugMacro(<<"PrintSelf"); this->Superclass::PrintSelf(os,indent); os<< indent << "File name: " << (this->FileName ? this->FileName : "(none)") << "\n"; - os<< indent << "Number of meshes: " << foamData_->numberOfMeshes() << "\n"; - os<< indent << "Number of nodes: " << foamData_->numberOfPoints() << "\n"; - os<< indent << "Number of cells: " << foamData_->numberOfCells() << "\n"; - os<< indent << "Number of available time steps: " << foamData_->numberOfAvailableTimes() - << endl; + + foamData_->PrintSelf(os, indent); + os<< indent << "Time step range: " << this->TimeStepRange[0] << " - " << this->TimeStepRange[1] - << endl; + << "\n"; os<< indent << "Time step: " << this->TimeStep << endl; - return; } -vtkDataArraySelection* vtkPV3FoamReader::GetTimeSelection() -{ - vtkDebugMacro(<<"GetTimeSelection"); - - return TimeSelection; -} - - -int vtkPV3FoamReader::GetNumberOfTimeArrays() -{ - vtkDebugMacro(<<"GetNumberOf TimeArrays"); - - return TimeSelection->GetNumberOfArrays(); -} - - -const char* vtkPV3FoamReader::GetTimeArrayName -( - int index -) -{ - vtkDebugMacro(<<"GetTimeArrayName"); - - return TimeSelection->GetArrayName(index); -} - - -int vtkPV3FoamReader::GetTimeArrayStatus -( - const char* name -) -{ - vtkDebugMacro(<<"GetTimeArrayStatus"); - - return TimeSelection->ArrayIsEnabled(name); -} - - -void vtkPV3FoamReader::SetTimeArrayStatus -( - const char* name, - int status -) -{ - vtkDebugMacro(<<"SetTimeArrayStatus"); - - if (status) - { - TimeSelection->EnableArray(name); - } - else - { - TimeSelection->DisableArray(name); - } -} - +// ---------------------------------------------------------------------- +// Region selection list control vtkDataArraySelection* vtkPV3FoamReader::GetRegionSelection() { vtkDebugMacro(<<"GetRegionSelection"); - return RegionSelection; } @@ -515,42 +406,29 @@ vtkDataArraySelection* vtkPV3FoamReader::GetRegionSelection() int vtkPV3FoamReader::GetNumberOfRegionArrays() { vtkDebugMacro(<<"GetNumberOfRegionArrays"); - return RegionSelection->GetNumberOfArrays(); } -const char* vtkPV3FoamReader::GetRegionArrayName -( - int index -) +const char* vtkPV3FoamReader::GetRegionArrayName(int index) { vtkDebugMacro(<<"GetRegionArrayName"); - return RegionSelection->GetArrayName(index); } -int vtkPV3FoamReader::GetRegionArrayStatus -( - const char* name -) +int vtkPV3FoamReader::GetRegionArrayStatus(const char* name) { vtkDebugMacro(<<"GetRegionArrayStatus"); - return RegionSelection->ArrayIsEnabled(name); } -void vtkPV3FoamReader::SetRegionArrayStatus -( - const char* name, - int status -) +void vtkPV3FoamReader::SetRegionArrayStatus(const char* name, int status) { vtkDebugMacro(<<"SetRegionArrayStatus"); - if(status) + if (status) { RegionSelection->EnableArray(name); } @@ -561,10 +439,12 @@ void vtkPV3FoamReader::SetRegionArrayStatus } +// ---------------------------------------------------------------------- +// volField selection list control + vtkDataArraySelection* vtkPV3FoamReader::GetVolFieldSelection() { vtkDebugMacro(<<"GetVolFieldSelection"); - return VolFieldSelection; } @@ -572,41 +452,27 @@ vtkDataArraySelection* vtkPV3FoamReader::GetVolFieldSelection() int vtkPV3FoamReader::GetNumberOfVolFieldArrays() { vtkDebugMacro(<<"GetNumberOfVolFieldArrays"); - return VolFieldSelection->GetNumberOfArrays(); } -const char* vtkPV3FoamReader::GetVolFieldArrayName -( - int index -) +const char* vtkPV3FoamReader::GetVolFieldArrayName(int index) { vtkDebugMacro(<<"GetVolFieldArrayName"); - return VolFieldSelection->GetArrayName(index); } -int vtkPV3FoamReader::GetVolFieldArrayStatus -( - const char* name -) +int vtkPV3FoamReader::GetVolFieldArrayStatus(const char* name) { vtkDebugMacro(<<"GetVolFieldArrayStatus"); - return VolFieldSelection->ArrayIsEnabled(name); } -void vtkPV3FoamReader::SetVolFieldArrayStatus -( - const char* name, - int status -) +void vtkPV3FoamReader::SetVolFieldArrayStatus(const char* name, int status) { vtkDebugMacro(<<"SetVolFieldArrayStatus"); - if (status) { VolFieldSelection->EnableArray(name); @@ -618,10 +484,12 @@ void vtkPV3FoamReader::SetVolFieldArrayStatus } +// ---------------------------------------------------------------------- +// pointField selection list control + vtkDataArraySelection* vtkPV3FoamReader::GetPointFieldSelection() { vtkDebugMacro(<<"GetPointFieldSelection"); - return PointFieldSelection; } @@ -629,41 +497,27 @@ vtkDataArraySelection* vtkPV3FoamReader::GetPointFieldSelection() int vtkPV3FoamReader::GetNumberOfPointFieldArrays() { vtkDebugMacro(<<"GetNumberOfPointFieldArrays"); - return PointFieldSelection->GetNumberOfArrays(); } -const char* vtkPV3FoamReader::GetPointFieldArrayName -( - int index -) +const char* vtkPV3FoamReader::GetPointFieldArrayName(int index) { vtkDebugMacro(<<"GetPointFieldArrayName"); - return PointFieldSelection->GetArrayName(index); } -int vtkPV3FoamReader::GetPointFieldArrayStatus -( - const char* name -) +int vtkPV3FoamReader::GetPointFieldArrayStatus(const char* name) { vtkDebugMacro(<<"GetPointFieldArrayStatus"); - return PointFieldSelection->ArrayIsEnabled(name); } -void vtkPV3FoamReader::SetPointFieldArrayStatus -( - const char* name, - int status -) +void vtkPV3FoamReader::SetPointFieldArrayStatus(const char* name, int status) { vtkDebugMacro(<<"SetPointFieldArrayStatus"); - if (status) { PointFieldSelection->EnableArray(name); @@ -675,10 +529,12 @@ void vtkPV3FoamReader::SetPointFieldArrayStatus } +// ---------------------------------------------------------------------- +// lagrangianField selection list control + vtkDataArraySelection* vtkPV3FoamReader::GetLagrangianFieldSelection() { vtkDebugMacro(<<"GetLagrangianFieldSelection"); - return LagrangianFieldSelection; } @@ -686,29 +542,20 @@ vtkDataArraySelection* vtkPV3FoamReader::GetLagrangianFieldSelection() int vtkPV3FoamReader::GetNumberOfLagrangianFieldArrays() { vtkDebugMacro(<<"GetNumberOfLagrangianFieldArrays"); - return LagrangianFieldSelection->GetNumberOfArrays(); } -const char* vtkPV3FoamReader::GetLagrangianFieldArrayName -( - int index -) +const char* vtkPV3FoamReader::GetLagrangianFieldArrayName(int index) { vtkDebugMacro(<<"GetLagrangianFieldArrayName"); - return LagrangianFieldSelection->GetArrayName(index); } -int vtkPV3FoamReader::GetLagrangianFieldArrayStatus -( - const char* name -) +int vtkPV3FoamReader::GetLagrangianFieldArrayStatus(const char* name) { vtkDebugMacro(<<"GetLagrangianFieldArrayStatus"); - return LagrangianFieldSelection->ArrayIsEnabled(name); } @@ -720,7 +567,6 @@ void vtkPV3FoamReader::SetLagrangianFieldArrayStatus ) { vtkDebugMacro(<<"SetLagrangianFieldArrayStatus"); - if (status) { LagrangianFieldSelection->EnableArray(name); @@ -731,6 +577,7 @@ void vtkPV3FoamReader::SetLagrangianFieldArrayStatus } } +// ---------------------------------------------------------------------- void vtkPV3FoamReader::SelectionModifiedCallback ( @@ -747,7 +594,7 @@ void vtkPV3FoamReader::SelectionModifiedCallback void vtkPV3FoamReader::SelectionModified() { vtkDebugMacro(<<"SelectionModified"); - Modified(); } +// ************************************************************************* // diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h index 9e64260f81..8611884b51 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h @@ -14,11 +14,9 @@ =========================================================================*/ // .NAME vtkPV3FoamReader - reads a dataset in OpenFOAM format // .SECTION Description -// vtkPV3FoamReader creates an multiblock dataset. It reads a controlDict -// file, mesh information, and time dependent data. The controlDict file -// contains timestep information. The polyMesh folders contain mesh information -// The time folders contain transient data for the cells Each folder can -// contain any number of data files. +// vtkPV3FoamReader creates an multiblock dataset. +// It uses the OpenFOAM infrastructure (fvMesh, etc) to +// handle mesh and field data. #ifndef __vtkPV3FoamReader_h #define __vtkPV3FoamReader_h @@ -66,6 +64,13 @@ public: vtkSetStringMacro(FileName); vtkGetStringMacro(FileName); + // Time control + // Set/Get the timestep and the timestep range + vtkSetMacro(TimeStep, int); + vtkGetMacro(TimeStep, int); + vtkSetVector2Macro(TimeStepRange, int); + vtkGetVector2Macro(TimeStepRange, int); + // GUI update control vtkSetMacro(UpdateGUI, int); vtkGetMacro(UpdateGUI, int); @@ -86,24 +91,10 @@ public: vtkSetMacro(IncludeZones, int); vtkGetMacro(IncludeZones, int); - // FOAM patch names control + // FOAM display patch names control vtkSetMacro(ShowPatchNames, int); vtkGetMacro(ShowPatchNames, int); - // Time-step slider control - vtkSetMacro(TimeStep, int); - vtkGetMacro(TimeStep, int); - vtkSetVector2Macro(TimeStepRange, int); - vtkGetVector2Macro(TimeStepRange, int); - - // Time selection list control - vtkDataArraySelection* GetTimeSelection(); - int GetNumberOfTimeArrays(); - const char* GetTimeArrayName(int index); - int GetTimeArrayStatus(const char* name); - void SetTimeArrayStatus(const char* name, int status); - - // Region selection list control vtkDataArraySelection* GetRegionSelection(); int GetNumberOfRegionArrays(); @@ -121,16 +112,16 @@ public: // pointField selection list control vtkDataArraySelection* GetPointFieldSelection(); int GetNumberOfPointFieldArrays(); - const char* GetPointFieldArrayName(int index); int GetPointFieldArrayStatus(const char* name); void SetPointFieldArrayStatus(const char* name, int status); + const char* GetPointFieldArrayName(int index); // lagrangianField selection list control vtkDataArraySelection* GetLagrangianFieldSelection(); int GetNumberOfLagrangianFieldArrays(); - const char* GetLagrangianFieldArrayName(int index); int GetLagrangianFieldArrayStatus(const char* name); void SetLagrangianFieldArrayStatus(const char* name, int status); + const char* GetLagrangianFieldArrayName(int index); // Callback registered with the SelectionObserver // for all the selection lists @@ -182,7 +173,11 @@ private: //- Remove patch names from the view void removePatchNamesFromView(); + int TimeStep; + int TimeStepRange[2]; + int CacheMesh; + int ExtrapolateWalls; int IncludeSets; int IncludeZones; @@ -190,18 +185,22 @@ private: int UpdateGUI; int UpdateGUIOld; - int TimeStep; - int TimeStepRange[2]; - vtkDataArraySelection* TimeSelection; vtkDataArraySelection* RegionSelection; vtkDataArraySelection* VolFieldSelection; vtkDataArraySelection* PointFieldSelection; vtkDataArraySelection* LagrangianFieldSelection; + //- Access to the output port1 + vtkMultiBlockDataSet* output1_; + //BTX Foam::vtkPV3Foam* foamData_; //ETX }; +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif + +// ************************************************************************* // diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/files b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/files index ba65793d66..0a5e64ddf1 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/files +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/files @@ -2,10 +2,8 @@ vtkPV3Foam.C vtkPV3FoamAddVolumeMesh.C vtkPV3FoamAddLagrangianMesh.C vtkPV3FoamAddPatchMesh.C -vtkPV3FoamAddFaceZoneMesh.C -vtkPV3FoamAddPointZoneMesh.C -vtkPV3FoamAddFaceSetMesh.C -vtkPV3FoamAddPointSetMesh.C +vtkPV3FoamAddZoneMesh.C +vtkPV3FoamAddSetMesh.C vtkPV3FoamUpdate.C vtkPV3FoamUpdateInformation.C vtkPV3FoamConvertMesh.C diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/options b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/options index 2cebe55112..b40ecb51d7 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/options +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/options @@ -1,5 +1,4 @@ EXE_INC = \ - /* -DPV3FOAM_TIMESELECTION */ \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C index 7699e94cf2..8af700450c 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C @@ -32,6 +32,7 @@ License #include "IOobjectList.H" #include "patchZones.H" #include "vtkPV3FoamReader.h" +#include "IFstream.H" // VTK includes #include "vtkCharArray.h" @@ -52,7 +53,7 @@ defineTypeNameAndDebug(Foam::vtkPV3Foam, 0); // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -#include "vtkPV3FoamAddFields.H" +#include "vtkPV3FoamAddToSelection.H" #include "vtkPV3FoamUpdateInformationFields.H" @@ -172,38 +173,6 @@ void Foam::vtkPV3Foam::resetCounters() } -void Foam::vtkPV3Foam::initializeTime() -{ -#ifdef PV3FOAM_TIMESELECTION - Time& runTime = dbPtr_(); - - // Get times list - instantList times = runTime.times(); - - vtkDataArraySelection* arraySelection = reader_->GetTimeSelection(); - - // only execute this if there is a mismatch between - // the times available according to FOAM and according to VTK - int nArrays = arraySelection->GetNumberOfArrays(); - - if (nArrays && nArrays == times.size() - 1) - { - return; - } - - // "constant" is implicit - skip it - // All the time selections are enabled by default - for (label timeI = 1; timeI < times.size(); ++timeI) - { - arraySelection->AddArray - ( - times[timeI].name().c_str() - ); - } -#endif /* PV3FOAM_TIMESELECTION */ -} - - bool Foam::vtkPV3Foam::setTime(const double& requestedTime) { if (debug) @@ -215,24 +184,10 @@ bool Foam::vtkPV3Foam::setTime(const double& requestedTime) Time& runTime = dbPtr_(); // Get times list - instantList times = runTime.times(); + instantList Times = runTime.times(); - // logic as per "checkTimeOption.H" bool found = false; - int nearestIndex = -1; - scalar nearestDiff = Foam::GREAT; - - forAll (times, timeIndex) - { - if (times[timeIndex].name() == "constant") continue; - - scalar diff = fabs(times[timeIndex].value() - requestedTime); - if (diff < nearestDiff) - { - nearestDiff = diff; - nearestIndex = timeIndex; - } - } + int nearestIndex = Time::findClosestTimeIndex(Times, requestedTime); if (nearestIndex == -1) { @@ -244,12 +199,36 @@ bool Foam::vtkPV3Foam::setTime(const double& requestedTime) found = true; } - runTime.setTime(times[nearestIndex], nearestIndex); + // see what has changed + if (timeIndex_ != nearestIndex) + { + timeIndex_ = nearestIndex; + runTime.setTime(Times[nearestIndex], nearestIndex); + + // the fields change each time + fieldsChanged_ = true; + + if (meshPtr_) + { + if (meshPtr_->readUpdate() != polyMesh::UNCHANGED) + { + meshChanged_ = true; + // patches, zones etc might have changed + UpdateInformation(); + } + } + else + { + meshChanged_ = true; + } + } if (debug) { Info<< " Foam::vtkPV3Foam::setTime() - selected time " - << times[nearestIndex].name() << endl; + << Times[nearestIndex].name() << " index=" << nearestIndex + << " meshChanged=" << meshChanged_ + << " fieldsChanged=" << fieldsChanged_ << endl; } return found; @@ -265,15 +244,28 @@ void Foam::vtkPV3Foam::updateSelectedRegions() vtkDataArraySelection* arraySelection = reader_->GetRegionSelection(); - const label nRegions = arraySelection->GetNumberOfArrays(); + const label nSelect = arraySelection->GetNumberOfArrays(); - selectedRegions_.setSize(nRegions); - selectedRegionDatasetIds_.setSize(nRegions); - - // Read the selected patches and add to the region list - for (int regionId=0; regionId < nRegions; ++regionId) + if (selectedRegions_.size() != nSelect) { - selectedRegions_[regionId] = arraySelection->GetArraySetting(regionId); + selectedRegions_.setSize(nSelect); + selectedRegions_ = 0; + meshChanged_ = true; + } + + selectedRegionDatasetIds_.setSize(nSelect); + + // Read the selected cell regions, zones, patches and add to region list + forAll (selectedRegions_, regionId) + { + int setting = arraySelection->GetArraySetting(regionId); + + if (selectedRegions_[regionId] != setting) + { + selectedRegions_[regionId] = setting; + meshChanged_ = true; + } + selectedRegionDatasetIds_[regionId] = -1; if (debug) @@ -301,7 +293,13 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries if (debug) { - Info << "selections("; + Info<< "available("; + forAll (selections, elemI) + { + Info<< " \"" << arraySelection->GetArrayName(elemI) << "\""; + } + Info<< " )\n" + << "selected("; } forAll (selections, elemI) @@ -322,7 +320,7 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries if (debug) { - Info << " " << selections[nElem]; + Info<< " " << selections[nElem]; } ++nElem; @@ -331,7 +329,7 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries if (debug) { - Info << " )" << endl; + Info<< " )" << endl; } selections.setSize(nElem); @@ -351,33 +349,45 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries if (debug) { - Info << "selections("; + Info<< "available("; + for + ( + int elemI = selector.start(); + elemI < selector.end(); + ++elemI + ) + { + Info<< " \"" << arraySelection->GetArrayName(elemI) << "\""; + } + + Info<< " )\n" + << "selected("; } for ( - int regionId = selector.start(); - regionId < selector.end(); - ++regionId + int elemI = selector.start(); + elemI < selector.end(); + ++elemI ) { - if (arraySelection->GetArraySetting(regionId)) + if (arraySelection->GetArraySetting(elemI)) { if (firstWord) { selections[nElem] = getFirstWord ( - arraySelection->GetArrayName(regionId) + arraySelection->GetArrayName(elemI) ); } else { - selections[nElem] = arraySelection->GetArrayName(regionId); + selections[nElem] = arraySelection->GetArrayName(elemI); } if (debug) { - Info << " " << selections[nElem]; + Info<< " " << selections[nElem]; } ++nElem; @@ -386,10 +396,9 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries if (debug) { - Info << " )" << endl; + Info<< " )" << endl; } - selections.setSize(nElem); return selections; } @@ -432,10 +441,7 @@ void Foam::vtkPV3Foam::setSelectedArrayEntries << endl; } - arraySelection->EnableArray - ( - arrayName.c_str() - ); + arraySelection->EnableArray(arrayName.c_str()); break; } } @@ -452,12 +458,10 @@ void Foam::vtkPV3Foam::setSelectedArrayEntries Foam::vtkPV3Foam::vtkPV3Foam ( const char* const FileName, - vtkPV3FoamReader* reader, - vtkMultiBlockDataSet* output + vtkPV3FoamReader* reader ) : reader_(reader), - output_(output), dbPtr_(NULL), meshPtr_(NULL), selectInfoVolume_(VOLUME, "unzoned"), @@ -470,11 +474,15 @@ Foam::vtkPV3Foam::vtkPV3Foam selectInfoFaceSets_(FACESET, "faceSet"), selectInfoPointSets_(POINTSET, "pointSet"), patchTextActorsPtrs_(0), - nMesh_(0) + nMesh_(0), + timeIndex_(-1), + meshChanged_(true), + fieldsChanged_(true) { if (debug) { Info<< "Foam::vtkPV3Foam::vtkPV3Foam - " << FileName << endl; + printMemory(); } // avoid argList and get rootPath/caseName directly from the file @@ -518,17 +526,11 @@ Foam::vtkPV3Foam::vtkPV3Foam dbPtr_().functionObjects().off(); - if (debug) - { - cout<< "constructed with output: "; - output_->Print(cout); - } - - resetCounters(); - // Set initial cloud name // TODO - TEMPORARY MEASURE UNTIL CAN PROCESS MULTIPLE CLOUDS cloudName_ = ""; + + UpdateInformation(); } @@ -555,27 +557,37 @@ void Foam::vtkPV3Foam::UpdateInformation() { if (debug) { - Info<< " Foam::vtkPV3Foam::UpdateInformation - " - << "TimeStep = " << reader_->GetTimeStep() << endl; + Info<< " Foam::vtkPV3Foam::UpdateInformation" + << " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "] TimeStep=" + << reader_->GetTimeStep() << endl; } resetCounters(); - // preserve the currently selected values - const stringList selectedEntries = getSelectedArrayEntries - ( - reader_->GetRegionSelection() - ); - // Clear current region list/array - reader_->GetRegionSelection()->RemoveAllArrays(); + vtkDataArraySelection* arraySelection = reader_->GetRegionSelection(); - initializeTime(); + stringList selectedEntries; + // enable 'internalMesh' on the first call + if (arraySelection->GetNumberOfArrays() == 0 && !meshPtr_) + { + selectedEntries.setSize(1); + selectedEntries[0] = "internalMesh"; + } + else + { + // preserve the currently selected values + selectedEntries = getSelectedArrayEntries + ( + arraySelection + ); + } + + // Clear current region list/array + arraySelection->RemoveAllArrays(); // Update region array updateInformationInternalMesh(); - updateInformationLagrangian(); - updateInformationPatches(); if (reader_->GetIncludeSets()) @@ -588,13 +600,18 @@ void Foam::vtkPV3Foam::UpdateInformation() updateInformationZones(); } - // Update region selection with the data just read in + // restore the currently enabled values setSelectedArrayEntries ( - reader_->GetRegionSelection(), + arraySelection, selectedEntries ); + if (meshChanged_) + { + fieldsChanged_ = true; + } + // Update volField array updateInformationFields ( @@ -630,24 +647,24 @@ void Foam::vtkPV3Foam::Update output->Print(cout); cout<<"Internally:\n"; - output_->Print(cout); + output->Print(cout); - cout<< " has " << output_->GetNumberOfBlocks() << " blocks\n"; + cout<< " has " << output->GetNumberOfBlocks() << " blocks\n"; + printMemory(); } - // Set up region selection(s) updateSelectedRegions(); // Update the Foam mesh updateFoamMesh(); + reader_->UpdateProgress(0.2); // Convert meshes convertMeshVolume(output); - convertMeshLagrangian(output); - convertMeshPatches(output); + reader_->UpdateProgress(0.4); if (reader_->GetIncludeZones()) { @@ -658,17 +675,17 @@ void Foam::vtkPV3Foam::Update if (reader_->GetIncludeSets()) { - convertMeshCellSet(output); - convertMeshFaceSet(output); - convertMeshPointSet(output); + convertMeshCellSets(output); + convertMeshFaceSets(output); + convertMeshPointSets(output); } + reader_->UpdateProgress(0.8); // Update fields updateVolFields(output); - updatePointFields(output); - updateLagrangianFields(output); + reader_->UpdateProgress(1.0); if (debug) { @@ -693,90 +710,32 @@ void Foam::vtkPV3Foam::Update << GetNumberOfDataSets(output, selectInfoPointSets_) << nl; // traverse blocks: - - int nBlocks = output->GetNumberOfBlocks(); - Info << "nBlocks = " << nBlocks << endl; - + cout<< "nBlocks = " << output->GetNumberOfBlocks() << "\n"; cout<< "done Update\n"; - output_->Print(cout); - cout<< " has " << output_->GetNumberOfBlocks() << " blocks\n"; - output_->GetInformation()->Print(cout); + output->Print(cout); + cout<< " has " << output->GetNumberOfBlocks() << " blocks\n"; + output->GetInformation()->Print(cout); - cout <<"ShouldIReleaseData :" << output_->ShouldIReleaseData() << "\n"; + cout<<"ShouldIReleaseData :" << output->ShouldIReleaseData() << "\n"; + printMemory(); } + + meshChanged_ = fieldsChanged_ = false; } -double* Foam::vtkPV3Foam::timeSteps(int& nTimeSteps) +double* Foam::vtkPV3Foam::findTimes(int& nTimeSteps) { int nTimes = 0; - double* ts = NULL; + double* tsteps = NULL; if (dbPtr_.valid()) { Time& runTime = dbPtr_(); + instantList timeLst = runTime.times(); - instantList times = runTime.times(); - -#ifdef PV3FOAM_TIMESELECTION - List selected = List(times.size(), false); - - vtkDataArraySelection* arraySelection = reader_->GetTimeSelection(); - const label nSelectedTimes = arraySelection->GetNumberOfArrays(); - - for (int i = 0; i < nSelectedTimes; ++i) - { - // always skip "constant" time - const int timeI = i + 1; - if - ( - arraySelection->GetArraySetting(i) - && timeI < times.size() - ) - { - if (debug > 1) - { - Info<<"timeSelection[" - << i - <<"] = " - << arraySelection->GetArraySetting(i) - << " is " - << arraySelection->GetArrayName(i) << endl; - } - selected[timeI] = true; - ++nTimes; - } - } - - if (debug > 1) - { - Info<< "selected " << nTimes << " times "; - Info<< "found " << times.size() << " times: ("; - forAll(times, timeI) - { - Info<< " " << times[timeI].value(); - } - Info<< " )" << endl; - } - - if (nTimes) - { - ts = new double[nTimes]; - int stepI = 0; - - forAll(selected, selectI) - { - if (selected[selectI]) - { - ts[stepI] = times[selectI].value(); - stepI++; - } - } - } - -#else /* PV3FOAM_TIMESELECTION */ // always skip "constant" time, unless there are no other times - nTimes = times.size(); + nTimes = timeLst.size(); label timeI = 0; if (nTimes > 1) @@ -787,26 +746,25 @@ double* Foam::vtkPV3Foam::timeSteps(int& nTimeSteps) if (nTimes) { - ts = new double[nTimes]; + tsteps = new double[nTimes]; for (label stepI = 0; stepI < nTimes; ++stepI, ++timeI) { - ts[stepI] = times[timeI].value(); + tsteps[stepI] = timeLst[timeI].value(); } } -#endif /* PV3FOAM_TIMESELECTION */ } else { if (debug) { - Info<< "no valid dbPtr:" < Foam::vtkPV3Foam::addPatchNames" << endl; } - const fvMesh& mesh = *meshPtr_; - const polyBoundaryMesh& pbMesh = mesh.boundaryMesh(); + const polyBoundaryMesh& pbMesh = meshPtr_->boundaryMesh(); const selectionInfo& selector = selectInfoPatches_; @@ -835,7 +792,7 @@ void Foam::vtkPV3Foam::addPatchNames(vtkRenderer* renderer) if (debug) { - Info<<"... add patches: " << selectedPatches <nPoints() : 0) << "\n"; + + os << indent << "Number of cells: " + << (meshPtr_ ? meshPtr_->nCells() : 0) << "\n"; + + os << indent << "Number of available time steps: " + << (dbPtr_.valid() ? dbPtr_().times().size() : 0) << endl; } -int Foam::vtkPV3Foam::numberOfPoints() +// parse these bits of info from /proc/meminfo (Linux) +// +// MemTotal: 2062660 kB +// MemFree: 1124400 kB +// +// used = MemTotal - MemFree is what the free(1) uses. +// +void Foam::vtkPV3Foam::printMemory() { - if (meshPtr_) + const char* meminfo = "/proc/meminfo"; + + if (exists(meminfo)) { - return meshPtr_->nPoints(); - } - else - { - return 0; + IFstream is(meminfo); + label memTotal = 0; + label memFree = 0; + + string line; + + while (is.getLine(line).good()) + { + char tag[32]; + int value; + + if (sscanf(line.c_str(), "%30s %d", tag, &value) == 2) + { + if (!strcmp(tag, "MemTotal:")) + { + memTotal = value; + } + else if (!strcmp(tag, "MemFree:")) + { + memFree = value; + } + } + } + + Info << "memUsed: " << (memTotal - memFree) << " kB\n"; } } - -int Foam::vtkPV3Foam::numberOfCells() -{ - if (meshPtr_) - { - return meshPtr_->nCells(); - } - { - return 0; - } -} - - -int Foam::vtkPV3Foam::numberOfMeshes() const -{ - return nMesh_; -} - - // ************************************************************************* // diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H index b1b02208b9..0fbed64bfa 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H @@ -29,18 +29,16 @@ Description Provides a reader interface for OpenFOAM to VTK interaction. SourceFiles - interpolatePointToCell.C - interpolatePointToCell.H vtkPV3Foam.C vtkPV3Foam.H - vtkPV3FoamAddFaceSetMesh.C - vtkPV3FoamAddFaceZoneMesh.C - vtkPV3FoamAddFields.H + vtkPV3FoamI.H vtkPV3FoamAddLagrangianMesh.C vtkPV3FoamAddPatchMesh.C - vtkPV3FoamAddPointSetMesh.C - vtkPV3FoamAddPointZoneMesh.C + vtkPV3FoamAddSetMesh.C + vtkPV3FoamAddToSelection.H vtkPV3FoamAddVolumeMesh.C + vtkPV3FoamAddZoneMesh.C + vtkPV3FoamConvertFaceField.H vtkPV3FoamConvertLagrangianFields.H vtkPV3FoamConvertMesh.C vtkPV3FoamConvertPatchFaceField.H @@ -52,7 +50,7 @@ SourceFiles vtkPV3FoamUpdateInformation.C vtkPV3FoamUpdateInformationFields.H - // Needed by VTK? + // Needed by VTK: vtkDataArrayTemplateImplicit.txx \*---------------------------------------------------------------------------*/ @@ -64,19 +62,21 @@ SourceFiles #include "fileName.H" #include "volPointInterpolation.H" #include "stringList.H" +#include "wordList.H" #include "primitivePatch.H" // * * * * * * * * * * * * * Forward Declarations * * * * * * * * * * * * * // class vtkDataArraySelection; class vtkDataSet; -class vtkMultiBlockDataSet; class vtkPoints; class vtkPV3FoamReader; class vtkRenderer; class vtkTextActor; +class vtkMultiBlockDataSet; class vtkPolyData; class vtkUnstructuredGrid; +class vtkIndent; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -196,9 +196,6 @@ private: //- Access to the controlling vtkPV3FoamReader vtkPV3FoamReader* reader_; - //- Access to the output block - vtkMultiBlockDataSet* output_; - //- Foam time control autoPtr