[Trilinos-Users] CrsMatrix with col map is broken

Guyer, Jonathan E. Dr. jonathan.guyer at nist.gov
Mon Mar 28 07:34:12 MDT 2011


On Mar 26, 2011, at 11:04 AM, Williams, Alan B wrote:

> I agree that the error message from Aztec is not meaningful to most users.

That's actually perversely reassuring!

> Basically, Aztec is picky about which order elements are stored in, and it is quite difficult to get it right in parallel. When Epetra generates the column map internally, it solves that problem, relieving you of needing to know the internal requirements of Aztec.

>From my perusal of the code, it's not clear that Epetra really solves anything. Rather, it uses the row map for the column map and than blithely ignores it for the purposes of InsertGlobalValues(), allowing you to write into "off-processor" columns. I actually went looking for how it made a "proper" column map and it doesn't look like it does.

> In almost every case, it is advisable to construct epetra matrices with only a row-map and allow the column-map to be generated internally. Especially if you have a rectangular matrix, which is even trickier to get correct.
> There are only a few cases where extreme power users should explicitly create the column-map in parallel.

How do I even make a rectangular matrix without specifying the column-map, though? Unless I'm completely confused (and I am!) the only arguments to the constructor that define the matrix shape are the maps.

Is this where Matt's suggestion of lying to FillComplete() comes in?





More information about the Trilinos-Users mailing list