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