Hi,
for a fast(er) evaluation in a set of fixed points (where the functions you want to evaluate are from the same FunctionSpace), the Probes class from fenicstools might be useful.
Once installed you can proceed as in the following example for some scalar functions:
import numpy as np
from dolfin import *
import fenicstools as ft
# Initialize mesh and function space
mesh = UnitSquareMesh(4,4)
V = FunctionSpace(mesh,'CG', 1)
# Initialize some functions in V
u = interpolate(Expression('x[0]',degree = 1), V)
v = interpolate(Expression('1-x[0]',degree = 1), V)
w = interpolate(Expression('x[0]+1',degree =1 ), V)
flist = [u, v, w]
# Define some points
xp = np.array([[0.1, 0.1],[0.2, 0.2],[0.3, 0.3]])
# Initialize Probes class from fenicstools and evaluate
p = ft.Probes(xp.flatten(), V)
for f in flist:
p(f)
# Print the result as np.array
print p.array()