Chemical Reaction Simulation via Dynamic Thread Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Simulating multiple chemical reactions that share precursors or reaction products can be computationally intensive and requires accurate handling of dependencies, but as conditions change, some reactions may become independent, necessitating a method to efficiently simulate these reactions independently or concurrently without compromising accuracy.

Innovation Solution

Identifying distinct groups of chemical reactions with non-overlapping precursors and reaction products, and using separate processing threads to iteratively calculate precursor quantities based on reaction kinetics, allowing for concurrent or independent simulation of these groups by distinct processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If chemical reactions that share precursors are simulated independently to reduce simulation time, then productivity is improved, but measurement precision deteriorates because dependency relationships are not accurately captured

Engineering Contradiction:
Improvesimulation timeVSAvoidaccuracy of reaction progress simulation
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent segments the simulation process into distinct phases: an initial phase where reactions sharing precursors are simulated together in a single processing thread to ensure accuracy, and subsequent phases where reactions are divided into separate groups based on precursor exhaustion status, allowing independent simulation in separate processing threads. This segmentation resolves the contradiction by capturing dependencies when they exist while enabling parallelization when they don't.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic adaptation of the simulation architecture by continuously monitoring precursor quantities during simulation. When a shared precursor is exhausted, the system dynamically transitions from coupled simulation (single thread) to decoupled simulation (multiple threads). This dynamic restructuring allows the system to maintain accuracy during dependency periods while achieving productivity gains during independence periods.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If chemical reactions are simulated in concert to maintain accuracy of dependency relationships, then measurement precision is improved, but device complexity increases due to coordination requirements between reactions

Engineering Contradiction:
Improveaccuracy of reaction progress simulationVSAvoidcomplexity of processing thread coordination
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments reactions into groups based on their dependency relationships, creating distinct processing threads for independent reaction groups. This segmentation reduces coordination complexity by eliminating the need to synchronize reactions that don't share precursors, while maintaining accuracy for reactions that do share precursors by keeping them in the same group.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses precursor quantity as an intermediary variable that mediates the interaction between reactions. By monitoring precursor exhaustion status, the system determines when reactions can be independently simulated versus when they require coordinated simulation. This intermediary simplifies the coordination mechanism compared to direct reaction-to-reaction synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If separate processing threads are used for reactions with non-overlapping precursors to enable concurrent simulation, then productivity is improved, but loss of information increases if dependency changes are not properly tracked

Engineering Contradiction:
Improveconcurrent simulation capabilityVSAvoidloss of dependency relationships
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent implements feedback mechanisms where the simulation system continuously monitors precursor quantities and uses this information to dynamically adjust the processing thread structure. When precursor exhaustion occurs, the feedback triggers a reorganization of reaction groups, ensuring that newly independent reactions are properly separated into different threads. This feedback loop prevents information loss by maintaining accurate dependency tracking throughout the simulation.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary identification of reaction groups based on precursor overlap before initiating concurrent simulation. By pre-establishing the grouping structure and processing thread assignments based on initial precursor analysis, the system prepares the simulation architecture to handle concurrent execution while maintaining awareness of potential dependency relationships that may emerge or disappear during simulation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10192010B1Simulation of chemical reactions via multiple processing threads
Publication Date: 2019.01.29 X DEVELOPMENT LLC
  • US10192010B1 patent drawing
  • US10192010B1 patent drawing
  • US10192010B1 patent drawing

AI summary

An example method may include identifying (i) a first group of reactions that corresponds to a first set of precursors and a first set of reaction products and (ii) a second group of reactions that corresponds to a second set of precursors and a second set of reaction products. No precursor in the first set of precursors is also in the second set of precursors, no reaction product in the first set of reaction products is also a precursor in the second set of precursors, and no reaction product in the second set of reaction products is also a precursor in the first set of precursors. The method may also include executing a first processing thread to iteratively calculate respective quantities of the precursors in the first set of precursors and executing a second processing thread to iteratively calculate respective quantities of the precursors in the second set of precursors.