VTK
vtkXdmfWriter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkXdmfWriter.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
15
29#ifndef vtkXdmfWriter_h
30#define vtkXdmfWriter_h
31
32#include "vtkIOXdmf2Module.h" // For export macro
33
35
36#include <string> // Needed for private members
37#include <vector> //
38
39class vtkExecutive;
40
42class vtkDataArray;
43class vtkDataSet;
44class vtkDataObject;
45class vtkFieldData;
46class vtkInformation;
48class vtkXdmfWriterDomainMemoryHandler;
49
50namespace xdmf2
51{
52class XdmfArray;
53class XdmfDOM;
54class XdmfElement;
55class XdmfGrid;
56class XdmfGeometry;
57class XdmfTopology;
58}
59
60class VTKIOXDMF2_EXPORT vtkXdmfWriter : public vtkDataObjectAlgorithm
61{
62public:
63 static vtkXdmfWriter *New();
65 void PrintSelf(ostream& os, vtkIndent indent);
66
70 virtual void SetInputData(vtkDataObject* dobj);
71
73
76 vtkSetStringMacro(FileName);
79
81
85 vtkSetStringMacro(HeavyDataFileName);
86 vtkGetStringMacro(HeavyDataFileName);
88
90
94 vtkSetStringMacro(HeavyDataGroupName);
95 vtkGetStringMacro(HeavyDataGroupName);
97
103 virtual int Write();
104
106
111 vtkSetMacro(LightDataLimit, int);
112 vtkGetMacro(LightDataLimit, int);
114
116
121 vtkSetMacro(WriteAllTimeSteps, int);
122 vtkGetMacro(WriteAllTimeSteps, int);
123 vtkBooleanMacro(WriteAllTimeSteps, int);
125
127
133 vtkSetMacro(MeshStaticOverTime, bool);
134 vtkGetMacro(MeshStaticOverTime, bool);
135 vtkBooleanMacro(MeshStaticOverTime, bool);
137
139
143 vtkSetMacro(Piece, int);
144 vtkSetMacro(NumberOfPieces, int);
146
147 //TODO: control choice of heavy data format (xml, hdf5, sql, raw)
148
149 //TODO: These controls are available in vtkXdmfWriter, but are not used here.
150 //GridsOnly
151 //Append to Domain
152
153protected:
156
157 //Choose composite executive by default for time.
159
160 //Can take any one data object
162
163 //Overridden to ...
167 //Overridden to ...
171 //Overridden to ...
175
176 //These do the work: recursively parse down input's structure all the way to arrays,
177 //use XDMF lib to dump everything to file.
178
179 virtual int CreateTopology(vtkDataSet *ds, xdmf2::XdmfGrid *grid, vtkIdType PDims[3], vtkIdType CDims[3], vtkIdType &PRank, vtkIdType &CRank, void *staticdata);
180 virtual int CreateGeometry(vtkDataSet *ds, xdmf2::XdmfGrid *grid, void *staticdata);
181
182 virtual int WriteDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid);
183 virtual int WriteCompositeDataSet(vtkCompositeDataSet *dobj, xdmf2::XdmfGrid *grid);
184 virtual int WriteAtomicDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid);
185 virtual int WriteArrays(vtkFieldData* dsa, xdmf2::XdmfGrid *grid, int association,
186 vtkIdType rank, vtkIdType *dims, const char *name);
187 virtual void ConvertVToXArray(vtkDataArray *vda, xdmf2::XdmfArray *xda,
188 vtkIdType rank, vtkIdType *dims,
189 int AllocStrategy, const char *heavyprefix);
190
191 virtual void SetupDataArrayXML(xdmf2::XdmfElement*, xdmf2::XdmfArray*) const;
192
193 char *FileName;
198
200
207
208 int Piece;
210
212
213 xdmf2::XdmfDOM *DOM;
214 xdmf2::XdmfGrid *TopTemporalGrid;
215
216 vtkXdmfWriterDomainMemoryHandler *DomainMemoryHandler;
217
218 std::vector<xdmf2::XdmfTopology*> TopologyAtT0;
219 std::vector<xdmf2::XdmfGeometry*> GeometryAtT0;
220
221private:
222 vtkXdmfWriter(const vtkXdmfWriter&) VTK_DELETE_FUNCTION;
223 void operator=(const vtkXdmfWriter&) VTK_DELETE_FUNCTION;
224};
225
226#endif /* vtkXdmfWriter_h */
abstract superclass for composite (multi-block or AMR) datasets
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
Superclass for algorithms that produce only data object as output.
general representation of visualization data
Definition: vtkDataObject.h:65
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
Superclass for all pipeline executives in VTK.
Definition: vtkExecutive.h:50
represent and manipulate fields of data
Definition: vtkFieldData.h:57
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
write eXtensible Data Model and Format files
Definition: vtkXdmfWriter.h:61
int UnlabelledDataArrayId
xdmf2::XdmfDOM * DOM
bool MeshStaticOverTime
virtual vtkExecutive * CreateDefaultExecutive()
Create a default executive.
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
virtual void ConvertVToXArray(vtkDataArray *vda, xdmf2::XdmfArray *xda, vtkIdType rank, vtkIdType *dims, int AllocStrategy, const char *heavyprefix)
virtual int CreateGeometry(vtkDataSet *ds, xdmf2::XdmfGrid *grid, void *staticdata)
vtkXdmfWriterDomainMemoryHandler * DomainMemoryHandler
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
xdmf2::XdmfGrid * TopTemporalGrid
virtual int WriteDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid)
virtual int CreateTopology(vtkDataSet *ds, xdmf2::XdmfGrid *grid, vtkIdType PDims[3], vtkIdType CDims[3], vtkIdType &PRank, vtkIdType &CRank, void *staticdata)
std::vector< xdmf2::XdmfGeometry * > GeometryAtT0
double CurrentTime
virtual void SetupDataArrayXML(xdmf2::XdmfElement *, xdmf2::XdmfArray *) const
virtual int Write()
Write data to output.
std::string WorkingDirectory
virtual int WriteCompositeDataSet(vtkCompositeDataSet *dobj, xdmf2::XdmfGrid *grid)
virtual int WriteAtomicDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid)
virtual int WriteArrays(vtkFieldData *dsa, xdmf2::XdmfGrid *grid, int association, vtkIdType rank, vtkIdType *dims, const char *name)
static vtkXdmfWriter * New()
std::vector< xdmf2::XdmfTopology * > TopologyAtT0
std::string BaseFileName
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
char * HeavyDataFileName
virtual void SetInputData(vtkDataObject *dobj)
Set the input data set.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
char * HeavyDataGroupName
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
@ name
Definition: vtkX3D.h:219
@ string
Definition: vtkX3D.h:490
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
int vtkIdType
Definition: vtkType.h:287