nickabattista / IB2d

An easy to use immersed boundary method in 2D, with full implementations in MATLAB and Python that contains over 75 built-in examples, including multiple options for fiber-structure models and advection-diffusion, Boussinesq approximations, and/or artificial forcing.
GNU General Public License v3.0
164 stars 90 forks source link

Regarding the example of Skeleton #22

Closed rohitroxkp7 closed 2 years ago

rohitroxkp7 commented 2 years ago

Hello @nickabattista I was performing a simulation of the Skeleton example where a rubber band oscillates from a position of non-equilibrium to a position of equilibrium in space and time as the fluid damps the oscillation. I closed the end point where fluid was being let in. When I ran the simulation, Ib2d threw an error out saying BLOW UP!, Forces are too large. I thought this is happening because only springs were in the model. Hence I included beams as well. I toggled the values of almost all the variables such as fluid density, viscosity, elastic constants, etc. Nothing really seems to work. Why is this happening?

rohitroxkp7 commented 2 years ago

I also noticed that there is a problem in Ib2d creating completely closed surfaces and moving them using updating algorithms when running the simulation.

nickabattista commented 2 years ago

I'm not sure I follow your issue, as the rubberband is closed already and does not have any 'holes' in it, if you're inquiring about the rubberband example found here: https://github.com/nickabattista/IB2d/tree/master/matIB2d/Examples/Example_Skeleton

What are examples are you referring to here when you say: I also noticed that there is a problem in Ib2d creating completely closed surfaces and moving them using updating algorithms when running the simulation? I have not run into this issue before.

Please attach your rubberband files so I can diagnose your issue. Thanks.

rohitroxkp7 commented 2 years ago

In the "Give me immersed boundary geometry" function, I just added a line that makes the last point the same as the first point. If you are saying that the rubber band is closed, in terms of springs it is. I just wanted to simulate what it would look like if there was no fluid inside the boundary. Let us say we have a closed body of a fish swimming through water. The region inside the fish body's boundary should not have any fluid. To see if that is possible I started off with the rubber band example.

files.zip

rohitroxkp7 commented 2 years ago

Perhaps the forces generated are too high because no fluid inside would mean a lot of hydrostatic pressure on the boundaries

rohitroxkp7 commented 2 years ago

Hello @nickabattista I was performing a simulation of the Skeleton example where a rubber band oscillates from a position of non-equilibrium to a position of equilibrium in space and time as the fluid damps the oscillation. I closed the end point where fluid was being let in. When I ran the simulation, Ib2d threw an error out saying BLOW UP!, Forces are too large. I thought this is happening because only springs were in the model. Hence I included beams as well. I toggled the values of almost all the variables such as fluid density, viscosity, elastic constants, etc. Nothing really seems to work. Why is this happening?

I am sorry, there is no fluid being "Let in"... it just appeared as a discontinuity in the Matlab plot with dotted lines because the end point and start point were not the same. Nevertheless, I wanted to know if there is a way of maintaining a boundary as if it were immersed as a body in a fluid but no fluid inside its boundary.

nickabattista commented 2 years ago

Unfortunately, the current implementation of IB2d puts the fluid everywhere on the background Eulerian grid; it's based off of Peskin's 2002 IB implementation that does not distinguish between grid points "inside" or "outside" of an immersed body. You might want to take a look at IBAMR. It may have what you're looking for? (also see recent publications from IBAMR to get a better idea of what it's been used for.

rohitroxkp7 commented 2 years ago

Okay, thanks a ton!