test  = { 'square', 'smooth' } ;

nflux = { 'Godunov', ...
          'force', ...
          'LaxFriedrichs', ...
          'Richtmyer', ...
          'GodunovCentered' } ;

close all ;

for j=1:length(nflux)

  ok = input( ['Start numerical flux: ' nflux{j} ' [q=quit] ' ], 's' ) ;
  if ok == 'q'
    break ;
  end ;

  handleFig = figure('Position',[10 10 1000 600],'color','w') ;

  for i=1:length(test)

    BurgersModel( 'setup' ) ;
    BurgersModel( 'set_test', test{i} ) ;
    BurgersModel( 'set_numerical_flux', nflux{j} ) ;
    %%BurgersModel( 'set_limiter', 'superbee' ) ;

    PRB . CFL       = 0.9*BurgersModel( 'get_cfl' ) ;
    PRB . FinalTime = BurgersModel( 'get_final_time' ) ;
    PRB . Ncells    = 100  ; % select 100 cell inteval subdivision
    PRB . StepTime  = PRB . FinalTime / 100 ;

    % call the solver
    [ UFRAMES, TFRAMES ] = Solver(PRB,@BurgersModel) ;

    U = UFRAMES(:,:,end) ;
    X = BurgersModel( 'get_x' ) ;
  
    subplot(length(test),1,i);
    plot(X,U,'-ob','MarkerFaceColor','b');
    title(['test case: ' test{i} '  solver: ' nflux{j}], ...
          'FontSize', 24, 'FontName', 'Arial' );
    axis([X(1) X(end) -0.2 1.2]) ;
  end
end
