QGDipoles.jl

QGDipoles.jl: A Julia package for calculating dipolar vortex solutions to the Quasi-Geostrophic equations - Published in JOSS (2025)

https://github.com/mncrowe/qgdipoles.jl

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

Engineering Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation ·

Repository

Julia package for creating steady dipolar vortex solutions to the quasi-geostrophic equations

Basic Info
Statistics
  • Stars: 5
  • Watchers: 1
  • Forks: 2
  • Open Issues: 2
  • Releases: 1
Created over 1 year ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

QGDipoles

Build Status ColPrac: Contributor's Guide on Collaborative Practices for Community Packages DOI

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 from Project.toml and docs/Project.toml. This should be run from the root directory.

Owner

  • Login: mncrowe
  • Kind: user

JOSS Publication

QGDipoles.jl: A Julia package for calculating dipolar vortex solutions to the Quasi-Geostrophic equations
Published
April 22, 2025
Volume 10, Issue 108, Page 7767
Authors
Matthew N. Crowe ORCID
School of Mathematics, Statistics and Physics, Newcastle University, Newcastle upon Tyne, NE1 7RU, UK, Department of Mathematics, University College London, London, WC1E 6BT, UK
Editor
Rachel Wegener ORCID
Tags
rotating fluid dynamics vortex dynamics oceanography quasi-geostrophic flows

Citation (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
documentation (1) enhancement (1) dependencies (1)

Dependencies

.github/workflows/CI.yml actions
  • 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
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite