Skip to content

Reduce the number of states by combining the infiltration and evaporation states #2614

@SouthEndMusic

Description

@SouthEndMusic

Say we combine these forcings into outward_forcing. Then the volume update over a timestep of size $\Delta t$ for this combined state for one basin is, with evapotranspiration and infiltration:

$$ V = \int_t^{t + \Delta t} \phi(\tau) \left[A(\tau)ET + I\right]\text{d}\tau $$

where $\phi(t)$ is the reduction factor and $ET$ and $I$ are constant over the timestep. We of course want to split this back into the evaporation update $VET$ and the infiltration update $VI$ such that $V = VET + VI$, but we don't know how to do that exactly. Say we approximate these with a trapezoid integration:

$$ VET^* = \Delta t ET\frac{\phi(t)A(t) + \phi(t + \Delta t)A(t + \Delta t)}{2} $$

$$ VI^* = \Delta t I \frac{\phi(t) + \phi(t + \Delta t)}{2} $$

We want however that our approximated evaporation and infiltration volumes agree with the ODE result $V$ to maintain the water balance. Therefore we scale these results to obtain the final approximation:

$$ VET' = \frac{VET^*}{VET^* + VI^*}V $$

$$ VI' = \frac{VI^*}{VET^* + VI^*}V $$

so that $VET' + VI' = V$.

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreIssues related to the computational core in JuliaperformanceRelates to runtime performance or convergence

    Type

    No type

    Projects

    Status

    To do

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions