The research for this dissertation was completed while studying at the University of British Columbia. This research has resulted in three peer reviewed publications, three expanded conference abstracts, and several auxiliary works. The main focus of my thesis is on a framework for geophysical simulations and inversions that increases quantitative geoscience communication. In 2016, Dr. Oldenburg, Dr. Pidlisecky, Lindsey Heagy and I organized an international conference around this work that was sponsored by the Banff International Research Station; excerpts from the introduction of my thesis were used in the conference proposal.

Chapter \ref{ch:framework} presents a framework for simulation and parameter estimation for geophysical applications. An earlier version of which was published in Cockett et al. (2015), and ideas from this chapter also have been presented at several international conferences (cf. Cockett et al. (2014)Cockett et al. (2015)Cockett et al. (2015)).

Chapter \ref{ch:richards} presents a computationally scalable algorithm for solving inverse problems for hydraulic parameters in vadose zone flow using the Richards equation. This work has been submitted for peer review and the preprint is available on arXiv Cockett et al., 2017; preliminary versions of this research were presented at two conferences Cockett & Haber, 2013Cockett & Haber, 2013.

Chapter \ref{ch:applications} involves several numerical examples, which were inspired by work from my undergraduate thesis, of which two papers were published during the course of my graduate research Pidlisecky et al., 2013Cockett & Pidlisecky, 2014. The forward simulation framework for multi-parameter simulations and inversions in time-domain physical problems used in this chapter was derived from collaborative work between electromagnetics and vadose zone flow Heagy et al., 2016. One of the numerical examples in Chapter \ref{ch:applications} has previously been published in Cockett et al., 2017.

Two of the appendices contain supporting materials on finite volume and several numerical examples and case studies. Appendix \ref{ch:discretize} on finite volume contains work and figures that have been published in a computational tutorial on finite volume Cockett et al., 2016. Additionally, much of this work is supported by course material and instruction from Dr. Eldad Haber, Dr. Uri Ascher, and Dr. Chen Grief Haber, 2015Ascher & Greif, 2011. Appendix \ref{ch:extensions} presents an adaptation of the forward simulation framework published in Heagy et al. (2016) for the Richards equation. This appendix also summarizes conclusions and insights from three extended conference abstracts on electromagnetics and a publication on parametric geologic modelling Heagy et al., 2014Kang et al., 2015Heagy et al., 2015Cockett et al., 2016.

Throughout the course of my graduate research, I have started and contributed to several open source software projects to support, test, and validate the geophysical simulation and inversion framework that is the main focus of my thesis. My main focus with this software was on inheritance, composition, terminology, and the interfaces between simulation and inversion components -- the elements that define the framework. This is demonstrated by my personal contribution of 267,614 lines of code over the last five years, which have been reduced over 4.5 fold to 59,111 lines of code while increasing possibilities and geophysical applications. For an up-to-date, detailed analysis on code contribution and attribution over time, please see: This is perhaps the most salient distinguishment between the focus on framework development as opposed to a script or executable that is aimed at a specific type of geophysical inversion. The major software packages that have been created are:

  1. SimPEG, a framework for simulation and parameter estimation in geophysics (;
  2. discretize, a finite volume package for simulation in the context of inverse problems (; and
  3. pymatsolver, a common interface to several matrix solvers and packages (

These projects have seen significant investment from my colleagues in testing, applying, and expanding the capabilities of the framework to other geophysical applications. This open, collaborative work has involved colleagues across industry, government, and six universities. Currently SimPEG includes methods for: vadose zone flow Cockett et al., 2017; direct current resistivity and induced polarization Kang & Oldenburg, 2016; time-domain and frequency-domain electromagnetics Heagy et al., 2016Heagy et al., 2017; magnetotellurics Rosenkjaer et al., 2016; magnetics and gravity Miller et al., 2017; and several examples of other inverse problems Kang et al., 2017. All software has been released under the permissive MIT license, to encourage reuse, adaptation, and sustained contribution to these ideas.

  1. Cockett, R., Kang, S., Heagy, L. J., Pidlisecky, A., & Oldenburg, D. W. (2015). SimPEG: An open source framework for simulation and gradient based parameter estimation in geophysical applications. Computers & Geosciences, 85, 142–154. 10.1016/j.cageo.2015.09.015
  2. Cockett, R., Kang, S., Heagy, L. J., Pidlisecky, A., Haber, E., & Oldenburg, D. W. (2014). SimPEG: A framework for simulation and parameter estimation in geophysics. SciPy.
  3. Cockett, R., Heagy, L. J., Rosenkjaer, G., & Kang, S. (2015). Development practices and lessons learned in developing SimPEG. AGU Fall Meeting.
  4. Cockett, R., Heagy, L. J., Kang, S., & Oldenburg, D. W. (2015). Coupling geophysical terminology and package development. SciPy.
  5. Cockett, R., Heagy, L. J., & Haber, E. (2017). A numerical method for efficient 3D inversions using Richards equation. arXiv.