Fix for the GPU case + performance improvement for CG and foam L1 norm computation
For the GPU case: if we do not call VecResetArray, the placed CPU array will never be updated
The residual is now accessed by KSPBuildResidual which, for CG, will consist in a VecCopy call, see this MR in PETSc https://gitlab.com/petsc/petsc/-/merge_requests/2860 We no longer need a patchy PETSc to compute the L1 norm inside CG
Added support to monitor the L1 norm / normFactor convergence of the solver It also prints out the correct initial residual when using PETSc convergence test
Removed some no longer needed functions
Edited by stefano zampini