1. An iterative multi-scale computer-implemented method for use in simulating fluid flow in a subsurface reservoir, the method comprising: executing on one or more data processors: creating a fine grid defining a plurality of fine cells associated with a geological formation of the subsurface reservoir, a coarse grid defining a plurality of coarse cells having interfaces between the coarse cells, the coarse cells being boundaries aggregates of the fine cells such that each coarse cell contains a fine cell that defines a coarse node, and a dual coarse grid defining a plurality of dual coarse control volumes, the dual coarse control volumes being aggregates of the fine cells and having boundaries bounding the dual coarse control volumes; calculating basis functions on the dual coarse control volumes by solving local elliptic problems; calculating correction functions on the dual coarse control volumes by solving the local elliptic problems with fine grid source terms; solving pressure values at the coarse nodes that account for fluxes induced by the correction functions; interpolating the pressure values at the coarse nodes into the fine cells using the basis functions and the correction functions to obtain an interpolated fine grid pressure; and updating the interpolated fine grid pressure using an iterative multi-scale method comprising, for each iteration: (i) applying a smoothing scheme to the fine grid pressure; (ii) using the fine grid pressure that has been smoothed in step (i) to recalculate the correction functions; (iii) applying a restriction operation comprising using the recalculated correction functions from step (ii) to solve for the pressure over the coarse grid; and (iv) applying a prolongation operation to the pressure solved over the coarse grid from step (iii) to reconstruct an updated solution for the fine grid pressure; wherein the pressure calculated using the iterative multi-scale method is used to simulate fluid flow in the subsurface reservoir.