[Trilinos-Users] [EXTERNAL] Komplex patch?

Heroux, Michael A maherou at sandia.gov
Mon Nov 28 18:02:28 MST 2011


Carl,

Thanks.  This is easy to fix.  We will update the repository.

Mike

On 11/28/11 4:15 PM, "Carl A. Bauer" <Carl.Bauer at Colorado.EDU> wrote:

>Hi all,
>
>I am using the Komplex package in a quirky way: to form complex
>equivalent rectangular matrices, where nrows != ncols. (I would use
>tpetra, but my app requires ML which doesn't seem to handle complex data
>types yet.?).
>
>When nrows > ncols, the following snippet starting at line 90 of
>Komplex_LinearProblem.cpp fails for obvious reasons:
>
><<<<<<<<<<<<<<<<<
>
>int NumMyRows = A0.NumMyRows();
>// Process X and B values
>for (int j=0; j<Xr.NumVectors(); j++) {
>  double *localKX = &((*KomplexLHS_)[j][0]);
>  double *localKB = &((*KomplexRHS_)[j][0]);
>  for (int i=0; i< NumMyRows; i++) {
>    localKX[2*i] = Xr[j][i];
>    localKX[2*i+1] = Xi[j][i];
>    localKB[2*i] = Br[j][i];
>    localKB[2*i+1] = Bi[j][i];
>  }
>}
>
>>>>>>>>>>>>>>>>>>
>
>A simple fix is:
>
><<<<<<<<<<<<<<<<<
>
>int NumMyRows = A0.NumMyRows();
>int NumMyCols = A0.NumMyCols();
>// Process X and B values
>for (int j=0; j<Xr.NumVectors(); j++) {
>  double *localKX = &((*KomplexLHS_)[j][0]);
>  double *localKB = &((*KomplexRHS_)[j][0]);
>  for (int i=0; i< NumMyCols; i++) {
>    localKX[2*i] = Xr[j][i];
>    localKX[2*i+1] = Xi[j][i];
>  }
>  for (int i=0; i< NumMyRows; i++) {
>    localKB[2*i] = Br[j][i];
>    localKB[2*i+1] = Bi[j][i];
>  }
>}
>
>>>>>>>>>>>>>>>>>>>>>
>
>Thanks!
>-Carl
>
>_______________________________________________
>Trilinos-Users mailing list
>Trilinos-Users at software.sandia.gov
>http://software.sandia.gov/mailman/listinfo/trilinos-users




More information about the Trilinos-Users mailing list