Any comment on this? Basically we need another constructor which generates a shallow copy of a Function, which also has access to the original Function.
Johan On 02/21/2013 07:08 PM, Johan Hake wrote: > Hello! > > To fix: > > [child().child() fails for Function and FunctionSpaces in Python] > https://bugs.launchpad.net/bugs/1130354 > > we need to add a way of shallow copy a Function. For now we have used: > > Function(boost::shared_ptr<const FunctionSpace> V, > boost::shared_ptr<GenericVector> x); > > Which create a new Function with a shared FunctionSpace and > GenericVector. The problem is that there is no way of bringing > Hierarchical data to the new Function as it is not passed through the > constructor. > > We would need something like: > > Function(boost::shared_ptr<const Function> u); > > which is interpreted as a shallow copy. > > We could then map this to: > > Function._shallow_copy() > > and > > Function(const Function& u); > > to > > Function._deep_copy() > > in the Python interface. Then we add: > > Function. > > def copy(self, deepcopy=True): > if deepcopy: > return self._deep_copy() > else: > return self._shallow_copy() > > Any objections to adding: > > Function(boost::shared_ptr<const Function> u); > > as a shallow copy constructor? > > If so we could maybe remove: > > Function(boost::shared_ptr<const FunctionSpace> V, > boost::shared_ptr<GenericVector> x); > > as I think we added it so we could create a shallow copy in the Python > interface. > > Johan > _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

