Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Tpetra::CrsGraph: Address #601 (globalAssemble bug)
@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