cmake_minimum_required(VERSION 3.23) # Set CUDA architecture set(CMAKE_CUDA_ARCHITECTURES "75") # Set the CUDA compiler manually set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc) project(N_Baryon LANGUAGES C CXX CUDA) # Set C++ standard set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_COMPILER "mpicxx") # Set CUDA standard set(CMAKE_CUDA_STANDARD 20) set(CMAKE_CUDA_STANDARD_REQUIRED ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=native") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto=auto") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler=-fopenmp") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler=-mtune=native") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler=-march=native") # Make our cmake modules visible to CMake list (APPEND CMAKE_MODULE_PATH "/home/langtian/CLionProjects/CMake_Modules") # Set environment variables set(PETSC_DIR "/home/langtian/PETSc") set(SLEPC_DIR "/home/langtian/SLEPc") # Check for PETSc find_package(PETSc) # Setting for FeatureSummary if(PETSc_FOUND) message(STATUS "Found PETSc version ${PETSc_VERSION}") set_property(GLOBAL APPEND PROPERTY PACKAGES_FOUND PETSc) else() set_property(GLOBAL APPEND PROPERTY PACKAGES_NOT_FOUND PETSc) endif() #check for SLEPc find_package(SLEPc) # Setting for FeatureSummary if (SLEPc_FOUND) message(STATUS "Found SLEPc version ${SLEPc_VERSION}") set_property(GLOBAL APPEND PROPERTY PACKAGES_FOUND SLEPc) else () set_property(GLOBAL APPEND PROPERTY PACKAGE_NOT_FOUND SLEPc) endif () find_package(OpenMP REQUIRED) find_package(OpenBLAS REQUIRED) include_directories(${OPENBLAS_INCLUDES}) include_directories(../eigen-3.4.0) include_directories(../spectra-1.0.0/include) include_directories(../Math_Tools) include_directories(../File2Data) include_directories(../Quark) include_directories(../Scalar_Diquark) include_directories(../AxialVector_Diquark) include_directories(../Pseudoscalar_Diquark) include_directories(../Vector_Diquark) include_directories(../Form_Factors_from_JEM) add_executable(N_1_2_Positive n_1_2_positive_q_dq_faddeev.cu ) target_link_libraries(N_1_2_Positive PETSc SLEPc OpenMP::OpenMP_CXX cublas ${OpenBLAS_LIBRARIES} ) set_target_properties(N_1_2_Positive PROPERTIES CUDA_SEPARABLE_COMPILATION ON)