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, cmocean (https://matplotlib.org/cmocean/), alive-progress (https://pypi.org/project/alive-progress/1.0/), FFMPEG support for movies (I recommend using the av package at https://pypi.org/project/av/ which you can install with conda install-c conda-forge av).

GETTING STARTED

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

If you have trouble with any of the dependencies, I recommend installing joe in a conda environment where the troublesome dependencies have already been installed (this is especially helpful when it comes to getting the movies to work).

FUTURE DIRECTIONS

-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.0.tar.gz (33.4 kB view details)

Uploaded Source

Built Distribution

joe_lab-0.0.0-py3-none-any.whl (43.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: joe_lab-0.0.0.tar.gz
  • Upload date:
  • Size: 33.4 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.0.tar.gz
Algorithm Hash digest
SHA256 97875464b79afcc24325b35decddc8feec516f84e0387c9891a488ae42718adb
MD5 472c7641e05c85188a4e12b7e8120926
BLAKE2b-256 77d3d7a5f82c02ae775098f9c361572ba3ee8244fd536f14a173aba7dddc42d2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: joe_lab-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 43.4 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95e79d8ea49864b5acc5840379954f3dda57526f08f1acb1c776dbdd613cf0ab
MD5 99a095a950815ccfe7776ccf712b6ca6
BLAKE2b-256 3f34cc563a7ce323e95a628cb949c7d120f7aacf394dcb627938a5b42371e3b2

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