-
Notifications
You must be signed in to change notification settings - Fork 32
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
Changes from 87 commits
Commits
Show all changes
88 commits
Select commit
Hold shift + click to select a range
b675db1
copies template
navidcy c651a05
Merge branch 'master' into JOSS-paper
navidcy be7286a
paper placeholder
navidcy 331d013
some updates
navidcy e297f8b
Merge branch 'master' into JOSS-paper
navidcy fb0b113
some updates
navidcy 8da2e15
better title
navidcy 8aebe87
Merge branch 'master' into JOSS-paper
navidcy 011b64a
draft v0.0.1
navidcy 362fc2e
Update paper.md
glwagner ba90c0a
Merge branch 'master' into JOSS-paper
navidcy 625d734
some additions based on @glwagner's suggestions
navidcy 25a920e
some minor rephrasing + typo
navidcy 1e81da6
adds figure
navidcy e335437
numbers not latexed
navidcy 749192c
numbers not latexed
navidcy 2f5858b
numbers not latexed
navidcy 8d7e54a
numbers not latexed
navidcy 0cc8cd2
adds Journals PDF Generator
navidcy 930b500
remove \times
navidcy 962fc0b
draft-pdf on JOSS-paper branch
navidcy 01b1d36
Merge branch 'master' into JOSS-paper
navidcy 99d5354
remove draft-pdf
navidcy b005e69
adds remark about reproducing fig
navidcy 7352dcb
don't use CamelCase
navidcy 2bf9bb6
change title + minor
navidcy 73adccd
fix typo
navidcy 58a3dda
no dash
navidcy c845686
Update paper.md
BrodiePearson eb9b5d6
Update paper.bib
BrodiePearson 50ef569
Update paper.md
BrodiePearson 3c2e6a5
Update paper.md
BrodiePearson 54ee9d6
Update paper.md
BrodiePearson d546939
minor edit
navidcy 0ef823e
Merge pull request #189 from BrodiePearson/patch-1
navidcy 592769d
Merge branch 'master' into JOSS-paper
navidcy e3d3e13
Merge branch 'JOSS-paper' of https://github.com/FourierFlows/Geophysi…
navidcy ead373d
updates paper after some discussion in #187
navidcy be2295b
adds doi in Karash 2020
navidcy 78b74d3
better journal name for Karash 2020
navidcy 8ba0e5b
minor fixes in bib
navidcy 5890453
adds BCP grant
navidcy 7fc4b4e
no ~
navidcy 2f5f234
rephrase the Dedalus mention
navidcy 38f24ad
Merge branch 'JOSS-paper' of https://github.com/FourierFlows/Geophysi…
navidcy 1fd6b7d
attempt to make the title fit 2 lines ;)
navidcy 79824af
adds FourierFlows zenodo citation
navidcy f9ff600
only initials for authors first names
navidcy b3581c2
updates contributors list
navidcy ee5a9fe
adds Lia's project
navidcy 1b48939
andre's comments
navidcy 46b61eb
and -> &
navidcy 5c40803
adds teaching refs
navidcy 391d920
correct multicite style
navidcy 7ce4303
oxford comma
navidcy 55cb70a
one less acronym
navidcy b0e2ed4
thank Valentin
navidcy b53107f
adds BCP grant back in
navidcy 54d6811
Kolmogorov
navidcy 2e80865
fix typo
navidcy d57f965
merge latest master
navidcy 054afcd
addressing minor remarks by @eviatarbach
navidcy 3619cd8
Merge branch 'master' into JOSS-paper
navidcy a2e0b7c
first attempt to address reviews; split paper in sections
navidcy 4699eea
address reviews v2
navidcy 7db7d38
adds remarks about MAOOAM and qgs
navidcy 19ada9e
adds most of @BrodiePearson's remarks
navidcy 46dd1de
some rephrasing of the statement of field
navidcy 004efc2
fix qgs bib entry
navidcy 2a66ca9
address everyones comments + attempt to bullet-point comparisons
navidcy 7c4fe0e
bullet points v2
navidcy 3ca21e5
finished comparisson with other packages
navidcy 25f1fae
bit more on Dedalus
navidcy d43a969
resolves conflict + merge master
navidcy 536c8ad
fix Andre's affiliation + MAOOAM languages
navidcy d980973
add julia ref + update figure
navidcy 8841eaf
update fig caption
navidcy 07aaaac
some minor changes in bib
navidcy b783638
merge master + fix conflicts
navidcy 83c1c19
minor corrections by @pdebuyl
navidcy d850a67
merge master
navidcy 5478bc2
update Pearson et al. bit entry
navidcy 22de1cd
update Pearson et al. bit entry
navidcy e6cd670
update Pearson et al. bit entry
navidcy 38af08b
rephrase on what's done and what's going on
navidcy 401efe2
adds citations + badge
navidcy 2fda929
adds JOSS citations
navidcy 918ee4c
remove accidental entry
navidcy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👁️
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👀
There was a problem hiding this comment.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙄