specfem::medium::compute_frechet_derivatives

template<typename PointPropertiesType, typename AdjointPointVelocityType, typename AdjointPointAccelerationType, typename BackwardPointDisplacementType, typename PointFieldDerivativesType>
auto specfem::medium::compute_frechet_derivatives(const PointPropertiesType &properties, const AdjointPointVelocityType &adjoint_velocity, const AdjointPointAccelerationType &adjoint_acceleration, const BackwardPointDisplacementType &backward_displacement, const PointFieldDerivativesType &adjoint_derivatives, const PointFieldDerivativesType &backward_derivatives, const type_real &dt)

Compute Fréchet derivatives for seismic inversion kernels.

Calculates sensitivity kernels used in adjoint-based seismic inversion by computing derivatives of wavefield observables with respect to material parameters.

auto kernels = compute_frechet_derivatives(
    properties, adjoint_vel, adjoint_acc,
    backward_disp, adj_deriv, back_deriv, dt);

Template Parameters:
  • PointPropertiesType – Material properties at a point

  • AdjointPointVelocityType – Adjoint velocity field

  • AdjointPointAccelerationType – Adjoint acceleration field

  • BackwardPointDisplacementType – Backward displacement field

  • PointFieldDerivativesType – Field spatial derivatives

Parameters:
  • properties – Material properties (density, elastic moduli)

  • adjoint_velocity – Adjoint velocity field

  • adjoint_acceleration – Adjoint acceleration field

  • backward_displacement – Backward displacement field

  • adjoint_derivatives – Spatial derivatives of adjoint field

  • backward_derivatives – Spatial derivatives of backward field

  • dt – Time step size

Returns:

Sensitivity kernels for material parameters

Implementation Details