mirror of
https://git.gfz-potsdam.de/naaice/poet.git
synced 2025-12-15 20:38:23 +01:00
150 lines
3.3 KiB
R
150 lines
3.3 KiB
R
## Time-stamp: "Last modified 2024-01-12 12:39:14 delucia"
|
|
database <- normalizePath("../share/poet/bench/barite/db_barite.dat")
|
|
input_script <- normalizePath("../share/poet/bench/barite/barite.pqi")
|
|
|
|
#################################################################
|
|
## Section 1 ##
|
|
## Grid initialization ##
|
|
#################################################################
|
|
|
|
n <- 20
|
|
m <- 20
|
|
|
|
types <- c("scratch", "phreeqc", "rds")
|
|
|
|
init_cell <- list(
|
|
"H" = 110.0124,
|
|
"O" = 55.5087,
|
|
"Charge" = -1.216307845207e-09,
|
|
"Ba" = 1.E-12,
|
|
"Cl" = 2.E-12,
|
|
"S(6)" = 6.204727095976e-04,
|
|
"Sr" = 6.204727095976e-04,
|
|
"Barite" = 0.001,
|
|
"Celestite" = 1
|
|
)
|
|
|
|
grid <- list(
|
|
n_cells = c(n, m),
|
|
s_cells = c(1, 1),
|
|
type = types[1],
|
|
init_cell = as.data.frame(init_cell, check.names = FALSE),
|
|
props = names(init_cell),
|
|
database = database,
|
|
input_script = input_script
|
|
)
|
|
|
|
|
|
##################################################################
|
|
## Section 2 ##
|
|
## Diffusion parameters and boundary conditions ##
|
|
##################################################################
|
|
|
|
## initial conditions
|
|
|
|
init_diffu <- list(
|
|
"H" = 110.0124,
|
|
"O" = 55.5087,
|
|
"Charge" = -1.216307845207e-09,
|
|
"Ba" = 1.E-12,
|
|
"Cl" = 2.E-12,
|
|
"S(6)" = 6.204727095976e-04,
|
|
"Sr" = 6.204727095976e-04
|
|
)
|
|
|
|
injection_diff <- list(
|
|
list(
|
|
"H" = 111.0124,
|
|
"O" = 55.50622,
|
|
"Charge" = -3.336970273297e-08,
|
|
"Ba" = 0.1,
|
|
"Cl" = 0.2,
|
|
"S(6)" = 0,
|
|
"Sr" = 0)
|
|
)
|
|
|
|
## diffusion coefficients
|
|
alpha_diffu <- c(
|
|
"H" = 1E-06,
|
|
"O" = 1E-06,
|
|
"Charge" = 1E-06,
|
|
"Ba" = 1E-06,
|
|
"Cl" = 1E-06,
|
|
"S(6)" = 1E-06,
|
|
"Sr" = 1E-06
|
|
)
|
|
|
|
## vecinj_inner <- list(
|
|
## l1 = c(1,20,20),
|
|
## l2 = c(2,80,80),
|
|
## l3 = c(2,60,80)
|
|
## )
|
|
|
|
boundary <- list(
|
|
"N" = c(1,1, rep(0, n-2)),
|
|
## "N" = rep(0, n),
|
|
"E" = rep(0, n),
|
|
"S" = rep(0, n),
|
|
# "W" = rep(0, n)
|
|
"W" = c(1,1, rep(0, n-2))
|
|
)
|
|
|
|
diffu_list <- names(alpha_diffu)
|
|
|
|
vecinj <- do.call(rbind.data.frame, injection_diff)
|
|
names(vecinj) <- names(init_diffu)
|
|
|
|
diffusion <- list(
|
|
init = as.data.frame(init_diffu, check.names = FALSE),
|
|
vecinj = vecinj,
|
|
# vecinj_inner = vecinj_inner,
|
|
vecinj_index = boundary,
|
|
alpha = alpha_diffu
|
|
)
|
|
|
|
#################################################################
|
|
## Section 3 ##
|
|
## Chemistry module (Phreeqc) ##
|
|
#################################################################
|
|
|
|
|
|
## # Needed when using DHT
|
|
dht_species <- c(
|
|
"H" = 7,
|
|
"O" = 7,
|
|
"Charge" = 4,
|
|
"Ba" = 7,
|
|
"Cl" = 7,
|
|
"S(6)" = 7,
|
|
"Sr" = 7,
|
|
"Barite" = 4,
|
|
"Celestite" = 4
|
|
)
|
|
|
|
|
|
|
|
chemistry <- list(
|
|
database = database,
|
|
input_script = input_script,
|
|
dht_species = dht_species
|
|
)
|
|
|
|
#################################################################
|
|
## Section 4 ##
|
|
## Putting all those things together ##
|
|
#################################################################
|
|
|
|
|
|
iterations <- 4
|
|
dt <- 100
|
|
|
|
setup <- list(
|
|
grid = grid,
|
|
diffusion = diffusion,
|
|
chemistry = chemistry,
|
|
iterations = iterations,
|
|
timesteps = rep(dt, iterations),
|
|
store_result = TRUE,
|
|
out_save = seq(1, iterations)
|
|
)
|