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.
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.