Premium apps Part of Proofline

Plate Stress Analysis with Holes (2-D FEA)

Stress map of a plate with holes under tension: von Mises, peaks and the concentration factor.

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.

mm

Target triangle edge length away from the holes. Empty: 1/10 of the shorter plate side.

More options
mm

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.

Try an example: Steel strip with a hole under tension (d/W = 0.3) · Small hole in a wide plate: towards Kirsch’s factor 3 · Aluminium bracket with two bolt holes, pressure in one hole · Uniform tension without a hole (patch check: σx = 10 MPa everywhere)

More about this tool

How it works

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.

  • 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.

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.

Sources

  • O. C. Zienkiewicz, R. L. Taylor: The Finite Element Method, vol. 1, 5th ed., chapter 4 (plane stress, linear triangle) and §10 (patch test) (Butterworth-Heinemann)
  • J. Ruppert: A Delaunay refinement algorithm for quality 2-dimensional mesh generation, J. Algorithms 18 (1995) 548–585 (Elsevier)
  • G. Kirsch: Die Theorie der Elastizität und die Bedürfnisse der Festigkeitslehre, Z. VDI 42 (1898) 797–807; W. D. Pilkey: Peterson’s Stress Concentration Factors, 3rd ed. (Wiley, 2008), chart 4.1 (VDI / Wiley)
  • A. George, J. W. H. Liu: Computer Solution of Large Sparse Positive Definite Systems (Prentice-Hall, 1981) — reverse Cuthill–McKee and envelope Cholesky (Prentice-Hall)

Part of Proofline

Related tools

Find the stress around holes in a plate with finite elements

Describe a flat plate with holes, supports and loads and get a stress map, the peak stress, the stress concentration factor and a mesh you can refine.

What it is for

A hole in a loaded plate raises the stress at its edge to several times the average, and that peak is where fatigue cracks start. This tool meshes any flat plate outline with circular, rectangular or polygonal holes into triangles and solves the plane-stress problem with the finite element method.

You describe the plate one statement per line, in millimetres, newtons and MPa: rect 200 100 or outline 0,0 120,0 …, hole circle 100 50 15, thickness 5, material E=210 nu=0.3 fy=250, supports such as fix x=0 ux and loads such as traction x=200 tx=50 (a stress on an edge), pressure hole 2 p=30 (inside a bolt hole) or a point force.

The elements are constant-strain triangles, which need small elements where the stress changes quickly. It is a linear-elastic, in-plane model for checking, not a certified analysis.

Worked example

Take a 200 × 100 mm steel strip, 5 mm thick, with a 30 mm hole in the middle (d/W = 0.3) and pull it with 50 MPa. With an element size of 10 mm and 4 mm elements at the hole, the tool reports a peak von Mises stress of 157.5 MPa, 3.149 × the applied stress, on 989 triangles. Make the elements at the hole 1 mm and the peak rises to 170.3 MPa, 3.405 ×, on 2371 triangles. Halving them again to 0.5 mm gives 3.401 ×: the answer has converged. Peterson's charts give about 2.36 on the net section for d/W = 0.3, which is 2.36 ÷ 0.7 ≈ 3.37 on the gross stress, within about 1 % of the result.

The second example is a 2 mm hole in a 40 mm plate. Its peak σx is 2.99 MPa for 1 MPa applied: Kirsch's classic factor of 3 for a small hole in a wide plate.

How to read the result

Peak von Mises stress (element) is the highest value in any triangle; compare it with the yield strength in Utilisation (check). The nodal average smooths neighbouring triangles and is usually a little lower. Peak / applied stress appears when a single uniform edge stress loads the plate; it is your stress concentration factor on the gross section.

The map colours each triangle by the stress you choose: von Mises, σx, σy or τxy. The table of the highest element stresses shows where the peak sits and its components, including the principal stresses σ1 and σ2.

The equilibrium check compares the reactions with the loads.

Tips and common mistakes

  • Always refine at the holes until the peak stops changing; the "Refine the mesh" action halves the hole element size for you.
  • Use symmetry: a quarter of a plate with a hole is an outline with a quarter circle cut out, with ux fixed on one symmetry line and uy on the other. Holes must lie completely inside the outline.
  • Fix only what the real part is held by. Fixing a whole edge in both directions adds stiffness that is not there.
  • A plate with loads that cancel still needs supports against rigid motion: one point fixed in both directions and one in a single direction.

FAQ

Why is the peak stress lower on a coarse mesh?

Each triangle carries one constant stress, so a large triangle averages the peak with lower stress next to it. Smaller elements at the edge of the hole resolve the peak.

Can I use the result for fatigue?

It gives the elastic peak stress, the starting point of a fatigue check; notch sensitivity, surface finish and S-N data must come from a proper fatigue method.

What does a stress above the yield strength mean?

The plate would yield locally at that spot. This linear model does not follow plasticity, so treat the number as a warning, not as the real stress.

How large a model can it solve?

About 4,000 mesh nodes. The sparse solver handles that in a fraction of a second in your browser.

Guide last updated:

For scripts and AI agents

  • JSON API: POST https://prooflineplatestress.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://prooflineplatestress.usefulweb.site/mcp · tool name proofline_plate_stress
Example request
curl -s -X POST https://prooflineplatestress.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"model":"rect 200 100\nhole circle 100 50 15\nthickness 5\nmaterial E=210 nu=0.3 fy=250\nfix x=0 ux\nfix point 0 0 uy\ntraction x=200 tx=50"}'
Feedback · ideas & bug reports welcome