Hi,
vtk does support high order elements, but we are no using it. Therefore, visualization will have extra approximation.
1. We store the values at grid points, which is also the coefficient of the linear combinations.
In each element,
u(x) approx sum_i u_i phi_i(x) where phi_i is the Lagrange polynomial basis and u_i = u(x_i)
2. Inside VisIt and ParaView, it copies the values and form the linear elements based on given points.
A 7-th order 3D spectral element will form 343 (7*7*7) finite element cells.
Then, the color or values on each pixel will use the linear interpolation.
SEM solution (*0.f0001 files) -> approximated by linear finite element (paraview reader) -> interpolation on sampling points (paraview)
3. It depends on what you need. For visualization, if the solution is smooth, we typically don't need accurate visualization to satisfy the eyeball norm.
If you really want accurate results on given points, we can do also interpolation inside Nek so it's high order accurate.
This is supported with the built-in options "ifreguo = .true." (GLL to uniform grid) and "nrg" (#grid pts in each direction)
For example, ifreguo = .true. and nrg = 20 will interpolate solution from 7th GLL nodes to 20*20*20 uniform grid for each elements.
SEM solution -> high order interpolation on uniform grid within each elements (Nek)-> convert to linear finite element (paraview reader)-> interpolation on sampling points (paraview)
See also hpts() or calling findpt directly to interpolate on a given set of arbitrary points.
Hope this helps,
Yu-Hsiang
--