diff --git a/MeshLib/IO/XDMF/transformData.cpp b/MeshLib/IO/XDMF/transformData.cpp index f5354095b4c704b89d9b85f5fe38f2562fa1db3a..1cff421eb70e058bac7dd186ce91598f1c001cb6 100644 --- a/MeshLib/IO/XDMF/transformData.cpp +++ b/MeshLib/IO/XDMF/transformData.cpp @@ -395,11 +395,16 @@ XdmfHdfData transformTopology(std::vector<std::size_t> const& values, unsigned int const chunk_size_bytes) { std::string const name = "topology"; - HdfData const hdf = { - values.data(), values.size(), 1, name, MeshPropertyDataType::uint64, - n_files, chunk_size_bytes}; - XdmfData const xdmf{values.size(), - 1, + auto const tuple_size = ParentDataType2String(parent_data_type).second; + HdfData const hdf = {values.data(), + values.size() / tuple_size, + tuple_size, + name, + MeshPropertyDataType::uint64, + n_files, + chunk_size_bytes}; + XdmfData const xdmf{values.size() / tuple_size, + tuple_size, MeshPropertyDataType::uint64, name, std::nullopt, diff --git a/MeshLib/IO/XDMF/writeXdmf.cpp b/MeshLib/IO/XDMF/writeXdmf.cpp index f190de381a53622a95c5f8a5003272574c8a51e8..788d4be89f8037b5107e52a8e690bb44b194dbb0 100644 --- a/MeshLib/IO/XDMF/writeXdmf.cpp +++ b/MeshLib/IO/XDMF/writeXdmf.cpp @@ -204,12 +204,14 @@ std::function<std::string(std::vector<double>)> write_xdmf( { return fmt::format( fmt::runtime("\n\t<Topology Type=\"{topology_type}\" " - "NodesPerElement=\"{nodes_per_element}\">{dataitem}" + "NodesPerElement=\"{nodes_per_element}\" " + "NumberOfElements=\"{number_of_elements}\">{dataitem}" "\n\t</Topology>"), "topology_type"_a = ParentDataType2String(*topology.parent_data_type), "dataitem"_a = dataitem_transform(topology), - "nodes_per_element"_a = nodes_per_element); + "nodes_per_element"_a = nodes_per_element, + "number_of_elements"_a = topology.size_partitioned_dim); }; // Define content of <Topology> in XDMF, same as attribute_transform