Object‐Oriented Programming for Scientific Codes. I: Thoughts and Concepts

Abstract
This paper is an introduction to object‐oriented programming (OOP) as it relates to the development of large‐scale scientific codes. It is the first of two papers describing OOP issues for scientific‐code development. Since object‐oriented methods provide for the encapsulation of data and methods, scientific codes can be written in terms of the underlying physics of the problem with less regard for computer‐science details. We discuss some of the features of large‐scale scientific codes that are amenable to object‐oriented design. The concept of efficient portability is elucidated, explaining why object‐oriented user codes need not be altered when moving code to radically different computer architectures. In fact, we envision codes running without major changes on serial machines, such as a Sun or Vax; vector machines, such as a Cray; and on massively parallel processor systems, such as the Connection Machine. Comparisons between FORTRAN and the object‐oriented programming language of C++ are illustrated with simple examples of matrix operations.

This publication has 6 references indexed in Scilit: