diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index aa0a8a0f0b462e0d5da1e4a8a4c62366a1a7e027..1e27127f2cce97ca0d51599391e8a685b7046e0d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,14 @@ image: hpclib/hiepacs +before_script: + - source /usr/share/modules/init/bash && source /usr/local/share/spack/setup-env.sh && spack load cmake@3.14.2 + variables: GIT_SUBMODULE_STRATEGY: normal stages: - build + - pages - test - sonar @@ -19,8 +23,8 @@ build: - cd Build && cmake .. -DSCALFMM_USE_LOG=ON -DSCALFMM_USE_ASSERT=ON - -DSCALFMM_USE_SSE=OFF - -DSCALFMM_USE_AVX=OFF + -DINASTEMP_USE_AVX2=OFF + -DINASTEMP_USE_AVX=OFF -DSCALFMM_USE_BLAS=ON -DSCALFMM_USE_FFT=ON -DSCALFMM_USE_MPI=ON @@ -29,8 +33,8 @@ build: -DSCALFMM_BUILD_TESTS=ON -DSCALFMM_BUILD_UTESTS=ON -DCMAKE_VERBOSE_MAKEFILE=ON - -DCMAKE_C_COMPILER=gcc-6 - -DCMAKE_CXX_COMPILER=g++-6 + -DCMAKE_C_COMPILER=gcc-7 + -DCMAKE_CXX_COMPILER=g++-7 - make -j5 2>&1 |tee scalfmm-build.log doc: @@ -43,9 +47,22 @@ doc: script: - cd Build && cmake .. -DSCALFMM_BUILD_DOC=ON - -DCMAKE_C_COMPILER=gcc-6 - -DCMAKE_CXX_COMPILER=g++-6 - - make doc + -DCMAKE_C_COMPILER=gcc-7 + -DCMAKE_CXX_COMPILER=g++-7 + - make doc + +pages: + stage: pages + dependencies: + - doc + artifacts: + paths: + - public + script: + - mkdir public + - mv Build/Doc/html/* public/ + only: + - cmake-refurb test: stage: test @@ -78,4 +95,4 @@ sonar: - source ./Utils/scripts/analysis.sh - sonar-scanner |tee sonar.log; only: - - develop@solverstack/ScalFMM \ No newline at end of file + - develop@solverstack/ScalFMM diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ed7f57e3e14506361956484fc9bee9700d561b4..60dc2ec7a78612ea559ece2b8d020005b892dab2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,43 +1,50 @@ -cmake_minimum_required (VERSION 2.8.3 FATAL_ERROR) +cmake_minimum_required (VERSION 3.10.0 FATAL_ERROR) -if(CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 7 AND CMAKE_PATCH_VERSION GREATER 11) - cmake_policy(SET CMP0022 OLD) -endif() - -cmake_policy(SET CMP0004 NEW) - -set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) -#=========================================================================== +# # Project Declaration -#=========================================================================== -project(SCALFMM C CXX ) +#-------------------- +project(scalfmm CXX) # check if compiling into source directories string(COMPARE EQUAL "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" insource) if(insource) message(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto ./Build and tapes cmake ../") endif(insource) -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/) -SET(SCALFMM_CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/) # -# Adds the CMAKE_DEPENDENT_OPTION command -INCLUDE(CMakeDependentOption) -#=========================================================================== # Version Number -#=========================================================================== +# -------------- # SCALFMM version number. An even minor number corresponds to releases. -set(SCALFMM_MAJOR_VERSION 2) -set(SCALFMM_MINOR_VERSION 0) -set(SCALFMM_PATCH_VERSION rc0) -set(SCALFMM_VERSION "${SCALFMM_MAJOR_VERSION}.${SCALFMM_MINOR_VERSION}.${SCALFMM_PATCH_VERSION}" ) +set(${CMAKE_PROJECT_NAME}_MAJOR_VERSION 2) +set(${CMAKE_PROJECT_NAME}_MINOR_VERSION 0) +set(${CMAKE_PROJECT_NAME}_PATCH_VERSION rc0) +set(${CMAKE_PROJECT_NAME}_VERSION "${${CMAKE_PROJECT_NAME}_MAJOR_VERSION}.${${CMAKE_PROJECT_NAME}_MINOR_VERSION}.${${CMAKE_PROJECT_NAME}_PATCH_VERSION}" ) -SET(CXX_STANDARD_REQUIRED ON) -SET(CMAKE_CXX_STANDARD 14) +# +# Set global c++ support +# ---------------------- +set(CMAKE_CXX_STANDARD 14) -set( MORSE_DISTRIB_DIR "" CACHE PATH "Directory of MORSE distribution") +# +# Update cmake path +# ----------------- +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/) -if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake") +# +# Creating main lib +# ----------------- +list(APPEND SCALFMM_SOURCES FAlgorithmTimers.cpp FLog.cpp FMemStats.cpp FSignalHandler.cpp) +list(TRANSFORM SCALFMM_SOURCES PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/src/") +add_library(${CMAKE_PROJECT_NAME} STATIC ${SCALFMM_SOURCES}) +# Set library includes +# -------------------- +target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC + $<BUILD_INTERFACE:${${CMAKE_PROJECT_NAME}_BINARY_DIR}/include> + $<BUILD_INTERFACE:${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/include> + $<INSTALL_INTERFACE:include> + ) + +if(MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake") # Add extra cmake module path and initialize morse cmake modules # -------------------------------------------------------------- @@ -48,8 +55,12 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake/modules) set(MORSE_CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake/modules ) endif() + include(MorseInit) + # Set the RPATH config + # These options allow all installed executables to run correctly + # when installed to the install diretory # -------------------- # use, i.e. don't skip the full RPATH for the build tree set(CMAKE_SKIP_BUILD_RPATH FALSE) @@ -58,289 +69,192 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_ set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) # the RPATH to be used when installing set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + # add the automatically determined parts of the RPATH + # which point to directories outside the build tree to the install RPATH + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + # Build ScalFmm as static or dynamic lib # -------------------------------------- - option(BUILD_SHARED_LIBS "Build shared libraries" OFF) + # option(BUILD_SHARED_LIBS "Build shared libraries" OFF) # # Options # - option( SCALFMM_USE_MPI "Set to ON to build ScaFMM with MPI" OFF ) - option( SCALFMM_USE_BLAS "Set to ON to build ScaFMM with BLAS" ON ) - option( SCALFMM_USE_FFT "Set to ON to build ScaFMM with FFTW" ON ) - option( SCALFMM_BUILD_EXAMPLES "Set to ON to compile examples " ON ) - option( SCALFMM_BUILD_TESTS "Set to ON to build functionalities Tests" OFF ) - option( SCALFMM_BUILD_UTESTS "Set to ON to build UTests" OFF ) - option( SCALFMM_INSTALL_DATA "Set to ON to include the data when proceeding to the installtion " OFF ) + # Cmake options for dependencies + option( SCALFMM_USE_MPI "Set to ON to build ScaFMM with MPI" OFF ) + option( SCALFMM_USE_BLAS "Set to ON to build ScaFMM with BLAS" ON ) + option( SCALFMM_USE_FFT "Set to ON to build ScaFMM with FFTW" OFF ) + option( SCALFMM_USE_STARPU "Set to ON to build SCALFMM with StarPU" OFF ) + + # Cmake options that impact the build tree + option( SCALFMM_BUILD_EXAMPLES "Set to ON to compile examples " ON ) + option( SCALFMM_BUILD_TESTS "Set to ON to build functionalities Tests" OFF ) + option( SCALFMM_BUILD_UTESTS "Set to ON to build UTests" OFF ) + option( SCALFMM_BUILD_UTILS "Set to ON to build utils Tests" OFF ) option( SCALFMM_BUILD_DOC "Set to ON to build the Doxygen documentation " OFF ) - option( SCALFMM_BUILD_DEBUG "Set to ON to build in Debug" OFF ) + + # Cmake options to install additional content + option( SCALFMM_INSTALL_DATA "Set to ON to include the data when proceeding to the installtion " OFF ) + + # Cmake options related to trace, logging and statistics option( SCALFMM_USE_LOG "Set to ON to print output debug information" OFF ) option( SCALFMM_USE_MEM_STATS "Set to ON to profile memory" OFF ) - option( SCALFMM_ATTACHE_SOURCE "Set to ON to compile with -g" OFF ) - option( SCALFMM_USE_ADDONS "Set to ON to compile add ons" OFF ) - option( SCALFMM_USE_SIGNALS "Set to ON to catch various signal an print backtrace" OFF ) option( SCALFMM_USE_ASSERT "Set to ON to enable safe tests during execution" ON ) - option( SCALFMM_USE_MIC_NATIVE "Set to ON to compile in native mode for MIC" OFF ) option( SCALFMM_ONLY_DEVEL "Set to ON to compile Development tools (only scalfmm team)" OFF ) - option( SCALFMM_USE_EZTRACE "Set to ON to compile with eztrace framwork" OFF ) - option( SCALFMM_USE_STARPU "Set to ON to build SCALFMM with StarPU" OFF ) - option( SCALFMM_BUILD_UTILS "Set to ON to build utils Tests" OFF ) + + # Cmake options related to the targeted architecture + option( SCALFMM_USE_MIC_NATIVE "Set to ON to compile in native mode for MIC" OFF ) + - if( SCALFMM_ONLY_DEVEL ) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") - option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4" OFF ) - else() - option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4" ON ) - endif() - option( SCALFMM_TIME_OMPTASKS "Set to ON to time omp4 tasks and generate output file" OFF ) - # SIMGRID and peformance models options - option( SCALFMM_SIMGRID_NODATA "Set to ON to avoid the allocation of numerical parts in the group tree" OFF ) - option( STARPU_SIMGRID_MLR_MODELS "Set to ON to enable MLR models need for calibration and simulation" OFF ) - # OPENMP 4/5 support - message(WARNING "OpenMP_VERSION: ${OpenMP_VERSION}") - option( OPENMP_SUPPORT_PRIORITY "Set to ON to enable tasks priority (OMP4.x/KSTAR/StarPU compiler only)" OFF ) - # STARPU options - CMAKE_DEPENDENT_OPTION(OPENMP_SUPPORT_COMMUTE "Set to ON to let tasks commute (KSTAR/StarPU compiler only)" OFF - "SCALFMM_USE_STARPU" OFF) - CMAKE_DEPENDENT_OPTION(OPENMP_SUPPORT_TASK_NAME "Set to ON to enable a taskname clause for tasks (KSTAR/StarPU compiler only)" OFF - "SCALFMM_USE_STARPU" OFF) - CMAKE_DEPENDENT_OPTION(SCALFMM_STARPU_USE_COMMUTE "Set to ON to enable commute with StarPU" ON "SCALFMM_USE_STARPU" OFF) - CMAKE_DEPENDENT_OPTION(SCALFMM_STARPU_USE_REDUX "Set to ON to enable redux with StarPU" OFF "SCALFMM_USE_STARPU" OFF) - CMAKE_DEPENDENT_OPTION(SCALFMM_STARPU_USE_PRIO "Set to ON to enable priority with StarPU" ON "SCALFMM_USE_STARPU" OFF) - CMAKE_DEPENDENT_OPTION(SCALFMM_STARPU_FORCE_NO_SCHEDULER "Set to ON to disable heteroprio even if supported" OFF "SCALFMM_USE_STARPU" OFF) - CMAKE_DEPENDENT_OPTION(SCALFMM_USE_STARPU_EXTRACT "Set to ON to enable extract with StarPU mpi implicit" ON "SCALFMM_USE_STARPU" OFF) - endif() - message(STATUS "AVANT ${CMAKE_CXX_COMPILER_ID}" ) - # - # MPI - # - if( SCALFMM_USE_MPI ) - try_compile(COMPILE_INTEL ${CMAKE_CURRENT_BINARY_DIR} - ${SCALFMM_CMAKE_MODULE_PATH}/compileTestIntel.cpp - COMPILE_DEFINITIONS "${CMAKE_CXX_FLAGS}") - if (COMPILE_INTEL) - set(CMAKE_CXX_COMPILER_ID "Intel") - endif() - endif() - message(STATUS "CXX ${CMAKE_CXX_COMPILER_ID}" ) - # Set scalfmm to default libraries - set(SCALFMM_LIBRARIES "") - set(SCALFMM_CXX_FLAGS "-fpic -Wall") - # set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/Contribs") - # - # - # Test if openmp is here - # - find_package (OpenMP) - if(OPENMP_FOUND) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") - else(OPENMP_FOUND) - message(WARNING "OPENMP NOT FOUND") - endif(OPENMP_FOUND) - message(STATUS "SCALFMM_BUILD_DEBUG = ${SCALFMM_BUILD_DEBUG}" ) # - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -m64") - endif() - ############################################################################## - # Inastemp # - ############################################################################## - - set(INASTEMP_JUST_LIB TRUE) - set(INASTEMP_DO_INSTALL TRUE) - # add the cmakelist directory - add_subdirectory(inastemp) - # use the filled variables from inastemp - INCLUDE_DIRECTORIES( - ${INASTEMP_BINARY_DIR}/Src - ${INASTEMP_SOURCE_DIR}/Src - ${INASTEMP_INCLUDE_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/inastemp/Src - ) - # propagate the flags to be able to compile - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${INASTEMP_CXX_FLAGS}") - - ############################################################################## - # FUSE list # - ############################################################################## - set(FUSE_LIST "") - #set(FUSE_LIST " MPI;BLAS;FFT;STARPU;CUDA;OPENCL;OMP4;SSE;AVX;AVX2;MIC;MPI2") - # then do list(APPEND FUSE_LIST "BLAS") to protect from FUSE_BLAS - # list(APPEND FUSE_LIST "MPI") - - ############################################################################## - # Debug flags # - ############################################################################## + # Set scalfmm global lists + # ------------------------ + list(APPEND SCALFMM_CXX_FLAGS -fpic -Wall) + + # TODO: Find new way to resolve dependencies... + # Set FUSE LIST + # ------------- + set(FUSE_LIST "") # Construct during configure + set(FUSE_DEP_AVAILABLE "MPI;CUDA;STARPU;OMP4;BLAS;FFT;OPENCL") # List to compare against when compiling tests, etc... # - if( SCALFMM_BUILD_DEBUG ) - # - # Compile Debug flags - # - set(CMAKE_BUILD_TYPE Debug) - ADD_DEFINITIONS(-O0) - if( APPLE ) - set(SCALFMM_FLAGS_OPTI_DEBUG "-funroll-loops" CACHE STRING - "Set your optimization flags for debug mode.") - else(APPLE) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") - set(SCALFMM_FLAGS_OPTI_DEBUG "-fp-model strict -funroll-loops" CACHE STRING - "Set your optimization flags for debug mode.") - else() - set(SCALFMM_FLAGS_OPTI_DEBUG "-funroll-loops" CACHE STRING - "Set your optimization flags for debug mode.") + # OpenMP + # ------ + if(NOT OpenMP_CXX_FOUND) + find_package(OpenMP) + if(OpenMP_CXX_FOUND) + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC OpenMP::OpenMP_CXX) + list(APPEND SCALFMM_LIBRARIES OpenMP) + if(OpenMP_CXX_VERSION_MAJOR GREATER_EQUAL 4) + list(APPEND FUSE_LIST OMP4) endif() - endif(APPLE) - # ADD_DEFINITIONS(${SCALFMM_FLAGS_OPTI_DEBUG}) - set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} ${SCALFMM_FLAGS_OPTI_DEBUG}") - set(CMAKE_CXX_FLAGS_TYPE "${CMAKE_CXX_FLAGS_DEBUG}") + else(OpenMP_CXX_FOUND) + message(WARNING "OPENMP NOT FOUND") + endif(OpenMP_CXX_FOUND) + endif(NOT OpenMP_CXX_FOUND) + + # + # Inastemp + # -------- + if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/inastemp") + + # Set option() CMP0077 to old for inastemp... + set(CMAKE_POLICY_DEFAULT_CMP0077 OLD) + set(INASTEMP_JUST_LIB TRUE) + set(INASTEMP_DO_INSTALL TRUE) + # Create target + add_subdirectory(inastemp) + add_library(inastemp INTERFACE) + target_include_directories(inastemp INTERFACE + $<BUILD_INTERFACE:${INASTEMP_SOURCE_DIR}/Src> + $<BUILD_INTERFACE:${INASTEMP_BINARY_DIR}/Src> + $<INSTALL_INTERFACE:include> + ) + string(REPLACE " -" ";-" INASTEMP_FLAGS "${INASTEMP_CXX_FLAGS}") + list(REMOVE_DUPLICATES INASTEMP_FLAGS) + target_compile_options(inastemp INTERFACE ${INASTEMP_FLAGS}) + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC inastemp) + + message(STATUS "Inastemp flags : ${INASTEMP_FLAGS}") + message(WARNING "Inastemp configures compile flags according to the current architure " + "you are compiling on. If you target a different machine, be carefull " + "with the available SIMD instruction set supported." + "Thus, use INASTEMP_USE_XXX to target the correct instruction set.") - else() - ############################################################################## - # Release flags # - ############################################################################## + else(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/inastemp") - set(CMAKE_BUILD_TYPE Release) - set(CMAKE_CXX_FLAGS_TYPE "${CMAKE_CXX_FLAGS_RELEASE}") - # if compiler is intel add -ip + message(STATUS "Inastemp is not available.") + message(STATUS "Please, initialize all git submodule.") + message(FATAL_ERROR "Exit : Inastemp dependency not found.") + endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/inastemp") + + # + # Specific Debug flags + # -------------------- + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + list(APPEND SCALFMM_CXX_FLAGS -funroll-loops) if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") - set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -ipo -fstrict-aliasing ")# -no-prec-div -no-prec-sqrt") + list(APPEND SCALFMM_CXX_FLAGS -fp-model\ strict) endif() - # Compile optimization - if(APPLE) - set(SCALFMM_FLAGS_OPTI_RELEASE "-funroll-loops" CACHE STRING - "Set your optimization flags for release mode.") - else(APPLE) - # Not apple system - Check the compiler flags + endif() + + # + # Specific Release flags + # ---------------------- + if(CMAKE_BUILD_TYPE STREQUAL "Release") + list(APPEND SCALFMM_CXX_FLAGS -funroll-loops) + if(NOT APPLE) + list(APPEND -ftree-vectorize) if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") - #set(SCALFMM_FLAGS_OPTI_RELEASE "-fp-model precise -fp-model source -fimf-precision=low -funroll-loops -ftree-vectorize" - set(SCALFMM_FLAGS_OPTI_RELEASE "-funroll-loops -ftree-vectorize" - CACHE STRING "Set your optimization flags for release mode.") - # set(SCALFMM_FLAGS_OPTI_RELEASE "-funroll-loops -ftree-vectorize" CACHE STRING - # "Set your optimization flags for release mode.") - else() - set(SCALFMM_FLAGS_OPTI_RELEASE "-ffast-math -funroll-loops -ftree-vectorize" CACHE STRING - "Set your optimization flags for release mode.") + list(APPEND SCALFMM_CXX_FLAGS -ipo -fstrict-aliasing) endif() - endif(APPLE) - # - set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} ${SCALFMM_FLAGS_OPTI_RELEASE}") + list(APPEND SCALFMM_CXX_FLAGS -ffast-math -ftree-vectorize) + endif(NOT APPLE) endif() - MESSAGE(STATUS " %%%%%%%%%% SCALFMM_CXX_FLAGS ${SCALFMM_CXX_FLAGS} %%%%%%%%%%%%%") - MESSAGE(STATUS " %%%%%%%%%% CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} %%%%%%%%%%%%%") # - ############################################################################## - # Attach source code to exec # - ############################################################################## - message(STATUS "SCALFMM_ATTACHE_SOURCE = ${SCALFMM_ATTACHE_SOURCE}" ) - if( SCALFMM_ATTACHE_SOURCE ) - message(STATUS "Option -g is used, the code is attached to the binary." ) - set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -g") - endif(SCALFMM_ATTACHE_SOURCE) - # - ############################################################################## - # find MPI # - ############################################################################## - # - if( SCALFMM_USE_MPI ) - find_package(MPI REQUIRED) - if(MPI_FOUND) - if (MPI_CXX_FOUND) -# message("MPI_CXX is in the place") - if (MPI_CXX_INCLUDE_PATH) - include_directories( ${MPI_CXX_INCLUDE_PATH} ) - endif() - if (MPI_CXX_COMPILE_FLAGS) - string(REPLACE ";" " " MPI_CXX_COMPILE_FLAGS "${MPI_CXX_COMPILE_FLAGS}") - set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} ${MPI_CXX_COMPILE_FLAGS}") - endif() - if (MPI_CXX_INCLUDE_PATH) - LIST(APPEND SCALFMM_INCLUDES "${SCALFMM_INCLUDES};${MPI_CXX_INCLUDE_PATH}") - endif() - if (MPI_CXX_LINK_FLAGS) - list(APPEND "CMAKE_EXE_LINKER_FLAGS ${MPI_CXX_LINK_FLAGS}") - endif() - if (MPI_CXX_LIBRARIES) - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${MPI_CXX_LIBRARIES}") - endif() - else (MPI_CXX_FOUND) + # MPI + # --- + if(SCALFMM_USE_MPI) + if(NOT MPI_FOUND) + try_compile(COMPILE_INTEL ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/compileTestIntel.cpp + COMPILE_DEFINITIONS "${CMAKE_CXX_FLAGS}") + if(COMPILE_INTEL) + set(CMAKE_CXX_COMPILER_ID "Intel") + endif() + message(STATUS "CXX ${CMAKE_CXX_COMPILER_ID}" ) + + find_package(MPI REQUIRED) + if(MPI_CXX_FOUND) + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC MPI::MPI_CXX) + list(APPEND SCALFMM_LIBRARIES MPI) + list(APPEND FUSE_LIST MPI) + target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/FMpi.cpp) + else(MPI_CXX_FOUND) message(FATAL_ERROR "MPI_CXX is required but was not found. " - "Please provide an MPI compiler in your environment." - "Note that you can give the path to your MPI installation " - "by setting MPI_DIR cmake variable.") - endif (MPI_CXX_FOUND) - else(MPI_FOUND) - endif(MPI_FOUND) - endif( SCALFMM_USE_MPI) - list(APPEND FUSE_LIST "MPI") - # - ############################################################################## - # Blas option # - ############################################################################## + "Please provide an MPI compiler in your environment." + "Note that you can give the path to your MPI installation " + "by setting MPI_DIR cmake variable.") + endif(MPI_CXX_FOUND) + endif(NOT MPI_FOUND) + endif(SCALFMM_USE_MPI) # - if( SCALFMM_USE_BLAS ) -# if(APPLE) # In order to use QT-creator on macos -# list(APPEND CMAKE_REQUIRED_INCLUDES $ENV{MKLROOT}/include) -# endif() - - # include(FortranCInterface) - # # Define a Fortran interface file (FCMangle.hpp) - # FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/Src/FCMangle.hpp - # MACRO_NAMESPACE "PM_" - # SYMBOL_NAMESPACE "PM_" - # SYMBOLS init testPPM:init) - message(STATUS "CMAKE_CXX_COMPILER_ID STREQUAL ${CMAKE_CXX_COMPILER_ID}") - - option( SCALFMM_USE_MKL_AS_BLAS "Set to ON to use MKL BLAS/LAPACK" OFF ) - option( SCALFMM_USE_ESSL_AS_BLAS "Set to ON to use ESSL BLAS/LAPACK" OFF ) + # Blas options + # ------------ + if(SCALFMM_USE_BLAS) + + option( SCALFMM_USE_MKL_AS_BLAS "Set to ON to use MKL BLAS/LAPACK" OFF ) + option( SCALFMM_USE_ESSL_AS_BLAS "Set to ON to use ESSL BLAS/LAPACK" OFF ) + option( SCALFMM_USE_EXTERNAL_BLAS "Set to ON to use external BLAS. Please, set BLAS_LIBRARIES variable." OFF ) if( SCALFMM_USE_MKL_AS_BLAS ) set(BLA_VENDOR "Intel10_64lp_seq") find_package(BLAS ) # not REQUIRED - unset(LAPACK_LIBRARIES) - if (BLAS_LIBRARIES) - set(BLASLAPACK_LIBRARIES ${BLAS_LIBRARIES}) - endif() elseif(SCALFMM_USE_ESSL_AS_BLAS) set(BLA_VENDOR "IBMESSL") find_package(BLAS QUIET) # not REQUIRED find_package(LAPACK QUIET) # not REQUIRED - if (LAPACK_LIBRARIES) - set(BLASLAPACK_LIBRARIES "${LAPACK_LIBRARIES}") - endif() - if (BLAS_LIBRARIES) - list(APPEND BLASLAPACK_LIBRARIES ${BLAS_LIBRARIES}) - endif() elseif(SCALFMM_USE_EXTERNAL_BLAS) message(STATUS "BLAS SET BY EXTERNAL PROGRAM = ${BLAS_LIBRARIES}") list(APPEND BLASLAPACK_LIBRARIES "${BLAS_LIBRARIES}") else() find_package(BLAS) # not REQUIRED find_package(LAPACK) # not REQUIRED - set(BLASLAPACK_LIBRARIES) - if (LAPACK_LIBRARIES) - set(BLASLAPACK_LIBRARIES "${LAPACK_LIBRARIES}") - endif() - if (BLAS_LIBRARIES) - list(APPEND BLASLAPACK_LIBRARIES "${BLAS_LIBRARIES}") - endif() endif() if(BLAS_FOUND) - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${BLASLAPACK_LIBRARIES}") - if(BLAS_LIBRARY_DIRS) - # the RPATH to be used when installing - list(APPEND CMAKE_INSTALL_RPATH "${BLAS_LIBRARY_DIRS}") - endif() - if(LAPACK_FOUND AND LAPACK_LIBRARY_DIRS) - # the RPATH to be used when installing - list(APPEND CMAKE_INSTALL_RPATH "${LAPACK_LIBRARY_DIRS}") + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC blas::blas) + list(APPEND SCALFMM_LIBRARIES BLAS) + list(APPEND FUSE_LIST BLAS) + + if(LAPACK_FOUND) + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC lapack::lapack) + list(APPEND SCALFMM_LIBRARIES LAPACK) endif() - message (STATUS "check BLAS Fortran mangling") + + message (STATUS "Check BLAS Fortran mangling") # add options to let the user be able to force a behavior option( SCALFMM_BLAS_ADD_ "Set to ON to force calls to BLAS Fortran symbols with _ (ex: dgemm_)" ON ) option( SCALFMM_BLAS_UPCASE "Set to ON to force calls to BLAS Fortran symbols in capital (ex: DGEMM)" OFF ) @@ -389,7 +303,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_ endif() endif (NOT SCALFMM_BLAS_ADD_ AND NOT SCALFMM_BLAS_UPCASE AND NOT SCALFMM_BLAS_NOCHANGE) else() - MESSAGE(WARNING "BLAS: ${BLAS-FOUND}") + MESSAGE(WARNING "BLAS: ${BLAS_FOUND}") message(WARNING "BLAS has not been found, SCALFMM will continue to compile but some applications will be disabled.") message(WARNING "If you have BLAS set BLAS_LIBDIR, BLAS_INCDIR or BLAS_DIR (CMake variables using -D or environment variables).") @@ -397,52 +311,42 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_ endif() endif(SCALFMM_USE_BLAS) - list(APPEND FUSE_LIST "BLAS") - # - # FFT option + # + # FFT options + # ----------- CMAKE_DEPENDENT_OPTION(SCALFMM_USE_MKL_AS_FFTW "Set to ON to use MKL FFTW" ON "SCALFMM_USE_FFT;SCALFMM_USE_MKL_AS_BLAS" OFF ) CMAKE_DEPENDENT_OPTION(SCALFMM_USE_ESSL_AS_FFTW "Set to ON to use ESSL FFTW" ON "SCALFMM_USE_FFT;SCALFMM_USE_ESSL_AS_BLAS" OFF ) - if( SCALFMM_USE_FFT ) + + if(SCALFMM_USE_FFT) message(STATUS "SCALFMM USE FFT Configure:") # The package find_package(FFTW) can be used with the following COMPONENTS: # MKL, ESSL, THREADS|OMP and/or SIMPLE|LONG|QUAD # Default will find the real double precision fftw library version without THREADS|OMP - if( SCALFMM_USE_MKL_AS_FFTW ) - + if(SCALFMM_USE_MKL_AS_FFTW) message(STATUS " SCALFMM USE FFT from MKL") - find_package(FFTW COMPONENTS MKL) + set(BLA_VENDOR "Intel10_64lp_seq") + if(NOT TARGET blas::blas) + find_package(FFTW COMPONENTS MKL) + else() + set(FFTW_FOUND 1) + find_package(FFTW COMPONENTS MKL QUIET) + target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${FFTW_INCLUDE_DIRS}) + endif() elseif (SCALFMM_USE_ESSL_AS_FFTW) message(STATUS " SCALFMM USE FFT from ESSL ") find_package(FFTW COMPONENTS ESSL) - add_definitions(-DSCALFMM_USE_ESSL_AS_FFTW) else() message(STATUS " SCALFMM USE FFTW") find_package(FFTW COMPONENTS SIMPLE) endif() if(FFTW_FOUND) - if (FFTW_LIBRARY_DIRS_DEP) - set(FFT_LIBRARIES "-L${FFTW_LIBRARY_DIRS_DEP};" CACHE STRING "Set your MKL flags") - endif() - if (FFTW_LIBRARIES_DEP) - foreach (fft_lib ${FFTW_LIBRARIES_DEP}) - set(FFT_LIBRARIES "${FFT_LIBRARIES};${fft_lib};") - endforeach() - endif() - - set(FFT_INCLUDES "${FFTW_INCLUDE_DIRS_DEP}" ) - if (FFT_LIBRARIES) - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${FFT_LIBRARIES}") - endif() - - if(FFTW_LIBRARY_DIRS) - # the RPATH to be used when installing - list(APPEND CMAKE_INSTALL_RPATH "${FFTW_LIBRARY_DIRS}") - endif() - if (FFT_INCLUDES) - LIST(APPEND SCALFMM_INCLUDES "${FFT_INCLUDES}") + list(APPEND FUSE_LIST FFT) + if(NOT SCALFMM_USE_MKL_AS_FFTW) + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC fftw::fftw) + list(APPEND SCALFMM_LIBRARIES FFTW) endif() else(FFTW_FOUND) message(WARNING "FFTW has not been found, SCALFMM will continue to compile but some applications will be disabled.") @@ -451,386 +355,279 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_ endif(FFTW_FOUND) endif(SCALFMM_USE_FFT) - message(STATUS "SCALFMM_USE_FFT = ${SCALFMM_USE_FFT}") - if (SCALFMM_INCLUDES) - list(REMOVE_DUPLICATES SCALFMM_INCLUDES) - endif() - if (SCALFMM_LIBRARIES) - list(REMOVE_DUPLICATES SCALFMM_LIBRARIES) - endif() - list(APPEND FUSE_LIST "FFT") + message(STATUS "SCALFMM_USE_FFT = ${SCALFMM_USE_FFT}") # - # C++ 2011 - message( STATUS "CMAKE_SYSTEM: ${CMAKE_SYSTEM} CMAKE_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID} CMAKE_CXX_COMPILER ${NAME}") - if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") - execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE INTEL_VERSION) - message( STATUS "Intel: ${INTEL_VERSION}") - set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -Wall") - else() - # Compile option valid on GCC/G++ - set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wconversion -Wcast-qual -Wcast-align -Woverloaded-virtual") - endif() + # C++ 2014 + # -------- + target_compile_features(${CMAKE_PROJECT_NAME} INTERFACE cxx_std_14) + # - ################################################################## - # STARPU Section - ################################################################## + # Additional flags for the library + # -------------------------------- + list(APPEND SCALFMM_CXX_FLAGS -Wshadow -Wpointer-arith ) + if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel") + list(APPEND SCALFMM_CXX_FLAGS -Wcast-qual -Wconversion -Wcast-align -Woverloaded-virtual) + endif() + # - message( STATUS "SCALFMM_USE_STARPU = ${SCALFMM_USE_STARPU}" ) + # STARPU Section + # -------------- + message( STATUS "SCALFMM_USE_STARPU = ${SCALFMM_USE_STARPU}" ) + CMAKE_DEPENDENT_OPTION( SCALFMM_USE_OPENCL "Set to ON to use OPENCL with StarPU" OFF "SCALFMM_USE_STARPU" OFF) + CMAKE_DEPENDENT_OPTION( SCALFMM_USE_CUDA "Set to ON to use OPENCL with StarPU" OFF "SCALFMM_USE_STARPU" OFF) if( SCALFMM_USE_STARPU ) - # CUDA could be used with StarPU enabled - option( SCALFMM_USE_CUDA "Set to ON to use CUDA with StarPU" OFF ) - if(SCALFMM_USE_CUDA) - execute_process(COMMAND nvcc --version ERROR_VARIABLE cuda_error_output OUTPUT_QUIET) - if(cuda_error_output) - message( FATAL_ERROR "nvcc is needed with CUDA." ) - endif() - if(NOT DEFINED CUSTOM_CUDA_FLAGS) - set( CUSTOM_CUDA_FLAGS "-std=c++11;-arch=sm_20;--ptxas-options=-v;-use_fast_math" CACHE - STRING "Set your CUDA flags, for example : -arch=sm_20;--ptxas-options=-v;-use_fast_math") - endif() - # This is needed to remove backslash after space in ADD_CUSTOM_COMMAND - separate_arguments(CUSTOM_CUDA_FLAGS) - message( STATUS "CUSTOM_CUDA_FLAGS = ${CUSTOM_CUDA_FLAGS}" ) - find_package(CUDA REQUIRED) - - if (CUDA_INCLUDE_DIRS) - include_directories(${CUDA_INCLUDE_DIRS}) - endif() - if (CUDA_LIBRARIES) - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}") - endif() - - set(CUDA_NEEDED_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/Src) - endif() - + enable_language(C) # Find StarPU with a list of optional components - set(SCALFMM_STARPU_VERSION "1.2" CACHE STRING " STARPU version desired") + set(SCALFMM_STARPU_VERSION "1.2.8" CACHE STRING " STARPU version desired") # create list of components in order to make a single call to find_package(starpu...) set(STARPU_COMPONENT_LIST "HWLOC") - - if(SCALFMM_USE_CUDA) - list(APPEND STARPU_COMPONENT_LIST "CUDA") + message(WARNING "This release doest not include a full support for CUDA/OpenCl.") + #list(APPEND STARPU_COMPONENT_LIST "CUDA") endif() - list(APPEND FUSE_LIST "CUDA") - if(SCALFMM_USE_MPI) list(APPEND STARPU_COMPONENT_LIST "MPI") endif() - # TODO: replace this by a component of find starpu - OPTION( SCALFMM_USE_OPENCL "Set to ON to use OPENCL with StarPU" OFF ) - if(SCALFMM_USE_OPENCL) - list(APPEND STARPU_COMPONENT_LIST "OPENCL") -# include_directories($ENV{OPENCL_INC}) -# SET(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-L$ENV{OPENCL_LIB};-lOpenCL") + message(WARNING "This release doest not include a full support for CUDA/OpenCl.") + #list(APPEND STARPU_COMPONENT_LIST "OPENCL") endif() - list(APPEND FUSE_LIST "OPENCL") - find_package(STARPU ${SCALFMM_STARPU_VERSION} REQUIRED COMPONENTS ${STARPU_COMPONENT_LIST}) - if(HWLOC_FOUND AND HWLOC_LIBRARY_DIRS) - # the RPATH to be used when installing - list(APPEND CMAKE_INSTALL_RPATH "${HWLOC_LIBRARY_DIRS}") - endif() + if(STARPU_FOUND) + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC starpu::starpu_dep) + list(APPEND FUSE_LIST "STARPU") + list(APPEND SCALFMM_LIBRARIES "STARPU") + if(SCALFMM_USE_CUDA) + #list(APPEND FUSE_LIST "CUDA") + endif() + if(SCALFMM_USE_OPENCL) + #list(APPEND FUSE_LIST "OPENCL") + endif() + else(STARPU_FOUND) + message(FATAL_ERROR "StarPU not found.") + endif(STARPU_FOUND) + endif(SCALFMM_USE_STARPU) - if(FXT_FOUND AND FXT_LIBRARY_DIRS) - # the RPATH to be used when installing - list(APPEND CMAKE_INSTALL_RPATH "${FXT_LIBRARY_DIRS}") - endif() - if(STARPU_FOUND AND STARPU_LIBRARY_DIRS) - # the RPATH to be used when installing - list(APPEND CMAKE_INSTALL_RPATH "${STARPU_LIBRARY_DIRS}") - # Append list of libraries and include dirs - include_directories(${STARPU_INCLUDE_DIRS_DEP}) - foreach (starpu_libdir ${STARPU_LIBRARY_DIRS_DEP}) - if (${starpu_libdir} MATCHES "^ *-L") - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${starpu_libdir}") - else() - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-L${starpu_libdir}") - endif() - endforeach() - foreach (starpu_lib ${STARPU_LIBRARIES_DEP}) - if (EXISTS ${starpu_lib} OR ${starpu_lib} MATCHES "^ *-") - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${starpu_lib}") - else() - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-l${starpu_lib}") - endif() - endforeach() + # Additional options for developers + if( SCALFMM_ONLY_DEVEL ) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") + option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4" OFF ) else() - # StarPU not found - + option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4" ON ) endif() + option( SCALFMM_TIME_OMPTASKS "Set to ON to time omp4 tasks and generate output file" OFF ) + # SIMGRID and peformance models options + option( SCALFMM_SIMGRID_NODATA "Set to ON to avoid the allocation of numerical parts in the group tree" OFF ) + option( STARPU_SIMGRID_MLR_MODELS "Set to ON to enable MLR models need for calibration and simulation" OFF ) + # OPENMP 4/5 support + message(WARNING "OpenMP_VERSION: ${OpenMP_VERSION}") + option( OPENMP_SUPPORT_PRIORITY "Set to ON to enable tasks priority (OMP4.x/KSTAR/StarPU compiler only)" OFF ) + # STARPU options + cmake_dependent_option(OPENMP_SUPPORT_COMMUTE "Set to ON to let tasks commute (KSTAR/StarPU compiler only)" OFF + "SCALFMM_USE_STARPU" OFF) + cmake_dependent_option(OPENMP_SUPPORT_TASK_NAME "Set to ON to enable a taskname clause for tasks (KSTAR/StarPU compiler only)" OFF + "SCALFMM_USE_STARPU" OFF) + cmake_dependent_option(SCALFMM_STARPU_USE_COMMUTE "Set to ON to enable commute with StarPU" ON "SCALFMM_USE_STARPU" OFF) + cmake_dependent_option(SCALFMM_STARPU_USE_REDUX "Set to ON to enable redux with StarPU" OFF "SCALFMM_USE_STARPU" OFF) + cmake_dependent_option(SCALFMM_STARPU_USE_PRIO "Set to ON to enable priority with StarPU" ON "SCALFMM_USE_STARPU" OFF) + cmake_dependent_option(SCALFMM_STARPU_FORCE_NO_SCHEDULER "Set to ON to disable heteroprio even if supported" OFF "SCALFMM_USE_STARPU" OFF) + cmake_dependent_option(SCALFMM_USE_STARPU_EXTRACT "Set to ON to enable extract with StarPU mpi implicit" ON "SCALFMM_USE_STARPU" OFF) + endif() - # TODO: is this very useful? CUDA is already a component of find starpu - if (CUDA_LIBRARIES) - set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}") + # + # Set ScalFMM compile flags + # ------------------------- + string(REPLACE ";" " " SCALFMM_COMPILE_FLAGS "${SCALFMM_CXX_FLAGS}") + set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS}" CACHE STRING "Global compile flags for ScalFMM") + message(STATUS "ScalFMM final flags : ${SCALFMM_CXX_FLAGS}") + # And adding flags to target + # -------------------------- + target_compile_options(${CMAKE_PROJECT_NAME} PUBLIC "${SCALFMM_CXX_FLAGS}") + + # + # Set ScalFMM dependencies + # ------------------------ + string(REPLACE ";" " " SCALFMM_COMPILE_LIBS "${SCALFMM_LIBRARIES}") + set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES}" CACHE STRING "ScalFMM libraries dependencies") + message(STATUS "ScalFMM dependencies : ${SCALFMM_LIBRARIES}") + + # # + # # Set ScalFMM link flags + # # ---------------------- + # string(REPLACE ";" " " SCALFMM_LINK_FLAGS "${SCALFMM_LINK_FLAGS}") + # set(SCALFMM_LINK_FLAGS "${SCALFMM_LINK_FLAGS}" CACHE STRING "Global link flags for ScalFMM") + # message(STATUS "ScalFMM link flags : ${SCALFMM_LINK_FLAGS}") + # # And adding lin flags to the target + # # ---------------------------------- + # target_link_options(${CMAKE_PROJECT_NAME} INTERFACE "${SCALFMM_LIBRARIES}") + + # + # Set ScalFMM compile definitions + # ------------------------------- + set(SCALFMM_COMPILE_DEFINITIONS "${SCALFMM_COMPILE_DEFINITIONS}" CACHE STRING "Global compile definitions for ScalFMM") + message(STATUS "ScalFMM compile definitions : ${SCALFMM_COMPILE_DEFINITIONS}") + # And adding definitions to target + # -------------------------------- + target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC "${SCALFMM_COMPILE_DEFINITIONS}") + + + # + # Generate ScalFmmConfig.h + # ------------------------ + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/ScalFmmConfig.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/include/ScalFmmConfig.h) + + # + # Static analysis during build + # ---------------------------- + option(SCALFMM_USE_STATIC_ANALYSIS "Set to ON to enable static analysis tools." OFF) + get_target_property(SCALFMM_INCLUDE_DIRS ${CMAKE_PROJECT_NAME} INCLUDE_DIRECTORIES) + + if(SCALFMM_USE_STATIC_ANALYSIS) + find_program(CPPCHECK "cppcheck") + if (CPPCHECK) + set(CMAKE_CXX_CPPCHECK "${CPPCHECK}" + "--language=c++" + "$<GENEX_EVAL:-I$<JOIN:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>, -I>>" + "-v" + "--enable=all" + "--force" + "--inline-suppr" + ) + message(STATUS "CPPCHECK analysis is ON.") endif() - # Message - if (STARPU_INCLUDE_DIRS) - message(STATUS " STARPU_INCLUDES = ${STARPU_INCLUDE_DIRS}") - LIST(APPEND SCALFMM_INCLUDES "${STARPU_INCLUDE_DIRS}") + find_program(CLANGTIDY "clang-tidy") + if (CLANGTIDY) + set(CMAKE_CXX_CLANG_TIDY "${CLANGTIDY};-checks=-*,boost-*,cppcoreguidelines-*,clang-analyser-cplusplus*,modernize-*,mpi-*,performance-*,portability-*,readability-*") + message(STATUS "Clang Tidy analysis is ON.") endif() - # Adding SimGrid includes - LIST(APPEND SCALFMM_INCLUDES "$ENV{SIMGRID_INCLUDE}") - message(STATUS " Adding SIMGRID = $ENV{SIMGRID_INCLUDE}") - endif(SCALFMM_USE_STARPU) - list(APPEND FUSE_LIST "STARPU") - - ################################################################## - # FUSE # - ################################################################## - - list(APPEND FUSE_LIST "SSE") - list(APPEND FUSE_LIST "AVX") - list(APPEND FUSE_LIST "MIC") - - ################################################################## - # - # Set EZTRACE - # - ################################################################## - If(SCALFMM_USE_EZTRACE) - find_package (PkgConfig) - if(PKG_CONFIG_FOUND) - set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH "ON") - pkg_search_module( EZTrace REQUIRED eztrace) - if(EZTrace_FOUND) - link_directories(${EZTrace_LIBRARY_DIRS}) - link_libraries( ${EZTrace_LIBRARIES}) - if (EZTrace_LIBRARY_DIRS) - # the RPATH to be used when installing - list(APPEND CMAKE_INSTALL_RPATH "${EZTrace_LIBRARY_DIRS}") - endif() - IF( SCALFMM_USE_MPI ) - link_libraries(-leztrace-autostart-mpi) - ENDIF(SCALFMM_USE_MPI) - include_directories(${EZTrace_INCLUDE_DIRS}) - MESSAGE(STATUS "EZTRACE: ${EZTrace_INCLUDE_DIRS} ${EZTrace_LIBRARY_DIRS} ${EZTrace_LIBRARIES}") - CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_ALGO "Set to ON to trace the full algorithm (all operators)" ON "SCALFMM_USE_EZTRACE" OFF ) - CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_P2M "Set to ON to trace P2M operator" OFF "SCALFMM_USE_EZTRACE" OFF ) - CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_M2M "Set to ON to trace M2M operator" OFF "SCALFMM_USE_EZTRACE" OFF ) - CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_M2L "Set to ON to trace M2L operator" OFF "SCALFMM_USE_EZTRACE" OFF ) - CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_L2L "Set to ON to trace L2L operator" OFF "SCALFMM_USE_EZTRACE" OFF ) - CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_P2P "Set to ON to trace P2P operator" OFF "SCALFMM_USE_EZTRACE" OFF ) - else(EZTrace_FOUND) - MESSAGE(WARNING "Eztrace not found - EZTRACE Is set to OFF") - set(SCALFMM_USE_EZTRACE OFF) - endif(EZTrace_FOUND) - else(PKG_CONFIG_FOUND) - MESSAGE(WARNING "PKG-CONFIG not found - EZTRACE Is set to OFF") - set(SCALFMM_USE_EZTRACE OFF) - endif(PKG_CONFIG_FOUND) - - endif(SCALFMM_USE_EZTRACE) - - list(APPEND FUSE_LIST "OMP4") - - ################################################################## - # - # To catch signals - # - ################################################################## - if((WIN32 OR (${CMAKE_SYSTEM_NAME} MATCHES "Windows")) AND SCALFMM_USE_SIGNALS) - # We are on Windows and we cannot catch signals - message( FATAL_ERROR "Catching the signals requieres an UNIX system." ) - else() - IF( NOT APPLE) - SET(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -rdynamic") - ENDIF() + find_program(IWYU "include-what-you-use") + if(IWYU) + set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${IWYU}") + message(STATUS "Include What You Use analysis is ON.") + endif() endif() - ################################################################## - # # - # END SETTING VARIABLES # - # # - ################################################################## - # - # Generate ScalFmmConfig.h - # - set(SCALFMM_COMPILE_FLAGS "${SCALFMM_CXX_FLAGS} ${CMAKE_CXX_FLAGS}") - set(CMAKE_CXX_FLAGS "${SCALFMM_COMPILE_FLAGS}") - # We need the libraries without spaces (inside the config file) - set(SCALFMM_COMPILE_LIBS "") - foreach(lib_var ${SCALFMM_LIBRARIES}) - string(STRIP ${lib_var} lib_var) - LIST(APPEND SCALFMM_COMPILE_LIBS ${lib_var}) - endforeach() - string(REPLACE " " ";" SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES}") - string(REPLACE ";;" ";" SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES}") -# string(REPLACE " " ";" SCALFMM_INCLUDES "${SCALFMM_INCLUDES}") -# string(REPLACE ";;" ";" SCALFMM_INCLUDES "${SCALFMM_INCLUDES}") - configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Src/ScalFmmConfig.h.cmake - ${CMAKE_CURRENT_BINARY_DIR}/Src/ScalFmmConfig.h ) - # - ################################################################## - # Build - lib # - ################################################################## - # - MESSAGE(STATUS "FUSE : ${FUSE_LIST} ") - add_subdirectory(Contribs) - add_subdirectory(Src) - # Link with scalfmm lib - set(scalfmm_lib scalfmm) + # - ################################################################## - # Remove compilation of the drivers # - ################################################################## - message(STATUS "SCALFMM_BUILD_EXAMPLES = ${SCALFMM_BUILD_EXAMPLES}" ) + # Build Examples + # -------------- + message(STATUS "SCALFMM_BUILD_EXAMPLES = ${SCALFMM_BUILD_EXAMPLES}" ) if( SCALFMM_BUILD_EXAMPLES ) # Build - Examples and drivers add_subdirectory(Examples) endif() - ################################################################## - # Build tools (Internal use) # - ################################################################## - # Build - UTILs + + # + # Build tools (Internal use) + # -------------------------- + # Build - Utils if( SCALFMM_ONLY_DEVEL AND SCALFMM_BUILD_UTILS) add_subdirectory(Utils) endif() - ################################################################## - # Build -Tests to see examples # - ################################################################## + # + # Build Tests to see examples + # ---------------------------- # Build - Tests - message( STATUS "SCALFMM_BUILD_TESTS = ${SCALFMM_BUILD_TESTS}" ) + message( STATUS "SCALFMM_BUILD_TESTS = ${SCALFMM_BUILD_TESTS}" ) if( SCALFMM_BUILD_TESTS ) add_subdirectory(Tests) endif() - ################################################################## - # Build - Unitary and numerical Tests # - ################################################################## # - message( STATUS "SCALFMM_BUILD_UTESTS = ${SCALFMM_BUILD_UTESTS}" ) + # Build - Unitary and numerical Tests + # ----------------------------------- + message( STATUS "SCALFMM_BUILD_UTESTS = ${SCALFMM_BUILD_UTESTS}" ) if( SCALFMM_BUILD_UTESTS ) - include(CTest) enable_testing() + include(CTest) add_subdirectory(UTests) endif() + # - ################################################################## - # Add - doc # - ################################################################## - # - message(STATUS "SCALFMM_BUILD_DOC = ${SCALFMM_BUILD_DOC}" ) + # Add - doc + # --------- + message(STATUS "SCALFMM_BUILD_DOC = ${SCALFMM_BUILD_DOC}" ) if(SCALFMM_BUILD_DOC) add_subdirectory(Doc) endif() + # - ################################################################## - # Build - Addons # - ################################################################## - # - # SCALFMM_ADDON_CKERNELAPI doesn't works with scalfmm 2.0 -# if( SCALFMM_USE_ADDONS ) -# file(GLOB all_addons ./Addons/*) -# # Options -# option( SCALFMM_ADDON_CKERNELAPI "Set to ON to build ScaFMM FMM API interface" OFF ) -# foreach(addon_name ${all_addons}) -# message(STATUS "Addons += ${addon_name}" ) -# add_subdirectory(${addon_name}) -# endforeach() -# endif() - - # Add custom clean command - if("${CMAKE_GENERATOR}" MATCHES "Make") - add_custom_target(reset - COMMAND ${CMAKE_MAKE_PROGRAM} clean && rm -r ./CMake* && cmake .. - WORKING_DIRECTORY ${CMAKE_CURRENT_DIR} - COMMENT "Cleaning Build dir and CMake cache, then do cmake.." - ) - endif() - # - ################################################################## - # # - # Build and export cmake files # - # # - ################################################################## - # - message(STATUS "SCALFMM_BINARY_DIR: " ${SCALFMM_BINARY_DIR}) - configure_file(${SCALFMM_SOURCE_DIR}/ScalFMMConfig.cmake.in - ${SCALFMM_BINARY_DIR}/ScalFMMConfig.cmake - @ONLY IMMEDIATE - ) - # - install(FILES ${SCALFMM_BINARY_DIR}/ScalFMMConfig.cmake DESTINATION lib/ ) + # Export Library + # -------------- + install(TARGETS ${CMAKE_PROJECT_NAME} inastemp + EXPORT ${CMAKE_PROJECT_NAME}-targets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin) + + install(DIRECTORY ${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/include + DESTINATION ${CMAKE_INSTALL_PREFIX} + PATTERN "ScalFmmConfig.h.cmake" EXCLUDE) + + install(FILES ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/include/ScalFmmConfig.h + DESTINATION include) + + install(EXPORT ${CMAKE_PROJECT_NAME}-targets + FILE ${CMAKE_PROJECT_NAME}-targets.cmake + NAMESPACE ${CMAKE_PROJECT_NAME}:: + DESTINATION lib/cmake/${CMAKE_PROJECT_NAME}) + + include(CMakePackageConfigHelpers) + write_basic_package_version_file("${CMAKE_PROJECT_NAME}ConfigVersion.cmake" + VERSION ${${CMAKE_PROJECT_NAME}_VERSION} + COMPATIBILITY SameMajorVersion) + if( SCALFMM_INSTALL_DATA ) install(FILES ${SCALFMM_SOURCE_DIR}/Data/test20k.fma DESTINATION Data/ ) endif() + + configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_PROJECT_NAME}Config.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/${CMAKE_PROJECT_NAME}/) + + install(FILES "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}ConfigVersion.cmake" + "${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake" + DESTINATION lib/cmake/${CMAKE_PROJECT_NAME}) + # - ################################################################## - # # - # build a CPack driven installer package # - # # - ################################################################## - # - # Use git commit number as CPACK_PACKAGE_VERSION_PATCH - set(CPACK_PACKAGE_VERSION_PATCH 0) - execute_process( - COMMAND git rev-list HEAD --count - OUTPUT_VARIABLE CPACK_PACKAGE_VERSION_PATCH - RESULT_VARIABLE RET - ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE - ) - #string_TRIM(PATCH1 PATCH) - set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY "ON") - # - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENCE") - set(CPACK_PACKAGE_VERSION_MAJOR "${SCALFMM_MAJOR_VERSION}") - set(CPACK_PACKAGE_VERSION_MINOR "${SCALFMM_MINOR_VERSION}") - # - set(PACK_PACKAGE_VERSION "${SCALFMM_MAJOR_VERSION}.${SCALFMM_MINOR_VERSION}-${CPACK_PACKAGE_VERSION_PATCH}") - set(CPACK_SOURCE_GENERATOR "TGZ") - set(CPACK_SOURCE_PACKAGE_FILE_NAME "SCALFMM-${SCALFMM_MAJOR_VERSION}.${SCALFMM_MINOR_VERSION}-${CPACK_PACKAGE_VERSION_PATCH}") - set(CPACK_SOURCE_IGNORE_FILES "\\\\.git;.DS_Store;.*~;/*.aux;/*.idx;/*.log;/*.out;/*.toc;/*.ilg;CMakeLists.txt.user;/.settings/") - list(APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}/Utils/;/Build*;/Obsolete/") - # + # build a CPack driven installer package + # -------------------------------------- + # See CPackConfig.cmake for the details. include(CPack) + # - # - ################################################################## - # # - # PRINT messages # - # # - ################################################################## - message(STATUS "CPACK_SOURCE_IGNORE_FILES = ${CPACK_SOURCE_IGNORE_FILES}") - message(STATUS "CPACK_SOURCE_PACKAGE_FILE_NAME = ${CPACK_SOURCE_PACKAGE_FILE_NAME}") - # + # Print configure status + # ---------------------- # Use Mem stats message(STATUS "SCALFMM_USE_MEM_STATS = ${SCALFMM_USE_MEM_STATS}" ) # Use Log - message(STATUS "SCALFMM_USE_LOG = ${SCALFMM_USE_LOG}" ) + message(STATUS "SCALFMM_USE_LOG = ${SCALFMM_USE_LOG}" ) # Use Assert - message(STATUS "SCALFMM_USE_ASSERT = ${SCALFMM_USE_ASSERT}" ) + message(STATUS "SCALFMM_USE_ASSERT = ${SCALFMM_USE_ASSERT}" ) # - message(STATUS "SCALFMM_USE_MPI = ${SCALFMM_USE_MPI}" ) + message(STATUS "SCALFMM_USE_MPI = ${SCALFMM_USE_MPI}" ) - message(STATUS "SCALFMM_USE_BLAS = ${SCALFMM_USE_BLAS}") - message(STATUS "SCALFMM_USE_FFT = ${SCALFMM_USE_FFT}") - message(STATUS "SCALFMM_USE_MKL = ${SCALFMM_USE_MKL}") + message(STATUS "SCALFMM_USE_BLAS = ${SCALFMM_USE_BLAS}") + message(STATUS "SCALFMM_USE_FFT = ${SCALFMM_USE_FFT}") + message(STATUS "SCALFMM_USE_MKL = ${SCALFMM_USE_MKL}") # if(SCALFMM_USE_STARPU) - message( STATUS "SCALFMM_USE_STARPU = ${SCALFMM_USE_STARPU}" ) - message(STATUS " STARPU_LIBRARIES = ${STARPU_LIBRARIES}") - message( STATUS "SCALFMM_USE_CUDA = ${SCALFMM_USE_CUDA}" ) - MESSAGE( STATUS "SCALFMM_USE_OPENCL = ${SCALFMM_USE_OPENCL}" ) + message(STATUS "SCALFMM_USE_STARPU = ${SCALFMM_USE_STARPU}" ) + message(STATUS "STARPU_LIBRARIES = ${STARPU_LIBRARIES}") + message(STATUS "SCALFMM_USE_CUDA = ${SCALFMM_USE_CUDA}" ) + MESSAGE(STATUS "SCALFMM_USE_OPENCL = ${SCALFMM_USE_OPENCL}" ) endif(SCALFMM_USE_STARPU) - message(STATUS "CMAKE_CXX_FLAGS_TYPE = ${CMAKE_CXX_FLAGS_TYPE}") - message(STATUS "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}") - message(STATUS "SCALFMM_CXX_FLAGS = ${SCALFMM_CXX_FLAGS}") - message(STATUS "SCALFMM_LIBRARIES = ${SCALFMM_LIBRARIES}") - message(STATUS "SCALFMM_INCLUDES = ${SCALFMM_INCLUDES}") - message(STATUS "FUSE_LIST = ${FUSE_LIST}") - # - ################################################################## - # END # - ################################################################## - # + message(STATUS "SCALFMM_CXX_FLAGS = ${SCALFMM_CXX_FLAGS}") + message(STATUS "SCALFMM_LIBRARIES = ${SCALFMM_LIBRARIES}") + message(STATUS "FUSE_LIST = ${FUSE_LIST}") + else(MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake") message(STATUS "MORSE_DISTRIB_DIR is not set") diff --git a/CMakeModules/morse_cmake b/CMakeModules/morse_cmake index 33a182878f9049c47af1fce3e86e72b9a10e7f7a..41ca6a54d906b91b1a2439fe68d69f95cef89f9b 160000 --- a/CMakeModules/morse_cmake +++ b/CMakeModules/morse_cmake @@ -1 +1 @@ -Subproject commit 33a182878f9049c47af1fce3e86e72b9a10e7f7a +Subproject commit 41ca6a54d906b91b1a2439fe68d69f95cef89f9b diff --git a/CMakeModules/utils.cmake b/CMakeModules/utils.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7b8d326e9e7af573eec8b04f7f64996e233c93cb --- /dev/null +++ b/CMakeModules/utils.cmake @@ -0,0 +1,26 @@ +# helper function for generating targets + +# This function creates an executable target with a list +# of sources and all requirements passed as arguments +# if the expression passed as boolean is true. +# ---------------------------------------------------- +function(scalfmm_create_target target_name sources_list dependencies options ) + # Here, we generate a vector of boolean to check if dependencies (targets) + # exists. 1 is yes, 0 otherwise + foreach(dep IN LISTS dependencies) + if(TARGET ${dep}) + list(APPEND VECTOR_BOOL 1) + else() + list(APPEND VECTOR_BOOL 0) + endif() + endforeach() + # If all dependencies are met, we generate the target, otherwise not. + if(NOT 0 IN_LIST VECTOR_BOOL) + add_executable(${target_name} ${sources_list}) + target_link_libraries(${target_name} PRIVATE ${dependencies}) + target_compile_options(${target_name} PRIVATE ${options}) + set_target_properties(${target_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE}) + install(TARGETS ${target_name} RUNTIME DESTINATION bin) + endif() +endfunction(scalfmm_create_target) + diff --git a/CPackConfig.cmake b/CPackConfig.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d84f9a7918358d08d7c733010d606aa62a723fa7 --- /dev/null +++ b/CPackConfig.cmake @@ -0,0 +1,21 @@ +set(CPACK_PACKAGE_VERSION_PATCH 0) +execute_process( + COMMAND git rev-list HEAD --count + OUTPUT_VARIABLE CPACK_PACKAGE_VERSION_PATCH + RESULT_VARIABLE RET + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE + ) +#string_TRIM(PATCH1 PATCH) +set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY "ON") +# +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENCE") +set(CPACK_PACKAGE_VERSION_MAJOR "${${CMAKE_PROJECT_NAME}_MAJOR_VERSION}") +set(CPACK_PACKAGE_VERSION_MINOR "${${CMAKE_PROJECT_NAME}_MINOR_VERSION}") +# +set(PACK_PACKAGE_VERSION "${${CMAKE_PROJECT_NAME}_VERSION}.${${CMAKE_PROJECT_NAME}_MINOR_VERSION}-${CPACK_PACKAGE_VERSION_PATCH}") +set(CPACK_SOURCE_GENERATOR "TGZ") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "SCALFMM-${${CMAKE_PROJECT_NAME}_MAJOR_VERSION}.${${CMAKE_PROJECT_NAME}_MINOR_VERSION}-${CPACK_PACKAGE_VERSION_PATCH}") +set(CPACK_SOURCE_IGNORE_FILES "\\\\.git;.DS_Store;.*~;/*.aux;/*.idx;/*.log;/*.out;/*.toc;/*.ilg;CMakeLists.txt.user;/.settings/") +list(APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}/Utils/;/Build*;/Obsolete/") +# + diff --git a/CTestConfig.cmake b/CTestConfig.cmake index e77f07f78b817531bf9d483697c1facfade930fc..4ff7e12ca53d04e9b89db0438b7c497befb91114 100644 --- a/CTestConfig.cmake +++ b/CTestConfig.cmake @@ -6,11 +6,7 @@ ## INCLUDE(CTest) set(CTEST_PROJECT_NAME "ScalFMM") set(CTEST_NIGHTLY_START_TIME "00:00:00 GMT") - -set(CTEST_DROP_METHOD "http") -set(CTEST_DROP_SITE "cdash.inria.fr") -set(CTEST_DROP_LOCATION "/CDash/submit.php?project=scalfmm") -set(CTEST_DROP_SITE_CDASH TRUE) +set(CTEST_SUBMIT_URL "http://cdash.inria.fr/CDash/submit.php?project=scalfmm") #-------------------------------------------------------------------- # BUILDNAME variable construction diff --git a/Contribs/CMakeLists.txt b/Contribs/CMakeLists.txt deleted file mode 100644 index bef9e34752bc00ace1af717ce55a6e60e2093fe2..0000000000000000000000000000000000000000 --- a/Contribs/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -# check if compiling into source directories -INSTALL( FILES json.hpp DESTINATION include/Contribs ) - -INSTALL( DIRECTORY "inria" DESTINATION include ) - - diff --git a/Doc/CMakeLists.txt b/Doc/CMakeLists.txt index d0634f5264b2b1b9cce465f10b2374ec5e4b02c4..f891a32d3ab68714d23fd22474253d189a4da37b 100644 --- a/Doc/CMakeLists.txt +++ b/Doc/CMakeLists.txt @@ -3,6 +3,7 @@ find_package(Doxygen) if(DOXYGEN_FOUND) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile-mcss ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-mcss COPYONLY) add_custom_target( doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile diff --git a/Doc/Doxyfile-mcss b/Doc/Doxyfile-mcss new file mode 100644 index 0000000000000000000000000000000000000000..8adb3bf8f629708ddb1e6d7ca11363fd6135d7a2 --- /dev/null +++ b/Doc/Doxyfile-mcss @@ -0,0 +1,5 @@ +@INCLUDE = Doxyfile +GENERATE_HTML = NO +GENERATE_XML = YES +XML_PROGRAMLISTINGS = NO + diff --git a/Doc/Doxyfile.in b/Doc/Doxyfile.in index 50249c23cc6f5f292c87af53e33a907b08be0dcc..12c2a5ca679b807e0a6539bdb0cfacf961ba5c53 100644 --- a/Doc/Doxyfile.in +++ b/Doc/Doxyfile.in @@ -658,7 +658,8 @@ WARN_LOGFILE = # with spaces. INPUT = @CMAKE_CURRENT_SOURCE_DIR@/../Doc/Site_dox \ - @CMAKE_CURRENT_SOURCE_DIR@/../Src/ \ + @CMAKE_CURRENT_SOURCE_DIR@/../src/ \ + @CMAKE_CURRENT_SOURCE_DIR@/../include/ \ @CMAKE_CURRENT_SOURCE_DIR@/../Examples/ \ @CMAKE_CURRENT_SOURCE_DIR@/../Tests/ diff --git a/Examples/CMakeLists.txt b/Examples/CMakeLists.txt index 07f07d968fb1c27fc6cb604ca7f1a86f4e0087ba..36268aec8f9b463d5429e8e2c5a86a3c4815b67c 100644 --- a/Examples/CMakeLists.txt +++ b/Examples/CMakeLists.txt @@ -1,95 +1,53 @@ -# check if compiling into source directories -STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource) -if(insource) - MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../") -endif(insource) +# Examples +# -------- + +# List of source files +set(source_tests_files + changeFmaFormat.cpp + ChebyshevHybridFMM.cpp + ChebyshevOpenMPAdaptiveFMM.cpp + ChebyshevOpenMPFMM.cpp + ChebyshevStarpuImplicit.cpp + compare2Files.cpp + compareAllPoissonKernels.cpp + CutOffAlgorithm.cpp + DirectComputation.cpp + generateDistributions.cpp + LagrangeHybridFMM.cpp + LagrangeInterpolationAdaptiveFMM.cpp + LagrangeOpenMPFMM.cpp + LagrangeStarpuImplicit.cpp + RotationFMM.cpp + RotationMPIFMM.cpp + statisticsOnOctree.cpp + ) -project(EXAMPLES_SCALFMM CXX) -set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE}) -#ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS}) - -# Adding the project sources dir as an include dir -INCLUDE_DIRECTORIES( - ${SCALFMM_BINARY_DIR}/Src - ${SCALFMM_SOURCE_DIR}/Src - ${SCALFMM_SOURCE_DIR}/Contribs - ${SCALFMM_SOURCE_DIR} - ${SCALFMM_INCLUDES} - -) -# Find all code files -file( - GLOB_RECURSE - source_tests_files - ./*.cpp - ) # Add execs - 1 cpp = 1 exec -foreach(exec ${source_tests_files}) - get_filename_component( - execname ${exec} - NAME_WE - ) - - set(compile_exec "TRUE") - - foreach(fuse_key ${FUSE_LIST}) - file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}") - if(lines_fuse) - if( NOT SCALFMM_USE_${fuse_key} ) - MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" ) - set(compile_exec "FALSE") - endif() - endif() - endforeach() - - # Dependency are OK - if( compile_exec ) - add_executable( - ${execname} - ${exec} - ) - SET_TARGET_PROPERTIES(${execname} PROPERTIES ENABLE_EXPORTS TRUE) - target_link_libraries( - ${execname} - ${scalfmm_lib} - ${SCALFMM_LIBRARIES} - ) - install( TARGETS ${execname} DESTINATION bin ) - endif() +foreach(exec ${source_tests_files}) + set(compile_exec TRUE) + get_filename_component( execname ${exec} NAME_WE ) + + foreach(fuse_key ${FUSE_DEP_AVAILABLE}) + file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}") + if(lines_fuse AND NOT ${fuse_key} IN_LIST FUSE_LIST) + message( STATUS "This needs ${fuse_key} = ${exec}" ) + set(compile_exec FALSE) + endif() + endforeach() + + # Dependency are OK + if( compile_exec ) + add_executable( ${execname} ${exec}) + list(APPEND SCALFMM_EXAMPLES_TARGETS ${execname}) + list(APPEND SCALFMM_TESTS_TARGETS ${execname}) + set_target_properties(${execname} PROPERTIES ENABLE_EXPORTS TRUE + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE} + ) + target_link_libraries( ${execname} PRIVATE ${CMAKE_PROJECT_NAME}) + install(TARGETS ${execname} RUNTIME DESTINATION bin) + endif() endforeach(exec) -#set(GENERIC_SOURCE_FILES changeFmaFormat compare2Files generateDistributions statisticsOnOctree -# DirectComputation CutOffAlgorithm RotationFMM compareAllPoissonKernels) -#if(SCALFMM_USE_BLAS) -# set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} ChebyshevInterpolationFMM ChebyshevInterpolationAdaptiveFMM ) -#endif(SCALFMM_USE_BLAS) - -#if(SCALFMM_USE_FFT) -# set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} UniformInterpolationFMM LagrangeInterpolationAdaptiveFMM ) -#else() -# message(STATUS " &&&&&&&&&&&&&&&&&&&& SCALFMM_USE_FFT ${SCALFMM_USE_FFT}") -#endif(SCALFMM_USE_FFT) - -#if(SCALFMM_USE_MPI) -# set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} RotationMPIFMM ) -# if(SCALFMM_USE_BLAS) -# set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} MPIChebyshevInterpolationFMM ChebyshevInterpolationMPIFMMSplit ChebyshevInterpolationMPIFMM ) - -# endif(SCALFMM_USE_BLAS) +add_custom_target(scalfmm_examples ALL DEPENDS ${SCALFMM_EXAMPLES_TARGETS}) -# if(SCALFMM_USE_FFT) -# set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} MPIUniformInterpolationFMM) -# endif(SCALFMM_USE_FFT) -#endif() -## -##MESSAGE(WARNIG "GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES}") -## -## -## -#foreach(exec ${GENERIC_SOURCE_FILES}) -# add_executable(${exec} ${exec}.cpp) -# SET_TARGET_PROPERTIES(${exec} PROPERTIES ENABLE_EXPORTS TRUE) -# target_link_libraries(${exec} ${scalfmm_lib} ${SCALFMM_LIBRARIES} ) -# install( TARGETS ${exec} DESTINATION bin ) -#endforeach(exec) diff --git a/ScalFMMConfig.cmake.in b/ScalFMMConfig.cmake.in deleted file mode 100644 index e2b98e1d227efdf61812ede65f8a839f421e825a..0000000000000000000000000000000000000000 --- a/ScalFMMConfig.cmake.in +++ /dev/null @@ -1,54 +0,0 @@ -#----------------------------------------------------------------------------- -# -# SCALFMMConfig.cmake - SCALFMM CMake configuration file for external projects. -# -# This file is configured by SCALFMM and used by the SCALFMM.cmake module -# to load SCALFMM's settings for an external project. -# -@SCALFMM_CONFIG_INSTALL_ONLY@ -# -SET(SCALFMM_VERSION_MAJOR "@SCALFMM_MAJOR_VERSION@") -SET(SCALFMM_VERSION_MINOR "@SCALFMM_MINOR_VERSION@") -SET(SCALFMM_VERSION_BUILD "@SCALFMM_BUILD_VERSION@") -# -SET(SCALFMM_PREFIX "@CMAKE_INSTALL_PREFIX@") -SET(SCALFMM_INCLUDES_DIR "@CMAKE_INSTALL_PREFIX@/include") -SET(SCALFMM_INCLUDES_ADD "@SCALFMM_INCLUDES@") -SET(SCALFMM_LIBRARIES_DIR "@CMAKE_INSTALL_PREFIX@/lib") -SET(SCALFMM_LIBRARIES_ADD "@SCALFMM_COMPILE_LIBS@") -SET(SCALFMM_LIBRARY_NAME "@scalfmm_lib@") -SET(SCALFMM_CXX_FLAGS "@SCALFMM_CXX_FLAGS@ @CMAKE_CXX_FLAGS@") -# -SET(SCALFMM_SOURCE_DIR "@SCALFMM_SOURCE_DIR@") -SET(SCALFMM_BUILD_SHARED_LIBS "@BUILD_SHARED_LIBS@") -SET(SCALFMM_USE_FILE "@SCALFMM_USE_FILE@") -# -SET(SCALFMM_BUILD_TYPE "@CMAKE_BUILD_TYPE@") -# -# SCALFMM Options -# -SET(SCALFMM_USE_ADDONS "@SCALFMM_USE_ADDONS@") -SET(SCALFMM_USE_MPI "@SCALFMM_USE_MPI@") -SET(SCALFMM_USE_BLAS "@SCALFMM_USE_BLAS@") -SET(SCALFMM_USE_FFT "@SCALFMM_USE_FFT@") -SET(SCALFMM_USE_MKL "@SCALFMM_USE_MKL_AS_BLAS@") -SET(SCALFMM_FLAGS "@SCALFMM_FLAGS_OPTI@") -SET(SCALFMM_USE_MEM_STATS "@SCALFMM_USE_MEM_STATS@") -SET(SCALFMM_USE_LOG "@SCALFMM_USE_LOG@") -SET(SCALFMM_USE_OMP4 "@SCALFMM_USE_OMP4@") -SET(SCALFMM_USE_STARPU "@SCALFMM_USE_STARPU@") -SET(SCALFMM_USE_SSE "@SCALFMM_USE_SSE@") -SET(SCALFMM_USE_AVX "@SCALFMM_USE_AVX@") -# -SET(SCALFMM_DOC_TAGS "@CMAKE_BINARY_DIR@/Doc/scalfmm.tag") - -# -IF(SCALFMM_USE_ADDONS) - SET(SCALFMM_LIBRARIES "-L${SCALFMM_LIBRARIES_DIR} -l${SCALFMM_LIBRARY_NAME} ${SCALFMM_LIBRARIES_ADD}" ) -ELSE() - SET(SCALFMM_LIBRARIES "-L${SCALFMM_LIBRARIES_DIR} -l${SCALFMM_LIBRARY_NAME}" ) -ENDIF() - - -#SCALFMM_BUILD_TESTS => OFF -#SCALFMM_BUILD_UTESTS => OFF diff --git a/Src/Utils/stdComplex.hpp b/Src/Utils/stdComplex.hpp deleted file mode 100644 index 4811beb463783c3904ad36fa2645c72180614c5b..0000000000000000000000000000000000000000 --- a/Src/Utils/stdComplex.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// =================================================================================== -// olivier.coulaud@inria.fr, berenger.bramas@inria.fr -// This software is a computer program whose purpose is to compute the FMM. -// -// This software is governed by the CeCILL-C and LGPL licenses and -// abiding by the rules of distribution of free software. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public and CeCILL-C Licenses for more details. -// "http://www.cecill.info". -// "http://www.gnu.org/licenses". -// =================================================================================== -#ifndef STDCOMPLEXE_HPP -#define STDCOMPLEXE_HPP - -#include <complex> -template<typename T> -using stdComplex = std::complex<T> ; - - - -#endif //STDCOMPLEXE_HPP - - diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index d1f53fff14e1a08752cfc51bfeaa5f41fd9caeeb..5bc4ff801e98ad7b3f34613372ec4624e51222d8 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1,60 +1,128 @@ -# check if compiling into source directories -STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource) -if(insource) - MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../") -endif(insource) - -project(TESTS_SCALFMM CXX) -set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE}) -ADD_DEFINITIONS( ${ScaLFMM_CXX_FLAGS}) # Find all code files -file( - GLOB_RECURSE - source_tests_files - ./*.cpp - ) - - -# Adding the project sources dir as an include dir -INCLUDE_DIRECTORIES( - ${SCALFMM_BINARY_DIR}/Src - ${SCALFMM_SOURCE_DIR}/Src - ${SCALFMM_SOURCE_DIR}/Contribs - ${SCALFMM_SOURCE_DIR} - ${SCALFMM_INCLUDES} -) - +set(source_tests_files + GroupTree/compareDAGmapping.cpp + GroupTree/testBlockedAlgorithm.cpp + GroupTree/testBlockedAlgorithmDyn.cpp + GroupTree/testBlockedChebyshev.cpp + GroupTree/testBlockedMpiAlgorithm.cpp + GroupTree/testBlockedMpiChebyshev.cpp + GroupTree/testBlockedMpiInterpolation.cpp + GroupTree/testBlockedMpiUniform.cpp + GroupTree/testBlockedRotationCompare.cpp + GroupTree/testBlockedRotation.cpp + GroupTree/testBlockedRotationCuda.cpp + GroupTree/testBlockedRotationMpi.cpp + GroupTree/testBlockedRotationMpiCuda.cpp + GroupTree/testBlockedSpeedOperators.cpp + GroupTree/testBlockedTaylor.cpp + GroupTree/testBlockedTree.cpp + GroupTree/testBlockedUnifCudaBench.cpp + GroupTree/testBlockedUnifCuda.cpp + GroupTree/testBlockedUniformBench.cpp + GroupTree/testBlockedUniformCompare.cpp + GroupTree/testBlockedUniform.cpp + GroupTree/testBlockedWithCudaAlgorithm.cpp + GroupTree/testBlockedWithOpenCLAlgorithm.cpp + Kernels/DirectAlgorithm.cpp + Kernels/testChebAlgorithm.cpp + Kernels/testChebAlgorithmProc.cpp + Kernels/testChebTensorialAlgorithm.cpp + Kernels/testFlopsChebAlgorithm.cpp + Kernels/testOmniPath.cpp + Kernels/testP2PEfficency.cpp + Kernels/testRotationAlgorithm.cpp + Kernels/testRotationAlgorithmProc.cpp + Kernels/testRotationPeriodicBench.cpp + Kernels/testSmoothUnifAlgorithm.cpp + Kernels/testSphericalAlgorithm.cpp + Kernels/testSphericalBench.cpp + Kernels/testSphericalBlasAlgorithm.cpp + Kernels/testSphericalBlockBlasAlgorithm.cpp + Kernels/testSphericalDlpolyAlgorithm.cpp + Kernels/testSphericalGalaxyCsv.cpp + Kernels/testSphericalProcAlgorithm.cpp + Kernels/testSphericalRotationAlgorithm.cpp + Kernels/testTaylor.cpp + Kernels/testTaylorKernel.cpp + Kernels/testTaylorSimple.cpp + Kernels/testTsmAlgorithm.cpp + Kernels/testTuneSphericalBlockBlas.cpp + Kernels/testUnifAlgorithm.cpp + Kernels/testUnifAlgorithmProc.cpp + Kernels/testUnifTensorialAlgorithm.cpp + Utils/testBlas.cpp + Utils/testChebBinaryM2L.cpp + Utils/testChebBinarySymM2L.cpp + Utils/testChebInterpolator.cpp + Utils/testChebInterpolatorExtendedBBox.cpp + Utils/testChebM2Lprecomputation.cpp + Utils/testChebOctree.cpp + Utils/testChebSxUCBSy.cpp + Utils/testChebSymmetries.cpp + Utils/testChebTensorProduct.cpp + Utils/testCompareIOTree.cpp + Utils/testDebug.cpp + Utils/testFastDiscreteConvolution.cpp + Utils/testFFT.cpp + Utils/testFmmAlgorithm.cpp + Utils/testFmmAlgorithmOmp4.cpp + Utils/testFmmAlgorithmPeriodic.cpp + Utils/testFmmAlgorithmProc.cpp + Utils/testFmmAlgorithmProcPeriodic.cpp + Utils/testFmmAlgorithmProcRandom.cpp + Utils/testFmmAlgorithmProcRotation.cpp + Utils/testFmmAlgorithmProcTsm.cpp + Utils/testFmmAlgorithmTsm.cpp + Utils/testLapack.cpp + Utils/testLapackQR.cpp + Utils/testLoader.cpp + Utils/testLoaderFMATsm.cpp + Utils/testLoaderFMATsmCreate.cpp + Utils/testMemStats.cpp + Utils/testMpiCsvSaver.cpp + Utils/testOctree.cpp + Utils/testOctreeFuncteur.cpp + Utils/testOctreeIter.cpp + Utils/testOctreeParallelFuncteur.cpp + Utils/testOctreePrintMorton.cpp + Utils/testOctreeRearrange.cpp + Utils/testOctreeRearrangePeriodic.cpp + Utils/testOctreeRearrangeProc.cpp + Utils/testOctreeRearrangeTsm.cpp + Utils/testParameterNames.cpp + Utils/testPartitionsMapping.cpp + Utils/testStatsTree.cpp + Utils/testTemplateExample.cpp + Utils/testTic.cpp + Utils/testTreeBuilderThread.cpp + Utils/testTreeIO.cpp + Utils/testUnifInterpolator.cpp + Utils/testUnifTensorialInterpolator.cpp + ) # Add execs - 1 cpp = 1 exec foreach(exec ${source_tests_files}) - get_filename_component( - execname ${exec} - NAME_WE - ) - - set(compile_exec "TRUE") + set(compile_exec TRUE) + get_filename_component( execname ${exec} NAME_WE ) - foreach(fuse_key ${FUSE_LIST}) - file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}") - if(lines_fuse) - if( NOT SCALFMM_USE_${fuse_key} ) - MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" ) - set(compile_exec "FALSE") - endif() - endif() - endforeach() + foreach(fuse_key ${FUSE_DEP_AVAILABLE}) + file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}") + if(lines_fuse AND NOT ${fuse_key} IN_LIST FUSE_LIST) + message( STATUS "This needs ${fuse_key} = ${exec}" ) + set(compile_exec FALSE) + endif() + endforeach() - # Dependency are OK - if( compile_exec ) - add_executable( - ${execname} - ${exec} - ) - SET_TARGET_PROPERTIES(${execname} PROPERTIES ENABLE_EXPORTS TRUE) - target_link_libraries( - ${execname} - ${scalfmm_lib} - ${SCALFMM_LIBRARIES} - ) - endif() + # Dependency are OK + if( compile_exec ) + add_executable( ${execname} ${exec}) + list(APPEND SCALFMM_TESTS_TARGETS ${execname}) + set_target_properties(${execname} PROPERTIES ENABLE_EXPORTS TRUE + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE} + ) + target_link_libraries( ${execname} ${CMAKE_PROJECT_NAME}) + endif() endforeach(exec) + +add_custom_target(scalfmm_tests ALL DEPENDS ${SCALFMM_TESTS_TARGETS}) + diff --git a/Tests/GroupTree/compareDAGmapping.cpp b/Tests/GroupTree/compareDAGmapping.cpp index a41107b360b9f2d387c83fa999c56db7486bf19d..6cce41fd00ba8f66dcd4f3e467248c679a2cd40a 100644 --- a/Tests/GroupTree/compareDAGmapping.cpp +++ b/Tests/GroupTree/compareDAGmapping.cpp @@ -11,10 +11,10 @@ #include <omp.h> using namespace std; -#include "../../Src/Utils/FGlobal.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FParameterNames.hpp" enum TaskType {P2M = 0, M2M, M2L, M2L_OUT, L2L, L2P, P2P, P2P_OUT}; string taskNames[] = {"P2M", "M2M", "M2L", "M2L_out", "L2L", "L2P", "P2P", "P2P_out"}; struct Task diff --git a/Tests/GroupTree/testBlockedAlgorithm.cpp b/Tests/GroupTree/testBlockedAlgorithm.cpp index f048ecf84a46da601a0c83c82c906e8d7104741c..03543879c692898dce6db9424e27fc6b9db3c500 100644 --- a/Tests/GroupTree/testBlockedAlgorithm.cpp +++ b/Tests/GroupTree/testBlockedAlgorithm.cpp @@ -2,46 +2,46 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" //#undef SCALFMM_USE_STARPU //#undef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" #include "Components/FSymbolicData.hpp" -#include "../../Src/Components/FTestKernels.hpp" -#include "../../Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp" +#include "Components/FTestKernels.hpp" +#include "GroupTree/TestKernel/FGroupTestParticleContainer.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Files/FFmaGenericLoader.hpp" +#include "Core/FFmmAlgorithm.hpp" int main(int argc, char* argv[]){ setenv("STARPU_NCPU","1",1); @@ -70,12 +70,12 @@ int main(int argc, char* argv[]){ typedef FGroupTaskStarPUAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupCpuWrapper, GroupContainerClass > GroupAlgorithm; #elif defined(SCALFMM_USE_OMP4) typedef FTestKernels< GroupCellClass, GroupContainerClass > GroupKernelClass; - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #else typedef FTestKernels< GroupCellClass, GroupContainerClass > GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #endif typedef FTestCell CellClass; diff --git a/Tests/GroupTree/testBlockedAlgorithmDyn.cpp b/Tests/GroupTree/testBlockedAlgorithmDyn.cpp index db9097ce163b449f5a2de6e019bf1af003a29c59..7d2535868c5adf49cba53e13b7317c35c4814a72 100644 --- a/Tests/GroupTree/testBlockedAlgorithmDyn.cpp +++ b/Tests/GroupTree/testBlockedAlgorithmDyn.cpp @@ -2,44 +2,44 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" #undef SCALFMM_USE_STARPU #undef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTreeDyn.hpp" +#include "GroupTree/Core/FGroupTreeDyn.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" #endif -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" #include "Components/FSymbolicData.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Files/FFmaGenericLoader.hpp" +#include "Core/FFmmAlgorithm.hpp" template <class FReal> @@ -133,12 +133,12 @@ int main(int argc, char* argv[]){ typedef FGroupTaskStarPUAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupCpuWrapper, GroupContainerClass > GroupAlgorithm; #elif defined(SCALFMM_USE_OMP4) typedef FTestKernels< GroupCellClass, GroupContainerClass > GroupKernelClass; - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, unsigned char, unsigned char, unsigned char, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #else typedef FTestKernels< GroupCellClass, GroupContainerClass > GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #endif typedef FTestCell CellClass; diff --git a/Tests/GroupTree/testBlockedChebyshev.cpp b/Tests/GroupTree/testBlockedChebyshev.cpp index 78cc3f3c49644db7377e6bfa892715001bf6b168..c2fc3ce442b5d7bd0df579fe3a212a424ba046a9 100644 --- a/Tests/GroupTree/testBlockedChebyshev.cpp +++ b/Tests/GroupTree/testBlockedChebyshev.cpp @@ -5,39 +5,39 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "Utils/FGlobal.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Chebyshev/FChebSymKernel.hpp" -#include "../../Src/Kernels/Chebyshev/FChebCell.hpp" +#include "Kernels/Chebyshev/FChebSymKernel.hpp" +#include "Kernels/Chebyshev/FChebCell.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> @@ -74,12 +74,12 @@ int main(int argc, char* argv[]){ typedef FGroupTaskStarPUAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupCpuWrapper, GroupContainerClass > GroupAlgorithm; #elif defined(SCALFMM_USE_OMP4) typedef FChebSymKernel<FReal,GroupCellClass,GroupContainerClass,MatrixKernelClass,ORDER> GroupKernelClass; - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #else typedef FChebSymKernel<FReal,GroupCellClass,GroupContainerClass,MatrixKernelClass,ORDER> GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #endif // Get params const int NbLevels = FParameters::getValue(argc,argv,FParameterDefinitions::OctreeHeight.options, 5); diff --git a/Tests/GroupTree/testBlockedMpiChebyshev.cpp b/Tests/GroupTree/testBlockedMpiChebyshev.cpp index 16b6edb45fb53d7ea006e67e0ebbb9c9a4e30caf..424bb4f6e6ea78b78cd2464ea3dfded14732f188 100644 --- a/Tests/GroupTree/testBlockedMpiChebyshev.cpp +++ b/Tests/GroupTree/testBlockedMpiChebyshev.cpp @@ -6,46 +6,46 @@ // @FUSE_STARPU -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Chebyshev/FChebSymKernel.hpp" -#include "../../Src/Kernels/Chebyshev/FChebCell.hpp" +#include "Kernels/Chebyshev/FChebSymKernel.hpp" +#include "Kernels/Chebyshev/FChebCell.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" +#include "Files/FMpiTreeBuilder.hpp" +#include "GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" -#include "../../Src/Files/FMpiFmaGenericLoader.hpp" -#include "../../Src/Containers/FCoordinateComputer.hpp" +#include "Files/FMpiFmaGenericLoader.hpp" +#include "Containers/FCoordinateComputer.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedMpiUniform.cpp b/Tests/GroupTree/testBlockedMpiUniform.cpp index e44fae2eb8a94d15a75d67436b5f636b0a724aa5..16d22ef4313f3d60372148a37567d9aaa7af013a 100644 --- a/Tests/GroupTree/testBlockedMpiUniform.cpp +++ b/Tests/GroupTree/testBlockedMpiUniform.cpp @@ -6,46 +6,46 @@ // @FUSE_STARPU -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Uniform/FUnifCell.hpp" +#include "Kernels/Uniform/FUnifCell.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifKernel.hpp" //this include must be after the three previous at least +#include "Kernels/Uniform/FUnifKernel.hpp" //this include must be after the three previous at least -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" +#include "Files/FMpiTreeBuilder.hpp" +#include "GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" -#include "../../Src/Files/FMpiFmaGenericLoader.hpp" -#include "../../Src/Containers/FCoordinateComputer.hpp" +#include "Files/FMpiFmaGenericLoader.hpp" +#include "Containers/FCoordinateComputer.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedRotation.cpp b/Tests/GroupTree/testBlockedRotation.cpp index 17a5717a3441b63b3de052a25ed32365ceea4968..6876caafe0bf63017ce794463bfacbcaebc92175 100644 --- a/Tests/GroupTree/testBlockedRotation.cpp +++ b/Tests/GroupTree/testBlockedRotation.cpp @@ -1,38 +1,38 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> @@ -62,12 +62,12 @@ int main(int argc, char* argv[]){ typedef FGroupTaskStarPUAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupCpuWrapper, GroupContainerClass > GroupAlgorithm; #elif defined(SCALFMM_USE_OMP4) typedef FRotationKernel< FReal, GroupCellClass, GroupContainerClass , P> GroupKernelClass; - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #else typedef FRotationKernel< FReal, GroupCellClass, GroupContainerClass , P> GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #endif diff --git a/Tests/GroupTree/testBlockedRotationCompare.cpp b/Tests/GroupTree/testBlockedRotationCompare.cpp index 178cc69e5e66ce988d2b8ffd754f7df060756e89..f8ec98272c2862c38d8ad67cb2003ba6ac474b17 100644 --- a/Tests/GroupTree/testBlockedRotationCompare.cpp +++ b/Tests/GroupTree/testBlockedRotationCompare.cpp @@ -4,39 +4,39 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/P2P/FP2PR.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PR.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #include "Core/FFmmAlgorithmOmp4.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> @@ -632,7 +632,7 @@ struct RunContainer{ typedef FRotationKernel<FReal,GroupCellClass,GroupContainerClass,ORDER> GroupKernelClass; // Set the number of threads omp_set_num_threads(FParameters::getValue(argc,argv,FParameterDefinitions::NbThreads.options, omp_get_max_threads())); - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; std::cout << "Using FGroupTaskDepAlgorithm" << std::endl; GroupKernelClass groupkernel(NbLevels, loader.getBoxWidth(), loader.getCenterOfBox()); @@ -645,7 +645,7 @@ struct RunContainer{ { typedef FRotationKernel<FReal,GroupCellClass,GroupContainerClass,ORDER> GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; std::cout << "Using FGroupTaskAlgorithm" << std::endl; GroupKernelClass groupkernel(NbLevels, loader.getBoxWidth(), loader.getCenterOfBox()); GroupAlgorithm groupalgo(&groupedTree,&groupkernel); diff --git a/Tests/GroupTree/testBlockedRotationCuda.cpp b/Tests/GroupTree/testBlockedRotationCuda.cpp index 27c552c545cf707326bc328fa3e5455f2168fb95..3c523d50d3dee6cdd87da06d5f8c679bf9dee9c1 100644 --- a/Tests/GroupTree/testBlockedRotationCuda.cpp +++ b/Tests/GroupTree/testBlockedRotationCuda.cpp @@ -6,42 +6,42 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" #include "Components/FSymbolicData.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp" -#include "../../Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfCells.hpp" +#include "GroupTree/Cuda/FCudaDeviceWrapper.hpp" +#include "GroupTree/Cuda/FCudaEmptyCellSymb.hpp" +#include "GroupTree/Cuda/FCudaGroupOfParticles.hpp" +#include "GroupTree/Cuda/FCudaGroupOfCells.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedRotationMpi.cpp b/Tests/GroupTree/testBlockedRotationMpi.cpp index 0b5f8f0887cdf370ba7f10314968aead2d3d61a6..db53c49b2d7f0875db42314052702caaf986498b 100644 --- a/Tests/GroupTree/testBlockedRotationMpi.cpp +++ b/Tests/GroupTree/testBlockedRotationMpi.cpp @@ -6,45 +6,45 @@ // @FUSE_STARPU -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" +#include "Files/FMpiTreeBuilder.hpp" +#include "GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" -#include "../../Src/Files/FMpiFmaGenericLoader.hpp" -#include "../../Src/Containers/FCoordinateComputer.hpp" +#include "Files/FMpiFmaGenericLoader.hpp" +#include "Containers/FCoordinateComputer.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedRotationMpiCuda.cpp b/Tests/GroupTree/testBlockedRotationMpiCuda.cpp index 9e7f645dd3bb77de3ac6be5af0574842a887ea3e..be6b95f940c6584a61d0691373ff71167fe61cf9 100644 --- a/Tests/GroupTree/testBlockedRotationMpiCuda.cpp +++ b/Tests/GroupTree/testBlockedRotationMpiCuda.cpp @@ -7,51 +7,51 @@ // @FUSE_CUDA -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp" -#include "../../Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfCells.hpp" +#include "GroupTree/Cuda/FCudaDeviceWrapper.hpp" +#include "GroupTree/Cuda/FCudaEmptyCellSymb.hpp" +#include "GroupTree/Cuda/FCudaGroupOfParticles.hpp" +#include "GroupTree/Cuda/FCudaGroupOfCells.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" +#include "Files/FMpiTreeBuilder.hpp" +#include "GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" -#include "../../Src/Files/FMpiFmaGenericLoader.hpp" -#include "../../Src/Containers/FCoordinateComputer.hpp" +#include "Files/FMpiFmaGenericLoader.hpp" +#include "Containers/FCoordinateComputer.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedSpeedOperators.cpp b/Tests/GroupTree/testBlockedSpeedOperators.cpp index e5424abaa538dc01b3f95eea545773f71e555190..bfedb2079059b9458607b2290537c4773ec03988 100644 --- a/Tests/GroupTree/testBlockedSpeedOperators.cpp +++ b/Tests/GroupTree/testBlockedSpeedOperators.cpp @@ -6,53 +6,53 @@ // @SCALFMM_PRIVATE -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifCell.hpp" +#include "Kernels/Uniform/FUnifKernel.hpp" +#include "Kernels/Uniform/FUnifCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" #ifdef SCALFMM_USE_CUDA -#include "../../Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp" -#include "../../Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfCells.hpp" -#include "../../Src/GroupTree/Uniform/FUnifCudaCellPOD.hpp" -#include "../../Src/GroupTree/Uniform/FUnifCudaSharedData.hpp" -#include "../../Src/GroupTree/Cuda/FCudaData.hpp" -#include "../../Src/GroupTree/Cuda/FCudaTic.hpp" +#include "GroupTree/Cuda/FCudaDeviceWrapper.hpp" +#include "GroupTree/Cuda/FCudaEmptyCellSymb.hpp" +#include "GroupTree/Cuda/FCudaGroupOfParticles.hpp" +#include "GroupTree/Cuda/FCudaGroupOfCells.hpp" +#include "GroupTree/Uniform/FUnifCudaCellPOD.hpp" +#include "GroupTree/Uniform/FUnifCudaSharedData.hpp" +#include "GroupTree/Cuda/FCudaData.hpp" +#include "GroupTree/Cuda/FCudaTic.hpp" template <class FReal, int ORDER> class FUnifCuda; #endif // SCALFMM_USE_CUDA -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedTaylor.cpp b/Tests/GroupTree/testBlockedTaylor.cpp index 79dd5331ab21c70151dd468ebb139d0b63eedbe2..514fc15d6e2935a40a806b2f6eb50d294ef0be1e 100644 --- a/Tests/GroupTree/testBlockedTaylor.cpp +++ b/Tests/GroupTree/testBlockedTaylor.cpp @@ -1,38 +1,38 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Taylor/FTaylorKernel.hpp" -#include "../../Src/Kernels/Taylor/FTaylorCell.hpp" +#include "Kernels/Taylor/FTaylorKernel.hpp" +#include "Kernels/Taylor/FTaylorCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> @@ -62,12 +62,12 @@ int main(int argc, char* argv[]){ typedef FGroupTaskStarPUAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupCpuWrapper, GroupContainerClass > GroupAlgorithm; #elif defined(SCALFMM_USE_OMP4) typedef FTaylorKernel< FReal,GroupCellClass, GroupContainerClass , P,1> GroupKernelClass; - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, - GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, + GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #else typedef FTaylorKernel< FReal,GroupCellClass, GroupContainerClass , P,1> GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #endif diff --git a/Tests/GroupTree/testBlockedTree.cpp b/Tests/GroupTree/testBlockedTree.cpp index b4b518cb749fad4a674959f73b1dc14c09e63511..1066b9df756038b42d19a3324a25b273182773bb 100644 --- a/Tests/GroupTree/testBlockedTree.cpp +++ b/Tests/GroupTree/testBlockedTree.cpp @@ -1,45 +1,45 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Containers/FOctree.hpp" +#include "Containers/FOctree.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmTask.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmTask.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" int main(int argc, char* argv[]){ @@ -111,12 +111,12 @@ int main(int argc, char* argv[]){ typedef FGroupTaskStarPUAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupCpuWrapper, GroupContainerClass > GroupAlgorithm; #elif defined(SCALFMM_USE_OMP4) typedef FRotationKernel< FReal, GroupCellClass, GroupContainerClass , P> GroupKernelClass; - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #else typedef FRotationKernel< FReal, GroupCellClass, GroupContainerClass , P> GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #endif GroupKernelClass kernel(NbLevels, loader.getBoxWidth(), loader.getCenterOfBox()); diff --git a/Tests/GroupTree/testBlockedUnifCuda.cpp b/Tests/GroupTree/testBlockedUnifCuda.cpp index 50906751e978e93965fc7e3e78f0ca347b8896b5..c01b9cc5c19a65d887be843d150fd343f00546de 100644 --- a/Tests/GroupTree/testBlockedUnifCuda.cpp +++ b/Tests/GroupTree/testBlockedUnifCuda.cpp @@ -7,44 +7,44 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifKernel.hpp" +#include "Kernels/Uniform/FUnifKernel.hpp" -#include "../../Src/GroupTree/Uniform/FUnifCellPOD.hpp" -#include "../../Src/GroupTree/Uniform/FUnifCudaCellPOD.hpp" +#include "GroupTree/Uniform/FUnifCellPOD.hpp" +#include "GroupTree/Uniform/FUnifCudaCellPOD.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp" -#include "../../Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfCells.hpp" +#include "GroupTree/Cuda/FCudaDeviceWrapper.hpp" +#include "GroupTree/Cuda/FCudaEmptyCellSymb.hpp" +#include "GroupTree/Cuda/FCudaGroupOfParticles.hpp" +#include "GroupTree/Cuda/FCudaGroupOfCells.hpp" -#include "../../Src/GroupTree/Uniform/FUnifCudaSharedData.hpp" +#include "GroupTree/Uniform/FUnifCudaSharedData.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedUnifCudaBench.cpp b/Tests/GroupTree/testBlockedUnifCudaBench.cpp index 529f334e7a5475bc1117f2d91260456d206650e2..1ef6c643306051bccdfcba4432494c86b8e6ba6d 100644 --- a/Tests/GroupTree/testBlockedUnifCudaBench.cpp +++ b/Tests/GroupTree/testBlockedUnifCudaBench.cpp @@ -7,44 +7,44 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifKernel.hpp" +#include "Kernels/Uniform/FUnifKernel.hpp" -#include "../../Src/GroupTree/Uniform/FUnifCellPOD.hpp" -#include "../../Src/GroupTree/Uniform/FUnifCudaCellPOD.hpp" +#include "GroupTree/Uniform/FUnifCellPOD.hpp" +#include "GroupTree/Uniform/FUnifCudaCellPOD.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp" -#include "../../Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp" -#include "../../Src/GroupTree/Cuda/FCudaGroupOfCells.hpp" +#include "GroupTree/Cuda/FCudaDeviceWrapper.hpp" +#include "GroupTree/Cuda/FCudaEmptyCellSymb.hpp" +#include "GroupTree/Cuda/FCudaGroupOfParticles.hpp" +#include "GroupTree/Cuda/FCudaGroupOfCells.hpp" -#include "../../Src/GroupTree/Uniform/FUnifCudaSharedData.hpp" +#include "GroupTree/Uniform/FUnifCudaSharedData.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedUniform.cpp b/Tests/GroupTree/testBlockedUniform.cpp index 345de9f93eea7e27cbdb849b865ccc17290f7db9..9220c5a4c01b18e388dfba63dd9e6ed25b26598b 100644 --- a/Tests/GroupTree/testBlockedUniform.cpp +++ b/Tests/GroupTree/testBlockedUniform.cpp @@ -2,54 +2,56 @@ // ==== CMAKE ===== // @FUSE_BLAS // @FUSE_FFT -// @FUSE_STARPU +// // ================ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" //#undef SCALFMM_USE_STARPU //#undef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifCell.hpp" +#include "Kernels/Uniform/FUnifKernel.hpp" +#include "Kernels/Uniform/FUnifCell.hpp" #include "Components/FSymbolicData.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" +#undef SCALFMM_USE_OMP4 #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #endif +#undef SCALFMM_USE_STARPU #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> -#define RANDOM_PARTICLES +//#define RANDOM_PARTICLES #ifdef STARPU_SIMGRID_MLR_MODELS extern "C" { @@ -88,12 +90,12 @@ int main(int argc, char* argv[]){ typedef FUnifKernel<FReal,GroupCellClass,GroupContainerClass,MatrixKernelClass,ORDER> GroupKernelClass; // Set the number of threads omp_set_num_threads(FParameters::getValue(argc,argv,FParameterDefinitions::NbThreads.options, omp_get_max_threads())); - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #else typedef FUnifKernel<FReal,GroupCellClass,GroupContainerClass,MatrixKernelClass,ORDER> GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; #endif // Get params const int NbLevels = FParameters::getValue(argc,argv,FParameterDefinitions::OctreeHeight.options, 5); @@ -136,11 +138,11 @@ int main(int argc, char* argv[]){ // Extended for Native vs SimGrid makespans comparison timer.tic(); - double start_time = starpu_timing_now(); + //double start_time = starpu_timing_now(); groupalgo.execute(); - double end_time = starpu_timing_now(); + //double end_time = starpu_timing_now(); std::cout << "Kernel executed in in " << timer.tacAndElapsed() << "s\n"; - std::cout << (end_time - start_time)/1000 << "\n"; + //std::cout << (end_time - start_time)/1000 << "\n"; // Validate the result if(FParameters::existParameter(argc, argv, LocalOptionNoValidate.options) == false){ diff --git a/Tests/GroupTree/testBlockedUniformBench.cpp b/Tests/GroupTree/testBlockedUniformBench.cpp index 0d562068d000cc8b1d3f05934a6be6fa3332aebb..f299909634bffaf19905e5895aa630703bbf90e4 100644 --- a/Tests/GroupTree/testBlockedUniformBench.cpp +++ b/Tests/GroupTree/testBlockedUniformBench.cpp @@ -7,39 +7,39 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifCell.hpp" +#include "Kernels/Uniform/FUnifKernel.hpp" +#include "Kernels/Uniform/FUnifCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> diff --git a/Tests/GroupTree/testBlockedUniformCompare.cpp b/Tests/GroupTree/testBlockedUniformCompare.cpp index f02a244993e428a634264f943e7d8b8c210a3590..53f89b4292bc646eea340475e5777f05d5e0412d 100644 --- a/Tests/GroupTree/testBlockedUniformCompare.cpp +++ b/Tests/GroupTree/testBlockedUniformCompare.cpp @@ -6,41 +6,41 @@ // Keep in private GIT -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifCell.hpp" +#include "Kernels/Uniform/FUnifKernel.hpp" +#include "Kernels/Uniform/FUnifCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" #ifdef SCALFMM_USE_OMP4 -#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp" #include "Core/FFmmAlgorithmOmp4.hpp" #endif #ifdef SCALFMM_USE_STARPU -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #endif -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <memory> @@ -69,7 +69,7 @@ #include <starpu.h> #endif -#define RANDOM_PARTICLES +//#define RANDOM_PARTICLES const FParameterNames LocalOrder { {"-order"}, "Order of the kernel"}; const FParameterNames LocalOptionOmpTask { {"-omp-task"}, "To use FFmmAlgorithmTask"}; @@ -649,13 +649,13 @@ struct RunContainer{ #elif defined(SCALFMM_USE_OMP4) typedef FUnifKernel<FReal,GroupCellClass,GroupContainerClass,MatrixKernelClass,ORDER> GroupKernelClass; // Set the number of threads - typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, + typedef FGroupTaskDepAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellSymbClass, GroupCellUpClass, GroupCellDownClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; std::cout << "Using FGroupTaskDepAlgorithm" << std::endl; #else typedef FUnifKernel<FReal,GroupCellClass,GroupContainerClass,MatrixKernelClass,ORDER> GroupKernelClass; //typedef FGroupSeqAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; - typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupCellClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; + typedef FGroupTaskAlgorithm<GroupOctreeClass, typename GroupOctreeClass::CellGroupClass, GroupKernelClass, typename GroupOctreeClass::ParticleGroupClass, GroupContainerClass > GroupAlgorithm; std::cout << "Using FGroupTaskAlgorithm" << std::endl; #endif // Get params diff --git a/Tests/GroupTree/testBlockedWithCudaAlgorithm.cpp b/Tests/GroupTree/testBlockedWithCudaAlgorithm.cpp index 522418cb77d05623f62cc10ed0d6808a13f863d4..32c02ca08c42ea1708022356a21a3da8ff3492b0 100644 --- a/Tests/GroupTree/testBlockedWithCudaAlgorithm.cpp +++ b/Tests/GroupTree/testBlockedWithCudaAlgorithm.cpp @@ -4,49 +4,49 @@ // @FUSE_STARPU // @FUSE_CUDA -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" -#include "../../Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" +#include "GroupTree/TestKernel/FGroupTestParticleContainer.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Files/FFmaGenericLoader.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/TestKernel/FTestCellPOD.hpp" +#include "GroupTree/TestKernel/FTestCellPOD.hpp" -//#include "../../Src/GroupTree/Cuda/FCudaTestKernels.hpp" -//#include "../../Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp" -//#include "../../Src/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp" -//#include "../../Src/GroupTree/Cuda/FCudaGroupOfCells.hpp" -//#include "../../Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp" +//#include "GroupTree/Cuda/FCudaTestKernels.hpp" +//#include "GroupTree/Cuda/FCudaGroupOfParticles.hpp" +//#include "GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp" +//#include "GroupTree/Cuda/FCudaGroupOfCells.hpp" +//#include "GroupTree/Cuda/FCudaDeviceWrapper.hpp" template <class FReal> diff --git a/Tests/GroupTree/testBlockedWithOpenCLAlgorithm.cpp b/Tests/GroupTree/testBlockedWithOpenCLAlgorithm.cpp index 857dbc8d581a14ac5290e437936bf9f424eef7cd..85bd32d5a99ae63b34636a97eb494c04e98baecc 100644 --- a/Tests/GroupTree/testBlockedWithOpenCLAlgorithm.cpp +++ b/Tests/GroupTree/testBlockedWithOpenCLAlgorithm.cpp @@ -3,45 +3,45 @@ // @FUSE_STARPU // @FUSE_OPENCL -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" -#include "../../Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" +#include "GroupTree/TestKernel/FGroupTestParticleContainer.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Files/FFmaGenericLoader.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" -#include "../../Src/GroupTree/TestKernel/FTestOpenCLCode.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/TestKernel/FTestOpenCLCode.hpp" #include "Components/FTestCell.hpp" -#include "../../Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp" +#include "GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp" int main(int argc, char* argv[]){ if(getenv("HOSTNAME") && strcmp(getenv("HOSTNAME"),"berenger-HP-ProBook-640-G1") == 0){ diff --git a/Tests/Kernels/DirectAlgorithm.cpp b/Tests/Kernels/DirectAlgorithm.cpp index 6bb7af1f4b887981cad60d06b5bfd0c32a6807af..7ced97a10f30cfadd423c166375e3be8f87b7d87 100644 --- a/Tests/Kernels/DirectAlgorithm.cpp +++ b/Tests/Kernels/DirectAlgorithm.cpp @@ -13,33 +13,33 @@ #include <string> #include "ScalFmmConfig.h" -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FParameterNames.hpp" -#include "../../Src/Files/FIOVtk.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FParameterNames.hpp" +#include "Files/FIOVtk.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithmPeriodic.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmPeriodic.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/Files/FDlpolyLoader.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Files/FDlpolyLoader.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/P2P/FP2P.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/P2P/FP2P.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" #ifdef SCALFMM_USE_BLAS // chebyshev kernel -#include "../../Src/Kernels/Chebyshev/FChebCell.hpp" -#include "../../Src/Kernels/Chebyshev/FChebSymKernel.hpp" +#include "Kernels/Chebyshev/FChebCell.hpp" +#include "Kernels/Chebyshev/FChebSymKernel.hpp" #endif /** DLpoly particle is used in the gadget program diff --git a/Tests/Kernels/testChebAlgorithm.cpp b/Tests/Kernels/testChebAlgorithm.cpp index 2f237c658438b64966d492fa5702d0ed745f71b5..bfdf0a7442a05bdc6a6f6bbd29f99cbcb6ab92e1 100644 --- a/Tests/Kernels/testChebAlgorithm.cpp +++ b/Tests/Kernels/testChebAlgorithm.cpp @@ -31,7 +31,7 @@ #include "Core/FFmmAlgorithmThread.hpp" #endif -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * This program runs the FMM Algorithm with the Chebyshev kernel and compares the results with a direct computation. diff --git a/Tests/Kernels/testFlopsChebAlgorithm.cpp b/Tests/Kernels/testFlopsChebAlgorithm.cpp index a113cd35afe732f56bec6533ce1bdd22efc5097c..c625190cb80762b6c10abae4081c62b6dea5cfdd 100644 --- a/Tests/Kernels/testFlopsChebAlgorithm.cpp +++ b/Tests/Kernels/testFlopsChebAlgorithm.cpp @@ -14,24 +14,24 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Files/FFmaScanfLoader.hpp" +#include "Files/FFmaScanfLoader.hpp" -#include "../../Src/Kernels/Chebyshev/FChebCell.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/Chebyshev/FChebCell.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Chebyshev/FChebFlopsSymKernel.hpp" +#include "Kernels/Chebyshev/FChebFlopsSymKernel.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" int main(int argc, char* argv[]) diff --git a/Tests/Kernels/testOmniPath.cpp b/Tests/Kernels/testOmniPath.cpp index 46117e0bf3dbf302c8d6a4906a59bd1c46ce89f5..13bc419d14a6cd2874b38165bea1be420142a1c8 100644 --- a/Tests/Kernels/testOmniPath.cpp +++ b/Tests/Kernels/testOmniPath.cpp @@ -12,33 +12,33 @@ #include <cstdlib> -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifCell.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Uniform/FUnifKernel.hpp" +#include "Kernels/Uniform/FUnifCell.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/Uniform/FUnifKernel.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FMemUtils.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FMpiTreeBuilder.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Utils/FLeafBalance.hpp" +#include "Utils/FLeafBalance.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * This program runs the FMM Algorithm Distributed with the uniform kernel diff --git a/Tests/Kernels/testP2PEfficency.cpp b/Tests/Kernels/testP2PEfficency.cpp index 0c58a1d2989db17ccedc4cc26896b3a79829f820..b161155dc62f7ec07bc523a13b79fe2973acf9c8 100644 --- a/Tests/Kernels/testP2PEfficency.cpp +++ b/Tests/Kernels/testP2PEfficency.cpp @@ -12,17 +12,17 @@ #include <string> #include "ScalFmmConfig.h" -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FParameterNames.hpp" -#include "../../Src/Files/FIOVtk.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FParameterNames.hpp" +#include "Files/FIOVtk.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Containers/FOctree.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/Kernels/P2P/FP2PR.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Kernels/P2P/FP2PR.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" // Simply create particles and try the kernels int main(int argc, char ** argv){ diff --git a/Tests/Kernels/testRotationAlgorithm.cpp b/Tests/Kernels/testRotationAlgorithm.cpp index 9b1901037856c5c6d6fb332f0939aa220597b4c8..1545dcac1ad3c1e4a2c6cade4dd5624b75c952a8 100644 --- a/Tests/Kernels/testRotationAlgorithm.cpp +++ b/Tests/Kernels/testRotationAlgorithm.cpp @@ -4,29 +4,29 @@ #include <iostream> -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Containers/FOctree.hpp" +#include "Containers/FOctree.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmTask.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmTask.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" int main(int argc, char** argv){ FHelpDescribeAndExit(argc, argv, diff --git a/Tests/Kernels/testRotationAlgorithmProc.cpp b/Tests/Kernels/testRotationAlgorithmProc.cpp index ee84575fe608451e28a9ab6bed54d586374d7385..0cd341a8e716f164e52d07132be5bb62ffeb67c1 100644 --- a/Tests/Kernels/testRotationAlgorithmProc.cpp +++ b/Tests/Kernels/testRotationAlgorithmProc.cpp @@ -10,28 +10,28 @@ #include <cstdlib> -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FMemUtils.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FMpiTreeBuilder.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Utils/FLeafBalance.hpp" +#include "Utils/FLeafBalance.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * This program runs the FMM Algorithm Distributed with the Rotation kernel diff --git a/Tests/Kernels/testRotationPeriodicBench.cpp b/Tests/Kernels/testRotationPeriodicBench.cpp index 31d87d54e3c7f761c2e4e20d380800da7a6d8a3e..c0a2fc0053c55a75cbfe44682bc59882f6e19139 100644 --- a/Tests/Kernels/testRotationPeriodicBench.cpp +++ b/Tests/Kernels/testRotationPeriodicBench.cpp @@ -1,23 +1,23 @@ // See LICENCE file at project root -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationOriginalKernel.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationOriginalKernel.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Core/FFmmAlgorithmPeriodic.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Core/FFmmAlgorithmPeriodic.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FParameterNames.hpp" diff --git a/Tests/Kernels/testSmoothUnifAlgorithm.cpp b/Tests/Kernels/testSmoothUnifAlgorithm.cpp index 49903e3eeb785e8b7a0b6c219d460ea6c0f40152..c8aca3f9c468ce676b59baefcb7b76b3eee41612 100644 --- a/Tests/Kernels/testSmoothUnifAlgorithm.cpp +++ b/Tests/Kernels/testSmoothUnifAlgorithm.cpp @@ -35,7 +35,7 @@ #include "Core/FFmmAlgorithm.hpp" #include "Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * This program runs the FMM Algorithm with the Uniform kernel diff --git a/Tests/Kernels/testSphericalAlgorithm.cpp b/Tests/Kernels/testSphericalAlgorithm.cpp index 7574b59e7e6149e01127a03864e7f8bbb7c3c81c..e22b4a683e8ba6aedc3df1623c1dc18d4966d6ad 100644 --- a/Tests/Kernels/testSphericalAlgorithm.cpp +++ b/Tests/Kernels/testSphericalAlgorithm.cpp @@ -5,24 +5,24 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmTask.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmTask.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Files/FFmaGenericLoader.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program show an example of use of * the fmm basic algo diff --git a/Tests/Kernels/testSphericalBench.cpp b/Tests/Kernels/testSphericalBench.cpp index 1694df4fe90e784049c657b9165d4320e09e114d..d18bda637d1b00f12bd46120bea24469d8192fcf 100644 --- a/Tests/Kernels/testSphericalBench.cpp +++ b/Tests/Kernels/testSphericalBench.cpp @@ -5,24 +5,24 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program show an example of use of * the fmm basic algo diff --git a/Tests/Kernels/testSphericalBlasAlgorithm.cpp b/Tests/Kernels/testSphericalBlasAlgorithm.cpp index 1763e4fce9f31bb9bef0318253c63e6219553bdc..26320ea2c10dc80b5599a5facc7579098a200d30 100644 --- a/Tests/Kernels/testSphericalBlasAlgorithm.cpp +++ b/Tests/Kernels/testSphericalBlasAlgorithm.cpp @@ -9,26 +9,26 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmTask.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmTask.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalBlasKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalBlasKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Files/FFmaScanfLoader.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Files/FFmaScanfLoader.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program show an example of use of * the fmm blas algo diff --git a/Tests/Kernels/testSphericalBlockBlasAlgorithm.cpp b/Tests/Kernels/testSphericalBlockBlasAlgorithm.cpp index 4e3e48ef9d1b8ac9640863156cbfbcfba09b0e89..d81e985bf836a4918c70578b1290317436abfc8c 100644 --- a/Tests/Kernels/testSphericalBlockBlasAlgorithm.cpp +++ b/Tests/Kernels/testSphericalBlockBlasAlgorithm.cpp @@ -9,27 +9,27 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmTask.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmTask.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FBasicCell.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FBasicCell.hpp" -#include "../../Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalBlockBlasKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Files/FFmaScanfLoader.hpp" +#include "Files/FFmaScanfLoader.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program show an example of use of * the fmm basic algo diff --git a/Tests/Kernels/testSphericalGalaxyCsv.cpp b/Tests/Kernels/testSphericalGalaxyCsv.cpp index fab488c97a0f51d7486babdc245dc15b4925fe4e..918f8d820ec586ab2561f000becc3c93342d4c61 100644 --- a/Tests/Kernels/testSphericalGalaxyCsv.cpp +++ b/Tests/Kernels/testSphericalGalaxyCsv.cpp @@ -5,29 +5,29 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Files/FTreeCsvSaver.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" -#include "../../Src/Arranger/FOctreeArranger.hpp" +#include "Files/FTreeCsvSaver.hpp" +#include "Files/FFmaGenericLoader.hpp" +#include "Arranger/FOctreeArranger.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FParticleType.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FParticleType.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" -#include "../../Src/Arranger/FAbstractMover.hpp" +#include "Utils/FParameterNames.hpp" +#include "Arranger/FAbstractMover.hpp" template <class FReal> diff --git a/Tests/Kernels/testSphericalProcAlgorithm.cpp b/Tests/Kernels/testSphericalProcAlgorithm.cpp index e1c0a13a38a1245b4d117da38f11389f7da5888b..233d513b7c097319620b8191ee3759f7168f202c 100644 --- a/Tests/Kernels/testSphericalProcAlgorithm.cpp +++ b/Tests/Kernels/testSphericalProcAlgorithm.cpp @@ -4,32 +4,32 @@ // @FUSE_MPI // ================ -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FMpi.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FMath.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FMpi.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FMath.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" +#include "Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Files/FMpiFmaGenericLoader.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" +#include "Files/FMpiFmaGenericLoader.hpp" +#include "Files/FMpiTreeBuilder.hpp" -#include "../../Src/Utils/FLeafBalance.hpp" +#include "Utils/FLeafBalance.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <iostream> diff --git a/Tests/Kernels/testSphericalRotationAlgorithm.cpp b/Tests/Kernels/testSphericalRotationAlgorithm.cpp index ae352961d5d139e036fe590687eee7c97799118f..4bd785965ae6f84bcef7d9865f5e08871b127aa1 100644 --- a/Tests/Kernels/testSphericalRotationAlgorithm.cpp +++ b/Tests/Kernels/testSphericalRotationAlgorithm.cpp @@ -5,26 +5,26 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmTask.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmTask.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/Spherical/FSphericalRotationKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalRotationKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Files/FFmaScanfLoader.hpp" +#include "Files/FFmaScanfLoader.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program show an example of use of * the fmm basic algo diff --git a/Tests/Kernels/testTaylor.cpp b/Tests/Kernels/testTaylor.cpp index 4c86f53f9ec257aa47b7c995f3e180ef26d1e8dc..65648de462ca93fc95fef4c60ec25cd17df315f0 100644 --- a/Tests/Kernels/testTaylor.cpp +++ b/Tests/Kernels/testTaylor.cpp @@ -10,25 +10,25 @@ #include <cstdlib> #include <stdexcept> #include "ScalFmmConfig.h" -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FFmaScanfLoader.hpp" +#include "Files/FFmaScanfLoader.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Utils/FParameterNames.hpp" // // taylor kernel -#include "../../Src/Kernels/Taylor/FTaylorCell.hpp" -#include "../../Src/Kernels/Taylor/FTaylorKernel.hpp" +#include "Kernels/Taylor/FTaylorCell.hpp" +#include "Kernels/Taylor/FTaylorKernel.hpp" // -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" /** * This program compares two different kernels, eg., the Chebyshev kernel with diff --git a/Tests/Kernels/testTaylorKernel.cpp b/Tests/Kernels/testTaylorKernel.cpp index 97a813f44e8a77066dd402be796dede99cddecde..e2aa15253d03b8379f5e01a913078ce918991b0c 100644 --- a/Tests/Kernels/testTaylorKernel.cpp +++ b/Tests/Kernels/testTaylorKernel.cpp @@ -2,24 +2,24 @@ #include <string> -#include "../../Src/Utils/FPoint.hpp" -#include "../../Src/Utils/FLog.hpp" -#include "../../Src/Utils/FMath.hpp" +#include "Utils/FPoint.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FMath.hpp" -#include "../../Src/Kernels/Taylor/FTaylorCell.hpp" -#include "../../Src/Kernels/Taylor/FTaylorKernel.hpp" +#include "Kernels/Taylor/FTaylorCell.hpp" +#include "Kernels/Taylor/FTaylorKernel.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" -#include "../../Src/Containers/FOctree.hpp" +#include "Containers/FVector.hpp" +#include "Containers/FOctree.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmTask.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmTask.hpp" +#include "Utils/FParameterNames.hpp" int main(int argc,char** argv){ FHelpDescribeAndExit(argc, argv, diff --git a/Tests/Kernels/testTaylorSimple.cpp b/Tests/Kernels/testTaylorSimple.cpp index ecdee29e04e53ebf327841f1d3a717d321e7dc2d..51715e37571ac22ddcbc7de0c6c06acae5ca13ce 100644 --- a/Tests/Kernels/testTaylorSimple.cpp +++ b/Tests/Kernels/testTaylorSimple.cpp @@ -2,24 +2,24 @@ #include <iostream> #include <string> -#include "../../Src/Utils/FPoint.hpp" -#include "../../Src/Utils/FLog.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FPoint.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FTypedLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FTypedLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" -#include "../../Src/Containers/FOctree.hpp" +#include "Containers/FVector.hpp" +#include "Containers/FOctree.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/Kernels/Taylor/FTaylorCell.hpp" -#include "../../Src/Kernels/Taylor/FTaylorKernel.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Kernels/Taylor/FTaylorCell.hpp" +#include "Kernels/Taylor/FTaylorKernel.hpp" +#include "Utils/FParameterNames.hpp" int main(int argc,char* argv[]){ diff --git a/Tests/Kernels/testTsmAlgorithm.cpp b/Tests/Kernels/testTsmAlgorithm.cpp index 72302387ecbfa93c59060e98877f947ba0ab9bd2..c334c299722329e575a52f8b983851d0d2ae05af 100644 --- a/Tests/Kernels/testTsmAlgorithm.cpp +++ b/Tests/Kernels/testTsmAlgorithm.cpp @@ -5,27 +5,27 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Components/FTypedLeaf.hpp" +#include "Components/FTypedLeaf.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithmTsm.hpp" +#include "Core/FFmmAlgorithmTsm.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Files/FFmaTsmLoader.hpp" +#include "Files/FFmaTsmLoader.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program show an example of use of * the fmm basic algo diff --git a/Tests/Kernels/testTuneSphericalBlockBlas.cpp b/Tests/Kernels/testTuneSphericalBlockBlas.cpp index 93ce74ec6906b5c3dd5c85fe3213c051ea75243a..f34e59988c82288b07e75f75e9887ede36db1857 100644 --- a/Tests/Kernels/testTuneSphericalBlockBlas.cpp +++ b/Tests/Kernels/testTuneSphericalBlockBlas.cpp @@ -9,26 +9,26 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FBasicCell.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FBasicCell.hpp" -#include "../../Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalBlockBlasKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Files/FFmaScanfLoader.hpp" +#include "Files/FFmaScanfLoader.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program find the best block blas size */ diff --git a/Tests/Utils/testBlas.cpp b/Tests/Utils/testBlas.cpp index b8b4ff1946e307f1af6c2f1eede0911478bf1449..c8df2c86982f6e8837401355de47a35051ac0d51 100644 --- a/Tests/Utils/testBlas.cpp +++ b/Tests/Utils/testBlas.cpp @@ -21,9 +21,9 @@ #include <iostream> #include <stdlib.h> -#include "../../Src/Utils/FBlas.hpp" +#include "Utils/FBlas.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" template <class FReal> diff --git a/Tests/Utils/testChebBinaryM2L.cpp b/Tests/Utils/testChebBinaryM2L.cpp index 8273587c7155d68466d24cfe60ab34258bcc3b21..f3fea987865003d98bb7b2ef6ec7084f501898db 100644 --- a/Tests/Utils/testChebBinaryM2L.cpp +++ b/Tests/Utils/testChebBinaryM2L.cpp @@ -25,14 +25,14 @@ #include <stdlib.h> #include <time.h> -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Chebyshev/FChebM2LHandler.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FMath.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/Chebyshev/FChebM2LHandler.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** diff --git a/Tests/Utils/testChebBinarySymM2L.cpp b/Tests/Utils/testChebBinarySymM2L.cpp index 1a2a1673135737dacf3345579580a826ace8c967..4161e9cdec773e74cbfd370f7c1f5edd5d143a65 100644 --- a/Tests/Utils/testChebBinarySymM2L.cpp +++ b/Tests/Utils/testChebBinarySymM2L.cpp @@ -26,14 +26,14 @@ #include <time.h> #include <stdexcept> -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Chebyshev/FChebSymM2LHandler.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FMath.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/Chebyshev/FChebSymM2LHandler.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** diff --git a/Tests/Utils/testChebInterpolator.cpp b/Tests/Utils/testChebInterpolator.cpp index 756e7a7e687ffafe1b2a34f271520c6e620fcaf6..c9b15e7e5cfcf14957fa28338d94f4304241c259 100644 --- a/Tests/Utils/testChebInterpolator.cpp +++ b/Tests/Utils/testChebInterpolator.cpp @@ -26,22 +26,22 @@ #include <stdlib.h> #include <time.h> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FMath.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FMath.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Kernels/Chebyshev/FChebInterpolator.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/Chebyshev/FChebInterpolator.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** diff --git a/Tests/Utils/testChebInterpolatorExtendedBBox.cpp b/Tests/Utils/testChebInterpolatorExtendedBBox.cpp index f2231deffda49c935498d7b0e9c8e80e0f735c9c..ca6ba1f5aa48aaeb6cfe98496a4a625a3638af21 100644 --- a/Tests/Utils/testChebInterpolatorExtendedBBox.cpp +++ b/Tests/Utils/testChebInterpolatorExtendedBBox.cpp @@ -40,7 +40,7 @@ #include "Kernels/P2P/FP2PParticleContainer.hpp" #include "Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** diff --git a/Tests/Utils/testChebM2Lprecomputation.cpp b/Tests/Utils/testChebM2Lprecomputation.cpp index 9932f96e9bef016b95dce5dca0806b71cc87617a..b0075f4b41a088bf02e0506ae2307491a33296e5 100644 --- a/Tests/Utils/testChebM2Lprecomputation.cpp +++ b/Tests/Utils/testChebM2Lprecomputation.cpp @@ -10,17 +10,17 @@ #include <stdexcept> -#include "../../Src/Utils/FGlobal.hpp" -#include "../../Src/Utils/FPoint.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FPoint.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Kernels/Chebyshev/FChebTensor.hpp" -#include "../../Src/Kernels/Chebyshev/FChebM2LHandler.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/Chebyshev/FChebTensor.hpp" +#include "Kernels/Chebyshev/FChebM2LHandler.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" diff --git a/Tests/Utils/testChebOctree.cpp b/Tests/Utils/testChebOctree.cpp index 2540f207a96162e7625f0c7bb3b07f398e86cc94..ca9bdb465888610969342941f701a67e9ab10182 100644 --- a/Tests/Utils/testChebOctree.cpp +++ b/Tests/Utils/testChebOctree.cpp @@ -24,21 +24,21 @@ #include <cstdlib> #include <time.h> -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Kernels/Chebyshev/FChebCell.hpp" +#include "Kernels/Chebyshev/FChebCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * In this file we show how to use octree diff --git a/Tests/Utils/testChebSymmetries.cpp b/Tests/Utils/testChebSymmetries.cpp index ee8fb59f0db89c5b456d67b3156842c6648bcb02..cc257bb1bfb6edb78ffd42861733f4a71990f4a4 100644 --- a/Tests/Utils/testChebSymmetries.cpp +++ b/Tests/Utils/testChebSymmetries.cpp @@ -26,14 +26,14 @@ -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FBlas.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FBlas.hpp" -#include "../../Src/Kernels/Chebyshev/FChebTensor.hpp" -#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp" -#include "../../Src/Kernels/Interpolation/FInterpSymmetries.hpp" +#include "Kernels/Chebyshev/FChebTensor.hpp" +#include "Kernels/Interpolation/FInterpMatrixKernel.hpp" +#include "Kernels/Interpolation/FInterpSymmetries.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" template < class FReal, int ORDER> void permuteMatrix(const unsigned int perm[ORDER*ORDER*ORDER], FReal *const Matrix) diff --git a/Tests/Utils/testChebTensorProduct.cpp b/Tests/Utils/testChebTensorProduct.cpp index af6b7d9f4c14faec4a09667cdb535461f87ccacc..1cfca5d3e6b7277cf0f7765885705645e51aa721 100644 --- a/Tests/Utils/testChebTensorProduct.cpp +++ b/Tests/Utils/testChebTensorProduct.cpp @@ -10,20 +10,20 @@ #include <stdlib.h> #include <time.h> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FBlas.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FBlas.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Kernels/Chebyshev/FChebTensor.hpp" -#include "../../Src/Kernels/Chebyshev/FChebInterpolator.hpp" +#include "Kernels/Chebyshev/FChebTensor.hpp" +#include "Kernels/Chebyshev/FChebInterpolator.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" template <class FReal> void applyM2M(FReal *const S, FReal *const w, const unsigned int n, FReal *const W, const unsigned int N) diff --git a/Tests/Utils/testDebug.cpp b/Tests/Utils/testDebug.cpp index e11a193eb314c1ff58a63cd6830ebd1406af0ae4..4a849ded3138402239e46b6e1d3633c2ce667bd7 100644 --- a/Tests/Utils/testDebug.cpp +++ b/Tests/Utils/testDebug.cpp @@ -1,7 +1,7 @@ // See LICENCE file at project root -#include "../../Src/Utils/FLog.hpp" +#include "Utils/FLog.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * In this file we show how to use the debug module. diff --git a/Tests/Utils/testFFT.cpp b/Tests/Utils/testFFT.cpp index 81517cee8ff1d366150bf455758bd595086e1b9a..e1da2c5e536f492e564f56c62dcde780f186ea15 100644 --- a/Tests/Utils/testFFT.cpp +++ b/Tests/Utils/testFFT.cpp @@ -21,12 +21,6 @@ #include <iostream> #include <stdlib.h> -#ifdef SCALFMM_USE_ESSL_AS_FFTW -#include <fftw3_essl.h> -#else -#include <fftw3.h> -#endif - #include "Utils/FGlobal.hpp" #include "Utils/FMath.hpp" #include "Utils/stdComplex.hpp" diff --git a/Tests/Utils/testFmmAlgorithm.cpp b/Tests/Utils/testFmmAlgorithm.cpp index 6f1698a3191d8cb03c15eef5b3f6fc1d03def4c0..3f3df9520bbb84c0a1c70719a42de822453db442 100644 --- a/Tests/Utils/testFmmAlgorithm.cpp +++ b/Tests/Utils/testFmmAlgorithm.cpp @@ -4,29 +4,29 @@ #include <cstdio> -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Core/FFmmAlgorithmTask.hpp" +#include "Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmTask.hpp" -#include "../../Src/Components/FBasicKernels.hpp" +#include "Components/FBasicKernels.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program show an example of use of the fmm basic algo * it also check that each particles is impacted each other particles diff --git a/Tests/Utils/testFmmAlgorithmProcRandom.cpp b/Tests/Utils/testFmmAlgorithmProcRandom.cpp index e9c280abb20f75b97ff40942ea095c0464aa8bef..adc1e9930f2f5a2e024e1fd11555987d726c4439 100644 --- a/Tests/Utils/testFmmAlgorithmProcRandom.cpp +++ b/Tests/Utils/testFmmAlgorithmProcRandom.cpp @@ -4,34 +4,34 @@ // @FUSE_MPI // ================ -#include "../../Src/Utils/FMpi.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FMpi.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FGlobal.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" +#include "Components/FTestParticleContainer.hpp" -//#include "../../Src/Core/FFmmAlgorithmProcMpi.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" +//#include "Core/FFmmAlgorithmProcMpi.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" +#include "Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FMpiTreeBuilder.hpp" -#include "../../Src/Components/FBasicKernels.hpp" +#include "Components/FBasicKernels.hpp" -#include "../../Src/Utils/FLeafBalance.hpp" +#include "Utils/FLeafBalance.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <iostream> #include <cstdio> diff --git a/Tests/Utils/testFmmAlgorithmProcRotation.cpp b/Tests/Utils/testFmmAlgorithmProcRotation.cpp index 7ef07c5532a852ca35459371d3ccfa723fa9951a..ab3be61b00b2e497525a4a932ef391ca500e48d3 100644 --- a/Tests/Utils/testFmmAlgorithmProcRotation.cpp +++ b/Tests/Utils/testFmmAlgorithmProcRotation.cpp @@ -4,32 +4,32 @@ // @FUSE_MPI // ================ -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FMpi.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FMath.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FMpi.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FMath.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" +#include "Core/FFmmAlgorithmThreadProc.hpp" +#include "Core/FFmmAlgorithmThread.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Files/FMpiFmaGenericLoader.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" +#include "Files/FMpiFmaGenericLoader.hpp" +#include "Files/FMpiTreeBuilder.hpp" #include "Utils/FLeafBalance.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <iostream> diff --git a/Tests/Utils/testLapack.cpp b/Tests/Utils/testLapack.cpp index a38e438e99c062d471aae209aa78204531f79daf..67a6e86afc6b0800d26dd8c44bdb56310d331e0d 100644 --- a/Tests/Utils/testLapack.cpp +++ b/Tests/Utils/testLapack.cpp @@ -21,10 +21,10 @@ #include <iostream> #include <stdlib.h> -#include "../../Src/Utils/FBlas.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FBlas.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * Test functionality of C - interfaced LAPACK functions diff --git a/Tests/Utils/testLoader.cpp b/Tests/Utils/testLoader.cpp index 6189c872d74826580d21113cd1949a7103909ad2..c7a85fe9e76c2484f1f145948e1b6ac8f30c01b1 100644 --- a/Tests/Utils/testLoader.cpp +++ b/Tests/Utils/testLoader.cpp @@ -6,24 +6,24 @@ #include <cstdlib> #include <time.h> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FBasicCell.hpp" +#include "Components/FBasicCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Files/FBasicLoader.hpp" +#include "Files/FBasicLoader.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" +#include "Components/FBasicParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * In this file we show an example of FBasicLoader use diff --git a/Tests/Utils/testLoaderFMATsm.cpp b/Tests/Utils/testLoaderFMATsm.cpp index c26db74a07a39180ed21443b59178bf97b8c4704..eb5515fa3ec8ef425cc2186aa64cfe3c049e9410 100644 --- a/Tests/Utils/testLoaderFMATsm.cpp +++ b/Tests/Utils/testLoaderFMATsm.cpp @@ -6,25 +6,25 @@ #include <cstdlib> #include <time.h> -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FBasicCell.hpp" +#include "Components/FBasicCell.hpp" -#include "../../Src/Components/FTypedLeaf.hpp" +#include "Components/FTypedLeaf.hpp" -#include "../../Src/Files/FFmaTsmLoader.hpp" +#include "Files/FFmaTsmLoader.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" +#include "Components/FBasicParticleContainer.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" int main(int argc, char ** argv ){ diff --git a/Tests/Utils/testLoaderFMATsmCreate.cpp b/Tests/Utils/testLoaderFMATsmCreate.cpp index 96f090acee606051a5bcadf99e6f578bbc829370..51208348b4688677ad01abde3c083bfa15299f1d 100644 --- a/Tests/Utils/testLoaderFMATsmCreate.cpp +++ b/Tests/Utils/testLoaderFMATsmCreate.cpp @@ -7,10 +7,10 @@ #include <cstdlib> #include <time.h> -#include "../../Src/Utils/FGlobal.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" // This file can generate basic particles files in the FMA format diff --git a/Tests/Utils/testMemStats.cpp b/Tests/Utils/testMemStats.cpp index d283a7b701c393c65ee3058e9861c984e1fd94af..96a2fcf8bcf40aaf4880cec5f2badbeff9bc19af 100644 --- a/Tests/Utils/testMemStats.cpp +++ b/Tests/Utils/testMemStats.cpp @@ -5,28 +5,28 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" -#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Kernels/Spherical/FSphericalKernel.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" +#include "Core/FFmmAlgorithm.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** This program show an example of use of * the fmm basic algo diff --git a/Tests/Utils/testMpiCsvSaver.cpp b/Tests/Utils/testMpiCsvSaver.cpp index 046736c7a84e681d2edabcae9e00facbc9a5ad10..b88dbc78b6b28d82435f73bf17be741b99a52397 100644 --- a/Tests/Utils/testMpiCsvSaver.cpp +++ b/Tests/Utils/testMpiCsvSaver.cpp @@ -9,21 +9,21 @@ #include <cstdlib> #include <string> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FMpi.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FMpi.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Files/FTreeMpiCsvSaver.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FTreeMpiCsvSaver.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FBasicCell.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FBasicCell.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" template <class FReal> diff --git a/Tests/Utils/testOctree.cpp b/Tests/Utils/testOctree.cpp index 6b2582ab10542e9debc10bc1ca6b895789a9a252..bec8abefa87618fabe96e0d72a4fb2d8ab9978b1 100644 --- a/Tests/Utils/testOctree.cpp +++ b/Tests/Utils/testOctree.cpp @@ -6,22 +6,22 @@ #include <cstdlib> #include <time.h> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" -#include "../../Src/Components/FBasicCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FBasicParticleContainer.hpp" +#include "Components/FBasicCell.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * In this file we show how to use octree diff --git a/Tests/Utils/testOctreeFuncteur.cpp b/Tests/Utils/testOctreeFuncteur.cpp index 2a601a24db9891b051a8ab80ef1465830d35933d..b285d1676c7447c5f355ff426dc8dc9594f52afd 100644 --- a/Tests/Utils/testOctreeFuncteur.cpp +++ b/Tests/Utils/testOctreeFuncteur.cpp @@ -6,22 +6,22 @@ #include <cstdlib> #include <time.h> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" -#include "../../Src/Components/FBasicCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FBasicParticleContainer.hpp" +#include "Components/FBasicCell.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * In this file we show how to use octree's functeur diff --git a/Tests/Utils/testOctreeIter.cpp b/Tests/Utils/testOctreeIter.cpp index 968a5719b3448c2c60ce2460c22efeccae54deb4..db6f071d1661d5d7c4b75feb02c146a2d25dd0ec 100644 --- a/Tests/Utils/testOctreeIter.cpp +++ b/Tests/Utils/testOctreeIter.cpp @@ -7,21 +7,21 @@ #include <time.h> -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" -#include "../../Src/Components/FBasicCell.hpp" +#include "Components/FBasicParticleContainer.hpp" +#include "Components/FBasicCell.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * In this file we show how to use octree with iteration diff --git a/Tests/Utils/testOctreeParallelFuncteur.cpp b/Tests/Utils/testOctreeParallelFuncteur.cpp index 6f69c9ba852129fb61ae60b2d728f1678c22def2..a826e2a8f01453d0ccb4da4653fcdc708c4eeac5 100644 --- a/Tests/Utils/testOctreeParallelFuncteur.cpp +++ b/Tests/Utils/testOctreeParallelFuncteur.cpp @@ -6,24 +6,24 @@ #include <cstdlib> #include <time.h> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FParForEachOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FParForEachOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Utils/FAssert.hpp" -#include "../../Src/Utils/FPoint.hpp" -#include "../../Src/Utils/FParObject.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" +#include "Utils/FParObject.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" -#include "../../Src/Components/FBasicCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FBasicParticleContainer.hpp" +#include "Components/FBasicCell.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Files/FRandomLoader.hpp" +#include "Files/FRandomLoader.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" /** * In this file we show how to use octree's functeur diff --git a/Tests/Utils/testOctreeRearrangePeriodic.cpp b/Tests/Utils/testOctreeRearrangePeriodic.cpp index 518ea226d1585aedb379c8123c8487cc92e36c6e..9c53fcdec58354ea9a4707f9ea1b394236d234c0 100644 --- a/Tests/Utils/testOctreeRearrangePeriodic.cpp +++ b/Tests/Utils/testOctreeRearrangePeriodic.cpp @@ -5,25 +5,25 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" -#include "../../Src/Components/FBasicCell.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Components/FBasicParticleContainer.hpp" +#include "Components/FBasicCell.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" -#include "../../Src/Arranger/FOctreeArranger.hpp" -#include "../../Src/Arranger/FArrangerPeriodic.hpp" -#include "../../Src/Arranger/FBasicParticleContainerIndexedMover.hpp" +#include "Arranger/FOctreeArranger.hpp" +#include "Arranger/FArrangerPeriodic.hpp" +#include "Arranger/FBasicParticleContainerIndexedMover.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" diff --git a/Tests/Utils/testOctreeRearrangeProc.cpp b/Tests/Utils/testOctreeRearrangeProc.cpp index d08f4ead170b26bcd204fb1162d4090210e4bd0c..12388fd89430265a65af42d703603437839c6df0 100644 --- a/Tests/Utils/testOctreeRearrangeProc.cpp +++ b/Tests/Utils/testOctreeRearrangeProc.cpp @@ -9,26 +9,26 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" +#include "Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FTestCell.hpp" +#include "Components/FTestCell.hpp" -#include "../../Src/Arranger/FOctreeArrangerProc.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" +#include "Arranger/FOctreeArrangerProc.hpp" +#include "Files/FMpiTreeBuilder.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" +#include "Components/FBasicParticleContainer.hpp" -#include "../../Src/Utils/FLeafBalance.hpp" +#include "Utils/FLeafBalance.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" template <class FReal> struct TestParticle{ diff --git a/Tests/Utils/testOctreeRearrangeTsm.cpp b/Tests/Utils/testOctreeRearrangeTsm.cpp index fe94392a5d5c96984498f4b7b148951135b7fc75..8edd4735e946989cb58ebe609b1f2f2bb97aa1f5 100644 --- a/Tests/Utils/testOctreeRearrangeTsm.cpp +++ b/Tests/Utils/testOctreeRearrangeTsm.cpp @@ -5,25 +5,25 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FParameters.hpp" -#include "../../Src/Utils/FTic.hpp" +#include "Utils/FParameters.hpp" +#include "Utils/FTic.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FTypedLeaf.hpp" -#include "../../Src/Utils/FPoint.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FTypedLeaf.hpp" +#include "Utils/FPoint.hpp" -#include "../../Src/Components/FBasicParticleContainer.hpp" -#include "../../Src/Components/FBasicCell.hpp" -#include "../../Src/Arranger/FBasicParticleContainerIndexedMover.hpp" -#include "../../Src/Arranger/FParticleTypedIndexedMover.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp" +#include "Components/FBasicParticleContainer.hpp" +#include "Components/FBasicCell.hpp" +#include "Arranger/FBasicParticleContainerIndexedMover.hpp" +#include "Arranger/FParticleTypedIndexedMover.hpp" +#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" -#include "../../Src/Arranger/FOctreeArranger.hpp" +#include "Arranger/FOctreeArranger.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" // Simply create particles and try the kernels diff --git a/Tests/Utils/testParameterNames.cpp b/Tests/Utils/testParameterNames.cpp index 95ae5273f17a745174592ba64544dc129992602d..c34d4ef49611a761e2030436fbf7b31707748e54 100644 --- a/Tests/Utils/testParameterNames.cpp +++ b/Tests/Utils/testParameterNames.cpp @@ -1,4 +1,4 @@ -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <iostream> diff --git a/Tests/Utils/testStatsTree.cpp b/Tests/Utils/testStatsTree.cpp index 52e0f78fb64502babc94efc71a733f252e8c26cf..98153cc6e2bc439433ff4fc4210023e42a32ab41 100644 --- a/Tests/Utils/testStatsTree.cpp +++ b/Tests/Utils/testStatsTree.cpp @@ -5,27 +5,27 @@ #include <cstdio> #include <cstdlib> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include <Utils/FTic.hpp> +#include <Utils/FParameters.hpp> -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include <Containers/FOctree.hpp> +#include <Containers/FVector.hpp> -#include "../../Src/Components/FBasicCell.hpp" +#include <Components/FBasicCell.hpp> -#include "../../Src/Core/FFmmAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithmThread.hpp" +#include <Core/FFmmAlgorithm.hpp> +#include <Core/FFmmAlgorithmThread.hpp> -#include "../../Src/Components/FSimpleLeaf.hpp" +#include <Components/FSimpleLeaf.hpp> -#include "../../Src/Utils/FMath.hpp" +#include <Utils/FMath.hpp> -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include <Files/FFmaGenericLoader.hpp> -#include "../../Src/Components/FBasicParticleContainer.hpp" +#include <Components/FBasicParticleContainer.hpp> -#include "../../Src/Utils/FParameterNames.hpp" +#include <Utils/FParameterNames.hpp> /** This program show an example of use of diff --git a/Tests/Utils/testTemplateExample.cpp b/Tests/Utils/testTemplateExample.cpp index 90b93d9e8caa1c940b0a7f750ada95cbbaf6f91d..7e03cad9b32d0faa495816f06bdd95ca35cf3e4b 100644 --- a/Tests/Utils/testTemplateExample.cpp +++ b/Tests/Utils/testTemplateExample.cpp @@ -5,9 +5,9 @@ * **/ -#include "../../Src/Utils/FTemplate.hpp" +#include "Utils/FTemplate.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" #include <iostream> diff --git a/Tests/Utils/testTic.cpp b/Tests/Utils/testTic.cpp index 5fe557660a9eb1dda7e4bfe5ed889fb7e75a3d15..7d689f92c449c9cbc73d772561e605d0e066febd 100644 --- a/Tests/Utils/testTic.cpp +++ b/Tests/Utils/testTic.cpp @@ -1,7 +1,7 @@ // See LICENCE file at project root #include <iostream> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameterNames.hpp" #include <cstdlib> #include <unistd.h> diff --git a/Tests/Utils/testTreeBuilderThread.cpp b/Tests/Utils/testTreeBuilderThread.cpp index f59bafa6018735e64ac3c4d2fc65566f088e7480..cd6d9f7303ad6d0df8cfad901540c1105ff6613b 100644 --- a/Tests/Utils/testTreeBuilderThread.cpp +++ b/Tests/Utils/testTreeBuilderThread.cpp @@ -4,25 +4,25 @@ #include <iostream> -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Containers/FOctree.hpp" +#include "Containers/FOctree.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Kernels/Rotation/FRotationKernel.hpp" -#include "../../Src/Kernels/Rotation/FRotationCell.hpp" +#include "Kernels/Rotation/FRotationKernel.hpp" +#include "Kernels/Rotation/FRotationCell.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Files/FTreeBuilder.hpp" +#include "Files/FTreeBuilder.hpp" int main(int argc, char** argv){ FHelpDescribeAndExit(argc, argv, diff --git a/Tests/Utils/testTreeIO.cpp b/Tests/Utils/testTreeIO.cpp index c99059daa09dd380e7a7da3f386aeff85d15674b..3df5c1cf91f5d7882fc237ff0da28248b7ab7364 100644 --- a/Tests/Utils/testTreeIO.cpp +++ b/Tests/Utils/testTreeIO.cpp @@ -6,21 +6,21 @@ #include <cstdlib> #include <string> -#include "../../Src/Utils/FTic.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Containers/FOctree.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" -#include "../../Src/Files/FTreeIO.hpp" +#include "Files/FFmaGenericLoader.hpp" +#include "Files/FTreeIO.hpp" -#include "../../Src/Kernels/Spherical/FSphericalCell.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Kernels/Spherical/FSphericalCell.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" void usage() { std::cout << "Exemple to store and load a tree" << std::endl; diff --git a/UTests/CMakeLists.txt b/UTests/CMakeLists.txt index 7a09ec67d3df757672de6c55ff76ec7bcc8408b2..5bf88ea1cacef8a6c198378095a05cab4438922a 100644 --- a/UTests/CMakeLists.txt +++ b/UTests/CMakeLists.txt @@ -1,104 +1,80 @@ -# check if compiling into source directories -STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource) -if(insource) - MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../") -endif(insource) - -project(UTESTS_SCALFMM CXX) - -FIND_PROGRAM( TESTS_GCOV_PATH gcov ) -FIND_PROGRAM( TESTS_LCOV_PATH lcov ) -FIND_PROGRAM( TESTS_GENHTML_PATH genhtml ) -FIND_PROGRAM( TESTS_GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/Modules) - -MESSAGE(STATUS "GG ${TESTS_GCOV_PATH} ${TESTS_LCOV_PATH} ${TESTS_GENHTML_PATH} ${TESTS_GCOVR_PATH}" ) -IF( TESTS_GCOV_PATH AND TESTS_LCOV_PATH AND TESTS_GCOVR_PATH ) - #Script for launching lcov and generating an html report - ADD_CUSTOM_TARGET(coverage) - ADD_CUSTOM_COMMAND(TARGET coverage - COMMAND mkdir -p CoverageReport - COMMAND ${TESTS_LCOV_PATH} --directory . --zerocounters - COMMAND make test - # Capturing lcov counters and generating report - COMMAND ${TESTS_LCOV_PATH} --directory . --capture --output-file ${_outputname}.info - COMMAND ${TESTS_LCOV_PATH} --remove ${_outputname}.info 'tests/*' '/usr/*' --output-file ${_outputname}.info.cleaned - COMMAND ${TESTS_GENHTML_PATH} -o ${_outputname} ${_outputname}.info.cleaned - COMMAND ${CMAKE_COMMAND} -E remove ${_outputname}.info ${_outputname}.info.cleaned - COMMAND echo "Open ${CMAKE_BINARY_DIR}/CoverageReport/index.html to view the report on the coverage of the code." - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - ) -MESSAGE(STATUS " GCOV ${COVERAGE_COMMAND}") -MESSAGE(STATUS "CMAKE_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID}") - IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - SET(TESTS_GCOV_CXX_FLAGS "-g -fprofile-arcs -ftest-coverage") - SET(TESTS_GCOV_LINKER_FLAGS "-g -fprofile-arcs -ftest-coverage -lgcov") - ENDIF() - # - ELSE() - SET(GCOV_CXX_FLAGS "") - SET(GCOV_LINKER_FLAGS "") - MESSAGE(STATUS "Could not find gcov in your path - No Coverage option for Tests") -ENDIF() - - - -set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE}) - - -ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS} ${TESTS_GCOV_CXX_FLAGS}) +# Utesting # Find all code files -file( - GLOB_RECURSE - source_tests_files - ./*.cpp -) - -# Adding the project sources dir as an include dir -INCLUDE_DIRECTORIES( - ${SCALFMM_BINARY_DIR}/Src - ${SCALFMM_SOURCE_DIR}/Src - ${SCALFMM_SOURCE_DIR}/Contribs - ${SCALFMM_INCLUDES} -) +set(source_tests_files + utestAlgorithmBuilder.cpp + utestAlignedMemory.cpp + utestBoolArray.cpp + utestBuffer.cpp + utestChebyshev.cpp + utestChebyshevDirectPeriodic.cpp + utestChebyshevDirectTsm.cpp + utestChebyshevMpi.cpp + utestChebyshevThread.cpp + utestFBasicParticleContainer.cpp + utestFBasicParticle.cpp + utestFmmAlgorithmProc.cpp + utestInterpolationMultiRhs.cpp + utestLagrange.cpp + utestLagrangeMpi.cpp + utestLagrangeThread.cpp + utestLetTree.cpp + utestListBlockAllocator.cpp + utestList.cpp + utestMorton.cpp + utestMpiBitonic.cpp + utestMPILoader.cpp + utestMpiQs.cpp + utestMpiTreeBuilder.cpp + utestNeighborIndexes.cpp + utestOctree.cpp + utestP2PExclusion.cpp + utestQuicksort.cpp + utestRotation.cpp + utestRotationDirectSeveralTime.cpp + utestRotationDirectTsm.cpp + utestRotationThread.cpp + utestSphericalBlasAlgorithm.cpp + utestSpherical.cpp + utestSphericalDirect.cpp + utestSphericalWithPrevious.cpp + utestStaticMpiTreeBuilder.cpp + utestTest.cpp + utestVector.cpp + Utils/variadic_vector/utest_variadic_vector.cpp + ) # Add execs - 1 cpp = 1 exec -foreach(exec ${source_tests_files}) - get_filename_component( - execname ${exec} - NAME_WE - ) - - set(compile_exec "TRUE") - - foreach(fuse_key ${FUSE_LIST}) - file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}") - if(lines_fuse) - if( NOT SCALFMM_USE_${fuse_key} ) - MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" ) - set(compile_exec "FALSE") - endif() - endif() - endforeach() - - # Dependency are OK - if( compile_exec ) - add_executable( - ${execname} - ${exec} - ) - - target_link_libraries( - ${execname} - ${scalfmm_lib} - ${SCALFMM_LIBRARIES} - ${TESTS_GCOV_LINKER_FLAGS} - ) - - if(lines_mpi) - add_test(${execname} mpirun -np 4 ${EXECUTABLE_OUTPUT_PATH}/${execname}) - else() - add_test(${execname} ${CMAKE_CURRENT_BINARY_DIR}/${execname}) - endif() +foreach(exec ${source_tests_files}) + set(compile_exec TRUE) + get_filename_component( execname ${exec} NAME_WE ) + + foreach(fuse_key ${FUSE_DEP_AVAILABLE}) + file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}") + if(lines_fuse AND NOT ${fuse_key} IN_LIST FUSE_LIST) + message( STATUS "This needs ${fuse_key} = ${exec}" ) + set(compile_exec FALSE) + endif() + endforeach() + + # Dependency are OK + if( compile_exec ) + add_executable( ${execname} ${exec}) + list(APPEND SCALFMM_TESTS_TARGETS ${execname}) + set_target_properties(${execname} PROPERTIES ENABLE_EXPORTS TRUE + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE} + ) + + target_link_libraries( ${execname} PRIVATE ${CMAKE_PROJECT_NAME} ) + list(APPEND SCALFMM_UTESTS_TARGETS ${execname}) + + if(lines_mpi) + add_test(NAME ${execname} COMMAND $<IF:${MPIEXEC_EXECUTABLE}, ${MPIEXEC_EXECUTABLE} -np 4 ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${execname}>) + else() + add_test(NAME ${execname} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${execname}) endif() + endif() endforeach(exec) + +add_custom_target(scalfmm_utests ALL DEPENDS ${SCALFMM_UTESTS_TARGETS}) + diff --git a/UTests/utestAlignedMemory.cpp b/UTests/utestAlignedMemory.cpp index 7732629d68708b655e7e5291e4f612ea9c6fad24..f94982ebe61cb0a83d51f17f49fa129d7359effa 100644 --- a/UTests/utestAlignedMemory.cpp +++ b/UTests/utestAlignedMemory.cpp @@ -1,8 +1,8 @@ // See LICENCE file at project root #include "FUTester.hpp" -#include "../Src/Utils/FAlignedMemory.hpp" -#include "../Src/Utils/FTemplate.hpp" +#include "Utils/FAlignedMemory.hpp" +#include "Utils/FTemplate.hpp" /** * This file is a unit test for the alignement class diff --git a/UTests/utestLetTree.cpp b/UTests/utestLetTree.cpp index d50b8e4214cdae831accc8908b48e77966fae893..adccdd85b103eb3dc2f46a3bc584094b7f8b20ee 100644 --- a/UTests/utestLetTree.cpp +++ b/UTests/utestLetTree.cpp @@ -5,7 +5,7 @@ // @FUSE_MPI // ================ -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" // include algo for linear tree #include "inria/algorithm/distributed/mpi.hpp" #include "inria/linear_tree/balance_tree.hpp" diff --git a/Utils/CMakeLists.txt b/Utils/CMakeLists.txt index f673e712db90c7a3814182576bb61000c34586b8..144e839ac449fdb1a127e1dd2dc87ba8c591041d 100644 --- a/Utils/CMakeLists.txt +++ b/Utils/CMakeLists.txt @@ -1,63 +1,29 @@ -# check if compiling into source directories -STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource) -if(insource) - MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../") -endif(insource) - -project(UTILS_SCALFMM CXX) -set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE}) -ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS}) # Find all code files -file( - GLOB_RECURSE - source_tests_files - ./*.cpp - ) - - -# Adding the project sources dir as an include dir -INCLUDE_DIRECTORIES( - ${SCALFMM_BINARY_DIR}/Src - ${SCALFMM_SOURCE_DIR}/Src - ${SCALFMM_SOURCE_DIR}/Contribs - ${SCALFMM_INCLUDES} -) - +set(source_tests_files) # Add execs - 1 cpp = 1 exec foreach(exec ${source_tests_files}) - get_filename_component( - execname ${exec} - NAME_WE - ) - - set(compile_exec "TRUE") + set(compile_exec TRUE) + get_filename_component( execname ${exec} NAME_WE ) - foreach(fuse_key ${FUSE_LIST}) - file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}") - if(lines_fuse) - if( NOT SCALFMM_USE_${fuse_key} ) - MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" ) - set(compile_exec "FALSE") - endif() - endif() - endforeach() + foreach(fuse_key ${FUSE_DEP_AVAILABLE}) + file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}") + if(lines_fuse AND NOT ${fuse_key} IN_LIST FUSE_LIST) + message( STATUS "This needs ${fuse_key} = ${exec}" ) + set(compile_exec FALSE) + endif() + endforeach() + + # Dependency are OK + if( compile_exec ) + add_executable( ${execname} ${exec}) + list(APPEND SCALFMM_UTILS_TARGETS ${execname}) + set_target_properties(${execname} PROPERTIES ENABLE_EXPORTS TRUE + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE} + ) + target_link_libraries( ${execname} ${CMAKE_PROJECT_NAME}) + endif() +endforeach(exec) - # Dependency are OK - if( compile_exec ) - add_executable( - ${execname} - ${exec} - ) - SET_TARGET_PROPERTIES(${execname} PROPERTIES ENABLE_EXPORTS TRUE) - target_link_libraries( - ${execname} - ${scalfmm_lib} - ${SCALFMM_LIBRARIES} - ) - - # Install bin - install( TARGETS ${execname} DESTINATION bin ) - endif() +add_custom_target(scalfmm_utils ALL DEPENDS ${SCALFMM_UTILS_TARGETS}) -endforeach(exec) diff --git a/Src/Adaptive/FAdaptChebKernel.hpp b/include/Adaptive/FAdaptChebKernel.hpp similarity index 100% rename from Src/Adaptive/FAdaptChebKernel.hpp rename to include/Adaptive/FAdaptChebKernel.hpp diff --git a/Src/Adaptive/FAdaptUnifKernel.hpp b/include/Adaptive/FAdaptUnifKernel.hpp similarity index 100% rename from Src/Adaptive/FAdaptUnifKernel.hpp rename to include/Adaptive/FAdaptUnifKernel.hpp diff --git a/Src/Adaptive/FAdaptiveSequential.hpp b/include/Adaptive/FAdaptiveSequential.hpp similarity index 100% rename from Src/Adaptive/FAdaptiveSequential.hpp rename to include/Adaptive/FAdaptiveSequential.hpp diff --git a/Src/Adaptive/FAdaptiveStarPU.hpp b/include/Adaptive/FAdaptiveStarPU.hpp similarity index 100% rename from Src/Adaptive/FAdaptiveStarPU.hpp rename to include/Adaptive/FAdaptiveStarPU.hpp diff --git a/Src/Adaptive/FAdaptiveTask.hpp b/include/Adaptive/FAdaptiveTask.hpp similarity index 100% rename from Src/Adaptive/FAdaptiveTask.hpp rename to include/Adaptive/FAdaptiveTask.hpp diff --git a/Src/Adaptive/FBox.hpp b/include/Adaptive/FBox.hpp similarity index 100% rename from Src/Adaptive/FBox.hpp rename to include/Adaptive/FBox.hpp diff --git a/Src/Adaptive/FDistributedAdaptiveTreeBuilder.hpp b/include/Adaptive/FDistributedAdaptiveTreeBuilder.hpp similarity index 100% rename from Src/Adaptive/FDistributedAdaptiveTreeBuilder.hpp rename to include/Adaptive/FDistributedAdaptiveTreeBuilder.hpp diff --git a/Src/Adaptive/FInOrderNodeIterator.hpp b/include/Adaptive/FInOrderNodeIterator.hpp similarity index 100% rename from Src/Adaptive/FInOrderNodeIterator.hpp rename to include/Adaptive/FInOrderNodeIterator.hpp diff --git a/Src/Adaptive/FNode.hpp b/include/Adaptive/FNode.hpp similarity index 100% rename from Src/Adaptive/FNode.hpp rename to include/Adaptive/FNode.hpp diff --git a/Src/Adaptive/FNodeIterator.hpp b/include/Adaptive/FNodeIterator.hpp similarity index 100% rename from Src/Adaptive/FNodeIterator.hpp rename to include/Adaptive/FNodeIterator.hpp diff --git a/Src/Adaptive/FNodeIteratorBox.hpp b/include/Adaptive/FNodeIteratorBox.hpp similarity index 100% rename from Src/Adaptive/FNodeIteratorBox.hpp rename to include/Adaptive/FNodeIteratorBox.hpp diff --git a/Src/Adaptive/FPrePostOrderNodeIterator.hpp b/include/Adaptive/FPrePostOrderNodeIterator.hpp similarity index 100% rename from Src/Adaptive/FPrePostOrderNodeIterator.hpp rename to include/Adaptive/FPrePostOrderNodeIterator.hpp diff --git a/Src/Adaptive/FTimer.hpp b/include/Adaptive/FTimer.hpp similarity index 100% rename from Src/Adaptive/FTimer.hpp rename to include/Adaptive/FTimer.hpp diff --git a/Src/Adaptive/FTree.hpp b/include/Adaptive/FTree.hpp similarity index 100% rename from Src/Adaptive/FTree.hpp rename to include/Adaptive/FTree.hpp diff --git a/Src/Adaptive/FUnifFlopsKernel.hpp b/include/Adaptive/FUnifFlopsKernel.hpp similarity index 100% rename from Src/Adaptive/FUnifFlopsKernel.hpp rename to include/Adaptive/FUnifFlopsKernel.hpp diff --git a/Src/Adaptive/FVariadicParticleContainer.hpp b/include/Adaptive/FVariadicParticleContainer.hpp similarity index 100% rename from Src/Adaptive/FVariadicParticleContainer.hpp rename to include/Adaptive/FVariadicParticleContainer.hpp diff --git a/Src/Adaptive/FZCurve.hpp b/include/Adaptive/FZCurve.hpp similarity index 100% rename from Src/Adaptive/FZCurve.hpp rename to include/Adaptive/FZCurve.hpp diff --git a/Src/Adaptive/UninitNodeMemoryManager.hpp b/include/Adaptive/UninitNodeMemoryManager.hpp similarity index 100% rename from Src/Adaptive/UninitNodeMemoryManager.hpp rename to include/Adaptive/UninitNodeMemoryManager.hpp diff --git a/Src/Adaptive/UninitialisedMemoryProvider.hpp b/include/Adaptive/UninitialisedMemoryProvider.hpp similarity index 100% rename from Src/Adaptive/UninitialisedMemoryProvider.hpp rename to include/Adaptive/UninitialisedMemoryProvider.hpp diff --git a/Src/Adaptive/kernel_utilities.hpp b/include/Adaptive/kernel_utilities.hpp similarity index 100% rename from Src/Adaptive/kernel_utilities.hpp rename to include/Adaptive/kernel_utilities.hpp diff --git a/Src/Adaptive/starpu_node_data_handles.hpp b/include/Adaptive/starpu_node_data_handles.hpp similarity index 100% rename from Src/Adaptive/starpu_node_data_handles.hpp rename to include/Adaptive/starpu_node_data_handles.hpp diff --git a/Src/Arranger/FAbstractMover.hpp b/include/Arranger/FAbstractMover.hpp similarity index 100% rename from Src/Arranger/FAbstractMover.hpp rename to include/Arranger/FAbstractMover.hpp diff --git a/Src/Arranger/FArrangerPeriodic.hpp b/include/Arranger/FArrangerPeriodic.hpp similarity index 100% rename from Src/Arranger/FArrangerPeriodic.hpp rename to include/Arranger/FArrangerPeriodic.hpp diff --git a/Src/Arranger/FBasicParticleContainerIndexedMover.hpp b/include/Arranger/FBasicParticleContainerIndexedMover.hpp similarity index 100% rename from Src/Arranger/FBasicParticleContainerIndexedMover.hpp rename to include/Arranger/FBasicParticleContainerIndexedMover.hpp diff --git a/Src/Arranger/FBasicParticleContainerMover.hpp b/include/Arranger/FBasicParticleContainerMover.hpp similarity index 100% rename from Src/Arranger/FBasicParticleContainerMover.hpp rename to include/Arranger/FBasicParticleContainerMover.hpp diff --git a/Src/Arranger/FOctreeArranger.hpp b/include/Arranger/FOctreeArranger.hpp similarity index 100% rename from Src/Arranger/FOctreeArranger.hpp rename to include/Arranger/FOctreeArranger.hpp diff --git a/Src/Arranger/FOctreeArrangerProc.hpp b/include/Arranger/FOctreeArrangerProc.hpp similarity index 100% rename from Src/Arranger/FOctreeArrangerProc.hpp rename to include/Arranger/FOctreeArrangerProc.hpp diff --git a/Src/Arranger/FParticleTypedIndexedMover.hpp b/include/Arranger/FParticleTypedIndexedMover.hpp similarity index 100% rename from Src/Arranger/FParticleTypedIndexedMover.hpp rename to include/Arranger/FParticleTypedIndexedMover.hpp diff --git a/Src/CMakeLists.txt b/include/CMakeLists.txt similarity index 100% rename from Src/CMakeLists.txt rename to include/CMakeLists.txt diff --git a/Src/Components/FAbstractCell.hpp b/include/Components/FAbstractCell.hpp similarity index 100% rename from Src/Components/FAbstractCell.hpp rename to include/Components/FAbstractCell.hpp diff --git a/Src/Components/FAbstractKernels.hpp b/include/Components/FAbstractKernels.hpp similarity index 100% rename from Src/Components/FAbstractKernels.hpp rename to include/Components/FAbstractKernels.hpp diff --git a/Src/Components/FAbstractLeaf.hpp b/include/Components/FAbstractLeaf.hpp similarity index 100% rename from Src/Components/FAbstractLeaf.hpp rename to include/Components/FAbstractLeaf.hpp diff --git a/Src/Components/FAbstractParticleContainer.hpp b/include/Components/FAbstractParticleContainer.hpp similarity index 100% rename from Src/Components/FAbstractParticleContainer.hpp rename to include/Components/FAbstractParticleContainer.hpp diff --git a/Src/Components/FAbstractSendable.hpp b/include/Components/FAbstractSendable.hpp similarity index 100% rename from Src/Components/FAbstractSendable.hpp rename to include/Components/FAbstractSendable.hpp diff --git a/Src/Components/FAbstractSerializable.hpp b/include/Components/FAbstractSerializable.hpp similarity index 100% rename from Src/Components/FAbstractSerializable.hpp rename to include/Components/FAbstractSerializable.hpp diff --git a/Src/Components/FBasicCell.hpp b/include/Components/FBasicCell.hpp similarity index 100% rename from Src/Components/FBasicCell.hpp rename to include/Components/FBasicCell.hpp diff --git a/Src/Components/FBasicKernels.hpp b/include/Components/FBasicKernels.hpp similarity index 100% rename from Src/Components/FBasicKernels.hpp rename to include/Components/FBasicKernels.hpp diff --git a/Src/Components/FBasicParticle.hpp b/include/Components/FBasicParticle.hpp similarity index 100% rename from Src/Components/FBasicParticle.hpp rename to include/Components/FBasicParticle.hpp diff --git a/Src/Components/FBasicParticleContainer.hpp b/include/Components/FBasicParticleContainer.hpp similarity index 100% rename from Src/Components/FBasicParticleContainer.hpp rename to include/Components/FBasicParticleContainer.hpp diff --git a/Src/Components/FFmaParticleContainer.hpp b/include/Components/FFmaParticleContainer.hpp similarity index 100% rename from Src/Components/FFmaParticleContainer.hpp rename to include/Components/FFmaParticleContainer.hpp diff --git a/Src/Components/FParticleType.hpp b/include/Components/FParticleType.hpp similarity index 100% rename from Src/Components/FParticleType.hpp rename to include/Components/FParticleType.hpp diff --git a/Src/Components/FSimpleIndexedLeaf.hpp b/include/Components/FSimpleIndexedLeaf.hpp similarity index 100% rename from Src/Components/FSimpleIndexedLeaf.hpp rename to include/Components/FSimpleIndexedLeaf.hpp diff --git a/Src/Components/FSimpleLeaf.hpp b/include/Components/FSimpleLeaf.hpp similarity index 100% rename from Src/Components/FSimpleLeaf.hpp rename to include/Components/FSimpleLeaf.hpp diff --git a/Src/Components/FSymbolicData.hpp b/include/Components/FSymbolicData.hpp similarity index 100% rename from Src/Components/FSymbolicData.hpp rename to include/Components/FSymbolicData.hpp diff --git a/Src/Components/FTestCell.hpp b/include/Components/FTestCell.hpp similarity index 100% rename from Src/Components/FTestCell.hpp rename to include/Components/FTestCell.hpp diff --git a/Src/Components/FTestKernels.hpp b/include/Components/FTestKernels.hpp similarity index 100% rename from Src/Components/FTestKernels.hpp rename to include/Components/FTestKernels.hpp diff --git a/Src/Components/FTestParticleContainer.hpp b/include/Components/FTestParticleContainer.hpp similarity index 100% rename from Src/Components/FTestParticleContainer.hpp rename to include/Components/FTestParticleContainer.hpp diff --git a/Src/Components/FTypedLeaf.hpp b/include/Components/FTypedLeaf.hpp similarity index 100% rename from Src/Components/FTypedLeaf.hpp rename to include/Components/FTypedLeaf.hpp diff --git a/Src/Containers/FAbstractBuffer.hpp b/include/Containers/FAbstractBuffer.hpp similarity index 100% rename from Src/Containers/FAbstractBuffer.hpp rename to include/Containers/FAbstractBuffer.hpp diff --git a/Src/Containers/FBlockAllocator.hpp b/include/Containers/FBlockAllocator.hpp similarity index 100% rename from Src/Containers/FBlockAllocator.hpp rename to include/Containers/FBlockAllocator.hpp diff --git a/Src/Containers/FBoolArray.hpp b/include/Containers/FBoolArray.hpp similarity index 100% rename from Src/Containers/FBoolArray.hpp rename to include/Containers/FBoolArray.hpp diff --git a/Src/Containers/FBufferReader.hpp b/include/Containers/FBufferReader.hpp similarity index 100% rename from Src/Containers/FBufferReader.hpp rename to include/Containers/FBufferReader.hpp diff --git a/Src/Containers/FBufferWriter.hpp b/include/Containers/FBufferWriter.hpp similarity index 100% rename from Src/Containers/FBufferWriter.hpp rename to include/Containers/FBufferWriter.hpp diff --git a/Src/Containers/FCoordinateComputer.hpp b/include/Containers/FCoordinateComputer.hpp similarity index 100% rename from Src/Containers/FCoordinateComputer.hpp rename to include/Containers/FCoordinateComputer.hpp diff --git a/Src/Containers/FLightOctree.hpp b/include/Containers/FLightOctree.hpp similarity index 100% rename from Src/Containers/FLightOctree.hpp rename to include/Containers/FLightOctree.hpp diff --git a/Src/Containers/FList.hpp b/include/Containers/FList.hpp similarity index 100% rename from Src/Containers/FList.hpp rename to include/Containers/FList.hpp diff --git a/Src/Containers/FNeighborIndexes.hpp b/include/Containers/FNeighborIndexes.hpp similarity index 100% rename from Src/Containers/FNeighborIndexes.hpp rename to include/Containers/FNeighborIndexes.hpp diff --git a/Src/Containers/FOctree.hpp b/include/Containers/FOctree.hpp similarity index 100% rename from Src/Containers/FOctree.hpp rename to include/Containers/FOctree.hpp diff --git a/Src/Containers/FParForEachOctree.hpp b/include/Containers/FParForEachOctree.hpp similarity index 100% rename from Src/Containers/FParForEachOctree.hpp rename to include/Containers/FParForEachOctree.hpp diff --git a/Src/Containers/FSubOctree.hpp b/include/Containers/FSubOctree.hpp similarity index 100% rename from Src/Containers/FSubOctree.hpp rename to include/Containers/FSubOctree.hpp diff --git a/Src/Containers/FTreeCoordinate.hpp b/include/Containers/FTreeCoordinate.hpp similarity index 100% rename from Src/Containers/FTreeCoordinate.hpp rename to include/Containers/FTreeCoordinate.hpp diff --git a/Src/Containers/FVector.hpp b/include/Containers/FVector.hpp similarity index 100% rename from Src/Containers/FVector.hpp rename to include/Containers/FVector.hpp diff --git a/Src/Core/FAlgorithmBuilder.hpp b/include/Core/FAlgorithmBuilder.hpp similarity index 100% rename from Src/Core/FAlgorithmBuilder.hpp rename to include/Core/FAlgorithmBuilder.hpp diff --git a/Src/Core/FCoreCommon.hpp b/include/Core/FCoreCommon.hpp similarity index 100% rename from Src/Core/FCoreCommon.hpp rename to include/Core/FCoreCommon.hpp diff --git a/Src/Core/FFmmAlgorithm.hpp b/include/Core/FFmmAlgorithm.hpp similarity index 100% rename from Src/Core/FFmmAlgorithm.hpp rename to include/Core/FFmmAlgorithm.hpp diff --git a/Src/Core/FFmmAlgorithmNewTask.hpp b/include/Core/FFmmAlgorithmNewTask.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmNewTask.hpp rename to include/Core/FFmmAlgorithmNewTask.hpp diff --git a/Src/Core/FFmmAlgorithmOmp4.hpp b/include/Core/FFmmAlgorithmOmp4.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmOmp4.hpp rename to include/Core/FFmmAlgorithmOmp4.hpp diff --git a/Src/Core/FFmmAlgorithmPeriodic.hpp b/include/Core/FFmmAlgorithmPeriodic.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmPeriodic.hpp rename to include/Core/FFmmAlgorithmPeriodic.hpp diff --git a/Src/Core/FFmmAlgorithmSectionTask.hpp b/include/Core/FFmmAlgorithmSectionTask.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmSectionTask.hpp rename to include/Core/FFmmAlgorithmSectionTask.hpp diff --git a/Src/Core/FFmmAlgorithmTask.hpp b/include/Core/FFmmAlgorithmTask.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmTask.hpp rename to include/Core/FFmmAlgorithmTask.hpp diff --git a/include/Core/FFmmAlgorithmTestTask.hpp b/include/Core/FFmmAlgorithmTestTask.hpp new file mode 100644 index 0000000000000000000000000000000000000000..098df54ad359721313f79386c67b32f11028608b --- /dev/null +++ b/include/Core/FFmmAlgorithmTestTask.hpp @@ -0,0 +1,578 @@ +// See LICENCE file at project root +#ifndef FFMMALGORITHMTESTTASK_HPP +#define FFMMALGORITHMTESTTASK_HPP + +#include <algorithm> +#include <array> + +#include <omp.h> + +#include "Utils/FAlgorithmTimers.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FEnv.hpp" + +#include "Utils/FGlobal.hpp" +#include "Utils/FLog.hpp" + +#include "Utils/FTic.hpp" + +#include "Containers/FOctree.hpp" +#include "Containers/FVector.hpp" + +#include "Components/FBasicCell.hpp" + +#include "FCoreCommon.hpp" +#include "FP2PExclusion.hpp" + +#include <omp.h> + +/** + * @authorOlivier Coulaud + * @class FFmmAlgorithmNewTask + * @brief + * + * Please read the license + * + * This class is a basic FMM algorithm + * It just iterates on a tree and call the kernels with good arguments. + * + * Of course this class does not deallocate pointer given in arguements. + */ +template<class OctreeClass, class CellClass, class ContainerClass, class KernelClass, class LeafClass, class P2PExclusionClass = FP2PMiddleExclusion> +class FFmmAlgorithmTestTask : public FAbstractAlgorithm, public FAlgorithmTimers { + + using multipole_t = typename CellClass::multipole_t; + using local_expansion_t = typename CellClass::local_expansion_t; + using symbolic_data_t = CellClass; + + OctreeClass* const tree; //< The octree to work on + KernelClass** kernels; //< The kernels + + int MaxThreads; + + const int OctreeHeight; + + const int leafLevelSeparationCriteria; +public: + /** The constructor need the octree and the kernels used for computation + * @param inTree the octree to work on + * @param inKernels the kernels to call + * An assert is launched if one of the arguments is null + */ + FFmmAlgorithmTestTask(OctreeClass* const inTree, const KernelClass* const inKernels, const int inLeafLevelSeperationCriteria = 1) + : tree(inTree) , kernels(nullptr), + OctreeHeight(tree->getHeight()), leafLevelSeparationCriteria(inLeafLevelSeperationCriteria) + { + + FAssertLF(tree, "tree cannot be null"); + FAssertLF(inKernels, "kernels cannot be null"); + FAssertLF(leafLevelSeparationCriteria < 3, "Separation criteria should be < 3"); + + MaxThreads = 1; + #pragma omp parallel + #pragma omp master + MaxThreads = omp_get_num_threads(); + + this->kernels = new KernelClass*[MaxThreads]; + #pragma omp parallel num_threads(MaxThreads) + { + #pragma omp critical (InitFFmmAlgorithmTestTask) + { + this->kernels[omp_get_thread_num()] = new KernelClass(*inKernels); + } + } + + FAbstractAlgorithm::setNbLevelsInTree(tree->getHeight()); + + FLOG(FLog::Controller << "FFmmAlgorithmTestTask (Max Thread " << omp_get_num_threads() << ")\n"); + } + + /** Default destructor */ + virtual ~FFmmAlgorithmTestTask(){ + for(int idxThread = 0 ; idxThread < MaxThreads ; ++idxThread){ + delete this->kernels[idxThread]; + } + delete [] this->kernels; + } + + std::string name() const override { + return "Test Task algorithm"; + } + + std::string description() const override { + int threads = 1; + #pragma omp parallel shared(threads) + { + #pragma omp single nowait + { + threads = omp_get_num_threads(); + } + } + return std::string("threads: ") + std::to_string(threads); + } + +protected: + /** + * To execute the fmm algorithm + * Call this function to run the complete algorithm + */ + void executeCore(const unsigned operationsToProceed) override { + + #pragma omp parallel num_threads(MaxThreads) + { + #pragma omp single nowait + { + if(operationsToProceed & FFmmP2M) bottomPass(); + + if(operationsToProceed & FFmmM2M) upwardPass(); + + if(operationsToProceed & FFmmM2L) transferPass(); + + if(operationsToProceed & FFmmL2L) downardPass(); + } + + #pragma omp single nowait + { + if( operationsToProceed & FFmmP2P ) directPass(); + } + #pragma omp barrier + + #pragma omp single nowait + { + if( operationsToProceed & FFmmL2P ) L2PPass() ; + } + } + } + ///////////////////////////////////////////////////////////////////////////// + // P2M + ///////////////////////////////////////////////////////////////////////////// + + /** P2M */ + void bottomPass(){ + FLOG( FLog::Controller.write("\tStart Bottom Pass\n").write(FLog::Flush) ); + FLOG(FTic counterTime); + + // #pragma omp parallel num_threads(MaxThreads) + { + // #pragma omp single nowait + { + typename OctreeClass::Iterator octreeIterator(tree); + + // Iterate on leafs + octreeIterator.gotoBottomLeft(); + do{ + // We need the current cell that represent the leaf + // and the list of particles + #pragma omp task firstprivate(octreeIterator) untied + { + kernels[omp_get_thread_num()]->P2M( + &(octreeIterator.getCurrentCell()->getMultipoleData()), + octreeIterator.getCurrentCell(), + octreeIterator.getCurrentListSrc()); + } + } while(octreeIterator.moveRight()); + + #pragma omp taskwait + } + } + + FLOG( FLog::Controller << "\tFinished (@Bottom Pass (P2M) = " << counterTime.tacAndElapsed() << " s)\n" ); + } + + ///////////////////////////////////////////////////////////////////////////// + // Upward + ///////////////////////////////////////////////////////////////////////////// + + /** M2M */ + void upwardPass(){ + FLOG( FLog::Controller.write("\tStart Upward Pass\n").write(FLog::Flush); ); + FLOG(FTic counterTime); + + // #pragma omp parallel num_threads(MaxThreads) + { + // #pragma omp single nowait + { + // Start from leal level - 1 + typename OctreeClass::Iterator octreeIterator(tree); + octreeIterator.gotoBottomLeft(); + octreeIterator.moveUp(); + + for(int idxLevel = OctreeHeight - 2 ; idxLevel > FAbstractAlgorithm::lowerWorkingLevel-1 ; --idxLevel){ + octreeIterator.moveUp(); + } + + typename OctreeClass::Iterator avoidGotoLeftIterator(octreeIterator); + + // for each levels + for(int idxLevel = FMath::Min(OctreeHeight - 2, FAbstractAlgorithm::lowerWorkingLevel - 1) ; idxLevel >= FAbstractAlgorithm::upperWorkingLevel ; --idxLevel ){ + FLOG(FTic counterTimeLevel); + // for each cells + do{ + // We need the current cell and its children. + // children is an array (of 8 child) that may be null + #pragma omp task firstprivate(octreeIterator,idxLevel) untied + { + multipole_t* const parent_multipole + = &(octreeIterator.getCurrentCell()->getMultipoleData()); + const symbolic_data_t* const parent_symbolic + = octreeIterator.getCurrentCell(); + + CellClass** children = octreeIterator.getCurrentChildren(); + std::array<const multipole_t*, 8> child_multipoles; + std::transform(children, children+8, child_multipoles.begin(), + [](CellClass* c) { + return (c == nullptr ? nullptr + : &(c->getMultipoleData())); + }); + std::array<const symbolic_data_t*, 8> child_symbolics; + std::transform(children, children+8, child_symbolics.begin(), + [](CellClass* c) {return c;}); + kernels[omp_get_thread_num()]->M2M(parent_multipole, + parent_symbolic, + child_multipoles.data(), + child_symbolics.data()); + } + } while(octreeIterator.moveRight()); + + avoidGotoLeftIterator.moveUp(); + octreeIterator = avoidGotoLeftIterator;// equal octreeIterator.moveUp(); octreeIterator.gotoLeft(); + + #pragma omp taskwait + FLOG( FLog::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << " s\n" ); + } + } + } + + FLOG( FLog::Controller << "\tFinished (@Upward Pass (M2M) = " << counterTime.tacAndElapsed() << " s)\n" ); + } + + ///////////////////////////////////////////////////////////////////////////// + // Transfer + ///////////////////////////////////////////////////////////////////////////// + + /** M2L */ + void transferPass(){ + #ifdef SCALFMM_USE_EZTRACE + + eztrace_start(); + #endif + if(KernelClass::NeedFinishedM2LEvent()){ + this->transferPassWithFinalize() ; + } + else{ + this->transferPassWithoutFinalize() ; + } + #ifdef SCALFMM_USE_EZTRACE + eztrace_stop(); + #endif + } + + void transferPassWithoutFinalize(){ + FLOG( FLog::Controller.write("\tStart Downward Pass (M2L)\n").write(FLog::Flush); ); + FLOG(FTic counterTime); + + // #pragma omp parallel num_threads(MaxThreads) + { + // #pragma omp single nowait + { + typename OctreeClass::Iterator octreeIterator(tree); + // Goto the right level + octreeIterator.moveDown(); + for(int idxLevel = 2 ; idxLevel < FAbstractAlgorithm::upperWorkingLevel ; ++idxLevel){ + octreeIterator.moveDown(); + } + //////////////////////////////////////////////////////////////// + typename OctreeClass::Iterator avoidGotoLeftIterator(octreeIterator); + // + // for each levels + for(int idxLevel = FAbstractAlgorithm::upperWorkingLevel ; idxLevel < FAbstractAlgorithm::lowerWorkingLevel ; ++idxLevel ){ + FLOG(FTic counterTimeLevel); + const int separationCriteria = (idxLevel != FAbstractAlgorithm::lowerWorkingLevel-1 ? 1 : leafLevelSeparationCriteria); + // for each cell we apply the M2L with all cells in the implicit interaction list + do{ + #pragma omp task firstprivate(octreeIterator,idxLevel) untied + { + const CellClass* neighbors[342]; + int neighborPositions[342]; + const int counter = tree->getInteractionNeighbors( + neighbors, neighborPositions, + octreeIterator.getCurrentGlobalCoordinate(), + idxLevel, separationCriteria); + + if(counter) { + local_expansion_t* const target_local_exp + = &(octreeIterator.getCurrentCell()->getLocalExpansionData()); + const symbolic_data_t* const target_symbolic + = octreeIterator.getCurrentCell(); + std::array<const multipole_t*, 342> neighbor_multipoles; + std::transform(neighbors, neighbors+counter, neighbor_multipoles.begin(), + [](const CellClass* c) { + return (c == nullptr ? nullptr + : &(c->getMultipoleData())); + }); + std::array<const symbolic_data_t*, 342> neighbor_symbolics; + std::transform(neighbors, neighbors+counter, neighbor_symbolics.begin(), + [](const CellClass* c) {return c;}); + + kernels[omp_get_thread_num()]->M2L( + target_local_exp, + target_symbolic, + neighbor_multipoles.data(), + neighbor_symbolics.data(), + neighborPositions, + counter); + } + } + + } while(octreeIterator.moveRight()); + //////////////////////////////////////////////////////////////// + // move up and goto left + avoidGotoLeftIterator.moveDown(); + octreeIterator = avoidGotoLeftIterator; + + FLOG( FLog::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << " s\n" ); + } + } + } // end parallel region + // + FLOG( FLog::Controller << "\tFinished (@Downward Pass (M2L) = " << counterTime.tacAndElapsed() << " s)\n" ); + + } + void transferPassWithFinalize(){ + + FLOG( FLog::Controller.write("\tStart Downward Pass (M2L)\n").write(FLog::Flush); ); + FLOG(FTic counterTime); + // #pragma omp parallel num_threads(MaxThreads) + { + // #pragma omp single nowait + { + + typename OctreeClass::Iterator octreeIterator(tree); + octreeIterator.moveDown(); + + for(int idxLevel = 2 ; idxLevel < FAbstractAlgorithm::upperWorkingLevel ; ++idxLevel){ + octreeIterator.moveDown(); + } + + typename OctreeClass::Iterator avoidGotoLeftIterator(octreeIterator); + // FIXME: hack around a clang bug + // it apparently can't manage a firstprivate const member + // such as 'tree', but can manage a local copy... + // getting the height first, or making 'tree' shared both + // workaround it. + OctreeClass * const treeAlias = tree; + + // for each levels + for(int idxLevel = FAbstractAlgorithm::upperWorkingLevel ; idxLevel < FAbstractAlgorithm::lowerWorkingLevel ; ++idxLevel ){ + FLOG(FTic counterTimeLevel); + const int separationCriteria = (idxLevel != FAbstractAlgorithm::lowerWorkingLevel-1 ? 1 : leafLevelSeparationCriteria); + // for each cells + do{ + #pragma omp task default(none) firstprivate(octreeIterator,separationCriteria,idxLevel,treeAlias,kernels) untied + { + const CellClass* neighbors[342]; + int neighborPositions[342]; + const int counter = treeAlias->getInteractionNeighbors( + neighbors, neighborPositions, + octreeIterator.getCurrentGlobalCoordinate(), + idxLevel, separationCriteria); + + + if(counter) { + + local_expansion_t* const target_local_exp + = &(octreeIterator.getCurrentCell()->getLocalExpansionData()); + const symbolic_data_t* const target_symbolic + = octreeIterator.getCurrentCell(); + std::array<const multipole_t*, 342> neighbor_multipoles; + std::transform(neighbors, neighbors+counter, neighbor_multipoles.begin(), + FBasicCell::getMultipoleDataFromCell<const CellClass, const multipole_t>); + + std::array<const symbolic_data_t*, 342> neighbor_symbolics; + std::transform(neighbors, neighbors+counter, neighbor_symbolics.begin(), + FBasicCell::identity<const CellClass>); + + kernels[omp_get_thread_num()]->M2L( + target_local_exp, + target_symbolic, + neighbor_multipoles.data(), + neighbor_symbolics.data(), + neighborPositions, + counter); + } + } + + } while(octreeIterator.moveRight()); + + avoidGotoLeftIterator.moveDown(); + octreeIterator = avoidGotoLeftIterator; + + #pragma omp taskwait + + for( int idxThread = 0 ; idxThread < omp_get_num_threads() ; ++idxThread){ + #pragma omp task + { + kernels[idxThread]->finishedLevelM2L(idxLevel); + } + } + #pragma omp taskwait + FLOG( FLog::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << " s\n" ); + } + } // end single region + } // end // region + FLOG( FLog::Controller << "\tFinished (@Downward Pass (M2L) = " << counterTime.tacAndElapsed() << " s)\n" ); + } + + ///////////////////////////////////////////////////////////////////////////// + // Downward + ///////////////////////////////////////////////////////////////////////////// + + void downardPass(){ // second L2L + FLOG( FLog::Controller.write("\tStart Downward Pass (L2L)\n").write(FLog::Flush); ); + FLOG(FTic counterTime); + + // #pragma omp parallel num_threads(MaxThreads) + { + // #pragma omp single nowait + { + typename OctreeClass::Iterator octreeIterator(tree); + octreeIterator.moveDown(); + + for(int idxLevel = 2 ; idxLevel < FAbstractAlgorithm::upperWorkingLevel ; ++idxLevel){ + octreeIterator.moveDown(); + } + + typename OctreeClass::Iterator avoidGotoLeftIterator(octreeIterator); + + const int heightMinusOne = FAbstractAlgorithm::lowerWorkingLevel - 1; + // for each levels exepted leaf level + for(int idxLevel = FAbstractAlgorithm::upperWorkingLevel ; idxLevel < heightMinusOne ; ++idxLevel ){ + FLOG(FTic counterTimeLevel); + // for each cells + do{ + #pragma omp task firstprivate(octreeIterator,idxLevel) untied + { + local_expansion_t* const parent_local_exp + = &(octreeIterator.getCurrentCell()->getLocalExpansionData()); + const symbolic_data_t* const parent_symbolic + = octreeIterator.getCurrentCell(); + CellClass** children = octreeIterator.getCurrentChildren(); + std::array<local_expansion_t*, 8> child_local_expansions; + std::transform(children, children+8, child_local_expansions.begin(), + [](CellClass* c) {return (c == nullptr ? nullptr + : &(c->getLocalExpansionData())); + }); + std::array<symbolic_data_t*, 8> child_symbolics; + std::transform(children, children+8, child_symbolics.begin(), + [](CellClass* c) {return c;}); + kernels[omp_get_thread_num()]->L2L( + parent_local_exp, + parent_symbolic, + child_local_expansions.data(), + child_symbolics.data() + ); + } + + } while(octreeIterator.moveRight()); + + avoidGotoLeftIterator.moveDown(); + octreeIterator = avoidGotoLeftIterator; + + #pragma omp taskwait + FLOG( FLog::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << " s\n" ); + } + } + } + + FLOG( FLog::Controller << "\tFinished (@Downward Pass (L2L) = " << counterTime.tacAndElapsed() << " s)\n" ); + } + + + ///////////////////////////////////////////////////////////////////////////// + // Direct + ///////////////////////////////////////////////////////////////////////////// + + /** P2P */ + void directPass(){ + FLOG( FLog::Controller.write("\tStart Direct Pass\n").write(FLog::Flush); ); + FLOG(FTic counterTime); + FLOG(FTic computationCounter); + + const int heightMinusOne = OctreeHeight - 1; + + // #pragma omp parallel num_threads(MaxThreads) + { + + // #pragma omp single nowait + { + + const int SizeShape = P2PExclusionClass::SizeShape; + FVector<typename OctreeClass::Iterator> shapes[SizeShape]; + + typename OctreeClass::Iterator octreeIterator(tree); + octreeIterator.gotoBottomLeft(); + + // for each leafs + do{ + const FTreeCoordinate& coord = octreeIterator.getCurrentGlobalCoordinate(); + const int shapePosition = P2PExclusionClass::GetShapeIdx(coord); + + shapes[shapePosition].push(octreeIterator); + + } while(octreeIterator.moveRight()); + + FLOG( computationCounter.tic() ); + + for( int idxShape = 0 ; idxShape < SizeShape ; ++idxShape){ + const FSize nbLeaf = (shapes[idxShape].getSize()); + for(FSize iterLeaf = 0 ; iterLeaf < nbLeaf ; ++iterLeaf ){ + typename OctreeClass::Iterator toWork = shapes[idxShape][iterLeaf]; +#pragma omp task firstprivate(toWork) untied + { + // There is a maximum of 26 neighbors + ContainerClass* neighbors[26]; + int neighborPositions[26]; + const int counter = tree->getLeafsNeighbors(neighbors, neighborPositions, toWork.getCurrentGlobalCoordinate(),heightMinusOne); + kernels[omp_get_thread_num()]->P2P(toWork.getCurrentGlobalCoordinate(), toWork.getCurrentListTargets(), + toWork.getCurrentListSrc(), neighbors, neighborPositions, counter); + } + } + +#pragma omp taskwait + } + + FLOG( computationCounter.tac() ); + } + } + + + FLOG( FLog::Controller << "\tFinished (@Direct Pass (L2P + P2P) = " << counterTime.tacAndElapsed() << " s)\n" ); + FLOG( FLog::Controller << "\t\t Computation L2P + P2P : " << computationCounter.cumulated() << " s\n" ); + } + + void L2PPass(){ + FLOG( FLog::Controller.write("\tStart L2P Pass\n").write(FLog::Flush); ); + FLOG(FTic counterTime); + + typename OctreeClass::Iterator octreeIterator(tree); + octreeIterator.gotoBottomLeft(); + + // for each leafs + do{ + #pragma omp task firstprivate(octreeIterator) untied + { + kernels[omp_get_thread_num()]->L2P( + &(octreeIterator.getCurrentCell()->getLocalExpansionData()), + octreeIterator.getCurrentCell(), + octreeIterator.getCurrentListTargets()); + } + } while(octreeIterator.moveRight()); + + #pragma omp taskwait + + FLOG( FLog::Controller << "\tFinished (@Direct Pass (L2P) = " << counterTime.tacAndElapsed() << " s)\n" ); + } +}; + + +#endif //FFMMALGORITHMTASK_HPP diff --git a/Src/Core/FFmmAlgorithmThread.hpp b/include/Core/FFmmAlgorithmThread.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmThread.hpp rename to include/Core/FFmmAlgorithmThread.hpp diff --git a/Src/Core/FFmmAlgorithmThreadBalance.hpp b/include/Core/FFmmAlgorithmThreadBalance.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmThreadBalance.hpp rename to include/Core/FFmmAlgorithmThreadBalance.hpp diff --git a/Src/Core/FFmmAlgorithmThreadProc.hpp b/include/Core/FFmmAlgorithmThreadProc.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmThreadProc.hpp rename to include/Core/FFmmAlgorithmThreadProc.hpp diff --git a/Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp b/include/Core/FFmmAlgorithmThreadProcPeriodic.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp rename to include/Core/FFmmAlgorithmThreadProcPeriodic.hpp diff --git a/Src/Core/FFmmAlgorithmThreadProcTsm.hpp b/include/Core/FFmmAlgorithmThreadProcTsm.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmThreadProcTsm.hpp rename to include/Core/FFmmAlgorithmThreadProcTsm.hpp diff --git a/Src/Core/FFmmAlgorithmThreadTsm.hpp b/include/Core/FFmmAlgorithmThreadTsm.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmThreadTsm.hpp rename to include/Core/FFmmAlgorithmThreadTsm.hpp diff --git a/Src/Core/FFmmAlgorithmTsm.hpp b/include/Core/FFmmAlgorithmTsm.hpp similarity index 100% rename from Src/Core/FFmmAlgorithmTsm.hpp rename to include/Core/FFmmAlgorithmTsm.hpp diff --git a/Src/Core/FP2PExclusion.hpp b/include/Core/FP2PExclusion.hpp similarity index 100% rename from Src/Core/FP2PExclusion.hpp rename to include/Core/FP2PExclusion.hpp diff --git a/Src/Extensions/FExtendCellType.hpp b/include/Extensions/FExtendCellType.hpp similarity index 100% rename from Src/Extensions/FExtendCellType.hpp rename to include/Extensions/FExtendCellType.hpp diff --git a/Src/Files/FAbstractLoader.hpp b/include/Files/FAbstractLoader.hpp similarity index 100% rename from Src/Files/FAbstractLoader.hpp rename to include/Files/FAbstractLoader.hpp diff --git a/Src/Files/FBasicLoader.hpp b/include/Files/FBasicLoader.hpp similarity index 100% rename from Src/Files/FBasicLoader.hpp rename to include/Files/FBasicLoader.hpp diff --git a/Src/Files/FBlockedMpiInterpolation.hpp b/include/Files/FBlockedMpiInterpolation.hpp similarity index 85% rename from Src/Files/FBlockedMpiInterpolation.hpp rename to include/Files/FBlockedMpiInterpolation.hpp index 41731c094e3afd29e9d40531c73ca4fbc4a18dff..5ee5041bb1e559a73d2072c2033dd204013bf93e 100644 --- a/Src/Files/FBlockedMpiInterpolation.hpp +++ b/include/Files/FBlockedMpiInterpolation.hpp @@ -2,43 +2,43 @@ #define _F_BLOCKED_MPI_INTERPOLATION_HPP_ -#include "../../Src/Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Src/GroupTree/Core/FGroupTree.hpp" +#include "GroupTree/Core/FGroupTree.hpp" -#include "../../Src/Components/FSimpleLeaf.hpp" -#include "../../Src/Components/FSymbolicData.hpp" -#include "../../Src/Containers/FVector.hpp" +#include "Components/FSimpleLeaf.hpp" +#include "Components/FSymbolicData.hpp" +#include "Containers/FVector.hpp" -#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp" +#include "Kernels/P2P/FP2PParticleContainer.hpp" -#include "../../Src/Utils/FMath.hpp" -#include "../../Src/Utils/FMemUtils.hpp" -#include "../../Src/Utils/FParameters.hpp" +#include "Utils/FMath.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FParameters.hpp" -#include "../../Src/Files/FRandomLoader.hpp" -#include "../../Src/Files/FFmaGenericLoader.hpp" +#include "Files/FRandomLoader.hpp" +#include "Files/FFmaGenericLoader.hpp" -#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" -#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp" +#include "GroupTree/Core/FGroupSeqAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskAlgorithm.hpp" +#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp" +#include "GroupTree/Core/FP2PGroupParticleContainer.hpp" -#include "../../Src/Utils/FParameterNames.hpp" +#include "Utils/FParameterNames.hpp" -#include "../../Src/Components/FTestParticleContainer.hpp" -#include "../../Src/Components/FTestCell.hpp" -#include "../../Src/Components/FTestKernels.hpp" +#include "Components/FTestParticleContainer.hpp" +#include "Components/FTestCell.hpp" +#include "Components/FTestKernels.hpp" -#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp" -#include "../../Src/Files/FMpiTreeBuilder.hpp" -#include "../../Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" -#include "../../Src/Core/FFmmAlgorithm.hpp" //For validation +#include "Core/FFmmAlgorithmThreadProc.hpp" +#include "Files/FMpiTreeBuilder.hpp" +#include "GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp" +#include "Core/FFmmAlgorithm.hpp" //For validation -#include "../../Src/Files/FMpiFmaGenericLoader.hpp" -#include "../../Src/Containers/FCoordinateComputer.hpp" +#include "Files/FMpiFmaGenericLoader.hpp" +#include "Containers/FCoordinateComputer.hpp" -#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" #include <memory> using namespace std; diff --git a/Src/Files/FDlpolyLoader.hpp b/include/Files/FDlpolyLoader.hpp similarity index 100% rename from Src/Files/FDlpolyLoader.hpp rename to include/Files/FDlpolyLoader.hpp diff --git a/Src/Files/FExportWriter.hpp b/include/Files/FExportWriter.hpp similarity index 100% rename from Src/Files/FExportWriter.hpp rename to include/Files/FExportWriter.hpp diff --git a/Src/Files/FFmaGenericLoader.hpp b/include/Files/FFmaGenericLoader.hpp similarity index 100% rename from Src/Files/FFmaGenericLoader.hpp rename to include/Files/FFmaGenericLoader.hpp diff --git a/Src/Files/FFmaScanfLoader.hpp b/include/Files/FFmaScanfLoader.hpp similarity index 100% rename from Src/Files/FFmaScanfLoader.hpp rename to include/Files/FFmaScanfLoader.hpp diff --git a/Src/Files/FFmaTsmLoader.hpp b/include/Files/FFmaTsmLoader.hpp similarity index 100% rename from Src/Files/FFmaTsmLoader.hpp rename to include/Files/FFmaTsmLoader.hpp diff --git a/Src/Files/FGenerateDistribution.hpp b/include/Files/FGenerateDistribution.hpp similarity index 100% rename from Src/Files/FGenerateDistribution.hpp rename to include/Files/FGenerateDistribution.hpp diff --git a/Src/Files/FHLoader.hpp b/include/Files/FHLoader.hpp similarity index 100% rename from Src/Files/FHLoader.hpp rename to include/Files/FHLoader.hpp diff --git a/Src/Files/FIOVtk.hpp b/include/Files/FIOVtk.hpp similarity index 99% rename from Src/Files/FIOVtk.hpp rename to include/Files/FIOVtk.hpp index c741569f9826e791e83b6fb8f35e5e0bdde30c4e..4dd277b832f940e5558966cc7c14cfed94b3874b 100644 --- a/Src/Files/FIOVtk.hpp +++ b/include/Files/FIOVtk.hpp @@ -6,7 +6,7 @@ #include <fstream> #include <string> // -#include "../../Src/Utils/FPoint.hpp" +#include "Utils/FPoint.hpp" // template <class FReal> class FIOVtk { diff --git a/Src/Files/FMpiFmaDivider.hpp b/include/Files/FMpiFmaDivider.hpp similarity index 100% rename from Src/Files/FMpiFmaDivider.hpp rename to include/Files/FMpiFmaDivider.hpp diff --git a/Src/Files/FMpiFmaGenericLoader.hpp b/include/Files/FMpiFmaGenericLoader.hpp similarity index 100% rename from Src/Files/FMpiFmaGenericLoader.hpp rename to include/Files/FMpiFmaGenericLoader.hpp diff --git a/Src/Files/FMpiSplitFmaLoader.hpp b/include/Files/FMpiSplitFmaLoader.hpp similarity index 100% rename from Src/Files/FMpiSplitFmaLoader.hpp rename to include/Files/FMpiSplitFmaLoader.hpp diff --git a/Src/Files/FMpiStaticTreeBuilder.hpp b/include/Files/FMpiStaticTreeBuilder.hpp similarity index 100% rename from Src/Files/FMpiStaticTreeBuilder.hpp rename to include/Files/FMpiStaticTreeBuilder.hpp diff --git a/Src/Files/FMpiTreeBuilder.hpp b/include/Files/FMpiTreeBuilder.hpp similarity index 100% rename from Src/Files/FMpiTreeBuilder.hpp rename to include/Files/FMpiTreeBuilder.hpp diff --git a/Src/Files/FPerLeafLoader.hpp b/include/Files/FPerLeafLoader.hpp similarity index 100% rename from Src/Files/FPerLeafLoader.hpp rename to include/Files/FPerLeafLoader.hpp diff --git a/Src/Files/FRandomLoader.hpp b/include/Files/FRandomLoader.hpp similarity index 100% rename from Src/Files/FRandomLoader.hpp rename to include/Files/FRandomLoader.hpp diff --git a/Src/Files/FTreeBuilder.hpp b/include/Files/FTreeBuilder.hpp similarity index 100% rename from Src/Files/FTreeBuilder.hpp rename to include/Files/FTreeBuilder.hpp diff --git a/Src/Files/FTreeCsvSaver.hpp b/include/Files/FTreeCsvSaver.hpp similarity index 100% rename from Src/Files/FTreeCsvSaver.hpp rename to include/Files/FTreeCsvSaver.hpp diff --git a/Src/Files/FTreeIO.hpp b/include/Files/FTreeIO.hpp similarity index 100% rename from Src/Files/FTreeIO.hpp rename to include/Files/FTreeIO.hpp diff --git a/Src/Files/FTreeMpiCsvSaver.hpp b/include/Files/FTreeMpiCsvSaver.hpp similarity index 100% rename from Src/Files/FTreeMpiCsvSaver.hpp rename to include/Files/FTreeMpiCsvSaver.hpp diff --git a/Src/GroupTree/Core/FBuildGroupTree.hpp b/include/GroupTree/Core/FBuildGroupTree.hpp similarity index 100% rename from Src/GroupTree/Core/FBuildGroupTree.hpp rename to include/GroupTree/Core/FBuildGroupTree.hpp diff --git a/Src/GroupTree/Core/FCheckResults.hpp b/include/GroupTree/Core/FCheckResults.hpp similarity index 100% rename from Src/GroupTree/Core/FCheckResults.hpp rename to include/GroupTree/Core/FCheckResults.hpp diff --git a/Src/GroupTree/Core/FDistributedGroupTreeBuilder.hpp b/include/GroupTree/Core/FDistributedGroupTreeBuilder.hpp similarity index 100% rename from Src/GroupTree/Core/FDistributedGroupTreeBuilder.hpp rename to include/GroupTree/Core/FDistributedGroupTreeBuilder.hpp diff --git a/Src/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp b/include/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp similarity index 100% rename from Src/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp rename to include/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp diff --git a/Src/GroupTree/Core/FGroupAttachedLeaf.hpp b/include/GroupTree/Core/FGroupAttachedLeaf.hpp similarity index 99% rename from Src/GroupTree/Core/FGroupAttachedLeaf.hpp rename to include/GroupTree/Core/FGroupAttachedLeaf.hpp index b12f32a0217b70df62e1017e675f692a36861b10..b7816102a427b2552510bf6a4536029107de732e 100644 --- a/Src/GroupTree/Core/FGroupAttachedLeaf.hpp +++ b/include/GroupTree/Core/FGroupAttachedLeaf.hpp @@ -3,8 +3,8 @@ #ifndef FGROUPATTACHEDLEAF_HPP #define FGROUPATTACHEDLEAF_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Utils/FAssert.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FAssert.hpp" /** * This class is "attached" to a buffer. diff --git a/Src/GroupTree/Core/FGroupAttachedLeafDyn.hpp b/include/GroupTree/Core/FGroupAttachedLeafDyn.hpp similarity index 93% rename from Src/GroupTree/Core/FGroupAttachedLeafDyn.hpp rename to include/GroupTree/Core/FGroupAttachedLeafDyn.hpp index 9c43eb53943a044efddc5cd2f11956acdc08d0ae..0d937664278d47930bb9c9826c73c39be84090dc 100644 --- a/Src/GroupTree/Core/FGroupAttachedLeafDyn.hpp +++ b/include/GroupTree/Core/FGroupAttachedLeafDyn.hpp @@ -2,9 +2,9 @@ #ifndef FGROUPATTACHEDLEAFDYN_HPP #define FGROUPATTACHEDLEAFDYN_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Utils/FAssert.hpp" -#include "../../Utils/FPoint.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" template <class FReal> struct UnknownDescriptor{ diff --git a/Src/GroupTree/Core/FGroupLinearTree.hpp b/include/GroupTree/Core/FGroupLinearTree.hpp similarity index 100% rename from Src/GroupTree/Core/FGroupLinearTree.hpp rename to include/GroupTree/Core/FGroupLinearTree.hpp diff --git a/Src/GroupTree/Core/FGroupOfCells.hpp b/include/GroupTree/Core/FGroupOfCells.hpp similarity index 100% rename from Src/GroupTree/Core/FGroupOfCells.hpp rename to include/GroupTree/Core/FGroupOfCells.hpp diff --git a/Src/GroupTree/Core/FGroupOfCellsDyn.hpp b/include/GroupTree/Core/FGroupOfCellsDyn.hpp similarity index 98% rename from Src/GroupTree/Core/FGroupOfCellsDyn.hpp rename to include/GroupTree/Core/FGroupOfCellsDyn.hpp index 61c95e709389207435b0d47931ee487c47bbc184..b1da73dd09fb2850a79a5d0d2b2d971a175e0b67 100644 --- a/Src/GroupTree/Core/FGroupOfCellsDyn.hpp +++ b/include/GroupTree/Core/FGroupOfCellsDyn.hpp @@ -3,10 +3,10 @@ #define FGROUPOFCELLSDYN_HPP -#include "../../Utils/FAssert.hpp" -#include "../../Utils/FAlignedMemory.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FAlignedMemory.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" #include <list> #include <functional> diff --git a/Src/GroupTree/Core/FGroupOfParticles.hpp b/include/GroupTree/Core/FGroupOfParticles.hpp similarity index 97% rename from Src/GroupTree/Core/FGroupOfParticles.hpp rename to include/GroupTree/Core/FGroupOfParticles.hpp index bf1a86d4dadaf08859493cba91942ebc3108775c..a76467f8a696398858240f38672a94602f48b5e4 100644 --- a/Src/GroupTree/Core/FGroupOfParticles.hpp +++ b/include/GroupTree/Core/FGroupOfParticles.hpp @@ -4,11 +4,11 @@ #define FGROUPOFPARTICLES_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Utils/FAssert.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FAlignedMemory.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FAssert.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FAlignedMemory.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" #include <list> #include <functional> @@ -358,6 +358,15 @@ public: blockHeader->attributeLeadingDim); } + template<class F> + void forEachLeaf(F&& function){ + using F_ = std::remove_reference_t<F>; + for(int idxLeafPtr = 0 ; idxLeafPtr < blockHeader->numberOfLeavesInBlock ; ++idxLeafPtr){ + auto leaf = getLeaf<typename F_::leaf_type>(idxLeafPtr); + function(&leaf); + } + } + /** Extract methods */ diff --git a/Src/GroupTree/Core/FGroupOfParticlesDyn.hpp b/include/GroupTree/Core/FGroupOfParticlesDyn.hpp similarity index 98% rename from Src/GroupTree/Core/FGroupOfParticlesDyn.hpp rename to include/GroupTree/Core/FGroupOfParticlesDyn.hpp index 24a3b5b2120c844edb3677a68301ee40b319f42f..36865db5de0f11f9d8ccd9191c7f2f56ff10e188 100644 --- a/Src/GroupTree/Core/FGroupOfParticlesDyn.hpp +++ b/include/GroupTree/Core/FGroupOfParticlesDyn.hpp @@ -3,11 +3,11 @@ #define FGROUPOFPARTICLESDYN_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Utils/FAssert.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FAlignedMemory.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FAssert.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FAlignedMemory.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" #include <list> #include <functional> diff --git a/Src/GroupTree/Core/FGroupSeqAlgorithm.hpp b/include/GroupTree/Core/FGroupSeqAlgorithm.hpp similarity index 99% rename from Src/GroupTree/Core/FGroupSeqAlgorithm.hpp rename to include/GroupTree/Core/FGroupSeqAlgorithm.hpp index 05fbe7f5459d970975aae838e9bf90fea7c64ceb..0f500ac87988e94f123e18ab1893fe19821b63b1 100644 --- a/Src/GroupTree/Core/FGroupSeqAlgorithm.hpp +++ b/include/GroupTree/Core/FGroupSeqAlgorithm.hpp @@ -3,12 +3,12 @@ #ifndef FGROUPSEQALGORITHM_HPP #define FGROUPSEQALGORITHM_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" #include "FOutOfBlockInteraction.hpp" diff --git a/Src/GroupTree/Core/FGroupTaskAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskAlgorithm.hpp similarity index 98% rename from Src/GroupTree/Core/FGroupTaskAlgorithm.hpp rename to include/GroupTree/Core/FGroupTaskAlgorithm.hpp index f922422de705eb55f1c943ac0676aef94c833500..b995dc4b908623c556a60f45523fede64dede1d1 100644 --- a/Src/GroupTree/Core/FGroupTaskAlgorithm.hpp +++ b/include/GroupTree/Core/FGroupTaskAlgorithm.hpp @@ -3,13 +3,13 @@ #ifndef FGROUPTASKALGORITHM_HPP #define FGROUPTASKALGORITHM_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" - +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FAlgorithmTimers.hpp" #include "FOutOfBlockInteraction.hpp" #include <vector> @@ -17,8 +17,8 @@ #include <omp.h> -template <class OctreeClass, class CellContainerClass, class CellClass, class KernelClass, class ParticleGroupClass, class ParticleContainerClass> -class FGroupTaskAlgorithm : public FAbstractAlgorithm { +template <class OctreeClass, class CellContainerClass, class KernelClass, class ParticleGroupClass, class ParticleContainerClass> +class FGroupTaskAlgorithm : public FAbstractAlgorithm, public FAlgorithmTimers { protected: template <class OtherBlockClass> struct BlockInteractions{ @@ -87,7 +87,7 @@ protected: */ void executeCore(const unsigned operationsToProceed) override { FLOG( FLog::Controller << "\tStart FGroupTaskAlgorithm\n" ); - + Timers[P2MTimer].tic(); #pragma omp parallel num_threads(MaxThreads) { #pragma omp single nowait @@ -114,6 +114,7 @@ protected: if( operationsToProceed & FFmmL2P ) mergePass(); } } + Timers[P2MTimer].tac(); } /** diff --git a/Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskDepAlgorithm.hpp similarity index 99% rename from Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp rename to include/GroupTree/Core/FGroupTaskDepAlgorithm.hpp index 7a58761177f95bb459ec33b3b3be77a88484421a..d906b8a85e3c59fb38a7cbba39e1c15a5207a280 100644 --- a/Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp +++ b/include/GroupTree/Core/FGroupTaskDepAlgorithm.hpp @@ -10,6 +10,7 @@ #include "Containers/FTreeCoordinate.hpp" #include "Utils/FLog.hpp" #include "Utils/FTic.hpp" +#include "Utils/FAlgorithmTimers.hpp" #include "Utils/FTaskTimer.hpp" @@ -44,9 +45,9 @@ #endif -template <class OctreeClass, class CellContainerClass, class CellClass, +template <class OctreeClass, class CellContainerClass, class SymboleCellClass, class PoleCellClass, class LocalCellClass, class KernelClass, class ParticleGroupClass, class ParticleContainerClass> -class FGroupTaskDepAlgorithm : public FAbstractAlgorithm { +class FGroupTaskDepAlgorithm : public FAbstractAlgorithm, public FAlgorithmTimers { protected: template <class OtherBlockClass> struct BlockInteractions{ @@ -141,7 +142,7 @@ protected: FLOG( FLog::Controller << "\tStart FGroupTaskDepAlgorithm\n" ); FTIME_TASKS(taskTimeRecorder.start()); - + Timers[P2MTimer].tic(); #pragma omp parallel num_threads(MaxThreads) { #pragma omp single nowait @@ -166,7 +167,7 @@ protected: #pragma omp taskwait } } - + Timers[P2MTimer].tac(); FTIME_TASKS(taskTimeRecorder.end()); FTIME_TASKS(taskTimeRecorder.saveToDisk("/tmp/taskstime-FGroupTaskDepAlgorithm.txt")); } diff --git a/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp similarity index 99% rename from Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp rename to include/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp index acc6772aa47c4b2c1fd6663e306a1eedc7f7741c..8ccb5b5ad930dcbb2e6d0dbf489a86a80a894e21 100644 --- a/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp +++ b/include/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp @@ -2,14 +2,14 @@ #ifndef FGROUPTASKSTARPUALGORITHM_HPP #define FGROUPTASKSTARPUALGORITHM_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" -#include "../../Utils/FAssert.hpp" -#include "../../Utils/FEnv.hpp" +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FEnv.hpp" #include "FOutOfBlockInteraction.hpp" @@ -24,25 +24,25 @@ #ifdef STARPU_SIMGRID_MLR_MODELS #include "starpu_codelet_parameters.h" #endif -#include "../StarPUUtils/FStarPUUtils.hpp" -#include "../StarPUUtils/FStarPUFmmPriorities.hpp" -#include "../StarPUUtils/FStarPUFmmPrioritiesV2.hpp" -#include "../StarPUUtils/FStarPUReduxCpu.hpp" +#include "GroupTree/StarPUUtils/FStarPUUtils.hpp" +#include "GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp" +#include "GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp" +#include "GroupTree/StarPUUtils/FStarPUReduxCpu.hpp" #ifdef STARPU_USE_CPU -#include "../StarPUUtils/FStarPUCpuWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" #endif #ifdef SCALFMM_ENABLE_CUDA_KERNEL -#include "../StarPUUtils/FStarPUCudaWrapper.hpp" -#include "../Cuda/FCudaEmptyKernel.hpp" -#include "../Cuda/FCudaGroupAttachedLeaf.hpp" -#include "../Cuda/FCudaGroupOfParticles.hpp" -#include "../Cuda/FCudaGroupOfCells.hpp" -#include "../Cuda/FCudaEmptyCellSymb.hpp" +#include "GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp" +#include "GroupTree/Cuda/FCudaEmptyKernel.hpp" +#include "GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp" +#include "GroupTree/Cuda/FCudaGroupOfParticles.hpp" +#include "GroupTree/Cuda/FCudaGroupOfCells.hpp" +#include "GroupTree/Cuda/FCudaEmptyCellSymb.hpp" #endif #ifdef SCALFMM_ENABLE_OPENCL_KERNEL -#include "../StarPUUtils/FStarPUOpenClWrapper.hpp" -#include "../OpenCl/FOpenCLDeviceWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp" +#include "GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp" #endif #include "Containers/FBoolArray.hpp" diff --git a/Src/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp similarity index 100% rename from Src/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp rename to include/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp diff --git a/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp similarity index 99% rename from Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp rename to include/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp index e137735cb2471e30176074e525007697edcdd652..344224b8d33beb8101eb497141d172373c386a72 100644 --- a/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp +++ b/include/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp @@ -2,18 +2,18 @@ #ifndef FGROUPTASKSTARPUMPIALGORITHM_HPP #define FGROUPTASKSTARPUMPIALGORITHM_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" -#include "../../Utils/FAssert.hpp" -#include "../../Utils/FAlignedMemory.hpp" -#include "../../Utils/FAssert.hpp" -#include "../../Utils/FEnv.hpp" - -#include "../../Utils/FMpi.hpp" +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FAlignedMemory.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FEnv.hpp" + +#include "Utils/FMpi.hpp" #include "FOutOfBlockInteraction.hpp" @@ -25,26 +25,26 @@ #include <set> #include <starpu.h> #include <starpu_mpi.h> -#include "../StarPUUtils/FStarPUUtils.hpp" -#include "../StarPUUtils/FStarPUFmmPriorities.hpp" -#include "../StarPUUtils/FStarPUFmmPrioritiesV2.hpp" -#include "../StarPUUtils/FStarPUReduxCpu.hpp" +#include "GroupTree/StarPUUtils/FStarPUUtils.hpp" +#include "GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp" +#include "GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp" +#include "GroupTree/StarPUUtils/FStarPUReduxCpu.hpp" #ifdef STARPU_USE_CPU -#include "../StarPUUtils/FStarPUCpuWrapper.hpp" +#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp" #endif #ifdef SCALFMM_ENABLE_CUDA_KERNEL -#include "../StarPUUtils/FStarPUCudaWrapper.hpp" -#include "../Cuda/FCudaEmptyKernel.hpp" -#include "../Cuda/FCudaGroupAttachedLeaf.hpp" -#include "../Cuda/FCudaGroupOfParticles.hpp" -#include "../Cuda/FCudaGroupOfCells.hpp" -#include "../Cuda/FCudaEmptyCellSymb.hpp" +#include "GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp" +#include "GroupTree/Cuda/FCudaEmptyKernel.hpp" +#include "GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp" +#include "GroupTree/Cuda/FCudaGroupOfParticles.hpp" +#include "GroupTree/Cuda/FCudaGroupOfCells.hpp" +#include "GroupTree/Cuda/FCudaEmptyCellSymb.hpp" #endif #ifdef SCALFMM_ENABLE_OPENCL_KERNEL -#include "../StarPUUtils/FStarPUOpenClWrapper.hpp" -#include "../OpenCl/FOpenCLDeviceWrapper.hpp" -#include "../OpenCl/FEmptyOpenCLCode.hpp" +#include "GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp" +#include "GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp" +#include "GroupTree/OpenCl/FEmptyOpenCLCode.hpp" #endif #include "../StarPUUtils/FStarPUReduxCpu.hpp" diff --git a/Src/GroupTree/Core/FGroupTools.hpp b/include/GroupTree/Core/FGroupTools.hpp similarity index 100% rename from Src/GroupTree/Core/FGroupTools.hpp rename to include/GroupTree/Core/FGroupTools.hpp diff --git a/Src/GroupTree/Core/FGroupTree.hpp b/include/GroupTree/Core/FGroupTree.hpp similarity index 99% rename from Src/GroupTree/Core/FGroupTree.hpp rename to include/GroupTree/Core/FGroupTree.hpp index 7b47be19b42c4782b9a6e9cd59f7957a714c5536..9eb0f6c9158e1213e5fd1dfa2dfb63c7381b9021 100644 --- a/Src/GroupTree/Core/FGroupTree.hpp +++ b/include/GroupTree/Core/FGroupTree.hpp @@ -962,6 +962,18 @@ public: block->forEachLeaf(function); } } + + /** + * @brief forEachLeaf iterate on the leaf and apply the generic function + * @param function + */ + template<class F> + void forEachLeaf(F&& function){ + for (ParticleGroupClass* block: _particleBlocks){ + block->forEachLeaf(function); + } + } + /** * @brief forEachMyLeaf iterate on the leaf and apply the function * @param function diff --git a/Src/GroupTree/Core/FGroupTreeDyn.hpp b/include/GroupTree/Core/FGroupTreeDyn.hpp similarity index 99% rename from Src/GroupTree/Core/FGroupTreeDyn.hpp rename to include/GroupTree/Core/FGroupTreeDyn.hpp index 5b551cbb056150104885aa3c1790db1ff0862565..5200e17dcf107877477d4201ec0437bea8b02bb6 100644 --- a/Src/GroupTree/Core/FGroupTreeDyn.hpp +++ b/include/GroupTree/Core/FGroupTreeDyn.hpp @@ -7,14 +7,14 @@ #include <memory> #include <functional> -#include "../../Utils/FAssert.hpp" -#include "../../Utils/FPoint.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Containers/FCoordinateComputer.hpp" -#include "FGroupOfCellsDyn.hpp" -#include "FGroupOfParticlesDyn.hpp" -#include "FGroupAttachedLeafDyn.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FPoint.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Containers/FCoordinateComputer.hpp" +#include "GroupTree/Core/FGroupOfCellsDyn.hpp" +#include "GroupTree/Core/FGroupOfParticlesDyn.hpp" +#include "GroupTree/Core/FGroupAttachedLeafDyn.hpp" diff --git a/Src/GroupTree/Core/FOutOfBlockInteraction.hpp b/include/GroupTree/Core/FOutOfBlockInteraction.hpp similarity index 100% rename from Src/GroupTree/Core/FOutOfBlockInteraction.hpp rename to include/GroupTree/Core/FOutOfBlockInteraction.hpp diff --git a/Src/GroupTree/Core/FP2PGroupParticleContainer.hpp b/include/GroupTree/Core/FP2PGroupParticleContainer.hpp similarity index 100% rename from Src/GroupTree/Core/FP2PGroupParticleContainer.hpp rename to include/GroupTree/Core/FP2PGroupParticleContainer.hpp diff --git a/Src/GroupTree/Core/starpu_codelet_parameters.h b/include/GroupTree/Core/starpu_codelet_parameters.h similarity index 100% rename from Src/GroupTree/Core/starpu_codelet_parameters.h rename to include/GroupTree/Core/starpu_codelet_parameters.h diff --git a/Src/GroupTree/Cuda/FCudaCompositeCell.hpp b/include/GroupTree/Cuda/FCudaCompositeCell.hpp similarity index 100% rename from Src/GroupTree/Cuda/FCudaCompositeCell.hpp rename to include/GroupTree/Cuda/FCudaCompositeCell.hpp diff --git a/Src/GroupTree/Cuda/FCudaData.hpp b/include/GroupTree/Cuda/FCudaData.hpp similarity index 100% rename from Src/GroupTree/Cuda/FCudaData.hpp rename to include/GroupTree/Cuda/FCudaData.hpp diff --git a/Src/GroupTree/Cuda/FCudaDeviceWrapper.cu b/include/GroupTree/Cuda/FCudaDeviceWrapper.cu similarity index 100% rename from Src/GroupTree/Cuda/FCudaDeviceWrapper.cu rename to include/GroupTree/Cuda/FCudaDeviceWrapper.cu diff --git a/Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp b/include/GroupTree/Cuda/FCudaDeviceWrapper.hpp similarity index 98% rename from Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp rename to include/GroupTree/Cuda/FCudaDeviceWrapper.hpp index 3762f7bf08ea36566ce3168e684649d3ad4ad4ea..081ff04c42ec2ad6128e0519486b938ca3de22e0 100644 --- a/Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp +++ b/include/GroupTree/Cuda/FCudaDeviceWrapper.hpp @@ -2,9 +2,9 @@ #define FCUDADEVICEWRAPPER_HPP -#include "../../Utils/FGlobal.hpp" -#include "../Core/FOutOfBlockInteraction.hpp" -#include "FCudaStructParams.hpp" +#include "Utils/FGlobal.hpp" +#include "GroupTree/Core/FOutOfBlockInteraction.hpp" +#include "GroupTree/Cuda/FCudaStructParams.hpp" template <class SymboleCellClass, class PoleCellClass, class LocalCellClass, class CellContainerClass, class ParticleContainerGroupClass, class ParticleGroupClass, class CudaKernelClass> diff --git a/Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp b/include/GroupTree/Cuda/FCudaEmptyCellSymb.hpp similarity index 62% rename from Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp rename to include/GroupTree/Cuda/FCudaEmptyCellSymb.hpp index 2f3342702ab969a9f391998c8a54fabb6e31d525..a34b6b8b7f2e54aa1e65f07c41a7ad0f641c9991 100644 --- a/Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp +++ b/include/GroupTree/Cuda/FCudaEmptyCellSymb.hpp @@ -1,9 +1,9 @@ #ifndef FCUDAEMPTYCELLSYMB_HPP #define FCUDAEMPTYCELLSYMB_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" +#include "Utils/FGlobal.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" struct alignas(FStarPUDefaultAlign::StructAlign) FCudaEmptyCellSymb { MortonIndex mortonIndex; diff --git a/Src/GroupTree/Cuda/FCudaEmptyKernel.hpp b/include/GroupTree/Cuda/FCudaEmptyKernel.hpp similarity index 100% rename from Src/GroupTree/Cuda/FCudaEmptyKernel.hpp rename to include/GroupTree/Cuda/FCudaEmptyKernel.hpp diff --git a/Src/GroupTree/Cuda/FCudaGlobal.hpp b/include/GroupTree/Cuda/FCudaGlobal.hpp similarity index 95% rename from Src/GroupTree/Cuda/FCudaGlobal.hpp rename to include/GroupTree/Cuda/FCudaGlobal.hpp index 4c86add3dd46d16523297943725fd55cd91394f7..f38f2ba7ac68e89ae41e1fd540e67f72c8cff969 100644 --- a/Src/GroupTree/Cuda/FCudaGlobal.hpp +++ b/include/GroupTree/Cuda/FCudaGlobal.hpp @@ -1,7 +1,7 @@ #ifndef FCUDAGLOBAL_HPP #define FCUDAGLOBAL_HPP -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" // Manage special case for nvcc #if defined(__CUDACC__) || defined(__NVCC__) diff --git a/Src/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp b/include/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp similarity index 100% rename from Src/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp rename to include/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp diff --git a/Src/GroupTree/Cuda/FCudaGroupOfCells.hpp b/include/GroupTree/Cuda/FCudaGroupOfCells.hpp similarity index 100% rename from Src/GroupTree/Cuda/FCudaGroupOfCells.hpp rename to include/GroupTree/Cuda/FCudaGroupOfCells.hpp diff --git a/Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp b/include/GroupTree/Cuda/FCudaGroupOfParticles.hpp similarity index 98% rename from Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp rename to include/GroupTree/Cuda/FCudaGroupOfParticles.hpp index a119cc22ed8b35c53fc0fc835a621fb1ce15e95f..15cfbf316ff258f5dc02c19e117b155a2c9d250f 100644 --- a/Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp +++ b/include/GroupTree/Cuda/FCudaGroupOfParticles.hpp @@ -2,8 +2,8 @@ #define FCUDAGROUPOFPARTICLES_HPP #include "FCudaGlobal.hpp" -#include "../../Utils/FGlobal.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" +#include "Utils/FGlobal.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" template <class FReal, unsigned NbSymbAttributes, unsigned NbAttributesPerParticle, class AttributeClass = FReal> class FCudaGroupOfParticles { diff --git a/Src/GroupTree/Cuda/FCudaStructParams.hpp b/include/GroupTree/Cuda/FCudaStructParams.hpp similarity index 100% rename from Src/GroupTree/Cuda/FCudaStructParams.hpp rename to include/GroupTree/Cuda/FCudaStructParams.hpp diff --git a/Src/GroupTree/Cuda/FCudaTic.hpp b/include/GroupTree/Cuda/FCudaTic.hpp similarity index 100% rename from Src/GroupTree/Cuda/FCudaTic.hpp rename to include/GroupTree/Cuda/FCudaTic.hpp diff --git a/Src/GroupTree/Cuda/FCudaTreeCoordinate.hpp b/include/GroupTree/Cuda/FCudaTreeCoordinate.hpp similarity index 100% rename from Src/GroupTree/Cuda/FCudaTreeCoordinate.hpp rename to include/GroupTree/Cuda/FCudaTreeCoordinate.hpp diff --git a/Src/GroupTree/OpenCl/FEmptyKernel.cl b/include/GroupTree/OpenCl/FEmptyKernel.cl similarity index 100% rename from Src/GroupTree/OpenCl/FEmptyKernel.cl rename to include/GroupTree/OpenCl/FEmptyKernel.cl diff --git a/Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp b/include/GroupTree/OpenCl/FEmptyOpenCLCode.hpp similarity index 100% rename from Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp rename to include/GroupTree/OpenCl/FEmptyOpenCLCode.hpp diff --git a/Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp b/include/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp similarity index 97% rename from Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp rename to include/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp index eaa6220a5d72f27210a6ea821fd53c2805f3cacf..2d338cd8287e67d319f45e437776b9bdd1ccb49c 100644 --- a/Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp +++ b/include/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp @@ -1,19 +1,19 @@ #ifndef FOPENCLDEVICEWRAPPER_HPP #define FOPENCLDEVICEWRAPPER_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" -#include "../../Utils/FAssert.hpp" +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FAssert.hpp" -#include "../Core/FOutOfBlockInteraction.hpp" +#include "GroupTree/Core/FOutOfBlockInteraction.hpp" -#include "FEmptyOpenCLCode.hpp" +#include "GroupTree/OpenCl/FEmptyOpenCLCode.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" #include <starpu.h> diff --git a/Src/GroupTree/OpenCl/FTextReplacer.hpp b/include/GroupTree/OpenCl/FTextReplacer.hpp similarity index 98% rename from Src/GroupTree/OpenCl/FTextReplacer.hpp rename to include/GroupTree/OpenCl/FTextReplacer.hpp index 81e69110bbeef8dec546abe1b688c61a4971ded0..9cad901370a03df067a9dc89d65284c314a57ffe 100644 --- a/Src/GroupTree/OpenCl/FTextReplacer.hpp +++ b/include/GroupTree/OpenCl/FTextReplacer.hpp @@ -1,8 +1,8 @@ #ifndef FTEXTREPLACER_HPP #define FTEXTREPLACER_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Utils/FAssert.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FAssert.hpp" #include <sstream> #include <fstream> diff --git a/Src/GroupTree/P2P/FCudaP2P.hpp b/include/GroupTree/P2P/FCudaP2P.hpp similarity index 100% rename from Src/GroupTree/P2P/FCudaP2P.hpp rename to include/GroupTree/P2P/FCudaP2P.hpp diff --git a/Src/GroupTree/StarPUUtils/FOmpPriorities.hpp b/include/GroupTree/StarPUUtils/FOmpPriorities.hpp similarity index 98% rename from Src/GroupTree/StarPUUtils/FOmpPriorities.hpp rename to include/GroupTree/StarPUUtils/FOmpPriorities.hpp index 57b1b91ffbcebdea98f9eb4e640bd5f424bfda27..79a2e2708a210c27d90b8a6e0b5a581d8e96cc12 100644 --- a/Src/GroupTree/StarPUUtils/FOmpPriorities.hpp +++ b/include/GroupTree/StarPUUtils/FOmpPriorities.hpp @@ -3,9 +3,9 @@ #include <cassert> -#include "../../Utils/FGlobal.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FEnv.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FEnv.hpp" class FOmpPriorities{ int insertionPositionP2M; diff --git a/Src/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp b/include/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp similarity index 99% rename from Src/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp rename to include/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp index d7fd4151a207d16a805695bd0852c50bab349d14..e2f2d2d0ebf21d39e1f6b7689f827687254877b9 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp +++ b/include/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp @@ -1,18 +1,18 @@ #ifndef FSTARPUCPTINTERACTIONSWRAPPER_HPP #define FSTARPUCPTINTERACTIONSWRAPPER_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" -#include "../../Utils/FAssert.hpp" +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FAssert.hpp" -#include "../Core/FOutOfBlockInteraction.hpp" +#include "GroupTree/Core/FOutOfBlockInteraction.hpp" #ifdef SCALFMM_USE_MPI -#include "../../Utils/FMpi.hpp" +#include "Utils/FMpi.hpp" #endif #include <vector> @@ -32,7 +32,7 @@ #include "FStarPUUtils.hpp" -#include "../../Utils/FTaskTimer.hpp" +#include "Utils/FTaskTimer.hpp" template <class CellContainerClass, class CellClass, class KernelClass, class ParticleGroupClass, class ParticleContainerClass> diff --git a/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp b/include/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp similarity index 98% rename from Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp rename to include/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp index 87f118a1f641031de8844c785fb88af19982c61b..f5c51341624757333a803a91576ae9b1a2faf9ab 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp +++ b/include/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp @@ -3,18 +3,18 @@ #define FSTARPUCPUWRAPPER_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" -#include "../../Utils/FAssert.hpp" +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FAssert.hpp" -#include "../Core/FOutOfBlockInteraction.hpp" +#include "GroupTree/Core/FOutOfBlockInteraction.hpp" #ifdef SCALFMM_USE_MPI -#include "../../Utils/FMpi.hpp" +#include "Utils/FMpi.hpp" #endif #include <vector> @@ -34,7 +34,7 @@ #include "FStarPUUtils.hpp" -#include "../../Utils/FTaskTimer.hpp" +#include "Utils/FTaskTimer.hpp" template <class CellContainerClass, class CellClass, class KernelClass, class ParticleGroupClass, class ParticleContainerClass> diff --git a/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp b/include/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp similarity index 98% rename from Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp rename to include/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp index c685242831af2fde522ac38e1b25a84cdfd4abe1..2c9a73fa9131250b872647e0a8ce76e4d3a348fc 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp +++ b/include/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp @@ -1,19 +1,19 @@ #ifndef FSTARPUCUDAWRAPPER_HPP #define FSTARPUCUDAWRAPPER_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" -#include "../../Utils/FAssert.hpp" -#include "../../Utils/FAssert.hpp" +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FAssert.hpp" +#include "Utils/FAssert.hpp" -#include "../Core/FOutOfBlockInteraction.hpp" +#include "GroupTree/Core/FOutOfBlockInteraction.hpp" #ifdef SCALFMM_USE_MPI -#include "../../Utils/FMpi.hpp" +#include "Utils/FMpi.hpp" #endif #include <vector> diff --git a/Src/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp b/include/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp similarity index 100% rename from Src/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp rename to include/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp diff --git a/Src/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp b/include/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp similarity index 100% rename from Src/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp rename to include/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp diff --git a/Src/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp b/include/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp similarity index 99% rename from Src/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp rename to include/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp index c3832b1af51439082d21607dbf362dc4c2769e1e..fdba743903b263e3c18a00f253f05b465c00795d 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp +++ b/include/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp @@ -2,10 +2,10 @@ #define FSTARPUFMMPRIORITIESV2_HPP -#include "../../Utils/FGlobal.hpp" -#include "FStarPUUtils.hpp" +#include "Utils/FGlobal.hpp" +#include "GroupTree/StarPUUtils/FStarPUUtils.hpp" -#include "FStarPUKernelCapacities.hpp" +#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp" /** * @brief The FStarPUFmmPrioritiesV2 class diff --git a/Src/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp b/include/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp similarity index 99% rename from Src/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp rename to include/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp index 5aee8e3382c5f72eb2a15d6b2c48af7e91d2cc5e..d2c17f47cb82100ab5a487402170f97cb48e9e15 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp +++ b/include/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp @@ -143,8 +143,8 @@ * n = 10, w = 3 => 10/3 = 3.33 >= s (so a task will be given if s is no more than 3 times slower) */ -#include "../../Utils/FGlobal.hpp" -#include "FStarPUUtils.hpp" +#include "Utils/FGlobal.hpp" +#include "GroupTree/StarPUUtils/FStarPUUtils.hpp" #ifdef __cplusplus extern "C" diff --git a/Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp b/include/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp similarity index 100% rename from Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp rename to include/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp diff --git a/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp b/include/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp similarity index 97% rename from Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp rename to include/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp index 45238335311f3f18990ce46af2c77e59a9d74489..a5263bc1af8d8da7ee746746b808e5512f078532 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp +++ b/include/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp @@ -4,18 +4,18 @@ #define FSTARPUOPENCLWRAPPER_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Core/FCoreCommon.hpp" -#include "../../Utils/FQuickSort.hpp" -#include "../../Containers/FTreeCoordinate.hpp" -#include "../../Utils/FLog.hpp" -#include "../../Utils/FTic.hpp" -#include "../../Utils/FAssert.hpp" +#include "Utils/FGlobal.hpp" +#include "Core/FCoreCommon.hpp" +#include "Utils/FQuickSort.hpp" +#include "Containers/FTreeCoordinate.hpp" +#include "Utils/FLog.hpp" +#include "Utils/FTic.hpp" +#include "Utils/FAssert.hpp" -#include "../Core/FOutOfBlockInteraction.hpp" +#include "GroupTree/Core/FOutOfBlockInteraction.hpp" #ifdef SCALFMM_USE_MPI -#include "../../Utils/FMpi.hpp" +#include "Utils/FMpi.hpp" #endif #include <vector> diff --git a/Src/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp b/include/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp similarity index 100% rename from Src/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp rename to include/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp diff --git a/Src/GroupTree/StarPUUtils/FStarPUUtils.hpp b/include/GroupTree/StarPUUtils/FStarPUUtils.hpp similarity index 99% rename from Src/GroupTree/StarPUUtils/FStarPUUtils.hpp rename to include/GroupTree/StarPUUtils/FStarPUUtils.hpp index 8ee8d336ee7fc215a0693c04e89e6fa7869eab71..fa1fd6b7ad96a30e7e516451a3ebfc985c96e74d 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUUtils.hpp +++ b/include/GroupTree/StarPUUtils/FStarPUUtils.hpp @@ -3,7 +3,7 @@ #define FSTARPUUTILS_HPP ///////////////////////////////////////////////////// -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" ///////////////////////////////////////////////////// diff --git a/Src/GroupTree/TestKernel/FCudaTestKernels.hpp b/include/GroupTree/TestKernel/FCudaTestKernels.hpp similarity index 100% rename from Src/GroupTree/TestKernel/FCudaTestKernels.hpp rename to include/GroupTree/TestKernel/FCudaTestKernels.hpp diff --git a/Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp b/include/GroupTree/TestKernel/FGroupTestParticleContainer.hpp similarity index 100% rename from Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp rename to include/GroupTree/TestKernel/FGroupTestParticleContainer.hpp diff --git a/Src/GroupTree/TestKernel/FTestKernel.cl b/include/GroupTree/TestKernel/FTestKernel.cl similarity index 100% rename from Src/GroupTree/TestKernel/FTestKernel.cl rename to include/GroupTree/TestKernel/FTestKernel.cl diff --git a/Src/GroupTree/TestKernel/FTestOpenCLCode.hpp b/include/GroupTree/TestKernel/FTestOpenCLCode.hpp similarity index 92% rename from Src/GroupTree/TestKernel/FTestOpenCLCode.hpp rename to include/GroupTree/TestKernel/FTestOpenCLCode.hpp index cfee46a6d9a4f8102b0a25207d4f7747d371e165..1c41a8a96a4a677c1dcbeefff383c5a8ebfd44f8 100644 --- a/Src/GroupTree/TestKernel/FTestOpenCLCode.hpp +++ b/include/GroupTree/TestKernel/FTestOpenCLCode.hpp @@ -1,9 +1,9 @@ #ifndef FTESTOPENCLCODE_HPP #define FTESTOPENCLCODE_HPP -#include "../../Utils/FGlobal.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" -#include "../OpenCl/FTextReplacer.hpp" +#include "Utils/FGlobal.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" +#include "GroupTree/OpenCl/FTextReplacer.hpp" // Initialize the types template <class FReal> diff --git a/Src/GroupTree/Uniform/FUnifCuda.hpp b/include/GroupTree/Uniform/FUnifCuda.hpp similarity index 100% rename from Src/GroupTree/Uniform/FUnifCuda.hpp rename to include/GroupTree/Uniform/FUnifCuda.hpp diff --git a/Src/GroupTree/Uniform/FUnifCudaSharedData.hpp b/include/GroupTree/Uniform/FUnifCudaSharedData.hpp similarity index 77% rename from Src/GroupTree/Uniform/FUnifCudaSharedData.hpp rename to include/GroupTree/Uniform/FUnifCudaSharedData.hpp index 847f487b1370443750c7eef1208fbda632385325..8d4e72a9e94616f5fec5743e1376c6ffba924457 100644 --- a/Src/GroupTree/Uniform/FUnifCudaSharedData.hpp +++ b/include/GroupTree/Uniform/FUnifCudaSharedData.hpp @@ -1,10 +1,10 @@ #ifndef FUNIFCUDASHAREDDATA_HPP #define FUNIFCUDASHAREDDATA_HPP -#include "../Cuda/FCudaGlobal.hpp" -#include "../../Utils/FGlobal.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" -#include "FUnifCudaCellPOD.hpp" +#include "GroupTree/Cuda/FCudaGlobal.hpp" +#include "Utils/FGlobal.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" +//#include "FUnifCudaCellPOD.hpp" template <class FReal, int ORDER> struct alignas(FStarPUDefaultAlign::StructAlign) FUnifCudaSharedData { diff --git a/Src/GroupTree/Uniform/FUniformKernel.cl b/include/GroupTree/Uniform/FUniformKernel.cl similarity index 100% rename from Src/GroupTree/Uniform/FUniformKernel.cl rename to include/GroupTree/Uniform/FUniformKernel.cl diff --git a/Src/GroupTree/Uniform/FUniformOpenCLCode.hpp b/include/GroupTree/Uniform/FUniformOpenCLCode.hpp similarity index 91% rename from Src/GroupTree/Uniform/FUniformOpenCLCode.hpp rename to include/GroupTree/Uniform/FUniformOpenCLCode.hpp index 4556fa722c755c46fb7be820ff26badfc85a04c5..09e8c00719d318e1cf38f3a46b7289011dee8e0b 100644 --- a/Src/GroupTree/Uniform/FUniformOpenCLCode.hpp +++ b/include/GroupTree/Uniform/FUniformOpenCLCode.hpp @@ -2,11 +2,11 @@ #define FUNIFORMOPENCLCODE_HPP -#include "../../Utils/FGlobal.hpp" -#include "../StarPUUtils/FStarPUDefaultAlign.hpp" -#include "../OpenCl/FTextReplacer.hpp" +#include "Utils/FGlobal.hpp" +#include "GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp" +#include "GroupTree/OpenCl/FTextReplacer.hpp" -#include "../../Kernels/Uniform/FUnifCell.hpp" +#include "Kernels/Uniform/FUnifCell.hpp" // Initialize the types template <class FReal, const int ORDER> diff --git a/Src/Kernels/Chebyshev/FAbstractChebKernel.hpp b/include/Kernels/Chebyshev/FAbstractChebKernel.hpp similarity index 93% rename from Src/Kernels/Chebyshev/FAbstractChebKernel.hpp rename to include/Kernels/Chebyshev/FAbstractChebKernel.hpp index 2edcfa06c02b00724a91f28ce16b337f55f7963e..23e51fc04b165d3ef5d6cf96c904d21bbb93e531 100644 --- a/Src/Kernels/Chebyshev/FAbstractChebKernel.hpp +++ b/include/Kernels/Chebyshev/FAbstractChebKernel.hpp @@ -2,16 +2,16 @@ #ifndef FABSTRACTCHEBKERNEL_HPP #define FABSTRACTCHEBKERNEL_HPP -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Utils/FSmartPointer.hpp" +#include "Utils/FSmartPointer.hpp" -#include "../../Components/FAbstractKernels.hpp" +#include "Components/FAbstractKernels.hpp" -#include "../Interpolation/FInterpP2PKernels.hpp" -#include "./FChebInterpolator.hpp" +#include "Kernels/Interpolation/FInterpP2PKernels.hpp" +#include "Kernels/Chebyshev/FChebInterpolator.hpp" -#include "../../Containers/FTreeCoordinate.hpp" +#include "Containers/FTreeCoordinate.hpp" /** * @author Matthias Messner(matthias.messner@inria.fr) diff --git a/Src/Kernels/Chebyshev/FChebCell.hpp b/include/Kernels/Chebyshev/FChebCell.hpp similarity index 100% rename from Src/Kernels/Chebyshev/FChebCell.hpp rename to include/Kernels/Chebyshev/FChebCell.hpp diff --git a/Src/Kernels/Chebyshev/FChebDenseKernel.hpp b/include/Kernels/Chebyshev/FChebDenseKernel.hpp similarity index 98% rename from Src/Kernels/Chebyshev/FChebDenseKernel.hpp rename to include/Kernels/Chebyshev/FChebDenseKernel.hpp index 6a2d5274914f80ef3c16197a7cd36a3faf38a67c..68f2ef137d6daeb0602e6b54e0309d8c30bab8bb 100644 --- a/Src/Kernels/Chebyshev/FChebDenseKernel.hpp +++ b/include/Kernels/Chebyshev/FChebDenseKernel.hpp @@ -3,13 +3,13 @@ #ifndef FCHEBDENSEKERNEL_HPP #define FCHEBDENSEKERNEL_HPP -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Utils/FSmartPointer.hpp" +#include "Utils/FSmartPointer.hpp" -#include "./FAbstractChebKernel.hpp" +#include "Kernels/Chebyshev/FAbstractChebKernel.hpp" -#include "./FChebDenseM2LHandler.hpp" +#include "Kernels/Chebyshev/FChebDenseM2LHandler.hpp" class FTreeCoordinate; diff --git a/Src/Kernels/Chebyshev/FChebDenseM2LHandler.hpp b/include/Kernels/Chebyshev/FChebDenseM2LHandler.hpp similarity index 100% rename from Src/Kernels/Chebyshev/FChebDenseM2LHandler.hpp rename to include/Kernels/Chebyshev/FChebDenseM2LHandler.hpp diff --git a/Src/Kernels/Chebyshev/FChebFlopsSymKernel.hpp b/include/Kernels/Chebyshev/FChebFlopsSymKernel.hpp similarity index 98% rename from Src/Kernels/Chebyshev/FChebFlopsSymKernel.hpp rename to include/Kernels/Chebyshev/FChebFlopsSymKernel.hpp index ef1b688ed31ba81450d12314445c25d4b63cdb70..6e98f1f44b9e0f3a99f4db366d30c2c69b74e58f 100644 --- a/Src/Kernels/Chebyshev/FChebFlopsSymKernel.hpp +++ b/include/Kernels/Chebyshev/FChebFlopsSymKernel.hpp @@ -4,14 +4,14 @@ #include <stdexcept> -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Utils/FSmartPointer.hpp" +#include "Utils/FSmartPointer.hpp" -#include "../../Components/FAbstractKernels.hpp" +#include "Components/FAbstractKernels.hpp" -#include "./FChebInterpolator.hpp" -#include "../Interpolation/FInterpSymmetries.hpp" +#include "Kernels/Chebyshev/FChebInterpolator.hpp" +#include "Kernels/Interpolation/FInterpSymmetries.hpp" class FTreeCoordinate; diff --git a/Src/Kernels/Chebyshev/FChebInterpolator.hpp b/include/Kernels/Chebyshev/FChebInterpolator.hpp similarity index 100% rename from Src/Kernels/Chebyshev/FChebInterpolator.hpp rename to include/Kernels/Chebyshev/FChebInterpolator.hpp diff --git a/Src/Kernels/Chebyshev/FChebKernel.hpp b/include/Kernels/Chebyshev/FChebKernel.hpp similarity index 98% rename from Src/Kernels/Chebyshev/FChebKernel.hpp rename to include/Kernels/Chebyshev/FChebKernel.hpp index 5b3343c2b81fda5bcc86b028865ee01652989240..56d9a58faad883a61b26534643c5f90f277a98d3 100644 --- a/Src/Kernels/Chebyshev/FChebKernel.hpp +++ b/include/Kernels/Chebyshev/FChebKernel.hpp @@ -2,13 +2,13 @@ #ifndef FCHEBKERNEL_HPP #define FCHEBKERNEL_HPP -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Utils/FSmartPointer.hpp" +#include "Utils/FSmartPointer.hpp" -#include "./FAbstractChebKernel.hpp" +#include "Kernels/Chebyshev/FAbstractChebKernel.hpp" -#include "./FChebM2LHandler.hpp" +#include "Kernels/Chebyshev/FChebM2LHandler.hpp" class FTreeCoordinate; diff --git a/Src/Kernels/Chebyshev/FChebM2LHandler.hpp b/include/Kernels/Chebyshev/FChebM2LHandler.hpp similarity index 100% rename from Src/Kernels/Chebyshev/FChebM2LHandler.hpp rename to include/Kernels/Chebyshev/FChebM2LHandler.hpp diff --git a/Src/Kernels/Chebyshev/FChebRoots.hpp b/include/Kernels/Chebyshev/FChebRoots.hpp similarity index 99% rename from Src/Kernels/Chebyshev/FChebRoots.hpp rename to include/Kernels/Chebyshev/FChebRoots.hpp index 157459e50fbef42bb4cd33e26e49a37a17e025e8..f1ecfd4a75e4203ac30dbcc22c1ca5a17264c580 100644 --- a/Src/Kernels/Chebyshev/FChebRoots.hpp +++ b/include/Kernels/Chebyshev/FChebRoots.hpp @@ -7,7 +7,7 @@ #include <cassert> #include <array> -#include "../../Utils/FNoCopyable.hpp" +#include "Utils/FNoCopyable.hpp" /** diff --git a/Src/Kernels/Chebyshev/FChebSymKernel.hpp b/include/Kernels/Chebyshev/FChebSymKernel.hpp similarity index 100% rename from Src/Kernels/Chebyshev/FChebSymKernel.hpp rename to include/Kernels/Chebyshev/FChebSymKernel.hpp diff --git a/Src/Kernels/Chebyshev/FChebSymM2LHandler.hpp b/include/Kernels/Chebyshev/FChebSymM2LHandler.hpp similarity index 100% rename from Src/Kernels/Chebyshev/FChebSymM2LHandler.hpp rename to include/Kernels/Chebyshev/FChebSymM2LHandler.hpp diff --git a/Src/Kernels/Chebyshev/FChebTensor.hpp b/include/Kernels/Chebyshev/FChebTensor.hpp similarity index 92% rename from Src/Kernels/Chebyshev/FChebTensor.hpp rename to include/Kernels/Chebyshev/FChebTensor.hpp index 5abd6cd0820e67ceac36ac466eeaf383c61b6a48..0d16d8d01798ddb92f4a3debfa28d6b4ca68883d 100644 --- a/Src/Kernels/Chebyshev/FChebTensor.hpp +++ b/include/Kernels/Chebyshev/FChebTensor.hpp @@ -2,10 +2,10 @@ #ifndef FCHEBTENSOR_HPP #define FCHEBTENSOR_HPP -#include "../../Utils/FMath.hpp" +#include "Utils/FMath.hpp" -#include "./FChebRoots.hpp" -#include "./../Interpolation/FInterpTensor.hpp" +#include "Kernels/Chebyshev/FChebRoots.hpp" +#include "Kernels/Interpolation/FInterpTensor.hpp" /** diff --git a/Src/Kernels/Chebyshev/FChebTensorialKernel.hpp b/include/Kernels/Chebyshev/FChebTensorialKernel.hpp similarity index 98% rename from Src/Kernels/Chebyshev/FChebTensorialKernel.hpp rename to include/Kernels/Chebyshev/FChebTensorialKernel.hpp index 283729e86d67d973a3ae8cbfd37b0f30e23e3eae..648c6778ad909cd42e54ce17ef8c3aa85d0ea6f8 100644 --- a/Src/Kernels/Chebyshev/FChebTensorialKernel.hpp +++ b/include/Kernels/Chebyshev/FChebTensorialKernel.hpp @@ -2,12 +2,12 @@ #ifndef FCHEBTENSORIALKERNEL_HPP #define FCHEBTENSORIALKERNEL_HPP -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Utils/FSmartPointer.hpp" +#include "Utils/FSmartPointer.hpp" -#include "./FAbstractChebKernel.hpp" -#include "./FChebTensorialM2LHandler.hpp" //PB: temporary version +#include "Kernels/Chebyshev/FAbstractChebKernel.hpp" +#include "Kernels/Chebyshev/FChebTensorialM2LHandler.hpp" //PB: temporary version class FTreeCoordinate; diff --git a/Src/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp b/include/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp similarity index 99% rename from Src/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp rename to include/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp index bc3eea9adb91b2af53af58cd483976c178b99db4..2dd3d55eaad7a1f535b0d83b28a0c5af335c482d 100644 --- a/Src/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp +++ b/include/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp @@ -9,10 +9,10 @@ #include <fstream> #include <typeinfo> -#include "../../Utils/FBlas.hpp" -#include "../../Utils/FTic.hpp" +#include "Utils/FBlas.hpp" +#include "Utils/FTic.hpp" -#include "./FChebTensor.hpp" +#include "Kernels/Chebyshev/FChebTensor.hpp" /** * Computes and compresses all \f$K_t\f$. diff --git a/Src/Kernels/FKernelConcepts.hpp b/include/Kernels/FKernelConcepts.hpp similarity index 100% rename from Src/Kernels/FKernelConcepts.hpp rename to include/Kernels/FKernelConcepts.hpp diff --git a/Src/Kernels/Generic/FGenericData.hpp b/include/Kernels/Generic/FGenericData.hpp similarity index 100% rename from Src/Kernels/Generic/FGenericData.hpp rename to include/Kernels/Generic/FGenericData.hpp diff --git a/Src/Kernels/Interpolation/FCutOffKernel.hpp b/include/Kernels/Interpolation/FCutOffKernel.hpp similarity index 100% rename from Src/Kernels/Interpolation/FCutOffKernel.hpp rename to include/Kernels/Interpolation/FCutOffKernel.hpp diff --git a/Src/Kernels/Interpolation/FInterpCell.hpp b/include/Kernels/Interpolation/FInterpCell.hpp similarity index 100% rename from Src/Kernels/Interpolation/FInterpCell.hpp rename to include/Kernels/Interpolation/FInterpCell.hpp diff --git a/Src/Kernels/Interpolation/FInterpMapping.hpp b/include/Kernels/Interpolation/FInterpMapping.hpp similarity index 98% rename from Src/Kernels/Interpolation/FInterpMapping.hpp rename to include/Kernels/Interpolation/FInterpMapping.hpp index e2b07da4d198b751bb492c4f51bd76b677885ac4..eec652bb72fb9e730b6c4058cdfef2507e43ac0b 100644 --- a/Src/Kernels/Interpolation/FInterpMapping.hpp +++ b/include/Kernels/Interpolation/FInterpMapping.hpp @@ -5,8 +5,8 @@ #include <iostream> #include <limits> -#include "../../Utils/FNoCopyable.hpp" -#include "../../Utils/FPoint.hpp" +#include "Utils/FNoCopyable.hpp" +#include "Utils/FPoint.hpp" /** * @author Matthias Messner (matthias.matthias@inria.fr) diff --git a/Src/Kernels/Interpolation/FInterpMatrixKernel.hpp b/include/Kernels/Interpolation/FInterpMatrixKernel.hpp similarity index 100% rename from Src/Kernels/Interpolation/FInterpMatrixKernel.hpp rename to include/Kernels/Interpolation/FInterpMatrixKernel.hpp diff --git a/Src/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp b/include/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp similarity index 100% rename from Src/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp rename to include/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp diff --git a/Src/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp b/include/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp similarity index 100% rename from Src/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp rename to include/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp diff --git a/Src/Kernels/Interpolation/FInterpP2PKernels.hpp b/include/Kernels/Interpolation/FInterpP2PKernels.hpp similarity index 100% rename from Src/Kernels/Interpolation/FInterpP2PKernels.hpp rename to include/Kernels/Interpolation/FInterpP2PKernels.hpp diff --git a/Src/Kernels/Interpolation/FInterpSymmetries.hpp b/include/Kernels/Interpolation/FInterpSymmetries.hpp similarity index 100% rename from Src/Kernels/Interpolation/FInterpSymmetries.hpp rename to include/Kernels/Interpolation/FInterpSymmetries.hpp diff --git a/Src/Kernels/Interpolation/FInterpTensor.hpp b/include/Kernels/Interpolation/FInterpTensor.hpp similarity index 100% rename from Src/Kernels/Interpolation/FInterpTensor.hpp rename to include/Kernels/Interpolation/FInterpTensor.hpp diff --git a/Src/Kernels/P2P/FP2P.hpp b/include/Kernels/P2P/FP2P.hpp similarity index 100% rename from Src/Kernels/P2P/FP2P.hpp rename to include/Kernels/P2P/FP2P.hpp diff --git a/Src/Kernels/P2P/FP2PMultiRhs.hpp b/include/Kernels/P2P/FP2PMultiRhs.hpp similarity index 100% rename from Src/Kernels/P2P/FP2PMultiRhs.hpp rename to include/Kernels/P2P/FP2PMultiRhs.hpp diff --git a/Src/Kernels/P2P/FP2PParticleContainer.hpp b/include/Kernels/P2P/FP2PParticleContainer.hpp similarity index 100% rename from Src/Kernels/P2P/FP2PParticleContainer.hpp rename to include/Kernels/P2P/FP2PParticleContainer.hpp diff --git a/Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp b/include/Kernels/P2P/FP2PParticleContainerIndexed.hpp similarity index 100% rename from Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp rename to include/Kernels/P2P/FP2PParticleContainerIndexed.hpp diff --git a/Src/Kernels/P2P/FP2PR.hpp b/include/Kernels/P2P/FP2PR.hpp similarity index 100% rename from Src/Kernels/P2P/FP2PR.hpp rename to include/Kernels/P2P/FP2PR.hpp diff --git a/Src/Kernels/P2P/FP2PTensorialKij.hpp b/include/Kernels/P2P/FP2PTensorialKij.hpp similarity index 100% rename from Src/Kernels/P2P/FP2PTensorialKij.hpp rename to include/Kernels/P2P/FP2PTensorialKij.hpp diff --git a/Src/Kernels/Rotation/FRotationCell.hpp b/include/Kernels/Rotation/FRotationCell.hpp similarity index 96% rename from Src/Kernels/Rotation/FRotationCell.hpp rename to include/Kernels/Rotation/FRotationCell.hpp index 6936d6c9f9b93b2f13f397b78fbe974bb7d384b1..8f65257f94594dc11df32b5aa8d932fcf61f23fd 100644 --- a/Src/Kernels/Rotation/FRotationCell.hpp +++ b/include/Kernels/Rotation/FRotationCell.hpp @@ -2,12 +2,12 @@ #ifndef FROTATIONCELL_HPP #define FROTATIONCELL_HPP -#include "../../Utils/FComplex.hpp" -#include "../../Utils/FMemUtils.hpp" +#include "Utils/FComplex.hpp" +#include "Utils/FMemUtils.hpp" -#include "../../Extensions/FExtendCellType.hpp" +#include "Extensions/FExtendCellType.hpp" -#include "../../Components/FBasicCell.hpp" +#include "Components/FBasicCell.hpp" /** This class is a cell used for the rotation based kernel diff --git a/Src/Kernels/Rotation/FRotationKernel.hpp b/include/Kernels/Rotation/FRotationKernel.hpp similarity index 100% rename from Src/Kernels/Rotation/FRotationKernel.hpp rename to include/Kernels/Rotation/FRotationKernel.hpp diff --git a/Src/Kernels/Rotation/FRotationOriginalKernel.hpp b/include/Kernels/Rotation/FRotationOriginalKernel.hpp similarity index 99% rename from Src/Kernels/Rotation/FRotationOriginalKernel.hpp rename to include/Kernels/Rotation/FRotationOriginalKernel.hpp index 0273bb605ee2670dbd8792fbd58983e7f4fc676f..2fe05bc64d856f8469934f1df4790e8e0c893d8b 100644 --- a/Src/Kernels/Rotation/FRotationOriginalKernel.hpp +++ b/include/Kernels/Rotation/FRotationOriginalKernel.hpp @@ -2,13 +2,13 @@ #ifndef FROTATIONORIGINALKERNEL_HPP #define FROTATIONORIGINALKERNEL_HPP -#include "../../Components/FAbstractKernels.hpp" -#include "../../Utils/FSmartPointer.hpp" -#include "../../Utils/FComplex.hpp" -#include "../../Utils/FMemUtils.hpp" -#include "../../Utils/FSpherical.hpp" +#include "Components/FAbstractKernels.hpp" +#include "Utils/FSmartPointer.hpp" +#include "Utils/FComplex.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FSpherical.hpp" -#include "../P2P/FP2PR.hpp" +#include "Kernels/P2P/FP2PR.hpp" /** * @author Berenger Bramas (berenger.bramas@inria.fr) diff --git a/Src/Kernels/Rotation/FRotationParticleContainer.hpp b/include/Kernels/Rotation/FRotationParticleContainer.hpp similarity index 95% rename from Src/Kernels/Rotation/FRotationParticleContainer.hpp rename to include/Kernels/Rotation/FRotationParticleContainer.hpp index 649a73adf16ebff8fdc52129aeb221d237e0cb57..577cd77934582bc8feb50b1d6912c731347761c1 100644 --- a/Src/Kernels/Rotation/FRotationParticleContainer.hpp +++ b/include/Kernels/Rotation/FRotationParticleContainer.hpp @@ -3,7 +3,7 @@ #define FROTATIONLPARTICLECONTAINER_HPP -#include "../../Components/FBasicParticleContainer.hpp" +#include "Components/FBasicParticleContainer.hpp" template <class FReal> class FRotationParticleContainer : public FBasicParticleContainer<FReal, 5> { diff --git a/Src/Kernels/Spherical/FAbstractSphericalKernel.hpp b/include/Kernels/Spherical/FAbstractSphericalKernel.hpp similarity index 99% rename from Src/Kernels/Spherical/FAbstractSphericalKernel.hpp rename to include/Kernels/Spherical/FAbstractSphericalKernel.hpp index df1d8be63b464bd9ae5537dbd4c6e3102538c395..710664377393dcd9be1b65c3dda15602cf76d3a6 100644 --- a/Src/Kernels/Spherical/FAbstractSphericalKernel.hpp +++ b/include/Kernels/Spherical/FAbstractSphericalKernel.hpp @@ -3,18 +3,18 @@ #define FABSTRACTSPHERICALKERNEL_HPP #include <iostream> -#include "../../Components/FAbstractKernels.hpp" +#include "Components/FAbstractKernels.hpp" -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Utils/FMemUtils.hpp" -#include "../../Utils/FSmartPointer.hpp" -#include "../../Utils/FPoint.hpp" -#include "../../Utils/FAssert.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FSmartPointer.hpp" +#include "Utils/FPoint.hpp" +#include "Utils/FAssert.hpp" -#include "../../Containers/FTreeCoordinate.hpp" +#include "Containers/FTreeCoordinate.hpp" -#include "../P2P/FP2PR.hpp" +#include "Kernels/P2P/FP2PR.hpp" #include "FHarmonic.hpp" diff --git a/Src/Kernels/Spherical/FHarmonic.hpp b/include/Kernels/Spherical/FHarmonic.hpp similarity index 98% rename from Src/Kernels/Spherical/FHarmonic.hpp rename to include/Kernels/Spherical/FHarmonic.hpp index bab498f0174f8612fc05607f5f44d177f67ec0b6..aea8ae64cb884d6fbe58ae22165c41c997fb8d8b 100644 --- a/Src/Kernels/Spherical/FHarmonic.hpp +++ b/include/Kernels/Spherical/FHarmonic.hpp @@ -2,10 +2,10 @@ #ifndef FHARMONIC_HPP #define FHARMONIC_HPP -#include "../../Utils/FGlobal.hpp" -#include "../../Utils/FComplex.hpp" -#include "../../Utils/FSpherical.hpp" -#include "../../Utils/FNoCopyable.hpp" +#include "Utils/FGlobal.hpp" +#include "Utils/FComplex.hpp" +#include "Utils/FSpherical.hpp" +#include "Utils/FNoCopyable.hpp" /** This class compute the spherical harmonic. diff --git a/Src/Kernels/Spherical/FSphericalBlasKernel.hpp b/include/Kernels/Spherical/FSphericalBlasKernel.hpp similarity index 100% rename from Src/Kernels/Spherical/FSphericalBlasKernel.hpp rename to include/Kernels/Spherical/FSphericalBlasKernel.hpp diff --git a/Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp b/include/Kernels/Spherical/FSphericalBlockBlasKernel.hpp similarity index 99% rename from Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp rename to include/Kernels/Spherical/FSphericalBlockBlasKernel.hpp index 134af36965146b8a8d981b641dcf01bb30f68517..ec3d19d67c3e95d472d823917a65b573ec0b05d1 100644 --- a/Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp +++ b/include/Kernels/Spherical/FSphericalBlockBlasKernel.hpp @@ -4,9 +4,9 @@ #include "FAbstractSphericalKernel.hpp" -#include "../../Utils/FMemUtils.hpp" -#include "../../Utils/FBlas.hpp" -#include "../../Containers/FVector.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FBlas.hpp" +#include "Containers/FVector.hpp" /** * @author Berenger Bramas (berenger.bramas@inria.fr) diff --git a/Src/Kernels/Spherical/FSphericalCell.hpp b/include/Kernels/Spherical/FSphericalCell.hpp similarity index 97% rename from Src/Kernels/Spherical/FSphericalCell.hpp rename to include/Kernels/Spherical/FSphericalCell.hpp index ea925e6db9355991929264fe89bcfc2d8c551f06..0250b550231d51972c00613604ebfc8d9fae6b13 100644 --- a/Src/Kernels/Spherical/FSphericalCell.hpp +++ b/include/Kernels/Spherical/FSphericalCell.hpp @@ -4,12 +4,12 @@ #include <algorithm> -#include "../../Utils/FComplex.hpp" -#include "../../Utils/FMemUtils.hpp" +#include "Utils/FComplex.hpp" +#include "Utils/FMemUtils.hpp" -#include "../../Extensions/FExtendCellType.hpp" +#include "Extensions/FExtendCellType.hpp" -#include "../../Components/FBasicCell.hpp" +#include "Components/FBasicCell.hpp" /** * @author Berenger Bramas (berenger.bramas@inria.fr) diff --git a/Src/Kernels/Spherical/FSphericalKernel.hpp b/include/Kernels/Spherical/FSphericalKernel.hpp similarity index 99% rename from Src/Kernels/Spherical/FSphericalKernel.hpp rename to include/Kernels/Spherical/FSphericalKernel.hpp index 01b34d7b653eafbc93bd79eefeed43dc3f5e22be..3f7c28200a60128df501f9f06f6289b199155ace 100644 --- a/Src/Kernels/Spherical/FSphericalKernel.hpp +++ b/include/Kernels/Spherical/FSphericalKernel.hpp @@ -3,7 +3,7 @@ #define FSPHERICALKERNEL_HPP #include "FAbstractSphericalKernel.hpp" -#include "../../Utils/FMemUtils.hpp" +#include "Utils/FMemUtils.hpp" /** * @author Berenger Bramas (berenger.bramas@inria.fr) diff --git a/Src/Kernels/Spherical/FSphericalRotationKernel.hpp b/include/Kernels/Spherical/FSphericalRotationKernel.hpp similarity index 100% rename from Src/Kernels/Spherical/FSphericalRotationKernel.hpp rename to include/Kernels/Spherical/FSphericalRotationKernel.hpp diff --git a/Src/Kernels/Taylor/FTaylorCell.hpp b/include/Kernels/Taylor/FTaylorCell.hpp similarity index 96% rename from Src/Kernels/Taylor/FTaylorCell.hpp rename to include/Kernels/Taylor/FTaylorCell.hpp index b17e10a241c6b861ab4de9deee0fb8cd8319ac5d..570c710cf9a5a836bc7d599abf0b9635230a5de6 100644 --- a/Src/Kernels/Taylor/FTaylorCell.hpp +++ b/include/Kernels/Taylor/FTaylorCell.hpp @@ -2,10 +2,10 @@ #ifndef FTAYLORCELL_HPP #define FTAYLORCELL_HPP -#include "../../Components/FBasicCell.hpp" -#include "../../Containers/FVector.hpp" -#include "../../Utils/FMemUtils.hpp" -#include "../../Extensions/FExtendCellType.hpp" +#include "Components/FBasicCell.hpp" +#include "Containers/FVector.hpp" +#include "Utils/FMemUtils.hpp" +#include "Extensions/FExtendCellType.hpp" /** *@author Cyrille Piacibello diff --git a/Src/Kernels/Taylor/FTaylorFlopsKernel.hpp b/include/Kernels/Taylor/FTaylorFlopsKernel.hpp similarity index 100% rename from Src/Kernels/Taylor/FTaylorFlopsKernel.hpp rename to include/Kernels/Taylor/FTaylorFlopsKernel.hpp diff --git a/Src/Kernels/Taylor/FTaylorKernel.hpp b/include/Kernels/Taylor/FTaylorKernel.hpp similarity index 100% rename from Src/Kernels/Taylor/FTaylorKernel.hpp rename to include/Kernels/Taylor/FTaylorKernel.hpp diff --git a/Src/Kernels/Taylor/FTaylorKernelSimple.hpp b/include/Kernels/Taylor/FTaylorKernelSimple.hpp similarity index 99% rename from Src/Kernels/Taylor/FTaylorKernelSimple.hpp rename to include/Kernels/Taylor/FTaylorKernelSimple.hpp index c849e281c016b67d6349f8d3cee1dfe8fa4990ed..0b5e8924ac044f23f363a09dbf524dbedfd0b7e4 100644 --- a/Src/Kernels/Taylor/FTaylorKernelSimple.hpp +++ b/include/Kernels/Taylor/FTaylorKernelSimple.hpp @@ -2,11 +2,11 @@ #ifndef FTAYLORKERNEL_HPP #define FTAYLORKERNEL_HPP -#include "../../Components/FAbstractKernels.hpp" -#include "../../Utils/FMemUtils.hpp" -#include "../../Utils/FLog.hpp" +#include "Components/FAbstractKernels.hpp" +#include "Utils/FMemUtils.hpp" +#include "Utils/FLog.hpp" -#include "../P2P/FP2PR.hpp" +#include "Kernels/P2P/FP2PR.hpp" /** * @author Cyrille Piacibello diff --git a/Src/Kernels/Uniform/FAbstractUnifKernel.hpp b/include/Kernels/Uniform/FAbstractUnifKernel.hpp similarity index 100% rename from Src/Kernels/Uniform/FAbstractUnifKernel.hpp rename to include/Kernels/Uniform/FAbstractUnifKernel.hpp diff --git a/Src/Kernels/Uniform/FUnifCell.hpp b/include/Kernels/Uniform/FUnifCell.hpp similarity index 100% rename from Src/Kernels/Uniform/FUnifCell.hpp rename to include/Kernels/Uniform/FUnifCell.hpp diff --git a/Src/Kernels/Uniform/FUnifDenseKernel.hpp b/include/Kernels/Uniform/FUnifDenseKernel.hpp similarity index 97% rename from Src/Kernels/Uniform/FUnifDenseKernel.hpp rename to include/Kernels/Uniform/FUnifDenseKernel.hpp index 7de7b4cbe851256305543dd7b64d92e2502461cd..a6de56ff4604c8c81951f8bc7d801e496c27ddf8 100644 --- a/Src/Kernels/Uniform/FUnifDenseKernel.hpp +++ b/include/Kernels/Uniform/FUnifDenseKernel.hpp @@ -4,12 +4,12 @@ #ifndef FUNIFDENSEKERNEL_HPP #define FUNIFDENSEKERNEL_HPP -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Utils/FSmartPointer.hpp" +#include "Utils/FSmartPointer.hpp" -#include "./FAbstractUnifKernel.hpp" -#include "./FUnifM2LHandler.hpp" +#include "Kernels/Uniform/FAbstractUnifKernel.hpp" +#include "Kernels/Uniform/FUnifM2LHandler.hpp" class FTreeCoordinate; diff --git a/Src/Kernels/Uniform/FUnifInterpolator.hpp b/include/Kernels/Uniform/FUnifInterpolator.hpp similarity index 100% rename from Src/Kernels/Uniform/FUnifInterpolator.hpp rename to include/Kernels/Uniform/FUnifInterpolator.hpp diff --git a/Src/Kernels/Uniform/FUnifKernel.hpp b/include/Kernels/Uniform/FUnifKernel.hpp similarity index 100% rename from Src/Kernels/Uniform/FUnifKernel.hpp rename to include/Kernels/Uniform/FUnifKernel.hpp diff --git a/Src/Kernels/Uniform/FUnifM2LHandler.hpp b/include/Kernels/Uniform/FUnifM2LHandler.hpp similarity index 98% rename from Src/Kernels/Uniform/FUnifM2LHandler.hpp rename to include/Kernels/Uniform/FUnifM2LHandler.hpp index eebbdae48ed76d1446c2c5ac9bdea5f43bfaac6c..9be70a4ea2cff65fb45671ea19af11826024b217 100644 --- a/Src/Kernels/Uniform/FUnifM2LHandler.hpp +++ b/include/Kernels/Uniform/FUnifM2LHandler.hpp @@ -277,12 +277,12 @@ public: { // Perform entrywise product manually for (unsigned int j=0; j<opt_rc; ++j){ -// FX[j].addMul(newFComplex<FReal>(scale*FC[idx*opt_rc + j].real(), -// scale*FC[idx*opt_rc + j].imag()), -// FY[j]); - FX[j] += stdComplex<FReal>(scale*FC[idx*opt_rc + j].real(), - scale*FC[idx*opt_rc + j].imag()) - *FY[j]; + FX[j].addMul(stdComplex<FReal>(scale*FC[idx*opt_rc + j].real(), + scale*FC[idx*opt_rc + j].imag()), + FY[j]); +// FX[j] += stdComplex<FReal>(scale*FC[idx*opt_rc + j].real(), +// scale*FC[idx*opt_rc + j].imag()) +// *FY[j]; } } @@ -463,8 +463,8 @@ public: { // Perform entrywise product manually for (unsigned int j=0; j<opt_rc; ++j){ - // FX[j].addMul(FC[TreeLevel][idx*opt_rc + j],FY[j]); - FX[j] += (FC[TreeLevel][idx*opt_rc + j]*FY[j]); + FX[j].addMul(FC[TreeLevel][idx*opt_rc + j],FY[j]); + // FX[j] += (FC[TreeLevel][idx*opt_rc + j]*FY[j]); } } diff --git a/Src/Kernels/Uniform/FUnifRoots.hpp b/include/Kernels/Uniform/FUnifRoots.hpp similarity index 99% rename from Src/Kernels/Uniform/FUnifRoots.hpp rename to include/Kernels/Uniform/FUnifRoots.hpp index 1e9bd18502486bb389caa84679d1246c4a1294ad..9e1c0aeef21c29dba4e9b41050a8670f03e8ba81 100644 --- a/Src/Kernels/Uniform/FUnifRoots.hpp +++ b/include/Kernels/Uniform/FUnifRoots.hpp @@ -8,8 +8,8 @@ #include <limits> #include <cassert> -#include "../../Utils/FNoCopyable.hpp" -#include "../../Utils/FMath.hpp" +#include "Utils/FNoCopyable.hpp" +#include "Utils/FMath.hpp" #include <array> diff --git a/Src/Kernels/Uniform/FUnifSymM2LHandler.hpp b/include/Kernels/Uniform/FUnifSymM2LHandler.hpp similarity index 98% rename from Src/Kernels/Uniform/FUnifSymM2LHandler.hpp rename to include/Kernels/Uniform/FUnifSymM2LHandler.hpp index 4f7d06b4ec9f83b8c1287a6ce4f05b57cbef643b..9150de79f80c641beb84d5c2f2e405c553b0df4a 100644 --- a/Src/Kernels/Uniform/FUnifSymM2LHandler.hpp +++ b/include/Kernels/Uniform/FUnifSymM2LHandler.hpp @@ -6,14 +6,14 @@ #include <climits> -#include "../../Utils/FBlas.hpp" -#include "../../Utils/FDft.hpp" +#include "Utils/FBlas.hpp" +#include "Utils/FDft.hpp" -#include "../../Utils/FComplex.hpp" +#include "Utils/FComplex.hpp" -#include "./FUnifTensor.hpp" -#include "../Interpolation/FInterpSymmetries.hpp" -#include "./FUnifM2LHandler.hpp" +#include "Kernels/Uniform/FUnifTensor.hpp" +#include "Kernels/Interpolation/FInterpSymmetries.hpp" +#include "Kernels/Uniform/FUnifM2LHandler.hpp" /** * @author Pierre Blanchard (pierre.blanchard@inria.fr) diff --git a/Src/Kernels/Uniform/FUnifTensor.hpp b/include/Kernels/Uniform/FUnifTensor.hpp similarity index 100% rename from Src/Kernels/Uniform/FUnifTensor.hpp rename to include/Kernels/Uniform/FUnifTensor.hpp diff --git a/Src/Kernels/Uniform/FUnifTensorialKernel.hpp b/include/Kernels/Uniform/FUnifTensorialKernel.hpp similarity index 98% rename from Src/Kernels/Uniform/FUnifTensorialKernel.hpp rename to include/Kernels/Uniform/FUnifTensorialKernel.hpp index b206937f6452a25bc1723cd919eda98587e4bc7e..4374b035a77472f352a91a794ea50debfb71c54e 100644 --- a/Src/Kernels/Uniform/FUnifTensorialKernel.hpp +++ b/include/Kernels/Uniform/FUnifTensorialKernel.hpp @@ -4,13 +4,13 @@ #ifndef FUNIFTENSORIALKERNEL_HPP #define FUNIFTENSORIALKERNEL_HPP -#include "../../Utils/FGlobal.hpp" +#include "Utils/FGlobal.hpp" -#include "../../Utils/FSmartPointer.hpp" +#include "Utils/FSmartPointer.hpp" -#include "./FAbstractUnifKernel.hpp" -#include "./FUnifM2LHandler.hpp" -#include "./FUnifTensorialM2LHandler.hpp" //PB: temporary version +#include "Kernels/Uniform/FAbstractUnifKernel.hpp" +#include "Kernels/Uniform/FUnifM2LHandler.hpp" +#include "Kernels/Uniform/FUnifTensorialM2LHandler.hpp" //PB: temporary version class FTreeCoordinate; diff --git a/Src/Kernels/Uniform/FUnifTensorialM2LHandler.hpp b/include/Kernels/Uniform/FUnifTensorialM2LHandler.hpp similarity index 99% rename from Src/Kernels/Uniform/FUnifTensorialM2LHandler.hpp rename to include/Kernels/Uniform/FUnifTensorialM2LHandler.hpp index 64fbd11ebd54bb0654f24a6c3873c90d224cff1c..d0b8dc255438d9d1eff565782feabbd5337b5968 100644 --- a/Src/Kernels/Uniform/FUnifTensorialM2LHandler.hpp +++ b/include/Kernels/Uniform/FUnifTensorialM2LHandler.hpp @@ -502,8 +502,8 @@ public: { // Perform entrywise product manually for (unsigned int j=0; j<opt_rc; ++j){ -// FX[j].addMul(FC[TreeLevel][d][idx*opt_rc + j], FY[j]); - FX[j] += (FC[TreeLevel][d][idx*opt_rc + j]*FY[j]); + FX[j].addMul(FC[TreeLevel][d][idx*opt_rc + j], FY[j]); +// FX[j] += (FC[TreeLevel][d][idx*opt_rc + j]*FY[j]); } } diff --git a/Src/ScalFmmConfig.h.cmake b/include/ScalFmmConfig.h.cmake similarity index 100% rename from Src/ScalFmmConfig.h.cmake rename to include/ScalFmmConfig.h.cmake diff --git a/Src/Utils/FAbstractBalanceAlgorithm.hpp b/include/Utils/FAbstractBalanceAlgorithm.hpp similarity index 100% rename from Src/Utils/FAbstractBalanceAlgorithm.hpp rename to include/Utils/FAbstractBalanceAlgorithm.hpp diff --git a/Src/Utils/FAca.hpp b/include/Utils/FAca.hpp similarity index 100% rename from Src/Utils/FAca.hpp rename to include/Utils/FAca.hpp diff --git a/Src/Utils/FAlgorithmTimers.hpp b/include/Utils/FAlgorithmTimers.hpp similarity index 100% rename from Src/Utils/FAlgorithmTimers.hpp rename to include/Utils/FAlgorithmTimers.hpp diff --git a/Src/Utils/FAlignedAllocator.hpp b/include/Utils/FAlignedAllocator.hpp similarity index 100% rename from Src/Utils/FAlignedAllocator.hpp rename to include/Utils/FAlignedAllocator.hpp diff --git a/Src/Utils/FAlignedMemory.hpp b/include/Utils/FAlignedMemory.hpp similarity index 100% rename from Src/Utils/FAlignedMemory.hpp rename to include/Utils/FAlignedMemory.hpp diff --git a/Src/Utils/FAssert.hpp b/include/Utils/FAssert.hpp similarity index 100% rename from Src/Utils/FAssert.hpp rename to include/Utils/FAssert.hpp diff --git a/Src/Utils/FBinding.hpp b/include/Utils/FBinding.hpp similarity index 100% rename from Src/Utils/FBinding.hpp rename to include/Utils/FBinding.hpp diff --git a/Src/Utils/FBitonicSort.hpp b/include/Utils/FBitonicSort.hpp similarity index 100% rename from Src/Utils/FBitonicSort.hpp rename to include/Utils/FBitonicSort.hpp diff --git a/Src/Utils/FBlas.hpp b/include/Utils/FBlas.hpp similarity index 100% rename from Src/Utils/FBlas.hpp rename to include/Utils/FBlas.hpp diff --git a/Src/Utils/FCompareResults.hpp b/include/Utils/FCompareResults.hpp similarity index 100% rename from Src/Utils/FCompareResults.hpp rename to include/Utils/FCompareResults.hpp diff --git a/Src/Utils/FComplex.hpp b/include/Utils/FComplex.hpp similarity index 100% rename from Src/Utils/FComplex.hpp rename to include/Utils/FComplex.hpp diff --git a/Src/Utils/FConstFuncs.hpp b/include/Utils/FConstFuncs.hpp similarity index 100% rename from Src/Utils/FConstFuncs.hpp rename to include/Utils/FConstFuncs.hpp diff --git a/Src/Utils/FDft.hpp b/include/Utils/FDft.hpp similarity index 99% rename from Src/Utils/FDft.hpp rename to include/Utils/FDft.hpp index 967630bc6ebd8d49d3d1998461007e2e9a70cbd6..00ed5c1f3a46e69fe158b193e3625da08948e448 100644 --- a/Src/Utils/FDft.hpp +++ b/include/Utils/FDft.hpp @@ -17,6 +17,8 @@ #ifdef SCALFMM_USE_ESSL_AS_FFTW #include <fftw3_essl.h> +#elif defined(SCALFMM_USE_MKL_AS_FFTW) +#include <fftw/fftw3.h> #else #include <fftw3.h> #endif diff --git a/Src/Utils/FDoc.hpp b/include/Utils/FDoc.hpp similarity index 100% rename from Src/Utils/FDoc.hpp rename to include/Utils/FDoc.hpp diff --git a/Src/Utils/FEnv.hpp b/include/Utils/FEnv.hpp similarity index 100% rename from Src/Utils/FEnv.hpp rename to include/Utils/FEnv.hpp diff --git a/Src/Utils/FEqualize.hpp b/include/Utils/FEqualize.hpp similarity index 100% rename from Src/Utils/FEqualize.hpp rename to include/Utils/FEqualize.hpp diff --git a/Src/Utils/FFortranMangling.hpp b/include/Utils/FFortranMangling.hpp similarity index 100% rename from Src/Utils/FFortranMangling.hpp rename to include/Utils/FFortranMangling.hpp diff --git a/Src/Utils/FGlobal.hpp b/include/Utils/FGlobal.hpp similarity index 100% rename from Src/Utils/FGlobal.hpp rename to include/Utils/FGlobal.hpp diff --git a/Src/Utils/FGlobalPeriodic.hpp b/include/Utils/FGlobalPeriodic.hpp similarity index 100% rename from Src/Utils/FGlobalPeriodic.hpp rename to include/Utils/FGlobalPeriodic.hpp diff --git a/Src/Utils/FLeafBalance.hpp b/include/Utils/FLeafBalance.hpp similarity index 100% rename from Src/Utils/FLeafBalance.hpp rename to include/Utils/FLeafBalance.hpp diff --git a/Src/Utils/FLog.hpp b/include/Utils/FLog.hpp similarity index 100% rename from Src/Utils/FLog.hpp rename to include/Utils/FLog.hpp diff --git a/Src/Utils/FMath.hpp b/include/Utils/FMath.hpp similarity index 100% rename from Src/Utils/FMath.hpp rename to include/Utils/FMath.hpp diff --git a/Src/Utils/FMemStats.h b/include/Utils/FMemStats.h similarity index 100% rename from Src/Utils/FMemStats.h rename to include/Utils/FMemStats.h diff --git a/Src/Utils/FMemUtils.hpp b/include/Utils/FMemUtils.hpp similarity index 100% rename from Src/Utils/FMemUtils.hpp rename to include/Utils/FMemUtils.hpp diff --git a/Src/Utils/FMpi.hpp b/include/Utils/FMpi.hpp similarity index 100% rename from Src/Utils/FMpi.hpp rename to include/Utils/FMpi.hpp diff --git a/Src/Utils/FNoCopyable.hpp b/include/Utils/FNoCopyable.hpp similarity index 100% rename from Src/Utils/FNoCopyable.hpp rename to include/Utils/FNoCopyable.hpp diff --git a/Src/Utils/FOffetOf.hpp b/include/Utils/FOffetOf.hpp similarity index 100% rename from Src/Utils/FOffetOf.hpp rename to include/Utils/FOffetOf.hpp diff --git a/Src/Utils/FOstreamTuple.hpp b/include/Utils/FOstreamTuple.hpp similarity index 100% rename from Src/Utils/FOstreamTuple.hpp rename to include/Utils/FOstreamTuple.hpp diff --git a/Src/Utils/FParObject.hpp b/include/Utils/FParObject.hpp similarity index 100% rename from Src/Utils/FParObject.hpp rename to include/Utils/FParObject.hpp diff --git a/Src/Utils/FParameterNames.hpp b/include/Utils/FParameterNames.hpp similarity index 100% rename from Src/Utils/FParameterNames.hpp rename to include/Utils/FParameterNames.hpp diff --git a/Src/Utils/FParameters.hpp b/include/Utils/FParameters.hpp similarity index 100% rename from Src/Utils/FParameters.hpp rename to include/Utils/FParameters.hpp diff --git a/Src/Utils/FPartitionsMapping.hpp b/include/Utils/FPartitionsMapping.hpp similarity index 100% rename from Src/Utils/FPartitionsMapping.hpp rename to include/Utils/FPartitionsMapping.hpp diff --git a/Src/Utils/FPoint.hpp b/include/Utils/FPoint.hpp similarity index 100% rename from Src/Utils/FPoint.hpp rename to include/Utils/FPoint.hpp diff --git a/Src/Utils/FQuickSort.hpp b/include/Utils/FQuickSort.hpp similarity index 100% rename from Src/Utils/FQuickSort.hpp rename to include/Utils/FQuickSort.hpp diff --git a/Src/Utils/FQuickSortMpi.hpp b/include/Utils/FQuickSortMpi.hpp similarity index 100% rename from Src/Utils/FQuickSortMpi.hpp rename to include/Utils/FQuickSortMpi.hpp diff --git a/Src/Utils/FRepeatAction.hpp b/include/Utils/FRepeatAction.hpp similarity index 100% rename from Src/Utils/FRepeatAction.hpp rename to include/Utils/FRepeatAction.hpp diff --git a/Src/Utils/FSignalHandler.h b/include/Utils/FSignalHandler.h similarity index 100% rename from Src/Utils/FSignalHandler.h rename to include/Utils/FSignalHandler.h diff --git a/Src/Utils/FSmartPointer.hpp b/include/Utils/FSmartPointer.hpp similarity index 100% rename from Src/Utils/FSmartPointer.hpp rename to include/Utils/FSmartPointer.hpp diff --git a/Src/Utils/FSpherical.hpp b/include/Utils/FSpherical.hpp similarity index 100% rename from Src/Utils/FSpherical.hpp rename to include/Utils/FSpherical.hpp diff --git a/Src/Utils/FStdAlignPolyfill.hpp b/include/Utils/FStdAlignPolyfill.hpp similarity index 100% rename from Src/Utils/FStdAlignPolyfill.hpp rename to include/Utils/FStdAlignPolyfill.hpp diff --git a/Src/Utils/FSvd.hpp b/include/Utils/FSvd.hpp similarity index 100% rename from Src/Utils/FSvd.hpp rename to include/Utils/FSvd.hpp diff --git a/Src/Utils/FTaskTimer.hpp b/include/Utils/FTaskTimer.hpp similarity index 100% rename from Src/Utils/FTaskTimer.hpp rename to include/Utils/FTaskTimer.hpp diff --git a/Src/Utils/FTemplate.hpp b/include/Utils/FTemplate.hpp similarity index 100% rename from Src/Utils/FTemplate.hpp rename to include/Utils/FTemplate.hpp diff --git a/Src/Utils/FTic.hpp b/include/Utils/FTic.hpp similarity index 100% rename from Src/Utils/FTic.hpp rename to include/Utils/FTic.hpp diff --git a/Src/Utils/FTypePack.hpp b/include/Utils/FTypePack.hpp similarity index 100% rename from Src/Utils/FTypePack.hpp rename to include/Utils/FTypePack.hpp diff --git a/Src/Utils/make_unique.hpp b/include/Utils/make_unique.hpp similarity index 100% rename from Src/Utils/make_unique.hpp rename to include/Utils/make_unique.hpp diff --git a/include/Utils/stdComplex.hpp b/include/Utils/stdComplex.hpp new file mode 100644 index 0000000000000000000000000000000000000000..0f254f5eb63bd4f2f8da6108f53695abb5fd73a7 --- /dev/null +++ b/include/Utils/stdComplex.hpp @@ -0,0 +1,51 @@ +// =================================================================================== +// olivier.coulaud@inria.fr, berenger.bramas@inria.fr +// This software is a computer program whose purpose is to compute the FMM. +// +// This software is governed by the CeCILL-C and LGPL licenses and +// abiding by the rules of distribution of free software. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public and CeCILL-C Licenses for more details. +// "http://www.cecill.info". +// "http://www.gnu.org/licenses". +// =================================================================================== +#ifndef STDCOMPLEXE_HPP +#define STDCOMPLEXE_HPP + +#include <complex> +template<typename T> +//using stdComplex = std::complex<T> ; +class stdComplex : public std::complex<T> { +public: + using Base = std::complex<T> ; + using Base::Base ; + + /** Mul other and another and add the result to current complexe + + + */ + /*! + * \brief addMul perform z += other*another without using the function __muldc3 from libgcc. ; + * + * "Without -ffast-math or other, complex multiplication yields a call to the function __muldc3 from libgcc. " + * @see https://stackoverflow.com/questions/42659668/stdcomplex-multiplication-is-extremely-slow + * + * \param other + * \param another + */ + void addMul(const stdComplex<T>& other, const stdComplex<T>& another){ + // this->complex[0] += (other.complex[0] * another.complex[0]) - (other.complex[1] * another.complex[1]); + // this->complex[1] += (other.complex[0] * another.complex[1]) + (other.complex[1] * another.complex[0]); + + T realPart = this->real() + (other.real() * another.real()) - (other.imag() * another.imag()); + T imagPart = this->imag() + (other.real() * another.imag()) + (other.imag() * another.real()); + this->real(realPart) ; + this->imag(imagPart) ; + } +} ; +#endif //STDCOMPLEXE_HPP + + diff --git a/Src/Utils/variadic_container.hpp b/include/Utils/variadic_container.hpp similarity index 100% rename from Src/Utils/variadic_container.hpp rename to include/Utils/variadic_container.hpp diff --git a/Contribs/inria/algorithm/distributed/distribute.hpp b/include/inria/algorithm/distributed/distribute.hpp similarity index 100% rename from Contribs/inria/algorithm/distributed/distribute.hpp rename to include/inria/algorithm/distributed/distribute.hpp diff --git a/Contribs/inria/algorithm/distributed/impl_sort/binary_search.hpp b/include/inria/algorithm/distributed/impl_sort/binary_search.hpp similarity index 100% rename from Contribs/inria/algorithm/distributed/impl_sort/binary_search.hpp rename to include/inria/algorithm/distributed/impl_sort/binary_search.hpp diff --git a/Contribs/inria/algorithm/distributed/mpi.hpp b/include/inria/algorithm/distributed/mpi.hpp similarity index 100% rename from Contribs/inria/algorithm/distributed/mpi.hpp rename to include/inria/algorithm/distributed/mpi.hpp diff --git a/Contribs/inria/algorithm/distributed/sort.hpp b/include/inria/algorithm/distributed/sort.hpp similarity index 100% rename from Contribs/inria/algorithm/distributed/sort.hpp rename to include/inria/algorithm/distributed/sort.hpp diff --git a/Contribs/inria/algorithm/distributed/unique.hpp b/include/inria/algorithm/distributed/unique.hpp similarity index 100% rename from Contribs/inria/algorithm/distributed/unique.hpp rename to include/inria/algorithm/distributed/unique.hpp diff --git a/Contribs/inria/checker.hpp b/include/inria/checker.hpp similarity index 100% rename from Contribs/inria/checker.hpp rename to include/inria/checker.hpp diff --git a/Contribs/inria/ct_array.hpp b/include/inria/ct_array.hpp similarity index 100% rename from Contribs/inria/ct_array.hpp rename to include/inria/ct_array.hpp diff --git a/Contribs/inria/detection_idiom.hpp b/include/inria/detection_idiom.hpp similarity index 100% rename from Contribs/inria/detection_idiom.hpp rename to include/inria/detection_idiom.hpp diff --git a/Contribs/inria/integer_sequence.hpp b/include/inria/integer_sequence.hpp similarity index 98% rename from Contribs/inria/integer_sequence.hpp rename to include/inria/integer_sequence.hpp index d9042ee56eba50d4393e12a79e2660239ed74fd8..ebb859add47fed19996bdf858c46ad2b4243818d 100644 --- a/Contribs/inria/integer_sequence.hpp +++ b/include/inria/integer_sequence.hpp @@ -13,7 +13,7 @@ #if __cplusplus < 201103L -#error "The definition of integer_sequence needs at least c++11." +//#error "The definition of integer_sequence needs at least c++11." #endif diff --git a/Contribs/inria/io.hpp b/include/inria/io.hpp similarity index 100% rename from Contribs/inria/io.hpp rename to include/inria/io.hpp diff --git a/Contribs/inria/linear_tree/balance_tree.hpp b/include/inria/linear_tree/balance_tree.hpp similarity index 100% rename from Contribs/inria/linear_tree/balance_tree.hpp rename to include/inria/linear_tree/balance_tree.hpp diff --git a/Contribs/inria/linear_tree/configuration.hpp b/include/inria/linear_tree/configuration.hpp similarity index 100% rename from Contribs/inria/linear_tree/configuration.hpp rename to include/inria/linear_tree/configuration.hpp diff --git a/Contribs/inria/linear_tree/distributed_regions_to_linear_tree.hpp b/include/inria/linear_tree/distributed_regions_to_linear_tree.hpp similarity index 100% rename from Contribs/inria/linear_tree/distributed_regions_to_linear_tree.hpp rename to include/inria/linear_tree/distributed_regions_to_linear_tree.hpp diff --git a/Contribs/inria/linear_tree/gather_octant_weights.hpp b/include/inria/linear_tree/gather_octant_weights.hpp similarity index 100% rename from Contribs/inria/linear_tree/gather_octant_weights.hpp rename to include/inria/linear_tree/gather_octant_weights.hpp diff --git a/Contribs/inria/linear_tree/linear_tree.hpp b/include/inria/linear_tree/linear_tree.hpp similarity index 100% rename from Contribs/inria/linear_tree/linear_tree.hpp rename to include/inria/linear_tree/linear_tree.hpp diff --git a/Contribs/inria/linear_tree/linearize.hpp b/include/inria/linear_tree/linearize.hpp similarity index 100% rename from Contribs/inria/linear_tree/linearize.hpp rename to include/inria/linear_tree/linearize.hpp diff --git a/Contribs/inria/linear_tree/node.hpp b/include/inria/linear_tree/node.hpp similarity index 100% rename from Contribs/inria/linear_tree/node.hpp rename to include/inria/linear_tree/node.hpp diff --git a/Contribs/inria/linear_tree/node_info_traits.hpp b/include/inria/linear_tree/node_info_traits.hpp similarity index 100% rename from Contribs/inria/linear_tree/node_info_traits.hpp rename to include/inria/linear_tree/node_info_traits.hpp diff --git a/Contribs/inria/linear_tree/region.hpp b/include/inria/linear_tree/region.hpp similarity index 100% rename from Contribs/inria/linear_tree/region.hpp rename to include/inria/linear_tree/region.hpp diff --git a/Contribs/inria/linear_tree/weight_traits.hpp b/include/inria/linear_tree/weight_traits.hpp similarity index 100% rename from Contribs/inria/linear_tree/weight_traits.hpp rename to include/inria/linear_tree/weight_traits.hpp diff --git a/Contribs/inria/logic.hpp b/include/inria/logic.hpp similarity index 100% rename from Contribs/inria/logic.hpp rename to include/inria/logic.hpp diff --git a/Contribs/inria/meta.hpp b/include/inria/meta.hpp similarity index 100% rename from Contribs/inria/meta.hpp rename to include/inria/meta.hpp diff --git a/Contribs/inria/ostream_joiner.hpp b/include/inria/ostream_joiner.hpp similarity index 100% rename from Contribs/inria/ostream_joiner.hpp rename to include/inria/ostream_joiner.hpp diff --git a/Contribs/inria/ostream_typeinfo.hpp b/include/inria/ostream_typeinfo.hpp similarity index 100% rename from Contribs/inria/ostream_typeinfo.hpp rename to include/inria/ostream_typeinfo.hpp diff --git a/Contribs/inria/require_input.hpp b/include/inria/require_input.hpp similarity index 100% rename from Contribs/inria/require_input.hpp rename to include/inria/require_input.hpp diff --git a/Contribs/inria/span.hpp b/include/inria/span.hpp similarity index 100% rename from Contribs/inria/span.hpp rename to include/inria/span.hpp diff --git a/Contribs/inria/tcli/exceptions.hpp b/include/inria/tcli/exceptions.hpp similarity index 100% rename from Contribs/inria/tcli/exceptions.hpp rename to include/inria/tcli/exceptions.hpp diff --git a/Contribs/inria/tcli/help_descriptor.hpp b/include/inria/tcli/help_descriptor.hpp similarity index 100% rename from Contribs/inria/tcli/help_descriptor.hpp rename to include/inria/tcli/help_descriptor.hpp diff --git a/Contribs/inria/tcli/impl_tcli/meta.hpp b/include/inria/tcli/impl_tcli/meta.hpp similarity index 100% rename from Contribs/inria/tcli/impl_tcli/meta.hpp rename to include/inria/tcli/impl_tcli/meta.hpp diff --git a/Contribs/inria/tcli/impl_tcli/parameter_model.hpp b/include/inria/tcli/impl_tcli/parameter_model.hpp similarity index 100% rename from Contribs/inria/tcli/impl_tcli/parameter_model.hpp rename to include/inria/tcli/impl_tcli/parameter_model.hpp diff --git a/Contribs/inria/tcli/impl_tcli/utils.hpp b/include/inria/tcli/impl_tcli/utils.hpp similarity index 100% rename from Contribs/inria/tcli/impl_tcli/utils.hpp rename to include/inria/tcli/impl_tcli/utils.hpp diff --git a/Contribs/inria/tcli/tcli.hpp b/include/inria/tcli/tcli.hpp similarity index 100% rename from Contribs/inria/tcli/tcli.hpp rename to include/inria/tcli/tcli.hpp diff --git a/Contribs/inria/utils.hpp b/include/inria/utils.hpp similarity index 100% rename from Contribs/inria/utils.hpp rename to include/inria/utils.hpp diff --git a/Contribs/inria/version.hpp b/include/inria/version.hpp similarity index 100% rename from Contribs/inria/version.hpp rename to include/inria/version.hpp diff --git a/Contribs/json.hpp b/include/json.hpp similarity index 100% rename from Contribs/json.hpp rename to include/json.hpp diff --git a/scalfmmConfig.cmake.in b/scalfmmConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..247a22f91a3ab1bff8f0cda5c73c408617dd6d25 --- /dev/null +++ b/scalfmmConfig.cmake.in @@ -0,0 +1,26 @@ +#----------------------------------------------------------------------------- +# +# SCALFMMConfig.cmake - SCALFMM CMake configuration file for external projects. +# +# This file is configured by SCALFMM and used by the SCALFMM.cmake module +# to load SCALFMM's settings for an external project. +# + +@PACKAGE_INIT@ + +if(NOT TARGET @PROJECT_NAME@::@PROJECT_NAME@) + list(APPEND CMAKE_MODULE_PATH "@MORSE_CMAKE_MODULE_PATH@/find") + set(IMPORTED_LIBS @SCALFMM_LIBRARIES@) + set(BLA_VENDOR @BLA_VENDOR@) + include(CMakeFindDependencyMacro) + foreach(lib IN LISTS IMPORTED_LIBS) + find_dependency(${lib}) + if(NOT ${lib}_FOUND) + message(FATAL_ERROR "MISSING ${lib} DEPENDENCY !") + else() + message(STATUS "Found ${lib} dependency.") + endif() + endforeach() + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") +endif() + diff --git a/Src/Utils/FAlgorithmTimers.cpp b/src/FAlgorithmTimers.cpp similarity index 92% rename from Src/Utils/FAlgorithmTimers.cpp rename to src/FAlgorithmTimers.cpp index b30b4e04fd720a359b685f7b79dc3212895224fb..c1e23ed171b6abba3600b4ecbc2bf93fb16bb329 100644 --- a/Src/Utils/FAlgorithmTimers.cpp +++ b/src/FAlgorithmTimers.cpp @@ -1,4 +1,4 @@ -#include "FAlgorithmTimers.hpp" +#include <Utils/FAlgorithmTimers.hpp> constexpr const char* FAlgorithmTimers::P2MTimer; constexpr const char* FAlgorithmTimers::M2MTimer; diff --git a/Src/Utils/FLog.cpp b/src/FLog.cpp similarity index 84% rename from Src/Utils/FLog.cpp rename to src/FLog.cpp index f4542e1ff87872be8802afcff5eebfe15d63a773..95fe52333e6830ffba720583314089bde12640f2 100644 --- a/Src/Utils/FLog.cpp +++ b/src/FLog.cpp @@ -1,6 +1,6 @@ // See LICENCE file at project root -#include "FLog.hpp" +#include <Utils/FLog.hpp> #ifdef SCALFMM_USE_LOG diff --git a/Src/Utils/FMemStats.cpp b/src/FMemStats.cpp similarity index 98% rename from Src/Utils/FMemStats.cpp rename to src/FMemStats.cpp index 760b61b0a1652def264b255bf023409b605c7d0f..0e9f629f1fc817da91b9a9dcc18ecc100281f1d2 100644 --- a/Src/Utils/FMemStats.cpp +++ b/src/FMemStats.cpp @@ -1,5 +1,5 @@ // See LICENCE file at project root -#include "FMemStats.h" +#include <Utils/FMemStats.h> FMemStats FMemStats::controler; diff --git a/Src/Utils/FMpi.cpp b/src/FMpi.cpp similarity index 62% rename from Src/Utils/FMpi.cpp rename to src/FMpi.cpp index 6ca6e5021eef41e0cd7ed1a902ddb264a7807da7..a8fc30efff4ee64ad0d818a650dac98abb421490 100644 --- a/Src/Utils/FMpi.cpp +++ b/src/FMpi.cpp @@ -1,5 +1,5 @@ // @FUSE_MPI -#include "Utils/FMpi.hpp" +#include <Utils/FMpi.hpp> int FMpi::instanceCount = 0; diff --git a/Src/Utils/FSignalHandler.cpp b/src/FSignalHandler.cpp similarity index 97% rename from Src/Utils/FSignalHandler.cpp rename to src/FSignalHandler.cpp index 3a17d84f3d2f486777217168e4ecc5c82f07e853..3662180b635bdeda0182711e8ce7d294be57fc6e 100644 --- a/Src/Utils/FSignalHandler.cpp +++ b/src/FSignalHandler.cpp @@ -6,8 +6,8 @@ * the trace is print when a signal is caught. */ -#include "FGlobal.hpp" -#include "FSignalHandler.h" +#include <Utils/FGlobal.hpp> +#include <Utils/FSignalHandler.h> //< Singleton/Controler of the signal system.