OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
olb::BaseVTIreader< T > Class Template Reference

#include <vtiReader.h>

+ Inheritance diagram for olb::BaseVTIreader< T >:
+ Collaboration diagram for olb::BaseVTIreader< T >:

Public Member Functions

 BaseVTIreader (const std::string &fName, int dim, std::string dName, const std::string class_name="BaseVTIreader")
 
virtual ~BaseVTIreader ()
 
void printInfo ()
 

Protected Member Functions

std::vector< int > readExtent (const XMLreader *reader, std::string extAttrName)
 Reads Extent from extAttrName from XML Tag and returns as vector.
 
std::vector< int > getNbNodes (std::vector< int > &extents)
 Converts 4D (or 6D) extents vector into 2D (3D) nb_nodes vector.
 
int getSize (const XMLreader &tag)
 Reads size from XML tag (attribute "NumberOfComponents")
 

Protected Attributes

OstreamManager clout
 
int _dim
 
int _size
 Size of Data Field.
 
std::vector< T > _origin
 
std::vector< int > _extent
 
_delta
 
XMLreader _xmlReader
 
int _nCuboids
 

Detailed Description

template<typename T>
class olb::BaseVTIreader< T >

Definition at line 79 of file vtiReader.h.

Constructor & Destructor Documentation

◆ BaseVTIreader()

template<typename T >
olb::BaseVTIreader< T >::BaseVTIreader ( const std::string & fName,
int dim,
std::string dName,
const std::string class_name = "BaseVTIreader< T >" )

Definition at line 47 of file vtiReader.hh.

49 : clout(class_name), _dim(dim), _size(0), _origin(_dim, 0), _extent(_dim, 0),
50 _delta(0), _xmlReader(fName), _nCuboids(0)
51{
52 // Read WholeExtent (2 * _dim ints) from XML File and calculate _extent
53 std::vector<int> wholeExtend = readExtent(&_xmlReader["ImageData"], "WholeExtent");
54 _extent = getNbNodes(wholeExtend);
55
56 // Read _delta
57 std::stringstream stream_val_1(_xmlReader["ImageData"].getAttribute("Spacing"));
58 stream_val_1 >> _delta;
59
60 // Read _origin
61 std::stringstream stream_val_2(_xmlReader["ImageData"].getAttribute("Origin"));
62 for (auto& origin_i : _origin) {
63 stream_val_2 >> origin_i;
64 }
65
66 // Read _size and count cuboids (_nCuboids)
67 for ( auto& piece : _xmlReader["ImageData"] ) {
68 if (piece->getName() == "Piece") {
69 // Read _size from first dName PointData Tag
70 if ( _nCuboids == 0 ) {
71 for (auto &dataArray : (*piece)["PointData"]) {
72 if (dataArray->getAttribute("Name") == dName && dataArray->getName() == "DataArray") {
73 _size = this->getSize(*dataArray);
74 }
75 }
76 }
77
78 _nCuboids++;
79 }
80 }
81}
std::vector< int > getNbNodes(std::vector< int > &extents)
Converts 4D (or 6D) extents vector into 2D (3D) nb_nodes vector.
Definition vtiReader.hh:118
int _size
Size of Data Field.
Definition vtiReader.h:90
std::vector< T > _origin
Definition vtiReader.h:92
OstreamManager clout
Definition vtiReader.h:86
std::vector< int > readExtent(const XMLreader *reader, std::string extAttrName)
Reads Extent from extAttrName from XML Tag and returns as vector.
Definition vtiReader.hh:103
std::vector< int > _extent
Definition vtiReader.h:94
XMLreader _xmlReader
Definition vtiReader.h:96
int getSize(const XMLreader &tag)
Reads size from XML tag (attribute "NumberOfComponents")
Definition vtiReader.hh:129

References olb::BaseVTIreader< T >::_delta, olb::BaseVTIreader< T >::_extent, olb::BaseVTIreader< T >::_nCuboids, olb::BaseVTIreader< T >::_origin, olb::BaseVTIreader< T >::_size, olb::BaseVTIreader< T >::_xmlReader, olb::BaseVTIreader< T >::getNbNodes(), olb::BaseVTIreader< T >::getSize(), and olb::BaseVTIreader< T >::readExtent().

+ Here is the call graph for this function:

◆ ~BaseVTIreader()

template<typename T >
virtual olb::BaseVTIreader< T >::~BaseVTIreader ( )
inlinevirtual

Definition at line 83 of file vtiReader.h.

83{};

Member Function Documentation

◆ getNbNodes()

template<typename T >
std::vector< int > olb::BaseVTIreader< T >::getNbNodes ( std::vector< int > & extents)
protected

Converts 4D (or 6D) extents vector into 2D (3D) nb_nodes vector.

Definition at line 118 of file vtiReader.hh.

119{
120 // Convert 4D (or 6D) extents vector into 2D (3D) extent vector
121 std::vector<int> nNodes;
122 for ( int i = 0; i < _dim; i++ ) {
123 nNodes.push_back(extents[ 2*i + 1 ] - extents[ 2* i ] + 1);
124 }
125 return nNodes;
126}
+ Here is the caller graph for this function:

◆ getSize()

template<typename T >
int olb::BaseVTIreader< T >::getSize ( const XMLreader & tag)
protected

Reads size from XML tag (attribute "NumberOfComponents")

Definition at line 129 of file vtiReader.hh.

130{
131 // read the NumberOfComponents-Attribute (VTI standard) and return as integer
132 int size = std::atoi((tag.getAttribute("NumberOfComponents")).c_str());
133 if (size == 0) {
134 clout << "VTI READER: NumberOfComponents zero or not given!" << std::endl;
135 clout << "EXAMPLE: <DataArray Name='physVelocity' NumberOfComponents='3'" << std::endl;
136 exit(1);
137 }
138 return size;
139}
void exit(int exitcode)
Definition singleton.h:165

References olb::XMLreader::getAttribute().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ printInfo()

template<typename T >
void olb::BaseVTIreader< T >::printInfo ( )

Definition at line 84 of file vtiReader.hh.

85{
86 clout << "Information on VTIreader Data:" << std::endl;
87 clout << "Origin: ";
88 for (auto& origin_i : _origin) {
89 clout << origin_i << " ";
90 }
91 clout << std::endl;
92
93 clout << "Extend: ";
94 for (auto& extend_i : _extent) {
95 clout << extend_i << " ";
96 }
97 clout << std::endl;
98
99 clout << "Spacing: " << _delta << std::endl;
100}

◆ readExtent()

template<typename T >
std::vector< int > olb::BaseVTIreader< T >::readExtent ( const XMLreader * reader,
std::string extAttrName )
protected

Reads Extent from extAttrName from XML Tag and returns as vector.

Definition at line 103 of file vtiReader.hh.

104{
105 // An extent is in the form of four (or six) integers "x0 x1 y0 y1 z0 z1"
106 // each representing a node number
107 std::stringstream extstr(reader->getAttribute(extAttrName));
108 std::vector<int> extents;
109 int tmp;
110 for (int i = 0; i < 2 * _dim; ++i) {
111 extstr >> tmp;
112 extents.push_back(tmp);
113 }
114 return extents;
115}

References olb::XMLreader::getAttribute().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ _delta

template<typename T >
T olb::BaseVTIreader< T >::_delta
protected

Definition at line 95 of file vtiReader.h.

◆ _dim

template<typename T >
int olb::BaseVTIreader< T >::_dim
protected

Definition at line 88 of file vtiReader.h.

◆ _extent

template<typename T >
std::vector<int> olb::BaseVTIreader< T >::_extent
protected

Definition at line 94 of file vtiReader.h.

◆ _nCuboids

template<typename T >
int olb::BaseVTIreader< T >::_nCuboids
protected

Definition at line 98 of file vtiReader.h.

◆ _origin

template<typename T >
std::vector<T> olb::BaseVTIreader< T >::_origin
protected

Definition at line 92 of file vtiReader.h.

◆ _size

template<typename T >
int olb::BaseVTIreader< T >::_size
protected

Size of Data Field.

Definition at line 90 of file vtiReader.h.

◆ _xmlReader

template<typename T >
XMLreader olb::BaseVTIreader< T >::_xmlReader
protected

Definition at line 96 of file vtiReader.h.

◆ clout

template<typename T >
OstreamManager olb::BaseVTIreader< T >::clout
mutableprotected

Definition at line 86 of file vtiReader.h.


The documentation for this class was generated from the following files: