Object-oriented implementation of the alternating directions implicit solver for isogeometric analysis. (February 2019) - Gurgul, Grzegorz; Paszyński, Maciej
Highlights: We propose a task-based implementation of the Alternating Directions Implicit Method. The computational cost is O(log(N)) in parallel environments. We provide a quality object-oriented implementation to be easily extended. We perform the heat transfer and flood simulations using this software. Abstract: In this paper, we show how to design and implement an object-oriented version of the IGA-ADI solver, an extension of the explicit version of the Alternating Directions Solver (ADS), known for having multiple applications in simulations performed within Isogeometric Analysis (IGA). We propose a method to reduce the number of time steps by three orders in magnitude in comparison to the existing technique which translates into a linear computational cost O ( N ) for 2 D problems solved in sequential execution mode or logarithmic computational cost O ( l o g ( N ) ) in parallel execution mode. Our secondary goal is to exemplify the benefits of employing certain object-oriented programming techniques to enhance the quality of similar experimental software, using our solver as a case-study example. In particular, we demonstrate how to represent the IGA-ADI solver as a composite structure of simpler and loosely-coupled sub-solvers, and how to formulate the complicated core of the numerical algorithm using declarative language which hides its mathematical complexity behind a set of atomic tasks. We evaluate this solver using two criteria we consider equally relevant in this context: (A) the performance and (B) the quality of the design estimated by popular test metrics and the results of a survey conducted on a group of software engineers. We also present some practical applications of this solver and discuss emerging research directions.