Crash with explicit matrix multiplies in trilinos

Bug #1063737 reported by Joachim Haga
6
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/navierstokes.py

Revision history for this message
Joachim Haga (jobh) wrote :

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.

Changed in cbc.block:
importance: Undecided → High
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.