> 
> This is a symmetric graph, but not a symmetric matrix, though the asymmetry 
> is only due to boundary conditions (boundary rows have only a diagonal 
> nonzero; the other zeros are still stored explicitly). Do you have a 
> preference about how this is handled? (I don't think we should need extra 
> options to handle this extremely common case.)
> 

If the graph is symmetric then the only problem is that after thresholding the 
graph can be unsymmetric if the values are not symmetric.

So the solution is to:
[0]PETSC ERROR: Have un-symmetric graph (apparently). Use 
'-pc_gamg_sym_graph true' to symetrize the graph or '-pc_gamg_threshold 
0.0' if the matrix is structurally symmetric.!
There is no simple way to make fix this, that I can think of.  If I threshold I 
need to have the transpose data to threshold symmetrically and if the graph is 
not symmetric then the MIS algorithm would need to be reworked.   The best way 
that I can think of to rework MIS is to symmetrize the graph, which puts us 
back to where we started.

As the user noticed, this is not a problem is serial and it can often work in 
small scale parallel, but it gets you eventually.

symetrizing the graph is not that expensive (compared to the rest of setup) -- 
we could make '-pc_gamg_sym_graph true' the default ? I'm thinking this is a 
good idea.  Better to be robust  and deal with optimizing for users that can 
not amortize setup.

 

Reply via email to