OkadaTorch: A Differentiable Programming of Okada Model to Calculate Displacements and Strains from Fault Parameters
This work provides a tool for researchers in geophysics and related fields to perform gradient-based optimizations and Bayesian inference more efficiently, though it is incremental as it adapts an existing model to a differentiable framework.
The authors tackled the problem of computing displacements and strains from fault parameters by developing OkadaTorch, a differentiable PyTorch implementation of the Okada model, enabling easy gradient computation for applications like fault parameter inversion and integration with scientific machine learning models.
The Okada model is a widely used analytical solution for displacements and strains caused by a point or rectangular dislocation source in a 3D elastic half-space. We present OkadaTorch, a PyTorch implementation of the Okada model, where the entire code is differentiable; gradients with respect to input can be easily computed using automatic differentiation (AD). Our work consists of two components: a direct translation of the original Okada model into PyTorch, and a convenient wrapper interface for efficiently computing gradients and Hessians with respect to either observation station coordinates or fault parameters. This differentiable framework is well suited for fault parameter inversion, including gradient-based optimization, Bayesian inference, and integration with scientific machine learning (SciML) models. Our code is available here: https://github.com/msomeya1/OkadaTorch