duneILU not working
Using the duneILU preconditioner does not work properly on master.
The linear solver provided below failed to converge on SPE1. It works well to begin with but preconditioner quality deteriorates until the linear system does not converge anymore. I suspect the getRebuildOnUpdateWrapper is not working as inteded.
{
"tol": "0.01",
"maxiter": "200",
"verbosity": "0",
"solver": "bicgstab",
"preconditioner": {
"type": "DuneILU",
"relaxation": "0.90000000000000002",
"ilulevel": "0"
}
}
@jakobtorben initially found the bug and we looked into it briefly without finding the cause, dumping it here to increase awareness and to track progress.
What kind of run is this? Serial or parallel?
I think we tested serial.
From our tests it looked like the matrix or preconditioner was not updated, as it worked for the first few iterations and gradually performed worse and worse until it cuts timesteps and gives up.
We confirmed that the expected functions where being called when using the getRebuildOnUpdateWrapper but we were not able to verify if the matrix was updated.
The preconditioner does not work for both serial and parallel runs. Since our debugging I tested wrapping the CPU DILU preconditioner in the same wrapper and picked a few random elements from the factorized diagonal that always turned out to be the same, not very rigorous but it looks like it is not udpating correctly