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.