White box / Physical formulations / Solid elements

HEX8 · trilinear hexahedron

Physical formulation · assumptions, essential equations, full derivation, algorithm, code and verification references.

Browse another sheet Physical formulations / Solid elements
Physical formulationsSolid elementsSheet 3 / 6
Physical formulationQUALIFIED_BOUNDED · standard full-integration route

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

  1. The 0.2.8 registry covers named elastic and small-strain J2 combinations, not every material or solver route.
  2. The nonlinear geometry audit is a separate, bounded TET4/HEX8 static campaign and did not promote maturity.
  3. HEX8-SRI is a separate research implementation, not the standard HEX8 formulation.

02 Essential equations and symbols

Na(ξ,η,ζ)=18(1+raξ)(1+saη)(1+taζ)N_a(\xi,\eta,\zeta)=\frac18(1+r_a\xi)(1+s_a\eta)(1+t_a\zeta)∇xNa=J−T∇ξNa,J=∂x∂ξ\nabla_xN_a=\mathbf J^{-T}\nabla_\xi N_a,\quad \mathbf J=\frac{\partial\mathbf x}{\partial\boldsymbol\xi}εq=Bqqe\boldsymbol\varepsilon_q=\mathbf B_q\mathbf q_eKe=∑q=18wqdet⁡(Jq)BqTDBq\mathbf K_e=\sum_{q=1}^{8}w_q\det(\mathbf J_q)\mathbf B_q^T\mathbf D\mathbf B_q

Definitions and conventions

(ξ,η,ζ)(ξ,\eta{},ζ)
Parent-element coordinates.
rₐ,sₐ,tₐ
Signs identifying corner a.
J−T∇ξNJ-^T\nabla{}ξN
Physical shape-function gradient.
∑8\sum{}_{8}
The complete 2 × 2 × 2 Gauss rule used by this route.
12345678Eight corners define the trilinear map24 translational element DOFsFull 2 × 2 × 2 Gauss ruleJacobian checked at all 8 production points
HEX8 topology and complete integrationAt each of the eight Gauss points, QF Solver maps reference gradients through the local Jacobian before forming the strain and stiffness contribution.
5 detailed steps

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.

Na(ξ,η,ζ)=18(1+raξ)(1+saη)(1+taζ)N_a(\xi,\eta,\zeta)=\frac18(1+r_a\xi)(1+s_a\eta)(1+t_a\zeta)uh=∑a=18Naua,qe∈R24\mathbf u_h=\sum_{a=1}^{8}N_a\mathbf u_a,\qquad \mathbf q_e\in\mathbb R^{24}∑a=18Na=1\sum_{a=1}^{8}N_a=1

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.

x(ξ)=∑a=18Na(ξ)xa\mathbf x(\boldsymbol\xi)=\sum_{a=1}^{8}N_a(\boldsymbol\xi)\mathbf x_aJ=∂x∂ξ,∇ ⁣xNa=J−T∇ ⁣ξNa\mathbf J=\frac{\partial\mathbf x}{\partial\boldsymbol\xi},\qquad \nabla_{\!x}N_a=\mathbf J^{-T}\nabla_{\!\xi}N_adet⁡(Jq)>τgeomat each of the eight production points\det(\mathbf J_q)>\tau_{geom}\quad\text{at each of the eight production points}

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.

εq=Bqqe\boldsymbol\varepsilon_q=\mathbf B_q\mathbf q_eKe=∑q=18wqdet⁡(Jq)BqTDBq\mathbf K_e=\sum_{q=1}^{8}w_q\det(\mathbf J_q)\mathbf B_q^T\mathbf D\mathbf B_qξq,ηq,ζq∈{−13,+13},wq=1\xi_q,\eta_q,\zeta_q\in\left\{-\frac1{\sqrt3},+\frac1{\sqrt3}\right\},\qquad w_q=1

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.

Me=∑q=18ρwqdet⁡(Jq)[NqTNq⊗I3]\mathbf M_e=\sum_{q=1}^{8}\rho w_q\det(\mathbf J_q)[\mathbf N_q^T\mathbf N_q\otimes\mathbf I_3]fint,e=∑qwqdet⁡(Jq)BqTσq\mathbf f_{int,e}=\sum_qw_q\det(\mathbf J_q)\mathbf B_q^T\boldsymbol\sigma_qKt,e=∑qwqdet⁡(Jq)BqTDt,qBq\mathbf K_{t,e}=\sum_qw_q\det(\mathbf J_q)\mathbf B_q^T\mathbf D_{t,q}\mathbf B_q

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

Code
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)
Read the complete versioned implementation →

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.

06 Sources and related sheets

Continue the reasoning

Back to sheet contents ↑