Implementing a numerical solution of the KPI equation using single assignment c: lessons and experiences

  • Authors:
  • Alex Shafarenko;Sven-Bodo Scholz;Stephan Herhut;Clemens Grelck;Kai Trojahner

  • Affiliations:
  • Department of Computer Science, University of Hertfordshire, U.K.;Department of Computer Science, University of Hertfordshire, U.K.;Department of Computer Science, University of Hertfordshire, U.K.;Institute of Software Technology and Programming Languages, University of Lübeck, Germany;Institute of Software Technology and Programming Languages, University of Lübeck, Germany

  • Venue:
  • IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

We report our experiences of programming in the functional language SaC[1] a numerical method for the KPI (Kadomtsev-Petiviashvili I) equation. KPI describes the propagation of nonlinear waves in a dispersive medium. It is an integro-differential, nonlinear equation with third-order derivatives, and so it presents a noticeable challenge in numerical solution, as well as being an important model for a range of topics in computational physics. The latter include: long internal waves in a density-stratified ocean, ion-acoustic waves in a plasma, acoustic waves on a crystal lattice, and more. Thus our solution of KPI in SaC represents an experience of solving a “real” problem using a single-assignment language and as such provides an insight into the kind of challenges and benefits that arise in using the functional paradigm in computational applications. The paper describes the structure and functionality of the program, discusses the features of functional programming that make it useful for the task in hand, and touches upon performance issues.