MétaCan
Menu
Back to cohort
Record W2152879035 · doi:10.2118/141589-pa

Sequential Quadratic Programming for Solving Constrained Production Optimization–Case Study From Brugge Field

2012· article· en· W2152879035 on OpenAlex

Why this work is in the frame

A frame that forgets how it found something cannot be audited. These are the routes that admitted this work.

affAt least one author lists a Canadian institution in the pinned OpenAlex snapshot.

Bibliographic record

VenueSPE Journal · 2012
Typearticle
Languageen
FieldEngineering
TopicReservoir Engineering and Simulation Methods
Canadian institutionsUniversity of Alberta
FundersSupercomputing Center for Education and Research, University of OklahomaUniversity of Oklahoma
KeywordsSequential quadratic programmingMathematical optimizationReservoir simulationBroyden–Fletcher–Goldfarb–Shanno algorithmQuadratic programmingProduction (economics)ComputationComputer scienceRealization (probability)Well controlCompletion (oil and gas wells)Active set methodOptimization problemMathematicsAlgorithmPetroleum engineeringNonlinear programmingEngineeringNonlinear system

Abstract

fetched live from OpenAlex

Summary Normally only approximately 30% of the oil in a reservoir is extracted during primary production, but using secondary-production methods such as water or gas injection, it is often possible to increase that percentage significantly and maintain the production rate of a reservoir over a longer period of time. In reservoirs under water or gas injection, additional gains can be obtained through an efficient strategy for management of front movement and reservoir sweep. The objective of reservoir production optimization is to maximize an outcome such as sweep efficiency or net present value (NPV) through the control of completion rates or pressures. Using optimization methods, it is possible to compute control settings that result in increased oil production and decreased water production compared with production from standard practices. In this paper, we focus on optimization using sequential quadratic programming (SQP) with an ensemble-based approach to estimate the gradient for the optimization. Although uncertainty in reservoir properties is usually important for the computation of optimal controls, here we use a single realization of the reservoir to evaluate the efficiency of the optimization algorithm. The most expensive aspect of gradient-based optimization is usually the computation of gradients. Most practical production-optimization problems involve large-scale, highly complex reservoir models with thousands of constraints, which makes numerical calculation of the gradient time consuming. Here, we use an ensemble-based approach for finding gradients and use localization to improve estimation of the gradient from a small number of realizations. The Broyden-Fletcher-Goldfarb-Shanno (BFGS) method is used for maximizing the objective function, with the Hessian estimated from a sequence of estimates of the gradient. Improving the gradient approximation using localization results in improvement to the Hessian approximation. A second important aspect of the efficiency of the method is the identification of active constraints. In this paper, we use a method for eliminating nonnegativity constraints to decrease computation time and an updating procedure to solve each iteration of SQP much faster than the base case. Both the speed of the algorithm and the final NPV were increased significantly. We evaluate the method by applying it to optimization of control settings in the Brugge field. Brugge is a 3D synthetic model designed by TNO with 20 vertical producers and 10 vertical peripheral water injectors. All of the producers and injectors are smart wells whose downhole chokes must be adjusted to optimize NPV. The total number of completion flow rates to be controlled is 84 at each timestep, with 40 timesteps (every 6 months). There are 1,200 inequality constraints on total well liquid rates and 3,360 nonnegativity constraints on completion liquid rates. There are also inequality constraints on the bottomhole pressure (BHP) for wells at each time period.

Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.

Full frame distilled prediction

Teacher imitation

Not calibrated prevalence, not ground truth. Human validation pending. Learned from the 10,348 direct Codex labels and 10,348 direct Gemma labels. Candidate is the union of thresholded teacher heads; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels or direct frontier model labels.

metaresearch head score (Codex)0.001
metaresearch head score (Gemma)0.000
Version: codex-gemma-dda1882f352aValidation status: machine_predicted_unvalidated
Candidate categoriesnone
Consensus categoriesnone
DomainCandidate signal: none · Consensus signal: none
Study designCandidate signal: Simulation or modeling · Consensus signal: Simulation or modeling
GenreCandidate signal: Empirical · Consensus signal: none
Teacher disagreement score0.296
Threshold uncertainty score0.490

Codex and Gemma teacher scores by category

CategoryCodexGemma
Metaresearch0.0010.000
Meta-epidemiology (narrow)0.0000.000
Meta-epidemiology (broad)0.0000.000
Bibliometrics0.0000.000
Science and technology studies0.0000.000
Scholarly communication0.0000.000
Open science0.0000.000
Research integrity0.0000.000
Insufficient payload (model declined to judge)0.0000.000

Machine scores (provisional)

The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.

Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.

Opus teacher head0.037
GPT teacher head0.315
Teacher spread0.279 · how far apart the two teachers sit on this one work
Validation statusscore_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from it