R: enable control of output after each iteration

This commit is contained in:
Max Luebke 2023-01-24 16:03:54 +01:00
parent 8ba796c178
commit dc75c65b88
3 changed files with 33 additions and 18 deletions

View File

@ -46,6 +46,17 @@ master_init <- function(setup) {
setup$maxiter <- setup$iterations setup$maxiter <- setup$iterations
setup$timesteps <- setup$timesteps setup$timesteps <- setup$timesteps
setup$simulation_time <- 0 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) return(setup)
} }
@ -56,22 +67,22 @@ master_iteration_end <- function(setup) {
iter <- setup$iter iter <- setup$iter
## MDL Write on disk state_T and state_C after every iteration ## MDL Write on disk state_T and state_C after every iteration
## comprised in setup$out_save ## comprised in setup$out_save
# if (store_result) { if (setup$store_result) {
# if (iter %in% setup$out_save) { if (iter %in% setup$out_save) {
nameout <- paste0(fileout, "/iter_", sprintf("%03d", iter), ".rds") nameout <- paste0(fileout, "/iter_", sprintf("%03d", iter), ".rds")
info <- list( info <- list(
tr_req_dt = as.integer(setup$req_dt) tr_req_dt = as.integer(setup$req_dt)
# tr_allow_dt = setup$allowed_dt, # tr_allow_dt = setup$allowed_dt,
# tr_inniter = as.integer(setup$inniter) # tr_inniter = as.integer(setup$inniter)
) )
saveRDS(list( saveRDS(list(
T = setup$state_T, C = setup$state_C, T = setup$state_T, C = setup$state_C,
simtime = as.integer(setup$simtime), simtime = as.integer(setup$simtime),
tr_info = info tr_info = info
), file = nameout) ), file = nameout)
msgm("results stored in <", nameout, ">") msgm("results stored in <", nameout, ">")
# } }
# } }
msgm("done iteration", iter, "/", setup$maxiter) msgm("done iteration", iter, "/", setup$maxiter)
setup$iter <- setup$iter + 1 setup$iter <- setup$iter + 1
return(setup) return(setup)

View File

@ -140,5 +140,7 @@ setup <- list(
diffusion = diffusion, diffusion = diffusion,
chemistry = chemistry, chemistry = chemistry,
iterations = iterations, iterations = iterations,
timesteps = rep(dt, iterations) timesteps = rep(dt, iterations),
store_result = TRUE,
out_save = c(5, iterations)
) )

View File

@ -140,5 +140,7 @@ setup <- list(
diffusion = diffusion, diffusion = diffusion,
chemistry = chemistry, chemistry = chemistry,
iterations = iterations, iterations = iterations,
timesteps = rep(dt, iterations) timesteps = rep(dt, iterations),
store_result = TRUE,
out_save = c(5, iterations)
) )