Math / Num Documentation#
smash
is a computational software framework dedicated to Spatially distributed Modelling and
ASsimilation for Hydrology, enabling to tackle spatially distributed differentiable hydrological
modeling, with learnable parameterization-regionalization. This platform enables to combine vertical and
lateral flow operators, either process-based conceptual or hydrid with neural networks, and perform high
dimensional non linear optimization from multi-source data. It is designed to simulate discharge hydrographs
and hydrological states at any spatial location within a basin and reproduce the hydrological response of
contrasted catchments, both for operational forecasting of floods and low flows, by taking advantage of
spatially distributed meteorological forcings, physiographic data and hydrometric observations.
smash
is a modular platform, open source and is designed for collaborative research and operational applications.
It is based on a computationally efficient Fortran kernel enabling parallel computations over large domains, and that is automatically differentiable with the Tapenade engine [Hascoet and Pascual, 2013] to generate the numerical adjoint model. The adjoint model enables to compute acurately the gradient of a cost function to high dimensional (spatially distributed) parameters and to perform optimization and learning.
It is interfaced in Python using f90wrap [Kermode, 2020] to (i
) provide a user-friendly and versatile interface for quick learning
and efficient development of research and applications, as well as to (ii
) directly make accessible the wealth of Python modules and libraries developped by a large and active community (Data pre/post-Processing, Geographic Information System, Deep Learning, etc).
This documentation details the conceptual basis and mathematical basis of the forward and inverse modeling problems, their numerical resolution along with optimization and estimation algorithms.