Personal tools

Divergence Benchmark

This benchmark tests the implementation of the divergence term in equation [eq:divergence]. In 2D, a constant divergence is applied to a square domain, and the velocity on the corners is set to enforce a spreading from the center of the square. Figure 1 shows the velocity and strain rate invariant for a numerical solution. For a constant divergence [;d;], the analytic solution for this setup is

[;\begin{align*} v_x &= x \cdot d/2 \\ v_y &= y \cdot d/2 \end{align*}. ;]

In 3D, the analytic solution is

[;\begin{align*} v_x &= x \cdot d/3 \\ v_y &= y \cdot d/3 \\ v_z &= z \cdot d/3 \end{align*}.;]

In both cases, the strain rate invariant equals [;\sqrt{d/2};]. As shown in Figure 2, the main source of error in 2D comes from inaccuracies in the solver. Figure 3 paints a different picture in 3D, where the main source of error comes from having a finite number of particles.

images/divergence_v.png

Figure 1: Velocity and Strain Rate Invariant solution for the 2D Divergence benchmark. The variation in the strain rate invariant is uniformly small.

images/divergence_2D_error.png

Figure 2: Maximum error in the strain rate invariant for the 2D Divergence benchmark vs. tolerance in the linear solver. The resolution is kept at 32 × 32, and the number of particles per cell is kept at 30.

images/divergence_3D_error.png

Figure 3: Maximum error in the strain rate invariant for the 3D Divergence benchmark vs. the number of particles in each cell. The resolution is kept at 16 × 16 × 16, and the tolerance in the linear solver is kept at 10-7.

Document Actions