비디오 게임 유체 시뮬레이션에 설명 된대로 소용돌이 입자 / "vorton"을 사용하여 2D 유체 시뮬레이션 작업을하고 있습니다. 제가 생각하기에 "이산 소용돌이 법"과 같은 것입니다. 기본적으로 정의 된 소용돌이가있는 입자 모음으로 유체를 나타내고 Biot-Savart의 법칙을 사용하여 모든 소용돌이의 유도 속도를 합산하여 한 지점에서 유체 속도를 계산합니다 (예 : , 여기서p2-p1은 샘플 지점과 보턴 사이의 위치 차이,w는 와동 (3D의 벡터 양),r은 보턴과 샘플 지점 사이의 유클리드 거리입니다. .
유체에 상자를 넣고 그것을 앞뒤로 움직여 유체에 영향을 미치려고합니다. 이는 박스에 대한 미끄럼 방지 및 비통과 경계 조건을 고려한다는 의미입니다. 즉, 상자의 경계에서 상대 유체 속도가 0이됩니다.
지금은 상자의 주변 속도와 상자 주변의 80 지점에서 유체의 상대 속도를 샘플링하고 있습니다. 또한 상자 주변에 80 개의 vorton이 있지만 약간 바깥쪽으로 오프셋됩니다. 나는 큰 매트릭스를 형성하고, 소용돌이가 샘플 지점에서 유체의 속도에 대응하는 데 필요한 소용돌이 값을 해결합니다 (선형 최소 제곱 사용).
이것은 거의 효과가 있지만, 내가 얻는 솔루션은 샘플 포인트와 보턴의 정확한 레이아웃에 크게 의존한다는 것을 알았습니다.
때로는 다른 방향으로 회전하는 소용돌이 패턴이 번갈아 나타납니다 (파란색 점은 시계 반대 방향으로 회전하는 보턴이고, 빨간 점은 시계 방향으로 회전합니다) :
다른 경우에는이 그림과 같이 상자의 왼쪽에있는 모든 보턴을 다른 방향으로 회전시키는 다른 보턴을 얻습니다.
나는 두 번째 그림이 내가 실제로 원하는 것이라고 생각합니다. 또한 두 가지 솔루션이 내가 사용하는 방정식 시스템이 너무 제한적임을 암시한다고 생각합니다. 샘플 포인트를 추가하면 도움이되지만 때로는 그렇지 않습니다.
내가 추가 할 수있는 다른 경계 조건이 있습니까? 직감적으로 나는 상자로부터 주어진 거리에서 유체가 얼마나 강하게 방해되는지를 고려하기 위해 아무것도하지 않습니다. 경계 레이어 제한 조건을 추가 할 수 있다고 생각합니다. 그러나 그것이 어떻게 보일지 잘 모르겠습니다.
대안으로, 소용돌이 입자 기반 유체 시뮬레이션이 이러한 종류의 경계 조건을 처리하는 방법에 대해 볼 수있는 관련 문헌이 있습니까?