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/). 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 tutorial (https://github.com/ageorgemorgan/joe/blob/main/demos/tutorial_START_HERE!.ipynb) to see joe in action! More tutorials are coming soon.
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
Built Distribution
File details
Details for the file joe_lab-0.0.2.tar.gz
.
File metadata
- Download URL: joe_lab-0.0.2.tar.gz
- Upload date:
- Size: 33.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e536447d1d767e538b831cbdf6f6a4054addaafdafbd4167d6e02872e75830e5 |
|
MD5 | b5c42be595f053c9e152eeada29fb75d |
|
BLAKE2b-256 | 70ad8c309221dfdc9e4e4ca6d01d8fb98d6f54007380d9a7d6ad0eae7cba1988 |
File details
Details for the file joe_lab-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: joe_lab-0.0.2-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59b3ca03a611073bdfc7e44ffd678c0eddc837f0b5ed90c01b3bedd273e5495c |
|
MD5 | cc3ff1168b23bfddfd85210e335d4ca0 |
|
BLAKE2b-256 | baa348f862dcc80f1f6a72effed4a643f5a63e40d46bfd99576b19b0b694d4ba |