구조화 된 그리드 적응 형 메쉬 개선을위한 범용 라이브러리가 있습니까?


18

AMR ( Adaptive Mesh Refinement )은 PDE의 수치 솔루션에서 광범위하게 변화하는 공간 스케일 문제를 처리하기위한 일반적인 기술입니다. 구조화 된 그리드에 AMR에 대해 어떤 범용 라이브러리가 있습니까? 라이브러리가 적응 형 메쉬 만 처리하고 물리 및 이산화 (유한 차이 / 볼륨 / 요소)를 제공하는 PETSc의 정신에 이상적입니다.

이상적인 도서관은

  • 모듈 식 : 내 코드 또는 너무 많은 데이터 구조를 작성하는 방법을 지시하지 않습니다.
  • 일반 : 내가 어떤 종류의 이산화를 사용하는지 상관하지 않습니다.
  • 효율적 : 너무 많은 오버 헤드가 발생하지 않습니다
  • 병렬 및 확장 성

이러한 기준 중 일부에만 적합한 라이브러리는 여전히 관심 대상입니다.

부록 : 나는 Donna Calhoun의 광범위한 AMR 패키지 목록을 알고 있지만, 위의 기준에 맞는 패키지 가 있는지는 모른다. 그래서 나는 주로 하나 이상의 패키지에 대한 실제 경험이있는 사람들의 의견에 관심이 있습니다.


2
+1, AMR 소프트웨어가 무엇인지 궁금해서 위에서 언급 한 기준을 만족시키기를 원합니다.
Geoff Oxberry

Chombo 의 최신 버전 이 방금 출시되었으며 더 큰 패키지에 통합하기가 더 쉬워야 한다고 언급했습니다 ( Release notes ). 주요 개정판이 아니기 때문에 일부 기준이 여전히 모든 기준을 충족시키지 못할 가능성이 있습니다.
Jeremy Kozdon

답변:


14

고려해야 할 라이브러리 중 하나는 BoxLib 입니다. 웹 사이트의 주요 기능은 다음과 같습니다.

  • 선택적으로 시간에 따라 서브 사이클링을 사용하여 블록 구조 AMR 지원
  • 셀 중심, 얼굴 중심 및 노드 중심 데이터 지원
  • 계층 적 그리드 구조에서 쌍곡선, 포물선 및 타원 해결 지원
  • C ++ 및 Fortran90 버전
  • MPI 및 OpenMP로 하이브리드 프로그래밍 모델 지원
  • 연소, 천체 물리학, 우주론 및 다공성 매체에서의 성숙한 응용의 기초
  • 200,000 개 이상의 프로세서로 확장 시연
  • 관심있는 사용자에게 무료로 제공
  • 도있다 파이썬 래퍼 (이 상당히 젊은 있지만)에 포함 된 포트란 버전 (내가 쓴이).


    9

    libMesh 도 살펴 봐야 합니다. 유한 요소 방법을 목표로하지만 그 외에는 대부분의 상자를 확인한다고 생각합니다. BoxLib와 달리 완전히 구조화되지 않은 혼합 요소 유형 라이브러리입니다. 동일한 라이브러리에서 tets, pyramids, prisms 및 hexahedra를 지원합니다. 또한 고차 다항식 기저 함수에 대한 가장 큰 통합 규칙 세트 중 하나를 가지고 있습니다. PETSc (및 다른 라이브러리도)를 직접 호출 할 수 있도록 설정되었으므로 PETSc와 동일한 솔버 확장 성을 갖습니다.

    확실히 libMesh 방식으로 작업을 수행하지만 PETSc 방식으로 작업을 수행합니다. 잘만되면 그것은 당신을 놀라게하지 않습니다.


    4

    SAMRAI를 시도해 보았습니다 . AMR과 유체-구조 상호 작용을위한 침지 경계 방법 코드 인 IBAMR 을 성공으로 사용하는 코드가 하나 이상 있습니다.


    감사합니다 Johntra (그리고 scicomp에 오신 것을 환영합니다)! SAMRAI와 BoxLib의 현저한 차이점을 알고 있습니까? 또한 링크 텍스트를 []에 입력하고 ()에 대상을 입력하여 링크를 인라인으로 사용할 수 있습니다.
    Aron Ahmadia

    불행히도 나는 사실에 대해 처음으로 방금 들었습니다 (BoxLib). 이것이 내가 가입하기로 결정한 이유입니다.
    Johntra Volta 2012

    SAMRAI에 이어 두 번째로 AMR을위한 매우 유용한 범용 프레임 워크입니다. 나는 또한 저자가 선호하는 하이브리드 C ++ / Fortran 디자인을 좋아한다. Fortran에서 계산 커널을 작성할 수 있으며 C ++ 클래스는 내부 MPI 및 메모리 관리를 숨기는 데 필요한 모든 추상화를 제공합니다.
    talonmies

    @AronAhmadia : BoxLib은 셀 중심 기하 멀티 그리드에서 Dirichlet 경계를 변경하여 부분 선형 보간을 처리 할 수 ​​없습니다. 흥미로운 점으로 생각할 것입니다.
    Gaurav Saxena 2016 년

    2

    구조화 또는 비 구조화를 지정하지 않았습니다.

    Paramesh, Pyramid, p4est, Dendro, Samrai 및 Chombo를 살펴보십시오.

    Btw Pyramid는 거친 작업을 수행하지 않습니다.


    1
    좋은 캐치; 질문을 편집했습니다. 이 라이브러리가 내 기준에 얼마나 잘 맞는지 언급 할 수 있습니까?
    David Ketcheson
    당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
    Licensed under cc by-sa 3.0 with attribution required.