Two-Dimensional Adaptive Finite Element Using GPGPU

Document Type : Research Article

Authors

1 Civil Engineering Department, K. N. Toosi University of Technology

2 Structure Div/Civil Eng. Faculty/K.N. Toosi University of Technology/Tehran/Iran

Abstract

Given the new capabilities provided by graphics processing units (GPUs) for general-purpose computing under the CUDA platform, and the economic efficiency of GPUs compared to standard processors, this paper aims to present an algorithm that can reduce computation time through general-purpose GPU processing. The proposed algorithm begins with an initial finite element analysis using a nearly uniform mesh and refines the mesh intelligently at each step based on the displacement gradient. The conventional algorithm has been improved at several points. The patch formation stage is implemented using the K-nearest neighbor method to facilitate more efficient parallelization. In the data transfer stage, a dynamic method is employed to select the optimal curve from a set of the best curves. Python is used for implementation to reach a wider audience and to release the code as open-source. The results show that the acceleration of this algorithm increases proportionally with the number of elements. For instance, for a problem with 908 elements, the processing speed for stages one through three increased by factors of 6.6, 9.1, and 12.7, respectively. The total time required for all three stages in serial processing was 96 seconds, which was reduced to 8 seconds using this algorithm. The results indicate that this software can be used to accelerate adaptive finite element analysis to reduce discretization error in elements.

Keywords

Main Subjects