
Pympdata는 Smolarkiewicz et al. 지구 물리학 적 유체 역학에 사용 및 1D, 2D 및 3D 구조화 된 메쉬에서 조정 변환과 함께 수치 적으로 해결하기 위해 사용됩니다.
요컨대, PympData는 다음 방정식을 수치 적으로 해결합니다.
스칼라 필드
Pympdata 문서는 pdoc 통해 생성됩니다.
PyMPDATA-MPI 라는 별도의 프로젝트는 numba-mpi 사용하여 PympData.applications에서 분산 메모리 병렬 처리를 가능하게하고 구현 및 성능의 검증을 제공하는 방법을 보여줍니다.
PIMPDATA를 설치하려면 pip install PyMPDATA (또는 pip install git+https://github.com/open-atmos/PyMPDATA.git 를 설치하여 최신 릴리스 이상의 업데이트를 얻습니다). Pympdata는 NumPy 와 Numba 에 의존합니다.
패키지로 배송 된 테스트를 실행하려면 pip install PyMPDATA[tests] 와 함께 PIP가 호출되는 경우 설치되는 추가 패키지가 필요합니다.
Pympdata 예제는 Pympdata와 함께 묶여 있으며 examples 하위 폴더에 위치합니다. PYPI에서도 구할 수있는 별도의 PyMPDATA_examples Python 패키지를 구성합니다. 이 예제에는 PyMPDATA_examples package setup.py 파일에 추가 종속성이 나와 있습니다. 예제를 실행하려면 PyMPDATA_examples 패키지를 설치해야합니다. 예제 패키지에는 Jupyter 노트북이 포함되어 있기 때문에 (실행은 쓰기 액세스가 필요합니다) 제안 된 설치 및 발사 단계는 다음과 같습니다.
git clone https://github.com/open-atmos/PyMPDATA-examples.git
cd PyMPDATA-examples
pip install -e .
jupyter-notebook
또는 pip install PyMPDATA-examples 사용하여 pypi.org에서 예제 패키지를 설치할 수도 있습니다.
Pympdata 인터페이스를 구성하는 주요 클래스는 아래에 요약되어 있습니다.
Options 클래스는 알고리즘 변형 옵션과 일부 구현 관련 플래그를 모두 그룹화합니다.
Pympdata에서, 용액 도메인은 첫 번째 셀의 경계에서 마지막 셀의 경계로 확장되는 것으로 가정합니다 (따라서 첫 번째 스칼라 필드 값은 ScalarField 및 VectorField 클래스는 Arakawa-C Staggered Grid Logic을 구현합니다.
경계 조건은 BoundaryCondition 으로 정의 된 클래스로 구현됩니다.
MPData 반복 솔버의 논리는 Stepper 클래스에 의해 PympData에 표시됩니다.
Solver 클래스의 인스턴스는 통합 및 액세스 솔루션 데이터를 제어하는 데 사용됩니다. 인스턴스화 중에, 솔버가 요구하는 추가 메모리는 제공된 옵션에 따라 할당됩니다.
프로젝트에 새 코드를 제출하면 Github Pull 요청 (또는 Pympdata -remamples PR 사이트가 예제 작업을 수행하는 경우 PR 사이트)을 사용하십시오. 코드 작성자의 기록을 유지하고 코드 검토 워크 플로우를 추적하고 보관하고 새로운 추가 코드로 테스트 실행을 자동화하는 지속적인 통합 설정을 통해 이익을 얻을 수 있습니다.
현재 Pympdata 전체 코드베이스에 대한 저작권은 Jagiellonian University (2019-2023) 및 AGH University of Krakow (2023 이후)와 함께 주요 관리자의 직장입니다. 코드 기여는 저작권의 전송을 암시하는 것으로 가정합니다. 예외를 만들 필요가있는 경우, 풀 요청을 만들거나 다른 방식으로 코드를 기여할 때 표시하십시오. 어쨌든 기여한 코드의 라이센스는 GPL v3과 호환되어야합니다.
코드를 개발하면 파이썬의 길과 키스 원칙을 따릅니다. Codebase는 Pycharm 코드 검사 및 Pylint Code Analysis (Pylint Checks는 CI 워크 플로의 일부)의 혜택을 누 렸습니다.
Pympdata의 잘못된, 직관적이지 않거나 문서화되지 않은 Bahaviour에 관한 문제는 Github 문제 추적기에서보고하는 것이 가장 좋습니다. 기능 요청은 "아이디어 ..."Pympdata Wiki 페이지에 기록됩니다.
Pympdata 코드를 이해, 사용 및 확장하는 데 대한 지원을 구하기 위해 Github 토론 기능 (문제 추적기가 아닌)을 사용하는 것이 좋습니다.
PyMPDATA-examples 에 Pympdata 문제 추적 및 Dicsussion Infrastructure를 사용하십시오. 우리는 귀하의 기여와 피드백을 기대합니다.
폴란드 과학 재단 (POIR.04.04.00-00-5E1C/18)과 폴란드 국립 과학 센터 (Grant No. 2020/39/D/ST10/01220)의 보조금을 통해 PympData의 개발은 EU에 의해 지원되었습니다.
저작권 : Jagiellonian University (2019-2023) & AGH University of Krakow (2023 이후)
라이센스 : GPL V3