More concretely, when you sample a quadratic shear strain (which has a spurious locking term) at these two points and then interpolate linearly between them, the quadratic parasitic term averages out exactly. That is the mechanism of locking removal.

For Q4 (bilinear displacement), the shear strain polynomial spaces follow directly from differentiating the displacement field $w = a_0 + a_1\\xi + a_2\\eta + a_3\\xi\\eta$ with respect to the parametric coordinates; $\\partial w/\\partial\\xi = a_1 + a_3\\eta$ which is constant in $\\xi$, linear in $\\eta$ and similarly for $\\partial w/\\partial\\eta = a_2 + a_3\\xi$ which is linear in $\\xi$, constant in $\\eta$

MITC Type

FerriteShells.MITCType
MITC{N,M,T}

Mixed Interpolation of Tensorial Components data for the N-node shell element (Bucalem & Bathe 1993). Eliminates transverse shear locking by evaluating the covariant shear strains $\gamma_\alpha = a_\alpha \cdot d$ at fixed tying points and interpolating back to Gauss points.

Static fields (N_tie, dNdξ_tie, h_tie) are precomputed once at construction. Mutable fields (A*_tie, G₃_tie, T*_tie) are updated each reinit! call.

source
FerriteShells.MITC9Function
MITC{9,6,T}

Mixed Interpolation of Tensorial Components data for the 9-node quadrilateral shell element.

Tying points (reference domain $[-1,1]^2$): $\gamma_1 = a_1\cdot d$: ($\pm1/\sqrt{3}$, $-1$), ($\pm1/\sqrt{3}$, $0$), ($\pm1/\sqrt{3}$, $+1$) 6 points, linear in $\xi_1$ between $\pm1/\sqrt{3}$, quadratic in $\xi_2$ $\gamma_2 = a_2\cdot d$: ($-1$, $\pm1/\sqrt{3}$), ($0$, $\pm1/\sqrt{3}$), ($+1$, $\pm1/\sqrt{3}$) 6 points, quadratic in $\xi_1$, linear in $\xi_2$ between $\pm1/\sqrt{3}$

The points $\pm1/\sqrt{3}$ are superconvergent points for linear functions.

source
FerriteShells.MITC4Function
MITC{4,2,T}

Mixed Interpolation of Tensorial Components data for the 4-node quadrilateral shell element.

Tying points (reference domain $[-1,1]^2$): $\gamma_1 = a_1 \cdot d$: ($0,$ $\pm1$) 2 points, constant in $\xi_1$, linear in $\xi_2$ $\gamma_2 = a_2 \cdot d$: ($\pm1$,$0$) 2 points, linear in $\xi_1$, constant in $\xi_2$

source
FerriteShells.tying_shear_strainsFunction
tying_shear_strains(mitc::MITC{N,M,T}, u_e)

Compute the covariant shear strains $\gamma_1 = a_1 \cdot d$ and $\gamma_2 = a_2 \cdot d$ at all M MITC tying points from the current DOF vector u_e (5 DOFs/node: [$u_1$,$u_2$,$u_3$,$\varphi_1$,$\varphi_2$,$\cdots$]). Returns (γ₁_k, γ₂_k) as two NTuples of length M, ForwardDiff-safe. Call once before the quadrature-point loop and pass to shear_strains.

source
FerriteShells.shear_strainsFunction
shear_strains(a₁, a₂, d, qp, γ₁_k, γ₂_k, mitc)

Return (γ₁, γ₂) at quadrature point qp. With MITC: weighted sum of tying-point values from tying_shear_strains. Without MITC: direct dot(a₁, d), dot(a₂, d).

source