# Computing the Speed of Traveling Waves in 2 Dimensions

• I

## Summary:

I would like to compute the approximate speed of travelling waves in 2 dimensions using MATLAB.
I have a 2-dimensionsal smooth function ##f(x,y,t)##. There may be multiple travelling waves across the domain. None of them are precisely travelling waves (the shape of the wave changes as it travels). Here is how one of these waves would look in 1-dimension: I want to find the speed of these waves using MATLAB. (The function is just stored as a matrix of values). I was thinking of applying the wave equation $$\text{squared error}=(\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}-\frac{1}{v^2} \frac{\partial^2 f}{\partial t^2})^2$$ It would be an optimization problem where I find ##v## which minimizes the squared error.

I would also like to find the local speed at different ##<x,y>## values. I imagine I could do the same procedure but in a local region around that coordinate.

Would this be a reasonable approach? Would there be way of doing this efficiently? Are there better approaches?

EDIT: I'm only looking for travelling waves like the one sketched above, where there is a change from a lower value to a higher value. Could I use that to make the problem simpler?

Last edited:
• Delta2

Delta2
Homework Helper
Gold Member
Because you saying that there is dispersion(i.e shape of wave changes as it travels), this means that each Fourier component of the function f has a different velocity. So with your approach you will find something like the average velocity over the range of all frequencies. Maybe a different approach is needed to find the velocity of each frequency component, but not sure what approach exactly.

• jasonRF
jasonRF
Gold Member
Without more information it is hard to help much. We don't know whether the medium is linear or nonlinear, dispersive or non-dispersive, homogeneous or inhomogeneous, etc. What is the source of this function? Did it come from some kind of simulation or is it a measurement? Of what?

If the waves are changing shape as they propagate then I would not expect them to satisfy that simple equation you wrote. Off the top of my head, the only way that equation might apply is if the velocity is a function of position.

jason

• Delta2
What is the source of this function? Did it come from some kind of simulation or is it a measurement? Of what?
The function is the difference of two normal kernel estimations. Each point used to create the first estimation represents a broken atomic bond and each point used to create the second estimation represents a formed atomic bond. The data was taken from a molecular dynamics simulation. The function represents the location of cracks and I attempting to determine the speed at which the cracks are growing.

• Delta2
Stephen Tashi
The data was taken from a molecular dynamics simulation. The function represents the location of cracks and I attempting to determine the speed at which the cracks are growing.
In the physics of the simulation how does what happens at one location affect what happens at nearby locations? How is that cause-and-effect relation implemented?

Or perhaps there is no cause-and-effect relation? Is this a simulation where what happens at a location is random and independent of other locations?

In the physics of the simulation how does what happens at one location affect what happens at nearby locations? How is that cause-and-effect relation implemented?

Or perhaps there is no cause-and-effect relation? Is this a simulation where what happens at a location is random and independent of other locations?
A crack in one location will tend to spread to other regions, so a breaking of bonds in one region leads to breaking of bonds in other regions.

The molecular dynamics software (LAMMPS) looks at the force interactions between pairs of atoms to determine motion. If bonds break, that would lead to a crack, which would lead to an increase in stress around the crack, leading more bonds to break (at least this is my understanding).

Because I'm working on unpublished research, I'm also not sure if there's a restriction on what I can write, which is why I might not have been giving a complete enough explanation (and I'm also afraid to use images of the work to help explain my point).

• Delta2
Stephen Tashi
I have a 2-dimensionsal smooth function ##f(x,y,t)##. There may be multiple travelling waves across the domain.

The way I visualize ##f## is as a 2-dimensional surface. As time passes I visualize the height of most points on the surface increasing. At a given time, we can draw a contour map of the surface. As time passes, the contours on the map move. So the simplest analogy to something propagating like a wave is to think about a contour changing shape as a function of time.

At a point on a contour, we can establish the vector defining a perpendicular to the contour. As one time-step passes we can imagine the contour moving along that direction to a point on the new location of the contour. The velocity of the point could be interpreted as a velocity of propagation.

I don't use MATLAB, but I imagine that it's easy to implement the above algorithm. However, it doesn't analyze ##f## as a superposition of traveling waves. It doesn't assign a constant speed of propagation to contours or even to an individual contour. You could do statistics to get average speeds, if that's what you want.

What type of statistical results from the simulation data can be checked with an actual experiment?

• Delta2
Yes.

What type of statistical results from the simulation data can be checked with an actual experiment?
The speed a crack propagates could be compared with an experiment. I don't know that much about experimental testing, but there are tools which measure the crack opening width to indirectly determine crack length for example. I imagine there are a bunch of other techniques for measuring crack speed.

Because I am looking for the speed the crack propagates, I realize I can be more precise with what I'm analyzing. I agree with the idea of analyzing the contours, but all I really need to look at is motion in the long direction (or the length of the crack). Here's a contour map with two cracks, with the location of the cracks drawn on in black: So I think to find the speed of crack propagation, I could use some sort of an approach like this:
1. Find regions where ##f## is above some cut-off value (these are regions where there is a crack)​
2. Find the highest point for each of these regions (I think the crack must cross through this point)​
3. Construct a curve which passes through this point and is normal to the contours (this is the crack)​
4. Compare the length of the crack for each step, the difference divided by the time step being the speed​
I think I could code all of this. Do you think this seems like a reasonable approach?

(I asked about showing graphs on forums, and it should be ok, especially because I won't be publishing the data shown).

• Delta2
Stephen Tashi
I think I could code all of this. Do you think this seems like a reasonable approach?
If we think of a crack as a figure bounded by a contour (level curve) of a surface and cracks are long and thin then the growth of the crack would occur at the "ends" and rate would be the combined growth rates of the ends. Considering the growth rates of all the points in the crack normal to the contour, the two points with the maximum grown rates would define how the length of the crack increases.

However, I'm not familiar with phyics of the problem. My general advice is this:

There are probably papers about techniques for analyzing experimental data using pattern detection algorithms to find cracks and measure their properties. If the data from the simulation resembles data from a particular type of experimental image ( visual, x-ray, etc.) look at the algorithms that people use to analyze that type of image. Think of how any results you publish will be evaluated by experimenters.

hutchphd