Expression Templates Implementation of Continuous and Discontinous Galerkin Methods
Tuesday 19th April 2005
Di Pietro, Daniele A.; Veneziani, Alessandro
Efficiency and flexibility are often mutually exclusive features in a code. This still prompts a large part of the Scientific Computing Community to use traditional procedural language. In the last years, however, new programming techniques have been introduced allowing for a high level of abstraction without loss of performance. In this paper we present an application of the Expression Templates technique introduced in  to the assembly step of a finite element computation. We show that a suitable implementation, such that the compiler has the role of parsing abstract operations, allows for user-friendliness and gain in performance with respect to more traditional techniques. Both the cases of confonforming and discontinuous Galerkin finite element discretization are considered. The proposed implementation is finally applied to a number of problems entailing different kind of complications.