Coder Social home page Coder Social logo

dualsphysics / dualsphysics Goto Github PK

View Code? Open in Web Editor NEW
532.0 55.0 191.0 1.28 GB

C++/CUDA/OpenMP based Smoothed Particle Hydrodynamics (SPH) Solver

License: GNU Lesser General Public License v2.1

C++ 85.49% Cuda 12.24% Makefile 0.21% C 1.79% Batchfile 0.01% Shell 0.01% CMake 0.27%

dualsphysics's Introduction


DualSPHysics
DualSPHysics

DualSPHysics is based on the Smoothed Particle Hydrodynamics model named SPHysics.

The code is developed to study free-surface flow phenomena where Eulerian methods can be difficult to apply, such as waves or impact of dam-breaks on off-shore structures. DualSPHysics is a set of C++, CUDA and Java codes designed to deal with real-life engineering problems.

Instructions for regular users

If you only want a copy of DualSPHysics to create and run cases in your system, you probably want the full DualSPHysics package from the official website. There you will find documentation and packages of different versions for different Operating Systems.

It is possible that you want the latest version in this repository that is not yet uploaded in the official web page. In this case check the Building the project section to build an executable.

Have in mind that DualSPHysics needs a case already created to execute the SPH solver, so you need to use GenCase, which is included the main package on the DualSPHysics webpage.

If you need help check out the wiki for this project.

Instructions for developers

If you are a developer and want to use this code check the following guides.

Take into account that for pre- and post-processing you will need to use GenCase and the different post-processing tools included in the main DualSPHysics package, here. If you compile your own DualSPHyiscs version just overwrite the one in the package.

Developing a modified version to fit your own needs.

You can fork this repository and change or add anything you want. Keep in mind that your changes will not be taken into account into the main versions. If your objective is to implement your changes/improvements to the main code, check the next section.

Developing a modified or improved version to contribute to the project.

We appreciate your efforts! But please, if you are trying to develop/implement a functionality to be added to the main repository, be sure to follow the steps described in the CONTRIBUTING.md file.

Building the project

Microsoft Windows

This application is being developed in Visual Studio Community 2022 since it is free and compatible with CUDA 11.7 (download web). The repository contains project files.

Make sure that you install the CUDA SDK beforehand if you want to compile the GPU version, and configure the Visual Studio project to point to the CUDA libraries directory to compile (now prepared for CUDA 11.7).

You can also use the Makefile. It is possible that you'll need to edit it. Check the GNU/Linux guide on how to compile if you're using the makefile, as it is mostly the same, just installing the things manually by yourself.

GNU/Linux

Using Makefile

You can build the project in GNU/Linux using the Makefile included in the source folder. Follow these steps (for the GPU version):

  1. Clone this repository into your system git clone https://github.com/DualSPHysics/DualSPHysics.git
  2. In a terminal, go to the folder cd DualSPHysics/src/source/
  3. Edit the Makefile file with a text editor and then:
    • Set the DIRTOOLKIT variable with the path to CUDA in your system e.g. DIRTOOLKIT=/opt/cuda
    • Make sure that your G++ compiler version is compatible with the CUDA version installed in your system (e.g. CUDA 11.7 supports G++ versions up to 11.x). If you want to use an specific version, you should modify the variable CC, for example: CC=/usr/local/bin/g++-11
  4. Execute make clean to make sure the environment is clean and ready to compile.
  5. Execute make

After compiling you should see a message like --- Compiled Release GPU/CPU version ---. Go to bin/linux/ to check that DualSPHyiscs5.2_linux64 or DualSPHyiscs5.2CPU_linux64 is there and build correctly.

For the CPU version: If you want to compile de CPU version just ignore CUDA and use the makefile Makefile_cpu. To specify a different file to make, use the -f parameter: make -f Makefile_cpu

Using CMake

Alternatively you can use CMake to compile DualSPHysics following these steps:

  1. Clone this repository into your system git clone https://github.com/DualSPHysics/DualSPHysics.git
  2. In a terminal, go to the folder cd DualSPHysics/src/source/
  3. Create a temporal directory were the build files will be placed mkdir build
  4. Make sure that your GCC compiler version is compatible with the CUDA version installed in your system (e.g. CUDA 11.7 supports G++ versions up to 11.x). If you want to use an specific version, you should modify the environment variable CC and CXX, for example: export CC=/usr/local/bin/gcc-11; export CXX=/usr/local/bin/g++11
  5. Go to the build folder and execute cmake cd build; cmake ..
  6. Execute make

If CUDA is not installed in your system, only the CPU version will be compiled.

If you want the binaries be placed into bin/linux directory, just type make install

Graphical user interface (GUI)

DualSPHysics

Please check DesignSPHysics website.

Advanced visualisation with Blender

DualSPHysics

Please check VisualSPHysics website.

Contributing

Please read CONTRIBUTING.md if you want to make changes to the code.

Authors and people involved

  • Dr Jose M. Dominguez Alonso - Main Developer
  • Dr Alejandro J.C. Crespo
  • Prof. Moncho Gomez Gesteira
  • Prof. Benedict D. Rogers
  • Dr Georgios Fourtakas
  • Prof. Peter Stansby
  • Dr Renato Vacondio
  • Dr Corrado Altomare
  • Dr Angelo Tafuni
  • Orlando Garcia Feal
  • Ivan Martinez Estevez
  • Dr Joseph O'Connor
  • Dr Aaron English

Former people involved

  • Dr Jose Gonzalez Cao
  • Dr Ricardo Canelas
  • Dr Athanasios Mokos
  • Dr Stephen Longshaw
  • Dr Anxo Barreiro

See also the list of contributors who participated in this project.

License

This project is licensed under the LGPL License - see the LICENSE file for details.

dualsphysics's People

Contributors

alexbexe avatar amgebauer avatar ammyg avatar dualsphysics avatar gfourtakas avatar iarba27 avatar imestevez avatar jmdalonso avatar rbcanelas avatar rodland avatar sph-tudelft-nl avatar zlotny avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dualsphysics's Issues

Couldn‘t load project file "DualSPHysics4Re.vcxproj"

Excuse me.
When I open "\DualSPHysics_v4.4\src\VS\DualSPHysics4Re_vs2015.sln" with VS, the program reports "project load failed"“Couldn‘t load project file "DualSPHysics4Re.vcxproj" ” and "Couldn't find project file “C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\CUDA 9.2.props”", why? Is CUDA necessary for CPU version ?And what should I do to run this program?
I run the program with VS 2015 on the Windows platform.
Looking forward for your help! Thank you

Source code for JWaveGen and JFormatFiles2?

Have you published the source code for JWaveGen and JFormatFiles2 that I might have missed? That would be great to open up the CMake to truly open source so we could compile this with more compilers and not limited to the ones you provide libs for...

CODE_SIZE4 complie error

Because many floating objects need to be analyzed, CODE_SIZE4 in DualSphDef.h was activated. Then I compiled the files. However, an error occurred in JDebugSphGpu.cpp (JDebugSphGpu::LoadParticlesData).
When CODE_SIZE4 was disabled, it was compiled without any problem.

<boundcorr>: mkbound as an XML attribute does not support using a range

Recently I've been testing DualSPHysics 4.3 beta and stumbled on the following situation:

            <boundcorr>
                <determlimit value="1e-3" comment="Use 1e-3 for first_order or 1e+3 for zeroth_order (default=1e-3)" />
                <extrapolatemode value="3" comment="Calculation mode for rhop extrapolation from ghost nodes 1:fast-single, 2:single, 3:double (default=1)" />
                <!-- direction is defined and limitpoint is calculated automatically (for sloping surfaces). -->
                <mkzone mkbound="10-15">
                    <autolimitpoint dpfactor="0.5" comment="Point is calculated starting from bound particles at distance dp*dpfactor" />
                    <direction x="1" y="0" z="0" comment="Direction to fluid" />
                </mkzone>
            </boundcorr>

Notice the mkbound="10-15" entry for the mkzone. However, only after several simulations did I notice that it was only applying the setting to the first bound:

BoundCorr configuration:
DetermLimit....: 0.001 (1st order)
ExtrapolateMode: Double
MkZone_0 (mkbound:10)
  Limit position.: (-0.255,0,-0.425) (automatic)
  Fluid direction: (1,0,0)

I used this at first, because I thought that based on what other similar structures were using, e.g.:

        <floatings>
            <floating mkbound="0-3" relativeweight="0.5" />
        </floatings>

or for example:

        <properties>
                <links>
                    <link mk="62-79" property="hard-wood+water" />
                </links>
        </properties>

Therefore, this report is to request that either:

  1. The application complains and stops if it finds an unsupported range for at least the <boundcorr>.
  2. Or that this range is also supported for <boundcorr>.

D

D

bi4 binary file

It will be very useful if I could read and modify BINX binary files. (e.g Case.obi4, Partxxx.bi4 files.)
How can I do this?
If it was impossible, is there any reason why?

Thank you.

IBM Power Server (ppc64le) Compilation?

I'm trying to compile in a IBM Power8 server (redhat linux) and Cuda 10.1, but I have build errors with some already compiled libraries (libjbuffer_64.a, libjformatfiles2_64.a, libjsphmotion_64.a and libjwavegen_64.a). If possible that you provide this libraries compiled for ppc64le architecture or the source code to compile by my own?

Thanks

/usr/bin/ld: skipping incompatible .//libjxml_64.a when searching for -ljxml_64
/usr/bin/ld: cannot find -ljxml_64
/usr/bin/ld: skipping incompatible .//libjformatfiles2_64.a when searching for -ljformatfiles2_64
/usr/bin/ld: cannot find -ljformatfiles2_64
/usr/bin/ld: skipping incompatible .//libjsphmotion_64.a when searching for -ljsphmotion_64
/usr/bin/ld: cannot find -ljsphmotion_64
/usr/bin/ld: skipping incompatible .//libjwavegen_64.a when searching for -ljwavegen_64
/usr/bin/ld: cannot find -ljwavegen_64

Is parallel GPU processing possible?

Is it possible to run a single simulation on multiple GPU?

I am running into memory limits from my current GPU. If the answer is no, I did see that running in parallel on CPU is an option.

MeasureBoxes4_linux64 is missing!

Hi,

First and foremost, thanks a lot for publishing this package as an open-source!

I am trying to build the docker image from the files provided in the master branch but one of the executables, i.e. MeasureBoxes4_linux64 is apparently missing. Is it possible to provide it? if not how is it going to affect the performance?

Thank you for your time beforehand

Regards

Define Constants window can not be opened

After clicking the Define Constants button, nothing happens and no dialog box appears. The error window says:

*** Exception (JSphCpuSingle::VisuConfig)
Text: Constant 'b' cannot be zero.
'b' is zero when fluid height is zero (or fluid particles were not created)

Finished execution (code=1).

The Define Constants window cannot be opened, so I cannot set this ‘b’ constant.

Compiling over Supercomputer

Hello Team,
My name is Neel Shah,
I am working on DualSPHyiscs, and trying to compiling the Makefile.
Initially I was facing with "FLT_MAX?" error, but recently I was able to eliminate that error by defining the "#define FLT_MAX 1E+37".
But I am facing some error generated while compiling like:- "DBL_MAX?" and further more (1).
I tried to define DBL_MAX using "#define DBL_MAX 1E+37", but it generated different error (2)
Could you please help me out to compile the code further?
Thank you
PFA:-

  1. I have attached the SS for the generated Errors.
    1
  2. SS of error generated after defining DBL_MAX.
    2

I have tried to copy the images but I don't know why it is not showing up.
If possible, please let me know the email so that I can email you the Makefile as well as the ScreenShots.

Thank you.

Is there any way to export DEM contact force?

Hi, I'm learning the software and trying to export the DEM contact force from the official example many floatings to plot some diagrams.

I have tried the FloatingInfo code. However, the output of it only include velocities and motion behaviors of the floatings.

I also have also tried ComputeForces and MeasureTool but the results are all zero. I guess these two programs can only deal with fluid behaviors, and no fluid is included in this example.

Is there any way to export contact force between floatings? or between floating and wall?

Chrono example Dam break cubes

Hi,
My query is related to the coefficient of friction used in the example of dam break cubes given for chrono. The example uses the coefficient of friction for PVC as 0.15 and is validated against the experimental data of Canelas et al. (2016) who has used the coefficient of friction 0.45
Please comment.

Boundary Particles excluded in DEM contact

Hi,

I am exploring the DEM capability of DualSPHyisics and I tried to make some modification of one of the example of DualSPHysics v4.4: CaseManyFloatings. The modification is in the case definition xml file I changed the sphere materials into all steels. However, I soon found out that the solution is not stable and the following error popped up:
"*** ERROR: Some boundary particle was excluded. ***
TimeStep: 0.233614 (Nstep: 8201)
Total boundary: 12 (fixed=0 moving=0 floating=12)
Excluded for: position=0 rhop=0 velocity=12

*** Exception (JSphGpuSingle::AbortBoundOut)
Text: Fixed, moving or floating particles were excluded. Check VTK file Error_BoundaryOut.vtk with excluded particles."

Would anyone mind helping me with how I can modify the parameters so that the solution for this DEM interation is stable? I have attached the zip file with the case definition xml file, the material properties xml file, and the batch file that I used (may have to change location of DualSPHysics directory).

Thank you for your time!
CaseManyFloatings.zip

Periodic Boundary Condition

DualSPHysics allows implementing the periodic boundary condition but I am unable to find anything relevant in the xml guide or in the examples.
Any help available??

Can not compile on Linux

Hey, this project is super awesome ! And I am going to use it on my graduation project. But when I tried to recompile DualSPHysics (the cpu version) on Linux (Ubuntu 16.04 LTS) using g++ (version 7.1.0), and I got some errors, I tried both this version and the official webpage.

Error

This is the full log: Error Log

How can I make it works ? Thanks !

Viscosity an Reynolds number

So
first off all i would like to thank you for perfect organized workshop in Ourense
let say ive just started to deciphe xml case files and would like to ask

  1. which one viscosity is used regarding to Reynolds number in FlowCylinder cas files
    2.As i have to go in my case to higher Reynolds numbers 5000-10000 do you have some more info about turbulence model implemented in application (like validation articles)

regards Grigor

Example/Guide for Inlet Code Modification

Hello!

I recently finished going through the "Developing on DualSPHysics" powerpoint and successfully implemented temperature per the guide. I was able to determine the required additional updates to the V4.4 code to implement temperature, but now I would like to do the same with inlets.

Do you have any tips, suggestions, or guides I could reference in order to make modifications to the inlet code files to support temperature? If so it would save me some time and I would greatly appreciate it.

Thank you!

GenCase

Excuse me, why do I use gencase for preprocessing? There are no mov.dat, forces.csv, case_all.vtk, case_bound.vtk and case_fluid.vtk in the output file. Who can tell the reason

Documentation: Issue with unreleased papers

Make it so that unreleased papers are marked as such, for example currently English et. al. 2019 seems to not have been released.

I guess it could be with a simple * behind the reference?

Kind regards

need help in changing 2D XML file with a 3D geometry

Hi all,
I need help in changing parameters of a 2D testcase into 3D testcase. I wanted to know which of the parameters are required to be changed in the XML file of the 2D testcase to make it run for a 3D testcase.

kind regards,
Muhammad Awais Zaman

Chrono - bodymoving problem

For Chrono, bodyfixed and bodyfloating work well.
However, in the case of bodymoving, it is included in the code but ends with a warning on execution.
Is this a problem of Chrono or a problem of DualSPHysics?
If I ignore this warning and execute it, will I get the wrong result?

How to run a testcase DamBreak

I just started using DualSPHysics as a beginner and I wanted to run a testcase Dambreak but I could not. Can someone wrote down the step wise procedure how to do it ? I read the manual but it does not help me because I don't understand how to start with it.

Regards,

Simulation error when setting the irregular motion of piston

Hi, I can't run the simulation when I set the motion of piston to be irregular,and the spectrum is Jonswap. The error is:
“*** Exception (JXml::ErrReadElement)
Text: Error reading xml - Element 'spectrum' is invalid.
File: E:/DualSPHysicsProjects/1205-WAVEPISTON-ASWS-test/1205-WAVEPISTON-ASWS-test_out/1205-WAVEPISTON-ASWS-test.xml(row:82)

Finished execution (code=1).”
I really need some help, thank you very much.

Coupling multiple rot/lin motion data files within timeline

Dear all, I just wanted to verify that it is currently not possible to add multiple motion files (recorded test-bench motion) to the motion setup and run them in parallel (e.g. rot around x, rot around y etc.)? Is there a workaround wrt. to the introduction of real-world data for respective SPH analysis? Thanks and best regards, Richard

Makefile in repository does not compile DualSPHysics from package

From https://github.com/DualSPHysics/DualSPHysics/blob/master/README.md#instructions-for-developers, one reads Take into account that for pre- and post-processing you will need to use GenCase and the different post-processing tools included in the main DualSPHysics package, here. If you compile your own DualSPHyiscs version just overwrite the one in the package.

My evidence is that overwriting the package-sourced Makefile with the git-based Makefile leads to a compile error (no rule found for a certain target). The two Makefiles are different. I suggest rephrasing the above in a way that the handling of Makefiles across the two access routes to DualSPHysics is clarified, and/or the two Makefiles are aligned so as to work either way.

As of now, the Makefile in the package is fine and, with the appropriate adjustments to local specifics, compiles successfully; the Makefile in the repository requires object files found in the package instead , hence the adjustments should be deeper than just adjusting to the local computer settings (say editing the list of object file target etc).

Coupling with CHRONO

Hello,

That's not an issue as much as it is a question directed to the developers:

I wish to calculate the deflection of a solid structure due to fluid force, I understand one possibility would be to use a hinge with a restoring force (from the examples).

However, I am more interested in 2 way coupling for fluid-solid interaction for flexible beams !! is it already implemented in the latest version?

thanks in advance,
Joe

Error in NL construction

I am getting the following error:

*** Exception (JCellDivGpuSingle::Divide)
Text: Error in NL construction. (CUDA error: an illegal memory access was encountered).

What is the reason? The issue shouldn't be about GPU compatibility because I am using GeForce MX250 which has a compute compatibility of 6.1 and should work for CUDA SDK 9.0 – 9.2.
The problem does not occur for constant velocity but for variable velocity. I am using 1.6 million particles.

Define Constants window cannot be opened

After clicking the Define Constants button, nothing happens and no dialog box appears. The error window says:

*** Exception (JSphCpuSingle::VisuConfig)
Text: Constant 'b' cannot be zero.
'b' is zero when fluid height is zero (or fluid particles were not created)

Finished execution (code=1).

The Define Constants window cannot be opened, so I cannot set this ‘b’ constant.

Why xml file cannot be opened?

I am a greenhand.
After finishing the xml file and running the bat file, the bat file shows "Text: Cannot load the xml file: Failed to open file (row:0 col:0)". So why xml file cannot be opened.

Modified execution doesn't work in cmd.exe

Dear All,
I modified the code of DualSPHysics with the example which set the temperature in SPH. The modified code was compilied successfully on Visual Studio 2015, and I get the .exe file. Then I used the modified execution file to calculation the example in /example/main/01_DamBreak. The xml file was changed and included the parameters of temperature. But the Command Prompt stop when DualSPHysics_cpu was open. The information shown in Command Prompt is limited as we can see from the picture, and I don't know the reason why DualSPHysics does not work. Does anyone know the reason of the problem? Thanks.
微信图片_20200306183314

cuda compilation error

Hello!
When I try to build a solution in VS2015, I'm getting the following errors that I wasn't getting before

Error 'cl.exe' died with status 0xC000012D DualSPHysics
Error MSB3721 The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\bin\nvcc.exe" -gencode=arch=compute_30,code="sm_30,compute_30" -gencode=arch=compute_35,code="sm_35,compute_35" -gencode=arch=compute_50,code="sm_50,compute_50" -gencode=arch=compute_52,code="sm_52,compute_52" -gencode=arch=compute_61,code="sm_61,compute_61" -gencode=arch=compute_70,code="sm_70,compute_70" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include" --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static -use_fast_math -Xcompiler "/wd 4267" -D_WITHGPU -DWIN32 -D_CONSOLE -D_VC80_UPGRADE=0x0710 -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /FdIntermediate/DualSPHysics_Release_x64/vc140.pdb /FS /Zi /MT " -o Intermediate/DualSPHysics_Release_x64/JGauge_ker.cu.obj "C:\Users\drk\OneDrive\Documents\DSPH_Solver\DualSPHysics-master\src\source\JGauge_ker.cu"" exited with code 1. DualSPHysics C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 9.2.targets 712

Could you please help me with this?

Help needed in modification of a case for aluminium as fluid

I am new to this program I want to use SPH method in molding process, so my question is that:
1-is it possible to run the case with Aluminium instead of water and if you have any data related to that modification. kindly share that.
2- In case of molding after sometime the material solidifies, is it possible to create the same case in Dualsphysics.

Error: cannot open *.stl file

*.out file shows this error and does not generate *vtk files:

MAIN

*** Exception (JStlFile::IsBinaryFile)
Text: Cannot open the file.
File: Compound.stl

I am using the latest DesignSPHysics macro 0.5.1.1906-04
How can this be fixed

Part_Head.ibi4 file not found in data directory ?

Dear all,
I have done the simulations with one of the case study and DualSPHysics shows that simulations finished but for post processing it shows an error indicating that Part_head.ibi4 file not found in data directory but I can see the file in the data folder. can anybody tells me what is this problem ?
regards,
Muhammad Awais Zaman

Geometry size mass and properties

So my next question arrives i would like to simulate ship in waves you can see attached picture KCS geometry is used with initial size length of 230 meters.
As you know its important to predict scale effects in this case and i need the real size of geometry used in simulation to calculate these effects by postprocessing and to define mass properties by preprocessing. The written code is for importing geometry is:
<setmkbound mk="50" /> <drawfilestl file="KCS.stl"> <drawscale x="0.002" y="0.002" z="0.002" /> </drawfilestl> <move x="10.0" y="0.0" z="0.5" /> <rotate ang="0.0" x="-0.0" y="-0.0" z="-1.0" /> <shapeout file="Floater" reset="true" />
And to define floating body:
<floatings> <floating mkbound="50" relativeweight ="14.41"> <center x="7.27" y="0" z="0.33" /> <!-- <inertia x="27.6" y="14.8" z="13.1" />--> </floating> </floatings>

and when i start simulation the ship starts to sink So apparently the mass is not propper
as the paraview doesnt give possibility to measure geometry the question appears:
what is the ship scale and let say ship length?

tnks in advance

speck 0293

Cuda version

I am using Nvidia Geforce 1080 Ti but still getting the following error:
*** Exception: Failed getting devices info. (CUDA error at ..\source\FunctionsCuda.cpp:132 code=35(CUDA driver version is insufficient for CUDA runtime version))
The compute capability is 6.1 and should be working for cuda9.2. What else could be the reason?

coupling dualsphysics with moordyn

Dear Prof.
I am very interested in the research about how to couple DualSPHysics with MoorDyn. f. To date, I have completed the work on the combining DualSPHysics and MoorDyn DLL. According to the post processing results, It can be seen clearly that the motion of floating body can be limited indeed. But I don’t know how to visualize the mooring lines.Could you give me some suggestions on how to visualize these mooring lines based on the coupling between DualSPHysics and MoorDyn.

Separate binaries from source code

It is generally bad to combine source and binaries in the same repository, as well as including external binary dependencies (such as cuda) with it. Doing this causes issues with compatibility, building, and development, among other potential issues. It also increases the size of the repository. For github in particular, binary releases can still be distributed via the releases feature, without putting the binaries into the git repo. This is also related to #7 as it is silly to include only the binaries for some of your own code, as this makes it difficult to compile and precludes people from improving your code (which is part of the point for open sourcing software...). CUDA in particular most definitely should not be included with the software in this manner, as it can cause conflicts on many systems. For instance, one cluster we would be potentially using this on at my institution does not currently have new enough drivers for cuda 9.2 and even if it did, this software should always defer to the system's installed cuda version.

JWaveGen and JFormatFiles2 lib for VS2017

Hi guys,

Could you provide the .lib files of JWaveGen and JFormatFiles2 for the vs 2017?

I'm recently using vs 2017 in windows 10 for building the code and I couldn't have these two libs for compilation.

Thanks in advance!

Clean up the build process and repository structure

the repository should follow a more standard structure. This will make both development and building more straightforward, which will in turn make this software more accessible for users and those interested in development. One build/configuration system should be used, rather than multiple. CMake is probably the best choice for this, as it supports all of the desired platforms and more. Having a single build system will simplify maintenance of the project overall. related to #12 and #7

03_WavesMoorings3D Windows and Linux

So
i continue with my case at the end i have successfull imorted KCS geometry and applied body mass properties. After model was prepared in Windows (it works under windos) i would like to move on Centos7 28 cores server mashine by using CPU power and some issues appear i seems like the solver does not evaluate iso surface.
For test i started xCaseMoorings3D_linux64_CPU.sh and wCaseMoorings3D_win64_CPU.bat it works under windows unlike on Linux the same issue appears
Untitled
regards Grigor

Porting to HIP/ROCm (for AMD GPU and heterogeneous computing support)

First of all, thank you for this great project!

I want to ask if there are any plans for porting CUDA code to ROCm https://github.com/RadeonOpenCompute/ROCm ?

There are at least 2 reasons for such port:

a)support for AMD GPU's
b)support for heterogeneous computing with CPU's and GPU's working together seamlessly

I ran examine tool as shown in the porting manual https://github.com/RadeonOpenCompute/ROCm_Documentation/blob/master/Programming_Guides/HIP-porting-guide.rst and got:

DualSPHysics/SOURCE/DualSPHysics/Source$ hipexamine-perl.sh .
info: converted 1 CUDA->HIP refs( dev:0 mem:0 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:1 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:43 in './JObjectGpu.h'
info: converted 5 CUDA->HIP refs( dev:0 mem:0 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:5 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:48 in './JObjectGpu.cpp'
info: converted 1 CUDA->HIP refs( dev:0 mem:0 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:1 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:269 in './JSphGpu.h'
info: converted 39 CUDA->HIP refs( dev:0 mem:2 kern:4 coord_func:26 math_func:0 special_func:1 stream:0 event:0 err:4 def:0 tex:0 extern_shared:2 other:0 ) warn:0 LOC:218 in './JWaveOrder2_ker.cu'
info: converted 27 CUDA->HIP refs( dev:2 mem:8 kern:0 coord_func:0 math_func:0 special_func:0 stream:6 event:11 err:0 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:173 in './FunctionsCuda.h'
  warning: ./FunctionsCuda.cpp:#141 :   cudaRuntimeGetVersion(&runtimeVersion);
info: converted 73 CUDA->HIP refs( dev:15 mem:54 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:4 def:0 tex:0 extern_shared:0 other:0 ) warn:1 LOC:603 in './FunctionsCuda.cpp'
info: converted 26 CUDA->HIP refs( dev:0 mem:20 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:6 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:485 in './JCellDivGpu.cpp'
info: converted 152 CUDA->HIP refs( dev:5 mem:142 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:5 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:1456 in './JSphGpu.cpp'
info: converted 6 CUDA->HIP refs( dev:0 mem:0 kern:0 coord_func:0 math_func:0 special_func:0 stream:6 event:0 err:0 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:73 in './JReduSum_ker.h'
  warning: ./JTimerCuda.h:#23 : //:#   de tiempo mediante la GPU usando cudaEvent de CUDA. (10-01-2011)
  warning: ./JTimerCuda.h:#37 : /// \brief Defines a class to measure short time intervals on the GPU using cudaEvent.
info: converted 9 CUDA->HIP refs( dev:0 mem:0 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:9 err:0 def:0 tex:0 extern_shared:0 other:0 ) warn:2 LOC:73 in './JTimerCuda.h'
info: converted 14 CUDA->HIP refs( dev:0 mem:0 kern:2 coord_func:12 math_func:0 special_func:0 stream:0 event:0 err:0 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:131 in './JCellDivGpuSingle_ker.cu'
info: converted 74 CUDA->HIP refs( dev:0 mem:24 kern:3 coord_func:30 math_func:0 special_func:1 stream:9 event:0 err:4 def:0 tex:0 extern_shared:3 other:0 ) warn:0 LOC:565 in './JReduSum_ker.cu'
info: converted 169 CUDA->HIP refs( dev:0 mem:22 kern:13 coord_func:125 math_func:0 special_func:1 stream:0 event:0 err:0 def:0 tex:0 extern_shared:8 other:0 ) warn:0 LOC:925 in './JCellDivGpu_ker.cu'
info: converted 3 CUDA->HIP refs( dev:0 mem:3 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:0 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:233 in './JArraysGpu.cpp'
  warning: ./JSphGpu_ker.cu:#939 :     cudaOccupancyMaxPotentialBlockSize(&mingridsize,&qblocksize,(void*)ptr,0,0);
  warning: ./JSphGpu_ker.cu:#940 :     struct cudaFuncAttributes attr;
  warning: ./JSphGpu_ker.cu:#941 :     cudaFuncGetAttributes(&attr,(void*)ptr);
  warning: ./JSphGpu_ker.cu:#951 :     cudaOccupancyMaxPotentialBlockSize(&mingridsize,&qblocksize,(void*)ptr,0,0);
  warning: ./JSphGpu_ker.cu:#952 :     struct cudaFuncAttributes attr;
  warning: ./JSphGpu_ker.cu:#953 :     cudaFuncGetAttributes(&attr,(void*)ptr);
  warning: ./JSphGpu_ker.cu:#1291 :     cudaOccupancyMaxPotentialBlockSize(&mingridsize,&qblocksize,(void*)ptr,0,0);
  warning: ./JSphGpu_ker.cu:#1292 :     struct cudaFuncAttributes attr;
  warning: ./JSphGpu_ker.cu:#1293 :     cudaFuncGetAttributes(&attr,(void*)ptr);
info: converted 344 CUDA->HIP refs( dev:0 mem:13 kern:60 coord_func:238 math_func:0 special_func:1 stream:0 event:18 err:10 def:0 tex:0 extern_shared:4 other:0 ) warn:9 LOC:2879 in './JSphGpu_ker.cu'
info: converted 9 CUDA->HIP refs( dev:0 mem:4 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:5 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:473 in './JGauge.cpp'
info: converted 9 CUDA->HIP refs( dev:0 mem:9 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:0 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:732 in './JSphGpuSingle.cpp'
info: converted 1 CUDA->HIP refs( dev:0 mem:0 kern:0 coord_func:0 math_func:0 special_func:0 stream:0 event:0 err:1 def:0 tex:0 extern_shared:0 other:0 ) warn:0 LOC:192 in './JGauge.h'
info: converted 21 CUDA->HIP refs( dev:0 mem:0 kern:2 coord_func:13 math_func:0 special_func:1 stream:0 event:0 err:4 def:0 tex:0 extern_shared:1 other:0 ) warn:0 LOC:315 in './JGauge_ker.cu'

info: TOTAL-converted 983 CUDA->HIP refs( dev:22 mem:301 kern:84 coord_func:444 math_func:0 special_func:5 stream:21 event:38 err:50 def:0 tex:0 extern_shared:18 other:0 ) warn:12 LOC:49391
  warning: unconverted cudaFuncAttributes : 3
  warning: unconverted cudaOccupancyMaxPotentialBlockSize : 3
  warning: unconverted cudaFuncGetAttributes : 3
  warning: unconverted cudaEvent : 2
  warning: unconverted cudaRuntimeGetVersion : 1
  kernels (6 total) :   KerComputeDampingPla(1)  KerInteractionGaugeVel(1)  KerCalcPosition1(1)  KerPreSortFluid(1)  KerSortDataParticles(1)  KerReduSumUint(1)

The tool converted 983 refs automatically but there are still 12 unconverted refs that have to be converted by the developer.


Some background/case study about porting to ROCm by CAFFE developer https://www.youtube.com/watch?v=I7AfQ730Zwc

Unable to use <boundcorr> on floating objects

I've been testing with DualSPHysics 4.3 beta and the new Chrono + boundary correction features, in hope to solve the issue of hydrophobic effects that occur when there are moving boundaries. Unfortunately it doesn't allow us to use said boundary correction with floating objects.

At first I was thinking about providing a complete test case that reproduces this issue, but then I looked into the example cases provided with DualSPHysics 4.3 and examples/chrono/08_WaterMill is the closest one to what I've being trying to simulate with.

In the following images it's possible to see a section cut (used the Clip filter in ParaView) on the moving buckets solid and particle renders, along with the uncut fluid particles (I used parallel view to avoid perspective errors):
animation_side 0122
animation_side 0136
animation_side 0149

And as we can see, there is at least a 1 particle-width of distance between the fluid and solid and it's not because the bucket is sort-of dropping down.

So the question here is: Would it be possible to extend the boundary correction algorithm to floating objects?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.