Okay. Now, let's go to two-dimensions, but start having fun with introducing really heterogeneous models. So, remember, we use numerical methods to be able to not simulate waves in a homogeneous medium, but in heterogeneous media. So, this is a notebook you should play around with. There's a lot of different examples for heterogeneous media, but I want to show you one example only, and that's what we discussed in the courses, so wave propagation, very interesting of course for seismologists. So, I want to focus here explaining a little what it takes to initialize such a heterogeneous model. So, let's have a look at the notebook. The initialization again is given here, the actual computational grid is set 200 by 200. We have a dx here of space increment of 10 meters and the time step is one millisecond. We have let's say, a background velocity of 3,000 meters per second, and we put a source at the center of the domain. We actually will start with a frequency of 40 hertz in our wave field. As you can see here, there's a couple of different models that you can initialize, also a homogeneous model, but let's initialize a fault zone. So, again, we need all the matrices to be initialized with the right size, in this case, again nx times nz. Now, let's have a closer look at how such a fault zone can be initialized. So, the velocity model C, is also now a matrix. So, it has nx times nz grid points, and it can at least in principle vary at each grid point, and that's the power of course of our numerical approach. Now, if the model is a fault zone as you can see here, then actually we first give all the values the background value which we initialize at the very beginning, and then at the very center, and this is now basically over a width of 11 grid points at the center, we lower the velocity by 20 percent. So, we just multiply this value here with 0.8, which effectively means now we have a low velocity zone inside our computational domain. Actually, we also put the source in the center. Now, let's see what happens if we simulate. I will not go into how the source term function is initialized, we've seen this before. That simply is a Gaussian function. Now, let's see what happens if we do that. So, the simulation is running relatively fast here, and you can see how the wave propagates away from the source. Actually, in the vertical direction up and down, you can see that there is a very high amplitude propagating, and also we see reflections from the physical boundaries here. We basically have just done something a little stupid, but we have perfectly reflecting boundaries from the sides which in nature of course would not be the case. But the point here is to show that at the center of the domain in this low velocity region, it looks like energy is actually trapped, and you can also see that it's slowed down in the vertical direction. We can now look at the receivers, you can see those five crosses at the top, of course, you can change that also as you like. We can look at the wave field that's recorded up there. In the graphs shown here, you can actually see the source time function, which is again the first derivative of a Gaussian, and below, you can see the seismograms recorded at those five points. Surprise, surprise, the green line here is actually the receiver which is right on top of the low velocity zone. So, if you look at the velocity model here again, this would be a receiver basically inside that low velocity zone. That again, this could be mimicking an earthquake fault where at the top you would have the Earth's surface, and this would be a vertical fault like the San Andreas Fault with a fault that goes down. So, what you can see in the seismograms, is actually that the amplitude of the wave field that we've recorded right on the fault is substantially larger than just outside the fault, and just this is of course, a seismological phenomenon that's now observed all around the world in such faults. That the amplitude right on top of this low velocity zone, so it can be maybe a 100 meters wide, is actually substantially increased, which is of course also a hazard. If you build your house, I would not build it right on the fault, because if there is an earthquake, there will be amplification. So, I like that because you can, even this simple two-dimensional acoustic solution offers, again, the possibility of studying really quite complicated wave phenomena in a very very simple way. I really encourage you to play around with that, but before proceeding, I would like to, just as an example, increase again the frequency here from 42, let's say, let's again be a little wild and go to 150 hertz, and then run it and see what happens. If you look at the wave field now, you can see it looks quite different, much shorter wavelengths. In the final result in the seismograms, you can now see basically a very oscillatory phenomenon behind the first arrival inside the fault zone. You can actually also appreciate now the difference between the recordings outside the fault zone and inside the fault zone and low velocity zone is even much larger, probably a factor of 20. Actually, this kind of dispersive phenomena that we see here, is also observed in nature. Now, the key question here is what we simulate here. Is that actually physics? Or is it numerical dispersion? That's really very very difficult to investigate or difficult to answer, but if you want to do science with this, that's the key question. If you're a student and you come to your professor, and he tells you, ''Well, this is just numerical dispersion, " that's probably not good. So, you want to make sure that this is simulated accurately. The way to do this, and we actually, we also look into this later with the other methods, is actually to make the mesh finer and finer, keeping everything else constant, and to see whether the solution changes. That's kind of a so-called convergence test, we'll actually going to do this in more detail in the final week. So, in conclusion, the 2D finite difference solution for the acoustic wave equation here is really a very powerful, very simple method to investigate some complicated wave phenomenon. But it is not easy and that's one of the key things, is to try and make your simulation actually accurate, so that what you see in your wave field and in your seismogram. So, what do you simulate is actually physics and not a numerical error. So, to verify and make this accurate, you have to do a convergence tests, you can decrease for example the space increments dx and dz, and perform very highly resolved simulations, and see whether your solution changes, if the resolution gets higher. If it doesn't change, then you basically can be sure that you do an accurate physics simulation. We will look more into that with more detail in one of the weeks that will follow.