
This program, sindecay.cpp, simulates a flow with a sinusoidal initial 
condition and compares the DNS solution to the known analytic solution.

Take base flow U(y) == 0 and constrain the system to have zero
pressure gradient. For the initial condition, set

 u(x,y,z,0) = eps*sin(2*pi*ky*y[ny]/Ly)

Then the exact solution of the Navier-Stokes equation (with periodic BCs in
(x,z) and u=0 at y = +- 1) is

 u(x,y,z,t) = u(x,y,z,0)*exp(-nu*t*square(2*pi*ky/Ly))

The program computes and compares the 

      un == the numerical solution from an NSIntegrator (a DNS)
      ut == the true solution, computed by the above formula for u(x,y,z,t)

Output is 

    y.asc : the chebyshev gridpoints yj
    t.asc : the times ti
  
   un.asc : ascii file of un(y,t), with y varying along rows, t along cols
            i.e. un(i,j) == un(yj,ti)

   ut.asc : ditto for ut(y,t)

   unorms.asc : rows are L2(un) L2(ut) L2(un-ut) L2(div(un)) bcL2(un)
                cols are above quantities at times ti

     L2(u) == sqrt(1/vol \int_domain |u|^2 dx dy dz)
   bcL2(u) == sqrt(1/vol \int_walls  |u|^2 dx dz)

The matlab script plotsindecay.m loads the above data and produces 
useful plots for intepreting the results.

