This is a Julia implementation of the framework described in
[1] Kahl, K., Kintscher, N. Automated local Fourier analysis (aLFA). Bit Numer Math (2020). https://doi.org/10.1007/s10543-019-00797-w
The main purpose of this framework is to enable the reliable and easy-to-use analysis of complex methods on repetitive structures, e.g., multigrid methods with complex overlapping block smoothers.
Throughout this framework we refer to definitions, theorems, lemmata and algorithms in [1].
As this package is registered with the General Registry, it can be installed via Julia's Package Manager as follows:
using Pkg
Pkg.add("ALFA")
- If you only want to use this framework to analyze an operator or a method/composition of operators, you may try to proceed in the same way as in the examples: The examples in [1] can be found in the documentation of this framework.
- If you are interested in the core algorithms and want to understand this framework completely, I recommend to read [1] completely before digging into the source code of this repository.
- Several unit tests of this framework are done with randomly generated crystal operators which can lead to very ill-conditioned problems. Thus, these tests may fail in case the datatype used for the lattice basis and structure elements is
T::Float64
. As this cannot be avoided when using floating-point arithmetic, the tests don't throw an error if at least$95%$ pass. This should not be a problem in actual applications. Nevertheless, there exist rational versions (T::Rational{BigInt}
) of these algorithms which are very reliable, but also slower.