스모크 솔버는 크게 분류하자면 다음과 같은 행동을 매프레임(또는 서브스텝)마다 반복한다.
노드참조
gas project non divergent라는 이름도 긴 이 노드를 설명하려다 보면 막힐때가 많다. 유체의 비압축성을 만족시킨다라는 말이 무슨뜻일까?
이렇게 생각해보자 우리가 벨로시티필드를 만들었다는것은 실제 그 지점에 떠다니는 파티클에 가야할 방향을 지정해주었다는것을 뜻한다. 하지만 이 계산을 수행하려다 보면 어떤 곳은 많은 파티클들이 들어가려하고 다른 곳으로는 거의 가지 않으려고 할것이다. 하지만 실제로 그럴수는 없다. 공간은 한정적이고 들어가려는 파티클이 많다면 결국 일정수의 파티클만 제외하고는 다른 곳으로 밀려날것이다. 이렇게 되면서 자연스레 흐름이 생기는데 이게 다이버전스 프리의 의미이다.
파티클이 추상적이라면 이렇게 생각해보자. 배고픈 사람들을 큰 강당에 빈틈없이 빽빽히 모아놓고 먹을것을 몇 군데다 놓아두면 사람들은 그곳으로 움직이고 싶지만 결국 다른사람을 밀어내던가 밀려나게 될것이다. 결국은 밀려난 사람들은 다른 공간을 채울수밖에 없고 전체적으로 봤을때 공간의 크기가 같다면 그 공간에 있을 수 있는 사람의 수는 한정적이기 때문에 생기는 방향의 흐름을 얘기하는 것이다.