Uppsala universitet
BJÖRN's HOME
RESEARCH:
Maximum horizontal stress
CV:
My thesis:
"Crustal stress studies using microearthquakes and boreholes"
As html
As pdf
PERSONAL:
LINKS:
The Swedish National Seismological Network
Geophysics att Uppsala University
The Dep. of Earth Sciences, Uppsala
Normal stress surface  

Calculation of the maximum horizontal stress

 

Software

Here is the software implementation of a function which calculates the direction of maximum horizontal stress using only the directions of the principal stresses and the stress magnitude ratio R = (S1 - S2)/(S1 - S3). The equation used is Equation 11 of Lund and Townend (2007) but with added checks on the suitability of Eq. 11. Implementations are currently available in Python, C, Fortran and Matlab. If you have another favourite computer language, feel free to reimplement the algorithm. If you do, please send me a copy.

Implementations

The SH() function takes the three principal stress axes and a value of R as arguments. It is important that the three stress vectors are orthonormal, i.e. have unit magnitude and are orthogonal to eachother. The SH() function checks for unit magnitudes and normalizes the vectors if they are not of unit length. It also checks for orthogonality but does NOT change the direction of the vectors, only reports if they are not orthogonal. Finally the value of R is checked.

I have some benchmark tensors against which you can check your own code. The first three input tensors are identical to those used in Lund and Townend (2007). In the file, columns 1 and 2 have trend and plunge in degrees, and columns 3, 4 and 5 have the corresponding coordinates in the geographical north, east and down coordinate system. The stress tensors are listed using two lines, on the first is S1 and on the second S3. S2 is calculated with a cross-product. The resulting directions of maximum horizontal stress are here.

If you use this code for work which is intended for publication, please cite the Lund and Townend (2007) paper.

  • Python
    • The SH function
    • A program which takes the trend and plunge of S1 and S3, calculates S2 and then calculates the direction of SH for a range of R-values. You also need the library BL.py.
  • C
    • The SH function
    • A program which reads a file with S1 and S3 principal stress directions, in (NED) coordinates, and calculates the direction of SH for a range of R-values. I have a simple Makefile and the example stress tensors are here.
  • Fortran
    • The SH function , works both under Fortran 77 and Fortran 90.
    • A program which reads a file with S1 and S3 principal stress directions, in (NED) coordinates, and calculates the direction of SH for a range of R-values. This is Fortran 90 code. The example stress tensors are here.
  • Matlab

Updates

  • 10 May 2011: There are a number of reports saying the Matlab code works, so this is now an official release.
  • 18 April 2008: There was a factor of 2 error in the calculation of the second term in the second derivative in all language functions. Correcting this, from a 4 to a 2, did not change any of the results in Lund and Townend (2007). Thanks to Oliver Heidbach and his group for finding this.

Disclaimer

The usual stuff: This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Reading material

The background for the calculation of the direction of the maximum horizontal stress, SH, using only limited information on the stress tensor, can be found in:

Lund B. and J. Townend, 2007, Calculating horizontal stress orientations with full or partial knowledge of the tectonic stress tensor, Geophys. J. Int., 170, 1328 - 1335, doi: 10.1111/j.1365-246X.2007.03468.x

This paper contains examples showing how much the direction of SH varies with different R, and how it varies with the plunge of the largest subhorizontal principal stress. There is also a section in the paper showing the importance of a correct calculation of SH using real data from the Grimsey lineament in north Iceland.

More information on stress, stress inversion and the direction of maximum horizontal stress can be found in my thesis (Lund, 2000). Other, more recent, sources for information on obtaining the state of stress from earthquake data are, for example:

Arnold R. and J. Townend, 2007. A Bayesian approach to estimating tectonic stress from seismological data, Geophys. J. Int., 170, 1336-1356, doi: 10.1111/j.1365-246X.2007.03485.x
Hardebeck J. and A. Michael, 2006. Damped regional-scale stress inversions: Methodology and examples for southern California and the Coalinga aftershock sequence, J. Geophys. Res., 111, B11310, doi: 10.1029/2005JB004144.
Townend, J. and M.D. Zoback, 2006. Stress, strain, and mountain building in central Japan, J. Geophys. Res., 111, B03411, doi:10.1029/2005JB003759.
Boness, N.L. and M.D. Zoback, 2006a. Mapping stress and structurally controlled crustal shear velocity anisotropy in California, Geology, 34, 825-828, doi:10.1130/G22309.1.
Boness,N.L. and M.D. Zoback, 2006b.A multiscale study of the mechanisms controlling shear velocity anisotropy in the San Andreas Fault Observatory at Depth, Geophysics, 71, F131-F146.
Hardebeck, J.L. and E. Hauksson, 2001. Stress orientations obtained from earthquake focal mechanisms: What are appropriate uncertainty estimates?, Bull. Seism. Soc. Am., 91, 250-262.

Last update: 2011-05-10


Department of Earth Sciences/Geophysics, Villavägen 16, SE-752 36 Uppsala, Sweden, +46 18 471 23 90. Email: bjorn.lund (at) geo.uu.se