The present invention provides a method, a system and a program storage device containing instructions for simulating the flow of fluid in a physical system using a composition-based extensible object-oriented program. A computer program includes: (i) a framework subsystem providing a graph package, a compute package and a property package; (ii) an engine subsystem including engine subsystem packages for performing numerical simulation, the engine subsystem packages including a linear solver package and a non-linear solver package; and (iii) a set of model components providing physical and numerical modeling behaviors utilized by the engine subsystem, the model components including at least one of a reservoir model, a well model, an aquifer model, a fluid model and a SCAL model. The framework subsystem, the engine subsystem and the model components work with one other to simulate the flow of fluid. Preferably, a partition package is used to create a partition of subsets of node and edge indices which can be used optimize computations by the program.