
Pympdata ist eine hochleistungsfähige pythonische Implementierung des mpdata-Algorithmus von Smolarkiewicz et al. Wird in der geophysikalischen Flüssigkeitsdynamik und darüber hinaus zur numerischen Lösung generalisierter Konvektionsdiffusionspdes in 1D-, 2D- und 3D-strukturierten Maschen mit Koordinatentransformationen verwendet.
Kurz gesagt, Pympdata löst die folgende Gleichung numerisch:
Wo Skalarfeld
Die PYMPDATA -Dokumentation wird über pdoc generiert.
Ein separates Projekt namens PyMPDATA-MPI zeigt, wie numba-mpi verwendet werden kann, um die parallelistische Verteilungsspeicher in Pympdata zu ermöglichen. Anwendungen und eine Validierung der Implementierung und ihrer Leistung.
Um PYMPDATA zu installieren, kann man verwenden: pip install PyMPDATA (oder pip install git+https://github.com/open-atmos/PyMPDATA.git um Updates über die neueste Version hinaus zu erhalten). Pympdata hängt von NumPy und Numba ab.
Das Ausführen der mit dem Paket ausgelieferten Tests erfordert zusätzliche Pakete, die installiert werden, wenn PIP aufgerufen wird mit: pip install PyMPDATA[tests] .
PYMPDATA -Beispiele werden mit PYMPDATA gebündelt und finden Sie in den examples des Unterordners. Sie bilden ein separates Python -Paket PyMPDATA_examples , das auch bei PYPI erhältlich ist. Die Beispiele haben zusätzliche Abhängigkeiten, die in der Datei PyMPDATA_examples -Paket setup.py aufgeführt sind. Das Ausführen der Beispiele erfordert, dass das Paket PyMPDATA_examples installiert wird. Da das Beispielpaket Jupyter -Notizbücher enthält (und deren Ausführung erfordert Schreibzugriff), sind die vorgeschlagenen Installations- und Startschritte:
git clone https://github.com/open-atmos/PyMPDATA-examples.git
cd PyMPDATA-examples
pip install -e .
jupyter-notebook
Alternativ kann man auch das Beispielpaket von PYPI.org mithilfe der pip install PyMPDATA-examples installieren.
Die Schlüsselklassen, die die PYMPDATA -Grenzfläche bilden, sind unten zusammengefasst.
Die Options gruppieren sowohl Algorithmusvariantenoptionen als auch einige Flaggen im Zusammenhang mit der Implementierung.
In Pympdata wird angenommen ScalarField und VectorField implementieren die Arakawa-C-gestaffelte Gitterlogik.
Die Randbedingungen werden als in BoundaryCondition definierte Klassen implementiert.
Die Logik des mpdata iterativen Lösers wird in Pympdata von der Stepper -Klasse dargestellt.
Instanzen der Solver -Klasse werden verwendet, um die Integrations- und Zugriffslösungsdaten zu steuern. Während der Instanziierung wird der vom Solver erforderliche zusätzliche Speicher gemäß den bereitgestellten Optionen zugewiesen.
Wenn Sie neue Code an das Projekt senden, verwenden Sie bitte vorzugsweise Github Pull -Anfragen (oder die PYPDATA -Examples PR -Website, wenn Sie an Beispielen arbeiten). Es hilft, den Code -Autorschaft aufzuzeichnen, den Code -Überprüfungs -Workflow zu verfolgen und zu archivieren, und ermöglicht es, vom Continuous Integration Setup zu profitieren, das die Ausführung von Tests mit dem neu hinzugefügten Code automatisiert.
Der Urheberrecht der gesamten Pympdata -Codebasis ist ab sofort bei der Jagiellonian University (2019-2023) und der AGH University of Krakow (2023) - Arbeitsplätze des Hauptbetriebs. Es wird angenommen, dass Codebeiträge die Übertragung des Urheberrechts implizieren. Sollte eine Ausnahme erforderlich sein, geben Sie diese bitte an, wenn Sie eine Pull -Anfrage erstellen oder Code auf andere Weise beitragen. In jedem Fall muss die Lizenz des mitgesteuerten Code mit GPL V3 kompatibel sein.
Wir entwickeln den Code und folgen dem Weg von Python und dem Kussprinzip. Die Codebasis hat stark von Pycharm -Code -Inspektionen und Pyndint -Codeanalyse profitiert (Pylton -Checks sind Teil der CI -Workflows).
Fragen zu falschen, unintuitiven oder undokumentierten Bahaviour von Pympdata sind am besten im GitHub -Problemverfolger gemeldet. Feature -Anfragen werden auf der Seite "Ideen ..." Pympdata Wiki aufgezeichnet.
Wir ermutigen, die Funktion der GitHub -Diskussionen (anstelle des Problems) zu verwenden, um Unterstützung beim Verständnis, Verwenden und Erweitern von PYMPDATA -Code zu erhalten.
Bitte verwenden Sie auch die PYMPDATA-Issue-Tracking- und DicsSussion-Infrastruktur für PyMPDATA-examples . Wir freuen uns auf Ihre Beiträge und Ihr Feedback.
Die Entwicklung von Pympdata wurde von der EU durch eine Gewährung der Stiftung für polnische Wissenschaft (Poir.04.04.00-00-5E1c/18) und vom polnischen National Science Center (Zuschuss Nr. 2020/39/D/ST10/01220) unterstützt
Copyright: Jagiellonian University (2019-2023) & AGH University of Krakow (ab 2023)
Lizenz: GPL v3