                 S m o l u c h o w s k i   S o l v e r

                           The README file

This is a set of programs that solve the Smoluchowski problems (forward and 
inverse) with fast algorithms of linear algebra.

This program attached to article
Zaks R.T., Matveev S.A., Shutyaev, V.P.
Fast Numerical Method for Source Function Reconstruction in
the Coagulation-Fragmentation Equation.
Comput. Math. and Math. Phys. 65, 1671-1690 (2025).
https://doi.org/10.1134/S0965542525700629. 

To build SmoluchowskiSolver you will need gcc/g++ (of any version you can find
nowadays) and GNU make. Just type 'make' right here (in the same
directory you've found this file) and wait a bit. Binarie 'smolsolver' will
be found in the 'examples/' subdirectory. Yoy can also type 'make all' to
build test files to cross approximation and fast fourier transformation in
'smoluchowski/' subdirecrtory.

Autogenerated doxygen documentation (only to code) can be found on
https://smoluch.rozax.net/doxygen/ or generated by self using
doxygen 1.4.1 by type 'make doxydocs'.

Directory structure:
./             - root of all subroutines
./smoluchowski - "library" with solver of Smoluchowski equation
./examples     - directory with example of use SmoluchowskiSolver
./doc/doxygen  - contains configuration of doxygen documentation

Library structure:
./smoluchowski/fft.*       - contains class of Complex numbers and 
    FourieTransform wich can do usual and fast discrete Fourier transform
./smoluchowski/matrix.*    - contains base class to work with matrix and 
    class of matrix wich stored by columns (so you can easy increase columns)
./smoluchowski/indexlist.* - contains class with list of increasing numbers
    wich used in cross approximation
./smoluchowski/skeleton.*  - contains base class of skeleton decomposition
    with fast matvec functions (full, upper/lower triangular)
./smoluchowski/cross.*     - contains class of Cross Approximation
./smoluchowski/operator.*  - contains direct and fast apply of nonlinear,
    linear and adjoint operators
./smoluchowski/solver.*    - contains SmoluchowskiSolver wich can solve
    such forward linear and nonlinear problems as linear adjoint and
    inverse problems
