White box / Physical formulations / Material and section laws

Classical laminate resultants

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

Browse another sheet Physical formulations / Material and section laws
Physical formulationsMaterial and section lawsSheet 5 / 6
Physical formulationROUTE-DEPENDENT · stack and orientation are explicit

Layer stiffnesses are integrated through thickness into extensional, coupling, and bending matrices.

01 Model and scope

Classical laminate theory represents a perfectly bonded stack of linear orthotropic plies by integrating each rotated plane-stress stiffness through thickness. The three thickness moments produce A (extension), B (extension–bending coupling), and D (bending). This constitutive result is not, by itself, a shell element or a delamination model.

Route assumptions and calculation checks

  1. Each ply plane-stress stiffness is rotated to shell axes and integrated over its own z interval to form A, B, and D.
  2. A mirrored material/thickness stack makes the zQ̄(z) integral cancel and B=0; unsymmetric stacks generally couple membrane strain and curvature.
  3. Ply stresses are recovered at lower/middle/upper positions. MITC4 also adds transverse shear; the current accepted static scope is bounded to selected planar regular meshes.

02 Essential equations and symbols

εk(z)=ε0+zκ\boldsymbol{\varepsilon}_k(z)=\boldsymbol{\varepsilon}^{0}+z\boldsymbol{\kappa}A=∑kQ‾k(zk−zk−1),B=12∑kQ‾k(zk2−zk−12),D=13∑kQ‾k(zk3−zk−13)\mathbf A=\sum_k\overline{\mathbf Q}_k(z_k-z_{k-1}),\quad\mathbf B=\frac12\sum_k\overline{\mathbf Q}_k(z_k^2-z_{k-1}^2),\quad\mathbf D=\frac13\sum_k\overline{\mathbf Q}_k(z_k^3-z_{k-1}^3)[NM]=[ABBD][ε0κ]\begin{bmatrix}\mathbf N\\\mathbf M\end{bmatrix}=\begin{bmatrix}\mathbf A&\mathbf B\\\mathbf B&\mathbf D\end{bmatrix}\begin{bmatrix}\boldsymbol{\varepsilon}^{0}\\\boldsymbol{\kappa}\end{bmatrix}

Definitions and conventions

Qˉk(θk)Q̄_{k}(\theta{}_{k})
Ply k's plane-stress stiffness transformed from its 1–2 material axes to shell axes.
zk−1,zkz_{k-1},z_{k}
Bottom and top coordinates of ply k measured from the laminate mid-plane.
A, B, D
3×3 extensional, extension–bending coupling, and bending stiffness matrices.
ε0,κ\varepsilon{}^0, \kappa{}
Mid-plane engineering strain and curvature vectors in the declared shell convention.
N, M
Membrane force and bending moment resultants per unit width.
Aₛ
Separate transverse-shear stiffness used by the Reissner–Mindlin MITC4 shell route.
+45°0°−45°90°0°zintegrate Q̄(z)Through-thickness moments retain stack orderA: extensional stiffness; B: coupling; D: bendingUnsymmetric stacks generally have B ≠ 0Recover each ply at its own through-thickness locations
Ply stack → A, B, D and membrane/bending responseThe mirrored stiffness profile makes the first thickness moment vanish. A laminate shell adds kinematics and transverse shear beyond this ABD material law.
6 detailed steps

03 Step by step derivation

Follow the assumptions, equations and discrete operations in order. The full explanation stays visible.

The site separates the ply law, stacking sequence, ABD integration, MITC4 shell kinematics, transverse shear, and failure indicators. The current QF Solver MITC4 laminate implementation adds a shear matrix and weak drilling term beyond ABD; its documented status is bounded and route-specific.

1 · State the laminate kinematic assumptions

The classical laminate law assumes thin, perfectly bonded plies, linear in-plane response, plane stress in each lamina, and a prescribed stacking sequence. In the first-order kinematic model, in-plane strain varies linearly through thickness. Inter-ply displacement jumps and interface opening are not represented.

ε(z)=ε0+zκ\boldsymbol{\varepsilon}(z)=\boldsymbol{\varepsilon}^{0}+z\boldsymbol{\kappa}ε0=[εx0,εy0,γxy0]T,κ=[κx,κy,κxy]T\boldsymbol{\varepsilon}^{0}=[\varepsilon_x^0,\varepsilon_y^0,\gamma_{xy}^0]^T,\qquad\boldsymbol{\kappa}=[\kappa_x,\kappa_y,\kappa_{xy}]^T

The sign of curvature depends on the local shell axes and convention. Keep that convention consistent in the input, force resultants, moment resultants, and recovered stresses.

2 · Build each lamina's plane-stress stiffness

Within each ply, axes 1 and 2 follow the material directions in the lamina plane. Elastic reciprocity gives ν21=ν12E2/E1. The reduced stiffness Q maps in-plane engineering strain to in-plane stress; it is not the full 3D orthotropic solid matrix from the preceding card.

ν21=ν12E2E1,Δ=1−ν12ν21>0\nu_{21}=\nu_{12}\frac{E_2}{E_1},\qquad\Delta=1-\nu_{12}\nu_{21}>0Q=[E1/Δν12E2/Δ0ν12E2/ΔE2/Δ000G12]\mathbf Q=\begin{bmatrix}E_1/\Delta&\nu_{12}E_2/\Delta&0\\\nu_{12}E_2/\Delta&E_2/\Delta&0\\0&0&G_{12}\end{bmatrix}σ12=Qε12,ε12=[ε1,ε2,γ12]T\boldsymbol{\sigma}_{12}=\mathbf Q\boldsymbol{\varepsilon}_{12},\qquad\boldsymbol{\varepsilon}_{12}=[\varepsilon_1,\varepsilon_2,\gamma_{12}]^T

The ply angle rotates this law into the shell axes to produce Q̄ₖ. The code performs tensor rotations and converts engineering shear explicitly.

3 · Integrate transformed ply stiffness across thickness

For ply k, Q̄ₖ is constant between interfaces zₖ₋₁ and zₖ. Integrating Q̄ₖ, zQ̄ₖ, and z²Q̄ₖ gives the three classical laminate matrices. A and D are always assembled from every ply; B changes sign with the location of each ply relative to the mid-plane.

A=∑kQ‾k(zk−zk−1)\mathbf A=\sum_k\overline{\mathbf Q}_k(z_k-z_{k-1})B=12∑kQ‾k(zk2−zk−12)\mathbf B=\frac12\sum_k\overline{\mathbf Q}_k(z_k^2-z_{k-1}^2)D=13∑kQ‾k(zk3−zk−13)\mathbf D=\frac13\sum_k\overline{\mathbf Q}_k(z_k^3-z_{k-1}^3)[NM]=[ABBD][ε0κ]\begin{bmatrix}\mathbf N\\\mathbf M\end{bmatrix}=\begin{bmatrix}\mathbf A&\mathbf B\\\mathbf B&\mathbf D\end{bmatrix}\begin{bmatrix}\boldsymbol{\varepsilon}^{0}\\\boldsymbol{\kappa}\end{bmatrix}

With Q̄ in Pa and z in metres, A has units N/m, B has units N, and D has units N·m. N and M are resultants per unit width.

4 · Interpret coupling and a symmetric stack

An unsymmetric sequence generally has B≠0, so a pure membrane resultant can induce curvature and a pure moment can induce mid-plane strain. If the material stiffness distribution is mirrored about z=0, the integrand zQ̄(z) is odd and B vanishes. A balanced layup addresses different in-plane normal/shear coupling terms; it does not automatically imply B=0.

B=∫−h/2h/2z Q‾(z) dz\mathbf B=\int_{-h/2}^{h/2}z\,\overline{\mathbf Q}(z)\,\mathrm dzQ‾(z)=Q‾(−z)⟹B=0\overline{\mathbf Q}(z)=\overline{\mathbf Q}(-z)\quad\Longrightarrow\quad\mathbf B=\mathbf0unsymmetric stack: B≠0  in general\text{unsymmetric stack: }\mathbf B\ne\mathbf0\;\text{in general}

Symmetry is about the complete material-and-thickness sequence, not merely whether angle labels look repeated. Equal ply thickness and mirrored ply properties/orientations are needed for the cancellation.

5 · Recover strains and stresses ply by ply

After solving for ε⁰ and κ, evaluate the strain at each ply's lower face, mid-plane, and upper face. Rotate strain into the ply material axes and use Q for material-axis stress. At an interface, the strains may be kinematically continuous while stresses jump because neighboring plies have different stiffnesses.

εkshell(z)=ε0+zκ\boldsymbol{\varepsilon}_{k}^{shell}(z)=\boldsymbol{\varepsilon}^{0}+z\boldsymbol{\kappa}εkmat=Tε(θk)εkshell,σkmat=Qkεkmat\boldsymbol{\varepsilon}_{k}^{mat}=\mathcal T_{\varepsilon}(\theta_k)\boldsymbol{\varepsilon}_{k}^{shell},\qquad\boldsymbol{\sigma}_{k}^{mat}=\mathbf Q_k\boldsymbol{\varepsilon}_{k}^{mat}z∈{zk−1,12(zk−1+zk),zk}z\in\{z_{k-1},\tfrac12(z_{k-1}+z_k),z_k\}

Retain both one-sided stresses at interfaces. Averaging across an interface can hide the discontinuity that drives ply-level failure checks.

6 · Connect ABD to the actual MITC4 shell route

The MITC4 shell adds Reissner–Mindlin transverse shear to the in-plane ABD response. QF Solver integrates rotated G13/G23 through the thickness and applies a default shear factor 5/6; membrane–bending cross terms are retained for unsymmetric stacks. A weak drilling stiffness is also used. These additions belong to the shell element route, not to the bare ABD equations.

As=ks∑ktkR(θk)[G13,k00G23,k]R(θk)T,ks=56  by default\mathbf A_s=k_s\sum_k t_k\mathbf R(\theta_k)\begin{bmatrix}G_{13,k}&0\\0&G_{23,k}\end{bmatrix}\mathbf R(\theta_k)^T,\qquad k_s=\frac56\;\text{by default}Ke=∫A(BmTABm+BmTBBb+BbTBTBm+BbTDBb+BsTAsBs) dA+Kd\mathbf K_e=\int_A\left(\mathbf B_m^T\mathbf A\mathbf B_m+\mathbf B_m^T\mathbf B\mathbf B_b+\mathbf B_b^T\mathbf B^T\mathbf B_m+\mathbf B_b^T\mathbf D\mathbf B_b+\mathbf B_s^T\mathbf A_s\mathbf B_s\right)\,\mathrm dA+\mathbf K_d

The v0.2.11 documentation bounds current laminate static evidence to selected planar regular meshes. Distorted/oblique probes remain outside that accepted subset; dynamics, damage evolution, delamination, and industrial decision validation are not implied.

04 Algorithm and implementation

Source excerpt · v0.2.11

The source integrates each rotated ply stiffness over its actual interface interval; the power of z selects A, B, or D.

Functions shown: _integrated_matrix

Code
def _integrated_matrix(self, *, power: int, factor: float) -> np.ndarray:
    interfaces = self.interfaces
    matrix = np.zeros((3, 3), dtype=float)
    for index, ply in enumerate(self.plies):
        lower = interfaces[index]
        upper = interfaces[index + 1]
        matrix += factor * ply.transformed_stiffness * (upper**power - lower**power)
    return 0.5 * (matrix + matrix.T)

# A: power=1, factor=1
# B: power=2, factor=1/2
# D: power=3, factor=1/3
Read the complete versioned implementation →

05 Verification and limitations

ROUTE-DEPENDENT · stack and orientation are explicit

Each reference supports its own model, observable and analysis route. Read the original contract and limitations before transferring a conclusion.

Recorded repository calculations

See this method in a calculation.

Each case keeps its mesh, measured quantities, source record and limitations attached to the result.

Browse every calculation case →

06 Sources and related sheets

Continue the reasoning

Back to sheet contents ↑