message: When copying data with Vector::operator=, skip the call to memcpy if
  the source is the same as the destination.
diff: @@ -115,15 +115,18 @@ double Vector::operator*(const Vector &v) const
  Vector &Vector::operator=(const double *v)
  {
  + if (data != v)
  + {
  + MFEM_ASSERT(data + size <= v || v + size <= data, "Vectors overlap!");
  std::memcpy(data, v, sizeof(double)*size);
  + }
  return *this;
  }
  Vector &Vector::operator=(const Vector &v)
  {
  SetSize(v.Size());
  - std::memcpy(data, v.data, sizeof(double)*size);
  - return *this;
  + return operator=(v.data);
  }
  Vector &Vector::operator=(double value)
  