examples.seismic.tti package

Submodules

examples.seismic.tti.operators module

examples.seismic.tti.operators.ForwardOperator(model, source, receiver, space_order=4, save=False, kernel='centered', **kwargs)[source]

Constructor method for the forward modelling operator in an acoustic media

Parameters:
  • modelModel object containing the physical parameters
  • src – None ot IShot() (not currently supported properly)
  • data – IShot() object containing the acquisition geometry and field data
Param:

time_order: Time discretization order

Param:

spc_order: Space discretization order

examples.seismic.tti.operators.Gxx_centered_2d(field, costheta, sintheta, space_order)[source]

2D rotated second order derivative in the direction x. As the Laplacian is rotation invariant, it is computed as the conventional Laplacian minus the second order rotated second order derivative in the direction z Gxx = field.laplace - Gzz :param field: symbolic data whose derivative we are computing :param costheta: cosine of the tilt angle :param sintheta: sine of the tilt angle :param cosphi: cosine of the azymuth angle :param sinphi: sine of the azymuth angle :param space_order: discretization order :return: Sum of the 3D rotated second order derivative in the direction x

examples.seismic.tti.operators.Gxx_shifted(field, costheta, sintheta, cosphi, sinphi, space_order)[source]

3D rotated second order derivative in the direction x as an average of two non-centered rotated second order derivative in the direction x :param field: symbolic data whose derivative we are computing :param costheta: cosine of the tilt angle :param sintheta: sine of the tilt angle :param cosphi: cosine of the azymuth angle :param sinphi: sine of the azymuth angle :param space_order: discretization order :return: rotated second order derivative wrt x

examples.seismic.tti.operators.Gxx_shifted_2d(field, costheta, sintheta, space_order)[source]

2D rotated second order derivative in the direction x as an average of two non-centered rotated second order derivative in the direction x :param field: symbolic data whose derivative we are computing :param costheta: cosine of the tilt angle :param sintheta: sine of the tilt angle :param space_order: discretization order :return: rotated second order derivative wrt x

examples.seismic.tti.operators.Gxxyy_centered(field, costheta, sintheta, cosphi, sinphi, space_order)[source]

Sum of the 3D rotated second order derivative in the direction x and y. As the Laplacian is rotation invariant, it is computed as the conventional Laplacian minus the second order rotated second order derivative in the direction z Gxx + Gyy = field.laplace - Gzz :param field: symbolic data whose derivative we are computing :param costheta: cosine of the tilt angle :param sintheta: sine of the tilt angle :param cosphi: cosine of the azymuth angle :param sinphi: sine of the azymuth angle :param space_order: discretization order :return: Sum of the 3D rotated second order derivative in the direction x and y

examples.seismic.tti.operators.Gyy_shifted(field, cosphi, sinphi, space_order)[source]

3D rotated second order derivative in the direction y as an average of two non-centered rotated second order derivative in the direction y :param field: symbolic data whose derivative we are computing :param cosphi: cosine of the azymuth angle :param sinphi: sine of the azymuth angle :param space_order: discretization order :return: rotated second order derivative wrt y

examples.seismic.tti.operators.Gzz_centered(field, costheta, sintheta, cosphi, sinphi, space_order)[source]

3D rotated second order derivative in the direction z :param field: symbolic data whose derivative we are computing :param costheta: cosine of the tilt angle :param sintheta: sine of the tilt angle :param cosphi: cosine of the azymuth angle :param sinphi: sine of the azymuth angle :param space_order: discretization order :return: rotated second order derivative wrt z

examples.seismic.tti.operators.Gzz_centered_2d(field, costheta, sintheta, space_order)[source]

2D rotated second order derivative in the direction z :param field: symbolic data whose derivative we are computing :param costheta: cosine of the tilt angle :param sintheta: sine of the tilt angle :param space_order: discretization order :return: rotated second order derivative wrt z

examples.seismic.tti.operators.Gzz_shifted(field, costheta, sintheta, cosphi, sinphi, space_order)[source]

3D rotated second order derivative in the direction z as an average of two non-centered rotated second order derivative in the direction z :param field: symbolic data whose derivative we are computing :param costheta: cosine of the tilt angle :param sintheta: sine of the tilt angle :param cosphi: cosine of the azymuth angle :param sinphi: sine of the azymuth angle :param space_order: discretization order :return: rotated second order derivative wrt z

examples.seismic.tti.operators.Gzz_shifted_2d(field, costheta, sintheta, space_order)[source]

2D rotated second order derivative in the direction z as an average of two non-centered rotated second order derivative in the direction z :param field: symbolic data whose derivative we are computing :param costheta: cosine of the tilt :param sintheta: sine of the tilt :param space_order: discretization order :return: rotated second order derivative wrt z

examples.seismic.tti.operators.kernel_centered_2d(model, u, v, space_order)[source]

TTI finite difference kernel. The equation we solve is:

u.dt2 = (1+2 *epsilon) (Gxx(u)) + sqrt(1+ 2*delta) Gzz(v) v.dt2 = sqrt(1+ 2*delta) (Gxx(u)) + Gzz(v)

where epsilon and delta are the thomsen parameters. This function computes H0 = Gxx(u) + Gyy(u) Hz = Gzz(v)

Parameters:
  • u – first TTI field
  • v – second TTI field
  • space_order – discretization order
Returns:

u and v component of the rotated Laplacian in 2D

examples.seismic.tti.operators.kernel_centered_3d(model, u, v, space_order)[source]

TTI finite difference kernel. The equation we solve is:

u.dt2 = (1+2 *epsilon) (Gxx(u)+Gyy(u)) + sqrt(1+ 2*delta) Gzz(v) v.dt2 = sqrt(1+ 2*delta) (Gxx(u)+Gyy(u)) + Gzz(v)

where epsilon and delta are the thomsen parameters. This function computes H0 = Gxx(u) + Gyy(u) Hz = Gzz(v)

Parameters:
  • u – first TTI field
  • v – second TTI field
Returns:

u and v component of the rotated Laplacian in 2D

examples.seismic.tti.operators.kernel_shifted_2d(model, u, v, space_order)[source]

TTI finite difference kernel. The equation we solve is:

u.dt2 = (1+2 *epsilon) (Gxx(u)) + sqrt(1+ 2*delta) Gzz(v) v.dt2 = sqrt(1+ 2*delta) (Gxx(u)) + Gzz(v)

where epsilon and delta are the thomsen parameters. This function computes H0 = Gxx(u) + Gyy(u) Hz = Gzz(v)

Parameters:
  • u – first TTI field
  • v – second TTI field
  • space_order – discretization order
Returns:

u and v component of the rotated Laplacian in 2D

examples.seismic.tti.operators.kernel_shifted_3d(model, u, v, space_order)[source]

TTI finite difference kernel. The equation we solve is:

u.dt2 = (1+2 *epsilon) (Gxx(u)+Gyy(u)) + sqrt(1+ 2*delta) Gzz(v) v.dt2 = sqrt(1+ 2*delta) (Gxx(u)+Gyy(u)) + Gzz(v)

where epsilon and delta are the thomsen parameters. This function computes H0 = Gxx(u) + Gyy(u) Hz = Gzz(v)

Parameters:
  • u – first TTI field
  • v – second TTI field
  • space_order – discretization order
Returns:

u and v component of the rotated Laplacian in 3D

examples.seismic.tti.operators.kernel_staggered_2d(model, u, v, space_order)[source]

TTI finite difference. The equation solved is: vx.dt = - u.dx vz.dt = - v.dx m * v.dt = - sqrt(1 + 2 delta) vx.dx - vz.dz + Fh m * u.dt = - (1 + 2 epsilon) vx.dx - sqrt(1 + 2 delta) vz.dz + Fv

examples.seismic.tti.operators.kernel_staggered_3d(model, u, v, space_order)[source]

TTI finite difference. The equation solved is: vx.dt = - u.dx vy.dt = - u.dx vz.dt = - v.dx m * v.dt = - sqrt(1 + 2 delta) (vx.dx + vy.dy) - vz.dz + Fh m * u.dt = - (1 + 2 epsilon) (vx.dx + vy.dy) - sqrt(1 + 2 delta) vz.dz + Fv

examples.seismic.tti.operators.particle_velocity_fields(model, space_order)[source]

Initialize partcle vleocity fields for staggered tti

examples.seismic.tti.operators.second_order_stencil(model, u, v, H0, Hz)[source]

Creates the stencil corresponding to the second order TTI wave equation u.dt2 = (epsilon * H0 + delta * Hz) - damp * u.dt v.dt2 = (delta * H0 + Hz) - damp * v.dt

examples.seismic.tti.tti_example module

examples.seismic.tti.tti_example.run(shape=(50, 50, 50), spacing=(20.0, 20.0, 20.0), tn=250.0, autotune=False, time_order=2, space_order=4, nbpml=10, kernel='centered', **kwargs)[source]
examples.seismic.tti.tti_example.tti_setup(shape=(50, 50, 50), spacing=(20.0, 20.0, 20.0), tn=250.0, space_order=4, nbpml=10, preset='layers-tti', **kwargs)[source]

examples.seismic.tti.wavesolver module

class examples.seismic.tti.wavesolver.AnisotropicWaveSolver(model, source, receiver, space_order=2, **kwargs)[source]

Bases: object

Solver object that provides operators for seismic inversion problems and encapsulates the time and space discretization for a given problem setup.

Parameters:
  • model – Physical model with domain parameters
  • source – Sparse point symbol providing the injected wave
  • receiver – Sparse point symbol describing an array of receivers
  • time_order – Order of the time-stepping scheme (default: 2)
  • space_order – Order of the spatial stencil discretisation (default: 4)

Note: space_order must always be greater than time_order

forward(src=None, rec=None, u=None, v=None, m=None, epsilon=None, delta=None, theta=None, phi=None, save=False, kernel='centered', **kwargs)[source]

Forward modelling function that creates the necessary data objects for running a forward modelling operator.

Parameters:
  • src – Symbol with time series data for the injected source term
  • rec – Symbol to store interpolated receiver data (u+v)
  • u – (Optional) Symbol to store the computed wavefield first component
  • v – (Optional) Symbol to store the computed wavefield second component
  • m – (Optional) Symbol for the time-constant square slowness
  • epsilon – (Optional) Symbol for the time-constant first Thomsen parameter
  • delta – (Optional) Symbol for the time-constant second Thomsen parameter
  • theta – (Optional) Symbol for the time-constant Dip angle (radians)
  • phi – (Optional) Symbol for the time-constant Azimuth angle (radians)
  • save – Option to store the entire (unrolled) wavefield
  • kernel – type of discretization, centered or shifted
Returns:

Receiver, wavefield and performance summary

op_fwd(kernel='shifted', save=False)[source]

Cached operator for forward runs with buffered wavefield

Module contents