← Back to team overview

dolfin team mailing list archive

[Bug 783857] Re: uBLASSparseMatrix data deleted when object goes out of scope

 

The usefulness of the deep copy is that we could then hide the shallow
copy. Having shallow copies is very dangerous. The danger is mitigated
in the C++ interface by the constness.

I don't think that that a memory copy will be that expensive relative to
the cost of the typical operations that are performed on sparse
matrices.

-- 
You received this bug notification because you are a member of DOLFIN
Team, which is subscribed to DOLFIN.
https://bugs.launchpad.net/bugs/783857

Title:
  uBLASSparseMatrix data deleted when object goes out of scope

Status in DOLFIN:
  New

Bug description:
  This bug is similar to https://bugs.launchpad.net/dolfin/+bug/747273

  The following code produces the output:

  0.0333333333333
  1.8218374251e-316

  I.e. after deleting the uBLASSparseMatrix object the data members are
  freed even though there are other references to the data.

  
  from dolfin import *

  mesh = UnitTetrahedron()
  V = FunctionSpace(mesh, "Nedelec 1st kind H(curl)", 1)
  u = TrialFunction(V)
  v = TestFunction(V)
  m = inner(v,u)*dx
  M = uBLASSparseMatrix()
  assemble(m, tensor=M)
  row,col,data = M.data()
  print data[0]
  del M
  import gc
  gc.collect()
  print data[0]


Follow ups

References