[petsc-users] DIVERGED_NANORING with PC GAMG

Appel, Thibaut t.appel17 at imperial.ac.uk
Tue Oct 30 16:14:56 CDT 2018


Dear users,

Following a suggestion from Matthew Knepley I’ve been trying to apply fieldsplit/gamg for my set of PDEs but I’m still encountering issues despite various tests. pc_gamg simply won’t start.
Note that direct solvers always yield the correct, physical result.
Removing the fieldsplit to focus on the gamg bit and trying to solve the linear system on a modest size problem still gives, with

'-ksp_monitor -ksp_rtol 1.0e-10 -ksp_gmres_restart 300 -ksp_type gmres -pc_type gamg'

[3]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[3]PETSC ERROR: Petsc has generated inconsistent data
[3]PETSC ERROR: Have un-symmetric graph (apparently). Use '-(null)pc_gamg_sym_graph true' to symetrize the graph or '-(null)pc_gamg_threshold -1' if the matrix is structurally symmetric.

And since then, after adding '-pc_gamg_sym_graph true' I have been getting
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Petsc has generated inconsistent data
[0]PETSC ERROR: Eigen estimator failed: DIVERGED_NANORINF at iteration

-ksp_chebyshev_esteig_noisy 0/1 does not change anything

Knowing that Chebyshev eigen estimator needs a positive spectrum I tried ‘-mg_levels_ksp_type gmres’ but iterations would just go on endlessly.

It seems that I have indeed eigenvalues of rather high magnitude in the spectrum of my operator without being able to determine the reason.
The eigenvectors look like small artifacts at the wall-inflow or wall-outflow corners with zero anywhere else but I do not know how to interpret this.
Equations are time-harmonic linearized Navier-Stokes to which a forcing is applied, there’s no time-marching.

Matrix is formed with a MPIAIJ type. The formulation is incompressible, in complex arithmetic and the 2D physical domain is mapped to a logically rectangular, regular collocated grid with a high-order finite difference method.
I determine the ownership of the rows/degrees of freedom of the matrix with PetscSplitOwnership and I’m not using DMDA.

The Fortran application code is memory-leak free and has undergone a strict verification/validation procedure for different variations of the PDEs.

If there’s any problem with the matrix what could help for the diagnostic? At this point I’m running out of ideas so I would really appreciate additional suggestions and discussions.

Thanks for your continued support,


Thibaut


More information about the petsc-users mailing list