preCICE v3.2.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ExportVTK.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Eigen/Core>
4#include <iosfwd>
5#include <string>
6#include "io/Export.hpp"
7#include "logging/Logger.hpp"
8
9namespace precice::mesh {
10class Mesh;
11}
12
13namespace precice::io {
14
16class ExportVTK : public Export {
17public:
19 std::string_view participantName,
20 std::string_view location,
21 const mesh::Mesh &mesh,
22 ExportKind kind,
23 int frequency,
24 int rank,
25 int size);
26
28 void doExport(int index, double time) final override;
29
30 void exportSeries() const final override;
31
32 static void initializeWriting(
33 std::ofstream &filestream);
34
35 static void writeHeader(std::ostream &outFile);
36
37 static void writeVertex(
38 const Eigen::VectorXd &position,
39 std::ostream &outFile);
40
41 static void writeLine(
42 int vertexIndices[2],
43 std::ostream &outFile);
44
45 static void writeTriangle(
46 int vertexIndices[3],
47 std::ostream &outFile);
48
49 static void writeTetrahedron(
50 int vertexIndices[4],
51 std::ostream &outFile);
52
53private:
54 mutable logging::Logger _log{"io::ExportVTK"};
55
57 std::ofstream &outFile,
58 const std::string &filename) const;
59
60 void exportMesh(
61 std::ofstream &outFile,
62 const mesh::Mesh &mesh);
63
64 void exportData(
65 std::ofstream &outFile,
66 const mesh::Mesh &mesh);
67
68 void exportGradient(
69 std::ofstream &outFile,
70 const mesh::Mesh &mesh);
71};
72
73} // namespace precice::io
unsigned int index
Writes polygonal, or triangle meshes to vtk files.
Definition ExportVTK.hpp:16
void exportData(std::ofstream &outFile, const mesh::Mesh &mesh)
logging::Logger _log
Definition ExportVTK.hpp:54
ExportVTK(std::string_view participantName, std::string_view location, const mesh::Mesh &mesh, ExportKind kind, int frequency, int rank, int size)
Definition ExportVTK.cpp:20
static void writeVertex(const Eigen::VectorXd &position, std::ostream &outFile)
static void writeHeader(std::ostream &outFile)
static void writeLine(int vertexIndices[2], std::ostream &outFile)
static void initializeWriting(std::ofstream &filestream)
static void writeTetrahedron(int vertexIndices[4], std::ostream &outFile)
void openFile(std::ofstream &outFile, const std::string &filename) const
void exportSeries() const final override
Definition ExportVTK.cpp:59
void exportMesh(std::ofstream &outFile, const mesh::Mesh &mesh)
Definition ExportVTK.cpp:67
static void writeTriangle(int vertexIndices[3], std::ostream &outFile)
void doExport(int index, double time) final override
Perform writing to VTK file.
Definition ExportVTK.cpp:30
void exportGradient(std::ofstream &outFile, const mesh::Mesh &mesh)
Abstract base class of all classes exporting container data structures.
Definition Export.hpp:14
This class provides a lightweight logger.
Definition Logger.hpp:17
Container and creator for meshes.
Definition Mesh.hpp:38
provides Import and Export of the coupling mesh and data.
provides Mesh, Data and primitives.