[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