dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #23338
[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