From 15bebb58deaddc3e7021e7a0d11ada6c7f11e325 Mon Sep 17 00:00:00 2001 From: aheinri5 <Anna@netzkritzler.de> Date: Wed, 24 Feb 2021 10:21:21 +0100 Subject: [PATCH] [base] added overwrite flag to OGS6_Ensemble() --- R/ogs6_ensemble.R | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/R/ogs6_ensemble.R b/R/ogs6_ensemble.R index 76ea859..5bb6b2b 100644 --- a/R/ogs6_ensemble.R +++ b/R/ogs6_ensemble.R @@ -29,7 +29,6 @@ OGS6_Ensemble <- R6::R6Class( assertthat::assert_that(assertthat::is.flag(percentages_mode)) private$.ens_path <- ogs6_obj$sim_path - ogs6_obj$sim_path <- paste0(ogs6_obj$sim_path, ogs6_obj$sim_name) dp_str <- paste(deparse(substitute(parameters)), collapse = "\n") @@ -96,16 +95,20 @@ OGS6_Ensemble <- R6::R6Class( #' internally. For ensembles, output will always be written to logfiles. #'@param parallel flag: Should the function be run in parallel? #' This is implementented via the 'parallel' package. + #' @param overwrite flag: Should existing files be overwritten? #'@param verbose flag run_simulation = function(parallel = FALSE, + overwrite = T, verbose = F){ assertthat::assert_that(assertthat::is.flag(parallel)) + assertthat::assert_that(assertthat::is.flag(overwrite)) assertthat::assert_that(assertthat::is.flag(verbose)) # Create ensemble directory - assertthat::assert_that(!dir.exists(self$ens_path)) - dir.create(self$ens_path) + if(!dir.exists(self$ens_path)){ + dir.create(self$ens_path) + } if(parallel){ @@ -136,6 +139,7 @@ OGS6_Ensemble <- R6::R6Class( ogs6_obj <- ensemble[[i]] r2ogs6::ogs6_run_simulation(ogs6_obj, write_logfile = TRUE, + overwrite = overwrite, verbose = verbose) } @@ -150,6 +154,7 @@ OGS6_Ensemble <- R6::R6Class( parallel::mclapply(self$ensemble, ogs6_run_simulation, write_logfile = TRUE, + overwrite = overwrite, verbose = verbose, mc.cores = n_cores) } @@ -159,6 +164,7 @@ OGS6_Ensemble <- R6::R6Class( exit_codes <- lapply(self$ensemble, ogs6_run_simulation, write_logfile = TRUE, + overwrite = overwrite, verbose = verbose) return(exit_codes) } @@ -362,7 +368,7 @@ OGS6_Ensemble <- R6::R6Class( # Clone object new_ogs6_obj <- private$copy_and_modify(ogs6_obj, orig_sim_name, - (i + 1), + i, orig_sim_path) # Add clone to list of simulation objects @@ -379,10 +385,7 @@ OGS6_Ensemble <- R6::R6Class( # Clone object new_ogs6_obj <- ogs6_obj$clone(deep = TRUE) new_ogs6_obj$sim_name <- paste0(sim_name, "_", sim_id) - new_path <- substr(sim_path, - start = 1, - stop = nchar(sim_path) - 1) - new_ogs6_obj$sim_path <- paste0(new_path, "_", sim_id) + new_ogs6_obj$sim_path <- paste0(sim_path, new_ogs6_obj$sim_name) return(invisible(new_ogs6_obj)) }, -- GitLab