R/abiotic.R

Defines functions check_abiotic.forced check_abiotic.null check_abiotic setup_abiotic_forced Abiotic.forced setup_abiotic_null Abiotic.null Abiotic

Documented in Abiotic Abiotic.forced Abiotic.null check_abiotic check_abiotic.forced check_abiotic.null setup_abiotic_forced setup_abiotic_null

# generic methods for exogenous forcing by abiotic factors

#' @title Set up exogenous variables for abiotic forcing
#' @description This method dispatches on the type of `pars$ABIOTIC`.
#' @param t current simulation time
#' @param pars a [list]
#' @return [list]
#' @export
Abiotic <- function(t, pars) {
  UseMethod("Abiotic", pars$ABIOTIC)
}

#' @title Set up exogenous variables for abiotic forcing
#' @description Implements [Abiotic] for the null model of exogenous forcing (do nothing)
#' @inheritParams Abiotic
#' @return [list]
#' @export
Abiotic.null <- function(t, pars) {pars}

#' @title Set up the null model for exogenous forcing (do nothing)
#' @param pars a [list]
#' @return [list]
#' @export
setup_abiotic_null <- function(pars) {
  ABIOTIC <- list()
  class(ABIOTIC) <- 'null'
  pars$ABIOTIC <- ABIOTIC
  return(pars)
}

#' @title Set up exogenous variables for abiotic forcing
#' @description Implements [Abiotic] for abiotic forcing
#' @param t current simulation time
#' @param pars a [list]
#' @return pars a [list]
#' @export
Abiotic.forced <- function(t, pars) {
  pars = Weather(t, pars)
  pars = Hydrology(t, pars)
  return(pars)
}

#' @title Make parameters for the null model of abiotic forcing (do nothing)
#' @param pars a [list]
#' @return [list]
#' @export
setup_abiotic_forced <- function(pars) {
  ABIOTIC <- list()
  class(ABIOTIC) <- 'forced'
  pars$ABIOTIC <- ABIOTIC
  pars = setup_weather_null(pars)
  pars = setup_hydrology_null(pars)
  return(pars)
}

#' @title Check abiotic
#' @param pars a [list]
#' @return [list]
#' @export
check_abiotic <- function(pars) {
  UseMethod("check_abiotic", pars$ABIOTIC)
}

#' @title Check abiotic
#' @param pars a [list]
#' @return [list]
#' @export
check_abiotic.null <- function(pars) {
  setup_abiotic_forced(pars)
}

#' @title Check abiotic
#' @param pars a [list]
#' @return [list]
#' @export
check_abiotic.forced<- function(pars) {pars}
dd-harp/MicroMoB documentation built on June 6, 2024, 4:43 p.m.