SiStER: Simple Stokes solver with Exotic Rheologies
SiStER is a Matlab-based, easy-to-use geodynamic modeling code for 2-D problems involving visco-elasto-plastic flow of the lithosphere and mantle. SiStER relies on a finite-difference / marker-in-cell discretization of the (incompressible) Stokes flow equations, with some additional components to handle spontaneous brittle strain localization (faulting) and elastic deformation. It can be used for a wide range of problems, from tectonic rifting to the dynamics of accretionary prisms. The implementation largely follows the methodology of Gerya [2010], and relies on Matlab's capabilities for rapid vector operations and sparse matrix filling. It is partially described in Olive et al. [2016] (please reference this study if you plan on using SiStER for research!), as well as in the attached documentation. SiStER is hosted on a GitHub repository and can be downloaded here. In addition to research applications, SiStER can be a great teaching tool to illustrate the various components of a modern geodynamic modeling code. Its fairly transparent and modular structure makes it easy to modify and improve... so new contributions are always welcome !
SiStER was developed by J.-A. Olive, E. Mittelstaedt, B. Klein, G. Ito, M. Behn, and S. Howell. The development was partially supported by NSF grants OCE-11-54238 (M. Behn); OCE-11-55098 (G. Ito); and an LDEO post-doctoral fellowship (J.-A. Olive).
Analysis of earthquake catalogs
The Matlab function Get_GR_parameters.m determines useful earthquake statistics from a catalog of seismic moments. Assuming the moment of completeness of the catalog is known, this routine fits a Gutenberg-Richter distribution to the data with a maximum likelihood approach [Aki, 1965]. The b-value and seismicity rate are returned. This function also uses a least-squares inversion to fit a tapered Gutenberg-Richter distribution to the data, and returns the associated b-value and cutoff moment [Kagan, 1997]. Finally, it uses various methods proposed by Frohlich [2007] to produce reliable estimates of seismic moment release rates. The auxiliary script synthetic_GR.m can be used to test the function, as it randomly generates earthquake catalogs of known distribution.
eiSPLIT - A suite of MATLAB tools for shear wave splitting
eiSPLIT is a suite of Matlab scripts aimed at conducting shear wave splitting measurements following the eigenvalue-minimization method of Silver and Chan [1991]. The compressed files can be downloaded here, and a user guide with some background on the method can be found here.
Below are individual elements of the eiSPLIT package that may prove helpful to become familiar with the method. The script split.m applies the eigenvalue minimization method to the east- and north- components of a split shear wave in order to estimate the best splitting parameters (fast azimuth and delay time) of the medium that generated it. This script can be tested by running synthetic.m in the same folder. This will generate a synthetic SKS waveform, split it according to prescribed parameters, then unsplit the resulting signals using split.m to estimate said parameters. Note that synthetic.m requires ttshift.m to carry out time-shifting operations.
2-D gravity and magnetic anomalies
The function gpoly.m calculates the vertical gravity anomaly generated by an infinite prism of polygonal section. It is a Matlab rewriting of the FORTRAN routine by Blakely [1995]. You can run buried_cylinder.m in the same folder to benchmark it against the analytical solution for a buried (infinite) cylinder.
The function quadmag.m calculates the magnetic anomaly generated by an infinite prism of quadrilateral section, following Talwani and Heirtzler [1964]. You can run buried_square.m in the same folder to test it with a right-square prism of prescribed magnetization.