joe-lab


Namejoe-lab JSON
Version 0.0.6 PyPI version JSON
download
home_pageNone
SummaryA package for solving 1+1-dimensional PDEs quickly and accurately with Fourier spectral discretization in space and high-order time-stepping.
upload_time2024-09-08 19:30:49
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
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"
}
        
Elapsed time: 0.66358s