Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Fluid behavior changing over time
#1
Another weird one - getting closer to release means all the fun weird bugs start popping up...

We have a slow flowing fluid, that on app starts works like we want.  However, after some period of time (~15-30 mins), the behavior changes.  For example, the fluid simply stops flowing like it should and 'sticks'.

We're looking on our end now to see if we're not turning something on or off when needed.

Question - is there some life cycle calls or other 'cleanup' utility methods we can or should be calling to keep things tidy?  For example, if I'm emitting fluid from one solver/emitter pair, then I want to turn that off and turn on another one, is there some 'reset' process we should be doing in our scripts?  I didn't see this documented explicitly but maybe we're missing it.

Also - any chance you can shed some light on what this ObiSolver.ResetSimulationTime() method does?

http://obi.virtualmethodstudio.com/docs/...0f0e4957f7

Thanks in advance!
Reply
#2
(07-10-2019, 08:14 PM)billmccrary Wrote: Another weird one - getting closer to release means all the fun weird bugs start popping up...

We have a slow flowing fluid, that on app starts works like we want.  However, after some period of time (~15-30 mins), the behavior changes.  For example, the fluid simply stops flowing like it should and 'sticks'.

We're looking on our end now to see if we're not turning something on or off when needed.

Question - is there some life cycle calls or other 'cleanup' utility methods we can or should be calling to keep things tidy?  For example, if I'm emitting fluid from one solver/emitter pair, then I want to turn that off and turn on another one, is there some 'reset' process we should be doing in our scripts?  I didn't see this documented explicitly but maybe we're missing it.

Also - any chance you can shed some light on what this ObiSolver.ResetSimulationTime() method does?

http://obi.virtualmethodstudio.com/docs/...0f0e4957f7

Thanks in advance!


ResetSimulationTime() basically resets the unsimulated time accumulator to zero. This only affects particle interpolation, and should not ever be called unless you thoroughly understand fixed-timestepping and know what you're doing.

You should not need to do any book keeping or cleanup, solvers take care of it already. Would help to know what your use case is, if you're doing any runtime changes to materials/emission settings, etc.
Reply
#3
(09-10-2019, 09:47 AM)josemendez Wrote: ResetSimulationTime() basically resets the unsimulated time accumulator to zero. This only affects particle interpolation, and should not ever be called unless you thoroughly understand fixed-timestepping and know what you're doing.

You should not need to do any book keeping or cleanup, solvers take care of it already. Would help to know what your use case is, if you're doing any runtime changes to materials/emission settings, etc.

Without showing any IP - we are implementing a training simulation for a delicate epoxy emission process for a tiny product (~0.25" x 0.25" working area).  The epoxy is semi-gel like, it flows but slowly, so getting a fluid to work on a tiny scale had its own challenges but we got something that works.  We're not doing any run time changes other than emitter speed and turning things on and off (3 emitters with their own solvers).  If you say the solvers should be doing all of their own housekeeping and not something we need to worry about, I'll trust that and go dig in and see if we're maybe not nuking fluid particles when we should, or if we have some other issue ourselves.  Thanks!
Reply