Skip to content

Commit 449abb6

Browse files
authored
Merge kintera (#190)
- remove cantera - link to pydisort - link to pyharp - link to kintera - link to snapy
1 parent 2b19496 commit 449abb6

File tree

245 files changed

+1110
-78695
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

245 files changed

+1110
-78695
lines changed

CMakeLists.txt

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ set(CMAKE_CXX_EXTENSIONS OFF)
77
project(canoe
88
LANGUAGES CXX C Fortran
99
)
10+
1011
# search for <Package>_ROOT
1112
cmake_policy(SET CMP0074 NEW)
1213

@@ -27,11 +28,12 @@ endif()
2728
add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=${_ABI_OUTPUT})
2829

2930
# Set MacOS deployment target
30-
set(CMAKE_OSX_DEPLOYMENT_TARGET "15.0")
31+
set(CMAKE_OSX_DEPLOYMENT_TARGET "14.0")
3132

3233
string(ASCII 27 Esc)
3334
set(ColorReset "${Esc}[m")
3435
set(Green "${Esc}[32m")
36+
set(Blue "${Esc}[34m")
3537

3638
message(STATUS "")
3739
message(STATUS "${Green}==== ${PROJECT_NAME} configure begin ====${ColorReset}")
@@ -54,12 +56,12 @@ foreach(_file ${_macro_files})
5456
endforeach()
5557

5658
## 1. set up compiler flags ##
57-
message(STATUS "${PROJECT_NAME}-1. Setting up project compiler flags ...")
59+
message(STATUS "${Blue}${PROJECT_NAME}-1. Setting up project compiler flags ...${ColorReset}")
5860
message(STATUS "Include ${CMAKE_SOURCE_DIR}/cmake/compilers.cmake")
5961
include(${CMAKE_SOURCE_DIR}/cmake/compilers.cmake)
6062

6163
## 2. set up project specific configuration ##
62-
message(STATUS "${PROJECT_NAME}-2. Setting up project parameters ...")
64+
message(STATUS "${Blue}${PROJECT_NAME}-2. Setting up project parameters ...${ColorReset}")
6365

6466
# load custom task
6567
message(STATUS "Load custom task = ${TASK}")
@@ -80,17 +82,21 @@ message(STATUS "Include ${CMAKE_CURRENT_SOURCE_DIR}/cmake/parameters.cmake")
8082
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/parameters.cmake)
8183

8284
## 3. set up project system libraries ##
83-
message(STATUS "${PROJECT_NAME}-3. Setting up system libraries")
85+
message(STATUS "${Blue}${PROJECT_NAME}-3. Setting up system libraries ...${ColorReset}")
86+
find_package(Torch REQUIRED)
8487
find_package(Eigen3 REQUIRED)
85-
find_package(Cantera)
86-
find_package(Torch)
88+
find_package(Disort REQUIRED)
89+
find_package(Harp REQUIRED)
90+
find_package(Kintera REQUIRED)
91+
find_package(Snap REQUIRED)
92+
93+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/fmt.cmake)
94+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/gtest.cmake)
95+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/yamlpp.cmake)
8796

88-
include(${CMAKE_SOURCE_DIR}/cmake/yamlpp.cmake)
89-
include(${CMAKE_SOURCE_DIR}/cmake/gtest.cmake)
9097
include(${CMAKE_SOURCE_DIR}/cmake/athena.cmake)
9198
include(${CMAKE_SOURCE_DIR}/cmake/application.cmake)
9299
include(${CMAKE_SOURCE_DIR}/cmake/rfm.cmake)
93-
include(${CMAKE_SOURCE_DIR}/cmake/disort.cmake)
94100
include(${CMAKE_SOURCE_DIR}/cmake/rrtmg.cmake)
95101
include(${CMAKE_SOURCE_DIR}/cmake/pvfmm.cmake)
96102
include(${CMAKE_SOURCE_DIR}/cmake/minichem.cmake)
@@ -99,20 +105,20 @@ include(${CMAKE_SOURCE_DIR}/cmake/pybind11.cmake)
99105
include(${CMAKE_SOURCE_DIR}/cmake/c3m.cmake)
100106

101107
## 4. set up project configure file and library ##
102-
message(STATUS "${PROJECT_NAME}-4. Setting up project libraries")
103-
configure_file(${CMAKE_SOURCE_DIR}/configure.hpp.in configure.hpp @ONLY)
108+
message(STATUS "${Blue}${PROJECT_NAME}-4. Setting up project libraries ...${ColorReset}")
109+
configure_file(${CMAKE_SOURCE_DIR}/configure.h.in configure.h @ONLY)
104110
add_subdirectory(src)
105111
add_subdirectory(tools)
106112
add_subdirectory(data)
107113

108114
## 5. set up examples and tests
109-
message(STATUS "${PROJECT_NAME}-5. Setting up unit tests")
115+
message(STATUS "${Blue}${PROJECT_NAME}-5. Setting up unit tests ..${ColorReset}")
110116

111117
add_subdirectory(examples)
112-
add_subdirectory(tests)
118+
#add_subdirectory(tests)
113119

114120
## 6. set up python binding ##
115-
add_subdirectory(python)
121+
#add_subdirectory(python)
116122

117123
## 7. add uninstall targets ##
118124
configure_file(

cmake/athena.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ set(patch_command
1919

2020
set(PACKAGE_NAME athenapp)
2121
set(REPO_URL "https://github.com/chengcli/athenapp")
22-
set(REPO_TAG "6a612f4039ac08eacf92ce1644657fd0f340834f")
22+
set(REPO_TAG "f9d3ae8bb84cac6954e6a224cb84bc917450e43d")
2323
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "${patch_command}" ON)

cmake/disort.cmake

Lines changed: 0 additions & 11 deletions
This file was deleted.

cmake/fmt.cmake

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
include(FetchContent)
2+
set(FETCHCONTENT_QUIET TRUE)
3+
4+
set(PACKAGE_NAME fmt)
5+
set(REPO_URL "https://github.com/fmtlib/fmt")
6+
set(REPO_TAG "11.1.2")
7+
8+
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "" ON)
9+
set(FMT_INCLUDE_DIR
10+
"${CMAKE_CURRENT_BINARY_DIR}/_deps/${PACKAGE_NAME}-src/include"
11+
CACHE PATH "fmt include directory")

cmake/gtest.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ set(REPO_TAG "v1.13.0")
77
set(INSTALL_GTEST OFF)
88

99
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "" ON)
10+
include_directories(${gtest_SOURCE_DIR}/include
11+
${gtest_SOURCE_DIR}/googletest/include)

cmake/macros/macro_setup_problem.cmake

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,24 @@ macro(setup_problem namel)
1919
${namel}.${buildl}
2020
PRIVATE ${CMAKE_BINARY_DIR}
2121
${CANOE_INCLUDE_DIR}
22-
SYSTEM
2322
${CANTERA_INCLUDE_DIR}
23+
${EIGEN3_INCLUDE_DIR}
24+
${MPI_CXX_HEADER_DIR}
25+
${MPI_CXX_INCLUDE_PATH}
26+
${NETCDF_INCLUDES}
27+
${PNETCDF_INCLUDE_DIR}
28+
SYSTEM
29+
${TORCH_API_INCLUDE_DIR}
30+
SYSTEM
31+
${TORCH_INCLUDE_DIR}
2432
SYSTEM
2533
${EIGEN3_INCLUDE_DIR}
2634
SYSTEM
27-
${MPI_CXX_HEADER_DIR}
35+
${DISORT_INCLUDE_DIR}
2836
SYSTEM
29-
${MPI_CXX_INCLUDE_PATH}
37+
${HARP_INCLUDE_DIR}
3038
SYSTEM
31-
${NETCDF_INCLUDES}
39+
${KINTERA_INCLUDE_DIR}
3240
SYSTEM
33-
${PNETCDF_INCLUDE_DIR})
41+
${SNAP_INCLUDE_DIR})
3442
endmacro()

cmake/macros/macro_setup_test.cmake

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@ macro(setup_test namel)
66
string(TOLOWER ${CMAKE_BUILD_TYPE} buildl)
77
string(TOUPPER ${CMAKE_BUILD_TYPE} buildu)
88

9-
add_executable(${namel}.${buildl} ${namel}.cpp globals.cpp)
9+
add_executable(${namel}.${buildl} ${namel}.cpp)
1010

1111
set_target_properties(${namel}.${buildl}
1212
PROPERTIES COMPILE_FLAGS ${CMAKE_CXX_FLAGS_${buildu}})
1313

1414
target_include_directories(
1515
${namel}.${buildl}
16-
PRIVATE $<$<BOOL:${PVFMM}>:${PVFMM_SOURCE_DIR}/SCTL/include>
17-
${CMAKE_BINARY_DIR}
16+
PRIVATE ${CMAKE_BINARY_DIR}
1817
${CANOE_INCLUDE_DIR}
1918
${EIGEN3_INCLUDE_DIR}
2019
${MPI_CXX_INCLUDE_PATH}
@@ -23,16 +22,12 @@ macro(setup_test namel)
2322
${PNETCDF_INCLUDE_DIR}
2423
${OpenMP_CXX_INCLUDE_DIR}
2524
${FFTW_INCLUDE_DIRS}
26-
SYSTEM
2725
${CANTERA_INCLUDE_DIR}
28-
SYSTEM
2926
${TORCH_INCLUDE_DIR}
30-
SYSTEM
3127
${TORCH_API_INCLUDE_DIR})
3228

33-
target_link_libraries(
34-
${namel}.${buildl} gtest_main $<$<BOOL:${PVFMM}>:pvfmmStatic>
35-
${CANOE_LIBRARY_${buildu}})
29+
target_link_libraries(${namel}.${buildl} gtest_main
30+
${CANOE_LIBRARY_${buildu}})
3631

3732
add_test(NAME ${namel}.${buildl} COMMAND ${namel}.${buildl})
3833
endmacro()

cmake/modules/FindCantera.cmake

Lines changed: 0 additions & 57 deletions
This file was deleted.

cmake/modules/FindDisort.cmake

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Find the disort includes and library
2+
#
3+
# DISORT_INCLUDE_DIR - where to find disort.hpp
4+
#
5+
# DISORT_LIBRARY - Link these libraries when using DISORT
6+
#
7+
# DISORT_FOUND - True if DISORT found
8+
#
9+
# Normal usage would be:
10+
#
11+
# find_package(Disort REQUIRED) include_directories(${DISORT_INCLUDE_DIR})
12+
# target_link_libraries(${DISORT_LIBRARY})
13+
14+
include(FindPackageHandleStandardArgs)
15+
16+
macro(__disort_determine_version)
17+
execute_process(
18+
COMMAND ${Python3_EXECUTABLE} -c
19+
"import pydisort; print(pydisort.__version__)"
20+
OUTPUT_VARIABLE DISORT_PEP440_VERSION
21+
OUTPUT_STRIP_TRAILING_WHITESPACE
22+
RESULT_VARIABLE result)
23+
24+
if(result GREATER 0)
25+
message(FATAL_ERROR "cannot determine PEP 440 version of Pydisort!")
26+
endif()
27+
28+
if(DISORT_PEP440_VERSION MATCHES "^[0-9]+\.[0-9]+(\.[0-9]+)?")
29+
set(DISORT_VERSION ${CMAKE_MATCH_0})
30+
endif()
31+
32+
unset(result)
33+
endmacro()
34+
35+
# Find Python
36+
set(Python3_FIND_VIRTUALENV ONLY)
37+
find_package(Python3 QUIET COMPONENTS Interpreter)
38+
if(Python3_Interpreter_FOUND)
39+
execute_process(
40+
COMMAND ${Python3_EXECUTABLE} -c "import pydisort; print(pydisort.__file__)"
41+
OUTPUT_VARIABLE disort_init_file
42+
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
43+
44+
cmake_path(CONVERT ${disort_init_file} TO_CMAKE_PATH_LIST disort_init_file
45+
NORMALIZE)
46+
47+
cmake_path(REPLACE_FILENAME disort_init_file lib OUTPUT_VARIABLE
48+
disort_lib_dir)
49+
cmake_path(REPLACE_FILENAME disort_init_file disort OUTPUT_VARIABLE
50+
disort_include_dir)
51+
52+
unset(disort_init_file)
53+
endif()
54+
55+
# Step 1: Find header
56+
find_path(
57+
_DISORT_HEADER_DIR disort.hpp
58+
HINTS ${disort_include_dir}
59+
/opt/homebrew/include
60+
/usr/include
61+
DISORT_DIR/include
62+
DISORT_INC
63+
$ENV{DISORT_INC}
64+
$ENV{DISORT_DIR}/include
65+
$ENV{DISORT_ROOT}/include)
66+
67+
# Step 2: Go one level up from the header location
68+
get_filename_component(DISORT_INCLUDE_DIR ${_DISORT_HEADER_DIR} DIRECTORY)
69+
70+
# Step 3: Save to cache
71+
set(DISORT_INCLUDE_DIR
72+
"${DISORT_INCLUDE_DIR}"
73+
CACHE FILEPATH "Path to a file.")
74+
75+
# Step 4: unset the internal temp variable
76+
unset(_DISORT_HEADER_DIR CACHE)
77+
78+
find_library(
79+
DISORT_LIBRARY disort_release
80+
HINTS ${disort_lib_dir}
81+
/opt/homebrew/lib
82+
/usr/lib/x86_64-linux-gnu/
83+
DISORT_DIR/lib
84+
DISORT_LIB
85+
$ENV{DISORT_LIB}
86+
$ENV{DISORT_DIR}/lib
87+
$ENV{DISORT_ROOT}/lib)
88+
89+
set(disort_required_vars DISORT_LIBRARY DISORT_INCLUDE_DIR)
90+
mark_as_advanced(${disort_required_vars})
91+
92+
if(DISORT_LIBRARY)
93+
__disort_determine_version()
94+
endif()
95+
96+
find_package_handle_standard_args(
97+
Disort
98+
REQUIRED_VARS ${disort_required_vars}
99+
VERSION_VAR DISORT_VERSION)
100+
101+
unset(disort_lib_dir)
102+
unset(disort_include_dir)
103+
unset(disort_required_vars)

0 commit comments

Comments
 (0)