#ifndef ELEMENTFILEWRITER_H #define ELEMENTFILEWRITER_H #include "FileWriter.h" #include "FiniteElemSpace.h" #include "MatrixVector.h" #include "MemoryManager.h" #include "Mesh.h" namespace AMDiS { class ElementFileWriter : public FileWriterInterface { public: MEMORY_MANAGED(ElementFileWriter); /** * Constructor. */ ElementFileWriter(const std::string& name_, Mesh *mesh_, const FiniteElemSpace *feSpace_, std::map &vec_); /** * Implementation of FileWriterInterface::writeFiles(). */ void writeFiles(AdaptInfo *adaptInfo, bool force, int level = -1, Flag traverseFlag = Mesh::CALL_LEAF_EL, bool (*writeElem)(ElInfo*) = NULL); protected: /** * Writes element data in tecplot format. */ void writeTecPlotValues(const char* filename); /** * Writes element data in AMDiS format (1 file !). */ void writeMeshDatValues(const char* filename, double time); /** * Writes element data in VTK format. */ void writeVtkValues(const char* filename); protected: /** \brief * Name. */ std::string name; /** \brief * Used filename prefix. */ std::string filename; /** \brief * TecPlot file extension. */ std::string tecplotExt; /** \brief * AMDiS mesh-data-file extension. */ std::string amdisMeshDatExt; /** \brief * VTK file extension. */ std::string vtkExt; /** \brief * 0: Don't write TecPlot files. * 1: Write TecPlot files. */ int writeTecPlotFormat; /** \brief * 0: Don't write AMDiS files. * 1: Write AMDiS files. */ int writeAMDiSFormat; /** \brief * 0: Don't write VTK files. * 1: Write VTK files. */ int writeVtkFormat; /** \brief * 0: Don't append time index to filename prefix. * 1: Append time index to filename prefix. */ int appendIndex; /** \brief * Total length of appended time index. */ int indexLength; /** \brief * Number of decimals in time index. */ int indexDecimals; /** \brief * Timestep modulo: write only every tsModulo-th timestep! */ int tsModulo; /** */ int timestepNumber; /** \brief * Mesh used for output. */ Mesh *mesh; /** \brief * fespace used for output. */ const FiniteElemSpace *feSpace; /** \brief * Vector that stores the solution. */ std::map vec; }; } #endif // ELEMENTFILEWRITER_H