![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17064182%2Fad44cd961ba875d23f04a29ee40b012f%2FScreenshot%202025-06-04%20at%2012.53.04PM.png?generation=1749067518002686&alt=media)
vx, vz are wavefields, fx and fz are forces of earthquake sources, rho, lambda, mu are material properties, and Vp, Vs are velocity structure.

## Waves in 2D isotropic elastic medium, subject to:
All simulation results are generated with a finite difference code program contributed by Ph.D. student Haipeng Li of the Geophysics department ([Stanford Profile](https://profiles.stanford.edu/haipeng-li?tab=bio), [Linkedin](https://www.linkedin.com/in/haipeng-li-343a7b216/)). Each simulation contains 60 time frames of 0.03s (1.8s in total) wavefield in a 128(horizontal)*64(vertical) evenly spaced grid with a spacing of 20m. We generate waves with a frequency up to 5 Hz under the settings of:
1. Free surface boundary at the top (zero traction)
2. Absorbing boundaries on both sides and the bottom
3. Heterogeneous material properties: Vp, Vs. (Note: density is also an independent parameter that varies in space. Here, for the layered models, we use an empirical relation between Vp and density, density(g) = Vp(m/s)^0.25 * 310 ([Gardner's relation](https://en.wikipedia.org/wiki/Gardner%27s_relation)). For the random field models, we set the density(g) as a constant 3000kg/m^3. 
4. The source term fx and fz are functions of time and space (an earthquake at a certain location radiating waves). After 12 frames (~0.48s), the earthquake is finished, and both fx and fz go to almost zero.

When neglecting the source terms, given the relationships between rho, lambda, mu and Vp Vs, the governing eqns depends only on Vp and Vs. Note: density will show up in the equation system when you still have the source term. Thus we provided rho, Vp, Vs, but you are only asked to use Vp and Vs, as the task is set up to solve the last 45 frames when we can neglect the source term.

##Two types of velocity structures:
--Random Gaussian fields
--Layered velocity models
![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17064182%2Fee27024187f68dc9891dd6e64785492b%2FScreenshot%202025-05-08%20at%2010.49.25PM.png?generation=1746769813120001&alt=media)
Between different layered models, the layer thickness and the number of layers vary. For each layered model, it mostly follows the nature that the deeper layers have relatively larger velocity, but we also allow for the existence of a low velocity zone where a slower layer is sandwiched between two faster layers. For a 2D velocity profile generated with a Gaussian random field, it also follows the general trend of velocity increasing with depth. For all models, Vp sits between 2.5km/s and 6km/s, and Vs sits between 1.2km/s and 3.5km/s. 

##Varying earthquake focal mechanisms and Locations
Every source is a purely double couple source to simulate pure shear failure, represented by a beachball ([6-minute video](https://www.youtube.com/watch?v=MomVOkyDdLo) by USGS explaining what earthquake focal mechanisms are). 
![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17064182%2F3d8674b4262ae173c0171b8958fdf337%2Fdownload-2.png?generation=1746770451554985&alt=media)
For each simulation, we randomly generate a possible earthquake failure focal mechanism and a location within the domain. We avoid generating an earthquake that ruptures at the boundary of the simulation domain. The good news is that you do not have to worry about this, as this information should be included in the first few frames of the wavefield snapshots. For both the training set and the test set, you will have this information, as we will give you the full wavefield for the training set and the first 15 frames for the test set.

Below are two examples of simulation results: 
####Simulation with a layered velocity model:
![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17064182%2Fa8043af52a0ffb0f1cad1fe100654ef7%2FUnknown-7.png?generation=1746822579842090&alt=media)
![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17064182%2Fb6b9318fd36d0f010ba5116485a80b47%2Fwavefield-3.gif?generation=1746822600614751&alt=media)
####Simulation with a Gaussian random field velocity model:
![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17064182%2F5252da77a676ccdff6c0f9a917541b7e%2FUnknown.png?generation=1746822493493021&alt=media)
![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17064182%2F3e4b86c4325afe362898ae515f241afd%2Fwavefield-2.gif?generation=1746822485267134&alt=media)