Skip to main content

Upwind summation-by-parts discontinuous galerkin method for solving PDEs

Project description

UDG - Upwind Discontinuous Galerkin Method

PyPI version Python 3.11+ License: MIT

A minimal python implementation of the upwind discontinuous galerkin method for solving scalar advection equations.

Installation

pip install udg

Or with uv:

uv pip install udg

Quick Start

Step 1: Run the DGSEM solver (Kopriva et al., 2009)

python -m udg.cli sem-dg

Step 2: Run the Nodal-DG solver (Hesthaven et al., 2008)

python -m udg.cli nodal-dg

Step 3: Run the entropy-stable DG solver (Gassner et al., 2013)

python -m udg.cli entropy-dg

Step 4: Run the upwind summation-by-parts DG solver

python -m udg.cli upwind-dg

Development

Setup

# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone and install
git clone https://github.com/jaisw7/udg.git
cd udg
uv sync --all-extras

# Activate virtual environment
source .venv/bin/activate

# Install pre-commit hooks (optional)
pre-commit install

Code Quality

# Format code
make format

# Run linting
make lint

# Type checking
make type-check

# Run all checks
make pre-commit

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with tests
  4. Run make pre-commit to ensure code quality
  5. Submit a pull request

License

MIT License - See LICENSE file for details

Disclaimer

This software is for educational and research purposes only.

Support

For issues, questions, or contributions:

  • Open an issue on GitHub
  • Check documentation
  • Review test examples

References

  1. Kopriva, David A. Implementing spectral methods for partial differential equations: Algorithms for scientists and engineers. Springer Science & Business Media, 2009.
  2. Hesthaven, Jan S., and Tim Warburton. Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications. Springer Science & Business Media, 2008.
  3. Gassner, Gregor J. "A skew-symmetric discontinuous Galerkin spectral element discretization and its relation to SBP-SAT finite difference methods." SIAM Journal on Scientific Computing 35.3 (2013): A1233-A1253.

Results

DGSEM

DGSEM

Nodal-DG

Nodal-DG

Entropy-Stable DG

Entropy-Stable DG

Upwind DG

Upwind DG

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

udg-0.1.1.tar.gz (132.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

udg-0.1.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file udg-0.1.1.tar.gz.

File metadata

  • Download URL: udg-0.1.1.tar.gz
  • Upload date:
  • Size: 132.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for udg-0.1.1.tar.gz
Algorithm Hash digest
SHA256 81d6573b03f097b7734021c874eb71629edcc0608e00a36bfb8e0f5bfa01269f
MD5 47e77a0eb001c2f89ebe2d61354051e5
BLAKE2b-256 15402f01941f7aee620f11449f803cd06d7ffeeca852026a5bed8b9542f11fd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for udg-0.1.1.tar.gz:

Publisher: publish.yml on jaisw7/udg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file udg-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: udg-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for udg-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c9d9a82edc095efc444ae4207fd0c5fee05bc1f7d8609b47834626b6c9431643
MD5 53a3f0a6c12bb77cc98212ae4c796850
BLAKE2b-256 396c1c503f0b744a593f84343441889549dc46e027439a623bf69451b1e45f60

See more details on using hashes here.

Provenance

The following attestation bundles were made for udg-0.1.1-py3-none-any.whl:

Publisher: publish.yml on jaisw7/udg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page