Jump to content

Viscous fluid with water = weird result


csp

Recommended Posts

I have attached a hip where demonstrated the problem, one source where each hemisphere has different density and viscosity 1000/0 and 100/1. When viscosity for both is 0 everything works great, less dens fluid floats but when I am adding even small viscosity you can see what happens on the video or the attached hip file. The viscous object starts running with out viscosity, then almost stops and then running and again later stops while the water fluid keep going (when is not trapped under the viscous fluid).

Why?

flipbook

flip_test.hip

Link to comment
Share on other sites

Hi Christos,

I've only had a chance to look at this briefly, but it looks like a bug with the viscosity solve to me. I've added it to the bug database (ID = 57986), but due to the crazy release week it will probably be next week before it can be fully investigated.

I suspect the large difference in densities; maybe try setting the low-density fluid higher than 100, like 400 or so? But so far your file looks good to me, and should work as is.

John

Edited by johner
Link to comment
Share on other sites

Hey John,

I tried different values of density/viscosity 1000/0 for water and 500/10 for viscous liquid and it started nice but again at frame 130 freezes.

I suspect the large difference in densities; maybe try setting the low-density fluid higher than 100, like 400 or so?

Link to comment
Share on other sites

  • 2 weeks later...

I've only had a chance to look at this briefly, but it looks like a bug with the viscosity solve to me. I've added it to the bug database (ID = 57986), but due to the crazy release week it will probably be next week before it can be fully investigated.

I'm afraid I completely mis-diagnosed this problem. It's actually not a bug with the viscosity solver; rather it's a problem with your collision VDB bandwidth and its interaction with the viscosity solver. The short description is that when fluid is within the Extrapolation Distance (on the Collision tab) of a collision, it's treated as part of the collision, which for the viscosity solve means it gets collision velocities. Unfortunately with the very narrow External Bandwidth you have set on the VDB, almost every voxel looks like its within that distance.

For most of the simulation viscosity solver is doing no solving at all, since it thinks every voxel is a collision. Then later in the sim when some of the fluid shows up as non-collision, it starts "solving" for real by just setting the velocities to the collision velocities (zero), and everything freezes.

That's probably a confusing explanation, but the gist of it is if you increase the External Bandwidth on the VDB to 4, everything starts working again. It's not an error condition for the viscosity solver to do no actual solving (e.g. a variable viscosity attribute set to zero everywhere), but we should warn if the reason we're not solving is every voxel is supposedly "collision". I'll update the bug to fix that.

Meanwhile, attached is the small scale pour example from the other thread updated to use real viscosity instead of faking it through Smoothing and Stick on Collision. It's obviously more expensive to solve this way, but does look a fair bit better IMO.

Flipbook:

https://s3.amazonaws...our_viscous.mp4

flip_test_small_scale_pour_viscous.hip

Edited by johner
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...