On Fri, Jan 21, 2011 at 03:00:21PM -0800, Johan Hake wrote: > On Wednesday January 19 2011 08:41:39 Anders Logg wrote: > > This seems to be related to the introduction of operator() in the C++ > > interface. > > > > I'm suspecting that the problem is that one of the virtual eval > > functions has been moved up one level from Expression to > > GenericFunction. I'll try to fix it but Johan may spot to problem > > faster. > > This did introduce an error in SWIG. This destroyed the virtual overloading of > Expression::eval. I reimplemented both eval methods and they are now both > working again. The fix seems a bit odd from the C++ interface, but I do not > think it can be done in another way. Maybe making GenericFunction a director > class but that might introdcuce other slowdowns.
Great that you found a solution. The eval function was moved one level up simply because I noticed that both Function and Expression actually implemented the exact same interface (eval) so it seemed natural to place it in GenericFunction. It also allowed operator() to call eval. -- Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp