Crash with explicit matrix multiplies in trilinos
Bug #1063737 reported by
Joachim Haga
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
CBC.Block |
Fix Committed
|
High
|
Joachim Haga |
Bug Description
Code such as
M = collapse(C*B)
prec = ML(M)
crashes with a memory access error.
It seems like EpetraExt.Multiply returns a malformed Epetra matrix when B and C are rectangular matrices, which then ML chokes on. This used to work with older Trilinos releases.
I will investigate further as time allows, but for now let's call it a known problem.
Example code: demo/navierstok
To post a comment you must log in.
The problem was that multiplication of BC'd matrices leads to all-zero rows in the result. With newer Trilinos, these are not present in the sparsity pattern -- and ML doesn't like that at all. (A zero row with the diagonal present is handled fine though, it's just ignored.) I've worked around it by doing a preliminary matrix multiplication with dummy matrices, just to build a full sparsity pattern. Inefficient, but works.