CliMA/Oceananigans.jl
🌊 Julia software for fast, friendly, flexible, ocean-flavored fluid dynamics on CPUs and GPUs
Oceananigans.jl – Julia による高速・柔軟な海洋規模の流体動力学シミュレーション
概要 – Oceananigans は、デカルト座標系または球殻座標系上の非圧縮 Boussinesq 方程式(非静力学および静力学の両方)を解くためのオープンソースの Julia パッケージです。有限体積法による離散化を用い、CPU および CUDA 対応の GPU で動作するため、研究者はわずか数行のコードで高解像度の海洋シミュレーションのプロトタイプ作成と実行が可能です。
主な機能
- モデル:
NonhydrostaticModel,HydrostaticFreeSurfaceModelおよび関連するバリエーション。 - グリッド:直角座標、曲線座標、および設定可能なトポロジー(周期境界、平面など)を持つ球殻座標系グリッド。
- 数値計算:一連の平流スキーム(例:WENO, WENOVectorInvariant)、Runge-Kutta 法による時間ステップ、および
CATKEVerticalDiffusivityやTKEDissipationVerticalDiffusivityなどの乱流閉鎖モデル。 - GPU 加速:
CUDA.jlをロードした後、CPU()をGPU()に切り替えるだけで、Nvidia GPU 上で同じコードを実行し、大規模(約 10M セル)の問題に対して桁違いの速度向上を実現します。 - 微分可能ワークフロー:
Enzyme.jlおよびReactant.jlとの統合により、モデルコンポーネントの自動微分が可能になり、データ同化や機械学習ループ内での研究を可能にします。 - パフォーマンス・トラッキング:公開ダッシュボードを備えた継続的なベンチマーク・スイートを提供し、多くのモデル構成におけるステップごとの壁時計時間を記録します。
はじめに
using Pkg; Pkg.add("Oceananigans.jl") # install
using Oceananigans
# a 2-D periodic turbulence test on the CPU
grid = RectilinearGrid(CPU(), size=(128,128), x=(0,2π), y=(0,2π), topology=(Periodic,Periodic,Flat))
model = NonhydrostaticModel(grid; advection=WENO())
set!(model, u = x->2rand()-1, v = x->2rand()-1)
sim = Simulation(model; Δt=0.01, stop_time=4)
run!(sim)
using CUDA の後、CPU() を GPU() に置き換えることで、同じ実験を GPU 上で実行できます。
ドキュメント & 学習リソース
- 安定版および開発版ドキュメント:https://clima.github.io/OceananigansDocumentation/stable
- サンプルスクリプト、チュートリアル、および完全な API リファレンスはドキュメントに同梱されています。
- 議論、Q&A、コミュニティのヒントは GitHub Discussions ページおよび NumericalEarth Slack で行えます。
- Wiki には、インストール、GPU 使用法、およびワークフローのベストプラクティスに関する実用的なガイドが含まれています。
利用ユーザー Oceananigans は、学術界および産業界のグループによって、研究、教育、およびプロトタイプ気候システムモデリングのためのものとして利用されています。パッケージの使用に関する論文のリストは、ドキュメントに維持されています。
引用文献 Oceananigans に依存する研究成果を公開する場合、概要論文(Wagner et al., 2025, arXiv:2502.14148)および、使用した機能に関連する特定のモデル開発論文(例:Runge-Kutta に関する Silvestri 2026、微分可能モデリングに関する Moses 2026 など)を引用してください。
コミュニティ & 貢献
- Climate Modeling Alliance (CliMA) の下での、オープンでコミュニティ主導の開発。
- 貢献者ガイド、行動規範、および ColPrac ベストプラクティス・バッジが提供されています。
- プルリクエストによる貢献が歓迎されています。新機能やバ閉インタフェースースの議論は GitHub Discussions で行えます。
License – MIT (許容的、商業利用にフレンドリー)。
結論 – Oceananigans は、海洋学研究者や流体動力学研究者に対し、高速・使いやすい Julia 環境を提供し、単純なテストケースから大規模・GPU 加速された海洋シミュレーションの構築と実行を可能にします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト