[Trilinos-Users] help with NOX - AztecOO

hon fai choi honfai.choi at uz.kuleuven.ac.be
Thu Jan 21 03:44:02 MST 2010

Ok, thank you very much for the info. I have indeed columns with no entries on the corresponding row owning processor, but that is because these entries should be zeros (at least in that part of the matrix). Do you also know why this is not allowed in AztecOO? I just thought that this wouldn't be a problem because the rows are wholly owned by each processor.

Hon Fai Choi

Van: Heroux, Michael A [mailto:maherou at sandia.gov]
Verzonden: donderdag 21 januari 2010 0:53
Aan: hon fai choi; trilinos-users at software.sandia.gov
Onderwerp: Re: [Trilinos-Users] help with NOX - AztecOO

This is a restriction in the AztecOO data model.  On each processor AztecOO needs to have columns indices exactly match the row indices.  Additional column indices due to off-processor needs must be ordered last.  Epetra usually does the ordering automatically for you, as long as you don't specify the column map when calling the Epetra_CrsMatrix constructor.  If you are specifying the column map, or providing your own operator then you need to make sure that the column indices are ordered this way.

If you are using the typical Epetra_CrsMatrix constructors, you probably have a column on some processor that has no entries on a processor that owns the corresponding row, and therefore that column ID is missing and making AztecOO complain.  Often this is an error in the logic that generates matrix coefficient.


On 1/20/10 4:12 AM, "hon fai choi" <honfai.choi at uz.kuleuven.ac.be> wrote:
Dear Trilinos users,

I have encountered a problem while trying to run NOX in parallel in combination with AztecOO. I have generated a distributed Epetra_CrsMatrix and Epetra_Vector
which are used to create a LinearSystemAztecOO object. I use the map of the Epetra_Vector as row map for the Epetra_CrsMatrix. The column map of the Epetra_CrsMatrix is generated by calling
'FillComplete()' (So the domain and range maps are the same as the row map). However, when I run the NOX-solver, I somehow get the error message: "AZ_extract_comm_info: Received elements must be stored after all local elements". Apparently this message is generated in the file 'az_comm.c' in the AztecOO package, in the function 'AZ_extract_comm_info' (line 3056).
I tried to figure out what is wrong and it seems that the wrong number of local columns (N_cols) are passed to this function on some processes. The number of local columns (N_cols) which are passed to this function seems to be equal to the number of local elements in the row map but not to the number of local column elements in the column map.
I either did something wrong or this might be a bug. Should the column map always contain the local elements of the row map as local columns? I have included the row map and column map of the
Epetra_CrsMatrix in the attachment, as well as some output I generated from the function 'AZ_extract_comm_info'.
If someone could help with this problem, I would greatly appreciate it...

Kind regards,

Hon Fai Choi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20100121/e2b16c6f/attachment-0001.html 

More information about the Trilinos-Users mailing list