Acoustic3D¶
sweep.equations.Acoustic3D ¶
Bases: sweep.equations.base.SecondOrderEquation
Second-order 3-D acoustic wave equation with CPML auxiliary fields.
Three-dimensional generalisation of :class:Acoustic: a pressure-like
field h1 is driven by vp**2 · Laplace(u) (assembled from
separable 1-D Laplacians in z / y / x) and absorbed on every face by a
split-step CPML formulation (cpmlr by default).
Models (constructor input order)
vp(m/s): 3D acoustic P-wave velocity model.
Wavefields
h1(aliases:pressure,p): Primary 3D acoustic pressure-like wavefield; default source and receiver.h2(aliases:pressure_prev): Previous-step pressure-like wavefield (internal).psix: CPML memory variable for the x-derivative term (internal).psiy: CPML memory variable for the y-derivative term (internal).psiz: CPML memory variable for the z-derivative term (internal).zetax: CPML auxiliary wavefield for the x-direction update (internal).zetay: CPML auxiliary wavefield for the y-direction update (internal).zetaz: CPML auxiliary wavefield for the z-direction update (internal).
Defaults
source_type:['h1']receiver_type:['h1']pml_type:'cpmlr'
Build the 3-D acoustic equation operator.
Parameters:
-
spatial_order–FD accuracy order of the spatial Laplacian — e.g.
spatial_order=4is fourth-order accurate. Internally the half-stencil width isM = spatial_order // 2(used for loop bounds and PML padding). Must be an even integer (typical values2, 4, 6, 8, 10, …). Higher orders cut grid dispersion at the cost of more compute per step and a wider PML halo. Performance note (impl='c'on CUDA): the compiled kernels ship template specialisations only forspatial_order ∈ {2, 4, 6, 8}. Above 8 the dispatcher drops to a generic runtime path (order = -1insrc/sweep/csrc/cuda/equations/acoustic3d/forward.cu) which uses more registers and runs noticeably slower. The PyTorch eager path is unaffected. Defaults to 4. -
device–Device for the operator's static kernels (Laplace / gradient coefficients). Use
'cuda'/ atorch.devicewhen running on GPU so the propagator can follow without a host↔device copy. Defaults to'cpu'. -
backend–Array / programming backend,
'torch'or'jax'. When you later wantimpl='c', leave this on'torch'— the compiled CUDA kernels are dispatched through the Torch binding. Defaults to'torch'. -
dim–Stored dimensionality. Always
3for this class; use :class:Acousticfor 2-D. Defaults to 3.
C_NAME
class-attribute
¶
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.str() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.
supports_image_topography
class-attribute
¶
bool(x) -> bool
Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.
supports_image_topography_c
class-attribute
¶
bool(x) -> bool
Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.