mogi: Surface deformation from Mogi-type volume sources

Description Usage Arguments Details Author(s) References See Also Examples

Description

Modified from [1]: Computes radial and vertical displacements, ground tilt, and radial and tangential strain on the surface, at radial distances from the top of the source, due to a hydrostatic pressure inside a spherical cavity at some depth in a homogeneous elastic halfspace (center of dilatation). See Mogi (1958).

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
mogi.volume(surface.distance, sphere.depth, Volume.change, ...)

mogi.pressure(
  surface.distance,
  sphere.depth,
  sphere.radius,
  Pressure.change,
  shear.modulus,
  Youngs.modulus,
  nu = 1/4,
  ...
)

.mogi_check(surface.distance, sphere.depth, sphere.radius = NULL)

.mogi_calc(src, surface.distance, sphere.depth, nu = 1/4, verbose = FALSE)

Arguments

surface.distance

numeric; [m] the radial distance (positive away) from the center of the spherical cavity, projected onto the surface

sphere.depth

numeric; [m] depth of the center of the spherical cavity from the surface (positive downward)

Volume.change

numeric; [m^3] volumetric change of the spherical cavity (inflation positive)

...

additional parameters to .mogi_calc

sphere.radius

numeric; [m] radius of the spherical cavity that's inflating or deflating

Pressure.change

numeric; [Pa] hydrostatic pressure change in the spherical cavity (inflation positive)

shear.modulus

numeric; [Pa] elastic shear modulus of the surrounding material, also known as 'rigidity' or Lame”s constant

Youngs.modulus

numeric; [Pa] Young's modulus of elasticity of the surrounding material

nu

numeric; [0-1] Poisson's ratio of the surrounding material

src

numeric; the source strength

verbose

logical; should messages be given?

Details

Strain is reckoned positive for extension. For insight into what a positive tilt is, see Tilt.

Units are shown next to the argument descriptions.

Typical moduli are in the range of 1-10 GPa for shear modulus, and 10-100 GPa for Young's modulus. Note that one gigapascal (GPa) is equal to 10^9 pascal (Pa).

Author(s)

Original Matlab code 'mogi.m' written by Francois Beauducel; AJ Barbour ported to R code.

References

[1] http://www.ipgp.fr/~beaudu/matlab.html#Mogi

Mogi, K. (1958), Relations between the eruptions of various volcanoes and the deformations of the ground surfaces around them, Bull. Earthquake Res. Inst. Univ. Tokyo, 36, 99-134. (http://hdl.handle.net/2261/11909)

See Also

Uniaxial_extension and Tilt

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
library(RColorBrewer)
seq.palfun <- function(n) brewer.pal(n, 'Reds')
div.palfun <- function(n) brewer.pal(n, 'Spectral')
# http://www.ipgp.fr/~beaudu/images/mogi_example.png

x <- y <- unique(sort(c(seq(-2,2,by=0.1), seq(-0.1,0.1,by=0.01))))
theta_r <- cart2pol(expand.grid(x, y))
r <- theta_r[,'Radius']

# calculate the deformation specifying a positive rate of volume-change (inflation)
MV <- mogi.volume(r, 1, 1e-5, verbose=TRUE)

filled.contour(x, y, matrix((MV[,'Ur']), length(x)), asp=1, main='Ur', 
    nlevels = 11, color.palette=div.palfun)
filled.contour(x, y, matrix((MV[,'Uz']), length(x)), asp=1, main='Uz', 
    color.palette=div.palfun, levels=seq(0,2.5e-6, length.out = 11))

filled.contour(x, y, matrix((MV[,'Ett']), length(x)), levels=seq(0,2.5e-6,length.out=9), 
    asp=1, main='Ett', color.palette=seq.palfun)
filled.contour(x, y, matrix((MV[,'Err']), length(x)), zlim=3e-6*c(-1,1), 
    asp=1, main='Err', nlevels = 11)

# There should be a null in the center of the tilt field
filled.contour(x, y, matrix((MV[,'Tilt']), length(x)), 
    asp=1, main='Tilt', levels=seq(0,2.5e-6,length.out=9), color.palette=seq.palfun)

# Calculate the undrained-to-drained effect:
#  first calculate for nu=1/3
MVud <- mogi.volume(r, 1, 1e-5, nu=1/3, verbose=TRUE)
#  then subtract the 1/4 result
Resp.ud <- matrix((MV[,'Uz']), length(x)) - matrix((MVud[,'Uz']), length(x))
filled.contour(x, y, log10(Resp.ud), 
    asp=1, main='Undrained response: Uz', color.palette=seq.palfun, 
    levels=seq(-8,-6.5,length.out=9))
#

#Using values comparable to the previous example, but specifying pressure changes
MP <- mogi.pressure(r, 1, 0.01, 1e10, shear.modulus=3.08e9)
MP2 <- mogi.pressure(r, 1, 0.01, 1e10, Youngs.modulus=10e9)

abarbour/deform documentation built on Feb. 15, 2022, 6:24 p.m.