SPH–FV coupling algorithm for solving multi-scale three-dimensional free-surface flows