[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