Barycentric interpolation equivalent for irregular hexahedra

I have a mesh with irregular hexaedra and I need a fast way to interpolate values at points inside these cells. I know that trilinear interpolation does not work well for large skews. Barycentric coordinates work for tetrahedrons. Is there any equivalent method for hexaedra, which is really efficient, possibly parallelization-friendly?

• No. They can be random as well. Sep 17 '17 at 16:25
• I don't know what rectangular prisms are (or 4-sided prisms as in the title). Are you talking about a hexahedron? Sep 17 '17 at 22:46
• yes! I couldn't recall the name. Sep 17 '17 at 22:49
• the google books preview of TJ Chung's CFD book looks useful: books.google.com/… Sep 19 '17 at 1:26

A hexahedron with straight edges is the image of the unit cube under a trilinear mapping. So, if you have values on the eight vertices of a hexahedron, and you are asking to interpolate between them to a point $x$ somewhere inside the hexahedron, then the correct approach is as follows:
• Invert the trilinear mapping to find the corresponding point $\hat x = \Phi^{-1}(x)$ on the reference cell.
• Use the trilinear shape functions on the reference cell to evaluate at $\hat x$ to obtain the interpolated value of your function based on the values at the vertices.
The second step is easy. The first requires inverting the mapping $\Phi$, which in general requires a nonlinear Newton iteration because it is a nonlinear, polynomial you are inverting.