add storage to space
Add the storage to the discrete space and remove it from the scheme.
create.discretefunction
is then not needed any more.
create.function("discrete",space,name)
can be used instead but in practice space.interpolate and df.copy should be used. We could remove space.interpolate and offer
create.function("discrete",space,name,expr)
instead. Another approach would be to remove create.function altogether and have one free standing gridFunction method, e.g.,
gf = fem.gridFunction(grid,name,order,expr)
df = fem.gridFunction(space,name,expr)
Depending on the type of expr the different available versions are used:
expr = string: use code
expr = ufl: use ufl
expr = expr(x): use global
expr = expr(en,x): use local