跳转至

Module: tide.maxwell

Public API

  • class MaxwellTM
  • class Maxwell3D
  • function maxwelltm
  • function maxwell3d

maxwelltm

Signature highlights:

maxwelltm(
    epsilon, sigma, mu,
    grid_spacing, dt,
    source_amplitude, source_location, receiver_location,
    stencil=2, pml_width=20,
    ...,
    python_backend=False,
    storage_mode="device",
    storage_compression=False,
)

Key inputs: - epsilon, sigma, mu: shape [ny, nx] - source_amplitude: [n_shots, n_sources, nt] - source_location: [n_shots, n_sources, 2] - receiver_location: [n_shots, n_receivers, 2]

Return tuple: - Ey, Hx, Hz - m_Ey_x, m_Ey_z, m_Hx_z, m_Hz_x - receiver_amplitudes with shape [nt, n_shots, n_receivers]

Important behavior: - TIDE checks CFL stability and may use an internal smaller time step. - If internal sub-stepping is used, source signals are upsampled and receiver traces are downsampled automatically. - save_snapshots defaults to auto behavior based on gradient requirements.

maxwell3d

Signature highlights:

maxwell3d(
    epsilon, sigma, mu,
    grid_spacing, dt,
    source_amplitude, source_location, receiver_location,
    source_component="ey", receiver_component="ey",
    python_backend=False,
    storage_mode="device",
)

Key inputs: - epsilon, sigma, mu: shape [nz, ny, nx] - source_location: [n_shots, n_sources, 3] - receiver_location: [n_shots, n_receivers, 3] - source_component and receiver_component: one of ex, ey, ez, hx, hy, hz

Return tuple: - Ex, Ey, Ez, Hx, Hy, Hz - 12 CPML memory tensors - receiver_amplitudes

Class Wrappers

  • MaxwellTM and Maxwell3D are torch.nn.Module wrappers that store model tensors and call maxwelltm/maxwell3d in forward.
  • Useful when integrating with training loops that repeatedly propagate on the same model object.

Advanced or Internal Functions

  • prepare_parameters
  • maxwell_func
  • maxwell_python
  • update_E
  • update_H
  • maxwell_c_cuda

Autograd Functions

  • MaxwellTMForwardFunc
  • MaxwellTMForwardBoundaryFunc

Internal Helpers

  • _register_ctx_handle
  • _get_ctx_handle
  • _release_ctx_handle
  • _compute_boundary_indices_flat