burgers_solution, a FORTRAN77 code which evaluates an exact solution of the time-dependent 1D viscous Burgers equation.
The form of the Burgers equation considered here is:
du du d^2 u -- + u * -- = nu * ----- dt dx dx^2for -1.0 < x < +1.0, and 0.0 < t.
Initial conditions are u(x,0) = - sin(pi*x). Boundary conditions are u(-1,t) = u(+1,t) = 0. The viscosity parameter nu is taken to be 0.01 / pi, although this is not essential.
The authors note an integral representation for the solution u(x,t), and present a better version of the formula that is amenable to approximation using Hermite quadrature.
This program library does little more than evaluate the exact solution at a user-specified set of points, using the quadrature rule. Internally, the order of this quadrature rule is set to 8, but the user can easily modify this value if greater accuracy is desired.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
burgers_solution is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.
burgers, a dataset directory which contains 40 solutions of the Burgers equation in one space dimension and time, at equally spaced times from 0 to 1, with values at 41 equally spaced nodes in [0,1];
fd1d_burgers_lax, a FORTRAN77 program which applies the finite difference method and the Lax-Wendroff method to solve the non-viscous Burgers equation in one spatial dimension and time.
fd1d_burgers_leap, a FORTRAN77 program which applies the finite difference method and the leapfrog approach to solve the non-viscous Burgers equation in one spatial dimension and time.