11 #ifndef vtkAMReXGridReaderInternal_h
12 #define vtkAMReXGridReaderInternal_h
21 VTK_ABI_NAMESPACE_BEGIN
58 const long*
format()
const&;
60 const int*
order()
const&;
111 std::vector<std::vector<std::vector<std::vector<double>>>>
levelCells;
172 NoFabHeaderMinMax_v1 = 3,
174 NoFabHeaderFAMinMax_v1 = 4
243 void ReadFAB(std::istream& is);
245 void ReadOrder(std::istream& is, std::vector<int>& ar);
247 void ReadFormat(std::istream& is, std::vector<long>& ar);
250 std::size_t
ReadBoxArray(std::istream& is,
int* boxArray,
int* boxArrayDim);
254 std::istream& is, std::size_t numberOfPoints, std::size_t
size,
char* buffer);
257 void PermuteOrder(
void* out,
const void* in, std::size_t nitems,
const int* outord,
258 const int* inord, std::size_t REALSIZE);
260 template <
typename T>
263 std::size_t numberOfPoints,
const std::string& attribute);
276 template <
typename T>
279 const std::vector<std::vector<char>>& buffers, std::size_t numberOfPoints,
291 dataArray->
SetName(attribute.c_str());
294 T* arrayPtr =
new T[numberOfPoints];
295 for (
int j = 0; j < nComps; ++j)
297 this->
Convert(arrayPtr, buffers[j].
data(), numberOfPoints, *ord, *ird);
300 for (std::size_t i = 0; i < numberOfPoints; ++i)
311 VTK_ABI_NAMESPACE_END
void SetNumberOfComponents(int num) override
virtual void SetNumberOfTuples(vtkIdType numTuples)
Set the number of tuples (a component group) in the array.
void DestroyLevelHeader()
const int * order() const &
void SetFileName(char *fName)
std::size_t numBytes() const
const long * format() const &
abstract class to specify dataset behavior
const std::vector< int > & orderarray() const &
void CreateVTKAttributeArray(vtkAOSDataArrayTemplate< T > *dataArray, const RealDescriptor *ord, const RealDescriptor *ird, const std::vector< std::vector< char >> &buffers, std::size_t numberOfPoints, const std::string &attribute)
void SetTypedComponent(vtkIdType tupleIdx, int comp, ValueType value)
Set component comp of the tuple at tupleIdx to value.
void PrintSelf(std::ostream &os, vtkIndent indent)
RealDescriptor * ReadRealDescriptor(std::istream &is)
Consists of the low-level AMReX Reader used by the vtkAMReXGridReader.
void Convert(void *out, const void *in, std::size_t nitems, const RealDescriptor &ord, const RealDescriptor &ird)
int ReadNumberOfAttributes(std::istream &is)
~vtkAMReXGridReaderInternal()
bool ReadExtraFabHeader()
void GetExtraMultiFabBlockAttribute(const char *attribute, int blockIdx, vtkDataSet *pDataSet)
virtual void SetName(const char *)
Set/get array's name.
vtkIdType GetAttributeOffsetExtraMultiFab(const char *attribute, int fabIndex)
std::size_t ReadBoxArray(std::istream &is, int *boxArray, int *boxArrayDim)
void PrintFormat(std::vector< long > &ar)
void PrintBoxArray(int *boxArray)
a simple class to control print indentation
vtkAMReXGridHeader * Header
Array-Of-Structs implementation of vtkGenericDataArray.
const std::vector< long > & formatarray() const &
int GetBlockLevel(int blockIdx)
friend class vtkAMReXGridLeveHeader
std::vector< vtkAMReXGridLevelHeader * > LevelHeader
vtkIdType GetOffsetOfAttribute(const char *attribute)
void ReadFAB(std::istream &is)
void ReadBlockAttribute(std::istream &is, std::size_t numberOfPoints, std::size_t size, char *buffer)
int ReadVersion(std::istream &is)
void ReadOrder(std::istream &is, std::vector< int > &ar)
void GetBlockAttribute(const char *attribute, int blockIdx, vtkDataSet *pDataSet)
void PrintOrder(std::vector< int > &ar)
std::vector< std::vector< vtkAMReXGridLevelHeader * > > ExtraMultiFabHeader
int GetExtraMultiFabIndex(const char *attribute)
vtkAMReXGridReaderInternal()
bool operator==(const RealDescriptor &rd) const
bool extraMultiFabHeadersAreRead
void PermuteOrder(void *out, const void *in, std::size_t nitems, const int *outord, const int *inord, std::size_t REALSIZE)
void ReadFormat(std::istream &is, std::vector< long > &ar)
int GetBlockIndexWithinLevel(int blockIdx, int level)