  Adaptive mesh refinement (AMR) is often used when solving time-dependent
partial differential equations using numerical methods. It enables time-varying
regions of much higher resolution, which can be used to track discontinuities
in the solution by selectively refining around those areas. The open source
Clawpack software implements block-structured AMR to refine around propagating
waves in the AMRClaw package. For problems where the solution must be computed
over a large domain but is only of interest in a small area this approach often
refines waves that will not impact the target area. We seek a method that
enables the identification and refinement of only the waves that will influence
the target area.
  Here we show that solving the time-dependent adjoint equation and using a
suitable inner product allows for a more precise refinement of the relevant
waves. We present the adjoint methodology in general, and give details on how
this method has been implemented in AMRClaw. Examples for linear acoustics
equations are presented, and a computational performance analysis is conducted.
The adjoint method is compared to AMR methods already available in the AMRClaw
software, and the resulting advantages and disadvantages are discussed. The
code for the examples presented is archived on Github.
