Looks like it is a SWIG bug, which can be worked around by removing the SWIG flag '-dirvtable', see the change
http://bazaar.launchpad.net/~dolfin-core/dolfin/main/revision/4511 ** Changed in: dolfin Importance: Undecided => High ** Changed in: dolfin Milestone: None => 0.9.7 -- Memory leak in Python Expression interface https://bugs.launchpad.net/bugs/521507 You received this bug notification because you are a member of DOLFIN Team, which is subscribed to DOLFIN. Status in DOLFIN: Confirmed Bug description: The below code leads to a memory leak (I see a leak over about 2MB over 90s). The leak is related to the Expression. If I comment out the call to eval(Array<double>&, const Array<double>&); from dolfin::GenericFunction::evaluate(double*, const double*, const ufc::cell) const I don't detect a leak. ------ from dolfin import * parameters["form_compiler"]["cpp_optimize"] = True parameters["form_compiler"]["optimize"] = True class MyExpression(Expression): def eval(self, values, x): if x[0] < DOLFIN_EPS: values[0] = 1.0 mesh = UnitSquare(32, 32) for t in xrange(20000): for level in xrange(100): V = FunctionSpace(mesh, "CG", 1) v = TestFunction(V) u = Function(V) u0 = Function(V) f = MyExpression(degree=1) L = v*(u-u0)*dx + v*f*ds b = assemble(L) print "----" _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp