# Higher-Order FESpace mapped on mesh nodes

6 months 1 week ago #4077
Hello,
I was wondering if there are routines in NGSolve to evaluate a FE-Function based on a higher order polynomial space (like the P2 in the Taylor-Hood Element) on the nodes of a mesh? I know, there is a VTK output routine, but this writes Files and I would like to evaluate the function in python and use it then as numpy-array for something else.

Best Regards
Elias

6 months 1 week ago #4078
Hi, yes you can create a numpy array of evaluation - points by giving an array of coordinates to the mesh and then put this array into the coefficientfunction to evaluate it:
Code:
xvals = np.linspace(0, 1, 1000) pts = mesh(xvals, 0, 0) vals = cf(pts)

Best
Christopher

6 months 1 week ago #4079 by joachim
An alternativ is to define points on the reference element, and evaluate the function on the mapped points, simultaneously on all elements:
Code:

We use this in the webgui, see
github.com/NGSolve/ngsolve/blob/master/python/webgui.py
line 250

Joachim

6 months 1 week ago #4082
Dear Joachim, dear Christopher,
thanks for the quick reply I will try this out.
Thanks
Elias

6 months 1 week ago #4083
One additional thing that wasn't clear to me. When you guys speak of CoefficientFunction this is the same as a FE-Solution?

6 months 1 week ago - 6 months 1 week ago #4084
Yes, a fe solution GridFunction is derived from CoefficientFunction, so allows to evaluate itself like a CoefficientFunction. CoefficientFunction is any function on the mesh, like for example the coordinate-CFs x, y and z.

Also grad(u) is a coefficientfunction, also x * sin(u), ...

All of these function can be evaluated on points in the mesh.
Last edit: 6 months 1 week ago by christopher.