esys.downunder.forwardmodels.acoustic Package¶
Forward model for acoustic wave forms
Classes¶
- 
class esys.downunder.forwardmodels.acoustic.AcousticWaveForm(domain, omega, w, data, F, coordinates=None, fixAtBottom=False, tol=1e-10, saveMemory=True, scaleF=True)¶
- Bases: - esys.downunder.forwardmodels.base.ForwardModel- Forward Model for acoustic waveform inversion in the frequency domain. It defines a cost function: - Math: - defect = 1/2 integrate( ( w * ( a * u - data ) ) ** 2 )- where w are weighting factors, data are the measured data (as a 2-comp vector of real and imaginary part) for real frequency omega, and u is the corresponding result produced by the forward model. u (as a 2-comp vector) is the solution of the complex Helmholtz equation for frequency omega, source F and complex, inverse, squared p-velocity sigma: - Math: - -u_{ii} - omega**2 * sigma * u = F- It is assumed that the exact scale of source F is unknown and the scaling factor a of F is calculated by minimizing the defect. - 
__init__(domain, omega, w, data, F, coordinates=None, fixAtBottom=False, tol=1e-10, saveMemory=True, scaleF=True)¶
- initializes a new forward model with acoustic wave form inversion. - Parameters: - domain (Domain) – domain of the model
- w (Scalar) – weighting factors
- data (escript.Dataof shape (2,)) – real and imaginary part of data
- F (escript.Dataof shape (2,)) – real and imaginary part of source given at Dirac points, on surface or at volume.
- coordinates (ReferenceSystemorSpatialCoordinateTransformation) – defines coordinate system to be used (not supported yet)
- tol (positive float) – tolerance of underlying PDE
- saveMemory (bool) – if true stiffness matrix is deleted after solution of PDE to minimize memory requests. This will require more compute time as the matrix needs to be reallocated.
- scaleF (bool) – if true source F is scaled to minimize defect.
- fixAtBottom (bool) – if true pressure is fixed to zero at the bottom of the domain
 
- domain (
 - 
getArguments(sigma)¶
- Returns precomputed values shared by - getDefect()and- getGradient().- Parameters: - sigma ( - escript.Dataof shape (2,)) – a suggestion for complex 1/V**2- Returns: - solution, uTar, uTai, uTu - Return type: - escript.Dataof shape (2,), 3 x- float
 - 
getCoordinateTransformation()¶
- returns the coordinate transformation being used - Return type: - CoordinateTransformation
 - 
getDefect(sigma, u, uTar, uTai, uTu)¶
- Returns the defect value. - Parameters: - sigma (escript.Dataof shape (2,)) – a suggestion for complex 1/V**2
- u (escript.Dataof shape (2,)) – a u vector
- uTar (float) – equalsintegrate( w * (data[0]*u[0]+data[1]*u[1]))
- uTai – equals integrate( w * (data[1]*u[0]-data[0]*u[1]))
- uTu (float) – equalsintegrate( w * (u,u))
 - Return type: - float
- sigma (
 - 
getDomain()¶
- Returns the domain of the forward model. - Return type: - Domain
 - 
getGradient(sigma, u, uTar, uTai, uTu)¶
- Returns the gradient of the defect with respect to density. - Parameters: - sigma (escript.Dataof shape (2,)) – a suggestion for complex 1/V**2
- u (escript.Dataof shape (2,)) – a u vector
- uTar (float) – equalsintegrate( w * (data[0]*u[0]+data[1]*u[1]))
- uTai – equals integrate( w * (data[1]*u[0]-data[0]*u[1]))
- uTu (float) – equalsintegrate( w * (u,u))
 
- sigma (
 - 
getSourceScaling(u)¶
- returns the scaling factor s required to rescale source F to minimize defect - |s * u- data|^2- Parameters: - u ( - escript.Dataof shape (2,)) – value of pressure solution (real and imaginary part)- Return type: - complex
 - 
getSurvey(index=None)¶
- Returns the pair (data, weight) - If argument index is ignored. 
 - 
rescaleWeights(scale=1.0, sigma_scale=1.0)¶
- rescales the weights such that - Math: - integrate( ( w omega**2 * sigma_scale * data * ((1/L_j)**2)**-1) +1 )/(data*omega**2 * ((1/L_j)**2)**-1) * sigma_scale )=scale - Parameters: - scale (positive float) – scale of data weighting factors
- sigma_scale (Scalar) – scale of 1/vp**2 velocity.
 
- scale (positive 
 - 
setUpPDE()¶
- Creates and returns the underlying PDE. - Return type: - lpde.LinearPDE
 
- 
- 
class esys.downunder.forwardmodels.acoustic.ForwardModel¶
- Bases: - object- An abstract forward model that can be plugged into a cost function. Subclasses need to implement - getDefect(),- getGradient(), and possibly- getArguments()and ‘getCoordinateTransformation’.- 
__init__()¶
- Initialize self. See help(type(self)) for accurate signature. 
 - 
getArguments(x)¶
 - 
getCoordinateTransformation()¶
 - 
getDefect(x, *args)¶
 - 
getGradient(x, *args)¶
 
- 
Functions¶
Others¶
- HAVE_DIRECT