Solving PDEs in C++: Numerical Methods in a Unified Object-Oriented Approach

Objects are abstract concepts that one can operate on. In C, only numerical objects such as integer and real numbers and characters are available. These objects merely serve as arguments passed to functions. In C++, on the other hand, programmers may construct their own objects, which can be much more complex and have many useful functions. Thus, in C++, objects play a much more active role. They are the center of the implementation, which focuses on them and their properties. They not only wait until some function uses them as arguments but actively call functions that reflect their potential.
In C++, the programmer implements not only isolated algorithms but also complete mathematical objects (such as vectors and matrices) that can be used in many algorithms and applications. This makes the programming language dynamic: the new objects may serve as new types, which make the programming language richer and more suitable for new applications.
This part introduces the object-oriented approach that is in the very heart of C++. In the first chapter in this part (Chapter 4), a unified approach from graph theory is used to introduce the present object-oriented framework, with potential applications in unstructured meshes (Part IV) and sparse matrices (Part V). The second chapter in this part (Chapter 5) introduces algorithms that use mathematical objects in their implementation. In particular, it implements fully the "polynomial" object and associated functions,...