Flexible Gate

Hello all,

I've been playing with the Flexible Gate example. I created a 2D channel and hinged it to the upper boundary, then added in/out layers and it seems like it's working.



However, when I try to make the channel height and the gate height smaller, all the floating objects float freely and eventually leave the domain.


I created new id's for each block thinking that would be the problem but it did not help. When I run the same xml file with a bigger domain it works. I don't think it's normal but I might be missing something.

Thank you!



Comments

  • I tried it using a single block with 3 different domain sizes.
    Domain 1 has the exact same dimensions as in example flexibleGate.
    Domain 2 is the intermediate case
    Domain 3 has a channel height of 30 mm with a gate size of 13mm.

    Domain 2


    I'm limiting the domain size as follows


    And it works for domains 1 and 2, but for domain 3 I still get the following error



    Whenever I try to use a smaller domain, I can't get it to work.
  • When I increase the thickness of the gate, I still get the "particles excluded" error but nothing about the particles exceeding the simulation limits.


  • So, I still have been trying different dimensions and resolutions.

    x is the gate thickness .






    i)When I take the particle spacing to be 5e-4, it works for a gate with 60mm thickness.

    ii)A gate with 10,20,30mm thickness and 2e-4 initial spacing gives me error.
    When I increase the thickness to 40mm with the same initial spacing(2e-4) it works.

    iii) When I reduce the initial spacing to 1e-4, it still does not work for a gate with 10,20mm thickness but it works wen the gate is at least 30mm thick.

    If,
    n=thickness/dx

    i) It works when the number of particles is at least 120.
    ii) It only works when the number of particles is at least 200.
    iii) The minimum required number of particles for this resolution is 300.

    I think I am lost. I will keep trying and updating.






  • I hope you figure it out, seems to be an exciting project! Have you tried using the fixed domain command and ensure that it has like 0.5 m on all sides? Maybe that could help?

    Kind regards
  • @Asalih3d I've tried to limit the simulation domain with +-0.5, +-20%, +-50% .

    The error message reads
    "Excluded for: velocity"
    But in this post https://dual.sphysics.org/vanilla/discussion/1586/motion-error/p1
    it says "Excluded for:position"
    Maybe that tells me something.


  • Hello again,

    I'm still trying but no luck yet. As written in the previous post, the error message said " Excluded for velocity", so instead of using in/out layers, I decided to give it a try with constant acceleration in x-direction just like is Case/Poiseuille, the error message still reads excluded for velocity and when I open Error_boundaryOut.vtk this is what I get



    Light-colored region is the fluid domain and the blue rectangle is the gate, I don't know why there is a void region inside the gate and what is causing it. This is the case where the gate is 5mm thick.

    When I reduce the thickness to 1mm, I get rid of that void but the gate moves out of the domain, I really don't know why it doesn't stay hinged.





  • Hmm, I really can't see why it would not work. Try a VERY small initial time step?

    Kind regards
  • Tried it with 1e-6 seconds. Did not get it to work.
    Attached are my .xml files for large and small domains. If anyone could find a time to have a look at this, it'd be a huge help.

    Thanks!

  • edited June 2019
    Hello,

    What does CfgChrono_Scheme.vtk exactly show? I've been looking at the source code and I'm still not quite clear.


    When I open it in Paraview, I assume it is where the hinge is located.


    By comparing with example/FlexibleGate it does show the hinges.


    and here it says save CSV for debug, how can I reach that file? chrono_objs folder is empty.



    Lastly, following is the moment of inertia for the smaller gate


    Do you think since moment of inertia is almost zero, it causes the simulation to fail?



  • I increased alpha to 0.05 and got it running for 20 time steps before it fails.

    t=0.0s


    t=0.005s


    t=0.015s


    t=0.025s


    t=0.05s


    t=0.1s


    I don't know why fluid level goes down near the surface.


  • Some suggestions:

    Is gravity enabled?
    Have you tried making a much bigger domain? Just to test.
    Try increasing number of particles drastically?
  • CfgChrono_Scheme.vtk includes the position of hinges and center of gravity of the objects
  • @Asalih3d When I disable gravity, I do not get the wave like flow field and the particles pretty much stay in touch with the boundaries.

    -With a bigger domain, it works and that's what confuses me the most.

    -A simulation with 200,000 particles fails and gives the same error message. When I open Error_BoundaryOut.vtk in paraview, it shows me that the red particles are excluded for velocity.


    This is what I found in DualSPHysics-Wiki/ PostProcessing

    VELOCITY: One particle can be also removed from the system when its displacement exceeds 0.9*Scell during one time step (Scell is the size of the cell).

    By forcing a CFL number are we not limiting the displacement already?
    Do I have any control on particle velocity? Or do you believe using even smaller time steps would fix it? ( I am using a initial time step of 1e-6s and a minimum time step of 1e-5s)

    When I run it with around 600,000 particles, it takes forever but it ran for about 200 time steps before I stopped it. I will let it run until tomorrow.
  • Please send to us an email to dualsphysics@gmail.com with all the info to run the simulation and we will take a look to your problem.

    Regards
  • @circles nice to hear that it atleast works with a bigger domain! :-) Hope that was able to get you some useable results.

    Using CFL you are indeed controlling displacement since you are making the time steps even smaller - often this will minimize displacement, but in some niche cases it might increase it.

    Another way to control particle displacement is by setting a low constant time step, but it is smarter to just lower CFL in my opinion - and as you did a minimum time step.

    Try letting the 600k run finish so we can see what happens.

    Please take dualsphysics team up on their offer, maybe there is an error somewhere in the code, which can be ironed out.

    Kind regards
Sign In or Register to comment.