Source-linked AI summary

GPU-accelerated wind farm layout search with a distilled endogenous wake model (EndoWake)

Martina Fischetti, Matteo Fischetti

arXiv:2610.07844v1math.OCcs.CE

TL;DR

Accurate wake computation is too slow for wind-farm layout search. The paper uses EndoWake to screen candidate moves for a PyWake objective, then reports comparable search value to PyWake alone at 7.9 times less time and annual energy at 14.9 times less time.

  • Problem

    Accurate wake models are too time-consuming for layout searches that evaluate millions of layouts, while annual energy makes even fractional gains worth contesting.

    Source: §1 · pp. 1–2
  • Method

    EndoWake models grid-cell wind speeds as decision variables linked to upwind neighbors by linear constraints, and its GPU ranking screens local-search moves that PyWake confirms.

    Source: §1 · pp. 2, 4, §7 · p. 24
  • Results

    On twenty unseen starts, screen-and-confirm matches the PyWake value of a PyWake-alone search 7.9 times faster, and is 14.9 times faster on annual energy.

    Source: §8 · p. 29
  • Takeaways & Limitations

    A more faithful wake field does not by itself produce better layouts; EndoWake throughput pays when it screens moves for a shared PyWake objective.

    Source: §1 · p. 3

    Evidence is conditional on one site, and RANS comparisons on one inflow and speed; the kernel omits farm-scale blockage, shear, veer, meandering, and added turbulence.

    Source: §8 · p. 29

Abstract

from arXiv · show

Wind farm layout optimization decides where to place turbines to maximize annual energy production, and wake effects decide how much of that energy is produced. Accurate wake models are too slow for a search. We build on EndoWake, an endogenous wake model in which the wind speed at every grid cell is a variable linked to its upwind neighbors by linear constraints, so that wake field, siting decisions and project constraints share one mixed-integer model. Its four parameters are calibrated once against the single-wake field of a Reynolds-averaged Navier-Stokes (RANS) simulation, and a GPU scores over a million layouts per second per wind direction. Comparing EndoWake-guided searches with a PyWake-based pipeline at Lillgrund, under a RANS judge that no search calls, revealed that the fidelity of a wake model is not the quality of the layouts optimized under it. A search is drawn to the gaps between sampled wind directions, the sirens; a diagnostic of the field finds a second artifact, an optimistic band off each wake edge, the mermaid cells, not reported before to our knowledge. Judged at random directions, the two pipelines are statistically indistinguishable. Our main result puts this speed to use: EndoWake screens the candidate moves of a local search on the GPU, and PyWake confirms every accepted move. On twenty unseen starts, with one GPU and thirty CPU processes, this screen-and-confirm search matches the PyWake value of a search on PyWake alone 7.9 times faster, and 14.9 times faster on the annual energy.

1 Introduction

EndoWake embeds wake propagation in turbine siting, but a more faithful wake field does not necessarily produce better layouts. The paper uses that model’s speed to screen moves while retaining PyWake as the search objective and confirmer.

1 Introduction

  • EndoWake makes cell wind speeds continuous variables linked to upwind neighbors by linear constraints, so wake propagation and binary siting decisions share a mixed-integer model.Its four parameters are calibrated against an isolated-turbine deficit field.Source: §1 · p. 2
  • Calibration needs only a single-machine deficit field, and the GPU evaluator scores 1 093 103 layouts per second for one wind direction.The model also accommodates linear siting conditions such as zone caps, exclusions, site costs, and blocked cells.Source: §1 · p. 3
  • At random RANS-judged directions, EndoWake- and PyWake-guided layouts were statistically indistinguishable, despite a sector-center advantage turning into a deficit between sampled directions.The authors call the gaps that attract a search between sampled directions “sirens.”Source: §1 · p. 4
  • The discretized EndoWake field is optimistic in “mermaid cells,” a band half to one diameter off wake axes, at both tested cell sizes.The field diagnostic is independent of any search and can be checked on other grid-based propagators.Source: §1 · p. 4
  • 7.9 times faster on expected power and 14.9 times faster on annual energy, screen-and-confirm matched PyWake-only search values on twenty held-out Lillgrund starts.EndoWake ranked candidate moves on one GPU; PyWake confirmed every accepted move.Source: §1 · p. 4
  • The planner-facing contribution is to use a distilled model to choose which moves a trusted model examines, without replacing the trusted objective.The shortlist size is based on measured model evaluation rates.Source: §1 · p. 4

2 State of the art: wake models and layout methods

Prior layout methods use approximate wake models, optimization frameworks, or cheaper surrogates to reduce evaluation costs. EndoWake’s distinction is to put the propagating wake field into the same binary-variable formulation as siting constraints.

2.1 Layout methods

  • Discrete site-selection methods price wakes through precomputed pairwise deficits, while continuous-coordinate methods such as TOPFARM and FLORIS optimize positions using gradients.FLOWERS removes rose discretization while retaining linear superposition and free-stream thrust approximations.Source: §2.1 · pp. 5–6
  • EndoWake writes a local, one-sided discretized propagation into the program and calls a heavy CFD model offline for calibration, unlike CFD-in-the-loop approaches.The reviewed alternatives include adjoint methods and a precomputed-state approach.Source: §2.1 · p. 6
  • EndoWake adds wake propagation as linear constraints on binary site variables, unlike the reviewed cheaper-model approaches that provide evaluators called from outside the optimizer.The formulation can place counts, site costs, obstacles, exclusions, and wakes together.Source: §2 · p. 5, §2.1 · pp. 6–7
  • Multifidelity search has precedents in Jasa et al. and Zhang et al., but Section 7 combines GPU batch screening with a PyWake-confirmed shortlist.The shortlist is sized using measured evaluation rates, and PyWake decides every acceptance.Source: §2.1 · p. 7

3 EndoWake, and the setup of the experiments

EndoWake treats grid-cell wind speeds as decision variables propagated downstream by a fixed stencil, then embeds the field and turbine siting in an optimization model. Experiments use a forward sweep to evaluate the field and specify common wind, turbine, and cost settings.

3 EndoWake, and the setup of the experiments

  • A forward sweep over the grid evaluates each EndoWake layout, while the model carries cell speeds as decision variables propagated by a linear stencil.The stencil has three parameters; planner constraints can be added without changing the propagation rule.Source: §3 · p. 7

3.1 Wind as a variable, and the stencil that moves it

  • The stencil combines upwind-cell speeds with a recovery term; α and β control lateral diffusion, while γ controls recovery.Its convex-combination rule cannot create wind or drive speeds negative.Source: §3.1 · p. 7

3.2 The model

  • The MILP combines wake propagation, turbine siting, power conversion, and separation constraints, with |A| binary variables and O(|S| |C|) continuous variables and constraints besides separation.A forward sweep gives the greatest feasible field for objectives non-decreasing in wind speed; the paper also tests a one-cell correction in specified search arms.Source: §3.2 · pp. 8–9

3.3 Wind roses

  • For oblique wind directions, propagation advances along the dominant axis, preserving an acyclic dependency graph so each scenario is still evaluated by one sweep.The kernel is rescaled to match diffusion and recovery per unit length.Source: §3.3 · p. 10

3.4 Experimental setup

  • Most experiments use a 3 MW idealized turbine, 3D minimum separation, zero installation costs, and synthetic 10 m/s wind scenarios; specified experiments use measured climates or alternate settings.Energy is generally expected power averaged over rose scenarios; Section 6 and annual energy in Section 7 are exceptions.Source: §3.4 · pp. 10–11

4 How a heavy CFD model is distilled into EndoWake

The paper distills a steady RANS wake into a four-parameter EndoWake kernel, then evaluates its fit, throughput, and behavior on interacting machines. The kernel is comparable to a fitted Gaussian wake on a single wake and enables high-throughput GPU scoring.

4.4 The distillate on a GPU

  • 1,093,103 layouts per second on one direction: the batched GPU evaluator scores EndoWake layouts rapidly.The kernel reproduces the RANS wake to 6.7% at Δ = D/3 and 9.4% at Δ = D; single-precision rounding is about 10^-7, and none of 496 checked pairwise comparison signs changed.Source: §4 · p. 11, §4.4 · p. 15

4.1 The recipe: what a calibration consumes

  • Calibration uses an isolated-turbine deficit field sampled from 3 D to 12 D behind the rotor, and the fitted parameters depend on cell size.The fit must match site turbulence; the kernel’s finite support and exponential recovery also differ structurally from linear wake widening and polynomial decay.Source: §4.1 · pp. 11–12, §4.3 · p. 14

4.2 The reference: a steady RANS

  • The steady RANS reference is a judge for final layouts, not a measurement of site performance or an evaluator for a search.It scores farm power at one speed over six or twelve directions, not annual energy production, and its closure, grid, and errors limit its ranking reliability.Source: §4.2 · pp. 12–13

4.3 One field, two models

  • On a single wake, EndoWake is about as faithful as a Gaussian wake fitted on the same field, with relative accuracy depending on cell size.At Δ = D/3 EndoWake reproduces the RANS reference to 6.7%; its residual is 9.4% at Δ = D, while the fitted Gaussian residual is 7.3% there. At Δ = D/2, the injected source is geometrically too narrow for the rotor footprint.Source: §4.3 · pp. 13–14

4.4 The distillate on a GPU

  • On an entry-level mobile GPU, fused batching sustains 60,130 layouts per second under the twelve-sector Lillgrund rose.That is a factor of 578 over one layout at a time; these batch-throughput measurements are not search speedups.Source: Table 4 · p. 14, §4.4 · p. 15

4.5 What the distillate gets right on interacting machines

  • For merged wakes, EndoWake predicts an integral 1.04–1.21 times the RANS integral across tested stations and cell sizes.The finer cell is closer, but EndoWake’s largest profile error exceeds those of both Gaussian summation conventions.Source: §4.5 · p. 15
  • At 3 D, EndoWake’s higher-order interaction error is 5.8%, versus 95.9% for a linear reconstruction from pairwise coefficients.The advantage is not monotone in spacing, and below the calibration window single-wake calibration error takes over.Source: §4.5 · p. 15
  • EndoWake ranks local-search moves lowest by Kendall’s τb among five evaluators, while its share of correctly signed moves varies by condition.The sampled pairs come from a few searches per condition and are not independent replicates.Source: §4.5 · pp. 15–16

5 Optimizing with the operator’s constraints, at industrial size

The section tests EndoWake optimization with operator constraints and at industrial scale. On small grids, local search generally agrees closely with MILP optimization, while industrial-scale heuristic comparisons depend on whether turbine count is fixed or chosen.

5.1 One model, three solvers, and the operator’s constraints

  • Within 0.169%, vanilla local search matches MILP layouts across the small-grid ladder, although SOS2 optimization closes only on some smallest-grid seeds.The upper concave-envelope relaxation certifies ladder layouts to within 8.75% of the exact optimum.Source: §5.1 · p. 16

5 Optimizing with the operator’s constraints, at industrial size

  • Zone caps, exclusion areas, and site-dependent costs are linear in the selection binaries and leave propagation and power blocks unchanged.The section’s optimization experiments use local search and commercial solvers to test the formulation under these operator constraints.Source: §5.1 · p. 16, §5 · p. 16

5.1 One model, three solvers, and the operator’s constraints

  • Non-convex regions preserve local-search and exact-solve agreement within 0.005%, while free cardinality weakens the certificate, with one declared gap reaching 486%.The free-cardinality gap concerns the certificate, not the layout.Source: §5.1 · p. 16
  • On 12 globally constrained instances, local search is better on average but loses more than 5% in two cases, with a worst loss of 11.3%.The authors attribute the negative tail to a one-exchange neighborhood that cannot add a turbine against a binding side constraint; they caution that this conclusion is narrow and does not establish that global constraints generally require a MILP.Source: §5.1 · pp. 16–17

5.2 Industrial sizes

  • 2.5 ms suffices to evaluate a 201-turbine layout exactly on the 200×200 grid; the largest instance’s layout is produced within ten minutes on a laptop.The industrial-size comparison gives two heuristics 600 seconds per run and three independent seeds each.Source: §5.2 · p. 17, Table 5 · p. 17
  • Across three fixed-capacity grids, Hexaly leads Vanilla LS++ by 0.1%–0.2% on mean seed value, with each stable within 0.1%.The authors caution that close agreement corroborates the searches but does not prove optimality; the objective is flat in this setting.Source: §5.2 · p. 18
  • Up to 7.2% on mean seed value, Hexaly leads Vanilla LS++ in cost-driven layouts, partly because it installs fewer turbines.The objective is energy net of turbine cost, so a small gross-energy difference can appear larger in net value.Source: §5.2 · p. 18

6 Directional quadrature error and spatially localized surrogate bias

On Lillgrund, the three complete search pipelines were evaluated at a random-direction RANS judge, alongside diagnostics of directional and spatial errors. Their random-judge results were statistically indistinguishable, while the diagnostics exposed errors between sampled directions and near wake edges.

6.1 The test bench: three pipelines and a RANS judge

  • The five-seed comparison used shared certified starts and 1,800-second searches, but compared complete pipelines rather than isolating wake-model effects.The random judge used twelve directions per seed; the comparison was conditional on Lillgrund’s assumed available area.Source: §6.1 · pp. 18–19

6.2 Directional quadrature error

  • The eight-direction rose overpromises power in corridors between wake fans, with the mapped error peaking at 15% of expected power.Five-node quadrature reduces the orientation-averaged error for the illustrated turbine pair from 1.79 to 0.02 percentage points, but moves error to gaps between nodes.Source: §6.2 · pp. 19–20, Figure 3 · p. 20, Figure 4 · p. 21
  • At sector centers arm B gained +4.06%, but halfway between them it lost −1.48%; its margin over A flipped from +2.93 to −2.52 points.The two judges differ only by a fifteen-degree shift, exposing sensitivity to the phase of directional sampling.Source: §6.2 · p. 19

6.3 Spatially localized surrogate bias

  • Near wake edges, the fine field promises +2.4% that RANS does not deliver, while the coarse field errs by −1.2%; optimized layouts do not populate the band more than the start.The authors offer turbulent mixing as a possible explanation, explicitly as a hypothesis rather than a measured mechanism.Source: §6.3 · pp. 20, 22, Figure 5 · p. 21, Figure 6 · p. 22

6.4 Results at the random judge

  • Arm B’s margin over A was −0.78 points and B′’s was −0.80; both 95% intervals contain zero, so neither establishes superiority.Table 6 reports gain over the start in farm power at a random RANS judge using twelve directions per seed.Source: §6.4 · p. 22, Table 6 · p. 23
  • The random judge’s twelve directions are a sample, and RANS is a reference with calibration and errors, not a measurement of the farm.The random-judge margin also combines directional sampling and spatial field bias, so it does not isolate either source.Source: §6.4 · pp. 22–23

7 What the throughput buys: EndoWake as a proxy of PyWake

The section uses EndoWake to screen local-search moves while PyWake remains the objective and confirms accepted moves. On unseen Lillgrund starts, this approach reaches gains similar to PyWake alone substantially faster, including on annual energy.

7 What the throughput buys: EndoWake as a proxy of PyWake

  • The comparison uses one Lillgrund site, fixed turbine counts, and one GPU alongside thirty CPU processes.The annual-energy evaluation is conditional on the site's wind distribution fitted from seven months of measurements.Source: §7 · pp. 23, 24, 28, 29
  • EndoWake ranks sampled neighborhood moves on a GPU, and PyWake checks the highest-ranked moves, accepting only those that improve its own objective.Rankings are reused over rounds; the list length follows measured evaluation rates, and PyWake confirms moves against the current incumbent.Source: §7 · p. 24
  • At 8 m/s, screen-and-confirm gains +4.28% in 38 s, with a −0.05-point mean paired difference and 4.1–14.4× seedwise speedups; annually, it gains +2.90% versus PyWake’s +2.94%, with 14.9× geometric-mean speedup.Source: §7 · pp. 25, 28, Table 7 · p. 26
  • The timed stop does not prove PyWake local optimality, although final layouts are PyWake local optima in 19/20 single-speed seeds and 18/20 annual-energy seeds.Requiring a final full-neighborhood scan within the timed search reduces speedup to 3.0 at 8 m/s and 2.0 on annual energy.Source: §7 · pp. 25, 28
  • With sparse directional roses, confirmation largely offsets ranking losses through 36 directions, but not at 12 directions, where the paired difference is −2.88 points.The sparse-rose experiments also shorten the candidate list, so they do not isolate angular discretization alone.Source: §7 · pp. 26, 28
  • For annual energy, EndoWake screens four speed nodes below rated while PyWake confirms on the full objective; the reduced screen evaluates 8,038 layouts per second.The annual-energy objective covers 360 directions and 22 speed bins; the screen omits speeds from 13 m/s upward.Source: §7 · pp. 24, 28

8 Conclusions

The conclusions emphasize EndoWake’s computational value as a screen for a shared PyWake objective, while distinguishing search efficiency from wake-model accuracy. The findings are conditional on a limited set of sites and inflow conditions, with model and validation extensions left for future work.

8 Conclusions

  • On twenty unseen starts, screen-and-confirm is 7.9 times faster at 8 m/s and 14.9 times faster on annual energy, with gains close to PyWake alone.Requiring a timed proof of local optimality reduces the speedups to 3.0 and 2.0, respectively.Source: §8 · p. 29
  • RANS comparisons at random directions do not establish a statistically distinct winner, and their margins are conditional on the chosen RANS configuration.The authors locate directional quadrature error and a spatially localized surrogate bias, without establishing that the latter causes the ranking.Source: §8 · p. 29
  • The results cover one site, and RANS comparisons cover one inflow and one speed; the kernel also omits farm-scale physics such as blockage, shear, veer, and meandering.The kernel is sensitive to turbulence, so the authors recommend fitting it at the site's turbulence level.Source: §8 · p. 29
  • Future work proposes a speed-dependent reduction factor and validation against a judge outside the RANS closure or measured Lillgrund wake transects.The proposed speed-dependent factor remains representable in the MILP, at the cost of another piecewise-linear block per site.Source: §8 · p. 29

Funding

The first author's work was supported by named MICIU/AEI, FEDER, Ramón y Cajal, and FSE+ projects; the funders had no role in the study.

Funding

  • The first author reports support from PID2024-162616OA-I00 and RYC2023-042623-I, with funders having no role in the study.The funding statement also names MICIU/AEI, FEDER, UE, and FSE+.Source: Funding · p. 30

Declaration of generative AI and AI-assisted technologies in the manuscript preparation process

The authors used Claude for programming assistance, adversarial reading of mathematical statements, and manuscript editing, and state that they independently verified every proposition, proof, and numerical result.

Declaration of generative AI and AI-assisted technologies in the manuscript preparation process

  • Claude assisted with code, mathematical-statement review, and manuscript editing; authors say they independently verified every proposition, proof, and numerical result.The authors take responsibility for the publication's content.Source: Declaration of generative AI and… · p. 30

CRediT authorship contribution statement

Martina and Matteo Fischetti share conceptualization and methodology, with distinct additional contributions across the study.

CRediT authorship contribution statement

Data availability

The replication package includes data, model artifacts, outputs, and documentation, but withholds three commercially valuable components. Public tools can verify reported values, though not independently reproduce the reported throughput or wall-clock speedups.

Data availability

  • The package includes instance generators, random seeds, OpenFOAM cases, model artifacts, campaign outputs, timing logs, scripts, and technical documentation.It also includes final layouts and pseudocode for screen-and-confirm.Source: Data availability · pp. 30–31
  • The local searches, sector-quadrature implementation, and fast evaluator are withheld because they are of commercial value to the authors.Source: Data availability · p. 31
  • Without the withheld executable components, readers cannot independently reproduce the reported throughput or wall-clock speedups.Public tools can recompute reported values, including PyWake values for logged layouts and RANS verdicts.Source: Data availability · p. 31

Declaration of competing interest

The authors disclose that three commercially valuable components are not released and report no other potentially influential financial interest or personal relationship.

Declaration of competing interest

A The RANS reference in detail

The appendix details the RANS reference’s closure, monitoring, grid, direction-averaging, and noise checks. These checks characterize numerical behavior, while the reference remains a simulation rather than a measurement of site performance.

Verification of the closure

  • The implemented k-ε-fP closure was checked against its authors’ preprint and a public single-turbine case.Across stations 3–10 D, the hub-height wake-axis speed differed by 0.033 of free stream in RMS; at 5 D, the values were 0.72 versus 0.69.Source: A The RANS reference in detail · pp. 31–32

The average over the wind direction

  • The reported direction averages compare a single direction, a uniform ±2.5° bin, and a Gaussian-weighted bin with 3.3° standard deviation.The Gaussian weighting uses the farm’s estimated wind-direction uncertainty; the table also reports SCADA values binned over ±2.5° and 8 ± 0.5 m/s.Source: Table A.1 · p. 32, A The RANS reference in detail · p. 32

The monitor

  • The rotor reference velocity averages nine probes, which raise the second-turbine ratio by 0.06 versus a single axis point under standard k-ε.A cell-set monitor would read velocity inside the rotor and under-thrust in OpenFOAM v2412.Source: A The RANS reference in detail · p. 32

Grid convergence

  • Halving every cell changed farm power by +2.0% under stock k-ε, while the judging setup moved the second-turbine ratio from 0.23 to 0.24.Across three benchmark layouts and two seeds, halving the grid changed the arms’ margin by +0.10 points while shifting the level.Source: A The RANS reference in detail · p. 32

Noise of the judge

  • Two identical RANS runs differed by at most 0.03% in farm power, and tightening tolerance shifted the level by at most 0.04%.A half-diameter turbine move was reproduced across tolerances within 0.05 percentage points; Table A.2 defines the comparisons and tested layouts.Source: A The RANS reference in detail · p. 32, Table A.2 · p. 33
  • The numerical controls bound judgment noise, not whether the RANS reference ranks layouts as the site would.They were not repeated at the random directions.Source: A The RANS reference in detail · pp. 31, 33

The random judge

  • The random judge used 60 directions drawn from fixed seeds, with nine overlapping arm A’s thirty-direction rose and none matching arm B’s Gauss–Legendre nodes.The draw was not stratified over sectors; the listed directions are shared by each seed’s starting and final layouts.Source: A The RANS reference in detail · p. 33, Table A.3 · p. 33

B Conventions, environment and numerical hygiene

The appendix records the shared computational environment and solver conventions, then specifies timing and numerical safeguards that affect reported runs.

B Conventions, environment and numerical hygiene

  • Every table inherits the stated environment, solver settings, and numerical conventions.The implementation uses Python 3.14, Gurobi 13.0 for MILP solving, and Hexaly 15.0 for heuristic solving.Source: B Conventions, environment and… · pp. 33–34
  • Proxy-search times are warmed wall times that include neighborhood enumeration and list calibration but exclude model warm-up, GPU compilation, process-pool startup, and distillation.Each seed ran on an AMD EPYC 9335 node with an NVIDIA RTX PRO 6000 Blackwell GPU.Source: B Conventions, environment and… · p. 34
  • The laptop GTX 1050 Ti is the hardware floor for throughput figures; cluster runs use double precision except proxy search and the Section 4.4 batch.The laptop card’s measured boost clock is 1670 MHz on mains power; battery power-capping lowers throughput substantially.Source: Table B.1 · p. 34, B Conventions, environment and… · p. 34
  • Gurobi’s highest NumericFocus avoids a near-integral binary switching off a big-M wake implication and producing a false certified optimum.On the largest instance closed under both settings, this choice multiplies solution time by 1.5×.Source: B Conventions, environment and… · p. 34
  • Single precision is used when EndoWake only scores and ranks, while double precision in Section 6 keeps runs identical across cards; measured parity reflects overhead, not equal arithmetic throughput.At the stated block sizes, launch and data-handling overhead dominate, although the A40 returns 2 double-precision results versus 128 single-precision results per clock cycle and multiprocessor.Source: B Conventions, environment and… · pp. 34–35

C Instances and protocols

The appendix specifies the Lillgrund instances and protocols for the Section 6 benchmark and Section 7 proxy search, including their objectives, evaluation procedures, and checks.

C Instances and protocols

C.1 The bench of Section 6.1

  • The Section 6 benchmark allocates 529 convex-hull cells on a 34 × 33 D-grid, excludes two empty-site disks, and starts from a greedy guide followed by one-exchange optimization.The field variant B′ uses a 100 × 98 grid at D/3 while retaining the same allocatable sites.Source: §C.1 · pp. 35–36
  • Arms B and B′ use 60 scenarios from twelve wind sectors, while Arm A evaluates 30 directions at speeds from 3 to 25 m/s with PyWake’s default wake setup except for k = k∗.The fitted k∗ uses the idealized machine’s thrust coefficient, unlike PyWake’s SWT-2.3-93 thrust curve; refitting changes fixed-layout objectives by at most 0.099 points.Source: §C.1 · p. 36
  • Arm A samples 256 admissible cells per turbine and stops after eight unimproved sweeps; Arm B scans 8 192-layout blocks.At D spacing, Arm A averaged 53 restarts per seed and Arm B averaged 1 115.Source: §C.1 · p. 36

C.2 The proxy search of Section 7

  • The Section 7 distillate is fitted to an isolated SWT-2.3-93 wake field at 8 m/s, yielding α = 0.083, β = 0, γ = 0.0345, source amplitude 0.644, and 6.8% residual.The fit uses a three-to-twelve-diameter window and the footprint of equation (4).Source: §C.2 · p. 36
  • In Section 7, EndoWake ranks neighborhood moves in blocks while PyWake evaluates ranked moves and accepts the first improving one in each block.PyWake-alone block size doubles after blocks without improvement, up to 2 048, and resets after an accepted move; screen-and-confirm uses nested samples.Source: §C.2 · p. 36
  • A separate code path reproduced every arm’s seed-5 trajectory through PyWake up to rounding.Each seed ran as one job on one GPU node, with arms run sequentially.Source: §C.2 · p. 37
  • Charging each run with setup gives the reduced screen a 14.5 speedup; fixed-layout quadrature checks moved a single seed’s paired difference by at most 0.026 points.The protocol fixed seeds, arm order, time limits, and checks before the annual-energy searches; the reduced-screen speedup was 12.6 on one node group and 17.7 on the other.Source: §C.2 · p. 37
Loading 2610.07844v1…