Computation Graphs for Physics Simulation Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing physics-based simulation software requires manual inspection and modification of complex code to incorporate new operations or models, making it difficult to grasp the overall flow and algorithm, and requiring significant manual effort for memory allocation.

Innovation Solution

The use of computation graphs, specifically directed acyclic graphs (DAGs), to develop software for physics-based simulations, allowing for automatic determination of dependency relationships, scheduling of execution, and memory allocation, thereby simplifying the development process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual inspection and modification of complex code is used to incorporate new operations or models, then the software can be developed, but it requires significant manual effort and makes it difficult to grasp the overall flow and algorithm

Engineering Contradiction:
Improveability to incorporate new operations or modelsVSAvoidcomplexity of code inspection and modification
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the simulation software into a computation graph consisting of discrete computation units (nodes) and data dependencies (edges). Each computation unit represents a specific operation or model, allowing independent modification and incorporation of new operations without affecting the entire codebase. This segmentation enables easier adaptation while maintaining overall system structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a computation graph as an intermediary layer between the user's mathematical model and the underlying simulation engine. This graph structure serves as a mediator that automatically manages data flow, dependencies, and execution ordering, eliminating the need for manual code inspection and modification while incorporating new operations or models.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If explicit lines of code are written to produce solutions, then the simulation can be executed, but the code is not designed to reveal the series of operations except by careful inspection

Engineering Contradiction:
Improveexecution of simulationVSAvoidvisibility of computational procedure
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent creates a visual copy or representation of the computational procedure in the form of a computation graph. This graph visually represents the sequence of operations, data dependencies, and flow of information, making the computational procedure immediately visible without requiring careful inspection of the underlying code. The visual graph serves as a documentation-free specification of the simulation logic.

Inventive Principle:
Principle #26Copying

3Reliability

If careful manual techniques are used to allocate memory, then the simulation software can run, but it requires a great deal of work and manual effort

Engineering Contradiction:
Improvememory allocation correctnessVSAvoidsoftware development speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent enables the computation graph to automatically manage its own memory allocation based on the data dependencies and computational requirements inherent in the graph structure. The system self-determines memory needs for each computation unit and data tensor, eliminating manual memory allocation while ensuring correctness through the structured dependency relationships in the computation graph.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent performs memory allocation planning during the graph construction and optimization phase, before actual simulation execution. By analyzing the computation graph structure in advance, the system pre-determines memory requirements, allocation strategies, and optimization opportunities, eliminating the need for manual intervention during runtime while ensuring reliable memory management.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12340192B2Systems using computation graphs for flow solvers
Publication Date: 2025.06.24 ANSYS INC
  • US12340192B2 patent drawing
  • US12340192B2 patent drawing
  • US12340192B2 patent drawing

AI summary

An embodiment of a method can create a directed acyclic graph (DAG) from a programmer specified set of computation units to solve, in a computer program, physics based simulations of physical systems, and the DAG can be used to analyze and debug the computer program. In this method, the computer program can be created by automatically determining dependency relationships in the set of computation units and automatically schedule their execution. The method can also automatically allocate memory for the computation units.