Commit 43705a94 authored by Dorchies David's avatar Dorchies David
Browse files

Merge branch '116-getsd_ids-crashes-on-upstream-nodes-with-diversion' into 'dev'

Resolve "getSD_Ids crashes on upstream nodes with Diversion"

Closes #116

See merge request !57
Showing with 8 additions and 8 deletions
+8 -8
......@@ -65,7 +65,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) {
)
# Adapt RunOptions to step by step simulation and copy states
SD_Ids <- getSD_Ids(x$InputsModel)
SD_Ids <- getSD_Ids(x$InputsModel, add_diversions = TRUE)
names(SD_Ids) <- SD_Ids
for(id in SD_Ids) {
RunOptions[[id]]$IndPeriod_WarmUp <- 0L
......@@ -102,7 +102,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) {
doSupervision(x)
}
# Loop over sub-basin using SD model
for(id in getSD_Ids(x$InputsModel, add_diversion = TRUE)) {
for(id in SD_Ids) {
# Run model for the sub-basin and one time step
RunOptions[[id]]$IniStates <- serializeIniStates(x$OutputsModel[[id]]$StateEnd)
RunOptions[[id]]$IndPeriod_Run <- iTS
......@@ -136,7 +136,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) {
message(" 100%")
for(id in getSD_Ids(x$InputsModel)) {
for(id in SD_Ids) {
x$OutputsModel[[id]]$DatesR <- x$DatesR[IndPeriod_Run]
for (outputVar in outputVars[[id]]) {
x$OutputsModel[[id]][[outputVar]] <- x$storedOutputs[[outputVar]][, id]
......
#' Function to obtain the ID of sub-basins using SD model
#'
#' @param InputsModel \[`GRiwrmInputsModel` object\]
#' @param add_diversion [logical] for adding upstream nodes with diversion
#' @param add_diversions [logical] for adding upstream nodes with diversion
#'
#' @return [character] IDs of the sub-basins using SD model
#' @export
getSD_Ids <- function(InputsModel, add_diversion = FALSE) {
getSD_Ids <- function(InputsModel, add_diversions = FALSE) {
if (!inherits(InputsModel, "GRiwrmInputsModel")) {
stop("Argument `InputsModel` should be of class GRiwrmInputsModel")
}
bSDs <- sapply(InputsModel, function (IM) {
inherits(IM, "SD") | IM$hasDiversion
inherits(IM, "SD") || (add_diversions & IM$hasDiversion)
})
names(InputsModel)[bSDs]
}
......
......@@ -4,12 +4,12 @@
\alias{getSD_Ids}
\title{Function to obtain the ID of sub-basins using SD model}
\usage{
getSD_Ids(InputsModel, add_diversion = FALSE)
getSD_Ids(InputsModel, add_diversions = FALSE)
}
\arguments{
\item{InputsModel}{[\code{GRiwrmInputsModel} object]}
\item{add_diversion}{\link{logical} for adding upstream nodes with diversion}
\item{add_diversions}{\link{logical} for adding upstream nodes with diversion}
}
\value{
\link{character} IDs of the sub-basins using SD model
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment