~njansson/dolfin/hpc

« back to all changes in this revision

Viewing changes to src/kernel/la/NewVector.cpp

  • Committer: fenics
  • Date: 2005-02-23 03:46:01 UTC
  • Revision ID: devnull@localhost-20050223034601-az3dhrq0nqas5xza
Tailorized "2005-02-22 21:46:01 by fenics"
Remaining changes, everything didn't go through before.

Also changed so that PETSc 2.2.1 is now the default version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
190
190
  return *this;
191
191
}
192
192
//-----------------------------------------------------------------------------
 
193
const NewVector& NewVector::operator+= (const NewVector& x)
 
194
{
 
195
  const real a = 1.0;
 
196
  VecAXPY(&a, x.x, this->x);
 
197
 
 
198
  return *this;
 
199
}
 
200
//-----------------------------------------------------------------------------
 
201
const NewVector& NewVector::operator-= (const NewVector& x)
 
202
{
 
203
  const real a = -1.0;
 
204
  VecAXPY(&a, x.x, this->x);
 
205
 
 
206
  return *this;
 
207
}
 
208
//-----------------------------------------------------------------------------
 
209
const NewVector& NewVector::operator*= (real a)
 
210
{
 
211
  VecScale(&a, x);
 
212
  
 
213
  return *this;
 
214
}
 
215
//-----------------------------------------------------------------------------
 
216
const NewVector& NewVector::operator/= (real a)
 
217
{
 
218
  dolfin_assert(a != 0.0);
 
219
  const real b = 1.0 / a;
 
220
  VecScale(&b, x);
 
221
  
 
222
  return *this;
 
223
}
 
224
//-----------------------------------------------------------------------------
 
225
real NewVector::norm(NormType type) const
 
226
{
 
227
  real value = 0.0;
 
228
 
 
229
  switch (type) {
 
230
  case l1:
 
231
    VecNorm(x, NORM_1, &value);
 
232
    break;
 
233
  case l2:
 
234
    VecNorm(x, NORM_2, &value);
 
235
    break;
 
236
  default:
 
237
    VecNorm(x, NORM_INFINITY, &value);
 
238
  }
 
239
  
 
240
  return value;
 
241
}
 
242
//-----------------------------------------------------------------------------
193
243
void NewVector::disp() const
194
244
{
195
245
  // FIXME: Maybe this could be an option?