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 2D problems solved in sequential execution mode or logarithmic computational cost O(log(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.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call