From 6d765f7eddcef26b5c81832945cfd3c6dcf19614 Mon Sep 17 00:00:00 2001 From: Andrew Combs Date: Mon, 24 Jul 2023 08:38:43 -0400 Subject: [PATCH] Added Catalyst build support Fixed Make.catalyst include directories --- .../source/BuildingAMReX.rst | 2 ++ Src/CMakeLists.txt | 3 +-- Src/Extern/Conduit/CMakeLists.txt | 1 + Tools/CMake/AMReXConfig.cmake.in | 6 ++++++ Tools/CMake/AMReXOptions.cmake | 5 +++++ Tools/CMake/AMReXSetDefines.cmake | 3 +++ Tools/CMake/AMReXThirdPartyLibraries.cmake | 9 +++++++++ Tools/CMake/AMReX_Config_ND.H.in | 1 + Tools/GNUMake/Make.defs | 11 +++++++++++ Tools/GNUMake/packages/Make.catalyst | 16 ++++++++++++++++ 10 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 Tools/GNUMake/packages/Make.catalyst diff --git a/Docs/sphinx_documentation/source/BuildingAMReX.rst b/Docs/sphinx_documentation/source/BuildingAMReX.rst index 761bfafb0c7..26a6506e5c6 100644 --- a/Docs/sphinx_documentation/source/BuildingAMReX.rst +++ b/Docs/sphinx_documentation/source/BuildingAMReX.rst @@ -508,6 +508,8 @@ The list of available options is reported in the :ref:`table ` bel +------------------------------+-------------------------------------------------+-------------------------+-----------------------+ | AMReX_CONDUIT | Enable Conduit support | NO | YES, NO | +------------------------------+-------------------------------------------------+-------------------------+-----------------------+ + | AMReX_CATALYST | Enable Catalyst support | NO | YES, NO | + +------------------------------+-------------------------------------------------+-------------------------+-----------------------+ | AMReX_ASCENT | Enable Ascent support | NO | YES, NO | +------------------------------+-------------------------------------------------+-------------------------+-----------------------+ | AMReX_HYPRE | Enable HYPRE interfaces | NO | YES, NO | diff --git a/Src/CMakeLists.txt b/Src/CMakeLists.txt index febdea04b5b..a7c627456ed 100644 --- a/Src/CMakeLists.txt +++ b/Src/CMakeLists.txt @@ -43,7 +43,6 @@ include(AMReXParallelBackends) # Add definitions # include(AMReXSetDefines) - # # Find and link third party libraries if needed # @@ -180,7 +179,7 @@ if (AMReX_SENSEI) add_subdirectory(Extern/SENSEI) endif () -if (AMReX_CONDUIT OR AMReX_ASCENT) +if (AMReX_CONDUIT OR AMReX_ASCENT OR AMReX_CATALYST) add_subdirectory(Extern/Conduit) endif () diff --git a/Src/Extern/Conduit/CMakeLists.txt b/Src/Extern/Conduit/CMakeLists.txt index 75e84099f1d..07c4722ac4b 100644 --- a/Src/Extern/Conduit/CMakeLists.txt +++ b/Src/Extern/Conduit/CMakeLists.txt @@ -4,6 +4,7 @@ foreach(D IN LISTS AMReX_SPACEDIM) # TODO: Particles PR merges another file target_sources(amrex_${D}d PRIVATE + AMReX_Conduit_Blueprint_ParticlesI.H AMReX_Conduit_Blueprint.H AMReX_Conduit_Blueprint.cpp ) diff --git a/Tools/CMake/AMReXConfig.cmake.in b/Tools/CMake/AMReXConfig.cmake.in index b08e0fb162e..45d734e8041 100644 --- a/Tools/CMake/AMReXConfig.cmake.in +++ b/Tools/CMake/AMReXConfig.cmake.in @@ -79,6 +79,7 @@ set(AMReX_PARTICLES_FOUND @AMReX_PARTICLES@) set(AMReX_P@AMReX_PARTICLES_PRECISION@_FOUND ON) set(AMReX_SENSEI_FOUND @AMReX_SENSEI@) set(AMReX_CONDUIT_FOUND @AMReX_CONDUIT@) +set(AMReX_CATALYST_FOUND @AMReX_CATALYST@) set(AMReX_ASCENT_FOUND @AMReX_ASCENT@) set(AMReX_HYPRE_FOUND @AMReX_HYPRE@) set(AMReX_PETSC_FOUND @AMReX_PETSC@) @@ -131,6 +132,7 @@ set(AMReX_PARTICLES_PRECISION @AMReX_PARTICLES_PRECISION@) set(AMReX_SENSEI @AMReX_SENSEI@) set(AMReX_NO_SENSEI_AMR_INST @AMReX_NO_SENSEI_AMR_INST@) set(AMReX_CONDUIT @AMReX_CONDUIT@) +set(AMReX_CATALYST @AMReX_CATALYST@) set(AMReX_ASCENT @AMReX_ASCENT@) set(AMReX_HYPRE @AMReX_HYPRE@) set(AMReX_PETSC @AMReX_PETSC@) @@ -197,6 +199,10 @@ if (@AMReX_ASCENT@) find_dependency(Ascent REQUIRED) endif () +if (@AMReX_CATALYST@) + find_dependency(Catalyst REQUIRED) +endif () + if (@AMReX_CONDUIT@) find_dependency(Conduit REQUIRED) endif () diff --git a/Tools/CMake/AMReXOptions.cmake b/Tools/CMake/AMReXOptions.cmake index 47cb35c8e73..a3126c5cbb2 100644 --- a/Tools/CMake/AMReXOptions.cmake +++ b/Tools/CMake/AMReXOptions.cmake @@ -319,6 +319,11 @@ print_option( AMReX_NO_SENSEI_AMR_INST ) option( AMReX_CONDUIT "Enable Conduit support" OFF ) print_option( AMReX_CONDUIT ) +# Catalyst +cmake_dependent_option( AMReX_CATALYST "Enable Catalyst support" OFF + "AMReX_CONDUIT" OFF ) +print_option( AMReX_CATALYST ) + # Ascent cmake_dependent_option( AMReX_ASCENT "Enable Ascent support" OFF "AMReX_CONDUIT" OFF ) diff --git a/Tools/CMake/AMReXSetDefines.cmake b/Tools/CMake/AMReXSetDefines.cmake index c15f7bb23da..03865b066b3 100644 --- a/Tools/CMake/AMReXSetDefines.cmake +++ b/Tools/CMake/AMReXSetDefines.cmake @@ -138,6 +138,9 @@ add_amrex_define( AMREX_NO_SENSEI_AMR_INST NO_LEGACY IF AMReX_NO_SENSEI_AMR_INST # Conduit Support add_amrex_define( AMREX_USE_CONDUIT NO_LEGACY IF AMReX_CONDUIT ) +# Catalyst Support +add_amrex_define( AMREX_USE_CATALYST NO_LEGACY IF AMReX_CATALYST ) + # Ascent Support add_amrex_define( AMREX_USE_ASCENT NO_LEGACY IF AMReX_ASCENT ) diff --git a/Tools/CMake/AMReXThirdPartyLibraries.cmake b/Tools/CMake/AMReXThirdPartyLibraries.cmake index 09239c75367..fc00d2bab3a 100644 --- a/Tools/CMake/AMReXThirdPartyLibraries.cmake +++ b/Tools/CMake/AMReXThirdPartyLibraries.cmake @@ -90,6 +90,15 @@ if (AMReX_ASCENT) # Ascent will find conduit, so check for Ascent first endforeach() endif () +# +# Catalyst +# +if (AMReX_CATALYST) + find_package(Catalyst REQUIRED PATHS "$ENV{CATALYST_IMPLEMENTATION_PATHS}") + foreach(D IN LISTS AMReX_SPACEDIM) + target_link_libraries(amrex_${D}d PUBLIC catalyst::catalyst) + endforeach() +endif () # # Conduit diff --git a/Tools/CMake/AMReX_Config_ND.H.in b/Tools/CMake/AMReX_Config_ND.H.in index d355f001592..5495326c837 100644 --- a/Tools/CMake/AMReX_Config_ND.H.in +++ b/Tools/CMake/AMReX_Config_ND.H.in @@ -41,6 +41,7 @@ #cmakedefine AMREX_USE_SENSEI_INSITU #cmakedefine AMREX_NO_SENSEI_AMR_INST #cmakedefine AMREX_USE_CONDUIT +#cmakedefine AMREX_USE_CATALYST #cmakedefine AMREX_USE_ASCENT #cmakedefine AMREX_USE_EB #cmakedefine AMREX_USE_CUDA diff --git a/Tools/GNUMake/Make.defs b/Tools/GNUMake/Make.defs index 194450a890a..c7fa2a258cb 100644 --- a/Tools/GNUMake/Make.defs +++ b/Tools/GNUMake/Make.defs @@ -216,6 +216,12 @@ else USE_CONDUIT := FALSE endif +ifdef USE_CATALYST + USE_CATALYST := $(strip $(USE_CATALYST)) +else + USE_CATALYST := FALSE +endif + ifdef USE_ASCENT USE_ASCENT := $(strip $(USE_ASCENT)) else @@ -1042,6 +1048,11 @@ ifeq ($(USE_CONDUIT),TRUE) include $(AMREX_HOME)/Tools/GNUMake/packages/Make.conduit endif +ifeq ($(USE_CATALYST),TRUE) + $(info Loading $(AMREX_HOME)/Tools/GNUMake/packages/Make.catalyst...) + include $(AMREX_HOME)/Tools/GNUMake/packages/Make.catalyst +endif + ifeq ($(USE_ASCENT),TRUE) $(info Loading $(AMREX_HOME)/Tools/GNUMake/packages/Make.ascent...) include $(AMREX_HOME)/Tools/GNUMake/packages/Make.ascent diff --git a/Tools/GNUMake/packages/Make.catalyst b/Tools/GNUMake/packages/Make.catalyst new file mode 100644 index 00000000000..83a6d55500e --- /dev/null +++ b/Tools/GNUMake/packages/Make.catalyst @@ -0,0 +1,16 @@ +######################################################### +# Catalyst (https://gitlab.kitware.com/paraview/catalyst) Support +######################################################### + +CPPFLAGS += -DAMREX_USE_CATALYST + +ifdef CATALYST_DIR + INCLUDE_LOCATIONS += $(CATALYST_DIR)/../../../src + VPATH_LOCATIONS += $(CATALYST_DIR)/../../../src + LIBRARY_LOCATIONS += $(CATALYST_DIR)/../../ + LIBRARIES += -Wl,-rpath,$(CATALYST_DIR)/../../ + + LIBRARIES += -lcatalyst + +endif +