PDE를 해결하기위한 멀티 그리드 방법


15

Multigrid Method에 대한 간단한 설명이나 이에 관한 문헌이 필요합니다.

BiCGStab, CG, GS, Jacobi 및 사전 조건을 포함한 반복 방법에 익숙하지만 다중 그리드 방법을 사용하는 초보자입니다.

누군가 초보자에게 좋은 문헌을 가지고 있더라도 이것을 자세히 설명하거나 적어도 의사 코드 또는 소스 코드를 명확하게 제공 할 수 있습니까? 감사!

답변:


15

멀티 그리드의 기본 아이디어는 프로젝션입니다. 나는 다음과 같이 생각하려고합니다.

PDE를 많은 정확도로 풀고 싶다고 가정하고, 많은 점이있는 매우 미세한 격자에서 도메인을 구별하십시오 (예 : 유한 차분 법 사용). 결국, 나는 방정식 시스템을 설정했고 그것을 풀 준비가되었습니다. 좋아하는 반복 솔버 (jacobi, gauss seidel, 켤레 그라디언트 등)를 사용해보십시오. 하루 이상 기다렸다가 컴퓨터가 여전히 답을 계산하려고한다는 것을 알았습니다 !!!

이러한 반복 방법이 빠르게 작동하지 않는 이유는 (일반적으로) 이와 같은 큰 방정식 시스템을 설정할 때 행렬 자체의 고유 값이 1에 매우 가깝기 때문입니다. 왜 이런 문제가 발생합니까? 많은 반복 방법의 수렴 속도는 가장 큰 고유 값과 반비례하기 때문에 (Christian Clason의 Brigg 's Multigrid Tutorial Slides, 27 페이지 1 부 링크 참조) 따라서 가장 큰 고유 값이 1에 가까울수록 반복 방법이 느려집니다. (참고 : 이것은 약간 단순화되었지만 멀티 그리드의 필요성을 자극하는 데 도움이됩니다).

알 수없는 것이 적 으면 (즉, 그리드 포인트가 적은 거친 그리드) 문제를 해결하는 것이 항상 더 빠릅니다. 그러나 더 중요한 것은 더 거친 그리드의 솔루션 (또는 대략적인 솔루션)이 더 미세한 그리드에서 문제를 해결하기위한 좋은 출발점입니다. 이것이 대부분의 멀티 그리드 메소드의 핵심 아이디어입니다. 왜 이런 경우입니까? 직관적으로 말이 되겠지만, 이것을 정당화하는 수학적으로 엄격한 방법이 있습니다.

원래의 미세 그리드 문제에 적용되는 반복적 방법 (자세한 경우, jacobi 또는 gauss seidel이라고 함)에서 오류의 푸리에 모드를 살펴 보겠습니다. 처음 몇 번의 반복에서 고주파 (고진동) 오류의 대부분이 제거되는 것을 볼 수 있습니다! 이것은 훌륭하지만, 여전히 남아 있고 빠르게 사라지지 않는 저주파 (진동이 적은) 오류가 있습니다. 실제로, 표준 반복 방법이 빠르게 수렴하지 못하게하는 것은 저주파 오류입니다.

굵은 격자에서 문제를 해결하면 (예를 들어, jacobi 또는 gauss-seidel과 같은 반복 방법 으로) 미세 격자보다 훨씬 낮은 주파수 오류를 훨씬 더 빠르게 (즉, 더 적은 반복으로) 제거 할 수 있습니다 . 따라서 거친 그리드의 문제를 해결하면 더 낮은 주파수 오류가 크게 줄어든 솔루션이 있습니다. 따라서 더 미세한 그리드에서 반복적 인 방법의 시작점으로 유용합니다.

다른 멀티 그리드 방법이 있지만 대부분은 다음과 같은 변형으로 작동합니다.

  1. 미세 그리드 문제로 시작
  2. 거친 그리드에 투사 ( 제한 이라고도 함 )
  3. 대략 그리드의 솔루션 근사값 (다른 솔버 사용)
  4. (또한으로 알려진 미세한 격자 상에 거친 그리드 솔루션 프로젝트 연장을 )
  5. 초기 추측으로 4.의 투영을 사용하여 반복적 인 방법으로 미세 그리드 문제를 해결합니다.

나에게 멀티 그리드 방법의 가장 어려운 부분은 그리드 간의 투영입니다. @ChristianClason이 제안한 Briggs 튜토리얼은이 주제를 내가 할 수있는 것보다 훨씬 잘 처리합니다.


자세한 답변 감사합니다! 이제 multigrdi 방법에 대한 기본 지식이 있습니다. 이제 제한 및 연장 프로세스에 대한 특정 질문이 있습니다. Restriction matrix R과 Interpolation Matrix M과 A2 = RAI와 같은 공식이 그리드 사이의 투영을 수행하는 데 사용되었다는 것을 읽었습니다. 그러나 행렬 R과 I를 구성하는 방법을 이해하지 못했습니다. 이것에 대한 아이디어가 있습니까?
Nurlan

ChristianClason이 게시 한 Briggs 멀티 그리드 튜토리얼 (1 부)의 슬라이드 45-57을보십시오. 여기에서 Briggs는 Geometric Multigrid Method의 프로세스를 설명합니다. 그것이 내가 찾을 수있는 가장 간단한 설명입니다. 더 궁금한 점이 있으면 언제든지 새로운 질문을 게시하십시오. :)
Paul

15

이 사이트는 의사 코드에 대한 자세한 설명을 요청하기에 적합하지 않습니다 ( FAQ , "질문에 대한 답변이있는 책 전체를 상상할 수 있다면 너무 많이 요구하고 있습니다"). 이 주제에 대한 고전 서적 중 하나 (아래에 나열)에서 시작하여 문제가있는 구체적인 세부 사항에 대한 특정 질문으로 돌아갑니다.


2
브릭스는 정말 좋습니다!
vanCompute

5

또 다른 고전 :

  • Wesseling, Multigrid Methods 소개, John Wiley & Sons, 1992.

예제 코드는 MGNet 에서 찾을 수 있습니다

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