Linux configuration

Hello, I have been using DualSPHysics in windows but now I am trying to configure it in Linux (Debian).

I can execute GenCase without problem. When I try to run DualSPhysics5.0 there is an error:

"error while loading shared libraries: libdsphchrono.so: cannot open shared object file: No such file or directory"

The file is in the folder src/lib/linux_gcc but Linux does not find it. Why? How can I solve it ?


Thank you all for your help

Comments

  • Did you make sure to set "export dirbin=..." to the right path in your bash file?

  • As a workaround you can also use the binaries which are contained in the DesignSPHysics from github. The are precompiled and at least for Ubuntu 20.04 / 22.04 they work without any compilation.

    So far I was not able to compile the newest versions of DualSPHysics from github in Linux. I am not sure on which environment they are compiling it, but the Installation steps in the README.txt are not working for me so I am sticking to the workaround.

  • When you launch the DualSPHysics executable make sure the path of the dynamic libraries (libdsphchrono.so & libChronoEngine.so) are in the environmental variable LD_LIBRARY_PATH. To do that, execute export LD_LIBRARY_PATH=DualSPHysics/bin/linux. Otherwise you can execute your case through a shell-script following the example provided in the folder DualSPHysics/examples/main/01_DamBreak.

  • edited June 28


    Firstly I had to disable the compute_30 flag for nvcc. Otherwise it would not let me compile at all.

    Then with the latest github commit I get:


    [ 44%] Building NVCC (Device) object CMakeFiles/DualSPHysics5.0_linux64.dir/DualSPHysics5.0_linux64_generated_JCellDivGpuSingle_ker.cu.o
    nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
    nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
    /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’:
     435 |        function(_Functor&& __f)
         |                                                                                                                                                ^ 
    /usr/include/c++/11/bits/std_function.h:435:145: note:        ‘_ArgTypes’
    /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’:
     530 |        operator=(_Functor&& __f)
         |                                                                                                                                                 ^ 
    /usr/include/c++/11/bits/std_function.h:530:146: note:        ‘_ArgTypes’
    CMake Error at DualSPHysics5.0_linux64_generated_JCellDivGpuSingle_ker.cu.o.cmake:280 (message):
     Error generating file
     /home/fafs/Dev/DualSPHysics/src/source/build/CMakeFiles/DualSPHysics5.0_linux64.dir//./DualSPHysics5.0_linux64_generated_JCellDivGpuSingle_ker.cu.o
    


    I have:

    • Ubuntu 22.04
    • Cuda 11.5
    • gcc 11.2


    Kind regards,

    Faro

  • Hello @zweihuehner , the problem is that Cuda 11.5 is not allowed to compile the code yet. Yo have to use Cuda 9.2

    Regards

Sign In or Register to comment.