function w = solbu(w,nx,dx,dt,lg,ul,ur,n) // Copyright G. Allaire, Octobre 2002 // // solution exacte du probleme de Riemann pour Burgers // if ul >= ur // // choc // for i=2:nx xi = (i-1)*dx ; if xi < lg/2 + (ul+ur)*0.5*n*dt w(i) = ul ; else w(i) = ur ; end end else // // detente // for i=2:nx xi = (i-1)*dx ; if xi <= lg/2 + ul*n*dt w(i) = ul ; elseif xi >= lg/2 + ur*n*dt w(i) = ur ; else w(i) = (xi-lg/2)/(n*dt) ; end end end endfunction