64 const char * matrixName,
65 const char *matrixDescription,
68 const Epetra_Map & domainMap =
A.OperatorDomainMap();
94 if (writeHeader==
true) {
98 if (matrixName!=0) fprintf(handle,
"%% \n%% %s\n", matrixName);
99 if (matrixDescription!=0) fprintf(handle,
"%% %s\n%% \n", matrixDescription);
107 if (handle!=0) fclose(handle);
113 const Epetra_Map & domainMap =
A.OperatorDomainMap();
114 const Epetra_Map & rangeMap =
A.OperatorRangeMap();
124 long long numchunks =
N/chunksize;
125 int rem =
N%chunksize;
132 for (
int j=0; j<rem; j++) {
133 long long curGlobalCol = rootDomainMap.
GID64(j);
134 if (domainMap.
MyGID(curGlobalCol)) {
135 int curCol = domainMap.
LID(curGlobalCol);
136 xrem[j][curCol] = 1.0;
148 for (
long long ichunk = 0; ichunk<numchunks; ichunk++) {
149 long long startCol = ichunk*chunksize+rem;
151 for (
int j=0; j<chunksize; j++) {
152 long long curGlobalCol = rootDomainMap.
GID64(startCol+j);
153 if (domainMap.
MyGID(curGlobalCol)){
154 int curCol = domainMap.
LID(curGlobalCol);
162 for (
int j=0; j<chunksize; j++) {
163 long long curGlobalCol = rootDomainMap.
GID64(startCol+j);
164 if (domainMap.
MyGID(curGlobalCol)){
165 int curCol = domainMap.
LID(curGlobalCol);
178 long long ioffset = 1 - rootRangeMap.
IndexBase64();
179 long long joffset = 1 - rootDomainMap.
IndexBase64();
185 for (
int j=0; j<numCols; j++) {
186 long long J = rootDomainMap.
GID64(j + startColumn) + joffset;
187 for (
long long i=0; i<numRows; i++) {
188 double val = y[j][i];
190 long long I = rootRangeMap.
GID64(i) + ioffset;
191 fprintf(handle,
"%lld %lld %22.16e\n", I, J, val);
200 const Epetra_Map & domainMap =
A.OperatorDomainMap();
201 const Epetra_Map & rangeMap =
A.OperatorRangeMap();
209 long long numchunks =
N/chunksize;
210 int rem =
N%chunksize;
217 for (
int j=0; j<rem; j++) {
218 long long curGlobalCol = rootDomainMap.
GID64(j);
219 if (domainMap.
MyGID(curGlobalCol)) xrem[j][domainMap.
LID(curGlobalCol)] = 1.0;
222 for (
int j=0; j<rem; j++) {
224 for (
int i=0; i<mylength; i++)
225 if (yrem[j][i]!=0.0) lnz++;
232 for (
long long ichunk = 0; ichunk<numchunks; ichunk++) {
233 long long startCol = ichunk*chunksize+rem;
235 for (
int j=0; j<chunksize; j++) {
236 long long curGlobalCol = rootDomainMap.
GID64(startCol+j);
237 if (domainMap.
MyGID(curGlobalCol)) x[j][domainMap.
LID(curGlobalCol)] = 1.0;
240 for (
int j=0; j<chunksize; j++) {
242 for (
int i=0; i<mylength; i++)
243 if (y[j][i]!=0.0) lnz++;
246 for (
int j=0; j<chunksize; j++) {
247 long long curGlobalCol = rootDomainMap.
GID64(startCol+j);
248 if (domainMap.
MyGID(curGlobalCol)) x[j][domainMap.
LID(curGlobalCol)] = 0.0;