MIT License

项目介绍

FourierFlows/GeophysicalFlows.jl 是一个托管在 GitHub 上的开源项目,主要使用 Julia 编写,采用 MIT License 许可证,目前获得 166 个 Star、35 次 Fork。

仓库全名
FourierFlows/GeophysicalFlows.jl
开源许可证
MIT License
Star 数
166
Fork 数
35
未关闭 Issue
11

README 摘要

GeophysicalFlows.jl 💨🌏🌊 Geophysical fluid dynamics pseudospectral solvers with Julia and FourierFlows.jl . https://fourierflows.github.io/GeophysicalFlowsDocumentation/stable This package leverages the [FourierFlows.jl] framework to provide modules for solving problems in Geophysical Fluid Dynamics on periodic domains using Fourier-based pseudospectral methods. Installation To install, use Julia's built-in…

完整内容见 GitHub 原始 README 或本页 。

常见问题

GeophysicalFlows.jl 用什么语言开发?

主要使用 Julia 编写,采用 MIT License 许可证,目前有 166 个 Star。

GeophysicalFlows.jl 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 GeophysicalFlows.jl 的源码?

可以直接克隆仓库:git clone https://github.com/FourierFlows/GeophysicalFlows.jl.git,默认分支为 main;安装与运行步骤见仓库 README。

GeophysicalFlows.jl 最近还在维护吗?

仓库最近一次更新为 3 周前,当前有 11 个未关闭 Issue;Star 数为 166,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Geophysical fluid dynamics pseudospectral solvers with Julia and FourierFlows.jl.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
242
价值分
110
活跃状态
活跃

语言占比

Julia
TeX

Release

README

GeophysicalFlows.jl

💨🌏🌊 Geophysical fluid dynamics pseudospectral solvers with Julia and FourierFlows.jl. https://fourierflows.github.io/GeophysicalFlowsDocumentation/stable

Buildkite CPU+GPU build status CI Status stable docs latest docs DOI ColPrac: Contributor's Guide on Collaborative Practices for Community Packages DOI badge

This package leverages the FourierFlows.jl framework to provide modules for solving problems in Geophysical Fluid Dynamics on periodic domains using Fourier-based pseudospectral methods.

Installation

To install, use Julia’s built-in package manager (accessed by pressing ] in the Julia REPL command prompt) to add the package and also to instantiate/build all the required dependencies

julia> ]
(v1.10) pkg> add GeophysicalFlows
(v1.10) pkg> instantiate

GeophysicalFlows.jl requires Julia v1.6 or later. However, the package has continuous integration testing on Julia v1.10 (the current long-term release) and v1.13. We strongly urge you to use one of these Julia versions.

Examples

See examples/ for example scripts. These examples are best viewed by browsing them within the package’s documentation.

Some animations created with GeophysicalFlows.jl are online @ youtube.

Modules

  • TwoDNavierStokes: the two-dimensional vorticity equation.
  • SingleLayerQG: the barotropic or equivalent-barotropic quasi-geostrophic equation, which generalizes TwoDNavierStokes to cases with topography, Coriolis parameters of the form f = f₀ + βy, and finite Rossby radius of deformation.
  • MultiLayerQG: a multi-layer quasi-geostrophic model over topography allowing to impose a zonal flow U_n(y) in each layer.
  • SurfaceQG: a surface quasi-geostrophic model.
  • ShallowWater: the rotating shallow water equations over bathymetry.
  • BarotropicQGQL: the quasi-linear barotropic quasi-geostrophic equation.

Scalability

For now, GeophysicalFlows.jl is restricted to run on either a single CPU or single GPU. These restrictions come from FourierFlows.jl. Multi-threading can enhance performance for the Fourier transforms. By default, FourierFlows.jl will use the maximum number of threads available on your machine. You can set the number of threads used by FourierFlows.jl by setting the environment variable, e.g.,

$ export JULIA_NUM_THREADS=4

For more information on multi-threading users are directed to the Julia Documentation.

If your machine has more than one GPU available, then functionality within CUDA.jl package enables the user to choose the GPU device that FourierFlows.jl should use. The user is referred to the CUDA.jl Documentation; in particular, CUDA.devices and CUDA.CuDevice. The user is also referred to the GPU section in the FourierFlows.jl documentation.

Getting help

Interested in GeophysicalFlows.jl or trying to figure out how to use it? Please feel free to ask us questions and get in touch! Check out the examples and open an issue or start a discussion if you have any questions, comments, suggestions, etc.

Citing

If you use GeophysicalFlows.jl in research, teaching, or other activities, we would be grateful if you could mention GeophysicalFlows.jl and cite our paper in JOSS:

Constantinou et al., (2021). GeophysicalFlows.jl: Solvers for geophysical fluid dynamics problems in periodic domains on CPUs & GPUs. Journal of Open Source Software, 6(60), 3053, doi:10.21105/joss.03053.

The bibtex entry for the paper is:

@article{GeophysicalFlowsJOSS,
  doi = {10.21105/joss.03053},
  url = {https://doi.org/10.21105/joss.03053},
  year = {2021},
  publisher = {The Open Journal},
  volume = {6},
  number = {60},
  pages = {3053},
  author = {Navid C. Constantinou and Gregory LeClaire Wagner and Lia Siegelman and Brodie C. Pearson and André Palóczy},
  title = {{GeophysicalFlows.jl: Solvers for geophysical fluid dynamics problems in periodic domains on CPUs \& GPUs}},
  journal = {Journal of Open Source Software}
}

Contributing

If you’re interested in contributing to the development of GeophysicalFlows.jl we are excited to get your help, no matter how big or small a contribution you make! It’s always great to have new people look at the code with fresh eyes: you will see errors that other developers have missed.

Let us know by open an issue or start a discussion if you’d like to work on a new feature or implement a new module, if you’re new to open-source and want to find a cool little project or issue to work on that fits your interests! We’re more than happy to help along the way.

For more information, check out our contributors’ guide.

评论

暂无评论