A grid-free abstraction of the Navier-Stokes equations in Fortran 95/2003

Abstract

Computational complexity theory inspires a grid-free abstraction of the Navier-Stokes equations in Fortran 95/2003. A novel complexity analysis estimates that structured programming time grows at least quadratically with the number of program lines. Further analysis demonstrates how an object-oriented strategy focused on mathematical objects renders the quadratic estimate scale-invariant, so the time required for the limiting factor in program development (debugging) no longer grows as the code grows. Compared to the coordinate-free C++ programming of Grant et al. [2000], grid-free Fortran programming eliminates a layer of procedure calls, eliminates a related need for the C++ template construct, and offers a shorter migration path for Fortran programmers. The grid-free strategy is demonstrated by constructing a physical-space driver for a Fourier-space Navier-Stokes solver. Separating the expression of the continuous mathematical model from the discrete numerics clarifies issues that are otherwise easily conflated. A run-time profile suggests that grid-free design substantially reduces the fraction of the procedures that significantly impact runtime, freeing more code to be structured in ways that reduce development time. Applying Amdahl's law to the total solution time (development time plus run time) leads to a strategy that negligibly impacts development time but achieves 58% of the maximum possible speedup.

Document Details

Document Type
Pub Defense Publication
Publication Date
Jan 01, 2008
Source ID
10.1145/1322436.1322438

Entities

People

  • Damian W. I. Rouson
  • Irene Moulitsas
  • Robert Rosenberg
  • Stavros C. Kassinos
  • Xiaofeng Xu

Organizations

  • Office of Naval Research
  • United States Naval Research Laboratory
  • University of Cyprus
  • University of Maryland

Tags

Fields of Study

  • Computer science

Readers

  • Calculus or Mathematical Analysis
  • Computational Fluid Dynamics (CFD)
  • Parallel and Distributed Computing.

Technology Areas

  • Space