/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2005-2010, 2017-2019 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- | Copyright (C) 2011-2016 OpenFOAM Foundation ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . Class Foam::vtkPVFoam Description The backend for the vtkPVFoamReader reader module - providing a paraview reader interface for OpenFOAM meshes and fields. Similar, and sometimes better, functionality may be provided by the native VTK OpenFOAM reader. OpenCFD has recently (2017) been working on improving the native VTK OpenFOAM reader for the benefit of everyone. In some areas the reader module lacks compared to the native reader (notably the ability to work on decomosed datasets), but provides additional handling of sets,zones,groups. Some features have also since been adapted to the native reader. Additionally, the reader module provides a useful platform for testing new ideas. Note The reader module allows two levels of caching. The OpenFOAM fvMesh can be cached in memory, for faster loading of fields. Additionally, the translated VTK geometries are held in a local cache. The cached VTK geometries should incur no additional overhead since they use the VTK reference counting for their storage management. SourceFiles vtkPVFoam.C vtkPVFoamFields.C vtkPVFoamMesh.C vtkPVFoamMeshLagrangian.C vtkPVFoamMeshVolume.C vtkPVFoamTemplates.C vtkPVFoamUpdateInfo.C vtkPVFoamFieldTemplates.C vtkPVFoamUpdateTemplates.C // Needed by VTK: vtkDataArrayTemplateImplicit.txx \*---------------------------------------------------------------------------*/ #ifndef vtkPVFoam_H #define vtkPVFoam_H #include "className.H" #include "fileName.H" #include "stringList.H" #include "wordList.H" #include "primitivePatch.H" #include "PrimitivePatchInterpolation.H" #include "volPointInterpolation.H" #include "foamPvCore.H" #include "foamVtkVtuAdaptor.H" // * * * * * * * * * * * * * Forward Declarations * * * * * * * * * * * * * // class vtkCellArray; class vtkDataArraySelection; class vtkDataSet; class vtkFloatArray; class vtkIndent; class vtkPVFoamReader; class vtkRenderer; class vtkTextActor; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { // Forward declarations (OpenFOAM) class argList; class Time; class faMesh; class fvMesh; class IOobjectList; class polyPatch; class fvMeshSubset; template class IOField; template class Field; template class List; /*---------------------------------------------------------------------------*\ Class vtkPVFoam Declaration \*---------------------------------------------------------------------------*/ class vtkPVFoam : private foamPvCore { // Convenience typedefs typedef PrimitivePatchInterpolation patchInterpolator; //- Bookkeeping for vtkPolyData struct foamVtpData : public vtk::Caching, public foamVtkMeshMaps {}; //- Bookkeeping for vtkUnstructuredGrid struct foamVtuData : public vtk::vtuAdaptor { //- Subsetted mesh as vtkUnstructuredGrid vtkSmartPointer subset ( const fvMeshSubset& subsetter, bool decompPoly = false ); }; // Private Data //- Access to the controlling vtkPVFoamReader vtkPVFoamReader* reader_; //- OpenFOAM time control autoPtr