Composition-Based Reservoir Simulation Architecture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Inheritance-based architectures in reservoir simulation lead to complex and inflexible class hierarchies, limiting code reuse and extensibility, and failing to efficiently handle structured and unstructured grids, which are essential for modern reservoir modeling demands.

Innovation Solution

A composition-based extensible object-oriented program is developed, featuring a framework subsystem, engine subsystem, and model components that separate 'types of connections' from 'computation types,' allowing for dynamic partitioning and easy addition of new compute classes without modifying the entire hierarchy, and supporting unified treatment of structured and unstructured grids.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If inheritance-based architectures are used in reservoir simulation, then code structure is established, but class hierarchy becomes complex and inflexible, limiting code reuse and extensibility

Engineering Contradiction:
Improvecode structure establishmentVSAvoidclass hierarchy complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent segments the monolithic inheritance hierarchy into multiple independent composition-based modules. Each module (e.g., grid module, fluid module, geology module) can be independently developed, modified, and reused without affecting other parts of the system, thereby reducing overall system complexity while maintaining code structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates universal base classes and interfaces that can serve multiple purposes across different simulation contexts. These universal components can be composed in various ways to handle different grid types (structured, unstructured, adaptive), fluid models, and geological configurations, eliminating the need for separate inheritance hierarchies for each case.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Ease of manufacture

If inheritance-based architectures are used, then initial code organization is achieved, but extensibility for new compute classes and grid types is limited

Engineering Contradiction:
Improvecode organizationVSAvoidextensibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic composition where the system can adapt its structure at runtime based on the specific simulation requirements. New compute classes, grid types, and physical models can be dynamically added and composed without requiring modifications to the core inheritance hierarchy, enabling the system to evolve with new research and application needs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces intermediary abstraction layers (interfaces, virtual classes) that mediate between the core simulation engine and specific implementations. These intermediaries provide stable interfaces that allow new compute classes and grid types to be added without disrupting the existing code organization, thereby enhancing extensibility while preserving initial code structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If traditional inheritance hierarchies are used to handle different grid types, then structured grids are supported, but unified treatment of structured and unstructured grids becomes difficult

Engineering Contradiction:
Improvestructured grid supportVSAvoidgrid handling complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent designs universal grid interface classes that can handle both structured and unstructured grids through a unified composition framework. The same base classes and computational kernels can work with different grid types by composing them with appropriate grid-specific implementation modules, eliminating the need for separate inheritance hierarchies for structured and unstructured grids.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses parameter-based configuration to switch between different grid types and treatment methods. By changing parameters and composition configurations rather than modifying the inheritance structure, the system can efficiently handle both structured and unstructured grids with a unified codebase, reducing grid handling complexity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7617082B2Method, system and program storage device for simulating fluid flow in a physical system using a dynamic composition based extensible object-oriented architecture
Publication Date: 2009.11.10 SCHLUMBERGER TECH CORP
  • US7617082B2 patent drawing
  • US7617082B2 patent drawing
  • US7617082B2 patent drawing

AI summary

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.