Description Usage Arguments Details Author(s) References See Also Examples
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).
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)
|
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 |
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? |
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).
Original Matlab code 'mogi.m' written by Francois Beauducel; AJ Barbour ported to R code.
[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)
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)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.