An International
Forum For
The AE Scienceand Technology

JOURNAL OF
ACOUSTIC
EMISSION
Vol.38-1/2023

Editors: M.A. Hamstad (AEWG) and G. Manthei (EWGAE)

Endorsed byAEWG
andEWGAE

Published byAcoustic Emission Group
Encino, CA USA©2023 Acoustic Emission Working GroupEstimation of Elastic Wave Velocities in Anisotropic Solids
Federico A. Bosio1 and José E. Ruzzante1,2
1Universidad Nacional de Tres de Febrero (UNTREF), Caseros, Mosconi 2736, Sáenz Peña
(B1674AHF) Provincia de Buenos Aires, Argentina fedebosio93@gmail.com
2Universidad Tecnológica Nacional (UTN), Fac. Reg. Delta, Campana, San Martín 1171,
Provincia de Buenos Aires, Argentina ruzzante@gmail.com
Abstract
In this work, a computer program is developed which allows to find and graph the phasevelocities, group velocities and the slowness of a solid from its physical characteristics, namely
the stiffness tensor and the volumetric density of the material that composes it. The graphs are also
made in such a way that it is possible to obtain the magnitudes according to the angle and thecoordinate plane of a specific propagation direction, which are given to the program as inputs.
Keywords: Stress, strain, stiffness tensor, Christoffel tensor, phase velocity, group velocity,
slowness, polarization vectors
Introduction
We consider a linear behavior between stress 𝜎!" and strain 𝜖#ℓ ,𝜎!" = 𝐶!"#ℓ 𝜖#ℓwhere 𝐶!"#ℓ represents the elastic constants and the symmetries of the material. It can be shownthat this so-called stiffness tensor never has 81 independent elements due to the following three
relations of symmetry, that is,𝐶!"#ℓ = 𝐶!"ℓ#𝐶!"#ℓ = 𝐶"!#ℓ𝐶!"#ℓ = 𝐶#ℓ!"

(1)
(2)
(3)

In the most complex scenario, it has 21 components. That is the case of the triclinic structures. If
the crystal has more symmetries, the number of independent constants decreases. Isotropic crystals
are the simplest and they only have two constants.
Newton’s second law for continuous media states
𝐹! + 𝜎!"," = 𝜌 𝑢̈ !
where 𝐹! are body forces (force per volume) which are assumed to be zero and 𝑢! is thedisplacement vector. The subscripts after the comma indicate derivatives with respect to spacecoordinates and the dots above the letters indicate derivatives with respect to time. Using thesymmetries of the tensor 𝐶!"#ℓ the wave equation for a linear, anisotropic solid is obtained
𝐶!"#ℓ 𝑢#,!ℓ = 𝜌 𝑢̈ !
+⃗Harmonic solutions of the form 𝑢! = 𝐴&! 𝑒 ' )*⋅.⃗/012 are proposed for this equation so the following
one is reached:(Γ!# − 𝜌𝛿#! 𝑐 3 )𝐴&! = 0
J. Acoustic Emission, 38 (2023)

1(4)©2023 Acoustic Emission Working Group

with Γ!" the so-called Christoffel tensor, which is defined by
Γ!" = 𝐶!#"ℓ 𝑙ℓ 𝑙# .

(5)

Γ!" is a symmetric tensor, which is determined by the stiffness tensor and the directions ofpropagation (Aki and Richards, 1980, Borrelli, 2013).
We deal with a homogeneous system of three equations and three unknowns, which has nontrivial solutions if the determinant of the matrix of coefficients that multiplies the unknowns iszero (Truell et al., 1969, Santaló, 1977).
det(Γ!" − 𝜌𝛿"! 𝑐 % ) = 0
where 𝑐 can be found to make the equation hold. Substituting the velocities found in the system(4), the unknowns 𝐴&! are found. The most general case is when we have three waves as the result,one longitudinal P-wave, which has the greatest speed, and two transversals, called S. In somecases, the two S-waves may be the same.
From the velocity, other magnitudes are obtained, which have different applications. When
studying, for example, refraction of waves between anisotropic media, velocity 𝑐 doesn’t matterbut its reciprocal 𝑚 = 1/𝑐, called “slowness” of the wave, does matter. Its graphical representationon the coordinate planes allows to deduce the angles of a refracting wave, in the most general case,from one anisotropic medium to another. On the other hand, the velocity of a wave propagating inan anisotropic solid depends on the frequency of the wave. The anisotropic solid is then adispersive medium, and as such, it has phase velocities and group velocities. The velocities ofsystem (4) are phase velocities. Group velocities, on the other hand, are calculated as follows.
𝑔ℓ =𝐶!#"ℓ 𝛼! 𝛼" 𝑙#𝜌𝑐(6)with 𝛼! = 𝐴&! /𝐴 = 𝐴&! /2𝐴&# 𝐴&# the normalized polarization vector that corresponds to theobtained phase velocity, c (Ruzzante, 2020, Davis, 2000).
Development
A web application that graphs the velocities of propagation on the coordinate planes fromcharacteristics of the material was made. The corresponding URL address ishttps://www.elasticas.app/. It is worth noting that all the technologies used for developing theapplication have open-source licences.
Aspect and use of the application
When entering the URL of the program by means of any web browser, e.g.: Brave, Google
Chrome, Mozilla Firefox, Microsoft Edge, etc., a webpage like the one shown on Figure 1 appears.
It consists of the elements specifically listed below.
• Input
o 21 text fields for the components of the stiffness tensor.
o One text field to enter the density.
o A drop-down list to apply symmetries to the stiffness tensor.
o Another drop-down list, for loading materials stored in the program.
• Outputo Values of the chosen quantities and the polarization vectors.
o Buttons to choose the magnitude, whose results are going to be shown: phasevelocity, group velocity, slowness.
o Buttons to choose the coordinate plane from which results are going to beexpressed.
2

o Text field to enter the polar angle in degrees, from which results are going to beexpressed.

Figure 1: Screenshot of the web application interface as soon as it’s loaded.
After loading data in some way like, for example, selecting a material from the drop-down
list, velocity curves appear, as well as their values for the given angle, and the polarization vectors
for that angle. In Figure 2, the results appear for the “lithium” material, the XY coordinate plane,
and the phase velocity as the chosen quantity. The rest of the fields, corresponding to stiffness
constants, the density and the symmetry, are filled automatically.
Values at specific angles can be seen as shown in Figure 3. To do so, the angle is entered in
the field “Angle” and the Enter key is pressed, or a click is made in the graph to obtain an
approximated value.
It should be noted that the angle can be swept continuously if, besides clicking in the graph,the button is held while the mouse is moved over it. This operation updates, also continuously, thevalues of velocity and the components of the polarization vectors.

3

Figure 2: Screenshot of the interface with the results of the lithium.

Figure 3: Visualization of the graph and values for an angle of 30°.

4

Design decisions
The interface was designed under two conditions.
1. The estimation of phase velocity, group velocity, slowness and polarization vectors on thecoordinate planes for all angles should be possible.
2. A person with knowledge of waves in anisotropic solids should be able to use it, guided
almost entirely by intuition.
The first point states the necessary conditions for the design: the minimum number of elements forentering data and the output elements. The second condition is less objective and, consequently,difficult to address without ambiguities, but it determined the criteria used to add functionalities
and make specific decisions.
• Since C is symmetric, offering 36 text fields to fill it is a total design incompetence. The
program interface synchronizes the lower and upper triangles automatically, as shown inFigure 4. Only the diagonal and the upper triangle are enabled for writing.
• It is essential to include units next to the elements corresponding to values of physicalquantities. It would be much less intuitive to have, for example, the text field of Figure 5,without indicating if the density is expressed in kg/m3, g/cm3, etc.
• A text field triple was considered to enter a direction of propagation in space and get theresults from it. The plot with continuous angle sweep replaced it: it clearly offers a better
experience.
• The colors of the plot curves correspond to the results of velocities shown. They also matchthe colors of the polarization vectors, shown as stacked rows in a matrix. Using colors is
not the only possibility, but it is better than nothing and it is what ended up being
implemented.
Other issues of importance for a good user experience are the practicality and the compatibilityof the application on different systems. They are not issues primarily determined by the interface
design, but rather by the selection of software technologies used to create the application.

Figure 4: Text field in the upper triangle being synchronized with its counterpart in the lower
triangle.

Figure 5: Bad example of a text field without units.
Tools
Although developing a desktop application was initially considered, the difficulties encounteredin testing the prototype on different computers motivated the passage to the vast, ubiquitous andcompetitive world of web applications.
The performance of desktop applications is subject to several factors like the operating
system, the compilation method or the state of a proper runtime environment, shared libraries, andother dependencies in general. Instead, a web application works in any browser without the needto configure anything or perform additional installations. Another point that was mentioned earlier,without much emphasis, though it is not a minor issue, is the fact that all the tools were chosen insuch a way that they had open-source licences. Closed-source tools are more restrictive and noteverything that is done with them may be freely published. That limits the scopes of this work,
since it has an intrinsically public nature.
5

With all this in mind, it was decided to use the tools listed below.
• The Python programming language (Python, 2022).
o The Numpy numerical calculation module (NumPy, 2022).
o The Flask web server module (Flask Documentation, 2022).
• The PythonAnywhere cloud platform (PythonAnywhere, 2022).
• HTML, CSS and Javascript for the user interface, although technically using them was not
an option, because they are standard (Standards - W3C, 2022).
The list of technologies could be continued recursively, since every language, platform andmodule in turn depends on other modules. It only highlights that they have open-source licenses,
too. The rest of the tools are omitted to avoid unnecessary thoroughness.
Adaptation of expressions
The Numpy numerical calculation module is optimized for matrix operations. It is therefore
appropriate to modify the expressions, using matrix representations for their implementation in thesoftware.
Equation (4) amounts to a problem that is solved by finding the eigenvalues and eigenvectorsof the matrix of components Γ!" , the Christoffel matrix, which will be denoted 𝚪. This notationpassage is valid because the Christoffel tensor is of order two. The same does not hold for thestiffness tensor 𝐶!"#ℓ , which is of order four. What it does hold, thanks to the symmetry relations(1), (2) and (3), is the so-called “Voigt Notation”. With this notation, the pair of indices of the 𝐶!"#ℓtensor are contracted to two, leading to a tensor 𝐶!" . The transformation rules for each pair ofindices are the ones that follow:
11 → 123 → 422 → 213 → 533 → 312 → 6The components of the stiffness tensor 𝐶!#"ℓ can now be represented in a matrix 𝑪 as follows:
𝐶%%⎡𝐶⎢ &%𝐶𝑪 = ⎢ '%⎢𝐶(%⎢𝐶)%⎣𝐶*%

𝐶%&𝐶&&𝐶'&𝐶(&𝐶)&𝐶*&𝐶%'𝐶&'
𝐶''
𝐶('𝐶)'𝐶*'𝐶%(
𝐶&(𝐶'(𝐶((𝐶)(𝐶*(𝐶%)
𝐶&)
𝐶')
𝐶()
𝐶))
𝐶*)

𝐶%*
𝐶&* ⎤⎥
𝐶'* ⎥𝐶(* ⎥𝐶)* ⎥𝐶** ⎦Each element of the matrix represents more than one element of the tensor due to the symmetry
relations (1) and (2). For example, 𝐶)( may be the representation of 𝐶%'&' as well as 𝐶%''& or 𝐶'%&' .
On the other hand, the components of the lower triangle are equal to the components of the upper
triangle, i.e., the matrix 𝑪 is symmetric.
𝑪 = 𝑪+(7)This is due to the equality (3). For example, 𝐶%'&' = 𝐶&'%' so using Voigt Notation 𝐶)( = 𝐶() .
The same goes for the rest of the components: in general, 𝐶!#"ℓ = 𝐶"ℓ!# becomes 𝐶,- = 𝐶-, with
Voigt Notation and it turns out that (7) is true.
Voigt Notation is used in this work to replace the tensors of the equation (5) by matrix products,
which are easier to implement in a computer program efficiently. For this purpose, the following
matrix is defined

6𝑙
⎡!
0
⎢
0𝑳=⎢
⎢0
⎢𝑙#
⎣𝑙"

0𝑙"
0𝑙#
0𝑙!

0
⎤0
⎥
𝑙# ⎥𝑙" ⎥𝑙! ⎥0⎦

and after working on the corresponding sums, each component of the Christoffel tensor is equal toa bilinear form with associated matrix 𝑪. For example, the explicit form of the second row andthird column of the Christoffel tensor isΓ"#=++

𝐶"!#! 𝑙! 𝑙!
𝐶""#! 𝑙" 𝑙!
𝐶"##! 𝑙# 𝑙!

+++

𝐶"!#" 𝑙! 𝑙"𝐶""#" 𝑙" 𝑙"
𝐶"##" 𝑙# 𝑙"+++

𝐶"!## 𝑙! 𝑙#𝐶""## 𝑙" 𝑙#𝐶"### 𝑙# 𝑙#

which using Voigt Notation and symmetries (1), (2) and (3) becomes
Γ"#=++

then defining

𝐶$% 𝑙! 𝑙!
𝐶"% 𝑙" 𝑙!
𝐶&% 𝑙# 𝑙!

+++0⎡𝑙 ⎤⎢ "⎥0𝑳" = ⎢ ⎥𝑙⎢ #⎥⎢0⎥⎣𝑙! ⎦𝐶$& 𝑙! 𝑙"𝐶"& 𝑙" 𝑙"
𝐶&& 𝑙# 𝑙"+++𝐶$# 𝑙! 𝑙#𝐶"# 𝑙" 𝑙#𝐶&# 𝑙# 𝑙#0⎡0⎤⎢ ⎥𝑙
𝑳# = ⎢ # ⎥⎢𝑙" ⎥⎢𝑙! ⎥⎣0⎦as the second and third column of 𝑳 respectively, the form becomesΓ"# = 𝑳'" 𝑪𝑳#which is the bilinear form that was sought. The same is repeated for the rest of the components
and it is finally inferred that𝑳!' 𝑪𝑳!
𝚪 = 0𝑳'" 𝑪𝑳!
𝑳'# 𝑪𝑳!
so𝑳!' 𝑪𝑳"
𝑳'" 𝑪𝑳"
𝑳'# 𝑪𝑳"

𝑳!' 𝑪𝑳#𝑳!'𝑳'" 𝐶𝑳# 1 = 0𝑳'" 1 [𝑪][𝑳!
𝑳'# 𝑪𝑳#𝑳'#𝑳"

𝑳# ]𝚪 = 𝑳' 𝑪𝑳.

Symmetry of 𝑪 directly implies symmetry of 𝚪 which is easy to see by using equation (7)𝚪 ' = (𝑳' 𝑪𝑳)' = 𝑳' 𝑪' (𝑳' )' = 𝑳' 𝑪𝑳 = 𝚪.
On the other hand, (6) is worked out for each value of the index ℓ and, with a similar procedure asabove, it is proven that the group velocity corresponding to the phase velocity 𝑐 is1𝒈 = (𝒍' 𝑨' 𝑪𝑨)𝜌𝑐7

where𝑙!
𝒍 = #𝑙" %𝑙#𝛼!
⎡0⎢0𝑨=⎢
⎢0
⎢𝛼#
⎣𝛼"

0𝛼"
0𝛼#
0𝛼!

00⎤⎥𝛼# ⎥.
𝛼" ⎥𝛼! ⎥0⎦Conclusion
The developed web application can be useful for researchers that work with elastic waves andit is an adequate introduction to the subject for students. Initially, it was thought to include threedimensional diagrams to the program for their aesthetic condition, but they were leaved behinddue to their lack of practical utility. It remains to include them as future work. Data of several
commonly used materials was included in the application. However, the source code of theapplication is publicly accessible. Anyone can contribute with the addition of materials and otherfeatures as well. The main objective of this application is to be useful to community members whowork with elastic waves. We sincerely hope that is the case.
Acknowledgments
The authors of this work wish to thank the authorities of the Sound Engineering career of theUniversity “Tres de Febrero” for the cooperation provided.
References
Aki, K., Richards, P. (1980). Quantitative Seismology, Theory and Methods, Vol 1, 2. Freeman,
San Francisco, CA, USA.
Bedford, A., Drumheller, D.S. (1996). Introduction to Elastic Wave Propagation. John Wiley andSons. New York, NY, USA.
Borrelli, A. (2013). Meccanica dei Continui. Dipartimento di Matematica, Università degli Studidi Ferrara. Ferrara, Italy.
Davis, J.L. (2000). Mathematics of Wave Propagation. Princeton University Press, Princeton, NJ,USA.
Flask Documentation. (2022). (Pallets) Recuperado el 25 de Julio de 2022, dehttps://flask.palletsprojects.com/NumPy. (2022). Recuperado el 25 de Julio de 2022, de https://numpy.org/Python. (2022). (Python Software Foundation) Retrieved Julio 25, 2022, from Python:
https://python.org/PythonAnywhere. (2022). (Salesforce) Recuperado el 25 de Julio de 2022, dehttps://www.pythonanywhere.com/Ruzzante, J.E. (2020). Ondas elásticas en sólidos.
https://www.academia.edu/61957141/Libro_ONDAS_ELASTICAS_EN_SOLIDOS_Jose_Ruzz
ante_Version_con_ISBN
Santaló, L.A. (1977). Vectores y tensores, con sus aplicaciones. EUDEBA.
Standards - W3C. (2022). (World Wide Web Consortium (W3C)) Retrieved Julio 25, 2022, fromhttps://www.w3.org/standards/
Truell, R., Elbaum, C. Chick, B.B. (1969). Ultrasonic Methods in Solid State Physics. AcademicPress, New York, NY, USA.
8Commenmedida quInsertar ci