비 압축 Navier-Stokes 방정식을 푸는 가장 간단한 방법은 무엇입니까?


9

"가장 단순하다"는 것은 처음부터 배우고 구현하는 가장 간단한 것을 의미합니다. 내 질문에 어느 정도 대답 할 수 있기를 바랍니다.


1
어떤 기하학에서?
Rhys Ulerich

@Rhys Ulerich Im 가장 단순한 추측입니까?
제임스

@ user2697246 균일 한 초기 조건을 가진 무한 도메인? 하찮은. 무시하는 질문이 아닙니다.
Rhys Ulerich

1
NS 시뮬레이션을 시작하려면 lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes
Subodh

답변:


10

2 차원에서, 속도 -vorticity 공식은 변수가 함께 배치되기 때문에 구현하기가 가장 간단하지만 경계 조건이 복잡 할 수 있으며 문제에 대한 직접적인 언급이 적습니다. 원시 변수 공식의 경우 Harlow and Welch (1965) 의 스 태거 드 그리드 유한 차분 법 을 시작하는 것이 좋습니다.


2
경계 조건과 함께이 알고리즘에 대한 매우 명확한 설명은 Pozrikidis에 의해 제공됩니다 .
John Stockie

10

당신은 매우 간단하면서도 매우 효율적인 솔루션 방법 (Chorin의 분할 방법)의 완전히 문서화 구현을 찾을 수 있습니다 여기를 .

다른 인기있는 방법을 선택하려면 이 책의 21 장을보십시오 .

면책 조항 : 저는 데모 프로그램과 책의 공동 저자입니다. 이 책은 무료로 다운로드 할 수 있습니다.


5

가장 간단한 것은 항상 귀하의 특정 관심사와 요구에 상대적입니다. Anders에 동의합니다. 간단한 지오메트리를 가진 도메인에서 압축 할 수없는 흐름의 경우, 사용의 용이성과 정확성을 우선시하는 경우 프로젝션 방법 (예 : Chorin의 분할 방법)을 이길 수는 없습니다.

좀 더 자세하게 설명하자면, [1]에 질문이 도입되었습니다. 보다 현대적인 2 차 근사 투영법은 [2]에 잘 설명되어있다. 동기 부여는 전체 비 압축 Navier-Stokes 방정식을 풀려면 속도 장과 압력을 동시에 풀어야하며 결과적으로 선형 시스템은 다소 열악합니다. 프로젝션 방법은 각 시간 단계를 이전 시간 단계의 압력을 사용하여 속도 해석으로 분할 한 다음 압력 업데이트를 수행하여 속도 필드를 압축 할 수없는 상태로 유지함으로써이 문제를 해결합니다.

이를 구현하려면 몇 가지 다른 구성 요소가 필요하지만 모두 쉽게 익히고 프로그래밍 할 수 있습니다.

  1. 압력 해결을 위해 밀도가 일정한 시스템에 관심이 있다고 가정하면 포아송 방정식을 풀어야합니다. 물론이 문제에 접근 할 수있는 수십 개의 알고리즘이 있지만 구현하기 가장 쉬운 방법은 아마도 CG ( conjugate gradient ) 알고리즘입니다. 내가 읽은 CG에 대한 최고의 설명 중 하나는 Jonathan Shewchuk이 작성했으며 여기 에서 찾을 수 있습니다 . 그러나 알고리즘을 간단하게 구현할 수 있도록 전체 논문을 읽을 필요는 없습니다.

  2. Navier-Stokes에서 이류 용어를 처리하려면 다른 알고리즘이 필요합니다. 여러 차원에서 가장 유연한 방법, 예를 들어 Godunov의 강력한 구현을 프로그래밍하는 것은 상당히 어려울 수 있습니다. 그러나 상대적으로 적당한 레이놀즈 수 (즉, 무시할 수없는 점도)를 갖는 흐름에 관심이 있다면 본질적으로 비 진동 (ENO) 방법 중 하나는 구현의 용이성 측면에서 법안에 잘 맞습니다. [3]에는 이론과 구현에 대한 훌륭한 개요가 있습니다.

  3. 암시 적 방법, 일반적으로 Crank-Nicolson을 사용하여 점성 항을 처리해야합니다. 이것은 투영법 논문에 자세히 설명되어 있으며 점도가 일정하면 매트릭스 해석에 CG를 쉽게 사용할 수 있습니다.

[1] AJ Chorin, Navier-Stokes 방정식의 수치 해 , J. Math. 계산, 22 (1968), 745-762 쪽

[2] A. Almgren, JB Bell 및 W. Szymczak, 대략적인 투영법 SIAM J. Sci. 계산. 17 (1996), 258-369 쪽.

[3] S. Osher 및 R. Fedkiw, 레벨 설정 방법 및 동적 암시 적 표면 . Springer-Verlag 뉴욕. 응용 수학 과학, 153, 2002


이 멋진 답변에, (시간이 다른) 투영 방법에서의 압력의 본질에 대한 업데이트 된 이해가 J.-G. Liu, J. Liu, RL Pego, 불안정한 비압축성 점성 흐름에 대한 안정적이고 정확한 압력 근사, J. Comp. 물리. 229 (2010) 3428-3453.
밥 페고

4

컴퓨터 그래픽과 게임은 최근 유체 시뮬레이션에서 큰 관심을 끌고 있습니다. 다음 은 실시간 애플리케이션을위한 솔버의 함침에 대해 설명하는 Jos Stam의 훌륭한 논문입니다. 이해하기 쉬운 소스 코드가 함께 제공됩니다. 나는 그것이 얼마나 정확한지 모르겠지만 그것이 당신이 찾고있는 것일 수 있습니다.


1

정말 훌륭하고 간단한 또 ​​다른 방법은 이산화를 위해 셀룰러 자동 판매기를 사용하는 것입니다. LBA, FHP 등을 포함한 많은 모델이 있습니다. 그것들은 현대 컴퓨터에서 실시간 시뮬레이션을 제공 할 수 있고 GPU에서 병렬화되고 실행될 수 있기 때문에 정말 좋습니다. 또한 몇 가지 단점이 있으며 결과는 적용된 격자 모양에 크게 의존합니다. 정사각 격자는 회전 자유도가 부족하기 때문에 불충분하며, 예를 들어 폰 카만 보어는 정사각형 모양이 될 것입니다 :)

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