diff --git a/ThirdParty/xdmf3/vtkxdmf3/CMake/VersionSuite/SetUpVersion.cmake b/ThirdParty/xdmf3/vtkxdmf3/CMake/VersionSuite/SetUpVersion.cmake index 67f46ddeb412bd580aa593bf69a89c60ef268d41..af4d57bf4febb3088e5171684856278b9fb30a7b 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/CMake/VersionSuite/SetUpVersion.cmake +++ b/ThirdParty/xdmf3/vtkxdmf3/CMake/VersionSuite/SetUpVersion.cmake @@ -62,7 +62,7 @@ MACRO(VersionWrite vProjectName export_name) FOREACH(il ${include_list}) SET(includes "${includes}\n\#include \"${il}\"") ENDFOREACH() - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${vProjectName}Version.hpp + FILE(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${vProjectName}Version.hpp "/* Current Version of ${vProjectName} * Major is: ${vMajor} * Minor is: ${vMinor} @@ -73,7 +73,7 @@ ${includes} extern ${export_name} ProjectVersion ${vProjectName}Version;\n" ) - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${vProjectName}Version.cpp + FILE(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${vProjectName}Version.cpp "/* Current Version of ${vProjectName} * Make sure to include this file in your built sources */ diff --git a/ThirdParty/xdmf3/vtkxdmf3/CMakeLists.txt b/ThirdParty/xdmf3/vtkxdmf3/CMakeLists.txt index 1c87736093e1887af529f47c4a29ca4c9f979b1d..f6f9c80235a5ac47f77968bf0209103c216cf63a 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/CMakeLists.txt +++ b/ThirdParty/xdmf3/vtkxdmf3/CMakeLists.txt @@ -59,10 +59,13 @@ include(XdmfFunctions) get_filename_component(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE) # RPath -#set(CMAKE_SKIP_BUILD_RPATH FALSE) -#set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) -#set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) -#set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +option(XDMF_SET_RPATH ON) +if (XDMF_SET_RPATH) + set(CMAKE_SKIP_BUILD_RPATH FALSE) + set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +endif () # Should we build with documentation option(XDMF_BUILD_DOCUMENTATION OFF) @@ -365,16 +368,16 @@ if(NOT XDMF_BUILD_CORE_ONLY) set_target_properties(${XDMF_LIBNAME} PROPERTIES PREFIX ../ IMPORT_PREFIX ../ - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} - ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/ + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/ + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/) if(XDMF_STATIC_AND_SHARED AND BUILD_SHARED_LIBS) set_target_properties(Xdmf_Static PROPERTIES PREFIX ../ IMPORT_PREFIX ../ - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} - ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/ + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/ + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/) endif () endif() endif() diff --git a/ThirdParty/xdmf3/vtkxdmf3/Xdmf.dtd b/ThirdParty/xdmf3/vtkxdmf3/Xdmf.dtd new file mode 100644 index 0000000000000000000000000000000000000000..3e39e64bdc797c2e7a234f6395d4ed5a1b2cc7a2 --- /dev/null +++ b/ThirdParty/xdmf3/vtkxdmf3/Xdmf.dtd @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--Root element of dataset--> +<!ELEMENT Xdmf (Information*, Domain+)> +<!ATTLIST Xdmf + Version CDATA #IMPLIED +> +<!--Contains domain data information--> +<!ELEMENT Domain (Information*, Grid+)> +<!ATTLIST Domain + Name CDATA #IMPLIED +> +<!--Contains a collection of homogeneous elements--> +<!ELEMENT Grid (Information*, Time*, Grid*, Topology*, Geometry*, Attribute*)> +<!ATTLIST Grid + Name CDATA #IMPLIED + GridType (Uniform | Collection) "Uniform" + CollectionType (Spatial | Temporal) "Spatial" +> +<!--Contains a graph of points--> +<!ELEMENT Graph (Information*, Time*, Attribute*)> +<!ATTLIST Graph + Name CDATA #IMPLIED + NumberColumns CDATA #REQUIRED + NumberRows CDATA #REQUIRED +> +<!-- Described Temporal Relationship --> +<!ELEMENT Time (Information*)> +<!ATTLIST Time + Value CDATA #IMPLIED +> +<!--Describes the general organization of the data--> +<!ELEMENT Topology (Information*, DataItem*)> +<!ATTLIST Topology + TopologyType (NoTopologyType | Polyvertex | Polyline | Polygon | Triangle | Quadrilateral | Tetrahedron | Wedge | Hexahedron | Edge_3 | Triangle_6 | Quadrilateral_8 | Quadrilateral_9 | Tetrahedron_10 | Pyramid_13 | Wedge_15 | Wedge_18 | Hexahedron_20 | Hexahedron_24 | Hexahedron_27 | Hexahedron_64 | Hexahedron_125 | Hexahedron_216 | Hexahedron_343 | Hexahedron_512 | Hexahedron_729 | Hexahedron_1000 | Hexahedron_1331 | Hexahedron_Spectral_64 | Hexahedron_Spectral_125 | Hexahedron_Spectral_216 | Hexahedron_Spectral_343 | Hexahedron_Spectral_512 | Hexahedron_Spectral_729 | Hexahedron_Spectral_1000 | Hexahedron_Spectral_1331 | Mixed | 2DSMesh | 2DRectMesh | 2DCoRectMesh | 3DSMesh | 3DRectMesh | 3DCoRectMesh) #REQUIRED + Dimensions CDATA #IMPLIED + Order CDATA #IMPLIED + NodesPerElement CDATA #IMPLIED +> +<!--Describes the XYZ values of the mesh--> +<!ELEMENT Geometry (Information*, DataItem+)> +<!ATTLIST Geometry + Name CDATA #IMPLIED + GeometryType (XYZ | XY | X_Y_Z | VXVYVZ | ORIGIN_DXDYDZ) "XYZ" +> +<!--Lowest level element, describes the data that is present in the XDMF dataset--> +<!ELEMENT DataItem (#PCDATA | DataItem)*> +<!ATTLIST DataItem + Name CDATA #IMPLIED + ItemType (Uniform | HyperSlab | Function) "Uniform" + Dimensions CDATA #REQUIRED + NumberType (Char | UChar | Float | Int | UInt) "Float" + Precision (1 | 4 | 8) "4" + Reference CDATA #IMPLIED + Endian (Big | Little | Native) "Native" + Format (XML | HDF | Binary | TIFF) "XML" +> +<!--Describes the values on the mesh--> +<!ELEMENT Attribute (Information*, DataItem)> +<!ATTLIST Attribute + Name CDATA #IMPLIED + Center (Node | Cell | Grid | Face | Edge) "Node" + AttributeType (Scalar | Vector | Tensor | Tensor6 | Matrix) "Scalar" +> +<!--Describes subsections of a grid--> +<!ELEMENT Set (Information*, DataItem)> +<!ATTLIST Set + Name CDATA #IMPLIED + Type (NoSetType | Node | Cell | Face | Edge) "Node" +> +<!--Describes a node maping--> +<!ELEMENT Map (Information*, DataItem*)> +<!ATTLIST Map + Name CDATA #IMPLIED +> +<!-- Application Dependent --> +<!ELEMENT Information (#PCDATA | Information | EMPTY)*> +<!ATTLIST Information + Name CDATA #IMPLIED + Value CDATA #IMPLIED +> + +<!--The Definitions of these three items are extremely loose--> +<!ELEMENT Aggregate ANY> +<!ELEMENT Subset ANY> +<!ELEMENT Function ANY> diff --git a/ThirdParty/xdmf3/vtkxdmf3/XdmfTopology.hpp b/ThirdParty/xdmf3/vtkxdmf3/XdmfTopology.hpp index f76570c0f0bccbdaf8bf230d840e6f1239cf0c9a..a49bc141a0bea3876bbbba09168a825490598ae0 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/XdmfTopology.hpp +++ b/ThirdParty/xdmf3/vtkxdmf3/XdmfTopology.hpp @@ -192,7 +192,7 @@ protected: private: - XdmfTopology(const XdmfTopology &); + XdmfTopology(const XdmfTopology &); // Not implemented. void operator=(const XdmfTopology &); // Not implemented. shared_ptr<const XdmfTopologyType> mType; diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/CMakeLists.txt b/ThirdParty/xdmf3/vtkxdmf3/core/CMakeLists.txt index ce471dc1774e5e4410ccd9f3ce146ecce7adb213..38240fc8e28b91d14be51bfce69cc958dafb760a 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/CMakeLists.txt +++ b/ThirdParty/xdmf3/vtkxdmf3/core/CMakeLists.txt @@ -9,7 +9,7 @@ include(SetUpVersion) include(TestBigEndian) if(VERSION_CONTROL_AUTOUPDATE OR - NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/XdmfVersion.hpp) + NOT EXISTS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/XdmfVersion.hpp) VersionCreate("Xdmf" "3" "3" "0" "XDMFCORE_EXPORT" "XdmfCore.hpp") endif() @@ -54,11 +54,13 @@ endif () mark_as_advanced(CLEAR HDF5_C_INCLUDE_DIR) mark_as_advanced(CLEAR HDF5_hdf5_LIBRARY_DEBUG) mark_as_advanced(CLEAR HDF5_hdf5_LIBRARY_RELEASE) -set(HDF5_LIBRARIES ${vtkhdf5_LIBRARIES}) -set(HDF5_hdf5_LIBRARY_RELEASE ${vtkhdf5_LIBRARIES}) -set(HDF5_INCLUDE_DIRS ${vtkhdf5_INCLUDE_DIRS}) -set(HDF5_C_INCLUDE_DIR ${vtkhdf5_INCLUDE_DIRS}) -set(HDF5_FOUND TRUE) +if (NOT ("${vtkhdf5_LIBRARIES}" STREQUAL "")) + set(HDF5_LIBRARIES ${vtkhdf5_LIBRARIES}) + set(HDF5_hdf5_LIBRARY_RELEASE ${vtkhdf5_LIBRARIES}) + set(HDF5_INCLUDE_DIRS ${vtkhdf5_INCLUDE_DIRS}) + set(HDF5_C_INCLUDE_DIR ${vtkhdf5_INCLUDE_DIRS}) + set(HDF5_FOUND TRUE) +endif () find_package(HDF5 REQUIRED) if(HDF5_FOUND) mark_as_advanced(FORCE HDF5_C_INCLUDE_DIR) @@ -149,7 +151,7 @@ set(XdmfCoreSources XdmfSparseMatrix XdmfSubset XdmfSystemUtils - ${CMAKE_CURRENT_BINARY_DIR}/XdmfVersion + ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/XdmfVersion XdmfVisitor XdmfWriter) @@ -198,16 +200,16 @@ if(WIN32) set_target_properties(XdmfCore PROPERTIES PREFIX ../ IMPORT_PREFIX ../ - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/ + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/ + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/) if (XDMF_STATIC_AND_SHARED AND BUILD_SHARED_LIBS) set_target_properties(XdmfCore_Static PROPERTIES PREFIX ../ IMPORT_PREFIX ../ - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/ + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/ + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/) endif () endif() endif() diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfArray.hpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfArray.hpp index 691d4d32e71538f3cdd79ced102f90af00464347..0558635a998447c4accbc8129fec5a3787cbf8aa 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfArray.hpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfArray.hpp @@ -26,9 +26,9 @@ // C Compatible Includes #include "XdmfCore.hpp" +#include "XdmfItem.hpp" #include "XdmfArrayReference.hpp" #include "XdmfHeavyDataController.hpp" -#include "XdmfItem.hpp" #ifdef __cplusplus diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfArray.tpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfArray.tpp index e21798647cf2ef12169942d9ba5de011d46ddb71..bfb01e4369e8dabbf73adf9fd89f50e990bb1ae2 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfArray.tpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfArray.tpp @@ -662,9 +662,7 @@ XdmfArray::initialize(const std::vector<unsigned int> & dimensions) { mDimensions = dimensions; const unsigned int size = static_cast<unsigned int>( - std::accumulate(dimensions.begin(), - dimensions.end(), - 1, + std::accumulate(dimensions.begin(), dimensions.end(), 1, std::multiplies<unsigned int>())); return this->initialize<T>(size); } @@ -707,10 +705,11 @@ template <typename T> void XdmfArray::pushBack(const T & value) { + this->setIsChanged(true); return boost::apply_visitor(PushBack<T>(value, this), mArray); - this->setIsChanged(true); + } template<typename T> @@ -718,11 +717,12 @@ void XdmfArray::resize(const unsigned int numValues, const T & value) { + this->setIsChanged(true); return boost::apply_visitor(Resize<T>(this, numValues, value), mArray); - this->setIsChanged(true); + } template<typename T> @@ -730,11 +730,8 @@ void XdmfArray::resize(const std::vector<unsigned int> & dimensions, const T & value) { - const unsigned int size = static_cast<unsigned int>( - std::accumulate(dimensions.begin(), - dimensions.end(), - 1, - std::multiplies<unsigned int>())); + const unsigned int size = static_cast<unsigned int>(std::accumulate(dimensions.begin(), dimensions.end(), 1, + std::multiplies<unsigned int>())); this->resize(size, value); mDimensions = dimensions; this->setIsChanged(true); diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfCoreReader.cpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfCoreReader.cpp index 30464be351eb508e371ab94ac8fa0c1e3fffec79..57fea0e879eb120bb773c5ddbafc90bc18e76ac1 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfCoreReader.cpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfCoreReader.cpp @@ -21,9 +21,6 @@ /* */ /*****************************************************************************/ -#include <libxml/uri.h> -#include <libxml/xpointer.h> -#include <libxml/xmlreader.h> #include <boost/algorithm/string/trim.hpp> #include <boost/tokenizer.hpp> #include <cstring> @@ -215,7 +212,6 @@ public: if (mItemFactory->isArrayTag((char *)currNode->name)) { while(childNode != NULL) { if(childNode->type == XML_TEXT_NODE && childNode->content) { -#if 1 //ARL's side const char * content = (char*)childNode->content; // Determine if content is whitespace @@ -237,16 +233,6 @@ public: itemProperties.insert(std::make_pair("XMLDir", mXMLDir)); break; } -#else //VTK's side, breaks XDMF's tests, revisit if problematic in VTK - std::string content((char *)childNode->content); - boost::algorithm::trim(content); - - if(content.size() != 0) { - itemProperties.insert(std::make_pair("Content", content)); - itemProperties.insert(std::make_pair("XMLDir", mXMLDir)); - break; - } -#endif } childNode = childNode->next; } diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfError.hpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfError.hpp index 6f900c7a1c2458d5e8e561d084709406379ecd5e..bfb3fae68ffd49194d0f5dc4d0cc5b730f82278b 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfError.hpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfError.hpp @@ -323,4 +323,4 @@ catch (XdmfError & e) { \ } #endif -#endif +#endif /* XDMFERROR_HPP_ */ diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHDF5Writer.cpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHDF5Writer.cpp index 4f05cd384300b0f3f2d45548784c31d9ad61ef97..54b8b5e2772f48e6a4aceab91899913307afc803 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHDF5Writer.cpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHDF5Writer.cpp @@ -123,6 +123,7 @@ XdmfHDF5Writer::New(const std::string & filePath, return p; } +//Set mUseDeflate(true), and mDeflateFactor(6) for default compression XdmfHDF5Writer::XdmfHDF5Writer(const std::string & filePath) : XdmfHeavyDataWriter(filePath, 1, 800), mImpl(new XdmfHDF5WriterImpl()), @@ -131,6 +132,7 @@ XdmfHDF5Writer::XdmfHDF5Writer(const std::string & filePath) : { } +//Set mUseDeflate(true), and mDeflateFactor(6) for default compression XdmfHDF5Writer::XdmfHDF5Writer(const XdmfHDF5Writer & writerRef) : XdmfHeavyDataWriter(writerRef.getFilePath(), 1, 800), mImpl(new XdmfHDF5WriterImpl()), @@ -1399,7 +1401,7 @@ XdmfHDF5Writer::write(XdmfArray & array) const hsize_t totalDimensionsSize = std::accumulate(current_dims.begin(), current_dims.end(), - 1, + (hsize_t) 1, std::multiplies<hsize_t>()); // The Nth root of the chunk size divided by the dimensions added together const double factor = diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHeavyDataDescription.cpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHeavyDataDescription.cpp index 37e652ff2c6872f16ec28f0ee4b738f6b300504d..39c50ec23048d78236272d547261eee021908142 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHeavyDataDescription.cpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHeavyDataDescription.cpp @@ -76,6 +76,8 @@ XdmfHeavyDataDescription::traverse(const shared_ptr<XdmfBaseVisitor> visitor) } +// C Wrappers + XDMFHEAVYDATADESCRIPTION * XdmfHeavyDataDescriptionNew(char * key, char * value) { diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfInformation.hpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfInformation.hpp index ac50d96d05f32f63657f6f8b6a60837e37e3c63d..507e00483bcb79d5d1eaf87527511514e58951c1 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfInformation.hpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfInformation.hpp @@ -221,7 +221,7 @@ protected: private: - XdmfInformation(const XdmfInformation &); + XdmfInformation(const XdmfInformation &); // Not implemented. void operator=(const XdmfInformation &); // Not implemented. std::string mKey; diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfItem.cpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfItem.cpp index 38c0dfd5dfd178933098af7143deb3c2f0997a30..94508edd47234e528d6ca056dc946693867bd2d6 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfItem.cpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfItem.cpp @@ -34,7 +34,7 @@ XdmfItem::XdmfItem() : { } -XdmfItem::XdmfItem(XdmfItem &refItem) : +XdmfItem::XdmfItem(const XdmfItem &refItem) : mInformations(refItem.mInformations), mIsChanged(true) { diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfItem.hpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfItem.hpp index bdef50ea4ac5f787a5d619a2359c35af716eabec..0fa47a6b27a6ea3e6a91c5e93befbe7487e4ee43 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfItem.hpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfItem.hpp @@ -37,8 +37,12 @@ class XdmfVisitor; // Includes #include <loki/Visitor.h> +#define vtk_libxml2_reference reference // Reversing VTK name mangling #include <libxml/xmlexports.h> #include <libxml/tree.h> +#include <libxml/uri.h> +#include <libxml/xpointer.h> +#include <libxml/xmlreader.h> #include <map> #include <set> #include <string> @@ -377,7 +381,7 @@ public: */ virtual void traverse(const shared_ptr<XdmfBaseVisitor> visitor); - XdmfItem(XdmfItem &); + XdmfItem(const XdmfItem &); protected: @@ -411,7 +415,7 @@ protected: private: - XdmfItem(const XdmfItem &); // Not implemented. +// XdmfItem(const XdmfItem &); // It is implemented for C wrappers. void operator=(const XdmfItem &); // Not implemented. }; diff --git a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfWriter.cpp b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfWriter.cpp index 227c6cedb926312c1643986629672948aa190406..a98def1b918115b75d9b2171db4a2be8e5f7f6a3 100644 --- a/ThirdParty/xdmf3/vtkxdmf3/core/XdmfWriter.cpp +++ b/ThirdParty/xdmf3/vtkxdmf3/core/XdmfWriter.cpp @@ -22,7 +22,6 @@ /*****************************************************************************/ #include <fstream> -#include <libxml/tree.h> #include <sstream> #include <utility> #include "XdmfArray.hpp" @@ -120,6 +119,9 @@ public: (xmlChar*)"Version", (xmlChar*)mVersionString.c_str()); xmlDocSetRootElement(mXMLDocument, mXMLCurrentNode); + if(mHeavyDataWriter->getMode() == XdmfHeavyDataWriter::Default) { + mHeavyDataWriter->openFile(); + } } int mDepth; @@ -374,9 +376,11 @@ XdmfWriter::visit(XdmfArray & array, // Take care of writing to single heavy data file (Default behavior) if(!array.isInitialized() && array.getHeavyDataController(0) && - array.getHeavyDataController(0)->getFilePath().compare(mImpl->mHeavyDataWriter->getFilePath()) != 0 && mImpl->mMode == Default) { - array.read(); + if (array.getHeavyDataController(0)->getFilePath().compare(mImpl->mHeavyDataWriter->getFilePath()) != 0) + { + array.read(); + } } if(array.getHeavyDataController(0) ||