TemporalModeling¶

class
pysit.modeling.
TemporalModeling
(solver)[source]¶ Bases:
object
Class containing a collection of methods needed for seismic inversion in the time domain.
This collection is designed so that a collection of likemethods can be passed to an optimization routine, changing how we compute each part, eg, in time, frequency, or the Laplace domain, without having to reimplement the optimization routines.
A collection of inversion functions must contain a procedure for computing: * the foward model: apply script_F (in our notation) * migrate: apply F* (in our notation) * demigrate: apply F (in our notation) * Hessian?
Attributes:  solver : pysit wave solver object
A wave solver that inherits from pysit.solvers.WaveSolverBase
Attributes Summary
modeling_type
solver_type
Methods Summary
adjoint_model
(self, shot, m0, operand_simdata)Solves for the adjoint field. forward_model
(self, shot, m0[, …])Applies the forward model to the model for the given solver. linear_forward_model
(self, shot, m0, m1[, …])Applies the forward model to the model for the given solver. linear_forward_model_kappa
(self, shot, m0, m1)Applies the forward model to the model for the given solver, in terms of a pertubation of kappa. linear_forward_model_rho
(self, shot, m0, m1)Applies the forward model to the model for the given solver in terms of a pertubation of rho. migrate_shot
(self, shot, m0, …[, …])Performs migration on a single shot. Attributes Documentation

modeling_type
¶

solver_type
¶
Methods Documentation

adjoint_model
(self, shot, m0, operand_simdata, imaging_period=1, operand_dWaveOpAdj=None, operand_model=None, return_parameters=[], dWaveOp=None, wavefield=None)[source]¶ Solves for the adjoint field.
For constant density: m*q_tt  lap q = resid, where m = 1.0/c**2 For variable density: m1*q_tt  div(m2 grad)q = resid, where m1=1.0/kappa, m2=1.0/rho, and C = (kappa/rho)**0.5
Parameters:  shot : pysit.Shot
Gives the receiver model for the right hand side.
 operand_simdata : ndarray
Right hand side component in the data space, usually the residual.
 operand_dWaveOpAdj : list of ndarray
Right hand side component in the wave equation space, usually something to do with the imaging component…this needs resolving
 operand_simdata : ndarray
Right hand side component in the data space, usually the residual.
 return_parameters : list of {‘adjointfield’, ‘ic’}
 dWaveOp : ndarray
Imaging component from the forward model.
Returns:  retval : dict
Dictionary whose keys are return_parameters that contains the specified data.
Notes
 q is the adjoint field.
 ic is the imaging component. Because this function computes many of
 the things required to compute the imaging condition, there is an option to compute the imaging condition as we go. This should be used to save computational effort. If the imaging condition is to be computed, the optional argument utt must be present.
 Imaging Condition for variable density has components:
 ic.m1 = u_tt * q ic.m2 = grad(u) dot grad(q)

forward_model
(self, shot, m0, imaging_period=1, return_parameters=[])[source]¶ Applies the forward model to the model for the given solver.
Parameters:  shot : pysit.Shot
Gives the source signal approximation for the right hand side.
 m0 : solver.ModelParameters
The parameters upon which to evaluate the forward model.
 return_parameters : list of {‘wavefield’, ‘simdata’, ‘dWaveOp’}
Returns:  retval : dict
Dictionary whose keys are return_parameters that contains the specified data.
Notes
 u is used as the target field universally. It could be velocity potential, it could be displacement, it could be pressure.
 utt is used to generically refer to the derivative of u that is needed to compute the imaging condition.
Forward Model solves:
For constant density: m*u_tt  lap u = f, where m = 1.0/c**2 For variable density: m1*u_tt  div(m2 grad)u = f, where m1=1.0/kappa, m2=1.0/rho, and C = (kappa/rho)**0.5

linear_forward_model
(self, shot, m0, m1, return_parameters=[], dWaveOp0=None)[source]¶ Applies the forward model to the model for the given solver.
Parameters:  shot : pysit.Shot
Gives the source signal approximation for the right hand side.
 m0 : solver.ModelParameters
The parameters upon where to center the linear approximation.
 m1 : solver.ModelParameters
The parameters upon which to apply the linear forward model to.
 return_parameters : list of {‘wavefield1’, ‘dWaveOp1’, ‘dWaveOp0’, ‘simdata’}
Values to return.
 u0tt : ndarray
Derivative field required for the imaging condition to be used as right hand side.
Returns:  retval : dict
Dictionary whose keys are return_parameters that contains the specified data.
Notes
 u1 is used as the target field universally. It could be velocity potential, it could be displacement, it could be pressure.
 u1tt is used to generically refer to the derivative of u1 that is needed to compute the imaging condition.
 If u0tt is not specified, it may be computed on the fly at potentially high expense.

linear_forward_model_kappa
(self, shot, m0, m1, return_parameters=[], dWaveOp0=None)[source]¶ Applies the forward model to the model for the given solver, in terms of a pertubation of kappa.
Parameters:  shot : pysit.Shot
Gives the source signal approximation for the right hand side.
 m0 : solver.ModelParameters
The parameters upon where to center the linear approximation.
 m1 : solver.ModelParameters
The parameters upon which to apply the linear forward model to.
 return_parameters : list of {‘wavefield1’, ‘dWaveOp1’, ‘dWaveOp0’, ‘simdata’}
Values to return.
 u0tt : ndarray
Derivative field required for the imaging condition to be used as right hand side.
Returns:  retval : dict
Dictionary whose keys are return_parameters that contains the specified data.
Notes
 u1 is used as the target field universally. It could be velocity potential, it could be displacement, it could be pressure.
 u1tt is used to generically refer to the derivative of u1 that is needed to compute the imaging condition.
 If u0tt is not specified, it may be computed on the fly at potentially high expense.

linear_forward_model_rho
(self, shot, m0, m1, return_parameters=[], dWaveOp0=None, wavefield=None)[source]¶ Applies the forward model to the model for the given solver in terms of a pertubation of rho.
Parameters:  shot : pysit.Shot
Gives the source signal approximation for the right hand side.
 m0 : solver.ModelParameters
The parameters upon where to center the linear approximation.
 m1 : solver.ModelParameters
The parameters upon which to apply the linear forward model to.
 return_parameters : list of {‘wavefield1’, ‘dWaveOp1’, ‘dWaveOp0’, ‘simdata’}
Values to return.
 u0tt : ndarray
Derivative field required for the imaging condition to be used as right hand side.
Returns:  retval : dict
Dictionary whose keys are return_parameters that contains the specified data.
Notes
 u1 is used as the target field universally. It could be velocity potential, it could be displacement, it could be pressure.
 u1tt is used to generically refer to the derivative of u1 that is needed to compute the imaging condition.
 If u0tt is not specified, it may be computed on the fly at potentially high expense.

migrate_shot
(self, shot, m0, operand_simdata, imaging_period, operand_dWaveOpAdj=None, operand_model=None, dWaveOp=None, adjointfield=None, dWaveOpAdj=None, wavefield=None)[source]¶ Performs migration on a single shot.
Parameters:  shot : pysit.Shot
Shot for which to compute migration.
 operand : darray
Operand, i.e., b in (F^*)b.
 dWaveOp : list
Imaging condition components from the forward model for each receiver in the shot.
 qs : list
Optional return list allowing us to retrieve the adjoint field as desired.