Metadata-Version: 2.1
Name: fpcross
Version: 0.2
Summary: Solver in the low-rank tensor-train format with cross approximation approach for solution of the multidimensional Fokker-Planck equation
Home-page: https://github.com/AndreiChertkov/fpcross
Author: Andrei Chertkov
Author-email: a.chertkov@skoltech.ru
License: MIT
Project-URL: Source, https://github.com/AndreiChertkov/fpcross
Description: # Package 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.7). 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.
        
        > Required python packages [matplotlib](https://matplotlib.org/), [numpy](https://numpy.org), [scipy](https://www.scipy.org), [teneva](https://github.com/AndreiChertkov/teneva) and [tqdm](https://github.com/tqdm/tqdm) will be automatically installed during the installation of the main software product.
        
        
        ## 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/EquationDif.py`);
        2. multidimensional Ornstein-Uhlenbeck process (see `fpcross/equation_demo/EquationOUP.py`);
        3. 3-dimensional dumbbell model (see `fpcross/equation_demo/EquationDum.py`).
        
        A demonstration of their solution is given in the script `demo/check.py` (run it as `python cdemo/heck.py` from the root of the project).
        
        
        ## Authors
        
        - [Andrei Chertkov](https://github.com/AndreiChertkov) (a.chertkov@skoltech.ru);
        - [Ivan Oseledets](https://github.com/oseledets) (i.oseledets@skoltech.ru).
        
        
        ## 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}
        }
        ```
        
Keywords: Fokker-Planck equation low-rank representation tensor train format TT-decomposition cross approximation probability density estimation
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Framework :: Jupyter
Requires-Python: >=3.7
Description-Content-Type: text/markdown
