# ------------------------------------------------------------------------------ # Programmer(s): David J. Gardner @ LLNL # ------------------------------------------------------------------------------ # SUNDIALS Copyright Start # Copyright (c) 2002-2025, Lawrence Livermore National Security # and Southern Methodist University. # All rights reserved. # # See the top-level LICENSE and NOTICE files for details. # # SPDX-License-Identifier: BSD-3-Clause # SUNDIALS Copyright End # ------------------------------------------------------------------------------ # list of tests set(tests) if(BUILD_ARKODE) list(APPEND tests "arkode\;BENCHMARK_ODE") endif() if(BUILD_CVODE) list(APPEND tests "cvode\;BENCHMARK_ODE") endif() if(BUILD_IDA) list(APPEND tests "ida\;BENCHMARK_DAE") endif() # create executables foreach(test_tuple ${tests}) # parse the test tuple list(GET test_tuple 0 package) list(GET test_tuple 1 problem_type) set(sources ${benchmark_prefix}/main_${package}.cpp ${shared_sources} buffers.cpp diffusion.cpp solution.cpp utils.cpp) # set the target name set(target ${package}_diffusion_2D_mpi) # create executable sundials_add_executable(${target} ${sources}) add_dependencies(benchmark ${target}) set_target_properties(${target} PROPERTIES FOLDER "Benchmarks") target_compile_definitions(${target} PRIVATE ${problem_type}) target_include_directories(${target} PRIVATE ${benchmark_prefix}) target_link_libraries(${target} PRIVATE sundials_${package} sundials_nvecparallel MPI::MPI_CXX) if(BUILD_SUNLINSOL_SUPERLUDIST) target_compile_definitions(${target} PRIVATE USE_SUPERLU_DIST) target_link_libraries(${target} PRIVATE sundials_sunlinsolsuperludist sundials_sunmatrixslunrloc) endif() install(TARGETS ${target} DESTINATION "${BENCHMARKS_INSTALL_PATH}/diffusion_2D") sundials_add_benchmark(${target} ${target} diffusion_2D NUM_CORES ${SUNDIALS_BENCHMARK_NUM_CPUS}) endforeach()