# Plate Stress Analysis with Holes (2-D FEA) > Stress map of a plate with holes under tension: von Mises, peaks and the concentration factor. Draw a plate as a rectangle or polygon with circular, rectangular or polygonal holes, fix edges or points, pull or press edges with a traction or pressure or add point forces, and get the plane-stress field from a finite-element model: a colour map of the von Mises stress or any stress component, the peak stress and where it sits, the stress concentration factor against the applied stress, the largest displacement, a utilisation check against the yield strength and an equilibrium check. The mesh is generated automatically (Delaunay triangulation, refined towards the holes). Part of the Proofline math notebook; a checking and teaching model, not certified design. Part of usefulweb.site (https://usefulweb.site/). Part of [Proofline](https://proofline.usefulweb.site/) (ownerApp: proofline). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://prooflineplatestress.usefulweb.site/ (interactive tool at https://prooflineplatestress.usefulweb.site/tool) - JSON API: POST https://prooflineplatestress.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://prooflineplatestress.usefulweb.site/api/v1/tool) - OpenAPI: https://prooflineplatestress.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://prooflineplatestress.usefulweb.site/mcp - tool `proofline_plate_stress` ## Inputs - model (textarea, required): Plate (one statement per line) - Units mm, N, MPa; E in GPa. rect W H or outline x,y x,y … · hole circle cx cy r | hole rect x0 y0 x1 y1 | hole polygon x,y … · thickness t · material E=210 nu=0.3 fy=250 · fix x=0 ux (or y=…, edge N, hole N, point x y; ux, uy or both) · traction x=200 tx=50 ty=0 (MPa on that edge) · pressure hole 1 p=20 (MPa, pushing on the surface) · force x y Fx=… Fy=… (N at the nearest node). Edges are numbered from the first outline point. - elementSize (number): Element size - Target triangle edge length away from the holes. Empty: 1/10 of the shorter plate side. - holeElementSize (number): Element size at the holes - Smaller elements at the hole edges capture the peak stress; the size grows with the distance from the holes. Empty: a quarter of the smallest hole radius. - show (select): Stress map - showMesh (boolean): Draw the element edges ## Method - Mesh: the outline and holes are split into boundary segments (circular holes stay on the circle), triangulated by the incremental Bowyer–Watson Delaunay algorithm, missing or encroached boundary segments are split (conforming Delaunay), and triangles that are too large or have angles below about 20° are refined by inserting their circumcentres (Ruppert). The element size grows from the hole size by a quarter of the distance to the nearest hole. - Elements: constant-strain triangles (CST) in plane stress, D = E/(1 − ν²)·[[1, ν, 0], [ν, 1, 0], [0, 0, (1 − ν)/2]], K = t·A·BᵀDB. Edge tractions and pressures become consistent nodal forces (half of each edge’s share to each end). - The sparse stiffness matrix is reordered with reverse Cuthill–McKee and solved by envelope Cholesky; a plate that can still move rigidly is reported. - Stresses are constant per element; von Mises = √(σx² − σxσy + σy² + 3τxy²). Area-weighted nodal averages give a smoother but lower peak. - Verified by the patch test (uniform stress exact on any mesh), equilibrium of reactions and loads, and convergence towards Kirsch’s factor 3 at a small hole in a wide plate as the elements at the hole shrink. ## Limits - Not certified engineering. Linear elastic plane stress with constant-strain triangles: peaks at holes and corners are only as good as the mesh there (refine until the peak stops changing), sharp re-entrant corners have no finite peak at all, and yielding, fatigue, buckling of thin plates and contact at bolt holes are not modelled.