Home LibAPMath Animath PWDB
Cavity Flow Poisson Linear Elasticity

animath logo


Version 1.5: Example Applications

Flow Solver Package

The following source package contains a solver for the lid-driven cavity problem, a classic test case of computational fluid dynamics which is also in the aforementioned list of standard tests defined by Dr. Fukunari. GNUPlot scripts for visualization of the fluid velocity on the cavity centerlines are also provided.
The code that actually makes up the fluid solver is kept seperate from the problem set up, in order to allow for its application to other problems. The solver is although research in progress, and more advanced codes are due to follow.
Hints for the compilation can be found in this README

The approach is a very conservative in that pressure is computed with noticable compressibility, and entirely anew in every time-step. Only forward differences are used for the remaining terms. Additionally the relative difference between the solutions in two time-steps is limited above, this although typically only kicks in, in the first one or two iterations. The approach requires a very great number of iterations for computation, however it is very stable.
The second, currently most advanced available solver for Animath, adds inner iterations to the scheme that are inspired by a paper by P. Nithiarasu and O.C. Zienkievicz. It converges fairly fast with Reynolds numbers ranging from 100 to 2000. The scheme has a clear preference for Re = 1000, this value is therefore used as a start value for computations with other driving velocities.

The above y-centerline (0.5, y, 0.5) plot was obtained with a driving velocity of v = 100 at x = 0, and only 4 (!) subdivisions of the x,y and z-axis-aligned cavity edges.

Poisson Equation

This is the most basic test that is applied to a new version of the code. The Poisson equation is a classic static test case for verification of the basic functioning of the matrix and load vector generators and the boundary condition code.
It is configured for use with a version of Animath that uses Sparse Lib/IML++ as iterative matirx solver.

The approach is that both compressibility and the size of the timesteps are made dependent on the relative difference. Such that great changes of velocity between two consecutive timesteps, increase medium compressibility and decrease the size of the next step. The results are comparative to reference data of Chorin already at low mesh resolutions.