I've seen that many people are using matrix-free fem codes in my community (mechanical engineering). I have to admit that I googled a bit and I didn't manage to find a good reference for the subject. Even a quick look to the books cited in this question Matrix free finite elements method for visualization in process tomography are not really introducing the matrix-free concept in the FEM context, rather they're giving it for granted. I'd like to know some references people have used as an introduction to the topic.

  • 1
    $\begingroup$ If the mesh has a regular structure then clearly a matrix needs not be stored. As an example the FDM 5-point stencil discretising the Laplacian results in a pentadiagonal matrix, which coincides with the one from P1 elements on the same regular grid. Even if the mesh were to be irregular, one can still walk over the mesh whenever a matrix-vector multiplication is to be performed instead of building a sparse matrix explicitly. I have found the former to be slower due to memory access however, as mesh data is usully larger than a CSR matrix. $\endgroup$
    – lightxbulb
    Commented Jan 14, 2023 at 2:22
  • $\begingroup$ @lightxbulb Why should it be necessary to store a matrix especially on regular meshes? $\endgroup$
    – ConvexHull
    Commented Jan 15, 2023 at 14:50
  • $\begingroup$ Thanks for commenting. I was actually wondering if there are books ( or chapter of books, articles, thesis) talking about this at an introductory level. $\endgroup$
    – FEGirl
    Commented Jan 15, 2023 at 14:51
  • $\begingroup$ @ConvexHull I said that you shouldn't store a matrix for regular meshes, since for those you can typically figure out a stencil once and be done. In FDM (and usually FEM on regular grids with P1 elements) the application of differential operators can be written in the form of slightly modified sparse circulant matrices (the modifications happen at the boundaries), which is equivalent to a convolution with specific boundary conditions. It's obvious that one can save a lot by not building the matrix explicitly. I personally work on somewhat large problems and the bottleneck is memory access. $\endgroup$
    – lightxbulb
    Commented Jan 15, 2023 at 15:42
  • 1
    $\begingroup$ @FEGirl I cannot think of a specific book, but here are several examples when a matrix multiplication could be substituted with some procedure that doesn't require building a matrix explcitly: discretisations of the Laplacian on regular meshes (e.g. in 2D on a regular grid: 5-point stencil convolution), fast Fourier forward and backtransform for diagonalising circulant matrices and applying their inverses (cosine transform works for reflecting boundary conditions), prolongation and restriction in multigrid (e.g. see the book by Wesseling), domain decomposition preconditioners, inverse matrix. $\endgroup$
    – lightxbulb
    Commented Jan 15, 2023 at 15:48


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.