An object-oriented Helmholtz solver
based on tensor notation
Kurt Otto
Division of Scientific Computing, IT, UU
A flexible solver for the Helmholtz equation has been constructed.
It can handle a smoothly varying bathymetry, real or complex wavenumbers,
variable material properties, and layered materials.
The ingredients of
the solution method are fourth-order finite difference and finite element
discretizations, domain decomposition, and preconditioned Krylov subspace
methods. In the preconditioner, fast transform subdomain preconditioners
and the Schur complement algorithm are combined.
We use a tensor notation
that facilitates the implementation of PDE solvers for discretizations on
structured grids.
The solver is written in Fortran 90 using an object-oriented
programming style, which is a key to achieve both flexibility and
computational efficiency.