Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Exawind-CI
name: KynemaDriver-CI

on:
push:
Expand All @@ -17,17 +17,17 @@ jobs:
- uses: actions/checkout@v4
- uses: DoozyX/clang-format-lint-action@v0.20
with:
source: './app ./src'
source: 'kynema_driver.cpp ./src'
exclude: '.'
extensions: 'H,h,cpp'
clangFormatVersion: 20
CPU:
needs: Formatting
runs-on: ubuntu-24.04
container:
image: ecpe4s/exawind-snapshot
image: ecpe4s/kynema-snapshot
env:
EXAWIND_MANAGER: /exawind-manager
KYNEMA_MANAGER: /kynema-manager
E4S_MACHINE: true
steps:
- name: Clone
Expand All @@ -37,13 +37,13 @@ jobs:
- name: Tests
run: |
/bin/bash -c " \
source ${EXAWIND_MANAGER}/start.sh && spack-start && \
source ${KYNEMA_MANAGER}/start.sh && spack-start && \
spack env activate e4s-build && \
cd ${EXAWIND_MANAGER}/environments/e4s-build && \
ln -s ${GITHUB_WORKSPACE} exawind && \
spack develop --no-modify-concrete-specs --no-clone exawind@=master && \
cd ${KYNEMA_MANAGER}/environments/e4s-build && \
ln -s ${GITHUB_WORKSPACE} kynema-driver && \
spack develop --no-modify-concrete-specs --no-clone kynema-driver@=main && \
spack concretize -f && \
spack install && \
spack cd -b exawind && \
spack build-env exawind ctest -j $(nproc) -LE no-ci --output-on-failure \
spack cd -b kynema-driver && \
spack build-env kynema-driver ctest -j $(nproc) -LE no-ci --output-on-failure \
"
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "test/meshes"]
path = test/meshes
url = https://github.com/Exawind/meshes.git
url = https://github.com/Kynema/kynema-ugf-meshes.git
65 changes: 37 additions & 28 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
cmake_minimum_required(VERSION 3.14.0 FATAL_ERROR)

project(exawind CXX C)
project(kynema-driver CXX C)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

option(EXAWIND_ENABLE_TESTS "Enable testing suite" ON)
option(EXAWIND_TEST_WITH_FCOMPARE "Check AMR-Wind test plots against gold files" OFF)
option(EXAWIND_SAVE_GOLDS "Provide a directory in which to save golds during testing" OFF)
option(EXAWIND_ENABLE_CUDA "Enable CUDA" OFF)
option(EXAWIND_ENABLE_CUDA_RDC "Enable CUDA relocatable device code" OFF)
option(EXAWIND_ENABLE_ROCM "Enable HIP" OFF)
option(EXAWIND_ENABLE_UMPIRE "Enable Umpire GPU memory pools" OFF)
option(KYNEMA_DRIVER_ENABLE_TESTS "Enable testing suite" ON)
option(KYNEMA_DRIVER_TEST_WITH_FCOMPARE "Check Kynema-SGF test plots against gold files" OFF)
option(KYNEMA_DRIVER_SAVE_GOLDS "Provide a directory in which to save golds during testing" OFF)
option(KYNEMA_DRIVER_ENABLE_CUDA "Enable CUDA" OFF)
option(KYNEMA_DRIVER_ENABLE_CUDA_RDC "Enable CUDA relocatable device code" OFF)
option(KYNEMA_DRIVER_ENABLE_ROCM "Enable HIP" OFF)
option(KYNEMA_DRIVER_ENABLE_UMPIRE "Enable Umpire GPU memory pools" OFF)

if(EXAWIND_ENABLE_CUDA)
if(KYNEMA_DRIVER_ENABLE_CUDA)
enable_language(CUDA)
find_package(CUDAToolkit REQUIRED)
set(EXAWIND_CUDA_ARCH "70" CACHE STRING "CUDA architecture (Use 'Auto' for automatic detection)")
set(KYNEMA_DRIVER_CUDA_ARCH "70" CACHE STRING "CUDA architecture (Use 'Auto' for automatic detection)")
endif()

if(EXAWIND_ENABLE_ROCM)
if(KYNEMA_DRIVER_ENABLE_ROCM)
find_package(hip REQUIRED)
find_package(rocrand REQUIRED CONFIG)
find_package(rocprim REQUIRED CONFIG)
find_package(rocsparse REQUIRED CONFIG)
find_package(hiprand REQUIRED CONFIG)
endif()

if (EXAWIND_ENABLE_UMPIRE)
if (KYNEMA_DRIVER_ENABLE_UMPIRE)
set(CMAKE_PREFIX_PATH ${UMPIRE_DIR} ${CMAKE_PREFIX_PATH})
find_package(Umpire REQUIRED)
include_directories(SYSTEM ${UMPIRE_INCLUDE_DIRS})
endif()

set(CMAKE_PREFIX_PATH ${Nalu-Wind_DIR} ${Trilinos_DIR} ${AMR-Wind_DIR}
set(CMAKE_PREFIX_PATH ${Kynema-UGF_DIR} ${Trilinos_DIR} ${Kynema-SGF_DIR}
${OpenFAST_DIR} ${TIOGA_DIR}
${YAML-CPP_DIR} ${CMAKE_PREFIX_PATH})

find_package(Nalu-Wind REQUIRED)
find_package(Kynema-UGF REQUIRED)
find_package(Trilinos REQUIRED)
find_package(AMR-Wind REQUIRED)
if(NALU_USES_OPENFAST)
find_package(Kynema-SGF REQUIRED)
if(KYNEMA_UGF_USES_OPENFAST)
enable_language(Fortran)
find_package(OpenFAST REQUIRED)
endif()
Expand All @@ -52,7 +52,7 @@ find_package(YAML-CPP 0.6.2 REQUIRED)
find_package(MPI REQUIRED)

# General information about machine, compiler, and build type
message(STATUS "Exawind information:")
message(STATUS "Kynema-Driver information:")
message(STATUS "CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}")
message(STATUS "CMAKE_CXX_COMPILER_ID = ${CMAKE_CXX_COMPILER_ID}")
message(STATUS "CMAKE_CXX_COMPILER_VERSION = ${CMAKE_CXX_COMPILER_VERSION}")
Expand All @@ -63,26 +63,35 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)

set(EXAWIND_LIB_NAME "exwsim")
add_library(${EXAWIND_LIB_NAME} OBJECT)
set(KYNEMA_DRIVER_LIB_NAME "kynema_driver_lib")
add_library(${KYNEMA_DRIVER_LIB_NAME} OBJECT)
add_subdirectory(src)

set(EXAWIND_EXE_NAME "exawind")
add_executable(${EXAWIND_EXE_NAME})
add_subdirectory(app/exawind)
set(KYNEMA_DRIVER_EXE_NAME "kynema_driver")
add_executable(${KYNEMA_DRIVER_EXE_NAME})

if(EXAWIND_ENABLE_CUDA)
include(exawind-utils)
set(ewtargets "${EXAWIND_LIB_NAME};${EXAWIND_EXE_NAME}")
foreach(tgt IN LISTS ewtargets)
target_sources(${KYNEMA_DRIVER_EXE_NAME} PRIVATE
kynema_driver.cpp)
target_link_libraries(${KYNEMA_DRIVER_EXE_NAME} PRIVATE
${KYNEMA_DRIVER_LIB_NAME}
yaml-cpp)
target_include_directories(${KYNEMA_DRIVER_EXE_NAME} SYSTEM PRIVATE ${YAML_CPP_INCLUDE_DIR})
if(KYNEMA_DRIVER_ENABLE_ROCM)
target_compile_definitions(${KYNEMA_DRIVER_EXE_NAME} PRIVATE KYNEMA_DRIVER_ENABLE_ROCM)
endif()

if(KYNEMA_DRIVER_ENABLE_CUDA)
include(kynema-driver-utils)
set(kyntargets "${KYNEMA_DRIVER_LIB_NAME};${KYNEMA_DRIVER_EXE_NAME}")
foreach(tgt IN LISTS kyntargets)
set_cuda_build_properties(${tgt})
endforeach()
endif()

if(EXAWIND_ENABLE_TESTS)
if(KYNEMA_DRIVER_ENABLE_TESTS)
enable_testing()
include(CTest)
add_subdirectory(test)
endif()

install(TARGETS ${EXAWIND_EXE_NAME})
install(TARGETS ${KYNEMA_DRIVER_EXE_NAME})
4 changes: 2 additions & 2 deletions CTestConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
set(CTEST_PROJECT_NAME "Exawind")
set(CTEST_PROJECT_NAME "Kynema")
set(CTEST_NIGHTLY_START_TIME "00:00:00 EDT")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=Exawind")
set(CTEST_DROP_LOCATION "/submit.php?project=Kynema")
set(CTEST_DROP_SITE_CDASH TRUE)
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
[![journal article](https://img.shields.io/badge/DOI-10.1002/we.2886-blue)](https://doi.org/10.1002/we.2886)

This repository contains a pure C++ driver API for coupling
[Nalu-Wind](https://github.com/exawind/nalu-wind) and
[AMR-Wind](https://github.com/exawind/amr-wind) CFD codes.
[Kynema-UGF](https://github.com/kynema/kynema-ugf) and
[Kynema-SGF](https://github.com/kynema/kynema-sgf) CFD codes.

## Citation

Expand All @@ -27,5 +27,5 @@ To cite ExaWind or the usage of this driver and to learn more about the methodol

To pass the format check use this with a new version of `clang-format`:
```
find ./app ./src \( -name "*.cpp" -o -name "*.H" -o -name "*.h" -o -name "*.C" \) -exec clang-format -i {} +
find kynema_driver.cpp ./src \( -name "*.cpp" -o -name "*.H" -o -name "*.h" -o -name "*.C" \) -exec clang-format -i {} +
```
12 changes: 0 additions & 12 deletions app/exawind/CMakeLists.txt

This file was deleted.

4 changes: 2 additions & 2 deletions cmake/exawind-utils.cmake → cmake/kynema-driver-utils.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ function(set_cuda_build_properties target)
get_target_property(_tgt_src ${target} SOURCES)
list(FILTER _tgt_src INCLUDE REGEX "\\.cpp")
set_source_files_properties(${_tgt_src} PROPERTIES LANGUAGE CUDA)
set_target_properties(${target} PROPERTIES CUDA_ARCHITECTURES "${EXAWIND_CUDA_ARCH}")
set_target_properties(${target} PROPERTIES CUDA_ARCHITECTURES "${KYNEMA_DRIVER_CUDA_ARCH}")
set_target_properties(${target} PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON)
#set_target_properties(${target} PROPERTIES LINKER_LANGUAGE CUDA)
if(EXAWIND_ENABLE_CUDA_RDC)
if(KYNEMA_DRIVER_ENABLE_CUDA_RDC)
set_target_properties(${target} PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
endif()
endfunction(set_cuda_build_properties)
Loading
Loading