From 09c53af528947eacda9de14a742db8665ab55576 Mon Sep 17 00:00:00 2001 From: Julien Fausty Date: Fri, 13 Jan 2023 18:31:35 +0100 Subject: [PATCH] Catalyst: add catalyst and adios --- CMakeLists.txt | 83 +++++++++++++++++++++++ tplMirror/ADIOS2-2.8.3.zip | 3 + tplMirror/adioscatalyst-921bce64fe.tar.gz | 3 + tplMirror/catalyst-v2.0.0-rc3.tar.gz | 3 + 4 files changed, 92 insertions(+) create mode 100644 tplMirror/ADIOS2-2.8.3.zip create mode 100644 tplMirror/adioscatalyst-921bce64fe.tar.gz create mode 100644 tplMirror/catalyst-v2.0.0-rc3.tar.gz diff --git a/CMakeLists.txt b/CMakeLists.txt index ddff2528..eebfb410 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,7 @@ option( ENABLE_SCOTCH "" ON ) option( ENABLE_SUITESPARSE "" ON ) option( ENABLE_VTK "" ON ) option( ENABLE_VTK_WRAP_PYTHON "" OFF ) +option( ENABLE_CATALYST "Enable building catalyst2" ON) option( ENABLE_FESAPI "" ON ) option( ENABLE_NINJA "" OFF ) @@ -1133,6 +1134,88 @@ endif( ENABLE_MPI ) list( APPEND build_list vtk ) endif( ENABLE_VTK ) +################################ +# Catalyst +################################ + +if (ENABLE_CATALYST) + + # Catalyst supports different implementations of its interface + set( CATALYST_IMPLEMENTATION_NAME "ADIOS2" CACHE STRING "The name of the catalyst implementation you would like to use") + + # Set the type of implementations that GEOSX-TPL provides as options here + set_property(CACHE CATALYST_IMPLEMENTATION_NAME PROPERTY STRINGS ADIOS2) + + + message(STATUS "Catalyst implementation: " ${CATALYST_IMPLEMENTATION_NAME}) + if (NOT CATALYST_IMPLEMENTATION_NAME STREQUAL "ADIOS2") + message(FATAL_ERROR "TPL only provides catalyst-adios2 implementation for now") + endif () + + if (NOT ENABLE_MPI) + message (FATAL_ERROR "ADIOS2 requires MPI in its build") + endif () + + set(ADIOS_DIR "${CMAKE_INSTALL_PREFIX}/adios") + set(ADIOS_URL "${TPL_MIRROR_DIR}/ADIOS2-2.8.3.zip") + + ExternalProject_Add( adios + URL ${ADIOS_URL} + PREFIX ${PROJECT_BINARY_DIR}/adios + INSTALL_DIR ${ADIOS_DIR} + BUILD_COMMAND ${TPL_BUILD_COMMAND} + INSTALL_COMMAND ${TPL_INSTALL_COMMAND} + CMAKE_GENERATOR ${TPL_GENERATOR} + CMAKE_ARGS -DCMAKE_C_COMPILER=${MPI_C_COMPILER} + -DCMAKE_CXX_COMPILER=${MPI_CXX_COMPILER} + -DCMAKE_INSTALL_PREFIX= + -DCMAKE_CXX_STANDARD=11 + -DNoGitVersionString:BOOL=ON + ) + + set(CATALYST_DIR "${CMAKE_INSTALL_PREFIX}/catalyst") + set(CATALYST_URL "${TPL_MIRROR_DIR}/catalyst-v2.0.0-rc3.tar.gz") + + ExternalProject_Add( catalyst + URL ${CATALYST_URL} + PREFIX ${PROJECT_BINARY_DIR}/catalyst + INSTALL_DIR ${CATALYST_DIR} + BUILD_COMMAND ${TPL_BUILD_COMMAND} + INSTALL_COMMAND ${TPL_INSTALL_COMMAND} + CMAKE_GENERATOR ${TPL_GENERATOR} + CMAKE_ARGS -DCMAKE_C_COMPILER=${MPI_C_COMPILER} + -DCMAKE_CXX_COMPILER=${MPI_CXX_COMPILER} + -DCMAKE_INSTALL_PREFIX= + -DCMAKE_CXX_STANDARD=11 + -DNoGitVersionString:BOOL=ON + ) + + + set(CATALYST_IMPLEMENTATION_DIR "${CMAKE_INSTALL_PREFIX}/catalyst_implementation") + set(CATALYST_IMPLEMENTATION_URL "${TPL_MIRROR_DIR}/adioscatalyst-921bce64fe.tar.gz") + + ExternalProject_Add( catalyst_implementation + URL ${CATALYST_IMPLEMENTATION_URL} + PREFIX ${PROJECT_BINARY_DIR}/catalyst_implementation + INSTALL_DIR ${CATALYST_IMPLEMENTATION_DIR} + BUILD_COMMAND ${TPL_BUILD_COMMAND} + INSTALL_COMMAND ${TPL_INSTALL_COMMAND} + CMAKE_GENERATOR ${TPL_GENERATOR} + CMAKE_ARGS -DCMAKE_C_COMPILER=${MPI_C_COMPILER} + -DCMAKE_CXX_COMPILER=${MPI_CXX_COMPILER} + -DCMAKE_INSTALL_PREFIX= + -DCMAKE_CXX_STANDARD=11 + -DADIOS2_DIR=${ADIOS_DIR}/lib/cmake/adios2/ + -Dcatalyst_DIR=${CATALYST_DIR}/lib/cmake/catalyst-2.0/ + -DNoGitVersionString:BOOL=ON + ) + + + + list(APPEND build_list adios catalyst catalyst_implementation) + +endif (ENABLE_CATALYST) + ################################ # FMT ################################ diff --git a/tplMirror/ADIOS2-2.8.3.zip b/tplMirror/ADIOS2-2.8.3.zip new file mode 100644 index 00000000..a77bdd3e --- /dev/null +++ b/tplMirror/ADIOS2-2.8.3.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9d362b79e19edf162c9a12d551e8a99e5c170ac01fffdbda24f9f7300682df4 +size 7494888 diff --git a/tplMirror/adioscatalyst-921bce64fe.tar.gz b/tplMirror/adioscatalyst-921bce64fe.tar.gz new file mode 100644 index 00000000..813bdd50 --- /dev/null +++ b/tplMirror/adioscatalyst-921bce64fe.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a0b6c419a3429eac0d16c64f91721afa94914555766dbc19f1993f68d186d4a +size 28509 diff --git a/tplMirror/catalyst-v2.0.0-rc3.tar.gz b/tplMirror/catalyst-v2.0.0-rc3.tar.gz new file mode 100644 index 00000000..d3681a53 --- /dev/null +++ b/tplMirror/catalyst-v2.0.0-rc3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8862bd0a4d0be2176b4272f9affda1ea4e5092087acbb99a2fe2621c33834e05 +size 718655