# fpcross
## Description
This python package, named **fpcross** (**F**okker **P**lanck **cross**-approximation), provides a solver in the low-rank tensor train format with cross approximation approach for solution of the multidimensional Fokker-Planck equation (FPE) of the form
```
d r(x, t) / d t = D delta( r(x, t) ) - div( f(x, t) r(x, t) ),
where r(x, 0) = r0(x).
```
The function f(x, t), its diagonal partial derivatives d f_i (x, t) / d x_i, initial condition r0(x) and scalar diffusion coefficient D should be known. The equation is solved from the initial moment (t = 0) to the user-specified moment (t), while the solutions obtained at each time step can be used if necessary. The resulting solution r(x, t) represents both the TT-tensor on the multidimensional Chebyshev grid and the Chebyshev interpolation coefficients in the TT-format, and therefore it can be quickly calculated at an arbitrary spatial point.
## Installation
The package can be installed via pip: `pip install fpcross` (it requires the [Python](https://www.python.org) programming language of the version >= 3.8). It can be also downloaded from the repository [fpcross](https://github.com/AndreiChertkov/fpcross) and installed by `python setup.py install` command from the root folder of the project.
## Usage
A compact example of using the solver for a user-defined FPE is provided in the script `demo/demo.py` (run it as `python demo/demo.py` from the root of the project).
The software product also implements classes for the model FPEs:
1. multidimensional simple diffusion problem (see `fpcross/equation_demo/equation_dif.py`);
2. multidimensional Ornstein-Uhlenbeck process (see `fpcross/equation_demo/equation_oup.py`);
3. 3-dimensional dumbbell model (see `fpcross/equation_demo/equation_dum.py`).
A demonstration of their solution is given in the script `demo/check.py` (run it as `python demo/check.py` from the root of the project).
## Authors
- [Andrei Chertkov](https://github.com/AndreiChertkov)
- [Ivan Oseledets](https://github.com/oseledets)
> ✭__🚂 The stars that you give to **fpcross**, motivate us to develop faster and add new interesting features to the code 😃
## Citation
If you find this approach and/or code useful in your research, please consider citing:
```bibtex
@article{chertkov2021solution,
author = {Chertkov, Andrei and Oseledets, Ivan},
year = {2021},
title = {Solution of the Fokker--Planck equation by cross approximation method in the tensor train format},
journal = {Frontiers in Artificial Intelligence},
volume = {4},
issn = {2624-8212},
doi = {10.3389/frai.2021.668215},
url = {https://www.frontiersin.org/article/10.3389/frai.2021.668215}
}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/AndreiChertkov/fpcross",
"name": "fpcross",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "Fokker-Planck equation low-rank representation tensor train format TT-decomposition cross approximation probability density estimation",
"author": "Andrei Chertkov",
"author_email": "andre.chertkov@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/c2/04/46d4a2e859ffca32f5640cba578575f116c2f72626a09fb0f0f0a6a2d8a3/fpcross-0.5.5.tar.gz",
"platform": null,
"description": "# fpcross\n\n\n## Description\n\nThis python package, named **fpcross** (**F**okker **P**lanck **cross**-approximation), provides a solver in the low-rank tensor train format with cross approximation approach for solution of the multidimensional Fokker-Planck equation (FPE) of the form\n\n```\nd r(x, t) / d t = D delta( r(x, t) ) - div( f(x, t) r(x, t) ),\nwhere r(x, 0) = r0(x).\n```\n\nThe function f(x, t), its diagonal partial derivatives d f_i (x, t) / d x_i, initial condition r0(x) and scalar diffusion coefficient D should be known. The equation is solved from the initial moment (t = 0) to the user-specified moment (t), while the solutions obtained at each time step can be used if necessary. The resulting solution r(x, t) represents both the TT-tensor on the multidimensional Chebyshev grid and the Chebyshev interpolation coefficients in the TT-format, and therefore it can be quickly calculated at an arbitrary spatial point.\n\n\n## Installation\n\nThe package can be installed via pip: `pip install fpcross` (it requires the [Python](https://www.python.org) programming language of the version >= 3.8). It can be also downloaded from the repository [fpcross](https://github.com/AndreiChertkov/fpcross) and installed by `python setup.py install` command from the root folder of the project.\n\n\n## Usage\n\nA compact example of using the solver for a user-defined FPE is provided in the script `demo/demo.py` (run it as `python demo/demo.py` from the root of the project).\n\nThe software product also implements classes for the model FPEs:\n1. multidimensional simple diffusion problem (see `fpcross/equation_demo/equation_dif.py`);\n2. multidimensional Ornstein-Uhlenbeck process (see `fpcross/equation_demo/equation_oup.py`);\n3. 3-dimensional dumbbell model (see `fpcross/equation_demo/equation_dum.py`).\n\nA demonstration of their solution is given in the script `demo/check.py` (run it as `python demo/check.py` from the root of the project).\n\n\n## Authors\n\n- [Andrei Chertkov](https://github.com/AndreiChertkov)\n- [Ivan Oseledets](https://github.com/oseledets)\n\n> \u272d__\ud83d\ude82 The stars that you give to **fpcross**, motivate us to develop faster and add new interesting features to the code \ud83d\ude03\n\n\n## Citation\n\nIf you find this approach and/or code useful in your research, please consider citing:\n\n```bibtex\n@article{chertkov2021solution,\n author = {Chertkov, Andrei and Oseledets, Ivan},\n year = {2021},\n title = {Solution of the Fokker--Planck equation by cross approximation method in the tensor train format},\n journal = {Frontiers in Artificial Intelligence},\n volume = {4},\n issn = {2624-8212},\n doi = {10.3389/frai.2021.668215},\n url = {https://www.frontiersin.org/article/10.3389/frai.2021.668215}\n}\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Solver in the low-rank tensor-train format with cross approximation approach for solution of the multidimensional Fokker-Planck equation",
"version": "0.5.5",
"project_urls": {
"Homepage": "https://github.com/AndreiChertkov/fpcross",
"Source": "https://github.com/AndreiChertkov/fpcross"
},
"split_keywords": [
"fokker-planck",
"equation",
"low-rank",
"representation",
"tensor",
"train",
"format",
"tt-decomposition",
"cross",
"approximation",
"probability",
"density",
"estimation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d2a41fe09d924ac573013d9f237a0f492bf4bf62ff6662119f79d389d055b8e3",
"md5": "9dab0ad3a31c6797044a4fce2d0ac7a5",
"sha256": "9858d2c9a2c91e7229c7c20d51b859ed4d08fc875f99195a4c229bd60ede757f"
},
"downloads": -1,
"filename": "fpcross-0.5.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9dab0ad3a31c6797044a4fce2d0ac7a5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 14040,
"upload_time": "2023-10-24T15:27:17",
"upload_time_iso_8601": "2023-10-24T15:27:17.762532Z",
"url": "https://files.pythonhosted.org/packages/d2/a4/1fe09d924ac573013d9f237a0f492bf4bf62ff6662119f79d389d055b8e3/fpcross-0.5.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c20446d4a2e859ffca32f5640cba578575f116c2f72626a09fb0f0f0a6a2d8a3",
"md5": "a139fc73b999fdd8dd8a0d2b3efef830",
"sha256": "bc47d8bb448e79a3de5f70fab09a11871ca59833e47579ee556b0d898d8ef12a"
},
"downloads": -1,
"filename": "fpcross-0.5.5.tar.gz",
"has_sig": false,
"md5_digest": "a139fc73b999fdd8dd8a0d2b3efef830",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 356175,
"upload_time": "2023-10-24T15:27:20",
"upload_time_iso_8601": "2023-10-24T15:27:20.548938Z",
"url": "https://files.pythonhosted.org/packages/c2/04/46d4a2e859ffca32f5640cba578575f116c2f72626a09fb0f0f0a6a2d8a3/fpcross-0.5.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-24 15:27:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "AndreiChertkov",
"github_project": "fpcross",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "fpcross"
}