AFEPack: A General-Purpose C++ Library for Numerical Solutions of Partial Differential Equations (Communications in Computational Physics, 2024)
AFEPack is a general-purpose C++ library for numerical solutions of partialdifferential equations. With over two decades development, AFEPack has been successfully applied for scientific and engineering computational problems in a varietyof areas such as computational fluid dynamics, electronic structure calculations, computational micromagnetics. In this paper, design philosophy of the library, algorithmsand data structures used in the discretization of governing equations, numerical linearalgebra for the discretized system, as well as the pre-processing and post-processing ofthe simulations, will be described systematically for the AFEPack. The realization oftwo main features of the library, i.e., adaptive mesh methods and parallel computing, will be introduced in detail. The potential of the library for large scale scientific/engineering problems would be demonstrated by several examples. The future works ondeveloping the library will also be discussed.