joe-lab

A library for solving PDEs with Fourier spectral discretization in space and high-order time-stepping.

https://github.com/ageorgemorgan/joe

Science Score: 44.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
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A library for solving PDEs with Fourier spectral discretization in space and high-order time-stepping.

Basic Info
  • Host: GitHub
  • Owner: ageorgemorgan
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage: http://joe-lab.rtfd.io/
  • Size: 11.9 MB
Statistics
  • Stars: 1
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created over 2 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

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-based discretization in space and high-order exponential time-stepping to rapidly and precisely solve initial-value problems.

pip install joe-lab==0.0.6 hovplot_length=100 5_T=150 0_N=128 0_dt=0 015625_modelkw=ks_ICkw=gaussian_even_alt_nonlinear=True_abslayer=False

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{t},u{xx},u{xt}...) = 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/). 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/tree/main/joe_lab/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 (on Ubuntu) using conda to install PyAV via

conda install av

or

conda install av -c conda-forge

If you're using Mac OS, the command below may work better:

conda install x264 ffmpeg -c conda-forge

If you have questions, please see the documentation at http://joe-lab.rtfd.io/ .

hovplot_real_length=100 0_T=100 0_N=1024 0_dt=0 010000_modelkw=focusing_nls_ICkw=nls_soliton_nonlinear=True_sponge_layer=False

FUTURE DIRECTIONS

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

-Add functionality for fields defined on 2D domains

-Time-step adaptivity

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

** see also https://pypi.org/project/joe-lab **

Owner

  • Name: Adam George Morgan
  • Login: ageorgemorgan
  • Kind: user
  • Company: University of Toronto

PhD student in math at University of Toronto. Interested in numerical methods for PDE, optimization, and (learning!) mathematical finance.

Citation (citation.cff)

cff-version: 0.0.2
authors:
  - family-names: Morgan
    given-names: Adam George
title: "joe: a package for solving partial differential equations with Fourier spectral discretization in space and high-order exponential time-stepping"

GitHub Events

Total
  • Push event: 3
Last Year
  • Push event: 3

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 55 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 7
  • Total maintainers: 1
pypi.org: joe-lab

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

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 55 Last month
Rankings
Dependent packages count: 10.4%
Average: 34.6%
Dependent repos count: 58.8%
Maintainers (1)
Last synced: 7 months ago