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

We are now fairly familiar with the concepts and properties of C++ and are ready to use them in numerical applications. As we ll see below, numerical methods are particularly well implemented in C++ using object-oriented programming.
The problems described below and their solution methods are most important in applied science and engineering. Knowing how to develop and program the required numerical algorithms is thus a great advantage.
Many important problems in applied science and engineering can be formulated as differential equations. In scalar differential equations, there is only one unknown function (usually denoted by u) to solve for. In vector (or systems of) differential equations, there are several unknown functions (usually denoted by u, ?, w, etc.) to solve for.
The data that we re given to help discover these unknown functions are in the form of a differential equation and initial and boundary conditions. The unknown functions are available at the initial time through the initial conditions and at the boundary of the spatial domain through the boundary conditions. These values propagate in time to the entire time-space domain, using the propagation law contained in the differential equation. Solving the problem means actually finding explicitly the unknown functions that result from this process.
We first consider linear differential equations, in which the propagation law in the differential equation is independent of the solution.