Jump to content

divergence free - gas project non-divergent


cloudfx

Recommended Posts

What is exactly meaning of divergence free in solver?

I realized that it does not make advecting data not to be stucked in an area.

How does pressure field generated and get working with gas project non-divergent node?

Edited by cloudfx
Link to comment
Share on other sites

If it is divergence free then the fluid behaves non compressible. There is no overall expansion or constriction (hopefully and unless you specify/control it as for example in an explosion). If that wasn't the case the solutions at each step would build up unpredictable errors and your sim would go crazy. In order to do that the solver calculates how much pressure is needed to keep the sim non-divergent. It is in effect a force counter to the errors or forces that would want to make your fluid explode. That step happens in the projection. I dont know why it is called like that but I have a feeling it is related to a type of matrix that is used when solving a system if linear equations: the projection.

Imagine you use normal noise as a velocity field to drive a very basic sim. In that case your sim would explode because things such as turbulent noise functions are not divergent free. If you calculate the div of such a field you will find that there is divergence. Curl noise on the other hand is free of divergence and could drive such a basic sim. In the former, more general case, you'd have to calculate the forces that would keep the field from collapsing or expanding by means of projection.

Link to comment
Share on other sites

If it is divergence free then the fluid behaves non compressible. There is no overall expansion or constriction (hopefully and unless you specify/control it as for example in an explosion). If that wasn't the case the solutions at each step would build up unpredictable errors and your sim would go crazy. In order to do that the solver calculates how much pressure is needed to keep the sim non-divergent. It is in effect a force counter to the errors or forces that would want to make your fluid explode. That step happens in the projection. I dont know why it is called like that but I have a feeling it is related to a type of matrix that is used when solving a system if linear equations: the projection.

Imagine you use normal noise as a velocity field to drive a very basic sim. In that case your sim would explode because things such as turbulent noise functions are not divergent free. If you calculate the div of such a field you will find that there is divergence. Curl noise on the other hand is free of divergence and could drive such a basic sim. In the former, more general case, you'd have to calculate the forces that would keep the field from collapsing or expanding by means of projection.

Hey Marc, i'm interested in it too, it would be great if u just could share any simple hip for example? I'm doing some explosion RnD...

Link to comment
Share on other sites

Why the projection step is called "projection"

From "Fluid Simulation for Computer Graphics" by Robert Bridson:

If you recall from your linear algebra, a projection is a special type of

linear operator such that if you apply it twice, you get the same result

as applying it once. For example, a matrix P is a projection if P2 = P .

It turns out that our transformation from u to u^n+1 is indeed a linear

projection.

Where u is the velocity at the current timestep u^n+1 is the velocity at the next timestep

  • Like 1
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...