푸리에 의사 스펙트럼 방법 및 수치 소산


9

FFT를 사용하여 푸리에 유사 스펙트럼 방법 (Orzag & Patterson, PRL, 1972)으로 등방성 난류의 직접 수치 시뮬레이션을 수행합니다. 난기류 커뮤니티에서 널리 사용되는 방법의 배경은 다음 코스를 참조하십시오. http://www.math.ualberta.ca/~bowman/m655/lab3d.pdf

로 구성되는 소위 거래 처리에 규칙 사용 여기서 는 시간, 는 파수, 는 최대 파수 및 는 속도의 스펙트럼 진폭입니다.2/3

u^(k,t)=0              if   k>23kMAX
tkkMAXu^

거래가 수치 소산으로 작용합니까? 다시 말해, 거래 중단으로 인한 에너지 누출이 있습니까?


귀하의 질문이 무엇인지 명확하지 않습니다. 당신은 명확히 할 수 있습니까?
Geoff Oxberry

지금은 어때 ?
ucsky

답변:


6

컨벌루션을 다루는 것은 수치 적 소산으로 작용하지 않습니다. 실제로, 별칭을 사용하는 경우에만 에너지가 절약됩니다.

FFT 기반 컨볼 루션을 다루는 아이디어는 FFT에 의해 추가되는 추가 용어를 제거하는 것입니다. 컨벌루션은 단지 합계이므로 합계를 계산하여 계산할 수 있습니다. 그러나 이것은 실제로 느리므로 입력을 푸리에 변환하고 결과를 곱한 다음 푸리에 변환을 뒤집는 것이 좋습니다.이 변환은 컨볼 루션 정리에 의해 컨볼 루션과 같습니다.

그러나 컨볼 루션 정리는 입력 길이가 무한한 경우에만 작동합니다. 유한 길이 입력의 경우 물리적이지 않은 추가 용어 (별칭)가 나타납니다. 거래의 요점은 계산하려고했던 원래 방정식을 다시 얻는 동시에 FFT를 사용하여 계산 속도를 높이는 것입니다.


Malcolm은 공동 작성한 FFTW ++ 라이브러리에 대해서는 언급하지 않았지만, 패딩을 암시 적으로 (다른 것들 중에서) 처리하여 신속하게 처리 된 컨볼 루션을 수행하는 데 도움이됩니다. fftwpp.sourceforge.net을 참조하십시오 .
Matthew Emmett

그래, 고마워 매트! FFTW ++의 컨볼 루션 루틴은 실제로 컨 실리아 컨볼 루션 계산 비용을 줄입니다. sourceforge 페이지 및 내 웹 페이지에 대한 참조가 있습니다. 3D 난류 실험실이 OP에 연결되어있는 John Bowman과 함께 작업했습니다.
Malcolm

4

거래가 무엇인지 이해하려면 먼저 FFT를받는 이유를 이해해야합니다. 저에게 가중 잔차 접근 방법은 가장 간단한 프레임 워크를 제공합니다.

  1. 푸리에 모드의 합으로 솔루션을 확장하여 Navier--Stokes 방정식으로 떨어 뜨립니다. 테스트 기능도 푸리에 기준입니다.
  2. 시험 및 테스트 기능을 곱하고 내부 제품을 가져 가면 (즉, 적절한 컨쥬 게이션과 통합), 비선형이기 때문에 단순히 평가할 수없는 하나의 적분이 있음을 알 수 있습니다.
  3. 균일 한 배열 지점에서 단순히 값을 합하는 균일 한 직교 기법을 사용하여 적분을 근사화 할 수 있습니다.
  4. 푸리에 모드보다 1.5 배 많은 직교 점을 사용하는 경우 직교는 2 차 비선형성에 대해 정확합니다. 이것이 반쪽 요소입니다.
  5. 마지막으로 구적법을 FFT로 효율적으로 계산할 수 있습니다.

모든 FFT 매직은 2 차 비선형성에 대해 정확하게 만들 수있는 효율적이고 근사한 직교 구조로 생각할 수 있습니다. 다른 거래 변형은 다른 클래스를 사용하여 동일한 클래스의 비선형성에 대해 직교를 정확하게 만듭니다.

따라서 귀하의 질문에 대답하기 위해, 거래 처리는 소산을 추가하지 않습니다. 절차의 모든 단계가 정확했기 때문에 알 수 있습니다.


1

@Malcolm은 FFT 기반 컨볼 루션 합계의 거래에 대해 전문가에게 설명했습니다. 그러나 내 직감은 이것이 여전히 @ abberation에 필요한 완전한 대답은 아니라고 말하므로 숫자 방법을 이해하기위한 내 자신의 투쟁을 반영하는 문장을 몇 개 더 줄 것입니다.

앨리어싱 제거는 수치 소산으로 작동하지 않지만 수치 소산과 동일하게 작동하므로 시뮬레이션이 폭발하지 않습니다.

시뮬레이션은 어떻게 폭발합니까?

높은 파동 수에서 낮은 파수로 에너지의 비 물리적 전달이 있는데, 이는 먼저 불안정성을 야기합니다 (종종 심 포스트-2 시간 파, h- 그리드 노드 거리, 그리드에 표시 될 수있는 가장 작은 파동).

그 이유는 그리드로 나타낼 수있는 낮은 웨이브 넘버로 높은 웨이브 넘버를 앨리어싱하기 때문입니다. 이로 인해 높은 스펙트럼 수의 진폭 (판독 에너지)이 비 물리적으로 증가하는 "스펙트럼 차단"이 발생합니다. 이는 표시된 파형 수의 상한에 가까워 질수록 악화됩니다.

첫 번째 해결책 (Philips, 1959) : 표시된 파수 스펙트럼의 상반부를 필터링하거나 0으로 만듭니다.

두 번째 치료법 (Orszag, 1971) : Orszag의 Two-Thirds 규칙으로 알려진 치료법. Steven은 "파수의 절반을 걸러내는 것은 낭비이므로 2 / 3N을 유지하고 위쪽 1 / 3N 만 걸러 내야한다"고 말했다.

결론.

우리의 시뮬레이션은 때때로 폭파하는 경향이 있습니다. 2 차, 유한 체적 우주 (이 라인의 저자처럼)에 살고 스펙트럼 방법에 대해 아는 것이 없다면 "오 시뮬레이션이 터져 나가는가? 중앙 체계 대신 1 차 상향식을 사용하거나 지연 보정 방법에서 10 %의 업 윈드를 갖는 중앙 구성표. 중앙 계획과 Smagorinsky는 가장 낮은 규모에서 발생하는 물리적 소산을 모델링 할 것입니다. " Spectral Methods 우주에 살고 있다면, 비 물리적 에너지 전달이 어떻게 이루어지는 지 배우고, 2/3 규칙 또는 "패딩"에 의한 해결법을 찾을 수 있습니다.

이 게시물에 대한 영감은 J. Boyd "Chebyshev and Fourier Spectral Methods", section 11의 멋진 책입니다.

내 충고는 :

육체적으로 또는 스펙트럼 적으로 행동하지만 스펙트럼으로 생각하십시오! ( "전 세계적으로 생각하려면 현지에서 행동하십시오."


1

"별칭 제거"와 관련된 에너지 누출은 없지만, 항상 처리 여부에 관계없이 잘림과 관련된 에너지 누출이 있습니다. 설명하겠습니다 :

모드 k 까지 스펙트럼 컨텐츠를 갖는 두 개의 함수 fg가있는 경우 , 제품 fg 는 모드 컨텐츠를 모드 2k 까지 보유합니다 . 그러나 각 단계마다 표현의 스펙트럼 내용이 두 배가되는 것을 원하지 않습니다. 따라서 제품 fg 를 첫 번째 k 모드 로 자르 려고합니다 . 이렇게하면 k 보다 높은 모드에 포함 된 에너지가 손실됩니다 .

앨리어싱 제거 (또는 앤티 앨리어싱 제거)는 fg 의 표현에서 최대 k 까지의 모드 가 올바른지 확인 하지만 k 보다 큰 모드 는 폐기됩니다.

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