diff --git a/R_lib/kin_r_library.R b/R_lib/kin_r_library.R index df57c941d..247a0c807 100644 --- a/R_lib/kin_r_library.R +++ b/R_lib/kin_r_library.R @@ -46,6 +46,17 @@ master_init <- function(setup) { setup$maxiter <- setup$iterations setup$timesteps <- setup$timesteps setup$simulation_time <- 0 + + if (!(exists("setup$store_result"))) { + setup$store_result <- TRUE + } + + if (setup$store_result) { + if (!(exists("setup$out_save"))) { + setup$out_save <- seq(1, setup$iterations) + } + } + return(setup) } @@ -56,22 +67,22 @@ master_iteration_end <- function(setup) { iter <- setup$iter ## MDL Write on disk state_T and state_C after every iteration ## comprised in setup$out_save - # if (store_result) { - # if (iter %in% setup$out_save) { - nameout <- paste0(fileout, "/iter_", sprintf("%03d", iter), ".rds") - info <- list( - tr_req_dt = as.integer(setup$req_dt) -# tr_allow_dt = setup$allowed_dt, -# tr_inniter = as.integer(setup$inniter) - ) - saveRDS(list( - T = setup$state_T, C = setup$state_C, - simtime = as.integer(setup$simtime), - tr_info = info - ), file = nameout) - msgm("results stored in <", nameout, ">") - # } - # } + if (setup$store_result) { + if (iter %in% setup$out_save) { + nameout <- paste0(fileout, "/iter_", sprintf("%03d", iter), ".rds") + info <- list( + tr_req_dt = as.integer(setup$req_dt) + # tr_allow_dt = setup$allowed_dt, + # tr_inniter = as.integer(setup$inniter) + ) + saveRDS(list( + T = setup$state_T, C = setup$state_C, + simtime = as.integer(setup$simtime), + tr_info = info + ), file = nameout) + msgm("results stored in <", nameout, ">") + } + } msgm("done iteration", iter, "/", setup$maxiter) setup$iter <- setup$iter + 1 return(setup) diff --git a/bench/dolo_diffu_inner/dolo_diffu_inner.R b/bench/dolo_diffu_inner/dolo_diffu_inner.R index 73150bb47..ea9ade839 100644 --- a/bench/dolo_diffu_inner/dolo_diffu_inner.R +++ b/bench/dolo_diffu_inner/dolo_diffu_inner.R @@ -140,5 +140,7 @@ setup <- list( diffusion = diffusion, chemistry = chemistry, iterations = iterations, - timesteps = rep(dt, iterations) + timesteps = rep(dt, iterations), + store_result = TRUE, + out_save = c(5, iterations) ) diff --git a/bench/dolo_diffu_inner/dolo_diffu_inner_large.R b/bench/dolo_diffu_inner/dolo_diffu_inner_large.R index caf6fe855..57726d925 100644 --- a/bench/dolo_diffu_inner/dolo_diffu_inner_large.R +++ b/bench/dolo_diffu_inner/dolo_diffu_inner_large.R @@ -140,5 +140,7 @@ setup <- list( diffusion = diffusion, chemistry = chemistry, iterations = iterations, - timesteps = rep(dt, iterations) + timesteps = rep(dt, iterations), + store_result = TRUE, + out_save = c(5, iterations) )