Welcome to AFMM2Dlib’s Documentation!
About \(\texttt{AFMM2Dlib}\):
AFMM (Algebraic FMM) is an FMM implementation where the low rank approximations of appropriate matrix sub-blocks are formed in an algebraic fashion.
\(\texttt{AFMM2Dlib}\) is a library consisting of AFMM for kernels in 2D.
Low-rank approximation of the appropriate blocks is obtained using ACA. The domain is subdivided based on a KDTree. The algorithm has been parallelized using OpenMP.
The code is written in C++ and features an easy-to-use interface, where the user provides the following inputs:
a
kernelobject which abstracts data of the matrix through a member functiongetMatrixEntry(int i, int j)which returns the entry at the \(i^{\mathrm{th}}\) row and \(j^{\mathrm{th}}\) column of the matrix.locations of nodes in the domain through an Eigen matrix
locthe vector
bto be multiplied to the matrix
Obtains \(A x\) at a cost of \(\mathcal{O}\left(N\right)\)
Doc Contents
Contents:
Other Links
Learn more about \(\texttt{AFMM2Dlib}\) by visiting the
Code Repository: http://github.com/sivaramambikasaran/AFMM2D
Documentation: http://afmm2d.rtfd.io