Johan Hake wrote: > On Thursday 02 July 2009 13:07:47 Garth N. Wells wrote: >> Marie Rognes wrote: >>> Garth N. Wells wrote: >>>> Marie Rognes wrote: >>>>> The following code gives r = 0.0. It is not supposed to be. >>>>> >>>>> The problem seems to be that f's vector is still all zeros at the call >>>>> to interpolate. Could this be easily fixed? >>>> This example should have led to an error message since f is not a >>>> discrete function. I'll take a look. >>> Ok, thanks! >>> >>> However, >>> >>> (a) Why is f not a discrete function? (It is defined on a finite element >>> space?) >> On second thought, it may be a discrete function. I think that this is >> defined in the Python interface and not the C++ interface, so I'll take >> a look. > > A user defined function is not a discrete function untill you either call > interpolate() or vector, also in python. The problem with the later is that > you then create a vector which is initialized to 0. > > I think this has been discussed before, but should we populate the vector > using f.interpolate() when vector is called on a userdefined function? >
Or perhaps Function::vector() should throw an error if the vector has not already been allocated. Garth > johan > >>> (b) I would very much like this not to give an error, but rather work ;) >>> I would use something like this all the time when checking convergence. >> Just do >> >> f.interpolate() >> >> Garth >> >>> -- >>> Marie >>> >>>> Garth >>>> >>>>> -- >>>>> from dolfin import * >>>>> >>>>> mesh = UnitSquare(1,1) >>>>> V_h = FunctionSpace(mesh, "CG", 1) >>>>> f = Function(V_h, "1.0") >>>>> >>>>> Q_h = FunctionSpace(mesh, "DG", 1) >>>>> Pi_f = interpolate(f, Q_h) >>>>> >>>>> r = norm(Pi_f) >>>>> print "r = ", r >>>>> --- >>>>> >>>>> -- >>>>> Marie >>>>> >>>>> >>>>> _______________________________________________ >>>>> DOLFIN-dev mailing list >>>>> DOLFIN-dev@fenics.org >>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev >> _______________________________________________ >> DOLFIN-dev mailing list >> DOLFIN-dev@fenics.org >> http://www.fenics.org/mailman/listinfo/dolfin-dev > > _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@fenics.org http://www.fenics.org/mailman/listinfo/dolfin-dev