[Soc-2017-dev] Weekly Report #11 - Mantaflow Particles and Fluid Guiding

Sebastián Barschkis sebbas at sebbas.org
Wed Aug 16 10:13:13 CEST 2017


Hi Nils,

yes, I guess it's best to leave inflow velocities for after GSoC. They remain too unstable for me at this point.

Regarding fluid guiding: The basic idea is that there is a new type for guiding objects. For every step, the inside of such objects describes where and how much velocity changes in the domain.
And so in practice (to actually get a change in velocity) you'd always animate them. To create a tornado, for example, you'd add cylinder guiding object to your simulation and then set a rotation about its z-axis. Mantas guiding pressure function can then use this resulting velocity field.

At first I wasn't so sure how I'd compute these velocities. The change in time is given, finding out the change in space seemed more challenging.
Luckily before getting too deep into writing my own "velocity rasterization", I figured that everything is already in place. I could simply re-use the "mechanism" I used for moving obstacles before GSoC! There I am also reading object velocities.

In fact, I found that "Obstacle" and "Guiding" objects are very similar as they both effect velocities of the flow. I am therefore grouping them in the UI under the "super-category effector".

Best Sebastián

> On 15. Aug 2017, at 17:32, Nils Thuerey <nils.thuerey at tum.de> wrote:
> 
> Hi Sebastian,
> 
> regarding the "velocity bug": without setting the velocities, the updates from gravity & pressure solve accumulate over time, and esp. gravity can lead to huge (and unphysical) increases in velocity. 
> 
> For thin velocities I'd recommend to re-extrapolate the SDF after offsetting the initial distance field. We could discuss during one of our meetings...
> 
> Otherwise focusing on the guiding sounds like a good plan. What are your next steps for the implementation there?
> 
> Cheers,
> -> Nils 
> 
> 
> === Technical University of Munich , http://ge.in.tum.de/ ===
> 
> 
> 
> 
> 
>> On 12. Aug 2017, at 01:55, Sebastián Barschkis <sebbas at sebbas.org> wrote:
>> 
>> Hello everyone,
>> 
>> my progress report for week 11 is now online:
>> 
>> https://wiki.blender.org/index.php/User:Sebbas/GSoC_2017/Reports/Week_11
>> 
>> = Week 11 =
>> 
>> This week I worked on some of the bugs and on fluid guiding. 
>> 
>> === What's been done ===
>> 
>> * I looked a bit further into the (still unresolved) velocity bug. As Nils pointed out last week, setting velocities in inflow regions explicitly seems to matter. I found this made sense and so I made a test to prove this point: First I added an inflow velocity setup to the Mantaflow script that reproduces the bug. Then I compared the outcome with the old setup that did not use inflow velocities.
>> 
>> * My first impression from the previews is that manually setting inflow velocities definitely improves stability. Setups with open domains now look much alike to setups with closed domains (as it should be). I tested a range of inflow velocities and at no time did I encounter scenes where velocities exploded / "behaved unphysically" (as it happens when there are no inflow velocities set explicitly).
>> 
>> * So there is a chance that this resolves the issue. For the final verdict though, I'd like to know why setting velocities matters. Right now, I think velocity extrapolation plays a role here too: If no velocities get set in inflow regions, the extrapolation builds up velocities in that region at every step, up to a point where the simulation becomes unstable. 
>> 
>> * There was a problem with thin obstacles. In the levelset generating function thin obstacle meshes and planes were not considered. You'd always have to make obstacles sufficiently thick with respect to domain size to get an obstacle effect. I created a new setup which fixes this by searching for the nearest points on the mesh surface in addition to finding distances to the mesh surface via raycasts.
>> 
>> * For fluid guiding I have nothing new or tangible to show yet. I think I have landed a good setup though. More on that next week.
>> 
>> === Next up ===
>> 
>> * Continue with last weeks goals (especially particle refactoring and cleanup).
>> 
>> * No matter what the cost, fluid guiding needs to be finished by next week. (Not trying to sound overly dramatic here. It's just that the week thereafter it's already time to write the documentation).
>> 
>> === Questions ===
>> 
>> * No
>> 
>> Best wishes,
>> Sebastián
>> <ATT00001.c>
> 
> _______________________________________________
> Soc-2017-dev mailing list
> Soc-2017-dev at blender.org
> https://lists.blender.org/mailman/listinfo/soc-2017-dev



More information about the Soc-2017-dev mailing list