Description Usage Arguments See Also Examples
Surface deformation associated with fluid withdrawl
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 | segall85(help = FALSE)
surface_displacement(x, C. = 1, mu. = 1e+09, ...)
.surface_g(x = 0, x_src = 0, z_src = 0, nuu. = 1/3)
timevarying_fluidmass(x, Time, Vdot., L., t., HD., phi.)
timevarying_surface_displacement(
x,
Time,
Vdot.,
B.,
L.,
D.,
HD.,
nuu. = 1/3,
Pt.Sources.x = 0,
x.lim
)
timevarying_porepressure(
x,
z,
Time,
Vdot.,
B.,
L.,
D.,
HD.,
t.,
mu.gpa.,
nu. = 1/4,
nuu. = 1/3,
Pt.Sources.x = 0,
x.lim
)
|
help |
logical; load documentation for |
x |
numeric; spatial coordinate relative to extraction point |
C. |
numeric; units of force, proportional to source strength (e.g., extraction rate) |
mu. |
numeric; the shear modulus in Pascals |
... |
additional arguments passed to |
x_src |
numeric; the horizontal distance from the source |
z_src |
numeric; the depth of the source below the surface |
nuu. |
numeric; the 'undrained' Poisson's ratio (typically 1/3) |
Time |
numeric; the time from xxx |
Vdot. |
numeric; the volumetric flow rate xxx |
L. |
numeric; the xxx |
t. |
numeric; the xxx |
HD. |
numeric; the xxx |
phi. |
numeric; the xxx |
B. |
numeric; the xxx |
D. |
numeric; the xxx |
Pt.Sources.x |
numeric; a vector of point-source locations in the x direction |
x.lim |
numeric; the limit of integration in both the positive and negative directions; if
missing this is based on the absolute maximum of |
z |
numeric; the observation depth |
mu.gpa. |
numeric; the shear modulus in giga-Pascals (GPa) |
nu. |
numeric; the drained Poisson's ratio (typically 1/4) |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | ## Not run:
x. <- c(-10:-2, seq(-1.9,1.9,by=0.1), 2:10)
su <- surface_displacement(x.*1e3, z_src=1e3)
plot(uz ~ x, su, type="b")
## Model the surface displacements for a source at 700m
#
.x. <- sort(unique(c(-7:-3, seq(-3.90,3.90,by=0.15), 3:7)))
su <- surface_displacement(.x.*1e3, C.=1e13, z_src=0.7e3)
## Calculate simple deformation quantities: surface tilt
# and uniaxial horizontal extension
#
sut <- with(su, Tilt(x, z=uz))
sue <- with(su, Uniaxial_extension(x, X=ux))
plot(uz ~ x, su, col=NA, ylim=c(-1,1)*20, xlim=c(-1,1)*7*1e3)
abline(v=0,h=0,col="grey")
lines(uz ~ x, su, type="l", pch=16, cex=1, lwd=2, col="grey")
text(2e3, -5, expression(U[Z]))
lines(ux ~ x, su, type="l", pch=16, col="blue", cex=1, lwd=2)
text(0, 6, expression(U[X]), col="blue", pos=2)
points(uxz.mag ~ x, su, col="red", pch=16, cex=0.6)
text(-3e3, 8, expression(abs(U[XZ])), col="red")
lines(ztilt*1e2 ~ x, sut, type="h", lwd=5, col="lightgreen")
text(-1.1e3, 2, expression("Tilt" == 2%*%dU[Z]/dx), col="dark green", pos=2)
lines(ztilt*1e2 ~ x, sut, lwd=3,col="dark green")
lines(dXdx*1e2 ~ x, sue, type="h", lwd=4, col="grey60")
text(5e2, 2, expression(E[ee] == dU[X]/dx), pos=4)
lines(dXdx*1e2 ~ x, sue, lwd=3)
## A more complicated example: multiple sources and Figs 7,8 from Segall (1985)
mxx <- 50
.x.km. <- sort(unique(c((-1*mxx):-3, seq(-2.90,2.90,by=0.1), 3:mxx)))
.z.km. <- sort(unique(c(seq(0,3,by=0.25),seq(3,12,by=0.75))))
yr <- 365*86400
.time. <- seq(2,10,by=2)*10*yr
.Vdot. <- 2e6/yr # volume rate m^3/yr to m^3/s
.D. <- 1e3 # depth of burial
.L. <- 10e3 # length (Vdot/L is the average rate of fluid extraction per unit length)
.B. <- 0.6 # Skemptons coeff
.c. <- 0.1 # hydraulic diffusivity m^2/s
.Sources.x. <- 1e3*c(0)
.TwoSources.x. <- 1e3*c(0,20)
# for mass computation
.t. <- 100 # thickness
.phi. <- 0.2 #porosity
# for pressure computation
.mu. <- 5.6 #GPa -- shear modulus
## Surface displacements
# perform the integration and make the figure:
# -- single source
zz1 <- timevarying_surface_displacement(.x.km.*1e3, .time., .Vdot.,
.B., .L., .D., .c.,
Pt.Sources.x=.Sources.x.)
matplot(.x.km., zz1*1e3, type="l", col="black",
main="Subsidence, mm, Segall 1985, Fig 8B", sub=Sys.time())
# -- dual sources
zz2 <- timevarying_surface_displacement(.x.km.*1e3, .time., c(1,0.5)*.Vdot.,
.B., .L., .D., .c.,
Pt.Sources.x=.TwoSources.x.)
matplot(.x.km., zz2*1e3, type="l", col="black",
main="Dual-source Subsidence, mm, Segall 1985, Fig 8B", sub=Sys.time())
# -- tilt history for multiple sources
zz2t <- apply(zz2, 2, function(.z.) matrix(Tilt(.x.km.*1e3, z=.z.)$ztilt))
matplot(.x.km., zz2t*1e6, type="l", col="black", main="Tilt")
## Fluid mass content history
zz3 <- timevarying_fluidmass(.x.km.*1e3, .time., .Vdot., .L., .t., .c., phi.=.phi.)
matplot(.x.km., zz3*1e2, type="l", col="black",
main="t.v. Fluid mass change, Segall 1985, Fig 7B")
## Pore pressure changes (computationally expensive!)
zzp <- timevarying_porepressure(.x.km.*1e3, .z.km.*1e3, .time., .Vdot.*c(1,2),
.B., .L., .D., .c., .t., .mu.,
Pt.Sources.x=.TwoSources.x.)
# result is an array of images with the 3rd dimension equal to length(.time.)
layout(matrix(1:6,nr=2, byrow=TRUE))
zl <- c(-10,-1)*1e3
IMF <- function(n){
yrlbl <- paste("\nafter",.time.[n]/yr,"years")
if (n==1){ yrlbl <- paste("Pore Pressure Perturbation", yrlbl) }
image(.x.km.,.z.km.,zzp[,,n], zlim=zl, main=yrlbl)
# Locations of the sources
abline(v=.TwoSources.x./1e3, col="grey40", lwd=2)
# and the depleting layer
abline(h=(.D.+c(-1*.t.,.t.)/2)/1e3, col="grey40", lwd=2)
}
sapply(seq_along(.time.), IMF)
# hack colorbar
plot.new()
plot.window(xlim=c(-10,-1), ylim=c(0,1))
points(cbind(matrix(-10:-1),1), pch=22, cex=3.2, bg=heat.colors(length(-10:-1)))
text(-5.5, 0.95, "kPa", pos=1, font=2)
axis(3, at=-11:0)
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.