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

In this chapter, we present the Stokes equations and their relation to the general linear elasticity equations. The present adaptive-refinement algorithm uses modified multigrid to solve linear elasticity problems that approximate the original Stokes equation. On the finest mesh, a Schur-complement preconditioner is used to solve the original Stokes equations. Other algorithms to solve the Stokes and Navier Stokes equations are also described.
In order to present the Stokes and Navier Stokes equations that model fluid dynamics, we need the Nabla operator, denoted by
. This operator acts differently on scalar and vector functions. Furthermore, its interpretation depends on the arithmetic symbol that follows it.
The Nabla operator acts upon scalar and vector functions of three spatial variables x, y, and z. For example, let s consider the scalar function
and the vector function
In what follows, we assume that the scalar functions s, ? 1, ? 2, and ? 3 are differentiable to the second order; that is, they have well-defined second derivatives, including mixed ones.
The Nabla operator may be interpreted in three different ways. The interpretation depends on the symbol that follows the
symbol and the type of function that follows it.
When the
symbol is followed by the name of a function with no arithmetic symbol in between, it is interpreted as the gradient operator:
When applied to a scalar function, this operator produces the vector of derivatives
In the above, the Nabla operator is applied...