### What's the role of restart in PGMRES?

Posted:

**Tue Jun 02, 2015 1:14 pm**Hi,

I have been experimenting solving a linear system with PGMRES+Jacobi preconditioner. The solver diverges with default restart. When I set the restart at 400, it converges in ~700 iterations. The number of iterations increases if I increase or decrease the restart from 400. How should I decide what restart is needed? Does the restart parameter change from system to system?

Quantity in brackets after PGMRES is the restart value. E.g. PGMRES(30) is with restart=30.

%=============================================================%

% PGMRES(30) solver summary:

% initial residual: 2.000000e+02

% iterations: 1000

% exact final residual: 4.569463e+00

% runtime: 1.0274 sec

%=============================================================%

%=============================================================%

% PGMRES(100) solver summary:

% initial residual: 2.000000e+02

% iterations: 1000

% exact final residual: 9.811325e-03

% runtime: 2.7982 sec

%=============================================================%

%=============================================================%

% PGMRES(400) solver summary:

% initial residual: 2.000000e+02

% iterations: 697

% exact final residual: 1.183331e-09

% runtime: 6.5171 sec

%=============================================================%

%=============================================================%

% PGMRES(500) solver summary:

% initial residual: 2.000000e+02

% iterations: 761

% exact final residual: 1.037513e-09

% runtime: 8.2672 sec

%=============================================================%

%=============================================================%

% PGMRES(350) solver summary:

% initial residual: 2.000000e+02

% iterations: 871

% exact final residual: 8.002018e-10

% runtime: 7.2320 sec

%=============================================================%

Thanks,

Harshad

I have been experimenting solving a linear system with PGMRES+Jacobi preconditioner. The solver diverges with default restart. When I set the restart at 400, it converges in ~700 iterations. The number of iterations increases if I increase or decrease the restart from 400. How should I decide what restart is needed? Does the restart parameter change from system to system?

Quantity in brackets after PGMRES is the restart value. E.g. PGMRES(30) is with restart=30.

%=============================================================%

% PGMRES(30) solver summary:

% initial residual: 2.000000e+02

% iterations: 1000

% exact final residual: 4.569463e+00

% runtime: 1.0274 sec

%=============================================================%

%=============================================================%

% PGMRES(100) solver summary:

% initial residual: 2.000000e+02

% iterations: 1000

% exact final residual: 9.811325e-03

% runtime: 2.7982 sec

%=============================================================%

%=============================================================%

% PGMRES(400) solver summary:

% initial residual: 2.000000e+02

% iterations: 697

% exact final residual: 1.183331e-09

% runtime: 6.5171 sec

%=============================================================%

%=============================================================%

% PGMRES(500) solver summary:

% initial residual: 2.000000e+02

% iterations: 761

% exact final residual: 1.037513e-09

% runtime: 8.2672 sec

%=============================================================%

%=============================================================%

% PGMRES(350) solver summary:

% initial residual: 2.000000e+02

% iterations: 871

% exact final residual: 8.002018e-10

% runtime: 7.2320 sec

%=============================================================%

Thanks,

Harshad