Sei sulla pagina 1di 2

BURGERS_SOLUTION - Exact Solution of Time Dependent 1D Visco...

http://people.sc.fsu.edu/~jburkardt/cpp_src/burgers_solution/burgers_so...

BURGERS_SOLUTION Exact Solution of Time Dependent 1D Viscous Burgers Equation


BURGERS_SOLUTION is a C++ library 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^2

for -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.

Licensing:
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:
BURGERS_SOLUTION is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:


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 C++ 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 C++ program which applies the finite difference method and the leapfrog approach to solve the non-viscous Burgers equation in one spatial dimension and time.

Reference:
1. Claude Basdevant, Michel Deville, Pierre Haldenwang, J Lacroix, J Ouazzani, Roger Peyret, Paolo Orlandi, Anthony Patera,

1 von 2

03.02.2012 17:04

BURGERS_SOLUTION - Exact Solution of Time Dependent 1D Visco...

http://people.sc.fsu.edu/~jburkardt/cpp_src/burgers_solution/burgers_so...

Spectral and finite difference solutions of the Burgers equation, Computers and Fluids, Volume 14, Number 1, 1986, pages 23-41.

Source Code:
burgers_solution.cpp, the source code. burgers_solution.hpp, the include file. burgers_solution.sh, BASH commands to compile the source code.

Examples and Tests:


burgers_solution_prb.cpp, a sample calling program. burgers_solution_prb.sh, BASH commands to compile and run the sample program. burgers_solution_prb_output.txt, the output file. burgers_test01.txt, a data file of solution values for -1 <= x <= +1, 0 <= t <= 3/pi, using 11 grid points in x and in t. burgers_test02.txt, a data file of solution values for -1 <= x <= +1, 0 <= t <= 3/pi, using 41 grid points in x and in t. burgers_test01.png, an image of U(X,T) for the burgers_test02 data, produced by MATLAB's surf() command.

List of Routines:
BURGERS_SOLUTION evaluates a solution to the Burgers equation. HERMITE_EK_COMPUTE computes a Gauss-Hermite quadrature rule. IMTQLX diagonalizes a symmetric tridiagonal matrix. R8_ABS returns the absolute value of an R8. R8_EPSILON returns the R8 roundoff unit. R8_MAX returns the maximum of two R8's. R8_MIN returns the minimum of two R8's. R8_SIGN returns the sign of an R8. R8MAT_PRINT prints an R8MAT. R8MAT_PRINT_SOME prints some of an R8MAT. R8MAT_WRITE writes an R8MAT file. R8VEC_EVEN_NEW returns an R8VEC of values evenly spaced between ALO and AHI. R8VEC_PRINT prints an R8VEC. TIMESTAMP prints the current YMDHMS date as a time stamp. You can go up one level to the C++ source codes. Last revised on 18 November 2011.

2 von 2

03.02.2012 17:04

Potrebbero piacerti anche