QGDipoles.jl
QGDipoles.jl: A Julia package for calculating dipolar vortex solutions to the Quasi-Geostrophic equations - Published in JOSS (2025)
Science Score: 98.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 14 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Academic email domains
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
Julia package for creating steady dipolar vortex solutions to the quasi-geostrophic equations
Basic Info
- Host: GitHub
- Owner: mncrowe
- License: mit
- Language: Julia
- Default Branch: main
- Homepage: https://mncrowe.github.io/QGDipoles.jl/
- Size: 4.05 MB
Statistics
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 2
- Releases: 1
Metadata Files
README.md
QGDipoles
About
This package solves for steady, propagating dipolar solutions in a layered quasi-geostrophic (LQG) model or a surface quasi-geostrophic (SQG) model. It is designed to work with GeophysicalFlows.jl and FourierFlows.jl.
Installation
QGDipoles.jl can be installed using the Julia package manager. It is recommended to create a new environment for each project and install any new packages to that environment.
Installation may be done using the package manager directly by typing ] at the Julia REPL and entering the following:
julia
add https://github.com/mncrowe/QGDipoles.jl.git
instantiate
Alternatively, you may import the package manager and install by entering the following directly into the Julia REPL:
julia
import Pkg
Pkg.add(url="https://github.com/mncrowe/QGDipoles.jl")
Pkg.instantiate()
This package is not compatible with versions of Julia earlier than 1.10 due to the eachslice function.
Examples and Documentation
See examples/ for example scripts. Full documetation is available here.
Dependencies
This package requires the following dependencies:
- FFTW (v1.8.0)
- Jacobi (v0.7.0)
- LinearAlgebra
- NLsolve (v4.5.1)
- QuadGK (v2.9.4)
- SpecialFunctions (v2.4.0)
- CUDA (v5.4.3)
The specified versions are confirmed to work. Earlier versions may also work.
Files
This directory contains the following:
docs/: contains documentation and build script for html generation.examples/: example scripts, more examples are available in the documentation.src/: source Julia files for QGDipoles.jl.test/: tests for QGDipoles.jl package.utils/: additional utilities for package management.Project.toml: project file containing dependencies for QGDipoles.jl.README.md: this readme file.
Methodology
Dipolar vortex solutions are calculated using a method originally proposed for surface QG by Johnson & Crowe 2023 and extended to layered QG by Crowe & Johnson 2024. An overview of this method is discussed in the full documentation. This code contains a Julia implementation of the MATLAB code included as supplementary material with Crowe & Johnson 2024 and also includes a version of the previously unrealeased SQG version discussed in Johnson & Crowe 2023 and Crowe & Johnson 2023. For those interested in the original (layered QG only) implementation, it can be found here.
Contributing
Issues should be submitted here and discussions or questions here.
We follow the ColPrac guide for collaborative practices. New contributors should make sure to read that guide. Below are some additional practices we follow.
Editing
The source files are stored in src/. It is recommended to open Julia with the QGDipoles project active by running julia --project=. from the root directory. Be careful not to add unnecessary packages to Project.toml and do not push a Project.toml file which contains QGDipoles.jl as a dependency.
We use Documenter.jl for creating the package documentation and JuliaFormatter.jl for consistent code formatting. These packages should NOT be added to the package dependencies of QGDipoles.jl and we recommend adding them to your base environment so they are available from any active environment.
Formatting
This codebase is formatted using JuliaFormatter.jl. Formatting can be done by entering the following into the Julia REPL from the root directory:
julia
import JuliaFormatter
JuliaFormatter.format(".")
Documentation
The documentation is stored within docs/ and can be built using Documenter.jl by running docs/make.jl. Full instructions for using Documenter.jl are available here. The documentation can be re-built by opening Julia using julia --project=docs/ then entering the following into the REPL:
julia
import Pkg
Pkg.develop(path=".") # this adds the local copy of `QGDipoles.jl` to the `docs` environment
include("docs/make.jl")
The newly built documentation will be available in docs/build and can be viewed by opening docs/build/index.html with a web browser.
Tests
Tests are stored in test/ and can be run using either
julia
include("test/runtests.jl")
or by activating the package manager by entering ] at the Julia REPL then entering test.
Utilities
Additional tools for development are stored in utils/. Currently this directory contains:
clear_deps.sh: a shell script to clear unwanted dependencies fromProject.tomlanddocs/Project.toml. This should be run from the root directory.
Owner
- Login: mncrowe
- Kind: user
- Repositories: 2
- Profile: https://github.com/mncrowe
JOSS Publication
QGDipoles.jl: A Julia package for calculating dipolar vortex solutions to the Quasi-Geostrophic equations
Authors
Tags
rotating fluid dynamics vortex dynamics oceanography quasi-geostrophic flowsCitation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Crowe
given-names: Matthew N.
orcid: "https://orcid.org/0000-0002-9916-2653"
doi: 10.5281/zenodo.15183327
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Crowe
given-names: Matthew N.
orcid: "https://orcid.org/0000-0002-9916-2653"
date-published: 2025-04-22
doi: 10.21105/joss.07767
issn: 2475-9066
issue: 108
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 7767
title: "QGDipoles.jl: A Julia package for calculating dipolar vortex
solutions to the Quasi-Geostrophic equations"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.07767"
volume: 10
title: "QGDipoles.jl: A Julia package for calculating dipolar vortex
solutions to the Quasi-Geostrophic equations"
GitHub Events
Total
- Create event: 10
- Release event: 1
- Issues event: 32
- Watch event: 6
- Delete event: 9
- Issue comment event: 38
- Push event: 362
- Pull request review comment event: 21
- Pull request review event: 14
- Pull request event: 21
- Fork event: 2
Last Year
- Create event: 10
- Release event: 1
- Issues event: 32
- Watch event: 6
- Delete event: 9
- Issue comment event: 38
- Push event: 362
- Pull request review comment event: 21
- Pull request review event: 14
- Pull request event: 21
- Fork event: 2
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 15
- Total pull requests: 6
- Average time to close issues: 9 days
- Average time to close pull requests: 7 days
- Total issue authors: 1
- Total pull request authors: 2
- Average comments per issue: 2.07
- Average comments per pull request: 1.0
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 15
- Pull requests: 6
- Average time to close issues: 9 days
- Average time to close pull requests: 7 days
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 2.07
- Average comments per pull request: 1.0
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- haakon-e (15)
- navidcy (1)
- iajzenszmi (1)
Pull Request Authors
- mncrowe (9)
- github-actions[bot] (6)
- haakon-e (1)
- navidcy (1)
- dependabot[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- julia-actions/cache v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v2 composite
- JuliaRegistries/TagBot v1 composite
