Efficient discretization of the Laplacian on complex geometries
<|reference_start|>Efficient discretization of the Laplacian on complex geometries: Highly accurate simulations of problems including second derivatives on complex geometries are of primary interest in academia and industry. Consider for example the Navier-Stokes equations or wave propagation problems of acoustic or elastic waves. Current finite difference discretization methods are accurate and efficient on modern hardware, but they lack flexibility when it comes to complex geometries. In this work I extend the continuous summation-by-parts (SBP) framework to second derivatives and combine it with spectral-type SBP operators on Gauss-Lobatto quadrature points to obtain a highly efficient discretization (accurate with respect to runtime) of the Laplacian on complex domains. The resulting Laplace operator is defined on a grid without duplicated points on the interfaces, thus removing unnecessary degrees of freedom in the scheme, and is proven to satisfy a discrete equivalent to Green's first identity. Semi-discrete stability using the new Laplace operator is proven for the acoustic wave equation in 2D. Furthermore, the method can easily be coupled together with traditional finite difference operators using glue-grid interpolation operators, resulting in a method with great practical potential. Two numerical experiments are done on the acoustic wave equation in 2D. First on a problem with an analytical solution, demonstrating the accuracy and efficiency properties of the method. Finally, a more realistic problem is solved, where a complex region of the domain is discretized using the new method and coupled to the rest of the domain discretized using a traditional finite difference method.<|reference_end|>
@article{eriksson2024efficient,
    title={Efficient discretization of the Laplacian on complex geometries},
    author={Gustav Eriksson},
    journal={arXiv preprint arXiv:2404.09050},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.09050},
    primaryClass={math.NA cs.NA}
}