这个项目能做什么
Oceananigans.jl 是一个 Julia 软件包,用于对非静力和静力 Boussinesq 方程进行有限体积模拟,面向海洋风格的流体动力学。它支持笛卡尔域和球壳域,并可在 CPU 或支持 CUDA 的 Nvidia GPU 上运行;通过加载 CUDA.jl 并将架构参数从 CPU() 切换为 GPU(),即可启用 GPU 执行。
该项目强调灵活的用户界面:简单模拟可以用很短的代码表达,同时更复杂的配置也仍然可以实现。一个最小示例会构建 RectilinearGrid,创建一个使用 WENO 平流的 NonhydrostaticModel,设置随机初始速度场,定义一个带有时间步长和停止时间的 Simulation,然后运行它。
文档涵盖示例脚本、关于关键对象和函数的教程、有限体积数值方法的说明、所求解的动力学方程,以及面向用户的对象和函数的库参考。社区资源包括用于计算科学和实验性功能的 GitHub Discussions、包含 Julia 设置、GPU 访问和高效工作流技巧的 wiki,以及 Slack 频道和 issue/PR 历史。
开发由社区驱动,并有学术界和工业界贡献者参与;测试基础设施由 atdepth 和 Climate Modeling Alliance 提供。该软件包采用 MIT 许可证,可从已注册的 Julia 包注册表安装,要求 Julia 1.10 或更高版本。README 列出了若干模型开发论文,涵盖 Runge-Kutta 时间步进、可微分地球系统建模、基于 WENO 的动量平流、GPU 海洋动力核心以及 CATKE 垂直扩散率,并邀请引用概述论文。性能基准在公开仪表板上跟踪,并指出 GPU 饱和通常需要大约一千万个网格点或更多,而且由于转换开销,Float32 未必总是比 Float64 更快。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。