This page here has been created for the latest stable release of Salvus. You have chosen to view the documentation for another Salvus version. Please be aware there might be some small differences you have to account for.
The theory for this section is based on this paper:
Zhou, X.-Y., Chang, X., Wang, Y.-B., Wen, X.-T., You, J.-C., & Sun, C. (2022). Non-artifact vector P- and S-wave separation for elastic reverse time migration. Petroleum Science, 19(6), 2695–2710. https://doi.org/10.1016/j.petsci.2022.08.006
One can separate the P- and S-wave components of a wavefield by
taking the divergence and the curl of the displacement field. An easy way to do
this in Salvus is to output the gradient-of-displacement and then use the
components from the resulting tensor to construct the divergence and curl
manually.
The following is an example demonstrating such a wavefield separation:
where the indices of ui represent which component of the output field to
select.
To get the divergence of the displacement field (P-wave component), simply apply
∇⋅u=∂xux+∂yuy=u0+u3.
Similarly, to get the curl of the displacement field (S-wave component), use
∇×u=∂xuy−∂yux=u2−u1.
Practical Advice
The wavefield which is computed during a Salvus simulation can be opened using the WavefieldOutput.
Note that the regularly gridded wavefield output has dimensions [n_time_slices, n_components, n_x, n_y]. The subscripts for u effectively represent which dimension in the wavefield output should be extracted along axis=1.
For example, the divergence of the wavefield output could be obtained using something anaologous to