dmalhotra / pvfmm

A parallel kernel-independent FMM library for particle and volume potentials
http://pvfmm.org
GNU Lesser General Public License v3.0
51 stars 28 forks source link

no include sctl.hpp #16

Closed cccchou closed 3 months ago

cccchou commented 3 months ago

when i compile the library, it shows no include sctl.hpp, how can i solve this issue? /home/alex/dev/pvfmm/include/pvfmm_common.hpp:64:10: fatal error: sctl.hpp: No such file or directory 64 | #include | ^~~~~~ compilation terminated.

dmalhotra commented 3 months ago

You might need to also load the git submodule with this command: git submodule update --init --recursive

cccchou commented 3 months ago

i had added SCTL.cpp to the usr/include,but now it has variety problems: [ 3%] Building CXX object CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o [ 6%] Building CXX object CMakeFiles/pvfmm.dir/src/device_wrapper.cpp.o [ 10%] Building CXX object CMakeFiles/pvfmm.dir/src/legendre_rule.cpp.o [ 13%] Building CXX object CMakeFiles/pvfmm.dir/src/mem_mgr.cpp.o [ 16%] Building CXX object CMakeFiles/pvfmm.dir/src/mortonid.cpp.o [ 20%] Building CXX object CMakeFiles/pvfmm.dir/src/profile.cpp.o [ 23%] Building CXX object CMakeFiles/pvfmm.dir/src/pvfmm-wrapper.cpp.o [ 26%] Building CXX object CMakeFiles/pvfmm.dir/src/tree_node.cpp.o [ 30%] Linking CXX shared library libpvfmm.so /usr/bin/ld: CMakeFiles/pvfmm.dir/src/device_wrapper.cpp.o: in function sctl::VTUData::test()': device_wrapper.cpp:(.text+0x0): multiple definition ofsctl::VTUData::test()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x0): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/device_wrapper.cpp.o: in function sctl::FFT<double>::~FFT()': device_wrapper.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/device_wrapper.cpp.o: in function sctl::FFT<double>::~FFT()': device_wrapper.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/device_wrapper.cpp.o: in function sctl::FFT<double>::Setup(sctl::FFT_Type, long, sctl::Vector<long> const&, long)': device_wrapper.cpp:(.text+0x382): multiple definition ofsctl::FFT::Setup(sctl::FFT_Type, long, sctl::Vector const&, long)'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x382): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/device_wrapper.cpp.o: in function sctl::FFT<double>::Execute(sctl::Vector<double> const&, sctl::Vector<double>&) const': device_wrapper.cpp:(.text+0x1050): multiple definition ofsctl::FFT::Execute(sctl::Vector const&, sctl::Vector&) const'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x1050): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mem_mgr.cpp.o: in function sctl::VTUData::test()': mem_mgr.cpp:(.text+0x0): multiple definition ofsctl::VTUData::test()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x0): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mem_mgr.cpp.o: in function sctl::FFT<double>::~FFT()': mem_mgr.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mem_mgr.cpp.o: in function sctl::FFT<double>::~FFT()': mem_mgr.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mem_mgr.cpp.o: in function sctl::FFT<double>::Setup(sctl::FFT_Type, long, sctl::Vector<long> const&, long)': mem_mgr.cpp:(.text+0x382): multiple definition ofsctl::FFT::Setup(sctl::FFT_Type, long, sctl::Vector const&, long)'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x382): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mem_mgr.cpp.o: in function sctl::FFT<double>::Execute(sctl::Vector<double> const&, sctl::Vector<double>&) const': mem_mgr.cpp:(.text+0x1050): multiple definition ofsctl::FFT::Execute(sctl::Vector const&, sctl::Vector&) const'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x1050): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mortonid.cpp.o: in function sctl::VTUData::test()': mortonid.cpp:(.text+0x0): multiple definition ofsctl::VTUData::test()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x0): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mortonid.cpp.o: in function sctl::FFT<double>::~FFT()': mortonid.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mortonid.cpp.o: in function sctl::FFT<double>::~FFT()': mortonid.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mortonid.cpp.o: in function sctl::FFT<double>::Setup(sctl::FFT_Type, long, sctl::Vector<long> const&, long)': mortonid.cpp:(.text+0x382): multiple definition ofsctl::FFT::Setup(sctl::FFT_Type, long, sctl::Vector const&, long)'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x382): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/mortonid.cpp.o: in function sctl::FFT<double>::Execute(sctl::Vector<double> const&, sctl::Vector<double>&) const': mortonid.cpp:(.text+0x1050): multiple definition ofsctl::FFT::Execute(sctl::Vector const&, sctl::Vector&) const'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x1050): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/profile.cpp.o: in function sctl::VTUData::test()': profile.cpp:(.text+0x0): multiple definition ofsctl::VTUData::test()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x0): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/profile.cpp.o: in function sctl::FFT<double>::~FFT()': profile.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/profile.cpp.o: in function sctl::FFT<double>::~FFT()': profile.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/profile.cpp.o: in function sctl::FFT<double>::Setup(sctl::FFT_Type, long, sctl::Vector<long> const&, long)': profile.cpp:(.text+0x382): multiple definition ofsctl::FFT::Setup(sctl::FFT_Type, long, sctl::Vector const&, long)'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x382): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/profile.cpp.o: in function sctl::FFT<double>::Execute(sctl::Vector<double> const&, sctl::Vector<double>&) const': profile.cpp:(.text+0x1050): multiple definition ofsctl::FFT::Execute(sctl::Vector const&, sctl::Vector&) const'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x1050): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/pvfmm-wrapper.cpp.o: in function sctl::VTUData::test()': pvfmm-wrapper.cpp:(.text+0x0): multiple definition ofsctl::VTUData::test()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x0): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/pvfmm-wrapper.cpp.o: in function sctl::FFT<double>::~FFT()': pvfmm-wrapper.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/pvfmm-wrapper.cpp.o: in function sctl::FFT<double>::~FFT()': pvfmm-wrapper.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/pvfmm-wrapper.cpp.o: in function sctl::FFT<double>::Setup(sctl::FFT_Type, long, sctl::Vector<long> const&, long)': pvfmm-wrapper.cpp:(.text+0x382): multiple definition ofsctl::FFT::Setup(sctl::FFT_Type, long, sctl::Vector const&, long)'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x382): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/pvfmm-wrapper.cpp.o: in function sctl::FFT<double>::Execute(sctl::Vector<double> const&, sctl::Vector<double>&) const': pvfmm-wrapper.cpp:(.text+0x1050): multiple definition ofsctl::FFT::Execute(sctl::Vector const&, sctl::Vector&) const'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x1050): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/tree_node.cpp.o: in function sctl::VTUData::test()': tree_node.cpp:(.text+0x0): multiple definition ofsctl::VTUData::test()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x0): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/tree_node.cpp.o: in function sctl::FFT<double>::~FFT()': tree_node.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/tree_node.cpp.o: in function sctl::FFT<double>::~FFT()': tree_node.cpp:(.text+0x324): multiple definition ofsctl::FFT::~FFT()'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x324): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/tree_node.cpp.o: in function sctl::FFT<double>::Setup(sctl::FFT_Type, long, sctl::Vector<long> const&, long)': tree_node.cpp:(.text+0x382): multiple definition ofsctl::FFT::Setup(sctl::FFT_Type, long, sctl::Vector const&, long)'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x382): first defined here /usr/bin/ld: CMakeFiles/pvfmm.dir/src/tree_node.cpp.o: in function sctl::FFT<double>::Execute(sctl::Vector<double> const&, sctl::Vector<double>&) const': tree_node.cpp:(.text+0x1050): multiple definition ofsctl::FFT::Execute(sctl::Vector const&, sctl::Vector&) const'; CMakeFiles/pvfmm.dir/src/cheb_utils.cpp.o:cheb_utils.cpp:(.text+0x1050): first defined here collect2: error: ld returned 1 exit status make[2]: [CMakeFiles/pvfmm.dir/build.make:216: libpvfmm.so] Error 1 make[1]: [CMakeFiles/Makefile2:112: CMakeFiles/pvfmm.dir/all] Error 2 make: *** [Makefile:136: all] Error 2

dmalhotra commented 3 months ago

I have updated PVFMM and SCTL to fix those errors. See if it works for you now.

cccchou commented 3 months ago

I have updated PVFMM and SCTL to fix those errors. See if it works for you now.

Yes i compiled successfully. but i have a question: when i compile the example2 from /examples/src, it shows no fftw_mkl.hpp, how can i resolve it ?

dmalhotra commented 3 months ago

Do you mean "fftw3_mkl.h"? The header file should come with the Intel MKL library. You can try to find the file on your machine and provide the path to the compiler using the flag "-I "