Spectral methods for the Navier-Stokes equations with one infinite and two periodic directions
Journal of Computational Physics
ACM Transactions on Mathematical Software (TOMS)
Expressing object-oriented concepts in Fortran 90
ACM SIGPLAN Fortran Forum
C++ and object-oriented numeric computing for scientists and engineers
C++ and object-oriented numeric computing for scientists and engineers
C++ Scientific Programming: Computational Recipes at a Higher Level
C++ Scientific Programming: Computational Recipes at a Higher Level
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
The T Experiments: Errors In Scientific Software
IEEE Computational Science & Engineering
Quantitative Analysis of Faults and Failures in a Complex Software System
IEEE Transactions on Software Engineering
Object Oriented Programming Via FORTRAN 90/95
Object Oriented Programming Via FORTRAN 90/95
Avoiding memory leaks with derived types
ACM SIGPLAN Fortran Forum
Memory leaks in derived types revisited
ACM SIGPLAN Fortran Forum
MOCCA - Towards a Distributed CCA Framework for Metacomputing
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 4 - Volume 05
A Component Architecture for High-Performance Scientific Computing
International Journal of High Performance Computing Applications
Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series)
Writing Scientific Software: A Guide to Good Style
Writing Scientific Software: A Guide to Good Style
Dynamic Memory De-allocation in Fortran 95/2003 derived type calculus
Scientific Programming
How to Express C++ Concepts in Fortran90
Scientific Programming
Coordinate free programming of computational fluid dynamics problems
Scientific Programming
An algebraic programming style for numerical software and its optimization
Scientific Programming
Formal constraints on memory management for composite overloaded operations
Scientific Programming
Formal constraints on memory management for composite overloaded operations
Scientific Programming
Towards analysis-driven scientific software architecture: The case for abstract data type calculus
Scientific Programming - Complexity in Scalable Computing
Design patterns for multiphysics modeling in Fortran 2003 and C++
ACM Transactions on Mathematical Software (TOMS)
Hi-index | 0.00 |
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.