Eight-node trilinear isoparametric solid with 24 translational DOFs. The standard public route uses eight full-integration Gauss points; its separate SRI research variant is explained independently.
01 Model and scope
The eight corner functions are products of linear factors in the three parent coordinates. Their derivatives are generally non-constant, so the physical strain operator and stiffness are evaluated at each of the eight Gauss points rather than at one element-average value.
Route assumptions and calculation checks
- The 0.2.8 registry covers named elastic and small-strain J2 combinations, not every material or solver route.
- The nonlinear geometry audit is a separate, bounded TET4/HEX8 static campaign and did not promote maturity.
- HEX8-SRI is a separate research implementation, not the standard HEX8 formulation.
Useful foundations and prerequisites
02 Essential equations and symbols
Definitions and conventions
- Parent-element coordinates.
- rₐ,sₐ,tₐ
- Signs identifying corner a.
- Physical shape-function gradient.
- The complete 2 × 2 × 2 Gauss rule used by this route.
03 Step by step derivation
Follow the assumptions, equations and discrete operations in order. The full explanation stays visible.
For corner a, the sign triple (rₐ,sₐ,tₐ) selects one of eight products of linear factors. Differentiating gives reference gradients; J transforms them to physical gradients. The complete tensor-product Gauss rule evaluates Kₑ = Σq w_q det(J_q) B_qᵀ D B_q at all eight points. A distorted cell changes the Jacobian at each point, so checking its determinant throughout the rule matters.
1 · Eight corner nodes and trilinear interpolation
HEX8 is defined on the parent cube [-1,1]^3. Each corner has a sign triple (rₐ,sₐ,tₐ), and each node has three translations: 24 element DOFs. The product basis is one at its own corner and zero at the other seven; it reproduces constant and affine displacement fields on an affine physical map.
Node signs and mesh connectivity must agree. A sign/order mismatch changes the map and may invert the element.
2 · Map the cube and form physical gradients
The geometry map is trilinear. Its Jacobian is evaluated at each quadrature point; the inverse transpose maps reference gradients into physical gradients. With a distorted cell the Jacobian varies, so both B and the local volume factor change over the element.
The implementation checks the Jacobian at its eight Gauss points. That is a discrete geometry audit; it is not a proof of positivity at every point of a highly distorted trilinear cell.
3 · Strain operator and full 2×2×2 stiffness
At each point, the mapped gradients generate the 6×24 engineering-strain operator Bq. The standard route uses two Gauss points in each parent coordinate, with unit reference weights. Complete integration is the public HEX8 formulation; HEX8-SRI is a distinct research class.
For an affine parallelepiped with constant material, B and det(J) are constant and the integral is exact. For a general warped trilinear cell, the inverse Jacobian makes the integrand non-polynomial; eight points do not guarantee exact integration for every distortion.
4 · Mass, state updates, and energy checks
The consistent mass uses the same shape functions and complete eight-point integration. A row-sum lumped mass helper also exists in code, but availability is not blanket route evidence. The constitutive trial response is evaluated at each Gauss point; internal force and tangent contributions are accumulated with the same local determinant and weight.
The mass route requires strictly positive density. For nonlinear materials, each integration point has its own stored state and tangent; the element presence alone does not verify a chosen global iteration or material combination.
5 · Verification scope and limits
Affine patch response, symmetry, energy and structural comparisons test separate parts of the kernel. Geometry distortion, boundary conditions, material axes, and integration rule remain part of every result. The registry records named material/analysis combinations; a small working cube is only a smoke test. The SRI research branch must not be confused with the fully integrated public HEX8.
04 Algorithm and implementation
Source excerpt · v0.2.11
One BᵀDB contribution is accumulated at each point in the complete 2×2×2 Gauss rule, weighted by its Jacobian determinant.
Functions shown: stiffness
def stiffness(self, coords):
stiffness = np.zeros((24, 24), dtype=float)
for _, weight, b_matrix, determinant in self.integration_data(coords):
stiffness += weight * determinant * (
b_matrix.T @ self.material.elasticity_matrix @ b_matrix
)
return symmetrize(stiffness)05 Verification and limitations
QUALIFIED_BOUNDED · standard full-integration route
Affine patch and structural comparisons using declared meshes and materials.
Each reference supports its own model, observable and analysis route. Read the original contract and limitations before transferring a conclusion.