diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a1313f96891a8c32c78040fec78d32776bd286d..fc7647c1c05230229e079e4208514913e7846602 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,7 +139,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse/ message(STATUS "CXX ${CMAKE_CXX_COMPILER_ID}" ) # Set scalfmm to default libraries set(SCALFMM_LIBRARIES "") - set(SCALFMM_CXX_FLAGS "-std=c++11 -fpic -Wall") + set(SCALFMM_CXX_FLAGS "-std=c++14 -fpic -Wall") # # # Test if openmp is here @@ -173,7 +173,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse/ ENDIF (CPUOPTION_SSE42) else(APPLE) set(AVX_FLAGS "-march=native -axCORE-AVX2,CORE-AVX-I,AVX") #-mavx - set(AVX2_FLAGS "-march=native -axCORE-AVX2,CORE-AVX-I") #-march=core-avx2 + set(AVX2_FLAGS "-march=native -axCORE-AVX2,CORE-AVX-I,AVX") #-march=core-avx2 set(SSE_FLAGS "-axSSE4.2 -march=native") endif(APPLE) #-Wshadow -Wpointer-arith -Wcast-qual -Wconversion -Wall -Wnosign-conversion ") @@ -800,7 +800,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse/ # # Generate ScalFmmConfig.h # - set(SCALFMM_COMPILE_FLAGS "${SCALFMM_CXX_FLAGS} ${CMAKE_CXX_FLAGS_TYPE} ${CMAKE_CXX_FLAGS}") + 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 "") @@ -954,6 +954,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse/ message(STATUS "SCALFMM_USE_FFT = ${SCALFMM_USE_FFT}") message(STATUS "SCALFMM_USE_MKL = ${SCALFMM_USE_MKL}") # + 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}") diff --git a/Examples/CMakeLists.txt b/Examples/CMakeLists.txt index c01af575183406afbea9f53920d318a925ccf664..36551cdedc6a9eab6a4cb9ebed118488af4f2d73 100644 --- a/Examples/CMakeLists.txt +++ b/Examples/CMakeLists.txt @@ -6,7 +6,7 @@ endif(insource) project(EXAMPLES_SCALFMM CXX) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE}) -ADD_DEFINITIONS( ${ScaLFMM_CXX_FLAGS}) +#ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS}) # Find all code files file( GLOB_RECURSE diff --git a/Examples/ChebyshevInterpolationFMM.cpp b/Examples/ChebyshevInterpolationFMM.cpp index 73629f8921dff730be016fcd985d61dd6d224f4a..eaeed92c9fa68b48c8cbb9280c1968061d40b328 100644 --- a/Examples/ChebyshevInterpolationFMM.cpp +++ b/Examples/ChebyshevInterpolationFMM.cpp @@ -72,7 +72,7 @@ int main(int argc, char* argv[]) FParameterDefinitions::NbThreads); - const std::string defaultFile(/*SCALFMMDataPath+*/"Data/unitCubeXYZQ100.bfma" ); + const std::string defaultFile(SCALFMMDataPath+"unitCubeXYZQ100.bfma" ); const std::string filename = FParameters::getStr(argc,argv,FParameterDefinitions::InputFile.options, defaultFile.c_str()); const unsigned int TreeHeight = FParameters::getValue(argc, argv, FParameterDefinitions::OctreeHeight.options, 5); const unsigned int SubTreeHeight = FParameters::getValue(argc, argv, FParameterDefinitions::OctreeSubHeight.options, 2); @@ -111,7 +111,7 @@ int main(int argc, char* argv[]) typedef FChebCell CellClass; typedef FOctree OctreeClass; // - typedef FInterpMatrixKernelR MatrixKernelClass; + typedef FInterpMatrixKernelR MatrixKernelClass; const MatrixKernelClass MatrixKernel; typedef FChebSymKernel KernelClass; // diff --git a/Src/Kernels/Chebyshev/FChebCmpKernel.hpp b/Src/Kernels/Chebyshev/FChebCmpKernel.hpp index c057866c431053fa8bd197b8d5b7dac2b09e0f24..5bc6be0c399ced54a18694eb68e6e46a28cf1680 100644 --- a/Src/Kernels/Chebyshev/FChebCmpKernel.hpp +++ b/Src/Kernels/Chebyshev/FChebCmpKernel.hpp @@ -17,8 +17,8 @@ // "http://www.cecill.info". // "http://www.gnu.org/licenses". // =================================================================================== -#ifndef FCHEBKERNEL_HPP -#define FCHEBKERNEL_HPP +#ifndef FCHEBCMPKERNEL_HPP +#define FCHEBCMPKERNEL_HPP #include "../../Utils/FGlobal.hpp" diff --git a/Src/Kernels/Chebyshev/FChebCmpM2LHandler.hpp b/Src/Kernels/Chebyshev/FChebCmpM2LHandler.hpp index b17d7b072210848a970c13ced94553a27e83f7fb..583c0f94b8dc663f38ab68ec326e15ce8ea3329f 100644 --- a/Src/Kernels/Chebyshev/FChebCmpM2LHandler.hpp +++ b/Src/Kernels/Chebyshev/FChebCmpM2LHandler.hpp @@ -17,8 +17,8 @@ // "http://www.cecill.info". // "http://www.gnu.org/licenses". // =================================================================================== -#ifndef FCHEBM2LHANDLER_HPP -#define FCHEBM2LHANDLER_HPP +#ifndef FCHEBCMPM2LHANDLER_HPP +#define FCHEBCMPM2LHANDLER_HPP #include #include diff --git a/UTests/utestChebyshev.cpp b/UTests/utestChebyshev.cpp index 9c5b4476bb18d1b45960940d8de91c81f11b6ec6..f6b04aae7eeaabd6cd62e07e537f86afcfe6cc64 100644 --- a/UTests/utestChebyshev.cpp +++ b/UTests/utestChebyshev.cpp @@ -29,6 +29,7 @@ #include "Kernels/Chebyshev/FChebCell.hpp" #include "Kernels/Interpolation/FInterpMatrixKernel.hpp" #include "Kernels/Chebyshev/FChebKernel.hpp" +#include "Kernels/Chebyshev/FChebCmpKernel.hpp" #include "Kernels/Chebyshev/FChebSymKernel.hpp" #include "Kernels/P2P/FP2PParticleContainerIndexed.hpp" @@ -63,6 +64,23 @@ class TestChebyshevDirect : public FUKernelTester { return std::unique_ptr(new KernelClass(NbLevels, boxWidth, centerOfBox, MatrixKernel)); }); } + /** TestChebKernel */ + void TestChebKernelCmp(){ + typedef double FReal; + const unsigned int ORDER = 6; + typedef FP2PParticleContainerIndexed ContainerClass; + typedef FSimpleLeaf LeafClass; + typedef FInterpMatrixKernelR MatrixKernelClass; + typedef FChebCell CellClass; + typedef FOctree OctreeClass; + typedef FChebCmpKernel KernelClass; + typedef FFmmAlgorithm FmmClass; + // run test + RunTest( + [&](int NbLevels, FReal boxWidth, FPoint centerOfBox, const MatrixKernelClass *const MatrixKernel){ + return std::unique_ptr(new KernelClass(NbLevels, boxWidth, centerOfBox, MatrixKernel)); + }); + } /** TestChebSymKernel */ void TestChebSymKernel(){ @@ -91,6 +109,7 @@ class TestChebyshevDirect : public FUKernelTester { /** set test */ void SetTests(){ AddTest(&TestChebyshevDirect::TestChebKernel,"Test Chebyshev Kernel with one big SVD"); + AddTest(&TestChebyshevDirect::TestChebKernelCmp,"Test Chebyshev Kernel with 16 small SVDs"); AddTest(&TestChebyshevDirect::TestChebSymKernel,"Test Chebyshev Kernel with 16 small SVDs and symmetries"); } };