UpdateQsimUpstream.R 1.08 KiB
#' Update InputsModel$Qupstream with simulated upstream flows provided by GriwrmOutputsModels object.
#'
#' @param InputsModel \emph{GriwrmInputsModel} object. See \code{[CreateInputsModel.Griwrm]}.
#' @param OutputsModel \emph{GriwrmOutputsModel} object provided by \code{[RunModel.GriwrmInputsModel]}.
#'
#' @description This function is used by \code{\link{RunModel.GriwrmInputsModel}} and \code{\link{Calibration.GriwrmInputsModel}} in order to provide upstream simulated flows to a node.
#'
#' @return InputsModel object with updated QobsUpsr
#'
UpdateQsimUpstream <- function(InputsModel, OutputsModel) {
  if(length(InputsModel$UpstreamNodes) > 0) {
    for(i in 1:length(InputsModel$UpstreamNodes)) {
      Qupstream1 <- matrix(
          rep(0, length(RunOptions[[InputsModel$id]]$IndPeriod_WarmUp)),
          OutputsModel[[InputsModel$UpstreamNodes[i]]]$Qsim
        ), ncol = 1
      if(i == 1) {
        InputsModel$Qupstream <- Qupstream1
      } else {
        InputsModel$Qupstream <- cbind(InputsModel$Qupstream, Qupstream1)
  return(InputsModel)