Does VisIt or ParaView can correctly display the high-oder element results calculated by Nek5000.

118 views
Skip to first unread message

X. G. Zhou

unread,
Sep 8, 2024, 3:30:14 AM9/8/24
to Nek5000
Hi community, 

I have three little questions:
  1. Does the contour files (i.e. "xxx0.f00001", "xxx.0.f00002") store the coefficients of each GLL points?
  2. If i used 7-th order GLL elements in Nek5000 to make the calculation, could VisIt or ParaView reconstruct the correct fields based on the GLL coefficients?
  3. If VisIt or ParaView can not properly show the correct results in high-order GLL elements, how should we do to view the exact fields?
Perhaps these questions do not directly relate to the theory of Nek5000. However, i still want to know if anyone has paid attention to or studied such issues?

Any suggestions will be appreciated. 

X. G. Zhou

YuHsiang Lan

unread,
Sep 8, 2024, 11:56:35 AM9/8/24
to Nek5000
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
--

X. G. Zhou

unread,
Sep 8, 2024, 11:12:37 PM9/8/24
to Nek5000
Dear Dr. Lan.

Thank you for your clear and helpful reply.

Zhou.

Reply all
Reply to author
Forward
0 new messages