Przejdź do treści Przejdź do stopki

Symulacje i programy

Symulacje komputerowe stanowią nieodzowne narzędzie naszej pracy. Specjalizujemy się zarówno w wykorzystaniu modeli numerycznych w badaniach środowiska, jak i w rozwoju otwartego oprogramowania naukowego znajdującego zastosowanie w fizyce środowiska i szerzej, w naukach obliczeniowych. Do wysokowydajnych obliczeń wykorzystujemy superkomputery ACK Cyfronet AGH. Metody i zastosowania symulacji numerycznych oraz inżynieria oprogramowania są częścią naszej oferty dydaktycznej. Wykorzystujemy model rozwoju i dystrybucji otwartego oprogramowania do transferu wiedzy pomiędzy dziedzinami nauki, jak i w kierunku użytkowników spoza środowiska naukowego.

Operacyjna prognozy pogody ZFŚ AGH (WRF)

Wykorzystujemy otwarty system prognozowania pogody WRF skonfigurowany do obliczania 48-godzinnych symulacji dla obszaru obejmującego cały kraj, z warunkami początkowymi i brzegowymi pobieranymi z systemu NOAA GFS. Prognozy są publicznie dostępne w formie map pogodowych i meteogramów na stronie internetowej meteo.fis.agh.edu.pl.

Symulacje numeryczne dynamiki atmosfery

Wykorzystujemy nowoczese narzędzia numeryczne do badania dynamiki atmosfery, cyklu węgla i innych pierwiastków w skalach lokalnych i regionalnych. Jesteśmy zaangażowanie w szkolenie studentów w wykorzystaniu nowoczesnych narzędzi numerycznych w ramach zajęć dydaktycznych oraz projektów badawczych.

 

Nasz zespół prowadzi badania naukowe przy użyciu modeli eulerowskich (np. WRF) oraz lagranżowskich (np. Hysplit, STILT). Używamy ich zarówno na własnym klastrze obliczeniowym, jak i na współdzielonych maszynach Akademickiego Centrum Komputerowego Cyfronet AGH.

 

Inżynieria oprogramowania naukowego

kontakt: podzespół open-atmos-krk

Nasz zespół, wraz z współtwórcami z innych instytucji, jak również z udziałem studentów AGH, rozwija i utrzymuje kilka otwartych pakietów pythonowych:

numba-mpi numba-mpi PyPI package numba-mpi conda package numba-mpi AUR package

Dostęp do wywołań Message Passing Interface (MPI) z poziomu kodu Pythona wykorzystującego kompilator just-in-time (JIT) Numba, co pozwala na implementację w Pythonie wysokowydajnego i wielowątkowego oprogramowania wykorzystującego MPI wewnątrz JIT-kompilowanego kodu

przykład użycia: pakiet py-pde rozwijany w Instytucie Dynamiki i Samoorganizacji Towarzystwa Maxa-Plancka

więcej w artykule z SoftwareX: Derlatka et al. 2024


 

PySDM PySDM PyPI package & PySDM-examples PySDM-examples PyPI package

Pakiet do symulacji Monte-Carlo dynamiki układów złożonych z aerozolu atmosferycznego, chmur i opadów (algorytm Super-Droplet Method), pełniący rolę komponentu odpowiedzialnego za reprezentację chmur w symulacjach przepływów atmosferycznych, wykorzystujący CPU (Numba) i GPU (CUDA)

przykład użycia: metoda kalibracji parametryzacji chmur do modeli klimatu zaproponowana w zespole CliMA na Caltechu

więcej w artykułach z JOSS: Bartman et al. 2022, de Jong et al. 2023


 

PyMPDATA PyMPDATA PyPI package, PyMPDATA-examples  PyMPDATA-examples PyPI package & PyMPDATA-MPI PyMPDATA-MPI PyPI package

Implementacja w Pythonie, wykorzystująca kompilator JIT Numba, algorytmu Smolarkiewicza "MPDATA" używanego w obliczeniowej dynamice płynów i innych dziedzinach, do numerycznego całkowania uogólnionych równań różniczkowych cząstkowych konwekcji-dyfuzji (tu: w 1D, 2D i 3D, na siatkach regularnych, w tym z wykorzystaniem przekształceń współrzędnych)

więcej w artykule z JOSS: Bartman et al. 2022


 

PyPartMC PyPartMC PyPI package

Interfejs dla języka Python do narzędzia PartMC do symulacji Monte-Carlo ewolucji cząstek aerozolu atmosferycznego, rozwijany z zespołem z Uniw. Illinois Urbana-Champaign

więcej w artykule z SoftwareX: D'Aquino et al. 2024


 

open-atmos-jupyter-utils open-atmos-jupyter-utils PyPI package

Dlaczego domyślny format grafiki w notebookach Jupyter to raster a nie SVG? Dlaczego pod każdym wykresem nie ma opcji "zapisz jako pdf/svg"? Jak umieścić w notebooku animację, która będzie wyświetlana na GitHubie? Oto rozwiązania: wystarczy zamienić pyplot.show() na show_plot(), a do animacji użyć show_anim()!

Stopka