The Bernstein polynomials have been known for over a century and are widely used in the spline literature, computer aided geometric design, and computer graphics. However, the realization that the Bernstein basis has favorable properties allowing the efficient implementation of high order methods for the approximation of partial differential equations is a relatively recent development. For instance, it is known (Ainsworth et al., 2011) that the Bernstein basis can be exploited to compute all of the entries in the load vector in O(p3) operations even in the case of non-linear problems on curvilinear elements for a degree p approximation. Moreover, the element matrices can be assembled in O(1) operations per entry. We show that properties of the Bernstein polynomials can also be exploited to obtain O(p3) complexity procedures for all of the main components needed to implement a high order finite element code including: computation of the residuals needed for an iterative solution method; evaluating the action of a preconditioner for the global mass matrices; and, visualization and post-processing of the resulting finite element approximations.The construction of a preconditioner for the mass matrix whose condition number does not degenerate with the order p, at a cost of O(p3) operations, is one of the main contributions of the present work. The preconditioner is based on an abstract Additive Schwarz Method recently developed by the authors. The preconditioner can be implemented at a cost of O(p3) operations by exploiting properties of the Bernstein polynomials. In particular, we present an algorithm which allows one to invert the interior block of the element mass matrix in O(p3) operations. Numerical examples are provided to illustrate the applicability of the Bernstein basis to challenging non-linear reaction–diffusion problems, non-linear wave propagation of solitons and to robust approximation of problems exhibiting boundary layers.
Read full abstract