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

In every time step in the implicit and semi-implicit schemes used above, one actually needs to solve a time-independent subproblem. Thus, the original time-dependent problem has actually been reduced to a sequence of time-independent subproblems.
Similarly, Newton s iteration for the solution of a nonlinear problem also uses a sequence of linear subproblems. Thus, the effective solution of a single elliptic problem is the key to the successful solution of complex nonlinear time-dependent problems.
In this part, we thus focus on elliptic PDEs, with no time variable t at all. Instead, we assume that there are two independent spatial variables x and y. (The three-dimensional case, in which the spatial variable z is also used, is in principle the same.)
Our model problem is the pure-diffusion equation, which has no convection term in it at all. This equation is symmetric in a sense to be defined later and can be reformulated as a minimization problem. This is the basis for the finite-element discretization method.
Although the finite-difference schemes used above are suitable for rectangular domains that can be approximated by uniform grids, they are no longer applicable to complicated domains with curved boundaries. The more flexible finite-element method that uses triangles of variable size and shape is more suitable for this purpose. Furthermore, this method is also suitable...