[Trilinos-Users] [EXTERNAL] Basic Epetra map usage

Heroux, Michael A maherou at sandia.gov
Thu Mar 1 22:49:07 MST 2012


Dave,

Although it is not well documented, the underlying solvers that Amesos supports require contiguous indexing.  Amesos helps with this by providing a Reindex parameter.  You should be able to fix your problem with something similar to this:

amesosList.set(Reindex,true);

Where amesosList is your list of parameters used to select solver parameters in the Amesos factory:

Teuchos::ParameterList amesosList;

All native Trilinos solvers work with noncontiguous maps, so it is only Amesos that has this issue. Also, my guess is that there is an error code being returned in the symbolic factorization phase that complains about the map not being contiguous.

Please see if this helps.

Mike

From: Dave Makhija <makhijad at colorado.edu<mailto:makhijad at colorado.edu>>
Date: Thu, 1 Mar 2012 14:09:24 -0700
To: <trilinos-users at software.sandia.gov<mailto:trilinos-users at software.sandia.gov>>
Subject: [EXTERNAL] [Trilinos-Users] Basic Epetra map usage

Hi all,

I am revising a finite element code and have a basic question on how to properly use the Epetra_Map class in order to solve linear systems with Amesos and Aztec. Do the map global elements have to span the index base to the total number of elements?

Take this problem for example. Three degrees of freedom numbered 0, 1, and 2. I can fill the stiffness matrix and the force vector and solve the system.
Now consider the same system if degree of freedom 1 is constrained. Instead of trying to eliminate the row and column for degree of freedom 1 I am making an Epetra_Map of two elements with global element IDs of 0 and 2. I have verified that the assembly process works correctly by dumping the matrix to a Matlab file. It does, however, pad the constrained degree of freedom row/column with zeros. That is, it gives all zeros in the row/column for degree of freedom 1 and the correct values in the remaining matrix.

A linear solve will work with:
Amesos UMFPACK in serial
Aztec GMRES in serial
Aztec GMRES in parallel

A linear solve will give "terminate called after throwing an instance of 'int'" with:
Amesos UMFPACK, SUPERLU-DIST, and MUMPS in parallel

So, do I have to re-number my degrees of freedom such that the global element IDs in this case becomes 0 and 1? Was I just lucky that Aztec and serial Amesos was able to solve the linear system? Or is there no problem with the 0, 2 numbering scheme and I have a bug somewhere else in the code?

Thank you,

Dave
_______________________________________________ Trilinos-Users mailing list Trilinos-Users at software.sandia.gov<mailto:Trilinos-Users at software.sandia.gov> http://software.sandia.gov/mailman/listinfo/trilinos-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20120302/e80d2c2b/attachment.html 


More information about the Trilinos-Users mailing list