Real-time visualisation of the S_0 (in-plane extensional, non-dispersive) and A_0 (flexural, dispersive) Lamb wave modes in a thin plate. Adjust Young's modulus, density, frequency and thickness to explore the fundamentals of structural health monitoring and ultrasonic SHM.
Parameters
Young's modulus E
GPa
Density rho
kg/m^3
Frequency f
kHz
Plate thickness h
mm
Poisson's ratio nu = 0.30 fixed. Defaults are steel plate (E = 210 GPa, rho = 7800 kg/m^3, h = 1.0 mm, f = 100 kHz), a typical thin-plate SHM case.
Results
—
S_0 phase velocity c_S0
—
A_0 phase velocity c_A0
—
S_0 wavelength lambda_S0
—
A_0 wavelength lambda_A0
Plate side view — S_0/A_0 displacement
Top: S_0 mode (symmetric through thickness, in-plane extension). Bottom: A_0 mode (antisymmetric, out-of-plane bending). Wavelengths lambda_S0 and lambda_A0 are annotated.
A_0 mode (flexural plate wave, Kirchhoff thin-plate): dispersive, with omega = 2*pi*f and h the plate thickness [m]. Phase velocity increases with frequency.
$$\lambda = \frac{c}{f}$$
Wavelength lambda: phase velocity divided by frequency. The SHM defect-detection resolution is roughly lambda/2.
What is Lamb wave dispersion?
🙋
Lamb waves sound like the ones used in ultrasonic NDT. How are they different from ordinary sound waves?
🎓
Good question. Ordinary P-waves and S-waves travel in unbounded media, but Lamb waves are guided modes confined between the two free surfaces of a plate, with wavelengths comparable to the plate thickness. For example, a 1 mm steel plate at 100 kHz gives lambda_S0 ~ 54 mm and lambda_A0 ~ 10 mm. The plate vibrates as a whole, which makes Lamb waves perfect for inspecting large areas with a few transducers.
🙋
Why is S_0 about five times faster than A_0 in the same material? They are in the same plate, right?
🎓
Because the deformation modes are completely different. S_0 is an in-plane stretching, governed by the extensional stiffness E, so c_S0 = sqrt(E/(rho*(1-nu^2))) ~ 5439 m/s. A_0 is out-of-plane bending, controlled by the much smaller flexural stiffness D = E*h^3/(12*(1-nu^2)), and c_A0 grows as sqrt(omega*h). At h = 1 mm, f = 100 kHz that gives c_A0 ~ 993 m/s. Slide the thickness up and watch how only A_0 speeds up.
🙋
On the chart, A_0 bends and S_0 stays flat. Is that the meaning of "dispersion"?
🎓
Exactly. Dispersion means the phase velocity depends on frequency, and A_0 follows sqrt(omega). The practical consequence is that a pulse spreads out as it travels, because different frequencies move at different speeds. Long-range SHM therefore prefers the non-dispersive S_0, or uses group-velocity corrections v_g = d omega/dk. Look at how the blue curve stays horizontal while the orange curve bends upward.
🙋
Is this used on aircraft skins or steel bridge plates in practice?
🎓
Yes, everywhere. Aircraft CFRP skins, bridge and tank plating, nuclear-plant piping — all routinely instrumented with Lamb-wave SHM. A typical setup uses PZT patches at 50-500 kHz to excite and receive Lamb waves, then locates damage from reflected and scattered signals. Boeing 787 wings and Shinkansen body inspection both rely on Lamb waves. Try the sweep in the typical 50-500 kHz band and see how lambda_A0 shrinks.
Frequently asked questions
Higher modes appear above well-known cutoff frequencies. For steel, A_1 cuts in near fh ~ 1.6 MHz*mm and S_1 near 2.7 MHz*mm. While the tool's f*h range can exceed these values, the Kirchhoff thin-plate theory used here only models the two fundamental modes. Solving the full Rayleigh-Lamb equation requires a numerical dispersion solver such as GUIGUW or Disperse. This tool is positioned as an educational, low-frequency, thin-plate calculator. For fh > 1 MHz*mm we recommend a dedicated dispersion solver.
Phase velocity c_p = omega/k is the speed of a monochromatic crest, while group velocity v_g = d omega/d k is the speed of energy and of a wave packet. For non-dispersive S_0, c_p = v_g. For dispersive A_0 in the Kirchhoff approximation, v_g = d omega/d k = 2*c_p, so a flexural packet travels twice as fast as a single crest. SHM systems infer distance from pulse arrival times and must therefore use group velocity, not the phase velocity that this tool reports.
This tool assumes an isotropic material such as metal or glass. CFRP is anisotropic and laminated, so the in-plane stiffness depends on fiber direction, and Lamb-wave velocities differ with the propagation angle. Realistic CFRP analysis uses laminate stiffness matrices [Q] and higher-order plate theories (first-order shear deformation, Mindlin) or numerical solvers. As a rough approximation for quasi-isotropic laminates the present tool gives 10-20% accuracy, but note that CFRP E is about 135 GPa along the fiber and only 9 GPa across it.
Kirchhoff thin-plate theory is accurate within about 5% when the wavelength lambda is at least six times the plate thickness h, roughly fh < 0.3 MHz*mm. The A_0 formula used here, c_A0 = sqrt(omega) * (E*h^2/(12*rho*(1-nu^2)))^(1/4), relies on this assumption. For thick plates excited at high frequency (fh > 1 MHz*mm), shear deformation and rotary inertia must be included, leading to Mindlin-Reissner theory or the full Rayleigh-Lamb solution. The default case (h = 1 mm, f = 100 kHz, fh = 0.1 MHz*mm) sits well inside the safe range.
Applications in the real world
Aircraft structural health monitoring: Boeing 787 and A350 carbon-fibre skins are equipped with arrays of PZT patches (typically 50-200 sensors) running at 50-300 kHz to monitor for impact damage in service, in particular barely visible impact damage (BVID). The S_0 and A_0 wavelengths predicted by this tool drive the sensor spacing (usually 100-500 mm).
Long-range ultrasonic testing of bridge and tank plate: The bottom plates of oil tanks, bridge flanges and high-pressure pipelines are routinely scanned using non-dispersive S_0 Lamb waves. A single excitation typically inspects 10-30 m of plate, dramatically reducing inspection labor compared with point-by-point pulse-echo UT. Guided Ultrasonics Wavemaker and Olympus Teletest are representative commercial systems. The S_0 wavelengths from this calculator (centimetres to decimetres) decide the operating frequency.
Nuclear-plant piping and steam-generator tubing: Pipes (20-30 mm SUS304/SUS316L) and steam-generator tubes (Inconel 600, 1.2-2 mm wall) are inspected for internal corrosion and stress-corrosion cracking using Lamb waves. The A_0 mode is especially sensitive in thin-walled tubes, where it picks up disbonds and wall thinning. Both PWR and BWR utilities in Japan include this as a standard inspection item.
Shinkansen and automotive weld inspection: Spot-welds on Shinkansen aluminium bodies and steel automotive panels are inspected with Lamb-wave techniques. Scattering and reflection at the weld nugget reveal the nugget size and defects such as cracks or porosity, enabling non-destructive in-line quality control. Try setting E = 70 GPa and rho = 2700 kg/m^3 (aluminium) in this tool and compare with steel.
Common misconceptions
First, a Lamb wave is not a single wave. A plate supports an infinite family of modes (S_0, A_0, S_1, A_1, S_2, A_2 ...), and the number of modes that can propagate at a given frequency is set by the product f*h. Below f*h ~ 1.6 MHz*mm only S_0 and A_0 propagate, which is exactly why SHM systems carefully choose the excitation frequency: mixing modes destroys signal interpretation. This calculator deliberately restricts itself to the two fundamental modes for clarity.
Second, do not assume that S_0 depends on plate thickness h. The low-frequency expression c_S0 = sqrt(E/(rho*(1-nu^2))) contains no h, so S_0 is thickness-independent in this model. The flexural A_0 mode, in contrast, depends strongly on h: thinner plates have slower A_0. Sweep h between 0.5 mm and 5 mm and watch only A_0 change. The full Rayleigh-Lamb solution does introduce a weak thickness dependence in S_0 at high frequency, but in the recommended operating range (fh < 0.3 MHz*mm) the thickness-independence of S_0 is a very good approximation.
Finally, phase velocity alone is not enough to locate damage. Practical SHM uses the time of flight of pulse envelopes, which travel at the group velocity v_g, not at the phase velocity c_p reported here. In the Kirchhoff approximation v_g = 2*c_p for A_0, so the c_a0 ~ 993 m/s shown by default corresponds to roughly 2000 m/s for a real pulse. SHM system designers must always be aware of this distinction.