-w <- well(xw = 50, yw = 0, Q = 200)
+w <- well(xw = 55, yw = 0, Q = 200)
uf <- uniformflow(gradient = 0.002, angle = -45, TR = 100)
as <- areasink(xc = 0, yc = 0, N = 0.001, R = 500)
-ml <- aem(k = 10, top = 10, base = 0, n = 0.2, w, uf, as)
+rf <- constant(xc = -1000, yc = 1000, hc = 10)
+ml <- aem(k = 10, top = 10, base = -15, n = 0.2, w, uf, as, rf)
-domega(ml, c(50, 0), c(25, -25))
-#> [1] 0.1664214+1.4021609i 0.6507172-0.1007266i
xg <- seq(-100, 100, length = 5)
yg <- seq(-75, 75, length = 3)
-domega(ml, xg, yg, as.grid = TRUE)
-#> [,1] [,2] [,3]
-#> [1,] 0.2611866+0.18880399i 0.3201397+0.25671010i 0.3373044+0.3977459i
-#> [2,] 0.3036279+0.14142136i 0.4347312+0.14142136i 0.7780411+0.1414214i
-#> [3,] 0.2611866+0.09403872i 0.3201397+0.02613261i 0.3373044-0.1149032i
-#> [,4] [,5]
-#> [1,] 0.1664214+0.5283345i -0.004461651+0.3977459i
-#> [2,] -105.9368740+0.1414214i -0.445198416+0.1414214i
-#> [3,] 0.1664214-0.2454918i -0.004461651-0.1149032i
-discharge(ml, c(50, 0), c(25, -25), z = ml$top)
-#> Warning: Setting Qz values to NA for z above saturated aquifer level or below aquifer base
-#> Qx Qy Qz
-#> [1,] 0.1664214 -1.4021609 NA
-#> [2,] 0.6507172 0.1007266 NA
-discharge(ml, c(50, 0), c(25, -25), z = c(ml$top, 5), magnitude = TRUE)
-#> Warning: Setting Qz values to NA for z above saturated aquifer level or below aquifer base
-#> Qx Qy Qz Q
-#> [1,] 0.1664214 -1.4021609 NA NA
-#> [2,] 0.6507172 0.1007266 -0.01080013 0.6585555
-discharge(ml, xg, yg, z = ml$top, as.grid = TRUE)
-#> Warning: Setting Qz values to NA for z above saturated aquifer level or below aquifer base
+# Discharge vector
+discharge(ml, c(150, 0), c(80, -80), z = -10)
+#> Qx Qy Qz
+#> [1,] 0.02037961 -0.2665091 -0.005060767
+#> [2,] 0.32717248 0.0887621 -0.005097869
+discharge(ml, c(150, 0), c(80, -80), z = c(2, 5), magnitude = TRUE)
+#> Qx Qy Qz Q
+#> [1,] 0.02037961 -0.2665091 -0.01720661 0.2678405
+#> [2,] 0.32717248 0.0887621 -0.02039148 0.3396121
+discharge(ml, xg, yg, z = 2, as.grid = TRUE)
#> , , 1, Qx
#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] 0.2611866 0.3201397 0.3373044 0.1664214 -0.004461651
-#> [2,] 0.3036279 0.4347312 0.7780411 -105.9368740 -0.445198416
-#> [3,] 0.2611866 0.3201397 0.3373044 0.1664214 -0.004461651
+#> [,1] [,2] [,3] [,4] [,5]
+#> [1,] 0.2578228 0.3171573 0.3438149 0.1945904 0.004180247
+#> [2,] 0.2967826 0.4195736 0.7201666 6.5326191 -0.515933946
+#> [3,] 0.2578228 0.3171573 0.3438149 0.1945904 0.004180247
#>
#> , , 1, Qy
#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] -0.18880399 -0.25671010 -0.3977459 -0.5283345 -0.3977459
-#> [2,] -0.14142136 -0.14142136 -0.1414214 -0.1414214 -0.1414214
-#> [3,] -0.09403872 -0.02613261 0.1149032 0.2454918 0.1149032
+#> [,1] [,2] [,3] [,4] [,5]
+#> [1,] -0.18443819 -0.24730419 -0.37991259 -0.5264566 -0.4159899
+#> [2,] -0.14142136 -0.14142136 -0.14142136 -0.1414214 -0.1414214
+#> [3,] -0.09840452 -0.03553852 0.09706987 0.2436139 0.1331472
#>
#> , , 1, Qz
#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] NA NA NA NA NA
-#> [2,] NA NA NA NA NA
-#> [3,] NA NA NA NA NA
+#> [,1] [,2] [,3] [,4] [,5]
+#> [1,] -0.01728591 -0.01746242 -0.01775486 -0.01791021 -0.01750075
+#> [2,] -0.01730880 -0.01756345 -0.01856240 -0.14449874 -0.01783670
+#> [3,] -0.01721822 -0.01729328 -0.01736962 -0.01728292 -0.01705172
#>
-discharge(ml, c(50, 0), c(25, -25), z = ml$top + c(0, 0.5)) # NA for z > top
+discharge(ml, c(150, 0), c(80, -80), z = ml$top + c(-5, 0.5)) # NA for z > water-table
#> Warning: Setting Qz values to NA for z above saturated aquifer level or below aquifer base
-#> Qx Qy Qz
-#> [1,] 0.1664214 -1.4021609 NA
-#> [2,] 0.6507172 0.1007266 NA
+#> Qx Qy Qz
+#> [1,] 0.02037961 -0.2665091 -0.02024307
+#> [2,] 0.32717248 0.0887621 NA
-darcy(ml, c(50, 0), c(25, -25), c(10, 5), magnitude = TRUE)
-#> Warning: Setting Qz values to NA for z above saturated aquifer level or below aquifer base
-#> qx qy qz q
-#> [1,] 0.02936046 -0.2473726 NA NA
-#> [2,] 0.10643688 0.0164757 -0.001766562 0.107719
-darcy(ml, xg, yg, 10, as.grid = TRUE)
-#> Warning: Setting Qz values to NA for z above saturated aquifer level or below aquifer base
-#> , , 1, qx
-#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] 0.03720717 0.04701470 0.05144049 0.02621968 -0.0007083937
-#> [2,] 0.04441782 0.06621384 0.12721532 -58.35119617 -0.0762653892
-#> [3,] 0.03892034 0.04932549 0.05418314 0.02771988 -0.0007496139
-#>
-#> , , 1, qy
-#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] -0.02689595 -0.037699634 -0.06065810 -0.08323910 -0.06315167
-#> [2,] -0.02068857 -0.021539862 -0.02312341 -0.07789644 -0.02422640
-#> [3,] -0.01401304 -0.004026379 0.01845755 0.04089021 0.01930519
-#>
-#> , , 1, qz
-#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] NA NA NA NA NA
-#> [2,] NA NA NA NA NA
-#> [3,] NA NA NA NA NA
-#>
+# Darcy flux
+darcy(ml, c(150, 0), c(80, -80), c(0, 5), magnitude = TRUE)
+#> qx qy qz q
+#> [1,] 0.000840556 -0.010992156 -0.0006261932 0.01104202
+#> [2,] 0.013502552 0.003663251 -0.0008415652 0.01401594
-velocity(ml, c(50, 0), c(25, -25), c(10, 5), magnitude = TRUE, R = 5)
-#> Warning: Setting Qz values to NA for z above saturated aquifer level or below aquifer base
-#> vx vy vz v
-#> [1,] 0.02936046 -0.2473726 NA NA
-#> [2,] 0.10643688 0.0164757 -0.001766562 0.107719
-velocity(ml, xg, yg, 5, as.grid = TRUE, R = 5)
-#> Warning: Setting Qz values to NA for z above saturated aquifer level or below aquifer base
-#> , , 1, vx
-#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] 0.03720717 0.04701470 0.05144049 0.02621968 -0.0007083937
-#> [2,] 0.04441782 0.06621384 0.12721532 -58.35119617 -0.0762653892
-#> [3,] 0.03892034 0.04932549 0.05418314 0.02771988 -0.0007496139
-#>
-#> , , 1, vy
-#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] -0.02689595 -0.037699634 -0.06065810 -0.08323910 -0.06315167
-#> [2,] -0.02068857 -0.021539862 -0.02312341 -0.07789644 -0.02422640
-#> [3,] -0.01401304 -0.004026379 0.01845755 0.04089021 0.01930519
-#>
-#> , , 1, vz
-#>
-#> [,1] [,2] [,3] [,4] [,5]
-#> [1,] -0.0008624020 -0.0010009501 -0.001244860 -0.001387718 -0.001110515
-#> [2,] -0.0009070699 -0.0011307663 -0.002184328 NA -0.001404998
-#> [3,] -0.0008725605 -0.0009590558 -0.001066340 -0.001036064 -0.000871419
-#>
+# Velocity
+velocity(ml, c(150, 0), c(80, -80), c(0, 5), magnitude = TRUE, R = 5)
+#> vx vy vz v
+#> [1,] 0.000840556 -0.010992156 -0.0006261932 0.01104202
+#> [2,] 0.013502552 0.003663251 -0.0008415652 0.01401594
+
+# Complex discharge
+domega(ml, c(150, 0), c(80, -80))
+#> [1] 0.02037961+0.2665091i 0.32717248-0.0887621i
-# For elements
-domega(w, c(50, 0), c(-25, 25))
-#> [1] 0.0000000-1.2732395i 0.5092958+0.2546479i
+# Complex discharge for elements
+domega(w, c(150, 0), c(80, -80))
+#> [1] -0.1960417+0.1650878i 0.1857511-0.2701835i