Commit e8b85490 authored by Andrew J. Burns (Cont's avatar Andrew J. Burns (Cont

changed tabs to spaces and pulled dsm to a separate folder under core

parent 6e0d6c9b
......@@ -49,6 +49,10 @@ option(XDMF_WRAP_JAVA OFF)
# Test for DSM
option(XDMF_BUILD_DSM OFF)
if(XDMF_BUILD_DSM)
option(XDMF_BUILD_DSM_THREADS ON)
endif(XDMF_BUILD_DSM)
# If we are wrapping either, we need swig
if(XDMF_WRAP_PYTHON OR XDMF_WRAP_JAVA)
find_package(SWIG REQUIRED)
......@@ -214,7 +218,7 @@ if(XDMF_WRAP_JAVA)
endif(XDMF_WRAP_JAVA)
add_subdirectory(core)
include_directories(${XdmfCore_INCLUDE_DIRS})
include_directories(${XdmfCore_INCLUDE_DIRS} ${XdmfDSM_INCLUDE_DIRS})
link_directories(${XDMF_LIBRARY_DIRS})
option(XDMF_BUILD_CORE_ONLY OFF)
......@@ -244,7 +248,11 @@ if(NOT XDMF_BUILD_CORE_ONLY)
XdmfUnstructuredGrid)
add_library(Xdmf ${XdmfSources})
if(XDMF_BUILD_DSM)
target_link_libraries(Xdmf XdmfCore XdmfDSM)
else(XDMF_BUILD_DSM)
target_link_libraries(Xdmf XdmfCore)
endif(XDMF_BUILD_DSM)
if(WIN32)
set_target_properties(Xdmf PROPERTIES
......@@ -264,7 +272,7 @@ if(NOT XDMF_BUILD_CORE_ONLY)
endif(XDMF_WRAP_JAVA)
if(XDMF_WRAP_PYTHON)
XDMF_SWIG_PYTHON(Xdmf XdmfCore)
XDMF_SWIG_PYTHON(Xdmf XdmfCore XdmfDSM)
endif(XDMF_WRAP_PYTHON)
if(BUILD_TESTING)
......
......@@ -135,6 +135,11 @@
#undef XDMFCORE_TEMPLATE
#define XDMFCORE_TEMPLATE extern
#undef XDMFDSM_EXPORT
#define XDMFDSM_EXPORT __declspec(dllimport)
#undef XDMFDSM_TEMPLATE
#define XDMFDSM_TEMPLATE extern
#ifdef Xdmf_EXPORTS
#define XDMF_EXPORT __declspec(dllexport)
#define XDMF_TEMPLATE
......@@ -158,8 +163,10 @@
#else /* _WIN32 */
/* We don't need to export/import since there are no dlls */
#define XDMFCORE_EXPORT
#define XDMFDSM_EXPORT
#define XDMF_EXPORT
#define XDMFCORE_TEMPLATE
#define XDMFDSM_TEMPLATE
#define XDMF_TEMPLATE
#endif /* _WIN32 */
#endif /* _XDMF_HPP */
......
......@@ -62,8 +62,11 @@ swig -v -c++ -python -o XdmfPython.cpp Xdmf.i
#include <XdmfTopology.hpp>
#include <XdmfTopologyType.hpp>
#include <XdmfUnstructuredGrid.hpp>
%}
%import XdmfDSM.i
#else
%module Xdmf
%{
......@@ -254,6 +257,15 @@ swig -v -c++ -python -o XdmfPython.cpp Xdmf.i
from XdmfCore import *
}
#ifdef XDMF_BUILD_DSM
%pythoncode {
from XdmfDSM import *
}
#endif /* XDMF_BUILD_DSM */
%fragment("XdmfItemCast", "header") {
#include <XdmfSharedPtr.hpp>
PyObject * XdmfItemCast(shared_ptr<XdmfItem> obj) {
......
......@@ -23,6 +23,10 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
option(XDMF_BUILD_DSM OFF)
if(XDMF_BUILD_DSM)
option(XDMF_BUILD_DSM_THREADS ON)
endif(XDMF_BUILD_DSM)
mark_as_advanced(CLEAR Boost_INCLUDE_DIR)
find_package(Boost REQUIRED)
if(Boost_FOUND)
......@@ -111,32 +115,6 @@ set(XdmfCoreSources
XdmfVisitor
XdmfWriter)
option(XDMF_BUILD_DSM OFF)
if(XDMF_BUILD_DSM)
set(XdmfCoreSources
${XdmfCoreSources}
XdmfHDF5ControllerDSM
XdmfHDF5WriterDSM
XdmfDSMCommMPI
XdmfDSMBuffer
XdmfDSMManager
XdmfDSMDriver)
find_package(H5FDdsm REQUIRED NO_MODULE)
if(H5FDdsm_FOUND)
include_directories(${H5FDdsm_INCLUDE_DIR})
get_filename_component(H5FDdsm_LIBRARY_DIR
"${H5FDdsm_INCLUDE_DIR}/../lib" REALPATH)
set(XDMF_LIBRARY_DIRS ${XDMF_LIBRARY_DIRS} ${H5FDdsm_LIBRARY_DIR})
get_property(h5fddsm_lib_location TARGET H5FDdsm PROPERTY LOCATION)
set(H5FDdsm_LIBRARIES ${h5fddsm_lib_location})
set(XDMF_LIBRARIES ${XDMF_LIBRARIES} ${H5FDdsm_LIBRARIES})
else(H5FDdsm_FOUND)
message(SEND_ERROR
"Cannot find HDF5 DSM! Please set H5FDdsm_DIR and configure again.")
endif(H5FDdsm_FOUND)
endif(XDMF_BUILD_DSM)
add_library(XdmfCore ${XdmfCoreSources})
link_directories(${XDMF_LIBRARY_DIRS})
target_link_libraries(XdmfCore ${XDMF_LIBRARIES})
......@@ -190,28 +168,21 @@ install(TARGETS XdmfCore
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
if(XDMF_BUILD_DSM)
set(XdmfCore_INCLUDE_DIRS
${Boost_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
${HDF5_INCLUDE_DIR}
${H5FDdsm_INCLUDE_DIR}
${LIBXML2_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS}
CACHE INTERNAL "")
else(XDMF_BUILD_DSM)
set(XdmfCore_INCLUDE_DIRS
${Boost_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
${HDF5_INCLUDE_DIR}
${LIBXML2_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS}
CACHE INTERNAL "")
endif(XDMF_BUILD_DSM)
set(XDMF_LIBRARIES ${XDMF_LIBRARIES} ${CMAKE_INSTALL_PREFIX}/lib)
set(XDMF_BINARIES ${XDMF_BINARIES} ${CMAKE_INSTALL_PREFIX}/bin)
if(XDMF_BUILD_DSM)
add_subdirectory(dsm)
endif(XDMF_BUILD_DSM)
if(BUILD_TESTING)
add_subdirectory(tests)
endif(BUILD_TESTING)
......
......@@ -4,29 +4,19 @@ swig -v -c++ -python -o XdmfCorePython.cpp XdmfCore.i
*/
#ifdef XDMF_BUILD_DSM
%module XdmfCore
%{
#include <mpi.h>
#include <XdmfArray.hpp>
#include <XdmfArrayType.hpp>
#include <XdmfCore.hpp>
#include <XdmfCoreItemFactory.hpp>
#include <XdmfCoreReader.hpp>
#include <XdmfDSMManager.hpp>
#include <XdmfDSMBuffer.hpp>
#include <XdmfDSMCommMPI.hpp>
#include <XdmfError.hpp>
#include <XdmfFunction.hpp>
#include <XdmfHeavyDataController.hpp>
#include <XdmfHeavyDataWriter.hpp>
#include <XdmfHDF5Controller.hpp>
#include <XdmfHDF5Writer.hpp>
#include <XdmfHDF5ControllerDSM.hpp>
#include <XdmfHDF5WriterDSM.hpp>
#include <XdmfInformation.hpp>
#include <XdmfItem.hpp>
#include <XdmfItemProperty.hpp>
......@@ -41,38 +31,6 @@ swig -v -c++ -python -o XdmfCorePython.cpp XdmfCore.i
#include <ProjectVersion.hpp>
%}
#else
%module XdmfCore
%{
#include <XdmfArray.hpp>
#include <XdmfArrayType.hpp>
#include <XdmfCore.hpp>
#include <XdmfCoreItemFactory.hpp>
#include <XdmfCoreReader.hpp>
#include <XdmfError.hpp>
#include <XdmfFunction.hpp>
#include <XdmfHeavyDataController.hpp>
#include <XdmfHeavyDataWriter.hpp>
#include <XdmfHDF5Controller.hpp>
#include <XdmfHDF5Writer.hpp>
#include <XdmfInformation.hpp>
#include <XdmfItem.hpp>
#include <XdmfItemProperty.hpp>
#include <XdmfSharedPtr.hpp>
#include <XdmfSparseMatrix.hpp>
#include <XdmfSubset.hpp>
#include <XdmfSystemUtils.hpp>
#include <XdmfVersion.hpp>
#include <XdmfVisitor.hpp>
#include <XdmfWriter.hpp>
#include <ProjectVersion.hpp>
%}
#endif
#ifdef SWIGJAVA
// Ignore const overloaded methods
......@@ -182,17 +140,6 @@ swig -v -c++ -python -o XdmfCorePython.cpp XdmfCore.i
}
}
#ifdef XDMF_BUILD_DSM
%include mpi4py/mpi4py.i
%mpi4py_typemap(Comm, MPI_Comm);
%include <typemaps.i>
%apply int & INOUT {int & data };
#endif
/*This causes it to avoid throwing a warning about overloaded functions.
We are doing this intentionally so suppressing the warning makes sense.*/
#pragma SWIG nowarn=509
......@@ -491,10 +438,6 @@ swig -v -c++ -python -o XdmfCorePython.cpp XdmfCore.i
%shared_ptr(XdmfFunction)
%shared_ptr(XdmfHDF5Controller)
%shared_ptr(XdmfHDF5Writer)
#ifdef XDMF_BUILD_DSM
%shared_ptr(XdmfHDF5ControllerDSM)
%shared_ptr(XdmfHDF5WriterDSM)
#endif
%shared_ptr(XdmfHeavyDataController)
%shared_ptr(XdmfHeavyDataWriter)
%shared_ptr(XdmfInformation)
......@@ -534,14 +477,6 @@ swig -v -c++ -python -o XdmfCorePython.cpp XdmfCore.i
%include CMake/VersionSuite/ProjectVersion.hpp
%include XdmfVersion.hpp
#ifdef XDMF_BUILD_DSM
%include XdmfHDF5ControllerDSM.hpp
%include XdmfHDF5WriterDSM.hpp
%include XdmfDSMManager.hpp
%include XdmfDSMBuffer.hpp
%include XdmfDSMCommMPI.hpp
#endif
%include XdmfArray.hpp
%include XdmfArrayType.hpp
......
project(XdmfDSM)
cmake_minimum_required(VERSION 2.6)
if (POLICY CMP0015)
cmake_policy(SET CMP0015 NEW)
endif (POLICY CMP0015)
set(XdmfDSMLinkLibraries XdmfCore)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
option(XDMF_BUILD_DSM_THREADS ON)
mark_as_advanced(CLEAR Boost_INCLUDE_DIR)
find_package(Boost REQUIRED)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
mark_as_advanced(FORCE Boost_INCLUDE_DIR)
endif(Boost_FOUND)
mark_as_advanced(CLEAR HDF5_C_INCLUDE_DIR)
mark_as_advanced(CLEAR HDF5_hdf5_LIBRARY_DEBUG)
mark_as_advanced(CLEAR HDF5_hdf5_LIBRARY_RELEASE)
find_package(HDF5 REQUIRED)
if(HDF5_FOUND)
mark_as_advanced(FORCE HDF5_C_INCLUDE_DIR)
mark_as_advanced(FORCE HDF5_hdf5_LIBRARY_DEBUG)
mark_as_advanced(FORCE HDF5_hdf5_LIBRARY_RELEASE)
include_directories(${HDF5_INCLUDE_DIRS})
include_directories(${HDF5_C_INCLUDE_DIR})
set(HDF5_LIBRARIES ${HDF5_hdf5_LIBRARY_RELEASE})
# FIXME: Would like to get this info from HDF5 so we don't have conflicting
# MPI versions
if(HDF5_IS_PARALLEL)
find_package(MPI REQUIRED)
if(MPI_FOUND)
include_directories(${MPI_INCLUDE_PATH})
set(XdmfDSMLinkLibraries ${XdmfDSMLinkLibraries} ${MPI_LIBRARY} ${MPI_EXTRA_LIBRARY})
endif(MPI_FOUND)
endif(HDF5_IS_PARALLEL)
set(XdmfDSMLinkLibraries ${XdmfDSMLinkLibraries} ${HDF5_LIBRARIES})
endif(HDF5_FOUND)
find_package(LibXml2 REQUIRED)
if(LIBXML2_FOUND)
include_directories(${LIBXML2_INCLUDE_DIR})
set(XdmfDSMLinkLibraries ${XdmfDSMLinkLibraries} ${LIBXML2_LIBRARIES})
endif(LIBXML2_FOUND)
set(XdmfDSMSources
XdmfHDF5ControllerDSM
XdmfHDF5WriterDSM
XdmfDSMCommMPI
XdmfDSMBuffer
XdmfDSMManager
XdmfDSMDriver)
if (XDMF_BUILD_DSM_THREADS)
add_definitions(-DXDMF_BUILD_DSM_THREADS)
endif (XDMF_BUILD_DSM_THREADS)
if (XDMF_BUILD_DSM_THREADS)
find_package(H5FDdsm REQUIRED NO_MODULE)
if(H5FDdsm_FOUND)
include_directories(${H5FDdsm_INCLUDE_DIR})
get_property(h5fddsm_lib_location TARGET H5FDdsm PROPERTY LOCATION)
set(H5FDdsm_LIBRARIES ${h5fddsm_lib_location})
set(XdmfDSMLinkLibraries ${XdmfDSMLinkLibraries} ${H5FDdsm_LIBRARIES})
else(H5FDdsm_FOUND)
message(SEND_ERROR
"Cannot find HDF5 DSM! Please set H5FDdsm_DIR or disable XDMF_BUILD_DSM_THREADS and configure again.")
endif(H5FDdsm_FOUND)
endif (XDMF_BUILD_DSM_THREADS)
add_library(XdmfDSM ${XdmfDSMSources})
link_directories(${XDMF_LIBRARY_DIRS})
target_link_libraries(XdmfDSM ${XdmfDSMLinkLibraries})
if(WIN32)
add_definitions(-D_HDF5USEDLL_ -D_HDF5USEHLDLL_)
set_target_properties(XdmfDSM PROPERTIES
DEFINE_SYMBOL XdmfDSM_EXPORTS)
if(NOT MSVC10)
set_target_properties(XdmfDSM PROPERTIES
PREFIX ../
IMPORT_PREFIX ../
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
endif(NOT MSVC10)
endif(WIN32)
if(XDMF_WRAP_JAVA)
XDMF_SWIG_JAVA(XdmfDSM Compiled_XdmfCore_Jar)
endif(XDMF_WRAP_JAVA)
if(XDMF_WRAP_PYTHON)
XDMF_SWIG_PYTHON(XdmfDSM XdmfCore)
endif(XDMF_WRAP_PYTHON)
set(XDMF_LIBRARY_DIRS ${XDMF_LIBRARY_DIRS} PARENT_SCOPE)
if(WIN32)
set(XDMFDSM_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/XdmfDSM.lib PARENT_SCOPE)
endif(WIN32)
if(UNIX)
set(XDMFDSM_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/libXdmfDSM.so
PARENT_SCOPE)
endif(UNIX)
if(APPLE)
set(XDMFDSM_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/libXdmfDSM.dylib
PARENT_SCOPE)
endif(APPLE)
file(GLOB_RECURSE
XdmfDSMHeaders
"*.hpp" "*.tpp" "*.i"
"../../CMake/VersionSuite/*.hpp")
install(FILES ${XdmfDSMHeaders} DESTINATION include)
install(TARGETS XdmfDSM
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
if(XDMF_BUILD_DSM_THREADS)
set(XdmfDSM_INCLUDE_DIRS
${Boost_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
${HDF5_INCLUDE_DIR}
${H5FDdsm_INCLUDE_DIR}
${LIBXML2_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS}
CACHE INTERNAL "")
else(XDMF_BUILD_DSM_THREADS)
set(XdmfDSM_INCLUDE_DIRS
${Boost_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
${HDF5_INCLUDE_DIR}
${LIBXML2_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS}
CACHE INTERNAL "")
endif(XDMF_BUILD_DSM_THREADS)
include_directories(${XdmfCore_INCLUDE_DIRS} ${XdmfDSM_INCLUDE_DIRS})
if(BUILD_TESTING)
add_subdirectory(tests)
endif(BUILD_TESTING)
/*****************************************************************************/
/* XDMF */
/* eXtensible Data Model and Format */
/* */
/* Id : XdmfCore.hpp */
/* */
/* Author: */
/* Kenneth Leiter */
/* kenneth.leiter@arl.army.mil */
/* US Army Research Laboratory */
/* Aberdeen Proving Ground, MD */
/* */
/* Copyright @ 2011 US Army Research Laboratory */
/* All Rights Reserved */
/* See Copyright.txt for details */
/* */
/* This software is distributed WITHOUT ANY WARRANTY; without */
/* even the implied warranty of MERCHANTABILITY or FITNESS */
/* FOR A PARTICULAR PURPOSE. See the above copyright notice */
/* for more information. */
/* */
/*****************************************************************************/
#ifndef _XDMF_HPP
#ifndef _XDMFDSM_HPP
#define _XDMFDSM_HPP
/* Keep all our Win32 Conversions here */
#ifdef _WIN32
/* Used to export/import from the dlls */
#undef XDMFCORE_EXPORT
#define XDMFCORE_EXPORT __declspec(dllimport)
#undef XDMFCORE_TEMPLATE
#define XDMFCORE_TEMPLATE extern
#ifdef XdmfDSM_EXPORTS
#define XDMFDSM_EXPORT __declspec(dllexport)
#define XDMFDSM_TEMPLATE
#else /* Xdmf_EXPORTS */
#define XDMFDSM_EXPORT __declspec(dllimport)
#define XDMFDSM_TEMPLATE extern
#endif /* Xdmf_EXPORTS */
/* Compiler Warnings */
#ifndef XDMF_DEBUG
#pragma warning( disable : 4231 ) /* nonstandard extension used : 'extern' before template explicit instantiation */
#pragma warning( disable : 4251 ) /* needs to have dll-interface to be used by clients (Most of these guys are in private */
#pragma warning( disable : 4275 ) /* non dll-interface class 'std::_Container_base_aux' used as base for dll-interface class */
#pragma warning( disable : 4373 ) /* virtual function overrides, parameters only differed by const/volatile qualifiers */
#pragma warning( disable : 4101 ) /* 'exception' : unreferenced local variable */
#pragma warning( disable : 4355 ) /* 'this' : used in base member initializer list */
#pragma warning( disable : 4748 ) /* /GS can not protect parameters and local variables from local buffer overrun (turned off op)*/
#endif /* XDMF_DEBUG */
/* Compiler Optimizations will result in an 'internal compiler error', so turn them off */
#pragma optimize("g", off)
#else /* _WIN32 */
/* We don't need to export/import since there are no dlls */
#define XDMFCORE_EXPORT
#define XDMFDSM_EXPORT
#define XDMFCORE_TEMPLATE
#define XDMFDSM_TEMPLATE
#endif /* _WIN32 */
#endif /* _XDMFCORE_HPP */
#endif /*_XDMF_HPP */
/*
XdmfDSMPython.cpp:
swig -v -c++ -python -o XdmfDSMPython.cpp XdmfDSM.i
*/
%module XdmfDSM
%{
#include <mpi.h>
#include <XdmfArray.hpp>
#include <XdmfArrayType.hpp>
#include <XdmfCore.hpp>
#include <XdmfCoreItemFactory.hpp>
#include <XdmfCoreReader.hpp>
#include <XdmfDSM.hpp>
#include <XdmfDSMManager.hpp>
#include <XdmfDSMBuffer.hpp>
#include <XdmfDSMCommMPI.hpp>
#include <XdmfError.hpp>
#include <XdmfFunction.hpp>
#include <XdmfHeavyDataController.hpp>
#include <XdmfHeavyDataWriter.hpp>
#include <XdmfHDF5Controller.hpp>
#include <XdmfHDF5Writer.hpp>
#include <XdmfHDF5ControllerDSM.hpp>
#include <XdmfHDF5WriterDSM.hpp>
#include <XdmfInformation.hpp>
#include <XdmfItem.hpp>
#include <XdmfItemProperty.hpp>
#include <XdmfSharedPtr.hpp>
#include <XdmfSparseMatrix.hpp>
#include <XdmfSubset.hpp>
#include <XdmfSystemUtils.hpp>
#include <XdmfVersion.hpp>
#include <XdmfVisitor.hpp>
#include <XdmfWriter.hpp>
#include <ProjectVersion.hpp>
%}
%import XdmfCore.i
#ifdef SWIGJAVA
%pragma(java) jniclasscode=%{
static {
try {
System.loadLibrary("XdmfDSMJava");
}
catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load for" +
"XdmfDSMJava\n" + e);
System.exit(1);
}
}
%}
#endif /* SWIGJAVA */
#ifdef SWIGPYTHON
%include mpi4py/mpi4py.i
//%mpi4py_typemap(Comm, MPI_Comm);
%include <typemaps.i>
%apply int & INOUT {int & data };
#endif /* SWIGPYTHON */
// Shared Pointer Templates
%shared_ptr(XdmfHDF5ControllerDSM)
%shared_ptr(XdmfHDF5WriterDSM)
%include XdmfDSM.hpp
%include XdmfHDF5ControllerDSM.hpp
%include XdmfHDF5WriterDSM.hpp
%include XdmfDSMManager.hpp
%include XdmfDSMBuffer.hpp
%include XdmfDSMCommMPI.hpp
......@@ -56,7 +56,7 @@
// Forward Declarations
// Includes
#include <XdmfCore.hpp>
#include <XdmfDSM.hpp>
#include <XdmfDSMCommMPI.hpp>
#include <mpi.h>
......@@ -103,7 +103,7 @@
* It is primarily for allowing the XdmfDSM to interact with HDF5 dsm
* without threads.
*/
class XDMFCORE_EXPORT XdmfDSMBuffer {
class XDMFDSM_EXPORT XdmfDSMBuffer {
public:
......
......@@ -37,7 +37,7 @@
#define XDMF_DSM_NUM_CONNECTION_IDS 0x02
// Includes
#include <XdmfCore.hpp>
#include <XdmfDSM.hpp>
#include <mpi.h>
......@@ -50,7 +50,7 @@
* It provides more access to the the intra and inter communicators.
* It is primarily for allowing the XdmfDSM to interact with HDF5 dsm without threads.
*/
class XDMFCORE_EXPORT XdmfDSMCommMPI {
class XDMFDSM_EXPORT XdmfDSMCommMPI {
public:
......
......@@ -59,7 +59,7 @@
#include <XdmfDSMBuffer.hpp>
#include <XdmfDSMCommMPI.hpp>
#include <XdmfDSMManager.hpp>
#include <XdmfCore.hpp>
#include <XdmfDSM.hpp>
#include <mpi.h>
#include "H5Ipublic.h"
......@@ -82,51 +82,53 @@
#define XDMF_DSM (XDMF_dsm_init())
extern "C" {
XDMFCORE_EXPORT hid_t XDMF_dsm_init(void);