| Name | joe-lab JSON |
| Version |
0.0.6
JSON |
| download |
| home_page | None |
| Summary | A package for solving 1+1-dimensional PDEs quickly and accurately with Fourier spectral discretization in space and high-order time-stepping. |
| upload_time | 2024-09-08 19:30:49 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.8 |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# 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)
Raw data
{
"_id": null,
"home_page": null,
"name": "joe-lab",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Adam George Morgan <adam.morgan@mail.utoronto.ca>",
"download_url": "https://files.pythonhosted.org/packages/53/43/6b76081f1d4ab405c315b660a15a5d370d3ec0d0bb42e7cc4cf2e9eb24ed/joe_lab-0.0.6.tar.gz",
"platform": null,
"description": "# joe\nA 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. \n\nFEATURES\n\n-Fast, accurate numerical solutions of partial differential equations (PDEs) of the form \n$$\n\\partial_{t}^m u +L\\left(\\frac{1}{i}\\partial_{x}\\right)u + f(x,t,u,u_{x}, u_{xx},...) = 0,\n$$\nwhere $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.\n\n-Supports periodic boundary conditions as well as absorbing boundaries/sponge layers (to simulate waves going off to spatial infinity)\n\n-Users can either call the PDE they want to simulate from a catalogue of built-in options, or define their own custom PDE.\n\n-Easily customizable initial conditions.\n\n-Clean, object-oriented approach to handling simulations makes post-processing (accuracy assesment) very straightforward. \n\n-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. \n\nDEPENDENCIES\n\nnumpy, 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).\n\nGETTING STARTED\n \nOpen up the Jupyter tutorials (https://github.com/ageorgemorgan/joe/blob/main/demos/tutorials/) to see joe in action!\n\nCurrently 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 \n\n```\nconda install av\n```\n\nor \n\n```\nconda install av -c conda-forge\n```\n\nFUTURE DIRECTIONS\n\n-Get support for movies on install without installing further packages!\n\n-Add functionality for fields defined on 2D domains \n\n-Allow for higher-order-derivatives in time (ie. Timoshenko beam equations)\n",
"bugtrack_url": null,
"license": null,
"summary": "A package for solving 1+1-dimensional PDEs quickly and accurately with Fourier spectral discretization in space and high-order time-stepping.",
"version": "0.0.6",
"project_urls": {
"Homepage": "https://github.com/ageorgemorgan/joe",
"Issues": "https://github.com/ageorgemorgan/joe/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8b17c4f384d9d44e50443b3f5c8b42f195422fcf02171a9f2e9447e3533aaf24",
"md5": "0dbd753c90ca352208f517eeaf7daea3",
"sha256": "29f93052282e3d2b386a370c2e24df3301bafa66a9910b8e09eff75e10130e45"
},
"downloads": -1,
"filename": "joe_lab-0.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0dbd753c90ca352208f517eeaf7daea3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 57766,
"upload_time": "2024-09-08T19:30:48",
"upload_time_iso_8601": "2024-09-08T19:30:48.278517Z",
"url": "https://files.pythonhosted.org/packages/8b/17/c4f384d9d44e50443b3f5c8b42f195422fcf02171a9f2e9447e3533aaf24/joe_lab-0.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "53436b76081f1d4ab405c315b660a15a5d370d3ec0d0bb42e7cc4cf2e9eb24ed",
"md5": "e941846e482031894ed65451a279e398",
"sha256": "94c2dd44167f21d86c046e26867b5ce15a869ed6d932065a9baf71e7c7591556"
},
"downloads": -1,
"filename": "joe_lab-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "e941846e482031894ed65451a279e398",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 46578,
"upload_time": "2024-09-08T19:30:49",
"upload_time_iso_8601": "2024-09-08T19:30:49.767879Z",
"url": "https://files.pythonhosted.org/packages/53/43/6b76081f1d4ab405c315b660a15a5d370d3ec0d0bb42e7cc4cf2e9eb24ed/joe_lab-0.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-08 19:30:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ageorgemorgan",
"github_project": "joe",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "joe-lab"
}