Johan Hake wrote: > On Saturday 17 October 2009 12:32:54 Garth N. Wells wrote: >> Will >> >> uh = U[1] >> >> return a deep or shallow copy of the sub-Function? > > To avoid confusion with the ufl interface we have limited the interface for > SubFunctions in PyDOLFIN to split. split returns a shallow copy by default. > pass True to split and it will return a deepcopy. In your case it would be: > > uh = U.split()[0] > > and > > uh = U.split(True)[0] > > operator[] is used when you define forms. We have not yet managed to merge > the > two operations into one. >
OK. Do we still have the function 'sub'? >> Where is the operator [] define for sub-Functions? > > The operator you are using is the ufl one, which is defined in > ufl.exproperators.py. > OK, but it's not clear to me then what's happing with this extract of my code: problem = VariationalProblem(a, L, bcs) Uh = problem.solve() u = Expression("epx(x[0])", V = Vexact) uh = Uh[1] M = (uh-u)*(uh-u)*dx error = sqrt(assemble(M, mesh=mesh)) Garth > Johan _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@fenics.org http://www.fenics.org/mailman/listinfo/dolfin-dev