In the course of my studies on the subject of ultrasonic Lamb waves I have become fairly familiar with the basics of elasticity. I also prepared various pieces of computer code and notes which might be of interest to others studying in the area. I intend to group these materials together here.
Introduction
UPDATE
Basic Elasticity
- Basic equations of elasticity, including definition of stress and strain and dynamic equation.
- Stiffness tensor introduced
- Reduced notation and engineering strain introduced
- Tensor transformations discussed, in context of material symmetry.
- Point group diagrams introduced
- Symmetry classes discussed, with reference to the transformation tensors involved in their definition and the appropriate pointgroups. Triclinic, Monoclinic, Orthotropic, Tetragonal, Trigonal, Hexagonal, Cubic and Isotropic symmetry discussed and stiffness matrices are presented.
- Bulk waves in anisotropic materials discussed. Slowness curves and procedure for their calculations discussed (i.e. for a given propagatin direction, how to obtain the velocities and polarisation vectors for the (quasi)longitudinal and two (quasi)shear modes).
- Slowness curves for specific materials in different symmetry classes are presented, using various planes of propagation as appropriate.
I think these notes are quite easy to follow, and they are pretty short. The basic material is summarised quickly and then specific examples follow. References provide pointers to more detailed and exhaustive work on the topic.
You can download the programs to produce the slowness curve figures from the text here in tar.gz or zip format:
To use the programs you will need Python with the Numerical Python extensions and Gnuplot. All of this software is free to download. When you run the python program makefigs.py,
python makefigs.py
it will create a directory called "figures/" and place
numerous .dat files. These contain the data for the slowness and skew
curves. The commands to plot the curves are contained in the
figures/inas_0_slow.gp and figures/inas_0_skew.gp files. To produce the
eps (PostScript) figures type
gnuplot figures/inas_0_skew.gp
gnuplot figures/inas_0_slow.gp
If you don't have access to gnuplot, they you can just output the
data to an appropriate text file and import it into any program you like
(e.g. MS Excel) for plotting. If you don't have access to python and/or
numerical python, then it is probably not too difficult to translate the
program into whatever computer languages you do have access to. Matlab
would be particularly easy since it has appropriate high-level commands,
but with a little care it should be possible to translate the program into
other languages too. If you are having problems, or if you either
translate the program into another language or discover a bug or mistake,
then please feel free to mail me.
Lamb Waves
I have prepared an extended version of the original notes posted here. This includes a discussion of Lamb waves in isotropic plates, and guided waves in anisotropic plates and layered plates (where individual layers may be isotropic or anisotropic). File-size is up too, to 1.6 megabytes.
Looking at computer code implementing these calculations makes the process of producing a dispersion curve far easier to understand. Layered_Dispersion_Example.tar.gz contains the appropriate Python and Gnuplot files to produce such a figure.