Tensor-structured PCG for finite difference solver of domain patterns in ferroelectric material
Věnceslav Chumchal, Pavel Marton, Martin Plešinger, Martina Šimůnková
TL;DR
The paper addresses efficient solution of discretized Poisson equations $- abla^2\upsilon=\eta$ on ferroelectric domain patterns by exploiting Kronecker-structured Laplacians. The authors develop and compare several preconditioners for preconditioned conjugate gradients, notably a Moore–Penrose pseudoinverse-based preconditioner that delivers rapid convergence across 2D and 3D problems with dense right-hand sides. They provide a detailed cost analysis and practical implementation notes, including the interpretation of the method as a direct solver with iterative refinement and its Matlab/Ferrodo2 realization. The results demonstrate robust, scalable performance for large-scale, Kronecker-structured Poisson problems relevant to ferroelectric material simulations, with clear implications for fast electrostatic computations in domain pattern studies.
Abstract
This paper presents a case study of application of the preconditioned method of conjugate gradients (CG) on a problem with operator resembling the structure of sum of Kronecker products. In particular, we are solving the Poisson's equation on a sample of homogeneous isotropic ferroelectric material of cuboid shape, where the Laplacian is discretized by finite difference. We present several preconditioners that fits the Kronecker structure and thus can be efficiently implemented and applied. Preconditioner based on the Moore--Penrose pseudoinverse is extremely efficient for this particular problem, and also applicable (if we are able to store the dense right-hand side of our problem). We briefly analyze the computational cost of the method and individual preconditioners, and illustrate effectiveness of the chosen one by numerical experiments. Although we describe our method as preconditioned CG with pseudoinverse-based preconditioner, it can also be seen as pseudoinverse-based direct solver with iterative refinement by CG iteration. This work is motivated by real application, the method was already implemented in C/C++ code Ferrodo2 and first results were published in Physical Review B 107(9) (2023), paper id 094102.
