Page MenuHome

Mantaflow: Minimum timesteps affects dissolve rate
Confirmed, NormalPublicBUG

Description

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: AMD Radeon R9 200 Series ATI Technologies Inc. 4.5.13587 Core Profile Context 20.2.2 26.20.15019.19000

Blender Version
Broken: version: 2.91.0 Alpha, branch: master, commit date: 2020-09-04 21:32, hash: rBcf0ba59e311b
Worked: (newest version of Blender that worked as expected)

Short description of error
I was testing the dissolve feature described here. Time: "Speed of smoke’s dissipation in frames." but it seems wrong. Let me show this short video (don't look at my test about flow consistency in domain settings):

As you can see, changing the Maximum Timesteps does not change the Dissolve velocity, even changing the substeps of the inflow object doesn't change the dissolve behaviour.
But changing the Minimum Timesteps (forcing mantaflow to iterate more on each frame) it clearly messes up the behaviour. It seems to act faster than desired! It seems the Dissolve Time parameter works on steps and not frame.

Exact steps for others to reproduce the error

Bake simulations and play animation.

Event Timeline

Richard Antalik (ISS) changed the task status from Needs Triage to Needs Information from User.Thu, Sep 10, 6:41 AM

There is similar report T74192 Can you check if this issue is same as in report I linked?

I don't think so, the problem could be related (code speaking, I don't know) but this case shows how increasing the minimum timesteps that mantaflow has to do change the behaviour of dissolve smoke

In that case please attach simple example file.

Of course! Here it is.


In this file there are 2 different domains (with different cache folder cache_fluid_1 and cache_fluid_2). The first one has 1-4 timesteps and the second has 10-10. Both has dissolve time 5 and slow option enabled. As you can see the second domain dissolves the smoke much quicker than the first one! This behaviour is wrong because forcing mantaflow to iterate more steps should not change the behaviour of dissolve smoke.
Here is also a video:

How to use the file:
copy the file in a folder and bake both domains, it will create locally 2 folders.

Richard Antalik (ISS) renamed this task from Mantaflow: dissolve smoke documentation discrepancy with real behaviour to Mantaflow: Minimum timesteps affects dissolve rate.Mon, Sep 14, 2:25 PM
Richard Antalik (ISS) changed the task status from Needs Information from User to Confirmed.
Richard Antalik (ISS) updated the task description. (Show Details)
Jacques Lucke (JacquesLucke) changed the subtype of this task from "Report" to "Bug".Tue, Sep 15, 11:19 AM

I tried changing the dissolve function, so that it can dissolve partially in a substep. The patch is here: P1631. It works in the sense that it fixes the issue in the provided example file. However, it is not fully correct, because I just used 1 / timestepsMin_s$ID$ to compute the partial factor, instead of using the actual substeps (I don't know where I get this information from).

Maybe an alternative and simpler solution would be to just apply the dissolve operation once per frame, and not in every subframe. Not sure if the simulation quality decreases when doing that.

@Sebastián Barschkis (sebbas), what do you think?