Validation / 10 of 10
Cook's membrane
Cook's membrane (1974) is a tapered panel, clamped on one edge and sheared on the other. It has no closed-form solution. The finite element literature uses it because it combines bending and shear on a mesh that cannot be rectangular, which exposes elements that lock or lose accuracy when distorted.
| Reference | KoFEM | Difference |
|---|---|---|
| 23.900 | 24.042 | +0.59 % within ±6 % |
The problem
| 1 | |
| 1 | |
| 0.333333 | |
| 1 |
| Supports | x = 0 face fixed (Ux, Uy, Uz). |
|---|---|
| Load | F in +y as a force on the x = 48 face. |
| Measured | y-displacement of the corner (48, 60). |
Analytical solution
The panel is the quadrilateral with corners (0, 0), (48, 44), (48, 60) and (0, 44), of unit thickness, with and . A total shear force is spread uniformly over the right edge, and the left edge is clamped. All quantities are dimensionless. The result compared is the vertical displacement of the top-right corner C.
Without an analytical solution, the reference is the converged value of very fine plane-stress meshes reported in the literature, about 23.9.
The panel behaves like a short, tapered cantilever: span 48, depth tapering from 44 to 16. Linear elements lock in its bending, as in the cantilever, and every element is skewed, so elements whose accuracy depends on rectangular shapes do poorly. Coarse meshes of simple elements land far below 23.9.
Finite element model
| Mesh | 16 × 16 grid, 1 through t: 256 linear 8-node hexahedra (P1) |
|---|---|
| Unknowns | 578 nodes, 1,734 degrees of freedom |
| Material | Linear elastic, isotropic |
| Solver | KoFEM engine (MFEM), the WebAssembly build the app runs: engine-5ceb743373dd |
KoFEM is a 3-D solver, so the panel is a slab of thickness with one element through the thickness, clamped over the whole face. The load is a force on the face, integrated as a uniform traction, and the result is the mean vertical displacement of the two nodes at C.
Results
| Quantity | top-corner deflection |
|---|---|
| Reference | converged ≈ 23.9 |
| KoFEM | 24.042 |
| Difference | +0.59 % within ±6 % |
Finer meshes move past the reference (see the convergence study): a regression check, not evidence of accuracy.
Mesh convergence: Cook's membrane
Both orders rise past the 23.9 reference under refinement, so the pass on the 16 × 16 CI mesh is a cancellation of errors; treat this case as a regression check until the reference is reconciled.
Data
| Order | Mesh | DOFs | KoFEM | Difference |
|---|---|---|---|---|
| P1 (linear) | 4 × 4 | 150 | 17.621 | −26.27 % |
| P1 (linear) | 8 × 8 | 486 | 22.132 | −7.40 % |
| P1 (linear) | 16 × 16 (this example) | 1,734 | 24.042 | +0.59 % |
| P1 (linear) | 32 × 32 | 6,534 | 24.734 | +3.49 % |
| P1 (linear) | 64 × 64 | 25,350 | 24.989 | +4.56 % |
| P2 (quadratic) | 2 × 2 | 225 | 23.439 | −1.93 % |
| P2 (quadratic) | 4 × 4 | 729 | 24.481 | +2.43 % |
| P2 (quadratic) | 8 × 8 | 2,601 | 24.920 | +4.27 % |
| P2 (quadratic) | 16 × 16 | 9,801 | 25.166 | +5.30 % |
Discussion
On the 16 × 16 case mesh KoFEM gives 24.04, which differs from 23.9 by +0.59 %. The convergence study shows that this agreement is partly coincidence. Under refinement both linear and quadratic elements move past the reference, to 24.99 (linear, 64 × 64) and 25.17 (quadratic, 16 × 16), and they have not yet levelled off at a common value.
A converging discretisation of the same problem would approach one value from both element orders. So the 3-D model here is not yet the problem the 23.9 reference solves. Possible causes, not yet resolved, are the 3-D slab clamped over a face versus the 2-D plane-stress model, and the clamp itself, which fixes all three displacement components along the edge rather than the in-plane ones only. Until this is reconciled the example is a regression check: it catches a change in the solver's answer, but it is not evidence of accuracy.
Reproduce
In the app: open the model, then Studies → Static 1 → Run static solve, select the result plot and set Field to Uy. The Result summary shows Max Uy 2.404e+1 mm.
From a clone (Node.js 20+, bash, curl), this solves the model with the same engine and prints its line:
git clone https://github.com/mkofler96/KoFEM.git && cd KoFEM
bash scripts/fetch-wasm-engine.sh
node examples/validation/run.mjs --case cooks-membrane
Case Quantity FE Reference Err% Tol% Status
Cook's membrane top-corner deflection 24.042 23.900 +0.59 6 PASS
References
- R. D. Cook, “Improved two-dimensional finite element”, Journal of the Structural Division (ASCE) 100 (1974) 1851–1863.
- R. D. Cook, D. S. Malkus, M. E. Plesha and R. J. Witt, Concepts and Applications of Finite Element Analysis, 4th ed., Wiley, 2002.
KoFEM is research software and is not certified for safety-critical design. It solves linear-static, linear-elastic problems. Check results that matter against your own references.