[Trilinos-Users] Using the EpetraExt_CrsGraph_MapColoring class

Russell Hooper rhoope at sandia.gov
Mon Apr 13 16:11:17 MDT 2009


Erik,

It appears you have found a bug with JONES_PLASSMAN.  I've created a new
bugzilla bug report that you can monitor and add to,
http://software.sandia.gov/bugzilla/show_bug.cgi?id=4376

The GREEDY algorithm does appear to work, but your driver program wasn't
creating a lower-triangular matrix in parallel, eg:

In serial, the matrix graph was:

       Row Index     Col Index         Col Index         Col Index
Col Index
             0               0
             1               0               1
             2               0               1               2
             3               0               1               2
3


and in parallel (2 procs) it was:

       Row Index     Col Index         Col Index
             0               0
             1               0               1


       Row Index     Col Index         Col Index
             2               0
             3               0               1


The GREEDY coloring algorithm correctly obtained two colors for the
parallel case.

I've modified and attached your driver to give the same 4x4 lower-
triangular matrix in serial and parallel for nprocs <= 4.  The GREEDY
algorithm obtains four colors in this case for all runs (nprocs = 1,2,3
and 4).

I'll let you know as I find out the issue(s) with JONES_PLASSMAN.  In
the meantime, GREEDY should get you going.  You can see how the coloring
information is used by NOX by going to 
packages/nox/src-epetra/NOX_Epetra_FiniteDifferenceColoring.C
and you can see an example of the FiniteDifferneceColoring operator used
to solve a nonlinear problem here
packages/nox/test/epetra/FiniteDifferenceColoring/Example.C

Russell


On Mon, 2009-04-13 at 09:24 -0600, Bernsen, E. wrote:
> 
> Hello,
> 
> I'm trying to use the EpetraExt_CrsGraph_MapColoring class to color
> the independent columns of a graph and then use the
> FiniteDifferenceColoring class to construct a Jacobian matrix.
> Sometimes the coloring algorithms give unexpected results. For
> instance consider the attached program (test.C) which creates a 2x2
> triangular matrix and then colors the corresponding graph. I think the
> coloring of this matrix should result in two colors. However according
> to the output of the program (out.txt) only one color is required. The
> program was run on a single processor in this case.
> 
> When using the GREEDY algorithm instead of JONES_PLASSMEN the coloring
> seems to work allright as long as the program is run on a single
> processor. If more than one processor is used results seem to be also
> incorrect.
> 
> Is there a bug in the EpetraExt_CrsGraph_MapColoring class or is the
> use of this class in test.C incorrect?
> 
> Regards,
> 
> Erik Bernsen
> 
> 
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: new_test.C
Type: text/x-c++src
Size: 2765 bytes
Desc: not available
Url : http://software.sandia.gov/pipermail/trilinos-users/attachments/20090413/9090e29c/attachment.bin 


More information about the Trilinos-Users mailing list