- 31 Aug 2022
- 1 Minute to read
- Print
The 2D TVD Solver
- Updated on 31 Aug 2022
- 1 Minute to read
- Print
For rapidly varying flow where hydraulic jumps may occur, Flood Modeller also includes a MacCormack-TVD (total variation diminishing) solver suited to modelling steep changes in velocity and water level. The MacCormack solver uses predictor and corrector steps to compute depth and flow at the new time-step. A TVD term is added to the corrector step to remove numerical oscillations near sharp gradients. The total variation of a variable is defined as (for a 1D example):
The TVD term ensures that the total variation in the solution cannot increase with time. The total variation is a good measure of spatial variations or oscillations in the solution. By reducing this measure, spatial oscillations in the solution are suppressed.
The TVD solver discretises the shallow water equations in a slightly different way to the ADI solver, representing flows at the cell centres, rather than at the edges. Since the TVD solver uses explicit time-stepping, the maximum stable Courant number is around 1. This means a much smaller time-step is often required with the TVD solver to ensure stability.
Since the TVD solver has been designed to be inherently stable at all Froude numbers, the solution methods described in section The ADI solver are not required.The wetting and drying algorithm is also slightly different. A cell dries if its depth drops below the threshold (as with ADI). A dry cell is wetted if:
It has a neighbouring wet cell with a water surface elevation at least 2 x the water depth (dry) threshold higher than the ground level in the dry cell
The depth in the neighbouring cell is more than 2 x the water depth (dry) threshold
In this case, a depth of water equal to the water depth (dry) threshold is moved from the wet neighbour to the dry cell. If more than one neighbour matches the criteria, water is taken from the cell with the highest water level.