
Pympdata-это высокопроизводительная питоническая реализация NUMBA, ускоренная NUMBA Алгоритма MPDATA Smolarkiewicz et al. Используется в геофизической динамике жидкости и за его пределами для численного решения общей конвекционной диффузии в 1D, 2D и 3D-структурированных сетках с координатными преобразованием.
Короче говоря, PIMPDATA численно решает следующее уравнение:
Где скалярное поле
Документация по пимпате генерируется через pdoc .
В отдельном проекте под названием PyMPDATA-MPI изображено, как numba-mpi можно использовать для обеспечения параллелизма распределенной памяти в Pympdata.applications и обеспечить проверку реализации и ее производительности.
Для установки Pympdata можно использовать: pip install PyMPDATA (или pip install git+https://github.com/open-atmos/PyMPDATA.git чтобы получить обновления помимо последнего релиза). Пимпата зависит от NumPy и Numba .
Запуск тестов, поставляемых с пакетом, требуют дополнительных пакетов, которые установлены, если PIP вызывается: pip install PyMPDATA[tests] .
Примеры ПИМПДАТА в комплекте с ПИМПДАТАМИ и расположены в подпапке examples . Они представляют собой отдельный пакет Pyphon Pyphon PyMPDATA_examples , который также доступен в PYPI. Примеры имеют дополнительные зависимости, перечисленные в файле PyMPDATA_examples Package.py setup.py . Запуск примеров требует установки пакета PyMPDATA_examples . Поскольку пакет примеров включает в себя ноутбуки Юпитера (и их выполнение требует доступа к записи), предлагаемые шаги установки и запуска::
git clone https://github.com/open-atmos/PyMPDATA-examples.git
cd PyMPDATA-examples
pip install -e .
jupyter-notebook
В качестве альтернативы, можно также установить пакет примеров от pypi.org, используя pip install PyMPDATA-examples .
Ключевые классы, составляющие интерфейс Pympdata, приведены ниже.
Группы классов Options как варианты варианта алгоритма, так и некоторые флаги, связанные с реализацией.
Предполагается, что в ПИМПИМСКОМ ПИМПАНЕ ПРЕДОСТАВЛЯЕТСЯ ПРОТИВ ГРЕСТИ ПЕРВАЯ КАРТА К ГРАНИИ последней ячейки (таким образом ScalarField и VectorField реализуют логику шахмальной сетки Arakawa-C.
Граничные условия реализованы как классы, определенные в BoundaryCondition .
Логика итерационного решателя MPData представлена в PIMPDATA классом Stepper .
Экземпляры класса Solver используются для управления данными решений интеграции и доступа. Во время экземпляра дополнительная память, требуемая решателем, выделяется в соответствии с предоставленными параметрами.
Отправляя новый код в проект, пожалуйста, предпочтительно используйте запросы на вытягивание GitHub (или PR -сайт PRIPMPLAS -Examples, если они работают над примерами) - это помогает вести учет авторства кода, отслеживать и архивировать рабочий процесс проверки кода и позволяет извлечь выгоду из непрерывной настройки интеграции, которая автоматизирует выполнение тестов с помощью недавно добавленного кода.
На данный момент, авторское право на кодовую базу Pympdata связано с Яджеллонским университетом (2019-2023) и Аг Университет Кракова (2023 год) - рабочие места главного сопровождающего. Предполагается, что взносы кода подразумевают передачу авторского права. Если необходимо сделать исключение, пожалуйста, укажите его при создании запроса на вытяжение или внесение кода любым другим способом. В любом случае, лицензия внесенного кода должна быть совместима с GPL V3.
Разработка кода, мы следуем по пути Python и Принципа KISS. Кодовая база значительно выиграла от проверки кода Pycharm и анализа кода Pylint (проверки Pylint являются частью рабочих процессов CI).
Проблемы, касающиеся любого неверного, неинтуитивного или незарегистрированного бахавиура Пимпаты, лучше всего сообщать о трекере выпуска GitHub. Запросы на функции записаны на странице «Идеи ...» Вики.
Мы рекомендуем использовать функцию дискуссий GitHub (а не трекер выпуска) для поиска поддержки в понимании, использовании и расширении кода Pymdata.
Пожалуйста, используйте инфраструктуру для отслеживания проблем и диксуссоров в ПИМПППП, а также для PyMPDATA-examples . Мы с нетерпением ждем вашего вклада и отзывов.
Развитие ПИМПДАТА была поддержана ЕС посредством гранта Фонда польской науки (POIR.04.04.00-00-5E1C/18) и Польским национальным научным центром (грант № 2020/39/D/ST10/01220)
Авторские права: Ягеллонский университет (2019-2023) и Ах Университет Кракова (2023 год)
Лицензия: GPL V3