This page contains links to MATLAB source code that computes solutions to the partial differential equations: \[ -\Delta u +bu=f(x,y) \quad \text{in }\Omega :=(0,1)^2, \] \[ u=0 \quad \text{on } \partial \Omega. \]
Three related schemes are used:
All the code is written in MATLAB, and uses the Chebfun toolbox to simplify some calculations. With some minor adjustments, the calls to Chebfun may be by-passed, and so resulting in code that will run on both MATLAB and Octave.
For more information, see
Russell, Stephen and Niall Madden. "An Introduction to the Analysis and Implementation of Sparse Grid Finite Element Methods" Computational Methods in Applied Mathematics, 17(2). (2017): 299-322. doi:10.1515/cmam-2016-0042 .
Cite this code as
Stephen Russell and Niall Madden. (2016). niallmadden/SparseGrids: Sparse Grid FEM. Zenodo. http://doi.org/10.5281/zenodo.154427.
The goal of this article is to present elementary approaches to the analysis and programming of sparse grid finite element methods. This family of schemes can compute accurate solutions to partial differential equations, but using far fewer degrees of freedom than their classical counterparts. After a brief discussion of the classical Galerkin finite element method with bilinear elements, we give a short analysis of what is probably the simplest sparse grid method: the two-scale technique of Lin et al. (2001). We then demonstrate how to extend this to a multiscale sparse grid method. This method is equivalent to the hierarchical basis approach, as described in, e.g., by Bungartz and Griebel (2004). However, by presenting it as an extension of the two-scale method, we can give an elementary treatment of its analysis and implementation. For each method considered, we provide MATLAB code for the implementation, and a comparison of accuracy and computational costs.