유체 시뮬레이션의 경계 조건


10

비디오 게임 유체 시뮬레이션에 설명 된대로 소용돌이 입자 / "vorton"을 사용하여 2D 유체 시뮬레이션 작업을하고 있습니다. 제가 생각하기에 "이산 소용돌이 법"과 같은 것입니다. 기본적으로 정의 된 소용돌이가있는 입자 모음으로 유체를 나타내고 Biot-Savart의 법칙을 사용하여 모든 소용돌이의 유도 속도를 합산하여 한 지점에서 유체 속도를 계산합니다 (예 : , 여기서p2-p1은 샘플 지점과 보턴 사이의 위치 차이,w는 와동 (3D의 벡터 양),r은 보턴과 샘플 지점 사이의 유클리드 거리입니다. .v=ω×(p2p1)4πr3p2p1wr

유체에 상자를 넣고 그것을 앞뒤로 움직여 유체에 영향을 미치려고합니다. 이는 박스에 대한 미끄럼 방지 및 비통과 경계 조건을 고려한다는 의미입니다. 즉, 상자의 경계에서 상대 유체 속도가 0이됩니다.

지금은 상자의 주변 속도와 상자 주변의 80 지점에서 유체의 상대 속도를 샘플링하고 있습니다. 또한 상자 주변에 80 개의 vorton이 있지만 약간 바깥쪽으로 오프셋됩니다. 나는 큰 매트릭스를 형성하고, 소용돌이가 샘플 지점에서 유체의 속도에 대응하는 데 필요한 소용돌이 값을 해결합니다 (선형 최소 제곱 사용).

이것은 거의 효과가 있지만, 내가 얻는 솔루션은 샘플 포인트와 보턴의 정확한 레이아웃에 크게 의존한다는 것을 알았습니다.

때로는 다른 방향으로 회전하는 소용돌이 패턴이 번갈아 나타납니다 (파란색 점은 시계 반대 방향으로 회전하는 보턴이고, 빨간 점은 시계 방향으로 회전합니다) :

교번 보턴 흐름

다른 경우에는이 그림과 같이 상자의 왼쪽에있는 모든 보턴을 다른 방향으로 회전시키는 다른 보턴을 얻습니다.

일관된 흐름

나는 두 번째 그림이 내가 실제로 원하는 것이라고 생각합니다. 또한 두 가지 솔루션이 내가 사용하는 방정식 시스템이 너무 제한적임을 암시한다고 생각합니다. 샘플 포인트를 추가하면 도움이되지만 때로는 그렇지 않습니다.

내가 추가 할 수있는 다른 경계 조건이 있습니까? 직감적으로 나는 상자로부터 주어진 거리에서 유체가 얼마나 강하게 방해되는지를 고려하기 위해 아무것도하지 않습니다. 경계 레이어 제한 조건을 추가 할 수 있다고 생각합니다. 그러나 그것이 어떻게 보일지 잘 모르겠습니다.

대안으로, 소용돌이 입자 기반 유체 시뮬레이션이 이러한 종류의 경계 조건을 처리하는 방법에 대해 볼 수있는 관련 문헌이 있습니까?

답변:


1

해결하려는 시스템이 단수입니까? 아니면 적어도 상태가 좋지 않습니까?

Σ||vi||2λI

Σwij||vivj||2wij


나는 당신이 Tikhonov 정규화를 언급하고 있다고 생각합니다 .
OSE
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.