Title: | Analytic Solutions for (Ground-Water) Boussinesq Equation |
---|---|
Description: | A collection of R functions were implemented from published and available analytic solutions for the One-Dimensional Boussinesq Equation (ground-water). In particular, the function "beq.lin()" is the analytic solution of the linearized form of Boussinesq Equation between two different head-based boundary (Dirichlet) conditions; "beq.song" is the non-linear power-series analytic solution of the motion of a wetting front over a dry bedrock (Song at al, 2007, see complete reference on function documentation). Bugs/comments/questions/collaboration of any kind are warmly welcomed. |
Authors: | Emanuele Cordano |
Maintainer: | Emanuele Cordano <[email protected]> |
License: | GPL (>= 3) |
Version: | 1.0.6 |
Built: | 2024-11-18 05:38:51 UTC |
Source: | https://github.com/ecor/boussinesq |
Analytic solutions for (ground-water) Boussinesq Equation
Emanuele Cordano [email protected]
Analytic exact solution for One-Dimensional Boussinesq Equation in a two-bounded domain with two constant-value Dirichlet Condition
beq.lin( t = 0, x = seq(from = 0, to = L, by = by), h1 = 1, h2 = 1, L = 100, ks = 0.01, s = 0.4, big = 10^7, by = L/100, p = 0.5 )
beq.lin( t = 0, x = seq(from = 0, to = L, by = by), h1 = 1, h2 = 1, L = 100, ks = 0.01, s = 0.4, big = 10^7, by = L/100, p = 0.5 )
t |
time coordinate. |
x |
spatial coordinate. Default is |
h1 |
water surface level at |
h2 |
water surface level at |
L |
length of the domain. |
ks |
Hydraulic conductivity |
s |
drainable pororosity (assumed to be constant) |
big |
maximum level of Fourier series considered. Default is 10^7. |
by |
see |
p |
empirical coefficient to estimate hydraulic diffusivity |
Solutions for the indicated values of x
and t
.
Emanuele Cordano
L <- 1000 x <- seq(from=0,to=L,by=L/100) t <- 4 # 4 days h_sol0 <- beq.lin(x=x,t=t*24*3600,h1=2,h2=1,ks=0.01,L=L,s=0.4,big=100,p=0.0) h_solp <- beq.lin(x=x,t=t*24*3600,h1=2,h2=1,ks=0.01,L=L,s=0.4,big=100,p=0.5) h_sol1 <- beq.lin(x=x,t=t*24*3600,h1=2,h2=1,ks=0.01,L=L,s=0.4,big=100,p=1.0) plot(x,h_sol0,type="l",lty=1,main=paste("Water Surface Elevetion after", t,"days",sep=" "),xlab="x[m]",ylab="h[m]") lines(x,h_solp,lty=2) lines(x,h_sol1,lty=3) legend("topright",lty=1:3,legend=c("p=0","p=0.5","p=1"))
L <- 1000 x <- seq(from=0,to=L,by=L/100) t <- 4 # 4 days h_sol0 <- beq.lin(x=x,t=t*24*3600,h1=2,h2=1,ks=0.01,L=L,s=0.4,big=100,p=0.0) h_solp <- beq.lin(x=x,t=t*24*3600,h1=2,h2=1,ks=0.01,L=L,s=0.4,big=100,p=0.5) h_sol1 <- beq.lin(x=x,t=t*24*3600,h1=2,h2=1,ks=0.01,L=L,s=0.4,big=100,p=1.0) plot(x,h_sol0,type="l",lty=1,main=paste("Water Surface Elevetion after", t,"days",sep=" "),xlab="x[m]",ylab="h[m]") lines(x,h_solp,lty=2) lines(x,h_sol1,lty=3) legend("topright",lty=1:3,legend=c("p=0","p=0.5","p=1"))
Analytic exact solution for Dimentionless (i. e. diffusivity equal to 1 - unity) One Dimensional Heat Equation in a two-bounded domain with two constant-value Dirichlet Conditions
beq.lin.dimensionless( t = 0, x = seq(from = 0, to = L, by = by), big = 1e+05, by = L * 0.01, L = 1 )
beq.lin.dimensionless( t = 0, x = seq(from = 0, to = L, by = by), big = 1e+05, by = L * 0.01, L = 1 )
t |
time coordinate. |
x |
spatial coordinate. Default is |
big |
maximum level of Fourier series considered. Default is 100000. |
by |
see |
L |
length of the domain. It is used if |
Solutions for the specifiied values of x
and t
Emanuele Cordano
Rozier-Cannon, J. (1984), The One-Dimensional Heat Equation, Addison-Wesley Publishing Company, Manlo Park, California, encyclopedia of Mathematics and its applications.
Song et al.'s analytic solution to Boussinesq equation in a 1D semi-infinite domain with a Dirichlet boundary condition
beq.song(t = 0.5, x = 1, s = 0.4, h1 = 1, ks = 0.01, nmax = 4, alpha = 1)
beq.song(t = 0.5, x = 1, s = 0.4, h1 = 1, ks = 0.01, nmax = 4, alpha = 1)
t |
time coordinate. |
x |
spatial coordinate. Default is |
s |
drainable pororosity (assumed to be constant) |
h1 |
water surface level or boundary condition coefficient at |
ks |
Hydraulic conductivity |
nmax |
order of power series considered for the analytic solution solution. Default is 4. |
alpha |
|
The water surface eletion vs time and space obtained by the analytic solution of Boussinesq Equation
For major details, see Song at al, 2007
Emanuele Cordano
Song, Zhi-yao;Li, Ling;David, Lockington. (2007), "Note on Barenblatt power series solution to Boussinesq equation",Applied Mathematics and Mechanics, https://link.springer.com/article/10.1007/s10483-007-0612-x ,doi:10.1007/s10483-007-0612-x
L <- 1000 x <- seq(from=0,to=L,by=L/100) t <- c(4,5,20) # days h_sol1 <- beq.song(t=t[1]*3600*24,x=x,s=0.4,h1=1,ks=0.01,nmax=10,alpha=0) h_sol2 <- beq.song(t=t[2]*3600*24,x=x,s=0.4,h1=1,ks=0.01,nmax=10,alpha=0) h_sol3 <- beq.song(t=t[3]*3600*24,x=x,s=0.4,h1=1,ks=0.01,nmax=10,alpha=0) plot(x,h_sol1,type="l",lty=1, main="Water Surface Elevetion (Song at's solution) ", xlab="x[m]",ylab="h[m]") lines(x,h_sol2,lty=2) lines(x,h_sol3,lty=3) legend("topright",lty=1:3,legend=paste("t=",t,"days",sep=" "))
L <- 1000 x <- seq(from=0,to=L,by=L/100) t <- c(4,5,20) # days h_sol1 <- beq.song(t=t[1]*3600*24,x=x,s=0.4,h1=1,ks=0.01,nmax=10,alpha=0) h_sol2 <- beq.song(t=t[2]*3600*24,x=x,s=0.4,h1=1,ks=0.01,nmax=10,alpha=0) h_sol3 <- beq.song(t=t[3]*3600*24,x=x,s=0.4,h1=1,ks=0.01,nmax=10,alpha=0) plot(x,h_sol1,type="l",lty=1, main="Water Surface Elevetion (Song at's solution) ", xlab="x[m]",ylab="h[m]") lines(x,h_sol2,lty=2) lines(x,h_sol3,lty=3) legend("topright",lty=1:3,legend=paste("t=",t,"days",sep=" "))
Dimensionless solution for one-dimensional derived equation from scaling Boussinesq Equation (Song et al, 2007)
beq.song.dimensionless(xi, xi0, a)
beq.song.dimensionless(xi, xi0, a)
xi |
dimensionless coordinate (see |
xi0 |
displacement of wetting front expressed as dimensionless coordinate (see |
a |
vector of coefficient returned by |
the dimesioneless solution, i.e. the variable
The expession for the dimensionless coordinate (Song at al., 2007) is
and the solution for the dimensionless equation derived by Boussinesq Equation is:
for
, otherwise is 0 .
Emanuele Cordano
Song, Zhi-yao;Li, Ling;David, Lockington. (2007), "Note on Barenblatt power series solution to Boussinesq equation",Applied Mathematics and Mechanics, https://link.springer.com/article/10.1007/s10483-007-0612-x ,doi:10.1007/s10483-007-0612-x
for the dimensionless formula for
in beq.song.dimensionless
Alogorithm for resolution of the series coefficient for the dimensionless formula for
in
beq.song.dimensionless
coefficient.song.solution(n = 4, lambda = 0)
coefficient.song.solution(n = 4, lambda = 0)
n |
approximation order |
lambda |
dimensionless parameter related to |
the series coefficient
For major details, see Song at al, 2007
Emanuele Cordano
Song, Zhi-yao;Li, Ling;David, Lockington. (2007), "Note on Barenblatt power series solution to Boussinesq equation",Applied Mathematics and Mechanics, https://link.springer.com/article/10.1007/s10483-007-0612-x ,doi:10.1007/s10483-007-0612-x