~njansson/dolfin/hpc

« back to all changes in this revision

Viewing changes to src/la/PETScKrylovMatrix.cpp

  • Committer: Niclas Jansson
  • Date: 2010-10-17 10:21:52 UTC
  • Revision ID: njansson@csc.kth.se-20101017102152-e6u3c9uwxa4z19c8
Minor fixes in configure.ac

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
// First added:  2005-01-17
7
7
// Last changed: 2006-05-17
8
8
 
9
 
#ifdef HAS_PETSC
 
9
#include <dolfin/config/dolfin_config.h>
 
10
 
 
11
#ifdef HAVE_PETSC
10
12
 
11
13
#include <iostream>
12
14
 
 
15
#include <dolfin/main/MPI.h>
13
16
#include <dolfin/log/dolfin_log.h>
14
17
#include "PETScVector.h"
15
18
#include "PETScKrylovMatrix.h"
76
79
    }
77
80
  }
78
81
  
79
 
  MatCreateShell(PETSC_COMM_WORLD, m, n, M, N, (void*) this, &A);
 
82
#ifdef HAVE_MPI
 
83
  MatCreateShell(MPI::DOLFIN_COMM, m, n, M, N, (void*) this, &A);
 
84
#else
 
85
  MatCreateShell(PETSC_COMM_SELF, m, n, M, N, (void*) this, &A);
 
86
#endif
80
87
  MatShellSetOperation(A, MATOP_MULT, (void (*)()) usermult);
81
88
}
82
89
//-----------------------------------------------------------------------------
98
105
        MatDestroy(A);
99
106
    }
100
107
 
101
 
  MatCreateShell(PETSC_COMM_WORLD, M, N, M, N, (void*) this, &A);
 
108
#ifdef HAVE_MPI
 
109
  MatCreateShell(MPI::DOLFIN_COMM, M, N, M, N, (void*) this, &A);
 
110
#else
 
111
  MatCreateShell(PETSC_COMM_SELF, M, N, M, N, (void*) this, &A);
 
112
#endif
102
113
  MatShellSetOperation(A, MATOP_MULT, (void (*)()) usermult);
103
114
}
104
115
//-----------------------------------------------------------------------------
152
163
//-----------------------------------------------------------------------------
153
164
LogStream& dolfin::operator<< (LogStream& stream, const PETScKrylovMatrix& A)
154
165
{
 
166
 
 
167
#if PETSC_VERSION_MAJOR > 2
 
168
  const MatType type = 0;
 
169
#else
155
170
  MatType type = 0;
 
171
#endif
156
172
  MatGetType(A.mat(), &type);
157
173
  int m = A.size(0);
158
174
  int n = A.size(1);
160
176
         << m << " x " << n << " ]";
161
177
 
162
178
  return stream;
 
179
 
163
180
}
164
181
//-----------------------------------------------------------------------------
165
182