@jfausty
I think that I am close to figuring out how those matrices should look for hex elements but I would appreciate your additional help. I’ve found similar file in CalculiX source code: CalculiX/gauss.f at master · Dhondtguido/CalculiX · GitHub
There you can find two matrices for each element type, they are named gauss (integration point locations) and weight (weight functions). The problem is that I don’t know how those two matrices can be used together to obtain a matrix like the one in ParaView. It can’t be just a simple product of those two matrices.
For example, let’s focus on quadratic tetrahedron since it’s the same in CalculiX and ParaView. Matrix for this element in ParaView is:
{ 1.56250000000000e-01, -9.37500000000000e-02, -9.37500000000000e-02,
-9.37500000000000e-02, 3.12500000000000e-01, 6.25000000000000e-02, 3.12500000000000e-01,
3.12500000000000e-01, 6.25000000000000e-02, 6.25000000000000e-02, -9.37500000000000e-02,
7.03125000000000e-02, -1.17187500000000e-01, -9.37500000000000e-02, 2.81250000000000e-01,
4.21875000000000e-01, 9.37500000000000e-02, 6.25000000000000e-02, 2.81250000000000e-01,
9.37500000000000e-02, -9.37500000000000e-02, -1.17187500000000e-01, 7.03125000000000e-02,
-9.37500000000000e-02, 9.37500000000000e-02, 4.21875000000000e-01, 2.81250000000000e-01,
6.25000000000000e-02, 9.37500000000000e-02, 2.81250000000000e-01, -9.37500000000000e-02,
-5.46875000000000e-02, -5.46875000000000e-02, 3.75000000000000e-01, 3.12500000000000e-02,
1.56250000000000e-02, 3.12500000000000e-02, 3.75000000000000e-01, 1.87500000000000e-01,
1.87500000000000e-01 }
while matrices in CalculiX (using Fortran) are:
reshape((/
& 0.138196601125011d0,0.138196601125011d0,0.138196601125011d0,
& 0.585410196624968d0,0.138196601125011d0,0.138196601125011d0,
& 0.138196601125011d0,0.585410196624968d0,0.138196601125011d0,
& 0.138196601125011d0,0.138196601125011d0,0.585410196624968d0/),
& (/3,4/))
(/
& 0.041666666666667d0,0.041666666666667d0,0.041666666666667d0,
& 0.041666666666667d0/)
Also, here’s part of the book used as a theory manual for CalculiX:
Since e.g. (5-sqrt(5))/20=0.1381966 and (5+(3*sqrt(5)))/20=0.5854102 and 1/24=0.0416667, the numbers in both matrices from CalculiX source code make sense. But I still don’t know how to get the matrix like the one in ParaView from those two matrices from CalculiX (especially since they don’t account for the number of nodes). Any ideas ? Knowing how it works for tetrahedral elements, I could do the same for hex elements.