Odd fluctuations at the start of the simulation and particle leak

edited February 2017 in DualSPHysics_v4.0
I have the following simulation (video) https://www.dropbox.com/s/r9s5cshez7fho9v/sph_platform1.avi?dl=0

It's periodic in the y direction.

Below I have plotted the forces on the structure

https://www.dropbox.com/s/8ikcfd81y3joed4/figure_1.png?dl=0
https://www.dropbox.com/s/g1zrhtpchdkysaa/figure_1-zoom.png?dl=0

I'm getting very strong and odd fluctuations at the start of the simulation, which can also be seen in the video.


In these simulations I have
"DeltaSPH" value= "0.1"
I have tried shifting and no shifting
key="Shifting" value="1"
key="ShiftCoef" value="-2"
key="ShiftTFS" value="2.75"
and also I have tried increasing viscosity to 0.2 but no luck
For these simulation I have: "ViscoBoundFactor" value= "0"


In addition I get particle leaking for some reason (see the video)



sample xml file: https://www.dropbox.com/s/bzch89eao0bmyvp/case_def.xml?dl=0

Comments

  • In the first look, it seems:
    - one reason is due to low resolution. Decrease dp.
    - use PosDouble=1
    - Turn off shifting mode (use the default values)
    - Decrease DtIni, e.g. 0.000001
    - CFL=0.12
    - Visco=0.01
  • Dear user

    The oscillations you observe are only produce by the boundary conditions we have implemented in DualSPHysics. These boundary conditions consist of a set of particles that follow the same equations of fluids but they will not move or move as we describe. This means that we solve the continuity equation and we allow the particles to modify their density and pressures, this creates a repulsion mechanism. The repulsion mechanism is implicit once we solve momentum equation between fluid and boundary, we use density and pressure of the boundary which leads to changes in the velocity of the fluid approaching the boundary. We call these approach Dynamic Boundary Condition (DBC).

    Advantages of DBC:
    - Easy to represent external geometries
    - No need to use normals or other complicated tricks that are needed in other approaches (dummy particles, ghost particles... they need normals to create those virtual nodes)
    - For real-life applications they offer a high accuracy when validating with experiments

    Disadvantages of DBC:
    - Mathematically not correct since the kernel support is not fulfilled.
    - Repulsion is high leading to gap (in the order of "h") between fluid and boundary layer
    - Pressure values of the boundaries are not physically correct leading to OSCILLATIONS.
    - Not good to solve academic cases: Poiseuille flow, lid driven cavity....
    - BUT problems are minimised when using higher resolution.

    In your case using such a big coefh (better 1 or 1.2) and high resolution reduces your problem.
    You can also run several instant initially withou moving the piston, so you wait till the fluid particles reach a more stable displacement and less oscillations.

    In paper: http://dx.doi.org/10.1016/j.compstruc.2013.02.010, figure 3 you can see same oscillatins in still water case, but after several seconds these dissapear

    Regards

    Alex
  • Alex and moh
    Firstly thank you very much for the suggestions. It seems that a symplectic scheme and DtIni=0.000001 and coefh = 1 (or 1.2) and letting the simulation run for 10 seconds before starting the piston motion help to reduce the oscillations. Unfortunately, with the beach these lead to very long simulation times due to the large number of particles ~2-3 million (I did not dare try it with double precision). Active wave absorption would help reduce the number of particles, but I do not have the expertise to implement such a setup. Looking forward to citing this nice software when finished!

    Is it possible to compute moments on the structure? This is also a pretty important metric, yet I do not see in the documentation how to compute moments using measureforces?
  • I highly recommend you using double precision.
    For computing moment, you write a simple Matlab code. First, you should use Partvtk to calculate ACC for each particle. Then multiply mass of each particle to its ACC. The rest is straightforward.
  • Using double precision (option 1) is not very more time consuming!!! It consumes more memory, but not much more! Try it and you will see this.

    If you are really interested on using the AWAS option, please email us to dualsphysics@gmail.com and we can discuss when and how we can share that option with you. However, this will be available in next small new release (planning before summer)

    Regards
  • Thanks Alex, I'll send an email.

    moh, thanks, I can't seem to find how to actually get the coordinates of the particles using partvtk. I see the +mass option and +ace option. I'd need the coordinate values to write a matlab script to compute the moment about a specified point.
  • The coordinate of particles are written in the csv file, BY DEFAULT.
Sign In or Register to comment.