Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

New release of DualSPHysics v4.0
  • Dear SPH colleagues,

    It has taken a lot of time and work but, finally, we are pleased to announce the release of DualSPHysics v4.0 that includes the C++ and CUDA source files of the SPH solver.

    To download the DualSPHysics package, documentation and source files, visit the DualSPHysics website There, you will find these new files:

    o DualSPHysics_v4.0_GUIDE.pdf
    o XML_GUIDE_v4.0.pdf
    o PostprocessingCalculations_v4.0.pdf
    o ExternalModelsConversion_GUIDE.pdf

    News in the current release:
    - Source files with GPL license.
    - Complete documentation using Doxygen.
    - New CPU structure that mimics the GPU threads.
    - OpenMP is now optimized for execution in multi-core CPU machines; an efficiency of 94% is achieved using 32 cores.
    - New automatic estimation of the optimum block size of CUDA kernels.
    - Implementation using double precision where necessary.
    - Improved formulation for adding external forces (now includes all relative rotational acceleration terms)
    - A prescribed movement can be loaded from an external file with defined rotation time series like already exists for translation.
    - Source files of the coupled SPH & DEM.
    - Executable of the Multi-Phase code for soil-water (source code to following v4.2)
    - Novel Shifting algorithm.
    - Automatic wave generation (regular and random waves).
    - More powerful GenCase.
    - The new postprocessing tool ComputeForces is provided to compute the force exerted by the fluid onto a solid object (fixed or floating
    - The new code FloatingInfo allows to obtain different variables of interest of the floating objects during the simulation; positions of the center, linear velocity, angular velocity, motions (surge, sway and heave) and angles of rotation (pitch, roll and yaw).
    - New version allows user to define intervals of time with different output time to save results.
    - Post-processing tools are now designed to deal with variables defined by the user.

    Developed by:
    Universidade de Vigo, Spain: Dr José M. Domínguez, Dr Alejandro J.C. Crespo, Dr Anxo Barreiro, Professor Moncho Gómez Gesteira
    The University of Manchester, UK: Dr Benedict D. Rogers, Dr Georgios Fourtakas, Dr Athanasios Mokos
    Science & Technology Facilities Council, UK: Dr Stephen Longshaw
    Instituto Superior Tecnico, Lisbon, Portugal: Dr Ricardo Canelas
    Università degli studi di Parma, Italy: Dr Renato Vacondio
    Universiteit Gent - Flanders Hydraulics Research, Belgium: Dr Corrado Altomare
    EPHYTECH SL, Spain: Orlando G. Feal

    Please do not hesitate to contact us to this email account ( if you have any questions.

    Further questions you may have can be answered in the FAQ of the website

    Best regards,

    DualSPHysics team.

  • Eagerly anticipated! Congratulations on your hard work.

    Is it to be assumed that DPI is no longer developed along DualSPHysics?
    Can it still be used to create basic XML cases or there are compability issues now? Of course to use the new features it will be have to be with an manually edited XML.
  • DPI is no longer developed. We are planning to workin in a whole user friendly interface that will be developed next year.

    However now we have included a new XML_guide that explains all options to create and configure new cases. We invite users to learn how to create new XML always starting from the examples we have provided.

  • Hi,

    Well done on the new release! I'm trying to implement my changes on the new version and have a few questions regarding variables related with density values:

    - what's the different between Velrhopc, velrhopc, velrhop, rhop and rhopc?
    - what's the equivalent to Rhop[p] and where can I change this array in the new version? Velrhopc[p] at JSphCpuSingle.cpp seems to have problems with variable type when I compile the makefile.

    Also, I'm assuming OverRhop0 doesn't exist in the new version. Instead you compute directly by means of RhopZero. Is this correct?

  • First you can take a look to the source code where some comments and definition of the variables are addressed. The code is not as much documented as we would like but it can help you at first. Then please send to us your questions and we will reply without problem

  • The files PostprocessingCalculations_v4.0.pdf and ExternalModelsConversion_GUIDE.pdf referred to in your post don't appear to be available from the download page given. Are they available somewhere else, or yet to be released?

  • Hi,

    I checked the units for the variables at the EoS and I noticed that DualSPHysics uses meters for CteB. Shouldn't it be kg/m.s² instead? Also, there's 3 orders of magnitude difference between what I get analytically and what I get from DualSPHysics. Could you explain the units and how you compute CteB? Thanks!

    B = Cso² x Rho0 / Gamma

    RhoZero = 1000 Kg/m³
    gamma = 7.0
    Cs = 1482 m/s

    CteB (analytical) = 3.14E+02 kg/m.s²
    CteB (DSPH) = 4.43E+05 m

  • Good point.
    Let us check it

    Can you also please send to us the file "Case.out" which is the log file generated by GenCase. There we can see the value of Cs you are using and how it was computed to obtain the value of CteB (DSPH)

  • Just emailed the file! Thanks.
  • As replied in the email, the problem is that you have not defined in the XML the Cs you want and Cs was automatically computed starting from dam celerity.

    Note that you can always specify the speed of sound you want by:
    speedsound value="1482" auto="false" comment="Speed of sound to use in the simulation (by default speedofsound=coefsound*speedsystem)"

    What we have to fix is the units of cteB.

  • Hi, much thanks for the new release

    I however encountered a compatibility issue when I tried to compile the code under Ubuntu 16.04.

    The gcc I have is 5.3.1, its linker cannot reference the functions in the static libraries - libjformat2, libjxml, etc. - you provided.

    Can you specify which version of gcc you used for the static library compilation? Or can you provide the static libraries compiled with newer version of gcc?

    Much thanks
  • Hi Suyuanhang,

    you should use GCC version 4.9

    Newer versions are not officially supported by Nvidia CUDA 7.5. So we decided not support them in this release.

  • Thanks, g++-4.9 works
  • Hello,

    Can this new release work with CUDA 8.0?

  • Hi Wentao,

    I run CUDA 8.0 and have had no trouble using the DualSPHysics executables. I haven't been successful with compiling DualSPHysics with CUDA 8.0 for Linux, but others have had success compiling for Windows using CUDA 8.0. You may be interested in this conversation: