5 #ifndef TOOLS_VTKDATA_H
6 #define TOOLS_VTKDATA_H
15 #include <type_traits>
46 virtual void emit(std::ostream&
out,
const T&
t)
const = 0;
103 return (
fabs(in)<1
e-33)?0.0:in;
107 template<
typename T,
typename V>
111 for (std::size_t
i = 0;
i < nComponents;
i++)
117 template<
typename T,
typename V>
127 template<
typename T,
typename V>
139 return toVTKDataType<V>();
165 std::vector< Detail::VTKPointDescriptorEntry<T>* >
entries_;
178 template<
typename DATATYPE>
191 template<
typename DATATYPE>
204 template<
typename DATATYPE>
217 template<
typename VT>
236 "<?xml version=\"1.0\"?>\n"
237 "<VTKFile type=\"Collection\" version=\"0.1\" byte_order=\"LittleEndian\">\n"
275 "<DataSet group=\"\" part=\"0\" timestep=\"" <<
recordID_ <<
"\" file=\"" <<
filename <<
"\" />\n";
315 "<?xml version=\"1.0\"?>\n"
316 "<VTKFile type=\"UnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\">\n"
317 " <UnstructuredGrid>\n"
318 " <Piece NumberOfPoints=\"" << container.size() <<
"\" NumberOfCells=\"0\">\n"
320 " <DataArray type=\"Int32\" name=\"connectivity\" format=\"ascii\">\n"
323 " <DataArray type=\"Float32\" name=\"offset\" format=\"ascii\">\n"
326 " <DataArray type=\"UInt8\" name=\"types\" format=\"ascii\">\n"
334 "format=\"ascii\">\n";
335 for (
const T& mem : container)
348 "Name=\"" << descr->
getName() <<
"\" "
350 "format=\"ascii\">\n";
351 for (
const T& mem : container)
361 " </UnstructuredGrid>\n"
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Array< double, 1, 3 > e(1./3., 0.5, 2.)
MatrixXcd V
Definition: EigenSolver_EigenSolver_MatrixType.cpp:15
Eigen::Triplet< double > T
Definition: EigenUnitTest.cpp:11
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
int data[]
Definition: Map_placement_new.cpp:1
Definition: Tools/VTKData.h:129
const std::size_t nComponents_
Definition: Tools/VTKData.h:131
std::size_t getNumberOfComponents() const override
Returns the number of components in this type.
Definition: Tools/VTKData.h:147
void emit(std::ostream &out, const T &t) const override
writes this VTKData to the given output stream for a single T
Definition: Tools/VTKData.h:142
std::string getTypeName() const override
Gives the VTKDataType for VTK.
Definition: Tools/VTKData.h:137
VTKPointDescriptorEntryImpl(std::string name, V T::*member, std::size_t nComponents)
Definition: Tools/VTKData.h:133
const V T::* member_
Definition: Tools/VTKData.h:130
Definition: Tools/VTKData.h:25
std::string name_
Definition: Tools/VTKData.h:26
virtual ~VTKPointDescriptorEntry()
Definition: Tools/VTKData.h:37
std::string getName() const
Returns the name associated with this field.
Definition: Tools/VTKData.h:55
virtual void emit(std::ostream &out, const T &t) const =0
writes this VTKData to the given output stream for a single T
virtual std::size_t getNumberOfComponents() const =0
Returns the number of components in this type.
VTKPointDescriptorEntry(std::string fieldName)
initialises this data member with given name.
Definition: Tools/VTKData.h:32
virtual std::string getTypeName() const =0
Gives the VTKDataType for VTK.
Definition: Tools/VTKData.h:227
VTKCollection(std::string fileName)
Definition: Tools/VTKData.h:251
std::ofstream outFile_
Definition: Tools/VTKData.h:228
bool hasHeader_
Definition: Tools/VTKData.h:229
~VTKCollection()
Definition: Tools/VTKData.h:256
void writeFooter()
Definition: Tools/VTKData.h:242
std::size_t recordID_
Definition: Tools/VTKData.h:231
bool hasFooter_
Definition: Tools/VTKData.h:230
void append(std::string filename)
Definition: Tools/VTKData.h:269
void writeHeader()
Definition: Tools/VTKData.h:233
Definition: Tools/VTKData.h:164
std::enable_if<!std::is_array< DATATYPE >::value, VTKPointDescriptor & >::type addProperty(std::string name, DATATYPE T::*m, bool isPrimary=false)
Definition: Tools/VTKData.h:193
Detail::VTKPointDescriptorEntry< T > * positionEntry_
Definition: Tools/VTKData.h:166
VTKPointDescriptor()
Definition: Tools/VTKData.h:168
~VTKPointDescriptor()
Definition: Tools/VTKData.h:172
std::vector< Detail::VTKPointDescriptorEntry< T > * > entries_
Definition: Tools/VTKData.h:165
VTKPointDescriptor & addProperty(std::string name, DATATYPE T::*m, std::size_t nComponents, bool isPrimary=false)
Definition: Tools/VTKData.h:205
std::enable_if< std::is_array< DATATYPE >::value, VTKPointDescriptor & >::type addProperty(std::string name, DATATYPE T::*m, bool isPrimary=false)
Definition: Tools/VTKData.h:180
Definition: Tools/VTKData.h:287
const VTKPointDescriptor< T > * descriptor_
Definition: Tools/VTKData.h:288
VTKUnstructuredGrid(std::string filename, const VTKPointDescriptor< T > *descr)
Definition: Tools/VTKData.h:295
std::ofstream outFile_
Definition: Tools/VTKData.h:289
void write(const C &container)
Definition: Tools/VTKData.h:312
Definition: matrices.h:74
int * m
Definition: level2_cplx_impl.h:294
#define isfinite(X)
Definition: main.h:111
Definition: MpiContainer.h:70
V round(V in)
Definition: Tools/VTKData.h:95
std::enable_if< std::is_floating_point< V >::value, std::string >::type toVTKDataType()
Definition: Tools/VTKData.h:68
std::enable_if< std::is_array< V >::value||std::is_pointer< V >::value, void >::type emitProxy(std::ostream &out, const T &t, std::size_t nComponents, V T::*member)
This function actually writes the correct datatype to ostream.
Definition: Tools/VTKData.h:109
squared absolute value
Definition: GlobalFunctions.h:87
string filename
Definition: MergeRestartFiles.py:39
Real fabs(const Real &a)
Definition: boostmultiprec.cpp:117
type
Definition: compute_granudrum_aor.py:141
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
string name
Definition: plotDoE.py:33
t
Definition: plotPSD.py:36
std::ofstream out("Result.txt")