[Trilinos-Users] use of virtual kernel for ML multigrid solver

Heroux, Michael A maherou at sandia.gov
Fri Oct 23 13:28:51 MDT 2009


Kurt,

ML, and all Trilinos packages that use matrix data as input (AztecOO, Ifpack, Belos, Anasazi, NOX, etc...) can use matrix data supplied through the Epetra_RowMatrix interface.  When you have a simple structure or pattern to your matrix you can eliminate the majority of the nonzero entries by writing your own adapter class to Epetra_RowMatrix.  Note however that this will not reduce the storage used by ML itself, since ML generates its own collection of sparse data that will not be simple, even if your data is.

Probably the easiest path to generating your own RowMatrix adapter is to look at Epetra_JadMatrix.  This class implements the Epetra_BasicRowMatrix class, which in turn implements Epetra_RowMatrix by providing default implementations of many of the basic functions that are tedious to manually implement.  If you mimic the JadMatrix implementation, you should accomplish what you want.

I hope this helps.

Mike


On 10/23/09 12:48 PM, "Kurt Stokbro" <kurt.stokbro at quantumwise.com> wrote:

We are using the ML package for solving the poisson equation, and the kernel is an Epetra_CrsMatrix which takes up a large fraction of the memory.
 We use a simple difference grid so the kernel has a very simple structure, and thus most entries have the same list of floats. I have heard that there should be a feature  to construct a rowmatrix where different rows share the same memory. Does anybody have an example of such a row matrix construct?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20091023/e147cbba/attachment.html 


More information about the Trilinos-Users mailing list