Johan Walden - Applied mathematics (3/4)
Fast multiscale methods for PDEs
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Filterbank software:
The Filterbank source code is an object-oriented C++ library for solving time dependent PDEs efficiently in two space dimensions, with general boundary conditions, using the method described above.
I have tested it on multiple platforms (Unix with Sun, gnu and Digital compilers, and Windows/Cygwin with gnu compiler).
If you want to get the source code for non-commercial use, please download and send me following non-commercial license agreement.
The filterbank method uses generalized wavelet techniques to construct an adaptive multiscale method for time dependent (systems of) PDEs. In my thesis [J4]*, I solved several test problems with periodic boundary conditions, with successful results. Figures 1 and 2 are from my thesis (click on the figures for increased size).
Figure 1 shows the approximated solution to the bidimensional Burgers equation, which starts with smooth initial data, and develops regions with well localized shocks over time. Figure 2 shows the sparse wavelet representation of the solution, which perfectly localizes the shock, and compresses the solution about 30 times compared with a nonsparse solver, with negligable increase in error.
In [J5,J6], I further developed the method to allow for boundary conditions and noncartesian grids. The resulting program allowed for solving nontrivial problems, like the Euler and Navier-Stokes equations in two dimensions. This was used in [R4] to develop a fourth-order fully adaptive method for supersonic flow around a disk. The results are shown in Figure 3 and 4.
Figure 3 shows the grid at a resolution of 65*65 points. This is the coarsest level for the multilevel solver -- the finest level is 513*513 points. The ISO-Mach curves for the steady state solution is shown in Figure 4. The adaptive method reaches a CPU speedup of about 11 times compared with a nonadaptive solver.
The filterbank method is fully object oriented, with the underlying idea that the adaptivity should only be implemented once, and that when this is done, new PDEs can be implemented as if the method is nonsparse, saving considarable programming efforts. The fundamental objects for the solver are shown in Figure 5. These are discussed in [J6].
License agreement:
Continue
Back