diff --git a/examples/heatTransfer/CMakeLists.txt b/examples/heatTransfer/CMakeLists.txt index bca588c58d2509e99148fb0d384df8b7a6b916f6..02e4cd30c850a0af1b3cd322cd386cb61a766109 100644 --- a/examples/heatTransfer/CMakeLists.txt +++ b/examples/heatTransfer/CMakeLists.txt @@ -3,27 +3,5 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# -add_executable(heatTransfer_adios main.cpp HeatTransfer.cpp Settings.cpp IO_adios2.cpp) - -if(ADIOS_USE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - target_include_directories(heatTransfer_adios PRIVATE ${MPI_C_INCLUDE_PATH}) - target_link_libraries(heatTransfer_adios adios2 ${MPI_C_LIBRARIES}) -else(ADIOS_USE_MPI) - target_link_libraries(heatTransfer_adios adios2) -endif() - -if(ADIOS_USE_ADIOS1) - find_package(ADIOS1 REQUIRED) - add_executable(heatTransfer_adios1 main.cpp HeatTransfer.cpp Settings.cpp IO_adios1.cpp) - if(ADIOS_USE_MPI) - target_include_directories(heatTransfer_adios1 PRIVATE ${MPI_C_INCLUDE_PATH}) - target_link_libraries(heatTransfer_adios1 adios1::adios ${MPI_C_LIBRARIES}) - else(ADIOS_USE_MPI) - target_compile_definitions(heatTransfer_adios1 PRIVATE -D_NOMPI) - target_link_libraries(heatTransfer_adios1 adios1::adios) - endif() -endif() - +add_subdirectory(write) add_subdirectory(read) - diff --git a/examples/heatTransfer/read/CMakeLists.txt b/examples/heatTransfer/read/CMakeLists.txt index 993d1d0474d30711d04b45206f366efecee04fcc..c82cf01a868db9bfbd2b445abef274c5cb866ece 100644 --- a/examples/heatTransfer/read/CMakeLists.txt +++ b/examples/heatTransfer/read/CMakeLists.txt @@ -3,25 +3,25 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# -#add_executable(heatRead_adios heatRead_adios.cpp) -# -#if(ADIOS_USE_MPI) -# find_package(MPI COMPONENTS C REQUIRED) -# target_include_directories(heatRead_adios PRIVATE ${MPI_C_INCLUDE_PATH}) -# target_link_libraries(heatRead_adios adios2 ${MPI_C_LIBRARIES}) -#else(ADIOS_USE_MPI) -# target_link_libraries(heatRead_adios adios2) -#endif() - -if(ADIOS_USE_ADIOS1) +if(ADIOS_USE_MPI) + if(ADIOS_USE_ADIOS1) find_package(ADIOS1 REQUIRED) - add_executable(heatRead_adios1 heatRead_adios1.cpp PrintData.cpp) - if(ADIOS_USE_MPI) - target_include_directories(heatRead_adios1 PRIVATE ${MPI_C_INCLUDE_PATH}) - target_link_libraries(heatRead_adios1 adios1::adios ${MPI_C_LIBRARIES}) - else(ADIOS_USE_MPI) - target_compile_definitions(heatRead_adios1 PRIVATE -D_NOMPI) - target_link_libraries(heatRead_adios1 adios1::adios) + find_package(MPI COMPONENTS C REQUIRED) + + add_executable(headTransfer_read_adios1 heatRead_adios1.cpp PrintData.cpp) + target_include_directories(headTransfer_read_adios1 + PRIVATE ${MPI_C_INCLUDE_PATH} + ) + target_link_libraries(headTransfer_read_adios1 + adios1::adios ${MPI_C_LIBRARIES} + ) + + if(ADIOS_BUILD_TESTING) + add_test( + NAME Example::heatTransfer::read::adios1 + COMMAND heatRead_adios1 + ) endif() + endif() endif() diff --git a/examples/heatTransfer/read/heatRead_adios1.cpp b/examples/heatTransfer/read/heatRead_adios1.cpp index d596d223efd8c5b11d06d42f0881ec85f15ffe34..bcedac6d5a84b700b9e7045eee1b222146b29341 100644 --- a/examples/heatTransfer/read/heatRead_adios1.cpp +++ b/examples/heatTransfer/read/heatRead_adios1.cpp @@ -1,7 +1,5 @@ -#define OMPI_SKIP_MPICXX 1 // workaround for OpenMPI forcing C++ bindings #include <mpi.h> -#undef OMPI_SKIP_MPICXX #include "adios_read.h" #include <cstdint> diff --git a/examples/heatTransfer/write/CMakeLists.txt b/examples/heatTransfer/write/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..eb72a2af9bd234c09be42c8b00a69ffbca7114e4 --- /dev/null +++ b/examples/heatTransfer/write/CMakeLists.txt @@ -0,0 +1,51 @@ +#------------------------------------------------------------------------------# +# Distributed under the OSI-approved Apache License, Version 2.0. See +# accompanying file Copyright.txt for details. +#------------------------------------------------------------------------------# + +if(ADIOS_USE_MPI) + find_package(MPI COMPONENTS C REQUIRED) + + add_executable(heatTransfer_write_adios2 + main.cpp + HeatTransfer.cpp + Settings.cpp + IO_adios2.cpp + ) + target_include_directories(heatTransfer_write_adios2 + PRIVATE ${MPI_C_INCLUDE_PATH} + ) + target_link_libraries(heatTransfer_write_adios2 adios2 ${MPI_C_LIBRARIES}) + + if(ADIOS_BUILD_TESTING) + add_test( + NAME Example::heatTransfer::write::adios2 + COMMAND heatTransfer_write_adios2 + ) + endif() + + if(ADIOS_USE_ADIOS1) + find_package(ADIOS1 REQUIRED) + find_package(MPI COMPONENTS C REQUIRED) + + add_executable(heatTransfer_write_adios1 + main.cpp + HeatTransfer.cpp + Settings.cpp + IO_adios1.cpp + ) + target_include_directories(heatTransfer_write_adios1 + PRIVATE ${MPI_C_INCLUDE_PATH} + ) + target_link_libraries(heatTransfer_write_adios1 + adios1::adios ${MPI_C_LIBRARIES} + ) + + if(ADIOS_BUILD_TESTING) + add_test( + NAME Example::heatTransfer::write::adios1 + COMMAND heatTransfer_write_adios1 + ) + endif() + endif() +endif() diff --git a/examples/heatTransfer/HeatTransfer.cpp b/examples/heatTransfer/write/HeatTransfer.cpp similarity index 100% rename from examples/heatTransfer/HeatTransfer.cpp rename to examples/heatTransfer/write/HeatTransfer.cpp diff --git a/examples/heatTransfer/HeatTransfer.h b/examples/heatTransfer/write/HeatTransfer.h similarity index 95% rename from examples/heatTransfer/HeatTransfer.h rename to examples/heatTransfer/write/HeatTransfer.h index 5233d3f5f48fdbc200149b4423c9c3824a4006dc..a52acbb742ba6cd617bcd2b7f94e8ec760c13cb9 100644 --- a/examples/heatTransfer/HeatTransfer.h +++ b/examples/heatTransfer/write/HeatTransfer.h @@ -11,9 +11,7 @@ #ifndef HEATTRANSFER_H_ #define HEATTRANSFER_H_ -#define OMPI_SKIP_MPICXX 1 // workaround for OpenMPI forcing C++ bindings #include <mpi.h> -#undef OMPI_SKIP_MPICXX #include <vector> diff --git a/examples/heatTransfer/IO.h b/examples/heatTransfer/write/IO.h similarity index 84% rename from examples/heatTransfer/IO.h rename to examples/heatTransfer/write/IO.h index 0f774336f18e81cee951f4c5879f7733e2f21943..53caaf599fe4e1c2aac8f4cd58c216c7888adf6e 100644 --- a/examples/heatTransfer/IO.h +++ b/examples/heatTransfer/write/IO.h @@ -14,13 +14,10 @@ #include "HeatTransfer.h" #include "Settings.h" -#define OMPI_SKIP_MPICXX 1 // workaround for OpenMPI forcing C++ bindings #include <mpi.h> -#undef OMPI_SKIP_MPICXX class IO { - public: IO(const Settings &s, MPI_Comm comm); ~IO(); diff --git a/examples/heatTransfer/IO_adios1.cpp b/examples/heatTransfer/write/IO_adios1.cpp similarity index 100% rename from examples/heatTransfer/IO_adios1.cpp rename to examples/heatTransfer/write/IO_adios1.cpp diff --git a/examples/heatTransfer/IO_adios2.cpp b/examples/heatTransfer/write/IO_adios2.cpp similarity index 100% rename from examples/heatTransfer/IO_adios2.cpp rename to examples/heatTransfer/write/IO_adios2.cpp diff --git a/examples/heatTransfer/IO_ascii.cpp b/examples/heatTransfer/write/IO_ascii.cpp similarity index 100% rename from examples/heatTransfer/IO_ascii.cpp rename to examples/heatTransfer/write/IO_ascii.cpp diff --git a/examples/heatTransfer/IO_hdf5_a.cpp b/examples/heatTransfer/write/IO_hdf5_a.cpp similarity index 100% rename from examples/heatTransfer/IO_hdf5_a.cpp rename to examples/heatTransfer/write/IO_hdf5_a.cpp diff --git a/examples/heatTransfer/Settings.cpp b/examples/heatTransfer/write/Settings.cpp similarity index 98% rename from examples/heatTransfer/Settings.cpp rename to examples/heatTransfer/write/Settings.cpp index 4337a00a33f7b3865bceb1feeb569537f1e6271c..4922afd5fdf640d258c110a8b1f3adc38ef613f0 100644 --- a/examples/heatTransfer/Settings.cpp +++ b/examples/heatTransfer/write/Settings.cpp @@ -11,6 +11,8 @@ #include <cstdlib> #include <errno.h> +#include <stdexcept> + #include "Settings.h" static unsigned int convertToUint(std::string varName, char *arg) @@ -80,5 +82,3 @@ Settings::Settings(int argc, char *argv[], int rank, int nproc) : rank{rank} else rank_down = rank + npx; } - -Settings::~Settings() {} diff --git a/examples/heatTransfer/Settings.h b/examples/heatTransfer/write/Settings.h similarity index 98% rename from examples/heatTransfer/Settings.h rename to examples/heatTransfer/write/Settings.h index 97e85ea310adcd55a2ccc10ca8333346461b3949..20f83f395ce322b97da39edfff0afdd121c2d9e5 100644 --- a/examples/heatTransfer/Settings.h +++ b/examples/heatTransfer/write/Settings.h @@ -11,7 +11,7 @@ #ifndef SETTINGS_H_ #define SETTINGS_H_ -#include <memory> +#include <string> class Settings { @@ -48,7 +48,6 @@ public: int rank_down; Settings(int argc, char *argv[], int rank, int nproc); - ~Settings(); }; #endif /* SETTINGS_H_ */ diff --git a/examples/heatTransfer/main.cpp b/examples/heatTransfer/write/main.cpp similarity index 100% rename from examples/heatTransfer/main.cpp rename to examples/heatTransfer/write/main.cpp diff --git a/include/engine/adios1/ADIOS1Reader.h b/include/engine/adios1/ADIOS1Reader.h index 64566ec4edbdebda353e531560f2857ccbf7e45f..041887ba9150ea625da4dc92548188130e5067cb 100644 --- a/include/engine/adios1/ADIOS1Reader.h +++ b/include/engine/adios1/ADIOS1Reader.h @@ -23,10 +23,13 @@ namespace adios { -#ifdef ADIOS_NOMPI +#ifndef ADIOS_HAVE_MPI #define _NOMPI 1 #endif #include "adios_read_v2.h" // this is adios 1.x header file +#ifndef ADIOS_HAVE_MPI +#undef _NOMPI +#endif class ADIOS1Reader : public Engine { diff --git a/include/engine/adios1/ADIOS1Writer.h b/include/engine/adios1/ADIOS1Writer.h index a8c114b28121aa9d23d3c179a2ddf70caae723cc..0a3ebff9b83bbb99e53d9d49196834c5944ddb06 100644 --- a/include/engine/adios1/ADIOS1Writer.h +++ b/include/engine/adios1/ADIOS1Writer.h @@ -18,11 +18,11 @@ namespace adios { -#ifdef ADIOS_NOMPI +#ifndef ADIOS_HAVE_MPI #define _NOMPI #endif #include "adios.h" // this is adios 1.x header file -#ifdef ADIOS_NOMPI +#ifndef ADIOS_HAVE_MPI #undef _NOMPI #endif diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index d3340d88ae711916eb5b02d6fef3173c3533abf3..41db2ec29d4f6f633e55da15b7c8e55597b3660b 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -82,31 +82,3 @@ if(ADIOS_USE_MPI) else() target_sources(adios2 PRIVATE mpidummy.cpp) endif() - -if(ADIOS_USE_ADIOS1) - find_package(ADIOS1 REQUIRED) - target_sources(adios2 PRIVATE - engine/adios1/ADIOS1Reader.cpp - engine/adios1/ADIOS1Writer.cpp - ) - target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_ADIOS1) - target_link_libraries(adios2 PRIVATE adios1::adios) -endif() - -if(ADIOS_USE_DataMan) - find_package(DataMan REQUIRED) - target_sources(adios2 PRIVATE - engine/dataman/DataManReader.cpp - engine/dataman/DataManWriter.cpp - transport/wan/MdtmMan.cpp - ) - target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_DATAMAN) - target_link_libraries(adios2 PRIVATE DataMan::DataMan) -endif() - -if(ADIOS_USE_BZip2) - find_package(BZip2 REQUIRED) - target_sources(adios2 PRIVATE transform/BZip2.cpp) - target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_BZIP2) - target_link_libraries(adios2 PRIVATE BZip2::BZip2) -endif()