Defining an Expression in fenics 2019.1

Dear all,

I am trying to define a userexpression, using sub-functions when evaulating. I think the below example should work, and the code runs fine, however, plotting the whole thing in paraview yields error, that there are no values in the function! See the code below. In it, the function GRF used in eval, takes in the parameters I pass to the constructur, and evaluates and gives a numerical value, like 2, for instance. This does not work. Opening the file in paraview yields the error:
“Cannot read point data array f16”. Have I misunderstood how userexpressions are defined in fenics?

class GRField(UserExpression):
    def __init__(self, alpha,noelements,seed, **kwargs):
        super(GRField, self).__init__(**kwargs)
        self.rands=rand_sequence(noelements,seed)
        self.alpha=alpha
        self.noelements=noelements
        self.seed=seed
def eval(self,value,x):
    value=GRF(self.noelements,self.alpha,self.rands,x[0],x[1],x[2])
def value_shape(self):
    return()
N=12
surface=BoundaryMesh(generate_mesh(Sphere(Point(0,0,0),1)   , N)  ,"exterior")
    class normal(UserExpression):
        def eval(self,value,x):
            value[0]=x[0]
            value[1]=x[1]
            value[2]=x[2]
        def value_shape(self):
            return(3,)
global_normal=normal(degree=2)
surface.init_cell_orientations(global_normal)
P1=FiniteElement("P",surface.ufl_cell(),1)
V=FunctionSpace(surface,P1)

gaussian_rf= GRField(degree=2,alpha=3,noelements=15,seed=1)
u=interpolate(gaussian_rf,V)
file=File("./testim/field.pvd")
file<<u