Skip to content

Commit

Permalink
Tpetra::CrsGraph: Address #601 (globalAssemble bug)
Browse files Browse the repository at this point in the history
@trilinos/tpetra Address #601 (globalAssemble highly broken) for
CrsGraph.  This fixes the known performance and correctness issues
with CrsGraph::globalAssemble.

This commit has the side effect of starting to address #119 for
CrsGraph::insertGlobalIndices.  When the graph is StaticProfile and
the graph doesn't have enough space for us just to write the values
into the extra space, insertGlobalIndicesImpl now checks whether the
input indices have some entries in common ("duplicates") with the
row's current column indices.  If so (if there are duplicates), and if
that means the row actually _does_ have enough space, it then merges
in the new entries (without sorting).

In order to make tests pass, I had to fix CrsGraph unit tests as well.
I wrote "fix" because the tests were being _too_ strict.  That is,
they were expecting StaticProfile inserts always to fail if the row is
out of room, regardless of whether there _would_ be enough space if
the input were merged in instead of just being appended without a
merge.  This commit fixes that.  Now, the CrsGraph tets only expect
StaticProfile inserts to fail if the result of merging the input
column indices with the current column indices in that row does not
exceed the static allocation.

Build/Test Cases Summary
Enabled Packages: Ifpack2, TpetraCore
Disabled Packages: FEI,PyTrilinos,Moertel,STK,SEACAS,ThreadPool,OptiPack,Rythmos,Intrepid,ROL
0) MPI_DEBUG => passed: passed=130,notpassed=0 (3.67 min)
1) SERIAL_RELEASE => passed: passed=100,notpassed=0 (1.36 min)
Other local commits for this build/test group: 081712c, 7be0c06
  • Loading branch information
Mark Hoemmen committed Sep 9, 2016
1 parent 081712c commit 3d70d02
Show file tree
Hide file tree
Showing 2 changed files with 330 additions and 282 deletions.
Loading

0 comments on commit 3d70d02

Please sign in to comment.