23#ifndef vtkAMReXGridReaderInternal_h
24#define vtkAMReXGridReaderInternal_h
122 std::vector<std::vector<std::vector<std::vector<double>>>>
levelCells;
142 bool Parse(
const std::string& headerData);
152 std::string GetBaseVariableName(
const std::string& name);
155 int CheckComponent(
const std::string& name);
158 bool HasVectorPrefix(
const std::string& name);
178 NoFabHeaderMinMax_v1 = 3,
180 NoFabHeaderFAMinMax_v1 = 4
214 bool Parse(
int _level,
int _dim,
const std::string& headerData);
263 void* out,
const void* in,
long nitems,
const int* outord,
const int* inord,
int REALSIZE);
265 template <
typename T>
267 const RealDescriptor* ird,
const std::vector<std::vector<char>>& buffers,
268 const int numberOfPoints,
const std::string& attribute);
284 const std::vector<std::vector<char>>& buffers,
const int numberOfPoints,
285 const std::string& attribute)
287 int nComps =
static_cast<int>(this->
Header->parsedVariableNames[attribute].size());
290 nComps =
static_cast<int>(this->
Header->extraMultiFabParsedVarNames[attribute].size());
296 dataArray->
SetName(attribute.c_str());
299 T* arrayPtr =
new T[numberOfPoints];
300 for (
int j = 0; j < nComps; ++j)
302 this->
Convert(arrayPtr, buffers[j].data(), numberOfPoints, *ord, *ird);
305 for (
int i = 0; i < numberOfPoints; ++i)
const int * order() const &
const std::vector< long > & formatarray() const &
const std::vector< int > & orderarray() const &
const long * format() const &
RealDescriptor(const long *format, const int *order, int order_length)
void ReadFAB(std::istream &is)
void ReadFormat(std::istream &is, std::vector< long > &ar)
void Convert(void *out, const void *in, long nitems, const RealDescriptor &ord, const RealDescriptor &ird)
int GetOffsetOfAttribute(const char *attribute)
vtkAMReXGridReaderInternal()
int GetBlockLevel(const int blockIdx)
std::vector< vtkAMReXGridLevelHeader * > LevelHeader
void GetBlockAttribute(const char *attribute, int blockIdx, vtkDataSet *pDataSet)
void PrintSelf(std::ostream &os, vtkIndent indent)
void DestroyLevelHeader()
bool ReadExtraFabHeader()
friend class vtkAMReXGridHeader
void ReadBlockAttribute(std::istream &is, int numberOfPoints, int size, char *buffer)
RealDescriptor * ReadRealDescriptor(std::istream &is)
int ReadBoxArray(std::istream &is, int *boxArray, int *boxArrayDim)
void PermuteOrder(void *out, const void *in, long nitems, const int *outord, const int *inord, int REALSIZE)
void PrintBoxArray(int *boxArray)
int GetBlockIndexWithinLevel(int blockIdx, int level)
int ReadNumberOfAttributes(std::istream &is)
bool extraMultiFabHeadersAreRead
void PrintOrder(std::vector< int > &ar)
int GetAttributeOffsetExtraMultiFab(const char *attribute, const int fabIndex)
int GetExtraMultiFabIndex(const char *attribute)
void PrintFormat(std::vector< long > &ar)
friend class vtkAMReXGridLeveHeader
int ReadVersion(std::istream &is)
std::vector< std::vector< vtkAMReXGridLevelHeader * > > ExtraMultiFabHeader
void SetFileName(char *fName)
void GetExtraMultiFabBlockAttribute(const char *attribute, int blockIdx, vtkDataSet *pDataSet)
~vtkAMReXGridReaderInternal()
vtkAMReXGridHeader * Header
void CreateVTKAttributeArray(vtkAOSDataArrayTemplate< T > *dataArray, const RealDescriptor *ord, const RealDescriptor *ird, const std::vector< std::vector< char > > &buffers, const int numberOfPoints, const std::string &attribute)
void ReadOrder(std::istream &is, std::vector< int > &ar)
Array-Of-Structs implementation of vtkGenericDataArray.
void SetTypedComponent(vtkIdType tupleIdx, int comp, ValueType value)
Set component comp of the tuple at tupleIdx to value.
virtual void SetName(const char *)
Set/get array's name.
abstract class to specify dataset behavior
void SetNumberOfComponents(int num) override
Set/Get the dimension (n) of the components.
void SetNumberOfTuples(vtkIdType number) override
Set the number of tuples (a component group) in the array.
a simple class to control print indentation