  We describe a novel framework for estimating subsurface properties, such as
rock permeability and porosity, from time-lapse observed seismic data by
coupling full-waveform inversion, subsurface flow processes, and rock physics
models. For the inverse modeling, we handle the back-propagation of gradients
by an intrusive automatic differentiation strategy that offers three levels of
user control: (1) at the wave physics level, we adopted the discrete adjoint
method in order to use our existing high-performance FWI code; (2) at the rock
physics level, we used built-in operators from the $\texttt{TensorFlow}$
backend; (3) at the flow physics level, we implemented customized PDE operators
for the potential and nonlinear saturation equations. These three levels of
gradient computation strike a good balance between computational efficiency and
programming efficiency, and when chained together, constitute a coupled inverse
system. We use numerical experiments to demonstrate that (1) the three-level
coupled inverse problem is superior in terms of accuracy to a traditional
decoupled inversion strategy; (2) it is able to simultaneously invert for
parameters in empirical relationships such as the rock physics models; and (3)
the inverted model can be used for reservoir performance prediction and
reservoir management/optimization purposes.
