/usr/include/paraview/vtkPPhastaReader.h is in paraview-dev 5.0.1+dfsg1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkPPhastaReader.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkPPhastaReader - parallel Phasta meta-file reader
// vtkPPhastaReader reads XML based Phasta meta-files and the underlying
// Phasta files. The meta-file has the following form:
// @verbatim
// <?xml version="1.0" ?>
//
// <PhastaMetaFile number_of_pieces="2">
// <GeometryFileNamePattern pattern="geombc.dat.%d"
// has_piece_entry="1"
// has_time_entry="0"/>
// <FieldFileNamePattern pattern="restart.%d.%d"
// has_piece_entry="1"
// has_time_entry="1"/>
//
// <TimeSteps number_of_steps="2"
// auto_generate_indices="1"
// start_index="0"
// increment_index_by="20"
// start_value="0."
// increment_value_by="20.">
// <TimeStep index="0" geometry_index="" field_index="0" value="0.0"/>
// <TimeStep index="1" geometry_index="" field_index="20" value="20.0"/>
// </TimeSteps>
// <Fields number_of_fields="2">
// <Field paraview_field_tag="velocity"
// phasta_field_tag="solution"
// start_index_in_phasta_array="1"
// number_of_componenets="3"
// datadependency="0"
// data_type="double"/>
// <Field paraview_field_tag="average speed"
// phasta_field_tag="ybar"
// start_index_in_phasta_array="4"
// number_of_componenets="1"/>
// </Fields>
//</PhastaMetaFile>
// @endverbatim
// The GeometryFileNamePattern and FieldFileNamePattern elements have
// three attributes:
// \li pattern: This is the pattern used to get the Phasta filenames.
// The %d placeholders will be replaced by appropriate
// indices. The first index is time (if specified), the
// second one is piece.
// \li has_piece_entry (0 or 1): Specifies whether the pattern has a
// piece placeholder. The piece placeholder is replaced by the
// update piece number.
// \li has_time_entry (0 or 1): Specified whether the pattern has a
// time placeholder. The time placeholder is replaced by an index
// specified in the TimeSteps element
//
// The TimeSteps element contains TimeStep sub-elements. Each TimeStep
// element specifies an index (index attribute), an index used in the
// geometry filename pattern (geometry_index), an index used in the
// field filename pattern (field_index) and a time value (float).
// In the example above, there are two timesteps. The first one is
// stored in files named geombc.dat.(0,1), restart.(0,20).(0,1).
// The time placeholders are substituted with the the geometry_index
// and field_index attribute values.
//
// Normally there is one TimeStep element per timestep. However, it
// is possible to ask the reader to automatically generate timestep
// entries. This is done with setting the (optional) auto_generate_indices
// to 1. In this case, the reader will generate number_of_steps entries.
// The geometry_index and field_index of these entries will start at
// start_index and will be incremented by increment_index_by.
// The time value of these entries will start at start_value and
// will be incremented by increment_value_by.
// Note that it is possible to use a combination of both approaches.
// Any values specified with the TimeStep elements will overwrite anything
// automatically computed. A common use of this is to let the reader
// compute all indices for field files and overwrite the geometry indices
// with TimeStep elements.
//
// The Fields element contain number_of_fields Field sub-element.
// Each Field element specifies tag attribute to be used in paraview,
// tag under which the field is stored in phasta files, start index of
// the array in phasta files, number of components of the field, data
// dependency, i.e., either 0 for nodal or 1 for elemental and
// data type, i.e., "double" (as of now supports only 1, 3 & 9 for number
// of components, i.e., scalars, vectors & tensors, and "double" for
// type of data).
// In the example above, there are two fields to be visualized
// one is velocity field stored under tag solution from index 1 to 3
// in phasta files which is a vector field defined on nodes with
// double values, and the other field is average speed scalar field
// stored under tag ybar at index 4 in phasta files
// If any Field element is specified then default attribute values are :
// (phasta_field_tag is mandatory)
// paraview_field_tag = Field <number>
// start_index_in_phasta_array = 0
// number_of_components = 1
// data_dependency = 0
// data_type = double
// If no Field(s) is/are specfied then the default is following 3 fields :
// pressure (index 0 under solution),
// velocity (index 1-3 under solution)
// temperature (index 4 under soltuion)
//
// .SECTION See Also
// vtkPhastaReader
#ifndef vtkPPhastaReader_h
#define vtkPPhastaReader_h
#include "vtkPVVTKExtensionsDefaultModule.h" //needed for exports
#include "vtkMultiBlockDataSetAlgorithm.h"
class vtkPVXMLParser;
class vtkPhastaReader;
//BTX
struct vtkPPhastaReaderInternal;
//ETX
class VTKPVVTKEXTENSIONSDEFAULT_EXPORT vtkPPhastaReader : public vtkMultiBlockDataSetAlgorithm
{
public:
static vtkPPhastaReader* New();
vtkTypeMacro(vtkPPhastaReader, vtkMultiBlockDataSetAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Set and get the Phasta meta file name
vtkSetStringMacro(FileName);
vtkGetStringMacro(FileName);
// Description:
// Set the step number for the geometry.
vtkSetClampMacro(TimeStepIndex, int, 0, VTK_INT_MAX);
vtkGetMacro(TimeStepIndex, int);
// Description:
// The min and max values of timesteps.
vtkGetVector2Macro(TimeStepRange, int);
static int CanReadFile(const char *filename);
protected:
vtkPPhastaReader();
~vtkPPhastaReader();
virtual int RequestInformation(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
virtual int RequestData(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
char* FileName;
int TimeStepIndex;
// Descriptions:
// Store the range of time steps
int TimeStepRange[2];
vtkPhastaReader* Reader;
vtkPVXMLParser* Parser;
int ActualTimeStep;
private:
vtkPPhastaReaderInternal* Internal;
vtkPPhastaReader(const vtkPPhastaReader&); // Not implemented.
void operator=(const vtkPPhastaReader&); // Not implemented.
};
#endif
|