# A simple test : entry water of a sphere . Can not get the accuracy and right result.

edited November 2018
Hi guys：
These days I am trying to simulate a simple process: a sphere (radius=0.0127m rhop=860kg/m3) fall from the air with velocity of -1.93m/s .the position is above the water 0.06m. and the impact speed is 2.17m/s。
According to the experiment result, the maximum depth is 7.5cm. but my result is 5.5cm in my simulation.I have tried to modified all the parameters but the results is not good. So I want to know if the program can simulate the model exactly or the force applied to the floating may be wrong.

my model like this:

lattice bound="1" fluid="1" />
gravity x="0" y="0" z="-9.81" comment="Gravitational acceleration" units_comment="m/s^2" />
rhop0 value="1000" comment="Reference density of the fluid" units_comment="kg/m^3" />
hswl value="0" auto="true" comment="Maximum still water level to calculate speedofsound using coefsound" units_comment="metres (m)" />
gamma value="7" comment="Polytropic constant for water used in the state equation" />
speedsystem value="0" auto="true" comment="Maximum system speed (by default the dam-break propagation is used)" />
coefsound value="30" comment="Coefficient to multiply speedsystem" />
speedsound value="0" auto="true" comment="Speed of sound to use in the simulation (by default speedofsound=coefsound*speedsystem)" />
coefh value="1.0" comment="Coefficient to calculate the smoothing length (h=coefh*sqrt(3*dp^2) in 3D)" />
cflnumber value="0.2" comment="Coefficient to multiply dt" />
/constantsdef>
mkconfig boundcount="240" fluidcount="10" />
geometry>
definition dp="0.003" units_comment="metres (m)">
pointmin x="-0.05" y="-0.05" z="-0.05" />
pointmax x="0.25" y="0.25" z="0.35" />
/definition>
commands>
mainlist>
setshapemode>dp | bound
setdrawmode mode="full" />
setmkfluid mk="0" />
drawbox>
boxfill>solid
point x="0" y="0" z="0" />
size x="0.2" y="0.2" z="0.21" />
/drawbox>
setshapemode>dp | real | bound
setdrawmode mode="face" />
setmkbound mk="0" />
drawbox>
boxfill>bottom | left | right | front | back
point x="0" y="0" z="0" />
size x="0.2" y="0.2" z="0.3" />
/drawbox>
setdrawmode mode="full" />
move x="0" y="0" z="0" />
setmkbound mk="51" />
point x="0.1" y="0.1" z="0.2727" />
/drawsphere>
shapeout file="" reset="true" />
/mainlist>
/commands>
/geometry>
floatings>
floating mkbound="51-68" relativeweight="0.86" property="hard-wood" >
velini x="0" y="0" z="-1.95"/>
/floating>
/floatings>

parameters>
parameter key="PosDouble" value="1" comment="Precision in particle interaction 0:Simple, 1:Double, 2:Uses and saves double (default=0)" />
parameter key="StepAlgorithm" value="2" comment="Step Algorithm 1:Verlet, 2:Symplectic (def=1)" />
parameter key="VerletSteps" value="40" comment="Verlet only: Number of steps to apply Eulerian equations (def=40)" />
parameter key="Kernel" value="2" comment="Interaction Kernel 1:Cubic Spline, 2:Wendland (def=1)" />
parameter key="ViscoTreatment" value="1" comment="Viscosity Formulation 1:Artificial, 2:Laminar+SPS (def=1)" />
parameter key="Visco" value="0.000001" comment="Viscosity value" />
parameter key="ViscoBoundFactor" value="1" comment="Multiply viscosity value with boundary (default=1)" />
parameter key="DeltaSPH" value="0.1" comment="DeltaSPH value, 0.1 is the typical value, with 0 disabled (def=0)" />
parameter key="#Shifting" value="0" comment="Shifting mode 0:None, 1:Ignore bound, 2:Ignore fixed, 3:Full (default=0)" />
parameter key="#ShiftCoef" value="-2" comment="Coefficient for shifting computation (default=-2)" />
parameter key="#ShiftTFS" value="1.5" comment="Threshold to detect free surface. Typically 1.5 for 2D and 2.75 for 3D (default=0)" />
parameter key="RigidAlgorithm" value="1" comment="Rigid Algorithm 1:SPH, 2:DEM (default=1)" />
parameter key="FtPause" value="0.00" comment="Time to freeze the floatings at simulation start (warmup) (def=0)" />
parameter key="DtIni" value="0.000001" comment="Initial time step" />
parameter key="#DtMin" value="0.0000001" comment="Minimum time step (def=0.00001)" />
parameter key="DtAllParticles" value="0" comment="Velocity of particles used to calculate DT. 1:All, 0:Only fluid/floating (default=0)" />
parameter key="TimeMax" value="1.5" comment="Time of simulation" />
parameter key="TimeOut" value="0.001" comment="Time between output files" />
parameter key="IncZ" value="0.2" comment="Increase of Z+" />
parameter key="PartsOutMax" value="1" comment="%/100 of fluid particles allowed to be excluded from domain (default=1)" units_comment="decimal" />
parameter key="RhopOutMin" value="700" comment="Minimum rhop valid (default=700)" units_comment="kg/m^3" />
parameter key="RhopOutMax" value="1300" comment="Maximum rhop valid (default=1300)" units_comment="kg/m^3" />
/parameters>
/execution>
/case>

Hope to get some suggestion ,Please.

Regards

• Hi,

I've worked a bit with floatings and I had some buoyancy problems as well (object that were supposed to sink were in fact floating).

I think it could be caused by the dynamic boundaries conditions formulation. One of its consequenses is that it creates a gap between boundaries (and floatings) and liquid, thus increasing the apparent volume of the floating and so its apparent density.

The DSPH team gave the following formula to estimate the gap
Gap=1.5 x coefh x (3 x dp^2)^(1/2)

So in your case,
Rsphere_wanted = 0.0127 m => Vsphere_wanted = 0.0086 mL
dp=0.003 m => Gap=0.0078 m => Rsphere_real = 0.020 m => Vsphere_real = 0.036 mL
So in the liquid your sphere apparently takes 4.2 more space than expected.

Also representing a sphere of r=0.0127m by dp=0.003 implies a huge approximation of the geometry. You should check the resolution used in a similar test that was validated by data by the DSPH team =>"CaseFloatingSphereVal2D"

If I were you I would
1) decrease dp as much as possible (maybe reduce your case to a 2D one as a first approximation)
2) then adjust the radius of the sphere according to the gap and define its mass with massbody=rhop*V = 860 * 0.0086/1000 = 0.007379 kg

Not sure if I'm making sense...

Good luck!

T
• Yeah， it is effective， now I set dp = 0.001, there is an significant improvement .
Tonight I will try dp = 0.0005.
But If I want to simulate a large-scale process, the floating size is not too large, in order to ensure the correct calculation, the resolution is very high, （dp is samll）, so the calculation efficiency will be very low resulting too much time and we can not accept.
That is a problem.
• So the gap between floating and fluid can not be eliminated, right?
and how to reduce the impact of the gap, in addition to reducing dp?
Do you have some idea or suggestion?
• @dong

Currently it is not possible to remove the gap completely, which is why it is often advised to measure properties atleast 1.5h from a boundary/domain. It seems like it will be possible in the future, but not yet. The only solution seems to be decreasing the dp unfortunately.
• @Asalih3d
Now that the gap can not be removed completely , why the gap is 1.5h? How to calculate the gap ?
• No, the gap isn't nessecarily 1.5h - it is just the distance from a boundary you should measure. Please go to example 5, "CaseSloshing" and open the pdf "CaseSloshing_Pressure_Probes.pdf". Here the distance of 1.5h is explained very nicely.

You find this example under "doc" folder in your DualSPHysics installation.
• @Alex
@Asalih3d
@TPouzol
I have a question about the resolution. I need your suggestions on the value of dp.
If I set the minimum size of the floating to A , and set the value of A/dp to B;
So I want to know the range of B when you can get an accurate result according to your exprience.
Is the value of B 8.0, 15.0 or other values?
• To find out when you have the optimal dp you have to do simulations with different dp's like for an example:

1. dp
2. dp/2
3. dp/4
4. etc

And when the result stops changing (within a margin of maybe 5%, this REALLY depends on application!) you have found the best dp for time and accuracy. We have always been advised to do at least three different dp's.

Kind regards
• Hi!@dong
I have seen your model, and I noticed that you are using artifical viscosity, while you set the viscosity to 0.000001. It is suggested to be 0.1 or 0.01 and it's different from the real viscosity. If you choose Laminar+SPS, you can use real viscosity.
I don't know which parameters you have modified. So I am not sure if this parameter influences your result.
• Also use symplectic time stepping, it is a more correct time stepping scheme.
• @cube
@Asalih3d
Thank a lot I will try according to your advice.
best regards