Hong, thanks! That makes perfect sense.
A follow up question about ILU.
The following is the performance of ILU(5). Note that each KPS solving reports
converged but as the output shows, the preconditioned residual does while true
residual does not. Is there any way this performance could be improved?
Background: the preconditioning matrix is finite difference generated, and
should be exact.
-Ling
Time Step 21, time = -491.75, dt = 1
NL Step = 0, fnorm = 6.98749E+01
0 KSP preconditioned resid norm 1.684131526824e+04 true resid norm
6.987489798042e+01 ||r(i)||/||b|| 1.000000000000e+00
1 KSP preconditioned resid norm 5.970568556551e+02 true resid norm
6.459553545222e+01 ||r(i)||/||b|| 9.244455064582e-01
2 KSP preconditioned resid norm 3.349113985192e+02 true resid norm
7.250836872274e+01 ||r(i)||/||b|| 1.037688366186e+00
3 KSP preconditioned resid norm 3.290585904777e+01 true resid norm
1.186282435163e+02 ||r(i)||/||b|| 1.697723316169e+00
4 KSP preconditioned resid norm 8.530606201233e+00 true resid norm
4.088729421459e+01 ||r(i)||/||b|| 5.851499665310e-01
Linear solve converged due to CONVERGED_RTOL iterations 4
NL Step = 1, fnorm = 4.08788E+01
0 KSP preconditioned resid norm 1.851047973094e+03 true resid norm
4.087882723223e+01 ||r(i)||/||b|| 1.000000000000e+00
1 KSP preconditioned resid norm 3.696809614513e+01 true resid norm
2.720016413105e+01 ||r(i)||/||b|| 6.653851387793e-01
2 KSP preconditioned resid norm 5.751891392534e+00 true resid norm
3.326338240872e+01 ||r(i)||/||b|| 8.137068663873e-01
3 KSP preconditioned resid norm 8.540729397958e-01 true resid norm
8.672410748720e+00 ||r(i)||/||b|| 2.121492062249e-01
Linear solve converged due to CONVERGED_RTOL iterations 3
NL Step = 2, fnorm = 8.67124E+00
0 KSP preconditioned resid norm 5.511333966852e+00 true resid norm
8.671237519593e+00 ||r(i)||/||b|| 1.000000000000e+00
1 KSP preconditioned resid norm 1.174962622023e+00 true resid norm
8.731034658309e+00 ||r(i)||/||b|| 1.006896032842e+00
2 KSP preconditioned resid norm 1.104604471016e+00 true resid norm
1.018397505468e+01 ||r(i)||/||b|| 1.174454630227e+00
3 KSP preconditioned resid norm 4.257063674222e-01 true resid norm
4.023093124996e+00 ||r(i)||/||b|| 4.639583584126e-01
4 KSP preconditioned resid norm 1.023038868263e-01 true resid norm
2.365298462869e+00 ||r(i)||/||b|| 2.727751901068e-01
5 KSP preconditioned resid norm 4.073772638935e-02 true resid norm
2.302623112025e+00 ||r(i)||/||b|| 2.655472309255e-01
6 KSP preconditioned resid norm 1.510323179379e-02 true resid norm
2.300216593521e+00 ||r(i)||/||b|| 2.652697020839e-01
7 KSP preconditioned resid norm 1.337324816903e-02 true resid norm
2.300057733345e+00 ||r(i)||/||b|| 2.652513817259e-01
8 KSP preconditioned resid norm 1.247384902656e-02 true resid norm
2.300456226062e+00 ||r(i)||/||b|| 2.652973374174e-01
9 KSP preconditioned resid norm 1.247038855375e-02 true resid norm
2.300532560993e+00 ||r(i)||/||b|| 2.653061406512e-01
10 KSP preconditioned resid norm 1.244611343317e-02 true resid norm
2.299441241514e+00 ||r(i)||/||b|| 2.651802855496e-01
11 KSP preconditioned resid norm 1.227243209527e-02 true resid norm
2.273668115236e+00 ||r(i)||/||b|| 2.622080308720e-01
12 KSP preconditioned resid norm 1.172621459354e-02 true resid norm
2.113927895437e+00 ||r(i)||/||b|| 2.437861828442e-01
13 KSP preconditioned resid norm 2.880752338189e-03 true resid norm
1.076190247720e-01 ||r(i)||/||b|| 1.241103412620e-02
Linear solve converged due to CONVERGED_RTOL iterations 13
NL Step = 3, fnorm = 1.59729E-01
0 KSP preconditioned resid norm 1.676948440854e+03 true resid norm
1.597288981238e-01 ||r(i)||/||b|| 1.000000000000e+00
1 KSP preconditioned resid norm 2.266131510513e+00 true resid norm
1.819663943811e+00 ||r(i)||/||b|| 1.139220244542e+01
2 KSP preconditioned resid norm 2.239911493901e+00 true resid norm
1.923976907755e+00 ||r(i)||/||b|| 1.204526501062e+01
3 KSP preconditioned resid norm 1.446859034276e-01 true resid norm
8.692945031946e-01 ||r(i)||/||b|| 5.442312026225e+00
Linear solve converged due to CONVERGED_RTOL iterations 3
NL Step = 4, fnorm = 1.59564E-01
0 KSP preconditioned resid norm 1.509663716414e+03 true resid norm
1.595641817504e-01 ||r(i)||/||b|| 1.000000000000e+00
1 KSP preconditioned resid norm 1.995956587709e+00 true resid norm
1.712323298361e+00 ||r(i)||/||b|| 1.073125108390e+01
2 KSP preconditioned resid norm 1.994336275847e+00 true resid norm
1.741263472491e+00 ||r(i)||/||b|| 1.091262119975e+01
3 KSP preconditioned resid norm 1.268035008497e-01 true resid norm
8.197057317360e-01 ||r(i)||/||b|| 5.137153731769e+00
Linear solve converged due to CONVERGED_RTOL iterations 3
Nonlinear solve did not converge due to DIVERGED_LINE_SEARCH iterations 4
Solve Did NOT Converge!
From: Zhang, Hong <[email protected]>
Date: Wednesday, March 27, 2024 at 4:59 PM
To: [email protected] <[email protected]>, Zou, Ling <[email protected]>
Subject: Re: Does ILU(15) still make sense or should just use LU?
Ling,
ILU(level) is used for saving storage space with more computations. Normally,
we use level=1 or 2. It does not make sense to use level 15. If you have
sufficient space, LU would be the best.
Hong
________________________________
From: petsc-users <[email protected]> on behalf of Zou, Ling via
petsc-users <[email protected]>
Sent: Wednesday, March 27, 2024 4:24 PM
To: [email protected] <[email protected]>
Subject: [petsc-users] Does ILU(15) still make sense or should just use LU?
Hi, I’d like to avoid using LU, but in some cases to use ILU and still
converge, I have to go to ILU(15), i.e., `-pc_factor_levels 15`. Does it still
make sense, or should I give it up and switch to LU?
For this particular case, ~2k DoF, and both ILU(15) and LU perform similarly in
terms of wall time.
-Ling