A computer-implemented method for controlling tangible equipment based on simulating hydrocarbon migration and accumulation in a subsurface formation, comprising: for each of a plurality of sequential time steps: determining, with one or more hardware processors, a plurality of hydrocarbon mass values, each of the plurality of hydrocarbon mass values associated with a respective grid cell of a plurality of grid cells representing the subsurface formation, determining, with the one or more hardware processors, a plurality of hydrocarbon mass outflow magnitudes for one or more grid cells in the plurality of grid cells, the hydrocarbon mass outflow magnitude for each of the one or more grid cells having an upper bound value based on the hydrocarbon mass value in that grid cell, and updating, with the one or more hardware processors, the plurality of hydrocarbon mass values based on the plurality of hydrocarbon mass outflow magnitudes; the method characterised by: determining, with the one or more hardware processors, whether a set of grid cells in the plurality of grid cells contain an excess mass of hydrocarbon, wherein determining whether a set of grid cells contain an excess mass of hydrocarbon comprises determining, for each grid cell, whether the hydrocarbon mass value associated with the grid cell needs more volume than a pore volume of the grid cell, and in response to determining that a set of grid cells contain an excess mass of hydrocarbon, performing, with the one or more hardware processors, an accumulation process to model filling of a trap associated with the set of grid cells; generating, with the one or more hardware processors, output data based on the accumulation process; and controlling the tangible equipment based on the generated output data. for each of a plurality of sequential time steps: determining, with one or more hardware processors, a plurality of hydrocarbon mass values, each of the plurality of hydrocarbon mass values associated with a respective grid cell of a plurality of grid cells representing the subsurface formation, determining, with the one or more hardware processors, a plurality of hydrocarbon mass outflow magnitudes for one or more grid cells in the plurality of grid cells, the hydrocarbon mass outflow magnitude for each of the one or more grid cells having an upper bound value based on the hydrocarbon mass value in that grid cell, and updating, with the one or more hardware processors, the plurality of hydrocarbon mass values based on the plurality of hydrocarbon mass outflow magnitudes; determining, with one or more hardware processors, a plurality of hydrocarbon mass values, each of the plurality of hydrocarbon mass values associated with a respective grid cell of a plurality of grid cells representing the subsurface formation, determining, with the one or more hardware processors, a plurality of hydrocarbon mass outflow magnitudes for one or more grid cells in the plurality of grid cells, the hydrocarbon mass outflow magnitude for each of the one or more grid cells having an upper bound value based on the hydrocarbon mass value in that grid cell, and updating, with the one or more hardware processors, the plurality of hydrocarbon mass values based on the plurality of hydrocarbon mass outflow magnitudes; the method characterised by: determining, with the one or more hardware processors, whether a set of grid cells in the plurality of grid cells contain an excess mass of hydrocarbon, wherein determining whether a set of grid cells contain an excess mass of hydrocarbon comprises determining, for each grid cell, whether the hydrocarbon mass value associated with the grid cell needs more volume than a pore volume of the grid cell, and in response to determining that a set of grid cells contain an excess mass of hydrocarbon, performing, with the one or more hardware processors, an accumulation process to model filling of a trap associated with the set of grid cells; determining, with the one or more hardware processors, whether a set of grid cells in the plurality of grid cells contain an excess mass of hydrocarbon, wherein determining whether a set of grid cells contain an excess mass of hydrocarbon comprises determining, for each grid cell, whether the hydrocarbon mass value associated with the grid cell needs more volume than a pore volume of the grid cell, and in response to determining that a set of grid cells contain an excess mass of hydrocarbon, performing, with the one or more hardware processors, an accumulation process to model filling of a trap associated with the set of grid cells; generating, with the one or more hardware processors, output data based on the accumulation process; and controlling the tangible equipment based on the generated output data.