Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JOSS paper folder + update citations #233

Merged
merged 88 commits into from
Apr 21, 2021
Merged
Show file tree
Hide file tree
Changes from 87 commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
b675db1
copies template
navidcy Nov 27, 2020
c651a05
Merge branch 'master' into JOSS-paper
navidcy Dec 2, 2020
be7286a
paper placeholder
navidcy Dec 2, 2020
331d013
some updates
navidcy Dec 2, 2020
e297f8b
Merge branch 'master' into JOSS-paper
navidcy Dec 24, 2020
fb0b113
some updates
navidcy Dec 24, 2020
8da2e15
better title
navidcy Dec 24, 2020
8aebe87
Merge branch 'master' into JOSS-paper
navidcy Jan 10, 2021
011b64a
draft v0.0.1
navidcy Jan 10, 2021
362fc2e
Update paper.md
glwagner Jan 21, 2021
ba90c0a
Merge branch 'master' into JOSS-paper
navidcy Jan 22, 2021
625d734
some additions based on @glwagner's suggestions
navidcy Jan 22, 2021
25a920e
some minor rephrasing + typo
navidcy Jan 22, 2021
1e81da6
adds figure
navidcy Jan 25, 2021
e335437
numbers not latexed
navidcy Jan 25, 2021
749192c
numbers not latexed
navidcy Jan 25, 2021
2f5858b
numbers not latexed
navidcy Jan 25, 2021
8d7e54a
numbers not latexed
navidcy Jan 25, 2021
0cc8cd2
adds Journals PDF Generator
navidcy Jan 25, 2021
930b500
remove \times
navidcy Jan 25, 2021
962fc0b
draft-pdf on JOSS-paper branch
navidcy Jan 25, 2021
01b1d36
Merge branch 'master' into JOSS-paper
navidcy Jan 25, 2021
99d5354
remove draft-pdf
navidcy Jan 25, 2021
b005e69
adds remark about reproducing fig
navidcy Jan 25, 2021
7352dcb
don't use CamelCase
navidcy Jan 25, 2021
2bf9bb6
change title + minor
navidcy Jan 25, 2021
73adccd
fix typo
navidcy Jan 25, 2021
58a3dda
no dash
navidcy Jan 25, 2021
c845686
Update paper.md
BrodiePearson Jan 26, 2021
eb9b5d6
Update paper.bib
BrodiePearson Jan 26, 2021
50ef569
Update paper.md
BrodiePearson Jan 26, 2021
3c2e6a5
Update paper.md
BrodiePearson Jan 26, 2021
54ee9d6
Update paper.md
BrodiePearson Jan 26, 2021
d546939
minor edit
navidcy Jan 26, 2021
0ef823e
Merge pull request #189 from BrodiePearson/patch-1
navidcy Jan 26, 2021
592769d
Merge branch 'master' into JOSS-paper
navidcy Jan 28, 2021
e3d3e13
Merge branch 'JOSS-paper' of https://github.com/FourierFlows/Geophysi…
navidcy Jan 28, 2021
ead373d
updates paper after some discussion in #187
navidcy Jan 28, 2021
be2295b
adds doi in Karash 2020
navidcy Jan 28, 2021
78b74d3
better journal name for Karash 2020
navidcy Jan 28, 2021
8ba0e5b
minor fixes in bib
navidcy Jan 28, 2021
5890453
adds BCP grant
navidcy Jan 28, 2021
7fc4b4e
no ~
navidcy Jan 28, 2021
2f5f234
rephrase the Dedalus mention
navidcy Jan 28, 2021
38f24ad
Merge branch 'JOSS-paper' of https://github.com/FourierFlows/Geophysi…
navidcy Jan 29, 2021
1fd6b7d
attempt to make the title fit 2 lines ;)
navidcy Jan 29, 2021
79824af
adds FourierFlows zenodo citation
navidcy Jan 29, 2021
f9ff600
only initials for authors first names
navidcy Jan 29, 2021
b3581c2
updates contributors list
navidcy Jan 29, 2021
ee5a9fe
adds Lia's project
navidcy Jan 29, 2021
1b48939
andre's comments
navidcy Jan 29, 2021
46b61eb
and -> &
navidcy Jan 29, 2021
5c40803
adds teaching refs
navidcy Jan 29, 2021
391d920
correct multicite style
navidcy Jan 29, 2021
7ce4303
oxford comma
navidcy Jan 29, 2021
55cb70a
one less acronym
navidcy Jan 29, 2021
b0e2ed4
thank Valentin
navidcy Jan 29, 2021
b53107f
adds BCP grant back in
navidcy Jan 29, 2021
54d6811
Kolmogorov
navidcy Jan 29, 2021
2e80865
fix typo
navidcy Jan 30, 2021
d57f965
merge latest master
navidcy Mar 11, 2021
054afcd
addressing minor remarks by @eviatarbach
navidcy Mar 11, 2021
3619cd8
Merge branch 'master' into JOSS-paper
navidcy Mar 30, 2021
a2e0b7c
first attempt to address reviews; split paper in sections
navidcy Mar 30, 2021
4699eea
address reviews v2
navidcy Mar 30, 2021
7db7d38
adds remarks about MAOOAM and qgs
navidcy Mar 30, 2021
19ada9e
adds most of @BrodiePearson's remarks
navidcy Apr 2, 2021
46dd1de
some rephrasing of the statement of field
navidcy Apr 2, 2021
004efc2
fix qgs bib entry
navidcy Apr 2, 2021
2a66ca9
address everyones comments + attempt to bullet-point comparisons
navidcy Apr 5, 2021
7c4fe0e
bullet points v2
navidcy Apr 5, 2021
3ca21e5
finished comparisson with other packages
navidcy Apr 5, 2021
25f1fae
bit more on Dedalus
navidcy Apr 5, 2021
d43a969
resolves conflict + merge master
navidcy Apr 6, 2021
536c8ad
fix Andre's affiliation + MAOOAM languages
navidcy Apr 7, 2021
d980973
add julia ref + update figure
navidcy Apr 7, 2021
8841eaf
update fig caption
navidcy Apr 7, 2021
07aaaac
some minor changes in bib
navidcy Apr 7, 2021
b783638
merge master + fix conflicts
navidcy Apr 15, 2021
83c1c19
minor corrections by @pdebuyl
navidcy Apr 16, 2021
d850a67
merge master
navidcy Apr 16, 2021
5478bc2
update Pearson et al. bit entry
navidcy Apr 19, 2021
22de1cd
update Pearson et al. bit entry
navidcy Apr 19, 2021
e6cd670
update Pearson et al. bit entry
navidcy Apr 19, 2021
38af08b
rephrase on what's done and what's going on
navidcy Apr 19, 2021
401efe2
adds citations + badge
navidcy Apr 21, 2021
2fda929
adds JOSS citations
navidcy Apr 21, 2021
918ee4c
remove accidental entry
navidcy Apr 21, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "GeophysicalFlows"
uuid = "44ee3b1c-bc02-53fa-8355-8e347616e15e"
license = "MIT"
authors = ["Navid C. Constantinou <navidcy@gmail.com>", "Gregory L. Wagner <wagner.greg@gmail.com>"]
authors = ["Navid C. Constantinou <navidcy@gmail.com>", "Gregory L. Wagner <wagner.greg@gmail.com>", "and co-contributors"]
version = "0.12.1"

[deps]
Expand Down
27 changes: 22 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
<a href="https://github.com/SciML/ColPrac">
<img alt="ColPrac: Contributor's Guide on Collaborative Practices for Community Packages" src="https://img.shields.io/badge/ColPrac-Contributor's%20Guide-blueviolet">
</a>
<a href="https://joss.theoj.org/papers/a8cdf26beae8bcecc751ab4ded53b308">
<img src="https://joss.theoj.org/papers/a8cdf26beae8bcecc751ab4ded53b308/status.svg">
<a href="https://doi.org/10.21105/joss.03053">
<img src="https://joss.theoj.org/papers/10.21105/joss.03053/status.svg" alt="DOI badge" >
</a>
</p>

Expand Down Expand Up @@ -119,12 +119,29 @@ than happy to help along the way.
For more information, check out our [contributor's guide](https://github.com/FourierFlows/GeophysicalFlows.jl/blob/master/CONTRIBUTING.md).


## Cite
## Citing

The code is citable via [zenodo](https://zenodo.org). Please cite as:
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:

> Navid C. Constantinou, Gregory L. Wagner, and co-contributors. (2021). FourierFlows/GeophysicalFlows.jl: GeophysicalFlows v0.12.1 (Version v0.12.1). Zenodo. [http://doi.org/10.5281/zenodo.1463809](http://doi.org/10.5281/zenodo.1463809)
> 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](https://doi.org/10.21105/joss.03053)

The bibtex entry for the paper is:

```bibtex
@article{Constantinou2021,
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 &amp; GPUs},
journal = {Journal of Open Source Software}
}
```

[FourierFlows.jl]: https://github.com/FourierFlows/FourierFlows.jl
[documentation]: https://fourierflows.github.io/GeophysicalFlowsDocumentation/dev/
Expand Down
1 change: 1 addition & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
FourierFlows = "2aec4490-903f-5c70-9b11-9bed06a700e1"
GeophysicalFlows = "44ee3b1c-bc02-53fa-8355-8e347616e15e"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👁️

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that was only there for 40secs! amazing you noticed it!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👀

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these eyes are a bit creepy
#1984

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙄

Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
Expand Down
24 changes: 22 additions & 2 deletions docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,26 @@ course of time various people have contributed to GeophysicalFlows.jl, including
[Lia Siegelman](https://scholar.google.com/citations?user=BQJtj6sAAAAJ), [Brodie Pearson](https://brodiepearson.github.io), and [André Palóczy](https://scholar.google.com/citations?user=o4tYEH8AAAAJ) (see the [example in FourierFlows.jl](https://fourierflows.github.io/FourierFlowsDocumentation/stable/generated/OneDShallowWaterGeostrophicAdjustment/)).


## Cite
## Citing

The code is citable via [zenodo](https://doi.org/10.5281/zenodo.1463809).
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](https://doi.org/10.21105/joss.03053)

The bibtex entry for the paper is:

```bibtex
@article{Constantinou2021,
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 &amp; GPUs},
journal = {Journal of Open Source Software}
}
```
Binary file added paper/PV_eady_nlayers5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
153 changes: 153 additions & 0 deletions paper/paper.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
@article{Bezanson2017,
title = {Julia: {A} fresh approach to numerical computing},
author = {Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and Shah, Viral B.},
journal = {SIAM Review},
volume = {59},
number = {1},
pages = {65--98},
year = {2017},
doi = {10.1137/141000671}
}

@article{Oceananigans,
title={Oceananigans.jl: {Fast} and friendly geophysical fluid dynamics on {GPUs}},
author={Ramadhan, Ali and Wagner, Gregory LeClaire and Hill, Chris and Campin, Jean-Michel and Churavy, Valentin and Besard, Tim and Souza, Andre and Edelman, Alan and Ferrari, Raffaele and Marshall, John},
journal={Journal of Open Source Software},
volume={5},
number={53},
pages={2018},
year={2020},
doi={10.21105/joss.02018}
}

@article{MAOOAM,
author = {De Cruz, L. and Demaeyer, J. and Vannitsem, S.},
doi = {10.5194/gmd-9-2793-2016},
journal = {Geoscientific Model Development},
volume = {9},
number = {8},
pages = {2793--2808},
title = {The modular arbitrary-order ocean-atmosphere model: \textsc{maooam}~v1.0},
year = {2016}}

@article{qgs,
author = {Demaeyer, J. and De Cruz, L. and Vannitsem, S.},
doi = {10.21105/joss.02597},
journal = {Journal of Open Source Software},
volume = {5},
number = {56},
pages = {2597},
title = {{qgs}: {A} flexible {Python} framework of reduced-order multiscale climate models},
year = {2020}}

@software{FourierFlows,
author = {Constantinou, N. C. and
Wagner, L. C. and
Palóczy, A.},
title = {FourierFlows/FourierFlows.jl: v0.6.17},
year = {2021},
publisher = {Zenodo},
version = {v0.6.17},
doi = {10.5281/zenodo.4686348},
url = {https://doi.org/10.5281/zenodo.4686348}
}

@article{Thyng2016,
title = {True colors of oceanography: {Guidelines} for effective and accurate colormap selection},
author = {Thyng, K. M. and Greene, C. A. and Hetland, R. D. and Zimmerle, H. M. and DiMarco, S. F.},
journal = {Oceanography},
volume = {29},
number = {3},
pages = {9--13},
year = {2016},
doi = {10.5670/oceanog.2016.66}
}

@article{Burns2020,
title = {Dedalus: {A} flexible framework for numerical simulations with spectral methods},
author = {Burns, K. J. and Vasil, G. M. and Oishi, J. S. and Lecoanet, D. and Brown, B. P.},
journal = {Physical Review Research},
volume = {2},
issue = {2},
pages = {023068},
numpages = {39},
year = {2020},
publisher = {American Physical Society},
doi = {10.1103/PhysRevResearch.2.023068}
}

@software{pyqg,
author = {Abernathey, R. and
Rocha, C. B. and
Jansen, M. and
Poulin, F. J. and
Constantinou, N. C. and
Balwada, D. and
Sinha, A. and
Bueti, M. and
Penn, J. and
Wolfe, C. L. P. and
Boas, B. V.},
title = {{pyqg/pyqg}: v0.3.0},
year = {2019},
publisher = {Zenodo},
version = {v0.3.0},
doi = {10.5281/zenodo.3551326},
url = {https://doi.org/10.5281/zenodo.3551326}
}

@article{Pearson2021,
title = {Advective structure functions in anisotropic two-dimensional turbulence },
author = {Pearson, B. C. and Pearson, J. L. and Fox-Kemper, B.},
journal = {Journal of Fluid Mechanics},
year = {2021},
volume = {916},
pages = {A49},
doi = {10.1017/jfm.2021.247}
}

@article{Karrasch2020,
title = {Fast and robust computation of coherent {Lagrangian} vortices on very large two-dimensional domains},
author = {Karrasch, D. and Schilling, N.},
journal = {SMAI Journal of Computational Mathematics},
volume = {6},
pages = {101--124},
year = {2020},
doi = {10.5802/smai-jcm.63}
}

@misc{KolmogorovFlow,
author = {Constantinou, N. C. and Drivas, T. D.},
title = {KolmogorovFlow},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/navidcy/KolmogorovFlow}
}

@misc{QG_tracer_advection,
author = {Bisits, J. and Constantinou, N. C.},
title = {QG_tracer_advection},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/jbisits/QG_tracer_advection}
}

@misc{GeophysicalFlows-Examples,
author = {Constantinou, N. C. and Wagner, G. L.},
title = {GeophysicalFlows-Examples},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/FourierFlows/GeophysicalFlows-Examples}
}

@misc{CLExWinterSchool2020,
author = {Constantinou, N. C.},
title = {CLExWinterSchool2020},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/navidcy/CLExWinterSchool2020}
}
138 changes: 138 additions & 0 deletions paper/paper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
---
title: 'GeophysicalFlows.jl: Solvers for geophysical fluid dynamics problems in periodic domains on CPUs & GPUs'
tags:
- geophysical fluid dynamics
- computational fluid dynamics
- Fourier methods
- pseudospectral
- Julia
- gpu
authors:
- name: Navid C. Constantinou
orcid: 0000-0002-8149-4094
affiliation: "1, 2"
- name: Gregory LeClaire Wagner
orcid: 0000-0001-5317-2445
affiliation: 3
- name: Lia Siegelman
orcid: 0000-0003-3330-082X
affiliation: 4
- name: Brodie C. Pearson
orcid: 0000-0002-0202-0481
affiliation: 5
- name: André Palóczy
orcid: 0000-0001-8231-8298
affiliation: 6
affiliations:
- name: Australian National University
index: 1
- name: ARC Centre of Excellence for Climate Extremes
index: 2
- name: Massachussetts Institute of Technology
index: 3
- name: University of California San Diego
index: 4
- name: Oregon State University
index: 5
- name: University of Oslo
index: 6
date: 7 April 2021
bibliography: paper.bib
---


# Summary

`GeophysicalFlows.jl` is a Julia [@Bezanson2017] package that contains partial differential
equations solvers for a collection of geophysical fluid systems in periodic domains. All
modules use Fourier-based pseudospectral numerical methods and leverage the framework provided
by the `FourierFlows.jl` [@FourierFlows] Julia package for time-stepping, custom diagnostics,
and saving output.


# Statement of need

Conceptual models in simple domains often provide stepping stones for better understanding geophysical and astrophysical systems, particularly the atmospheres and oceans of Earth and other planets. These conceptual models are used in research but also are of great value for helping students in class to grasp new concepts and phenomena. Oftentimes people end up coding their own versions of solvers for the same partial differential equations for research or classwork. `GeophysicalFlows.jl` package is designed to be easily utilized and adaptable for a wide variety of both research and pedagogical purposes.

On top of the above-mentioned needs, the recent explosion of machine-learning applications in atmospheric and oceanic sciences advocates for the need that solvers for partial differential equations can be run on GPUs.

`GeophysicalFlows.jl` provides a collection of modules for solving sets of partial differential equations often used as conceptual models. These modules are continuously tested (unit tests and tests for the physics involved) and are well-documented. `GeophysicalFlows.jl` utilizes Julia's functionality and abstraction to enable all modules to run on CPUs or GPUs, and to provide a high level of customizability within modules. The abstractions allow simulations to be tailored for specific research questions, via the choice of parameters, domain properties, and schemes for damping, forcing, time-stepping etc. Simulations can easily be carried out on different computing architectures. Selection of the architecture on which equations are solved is done by providing the argument `CPU()` or `GPU()` during the construction of a particular problem.

Documented examples for each geophysical system (module) appear in the package's documentation,
providing a starting point for new users and for the development of new or customized modules.
Current modules include two-dimensional flow and a variety of quasi-geostrophic (QG) dynamical
systems, which provide analogues to the large-scale dynamics of atmospheres and oceans. The QG
systems currently in `GeophysicalFlows.jl` extend two-dimensional dynamics to include the leading
order effects of a third dimension through planetary rotation, topography, surface boundary
conditions, stratification and quasi-two-dimensional layering. A community-based collection
of diagnostics throughout the modules are used to compute quantities like energy, enstrophy,
dissipation, etc.

![Potential vorticity snapshots from a nonlinearly equilibrated simulation of the Eady instability
over a meridional ridge. Simulation used `MultiLayerQG` module of `GeophysicalFlows.jl`. The Eady
problem was approximated here using 5 fluid layers stacked up in the vertical. Each layer was
simulated with 512² grid-points. Plots were made with the `Plots.jl` Julia package, which
utilizes the `cmocean` colormaps collection [@Thyng2016]. Scripts to reproduce the simulation
reside in the repository `github.com/FourierFlows/MultilayerQG-example`.
\label{fig1}](PV_eady_nlayers5.png)


# State of the field

`GeophysicalFlows.jl` is a unique Julia package that shares some features and similarities with
other packages. In particular:

- `pyqg` [@pyqg] (Python)

Beyond their base language, the major differences between `GeophysicalFlows.jl` and `pyqg`
is that `GeophysicalFlows.jl` can be run on GPUs or CPUs and leverages a separate package (`FourierFlows.jl`; which is continuously developed) to solve differential equations and compute diagnostics, while `pyqg` can only be run on CPUs and uses a self-contained kernel.

- Dedalus [@Burns2020] (Python)

Dedalus is a Python package with an intuitive script-based interface that uses spectral methods
to solve general partial differential equations, such as the ones within `GeophysicalFlows.jl`.
Dedalus allows for more general boundary conditions in one of the dimensions. It only runs on
CPUs (not on GPUs) but can be MPI-parallelized.

- `Oceananigans.jl` [@Oceananigans] (Julia)

`Oceananigans.jl` is a fluid solver focussed on the Navier-Stokes equations under the Boussinesq
approximation. `Oceananigans.jl` also runs on GPUs, and it allows for more variety of boundary
conditions but it does not have spectral accuracy as it uses finite-volume discretization methods.

- `MAOOAM` [@MAOOAM] (Fortran, Python, and Lua) and its expanded Python implementation `qgs` [@qgs]

`MAOOAM` and `qgs` simulate two atmospheric layers with QG dynamics, above either land or
an oceanic fluid layer with reduced-gravity QG dynamics. The dynamics of individual layers
have overlap with the `MultiLayerQG` and `SingleLayerQG` modules, however the layer configuration
of `MOAAM` and `qgs` is specifically designed to study the dynamics of Earth's mid-latitude
atmosphere. Neither `MAOOAM` nor `qgs` can run on GPUs.

- Isolated codes/scripts

Several codes/scripts exist in personal websites and in open-source public repositories with
similar functionality as some `GeophysicalFlows.jl` modules (e.g., `TwoDNavierStokes` or
`SingleLayerQG`). Usually, though, these codes come without any or poor documentation and
typically they are not continuously tested.

`GeophysicalFlows.jl` can be used to investigate a variety of scientific research questions
thanks to its various modules and high customizability, and its ease-of-use makes it an ideal
teaching tool for fluids courses [@GeophysicalFlows-Examples; @CLExWinterSchool2020].
`GeophysicalFlows.jl` has been used in developing Lagrangian vortices identification algorithms
[@Karrasch2020] and to test new theories for diagnosing turbulent energy transfers in geophysical
flows [@Pearson2021]. Currently, `GeophysicalFlows.jl` is being used, e.g., (i) to compare
different observational sampling techniques in these flows, (ii) to study the bifurcation properties
of Kolmogorov flows [@KolmogorovFlow], (iii) to study the genesis and persistence of the polygons
of vortices present at Jovian high latitudes (Siegelman, Young, and Ingersoll; in prep), and
(iv) to study how mesoscale macroturbulence affects mixing of tracers [@QG_tracer_advection].


# Acknowledgements

We acknowledge discussions with Keaton Burns, Valentin Churavy, Theodore Drivas, Cesar Rocha,
and William Young. B. C. P. was supported by the National Science Foundation under Grant
No. 2023721. We would also like to take a moment to remember our friend and colleague
Sean R. Haney (February 1987 - January 2021) who left us a bit too early.


# References