tAdded Courant criteria for ensuring numerical stability - lbm-d3q19 - 3D lattice-Boltzmann code to approximate Navier-Stokes incompressible flow
 (HTM) git clone git://src.adamsgaard.dk/lbm-d3q19
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit 1e0a6e6406bfb66a9c64fb94e8370ea2513ecea7
 (DIR) parent 432185412169f2d169eaec398cfa9154642e4bd2
 (HTM) Author: Anders Damsgaard <adc@geo.au.dk>
       Date:   Tue, 25 Jun 2013 12:33:55 +0200
       
       Added Courant criteria for ensuring numerical stability
       
       Diffstat:
         M lbm.c                               |      16 +++++++++++++++-
       
       1 file changed, 15 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/lbm.c b/lbm.c
       t@@ -3,7 +3,6 @@
        #include <math.h>
        
        // Courant kriterie for tidsskridt
       -// Check for LBM stability criteria
        // No slip top og bund
        // Periodiske sider
        
       t@@ -64,6 +63,9 @@ const Float rho0 = 1.0;
        // Inital cell fluid velocity (dimensionless)
        const Float3 u0 = {0.0, 0.0, 0.0};
        
       +// Courant criteria limit
       +const Float C_max = 1.0;
       +
        
        //// FUNCTION DEFINITIONS
        
       t@@ -254,6 +256,18 @@ Float3 find_u(
                u.y += f_i*e[i].y/rho;
                u.z += f_i*e[i].z/rho;
            }
       +
       +    // Check the Courant-Frederichs-Lewy condition
       +    if ((u.x*dt/dx + u.y*dt/dx + u.z*dt/dx) > C_max) {
       +        fprintf(stderr, "Error, the Courant-Friderichs-Lewy condition is not ");
       +        fprintf(stderr, "satisfied.\nTry one or more of the following:\n");
       +        fprintf(stderr, "- Decrease the timestep (dt)\n");
       +        fprintf(stderr, "- Increase the cell size (dx)\n");
       +        fprintf(stderr, "- Decrease the fluid viscosity (nu)\n");
       +        fprintf(stderr, "- Decrease the fluid density (rho)\n");
       +        exit(EXIT_FAILURE);
       +    }
       +
            return u;
        }