[Trilinos-Users] Komplex patch?

Carl A. Bauer Carl.Bauer at Colorado.EDU
Mon Nov 28 15:15:40 MST 2011


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



More information about the Trilinos-Users mailing list