대수 멀티 그리드 코드


9

Algebraic Multigrid Methods (AMG)의 구현에 대한 자세한 내용을 이해하고 싶습니다. 나는 "멀티 그리드 자습서"를 읽고 있는데, 이것은 매우 훌륭하며 AMG에 대한 보간, 굵은 격자 연산자 및 굵은 격자 선택에 대한 모든 세부 사항을 설명합니다. 그러나 나는 생각하고 놀고 코드를 읽는 것과 같은 것이 없다고 생각합니다.

따라서 SF McCormick의 SIAM (Multigrid Methods) 끝에서 사용할 수있는 기하학적 멀티 그리드 FORTRAN 코드와 같은 고전적인 AMG "예제 코드"를 아는 사람이 있는지 물어보고 싶습니다. 이 방법에 대해 더 배우기 위해서는 BoomerAMG와 같은 고품질 및 생산 코드를 얻는 것이 매우 어렵습니다.


(부드러운 집계와는 대조적으로) 클래식 AMG에 특히 관심이 있습니까? 그렇다면 질문에이를 기재하십시오.
Jed Brown

답변:


10

BoomerAMG는 Hypre 패키지 의 일부이며 구입이 간단합니다. 이러한 메소드를 살펴 보는 경우 훨씬 덜 복잡한 코드는 PyAMG 일 수 있습니다 .


예, 매우 훌륭한 코드 인 PyAMG를 살펴 봤지만 C / C ++ 코드를 파이썬으로 래핑하는 것과 관련하여이 모든 것들이 있으며 "클래식"방식 이외의 다른 AMG 메소드를 구현합니다. 사람들이 가르치는 데 사용하는 더 간단한 것을 찾고있었습니다.
Bernardo MR

4
불행히도, AMG 코드를 사용하고 기여하는 데 대한 일반적인 경험은 많은 옵션이 없으면 흥미로운 문제에 접근하는 것을 해결할 수 없다는 것입니다. 따라서 일반적인 AMG 패키지에는 코드 판독으로 구문 분석하기 어려운 연결성 근사, 보간 기 구성 및 스무딩에 대한 여러 옵션이 포함됩니다. 다시 말해, 고전적인 AMG는 매우 간단합니다. 직접 구현하거나 학생들이 기술 수준에 따라이를 직접 수행하도록하는 것이 좋습니다.
Peter Brune

2

Alfio Borizi의 대수 멀티 그리드 방법 소개를 적극 권장 합니다. 부록 A에 포트란 77 코드 샘플이 있습니다.


나는 그가 더 많은 문헌이 아니라 구현에 대해 묻고 있다고 생각합니다.
Jack Poulson

1
@ JackPoulson : 부록에 구현되어 있습니다.
Paul

2
죄송합니다, 오늘 아침에 읽을 수 없습니다. 공감.
Jack Poulson

1
@Paul : 틀렸을 수도 있지만 Poisson 문제 (비선형 경우에도 작동)에 대한 기하학적 멀티 그리드 코드 라고 생각합니다 .
Bernardo MR

@ BernardoM.R .:이 포스트 스크립트 파일을 찾았습니다. 모델 문제에 대한 확장 및 제한 연산자에 대한 구체적인 예가 많이 있습니다. 실제로 전체 코드는 없지만 여전히 유용 할 수 있습니다.
Paul

1

Trilinos의 일부인 ML 패키지도 있습니다. BoomerAMG / hypre의 평판과 동일합니다.

AMG의 최신 Trilinos 패키지를 MueLu라고하며 최신 릴리스에서도 사용할 수 있다고 생각합니다.

이 모든 것이 오픈 소스입니다.


1
MueLu는 공개되지 않았으며 지난번에 그와 이야기했을 때 Ray는 1 년 정도 공개 릴리스를 기대하지 않았습니다. ML과 MueLu (내가 들어 본 내용까지)는 스무딩 집계를 기반으로하며, 이는 기존 AMG (BoomerAMG가 기반으로하는)와는 상당히 다른 알고리즘입니다.
Jed Brown

1

나는 이 구현 을 잠시 동안 노력 해왔다 . Python / Numpy / Scipy입니다. 대수 멀티 그리드가 아니므로 자체 제한 연산자를 제공해야합니다. 그러나 관심있는 교육 구현이라면 그러한 기능을 추가하기위한 풀 요청을 환영합니다.

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