VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
28 #ifndef _vtkXdmfWriter_h
29 #define _vtkXdmfWriter_h
30 
31 #include "vtkIOXdmf2Module.h" // For export macro
32 
33 #include "vtkDataObjectAlgorithm.h"
34 
35 class vtkExecutive;
36 
38 class vtkDataArray;
39 class vtkDataSet;
40 class vtkDataObject;
41 class vtkFieldData;
42 class vtkInformation;
44 class vtkXdmfWriterDomainMemoryHandler;
45 class XdmfArray;
46 class XdmfDOM;
47 class XdmfGrid;
48 
50 {
51 public:
52  static vtkXdmfWriter *New();
54  void PrintSelf(ostream& os, vtkIndent indent);
55 
57  virtual void SetInputData(vtkDataObject* dobj);
58 
60 
61  vtkSetStringMacro(FileName);
62  vtkGetStringMacro(FileName);
64 
66 
68  vtkSetStringMacro(HeavyDataFileName);
69  vtkGetStringMacro(HeavyDataFileName);
71 
73 
75  vtkSetStringMacro(HeavyDataGroupName);
76  vtkGetStringMacro(HeavyDataGroupName);
78 
82  virtual int Write();
83 
85 
87  vtkSetMacro(LightDataLimit, int);
88  vtkGetMacro(LightDataLimit, int);
90 
92 
94  vtkSetMacro(WriteAllTimeSteps, int);
95  vtkGetMacro(WriteAllTimeSteps, int);
96  vtkBooleanMacro(WriteAllTimeSteps, int);
98 
100 
102  vtkSetMacro(Piece, int);
103  vtkSetMacro(NumberOfPieces, int);
105 
106  //TODO: control choice of heavy data format (xml, hdf5, sql, raw)
107 
108  //TODO: These controls are available in vtkXdmfWriter, but are not used here.
109  //GridsOnly
110  //Append to Domain
111 
112 protected:
113  vtkXdmfWriter();
114  ~vtkXdmfWriter();
115 
116  //Choose composite executive by default for time.
118 
119  //Can take any one data object
121 
122  //Overridden to ...
123  virtual int RequestInformation(vtkInformation*,
126  //Overridden to ...
127  virtual int RequestUpdateExtent(vtkInformation*,
130  //Overridden to ...
131  virtual int RequestData(vtkInformation*,
134 
135  //These do the work: recursively parse down input's structure all the way to arrays,
136  //use XDMF lib to dump everything to file.
137 
138  virtual void CreateTopology(vtkDataSet *ds, XdmfGrid *grid, vtkIdType PDims[3], vtkIdType CDims[3], vtkIdType &PRank, vtkIdType &CRank, void *staticdata);
139  virtual void CreateGeometry(vtkDataSet *ds, XdmfGrid *grid, void *staticdata);
140 
141  virtual void WriteDataSet(vtkDataObject *dobj, XdmfGrid *grid);
142  virtual void WriteCompositeDataSet(vtkCompositeDataSet *dobj, XdmfGrid *grid);
143  virtual void WriteAtomicDataSet(vtkDataObject *dobj, XdmfGrid *grid);
144  virtual void WriteArrays(vtkFieldData* dsa, XdmfGrid *grid, int association,
145  vtkIdType rank, vtkIdType *dims, const char *name);
146  virtual void ConvertVToXArray(vtkDataArray *vda, XdmfArray *xda,
147  vtkIdType rank, vtkIdType *dims,
148  int AllocStrategy, const char *heavyprefix);
149 
150  char *FileName;
153 
155 
159 
160  int Piece;
162 
163  XdmfDOM *DOM;
164  XdmfGrid *TopTemporalGrid;
165 
166  vtkXdmfWriterDomainMemoryHandler *DomainMemoryHandler;
167 
168 private:
169  vtkXdmfWriter(const vtkXdmfWriter&); // Not implemented
170  void operator=(const vtkXdmfWriter&); // Not implemented
171 };
172 
173 #endif /* _vtkXdmfWriter_h */
XdmfDOM * DOM
virtual vtkExecutive * CreateDefaultExecutive()
Store vtkAlgorithm input/output information.
char * HeavyDataGroupName
abstract class to specify dataset behavior
Definition: vtkDataSet.h:60
static vtkDataObjectAlgorithm * New()
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:83
void PrintSelf(ostream &os, vtkIndent indent)
#define VTKIOXDMF2_EXPORT
int vtkIdType
Definition: vtkType.h:268
Superclass for all pipeline executives in VTK.
Definition: vtkExecutive.h:48
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:94
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:619
abstract superclass for composite (multi-block or AMR) datasets
GLuint const GLchar * name
Definition: vtkgl.h:11983
write eXtensible Data Model and Format files
Definition: vtkXdmfWriter.h:49
a simple class to control print indentation
Definition: vtkIndent.h:38
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:53
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
void SetInputData(vtkDataObject *)
virtual int FillInputPortInformation(int port, vtkInformation *info)
#define vtkGetStringMacro(name)
Definition: vtkSetGet.h:120
vtkXdmfWriterDomainMemoryHandler * DomainMemoryHandler
Superclass for algorithms that produce only data object as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Store zero or more vtkInformation instances.
#define vtkBooleanMacro(name, type)
Definition: vtkSetGet.h:234
XdmfGrid * TopTemporalGrid
general representation of visualization data
Definition: vtkDataObject.h:64
char * HeavyDataFileName
represent and manipulate fields of data
Definition: vtkFieldData.h:55
#define vtkSetMacro(name, type)
Definition: vtkSetGet.h:69