Skip to main content

A package for solving 1+1-dimensional PDEs quickly and accurately with Fourier spectral discretization in space and high-order time-stepping.

Project description

joe

A library for solving partial differential equations for real or complex scalar functions $u(x,t)$ that depend on one spatial variable and one temporal variable. joe uses Fourier spectral discretization in space and high-order exponential time-stepping to rapidly and precisely solve initial-value problems.

FEATURES

-Fast, accurate numerical solutions of partial differential equations (PDEs) of the form $$ \partial_{t}^m u +L\left(\frac{1}{i}\partial_{x}\right)u + f(x,t,u,u_{x}, u_{xx},...) = 0, $$ where $m=1$ or $m=2$, $u(x,t)$ is a real- or complex-valued scalar field defined on an interval, and $L(k)$ , $f$ are some nice functions supplied by the user.

-Supports periodic boundary conditions as well as absorbing boundaries/sponge layers (to simulate waves going off to spatial infinity)

-Users can either call the PDE they want to simulate from a catalogue of built-in options, or define their own custom PDE.

-Easily customizable initial conditions.

-Clean, object-oriented approach to handling simulations makes post-processing (accuracy assesment) very straightforward.

-Producing publication-quality visuals is quick and easy with joe's built-in functions: simply call the right plotting function on your simulation, tweak a few options, and you've got a plot or movie ready to go. Almost all the required matplotlib stuff is under the hood.

DEPENDENCIES

numpy, scipy, matplotlib, jupyter (for accessing tutorials), cmocean (https://matplotlib.org/cmocean/), alive-progress (https://pypi.org/project/alive-progress/1.0/). You may also want to download FFmpeg support for creating movies: I recommend using the PyAV package (https://pypi.org/project/av).

GETTING STARTED

Open up the Jupyter tutorials (https://github.com/ageorgemorgan/joe/blob/main/demos/tutorials/) to see joe in action!

Currently getting FFmpeg support is a bit of a tough one and it does not auto-install when you install joe. I recommend using conda, installing joe in a conda environment, and then using conda to install PyAV via

conda install av

or

conda install av -c conda-forge

FUTURE DIRECTIONS

-Get support for movies on install without installing further packages!

-Add functionality for fields defined on 2D domains

-Allow for higher-order-derivatives in time (ie. Timoshenko beam equations)

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

joe_lab-0.0.6.tar.gz (46.6 kB view details)

Uploaded Source

Built Distribution

joe_lab-0.0.6-py3-none-any.whl (57.8 kB view details)

Uploaded Python 3

File details

Details for the file joe_lab-0.0.6.tar.gz.

File metadata

  • Download URL: joe_lab-0.0.6.tar.gz
  • Upload date:
  • Size: 46.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.8

File hashes

Hashes for joe_lab-0.0.6.tar.gz
Algorithm Hash digest
SHA256 94c2dd44167f21d86c046e26867b5ce15a869ed6d932065a9baf71e7c7591556
MD5 e941846e482031894ed65451a279e398
BLAKE2b-256 53436b76081f1d4ab405c315b660a15a5d370d3ec0d0bb42e7cc4cf2e9eb24ed

See more details on using hashes here.

File details

Details for the file joe_lab-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: joe_lab-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 57.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.8

File hashes

Hashes for joe_lab-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 29f93052282e3d2b386a370c2e24df3301bafa66a9910b8e09eff75e10130e45
MD5 0dbd753c90ca352208f517eeaf7daea3
BLAKE2b-256 8b17c4f384d9d44e50443b3f5c8b42f195422fcf02171a9f2e9447e3533aaf24

See more details on using hashes here.

Supported by

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