9 #include "HDF5Interface.h"
10 #include <dolfinx/common/MPI.h>
11 #include <dolfinx/mesh/cell_types.h>
25 class CoordinateElement;
68 static const Encoding default_encoding = Encoding::HDF5;
71 XDMFFile(MPI_Comm comm,
const std::string filename,
72 const std::string file_mode,
73 const Encoding encoding = default_encoding);
89 const std::string xpath =
"/Xdmf/Domain");
95 void write_geometry(
const mesh::Geometry& geometry,
const std::string name,
96 const std::string xpath =
"/Xdmf/Domain");
108 const std::string xpath =
"/Xdmf/Domain")
const;
114 xt::xtensor<std::int64_t, 2> read_topology_data(
const std::string name,
115 const std::string xpath
116 =
"/Xdmf/Domain")
const;
122 xt::xtensor<double, 2> read_geometry_data(
const std::string name,
123 const std::string xpath
124 =
"/Xdmf/Domain")
const;
129 std::pair<mesh::CellType, int> read_cell_type(
const std::string grid_name,
130 const std::string xpath
139 const std::string& mesh_xpath
140 =
"/Xdmf/Domain/Grid[@GridType='Uniform'][1]");
147 void write_function(
const fem::Function<std::complex<double>>& u,
double t,
148 const std::string& mesh_xpath
149 =
"/Xdmf/Domain/Grid[@GridType='Uniform'][1]");
157 const std::string& geometry_xpath,
158 const std::string& xpath =
"/Xdmf/Domain");
165 read_meshtags(
const std::shared_ptr<const mesh::Mesh>& mesh,
166 const std::string name,
167 const std::string xpath =
"/Xdmf/Domain");
173 void write_information(
const std::string name,
const std::string value,
174 const std::string xpath =
"/Xdmf/Domain/");
179 std::string read_information(
const std::string name,
180 const std::string xpath =
"/Xdmf/Domain/");
184 MPI_Comm comm()
const;
191 std::string _filename;
194 std::string _file_mode;
201 std::unique_ptr<pugi::xml_document> _xml_doc;