Pseudo Slack Variables for Sparse Network Constraint Matrices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Simulating fluid flow in oil and gas networks is challenging due to the complexity of determining active constraints, as hundreds or thousands of constraints interact, often resulting in unsolvable singular matrices and inaccurate data.
Innovation Solution
The introduction of pseudo slack variables ensures sparsity in simulation matrices, preventing unsolvable states and reducing computational complexity by modifying equations to make them easier and faster to solve.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional trial and error approach is used to determine active constraints, then completeness of constraint evaluation is improved, but computational cost becomes prohibitively expensive due to repeated matrix factorization
Solution Approach 1:
The patent introduces pseudo slack variables in advance to transform the system of equations before simulation begins. This preliminary transformation ensures that the matrix structure is prepared to avoid singularity, eliminating the need for repeated trial-and-error factorizations during the simulation process.
Solution Approach 2:
Pseudo slack variables act as intermediary elements that mediate between the constraint equations and the system matrix. These variables serve as a bridge that allows the matrix to remain non-singular while still accurately representing the active constraints, thus avoiding computational breakdown without sacrificing evaluation completeness.
2Measurement precision
If multiple interacting constraints are included in the simulation model, then accuracy of network behavior representation is improved, but risk of encountering unsolvable singular matrices increases
Solution Approach 1:
The patent changes the parameter structure of the constraint equations by introducing pseudo slack variables. This parameter transformation modifies the mathematical form of the constraints while preserving their physical meaning, allowing the system to accommodate multiple interacting constraints without creating singular matrices.
Solution Approach 2:
The pseudo slack variables provide a cushioning mechanism that prevents the system from encountering singular matrices. By incorporating these variables beforehand, the patent creates a buffer that absorbs potential mathematical conflicts between multiple constraints, ensuring the system remains solvable throughout the simulation.
3Ease of manufacture
If constraint equations are formulated without pseudo slack variables, then simplicity of equation formulation is maintained, but computational time increases and simulation speed decreases
Solution Approach 1:
The pseudo slack variables are incorporated into the equation formulation in advance, during the model setup phase. This preliminary action transforms the equations once at the beginning, after which the simulation can proceed rapidly without repeated computational overhead, thus improving simulation speed while maintaining formulation simplicity.
Data Source
AI summary
A method for determining active constraint equations in a network of wells and surface facilities includes constructing at least one constraint equation for a connection in the network. Each constraint equation includes a respective slack variable and a respective slack variable multiplier. The method further includes constructing a base equation for the connection. The base equation includes the respective slack variable and another respective slack variable multiplier. The method further includes introducing a pseudo slack variable for another connection in the network such that a Schur complement, of a matrix of constraint and base equations dependent only on slack variable multipliers, is sparse. The method further includes solving for each respective slack variable using the Shur complement matrix. The method further includes adjusting a variable parameter of the network using results from solving for each respective slack variable.


