"가장 단순하다"는 것은 처음부터 배우고 구현하는 가장 간단한 것을 의미합니다. 내 질문에 어느 정도 대답 할 수 있기를 바랍니다.
"가장 단순하다"는 것은 처음부터 배우고 구현하는 가장 간단한 것을 의미합니다. 내 질문에 어느 정도 대답 할 수 있기를 바랍니다.
답변:
2 차원에서, 속도 -vorticity 공식은 변수가 함께 배치되기 때문에 구현하기가 가장 간단하지만 경계 조건이 복잡 할 수 있으며 문제에 대한 직접적인 언급이 적습니다. 원시 변수 공식의 경우 Harlow and Welch (1965) 의 스 태거 드 그리드 유한 차분 법 을 시작하는 것이 좋습니다.
가장 간단한 것은 항상 귀하의 특정 관심사와 요구에 상대적입니다. Anders에 동의합니다. 간단한 지오메트리를 가진 도메인에서 압축 할 수없는 흐름의 경우, 사용의 용이성과 정확성을 우선시하는 경우 프로젝션 방법 (예 : Chorin의 분할 방법)을 이길 수는 없습니다.
좀 더 자세하게 설명하자면, [1]에 질문이 도입되었습니다. 보다 현대적인 2 차 근사 투영법은 [2]에 잘 설명되어있다. 동기 부여는 전체 비 압축 Navier-Stokes 방정식을 풀려면 속도 장과 압력을 동시에 풀어야하며 결과적으로 선형 시스템은 다소 열악합니다. 프로젝션 방법은 각 시간 단계를 이전 시간 단계의 압력을 사용하여 속도 해석으로 분할 한 다음 압력 업데이트를 수행하여 속도 필드를 압축 할 수없는 상태로 유지함으로써이 문제를 해결합니다.
이를 구현하려면 몇 가지 다른 구성 요소가 필요하지만 모두 쉽게 익히고 프로그래밍 할 수 있습니다.
압력 해결을 위해 밀도가 일정한 시스템에 관심이 있다고 가정하면 포아송 방정식을 풀어야합니다. 물론이 문제에 접근 할 수있는 수십 개의 알고리즘이 있지만 구현하기 가장 쉬운 방법은 아마도 CG ( conjugate gradient ) 알고리즘입니다. 내가 읽은 CG에 대한 최고의 설명 중 하나는 Jonathan Shewchuk이 작성했으며 여기 에서 찾을 수 있습니다 . 그러나 알고리즘을 간단하게 구현할 수 있도록 전체 논문을 읽을 필요는 없습니다.
Navier-Stokes에서 이류 용어를 처리하려면 다른 알고리즘이 필요합니다. 여러 차원에서 가장 유연한 방법, 예를 들어 Godunov의 강력한 구현을 프로그래밍하는 것은 상당히 어려울 수 있습니다. 그러나 상대적으로 적당한 레이놀즈 수 (즉, 무시할 수없는 점도)를 갖는 흐름에 관심이 있다면 본질적으로 비 진동 (ENO) 방법 중 하나는 구현의 용이성 측면에서 법안에 잘 맞습니다. [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