refactor(workflow): update JFM research workflow and remove obsolete figures
Revise the JFM research workflow documentation to clarify project structure, decision-making processes, and tool routing. Remove outdated figures and images that are no longer relevant to the current manuscript. Ensure that the workflow aligns with the latest research objectives and safety protocols.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# JFM figure-specification index and production controls
|
||||
|
||||
This directory is the Round-4 figure-specification layer for Sections 1–10. It organizes display intent, provenance, readiness and safe omission. It does **not** make a panel, table, equation, source payload or result publication-ready. No file here authorizes CFD, training, raw-array inspection, computation, rendering or artifact generation.
|
||||
|
||||
## Section index
|
||||
|
||||
- **Section 1 — Introduction:** no owned empirical display. No plan file required; reason: the frozen introduction owns framing only.
|
||||
- **Section 2 — Problem formulation, control framework and evaluation:** `SECTION_02_FIGURE_01_CONFIGURATIONS_AND_SENSORS.md`; `SECTION_02_FIGURE_02_DRL_INFORMATION_ACTION_REWARD.md`; `SECTION_02_TABLE_01_CONFIGURATION_METHOD.md`; `SECTION_02_TABLE_02_CASE_METRIC_SEMANTICS.md`; `SECTION_02_TABLE_03_CFD_QUALIFICATION.md`; `SECTION_02_EQUATION_SPEC.md`.
|
||||
- **Section 3 — Capability progression:** `SECTION_03_FIGURE_01_STEADY_DISCOVERY_PROFILE.md`; `SECTION_03_FIGURE_02_WAKE_CLOAKING_AND_RETARGETING.md`. Section 3 remains `discuss`: Fig. 1 composition and representative Vortex offset are author choices.
|
||||
- **Section 4 — Kármán performance:** `SECTION_04_FIGURE_01_KARMAN_CONDITIONS_AND_LEARNING.md`; `SECTION_04_FIGURE_02_REFERENCE_FIELD_SIGNAL_ACTION.md`.
|
||||
- **Section 5 — Compact Kármán SR law:** `SECTION_05_KARMAN_SR_CONTROL_LAW.md`.
|
||||
- **Section 6 — Kármán mean fields and CCD:** `SECTION_06_FIGURE_SPEC.md`; S6-S2 remains blocked.
|
||||
- **Section 7 — Cross-case extensions:** `SECTION_07_FIGURE_01_VORTEX_EVENT_RESPONSE.md`; `SECTION_07_FIGURE_02_ILLUSION_ERASE_EXTENSIONS.md`. Role fields exist; quantitative Vortex and Erase products remain blocked; Illusion is bounded PPO capability.
|
||||
- **Section 8 — Steady context and theory boundary:** `SECTION_08_STEADY_CONTEXT_AND_THEORY.md`. Existing outer assets are bounded redraw sources only; no new MFS computation is authorized. Frank's equation/composition choice remains open.
|
||||
- **Section 9 — Qualitative open-loop experiment:** `SECTION_09_EXPERIMENT.md`; `author-supply-gated`, with strict omission fallback.
|
||||
- **Section 10 — Discussion and conclusions:** no display, table or equation by frozen text-only contract. No plan file required.
|
||||
|
||||
Every actual plan file in this directory is indexed above. Existing filenames are intentionally unchanged in this pass.
|
||||
|
||||
## Controlled cross-figure rules
|
||||
|
||||
1. Stable reader roles are target/reference → controlled → physical zero/uncontrolled; add constant or SR only when acquired and explicitly bound. A target has no action trajectory.
|
||||
2. Never pool or visually imply equivalence between configurations. Internal chain labels stay in provenance.
|
||||
3. Bind case, seed/realization, role and comparator. Use neutral source-case labels where inherited parabolic velocity-reference conversion is unresolved; never guess a reader-facing Reynolds value.
|
||||
4. Mean, phase, event-relative, steady-profile, native DTW, normalized DTW, standardized rolling DTW and fixed-cycle deletion DTW are non-interchangeable. State whether larger or smaller is better.
|
||||
5. Record ROI/domain, geometry guard or exact mask, weighting/normalization and retained window/phase/event coordinate. A display crop is not a metric ROI.
|
||||
6. Record x/y direction, array order/transposition, action/body order and sign, and color/sign semantics.
|
||||
7. Record exact authority, source artifact, script/evaluator, manifest, role rows/windows and hashes in the production manifest. A partial plot manifest authenticates only the diagnostics it lists; it does not prove completeness, portability or readiness.
|
||||
8. Share crop, scale, units and mask only within a direct, authority-bound comparison.
|
||||
9. Captions decode configuration, roles, condition, coordinate and limits; they do not promote morphology to efficacy, signal matching to field matching, qualification to control validation, or association to causality.
|
||||
10. Omit unresolved panels, scalars or annotations. Never fill a gap with a non-equivalent source, inferred geometry, unsupported conversion or diagnostic screenshot.
|
||||
|
||||
## Normalized readiness schema
|
||||
|
||||
Each plan should use these five independent fields. `N/A` must include a reason.
|
||||
|
||||
- **Plan state:** `specified`, `discuss`, `author-supply-gated`, or `omitted (N/A: reason)`.
|
||||
- **Evidence state:** `read`, `path-confirmed`, `mapped`, `not-covered`, `missing-exact-leaf`, or `author-supply-gated`. `read` is not independent verification; `mapped` is not read or locally resolved.
|
||||
- **Metric state:** `definition-ready`, `authority-bound`, `dependency-gated`, `blocked`, or `N/A: method-only/no quantitative result`.
|
||||
- **Render state:** `not-started`, `draft-diagnostic-only`, `redraw-required`, `blocked`, or `N/A: omitted/text-only`.
|
||||
- **Disposition:** `retain`, `retain-with-gates`, `supplement`, `fallback-only`, or `omit`.
|
||||
|
||||
## Required production record
|
||||
|
||||
Before production, record: authority; evidence state; chain/configuration; case/seed/roles/comparator; metric and orientation; ROI/domain/mask/weight/window; display crop; array/action/flow orientation; exact source/script/evaluator/manifest and hashes; render settings/output hash; caption ceiling; fallback. Mark unavailable fields `N/A` with a reason. Missing required fields prevent a publication-ready claim.
|
||||
|
||||
## Coverage boundary
|
||||
|
||||
`read`: current Round-4 controls/owning section packets and the two Section-2 repository reports. `path-confirmed`: exact repository paths named in plans. `mapped`: authority-described or manifest-linked payloads not opened or independently audited here. `not-covered`: raw arrays, external payload verification, computation, CFD/training, rendering, figure generation and publication typography. Durable memory was recalled for navigation only; no thread recall or literature search was needed.
|
||||
@@ -0,0 +1,15 @@
|
||||
# Section 2 equation specification
|
||||
|
||||
## Required equations
|
||||
1. `Re_D=Uref D/nu`; bulk/mean `Uref` for parabolic inflow, uniform speed for uniform inflow, and `Umax ~= 1.5 Uref`. Parabolic inherited labels remain unconverted until source metadata bind `U0`.
|
||||
2. `(Uw,Vw)=(-omega r_y, omega r_x)`, positive omega counter-clockwise; `s_i=omega_i R/Uref`. Historical source-native `alpha_i=omega_i/U0`; general `s_i=alpha_i R(U0/Uref)`, reducing to `alpha_i R` only when `U0=Uref` is established.
|
||||
3. Online objective: compact force plus sparse-sensor discrepancy; exact weights optional and run-bound.
|
||||
4. Mean field L2: area/coordinate-weighted, `Uref`-normalized vector error over declared ROI with roles/comparator explicit.
|
||||
5. Phase L2: same spatial contract by periodic slot; slots are not repeated-cycle samples.
|
||||
6. DTW recurrence/path or rigorous prose; state distance/similarity, normalization, channels, aggregation, window and constraints.
|
||||
7. Comparator-relative reduction optional only under one exact role/ROI/mask/weight/window contract.
|
||||
|
||||
## Readiness contract
|
||||
Authority is frozen Section 2 plus the sensor/field report. Equations 1–2 are configuration definitions; 3–7 require result-local chain/config/case/seed/role/comparator bindings. ROI/mask/weight/window are `N/A: physical/method definition` for 1–3 and mandatory for 4–7. Action sign/order and metric orientation accompany reuse. Implementation constants and rows are `dependency-gated`; no equation implies an artifact. Caption ceiling is definitions only. Fallback retains Reynolds, action, mean L2 and rigorous prose DTW; recurrence/detail may move to supplement.
|
||||
|
||||
Plan `specified`; evidence `read`; metric `definition-ready`; render `N/A: typeset equations, not artifact panels`; disposition `retain-with-gates`.
|
||||
@@ -0,0 +1,17 @@
|
||||
# Section 2 Figure 1 — Flow configurations and downstream sensors
|
||||
|
||||
## Job and layout
|
||||
A method-only schematic defines, side by side, the parabolic-inflow/no-slip-wall and uniform-inflow/free-slip-wall channel configurations. Show inlet profile, lateral and outlet boundaries, the three-cylinder pinball, body order `(F,U,L)`, x-right/y-up coordinates, rotation sign, the case-dependent upstream disturbance or target body, and three circular two-component sensors at `x/D=10`, `y/D=0,±2`, radius `0.25D`. Disturbance/target geometry remains a labelled variable unless an exact selected-case source supplies dimensions.
|
||||
|
||||
## Production contract
|
||||
- **Authority:** `docs/JFM_WYQ/ROUND4_TOP_DOWN/SECTION_02_PROBLEM_METHOD_EVALUATION.md`; `docs/JFM_WYQ/WAKE_L2_AND_SENSOR_PLACEMENT_RESEARCH_NOTES.md`.
|
||||
- **Chain/configuration:** both physical configurations, kept separate; internal chains are N/A in reader labels.
|
||||
- **Case/seed/roles/comparator:** `N/A: method definition, not a performance comparison`.
|
||||
- **Metric orientation; ROI/mask/weight/window:** `N/A: schematic defines observations, not efficacy`. A registered field-evaluation ROI may be shown only as a separate evaluation region.
|
||||
- **Orientation:** x right, y up; positive solver omega counter-clockwise under `(Uw,Vw)=(-omega*r_y,omega*r_x)`; action order front, rear-y+, rear-y-; flow direction printed.
|
||||
- **Exact source/script/manifest:** geometry drawing source and row-level dimensions are `missing-exact-leaf`; no production script/manifest exists. Do not guess cylinder centres, domain lengths, disturbance diameter or target placement.
|
||||
- **Caption ceiling:** geometry, boundaries, action order/sign and sparse sensing only; no equivalence, optimal sensing, observability, solver-exact scale or performance.
|
||||
- **Fallback:** explicitly not-to-scale minimal line drawing plus Table 2-1; omit unbound dimensions/case body.
|
||||
|
||||
## Readiness
|
||||
Plan state `specified`; evidence authorities `read`, paths `path-confirmed`, geometry leaves `missing-exact-leaf`, raw/config arrays `not-covered`; metric `N/A: method-only`; render `not-started`; disposition `retain-with-gates`.
|
||||
@@ -0,0 +1,17 @@
|
||||
# Section 2 Figure 2 — DRL information, action and reward flow
|
||||
|
||||
## Job and layout
|
||||
Draw one left-to-right closed-loop method schematic: physical configuration/state → body forces plus six velocity channels from three downstream sensors → fixed physical scaling and matched online normalization → PPO policy → three rotations `(F,U,L)` → CFD evolution. A separate target-signal branch enters force- and sensor-discrepancy reward terms. A dashed independent-evaluation branch leads to signal DTW and registered field L2; it does not feed the policy unless exact run authority says so.
|
||||
|
||||
## Production contract
|
||||
- **Authority:** frozen Section 2 and `docs/JFM_WYQ/WAKE_L2_AND_SENSOR_PLACEMENT_RESEARCH_NOTES.md`.
|
||||
- **Chain/config/case/seed/roles/comparator:** canonical method; run-specific chain/case/seed/constants `N/A: no selected performance run`. Roles are target signals, controlled state and physical-zero comparator only in evaluation.
|
||||
- **Metric orientation:** reward higher-better only when implementation-bound; DTW must state distance/similarity and native/normalized; spatial L2 lower-better. No value is printed.
|
||||
- **ROI/mask/weight/window:** field branch names the registered `20D x 10D` geometry-guarded ROI; exact weights/windows are run-specific. Sensor disks are not the ROI.
|
||||
- **Orientation:** body/action order and sign follow Section 2; arrows show information/execution, not causality or convergence.
|
||||
- **Exact source/script/manifest:** conceptual item; no drawing script/manifest. Policy/normalizer/target/reward rows are `dependency-gated`.
|
||||
- **Caption ceiling:** flow only; no convergence, optimality, observability, field equivalence, mechanism or canonical-rerun claim.
|
||||
- **Fallback:** compact prose flow or one-column block diagram without run constants.
|
||||
|
||||
## Readiness
|
||||
Plan `specified`; evidence authorities `read`, code families `mapped`, selected-run bindings `not-covered`; metric `definition-ready` and numerical binding `dependency-gated`; render `not-started`; disposition `retain-with-gates`.
|
||||
@@ -0,0 +1,14 @@
|
||||
# Section 2 Table 1 — Configuration and numerical-method definitions
|
||||
|
||||
## Job and columns
|
||||
Compress definitions without implementation history. Candidate columns: configuration; inlet/lateral/outlet boundaries; pinball/disturbance or target geometry; `Uref` and article `Re_D`; solver/collision/curved-body treatment; grid/diameter/time sampling; evidence ownership; caveat.
|
||||
|
||||
## Contract
|
||||
- **Authority:** frozen Section 2; `docs/JFM_WYQ/CELERISLAB_VALIDATION_DOSSIER.md` for qualification context.
|
||||
- **Rows:** parabolic/no-slip and uniform/free-slip configurations only. Exact grid, diameter, time-step, precision and selected-run rows are `dependency-gated`; never infer from a different run or benchmark.
|
||||
- **Metric/ROI/window:** `N/A: definition table, not a result`; record coordinate/action orientation in notes.
|
||||
- **Exact source/script/manifest:** row-level config/manifest leaves are `missing-exact-leaf`; bind each numerical row before production. The dossier cannot substitute for control-run metadata.
|
||||
- **Caption ceiling:** separate plants and methods only; no transfer, canonical-rerun completion or performance.
|
||||
- **Fallback:** retain source-bound boundaries, nondimensionalization, D2Q9/MRT and Bouzidi rows; move run matrix to supplement.
|
||||
|
||||
Plan `specified`; evidence Section 2/dossier `read`, run authorities `mapped`; metric `N/A: method-only`; render `not-started`; disposition `retain-with-gates`.
|
||||
@@ -0,0 +1,14 @@
|
||||
# Section 2 Table 2 — Case and metric semantics
|
||||
|
||||
## Job and rows
|
||||
Define non-equivalent families: periodic Kármán; Vortex event-relative; periodic Illusion; Erase mean-only candidate; steady endpoint/profile. Columns: roles; temporal coordinate/window; field estimand; signal estimand/orientation; ROI/mask/weight; allowed inference; prohibited pooling.
|
||||
|
||||
## Contract
|
||||
- **Authority:** frozen Section 2 and `docs/JFM_WYQ/WAKE_L2_AND_SENSOR_PLACEMENT_RESEARCH_NOTES.md`.
|
||||
- **Metric orientation:** spatial error lower-better; DTW orientation printed per output; native and normalized DTW separate. Eight slots are independently phased nearest snapshots, not an ensemble. Vortex offsets are not phase. Erase efficacy is blocked. Steady uses endpoint/profile criteria.
|
||||
- **ROI/mask/weight/window:** registered ROI `-6 <= (x-xs)/D <= 14`, `|(y-y0)/D| <= 5`, geometry-guarded because exact masks were not persisted. Changed estimands renew their own contract.
|
||||
- **Bindings:** definitions only; exact chain/config/case/seed/roles/comparator and source/evaluator/manifest remain downstream result-owner dependencies.
|
||||
- **Caption ceiling:** definitions only; no pooled efficacy, validation or transfer.
|
||||
- **Fallback:** concise prose list preserving all non-equivalences.
|
||||
|
||||
Plan `specified`; evidence `read`; metric `definition-ready`, quantitative Vortex/Erase `blocked`; render `not-started`; disposition `retain-with-gates`.
|
||||
@@ -0,0 +1,15 @@
|
||||
# Section 2 Table 3 — Compact CFD qualification
|
||||
|
||||
## Job and rows
|
||||
Qualify selected CelerisLab observables. Columns: benchmark/configuration; retained case; observable; authority; resolution/window; status; caveat; artifact/manifest binding.
|
||||
|
||||
## Contract
|
||||
- **Authority:** `docs/JFM_WYQ/CELERISLAB_VALIDATION_DOSSIER.md` (`read/full-report`).
|
||||
- **Permitted rows:** Kan99b K2, aggregate status exactly `partial pass`; Sah04 S2, `pass` for its confined-channel Strouhal gate. K2 frequency, drag and fluctuation observables pass their bands; the opposite mean-lift sign follows the CFD coordinate/force-direction convention and is not unresolved physics or suspected wrong rotation.
|
||||
- **Excluded rows:** K1/K3–K5, S1/S3/S4 and smoke runs are not completed retained physics evidence.
|
||||
- **Metric/ROI:** row-specific benchmark gates; exact values/resolution/window require artifact/manifest row binding. ROI `N/A: benchmark observables are not the manuscript wake ROI`.
|
||||
- **Roles:** current CelerisLab qualification only; PPO/SR/CCD/control roles `N/A`.
|
||||
- **Caption ceiling:** selected solver-observable qualification only; no controller, interpretation, older-solver or cloaking validation.
|
||||
- **Fallback:** bounded paragraph naming K2 partial pass and S2 pass; matrix to supplement.
|
||||
|
||||
Plan `specified`; evidence dossier `read`, artifact leaves `mapped`; metric `dependency-gated`; render `not-started`; disposition `retain-with-gates`.
|
||||
@@ -0,0 +1,110 @@
|
||||
# Section 3 Figure 1 — Steady discovery through downstream velocity profiles
|
||||
|
||||
## Scientific question
|
||||
Did the historically first approximately steady rear-cylinder actuation recover the uniform target velocity profile downstream relative to a stationary pinball?
|
||||
|
||||
## Intended comparison
|
||||
Show the actual cross-stream downstream velocity profiles against target, controlled and stationary roles. The profile is the evidence; streamlines are retained only if they add a distinct topology view. A scalar station summary cannot substitute for the profiles.
|
||||
|
||||
## Source plots, data and scripts
|
||||
|
||||
- Profile data: `src/steady_pinball_theory/figures/profiles_long.csv`.
|
||||
- Columns used: `case`, `x_over_D`, `y_over_D`, `ux_over_U`, `uy_over_U`, `fluid_mask`, `source_sha256`.
|
||||
- Selected cases: `cfd-accepted-s3p55` and `cfd-stationary`.
|
||||
- Mandatory station: `x_over_D=10.0`; optional secondary station: `6.0` only if useful at final size.
|
||||
- Uniform target: $u/U_\infty=1$, $v/U_\infty=0$ on the same valid/common-fluid y coordinates.
|
||||
- Scalar support only: `figures/summary/profile_Einf_vector.csv`, `figures/field_metrics.csv`, `figures/manifest.json`.
|
||||
- Optional field context: `figures/fields/streamlines/cfd-accepted-s3p55.png` and `cfd-stationary.png`, with plate companions.
|
||||
- External authoritative `qin`, `accepted-s3.55` and `stationary` endpoint NPZ/manifests are path/hash-bound in `figures/README.md` and `manifest.json`.
|
||||
- Production script: `src/steady_pinball_theory/plot_results.py`; no CFD is required.
|
||||
- Readiness: profile rows and source hashes are present; **ready for profile redraw, dependency-gated for final crop/typography**.
|
||||
|
||||
## Layout
|
||||
|
||||
- Full two-column width, **178 mm × 88–105 mm** before caption.
|
||||
- Grid: **2 rows × 2 columns**.
|
||||
- Top row, 35–40% height: optional accepted and stationary streamline panes, one column each.
|
||||
- Bottom row, 60–65% height: streamwise profile $u/U_\infty$ and transverse profile $v/U_\infty$, one column each.
|
||||
- If streamlines fail final-size legibility, use a **1 × 2 profile-only** figure and enlarge both profile panels.
|
||||
- Reading path: target/controlled/stationary $u$ profile → transverse $v$ residual → optional topology context → small endpoint summary.
|
||||
|
||||
## Panels and role order
|
||||
|
||||
### (a–b) Optional total-velocity streamlines
|
||||
|
||||
- (a) accepted controlled endpoint; (b) stationary/uncontrolled pinball. Exact actuation belongs to Section 8; retain source-case identity in production provenance only.
|
||||
- Variable: total velocity rendered as streamlines, not a speed scalar.
|
||||
- Crop: $x/D=[-2,10]$, $y/D=[-3.025,2.975]`; array order `yx`; solver-fluid masks; identical density/style.
|
||||
- Uniform target is not a blank field pane. It is explicit in the profile panels.
|
||||
- Temporal status: accepted endpoint and stationary reference. Section 8 owns settling qualification.
|
||||
|
||||
### (c) Streamwise velocity profile at $x/D=10$
|
||||
|
||||
- Horizontal axis: $u/U_\infty$; vertical axis: $y/D$.
|
||||
- Curves/order: **uniform target** $u/U_\infty=1$ (black dashed) → **accepted controlled** (blue) → **stationary/uncontrolled** (dark grey/orange).
|
||||
- Data: rows with `fluid_mask=1` for the selected role/station. Use the common valid y support; do not bridge masked gaps.
|
||||
- The target curve uses the same y support and is not inferred from stationary data.
|
||||
- $x/D=10$ is mandatory. If $x/D=6$ is included, encode station by line weight/alpha within each role: $x/D=10$ heavy/opaque, $x/D=6$ thin/40–50% alpha. Do not add stations 2 and 4 to the main panel.
|
||||
|
||||
### (d) Transverse velocity profile at $x/D=10$
|
||||
|
||||
- Horizontal axis: $v/U_\infty$; vertical axis: $y/D$, shared with panel (c).
|
||||
- Curves/order: **uniform target** $v/U_\infty=0$ (black dashed) → accepted controlled → stationary/uncontrolled.
|
||||
- Use a symmetric x-axis about zero based on the pooled accepted/stationary valid values at the selected station, with modest padding; never normalize each role separately.
|
||||
- Keep $u$ and $v$ separate. Their target levels and numerical ranges differ, and a vector-magnitude-only curve would hide sign and transverse cancellation.
|
||||
|
||||
### Small station-summary annotation/inset
|
||||
|
||||
- Optional, no more than 12–15% of profile area.
|
||||
- Do not print exact endpoint-error values in this discovery preview; Section 8 owns them.
|
||||
- If a tiny station strip is retained, keep it qualitative and subordinate; it must not displace either component profile.
|
||||
- Definition: maximum full-cross-section vector difference from uniform target on common fluid points, normalized by $U_\infty$.
|
||||
|
||||
## Normalization, crop, masks and scales
|
||||
|
||||
- Velocity components are already exported as `ux_over_U`, `uy_over_U`; do not renormalize.
|
||||
- Vertical coordinate is `y_over_D`, x-right/y-up. Retain the full available cross-section by default. A symmetric crop may be used only after checking it excludes no material wake deviation and is documented.
|
||||
- Apply identical y limits and common-fluid handling across target/controlled/stationary and across $u/v$ panels.
|
||||
- No color scale applies. Role colors are consistent across both components; station is encoded by weight/alpha, not color.
|
||||
|
||||
## Labels and legends
|
||||
|
||||
- Header: `uniform-inflow / free-slip-wall configuration, Re_D=50`.
|
||||
- Profile titles: `(c) streamwise velocity, x/D=10`; `(d) transverse velocity, x/D=10`.
|
||||
- One shared role legend in target → controlled → stationary order.
|
||||
- If $x/D=6$ is included, use a separate compact station key; do not duplicate legends.
|
||||
|
||||
## Caption skeleton
|
||||
|
||||
> **Steady discovery through downstream velocity-profile recovery.** Cross-stream profiles at $x/D=10$ compare the uniform target, accepted controlled endpoint, and stationary pinball in the uniform-inflow/free-slip-wall configuration at $Re_D=50$: (c) $u/U_\infty$ and (d) $v/U_\infty$ versus $y/D$. [If retained: (a,b) total-velocity streamlines provide a separate wake-topology view for the accepted and stationary roles.] The controlled profile approaches the target in both components. These are endpoint profiles, not periodic means, and establish neither optimum, stability nor mechanism.
|
||||
|
||||
## Inference limits
|
||||
The component profiles show that the accepted controlled endpoint approaches the uniform target and that the stationary pinball retains a much larger downstream departure; optional streamlines add a separate topology view. The endpoint comparison does not determine an optimum, attracting branch, stability or mechanism, and it says nothing about periodic phase matching or near-body field error.
|
||||
|
||||
## Normalized readiness
|
||||
|
||||
- **Plan state:** `specified`; the two-figure Section-3 composition author choice is closed. Exact source/provenance, crop, scale, caption, artwork, rendering and publication-readiness gates remain open.
|
||||
- **Evidence state:** named CSV/script/manifest paths are `path-confirmed`; source arrays are `mapped`, not reopened; raw arrays and rendering are `not-covered`.
|
||||
- **Metric state:** profile contract `authority-bound`; final crop is `dependency-gated`.
|
||||
- **Render state:** `redraw-required`; existing streamlines are diagnostics/source material.
|
||||
- **Disposition:** `retain-with-gates`; author may choose the profile-only fallback.
|
||||
- **Caption ceiling/fallback:** endpoint profile approach only; no optimum, stability or mechanism; never replace profiles with a scalar or streamline-only view.
|
||||
|
||||
## Production checklist
|
||||
|
||||
1. Read `profiles_long.csv`; select accepted/stationary, `fluid_mask=1`, $x/D=10$ and optionally 6.
|
||||
2. Verify each selected role's `source_sha256` against `figures/manifest.json`.
|
||||
3. Build the uniform target arrays on the identical valid y support: $(u/U_\infty,v/U_\infty)=(1,0)$.
|
||||
4. Audit accepted/stationary y coordinates and use their common support; preserve masked gaps.
|
||||
5. Draw separate $u$ and $v$ panels with shared $y/D$, role colors and target curves; test full y range first.
|
||||
6. Keep the Section-3 preview qualitative; omit exact $E_{\infty,vector}$ values and settling qualification, which Section 8 owns.
|
||||
7. Test optional streamline panes at final dimensions; retain only if topology remains legible.
|
||||
8. Record final y range, optional station, source hashes and styling in figure provenance.
|
||||
|
||||
## Fallback
|
||||
|
||||
- Required: separate $u$ and $v$ profiles at $x/D=10$ with target, controlled and stationary roles.
|
||||
- First drop: $x/D=6$ secondary curves/inset.
|
||||
- Second drop: both streamline panes; use profile-only 1 × 2 layout.
|
||||
- Never replace profiles with $E_{\infty,vector}$ versus station or a streamline-only panel.
|
||||
- Do not add reverse or MFS material to fill space.
|
||||
@@ -0,0 +1,74 @@
|
||||
# Section 3 Figure 2 — Wake cloaking and retargeting
|
||||
|
||||
## Scientific question
|
||||
How does learned rotational control preserve a periodic street, respond through an isolated vortex event and create a declared non-zero wake, and why does the periodic Kármán case warrant deeper analysis?
|
||||
|
||||
## Source plots, data and scripts
|
||||
|
||||
**Kármán.** Use `src/drl_pinball/data/reproduction/legacy/karman_re100/{target,controlled,zero}/{metadata.json,phase_fields.npz}`, the diagnostic `src/drl_pinball/data/reproduction_plots/legacy/karman_re100.png`, the bound `src/drl_pinball/eval/wake_l2.py` summary, and `src/drl_pinball/plot_reproduction_summary.py`/`src/drl_pinball/plot_flow_fields.py`. Crop/recombine the diagnostic for a layout proof; redraw phase slot 0 for production so crop, scale, units and role labels are controlled and the diagnostic sensor portraits are removed.
|
||||
|
||||
**Taylor vortex.** Use `src/drl_pinball/data/reproduction/legacy/vortex_taylor_y000/{target,controlled,zero}/event_fields.npz`, which stores offsets `[-10,-5,0,5,10]`. Existing draft renders for every role/offset are under `src/drl_pinball/data/reproduction_flow_plots/all/legacy/vortex_taylor/vortex_taylor_y000/`; `src/drl_pinball/plot_flow_fields.py` supplies the rendering logic. `docs/My_Confirmation/Graphs/cloak_tylor.pdf` is narrative precedent for the sequence only. Select one source-bound representative role comparison from existing event fields; no CFD or event extraction is required. Detailed offset evolution belongs to Section 7.
|
||||
|
||||
**Illusion.** Use `src/drl_pinball/data/reproduction/v5/ill_075L/target`, `.../ill_075L_seed43/controlled`, `.../ill_075L/zero`, `src/drl_pinball/data/reproduction_plots/v5/ill_075L_seed43.png`, and `src/drl_pinball/data/reproduction_plots/manifest.json`. Crop/recombine for a proof, then redraw phase slot 0. This is seed-43 PPO capability for target radius $0.75L_0$.
|
||||
|
||||
## Layout and dimensions
|
||||
- Two-column width, **178 mm × 128–148 mm** before caption.
|
||||
- Top 52–58%: large Kármán target → controlled → physical-zero triplet, each pane equal width.
|
||||
- Bottom left 55–60%: one representative Taylor-vortex target → controlled → physical-zero comparison at one source-bound event offset; no offset evolution.
|
||||
- Bottom right 40–45%: Illusion target → controlled → physical-zero triplet.
|
||||
- Minimum final type 7 pt. Test the single-offset role comparison at 178 mm.
|
||||
|
||||
## Panels, variables and coordinates
|
||||
|
||||
### Periodic Kármán cloak
|
||||
- Variable: $\omega_zD/U_{ref}$ only if normalization is reconstructed from metadata; otherwise print lattice-vorticity units.
|
||||
- Coordinate: literal phase slot 0, not a mean or ensemble.
|
||||
- Role order: target/reference → frozen PPO controlled → physical zero.
|
||||
- Annotation: `complete-cycle mean and eight-slot phase velocity errors each about 82% lower than physical zero`.
|
||||
- Exact values remain in Section 4.
|
||||
|
||||
### Centred Taylor event
|
||||
- Variable: vorticity at one source-bound representative event offset.
|
||||
- Role order: target → controlled → physical zero on the same crop and scale.
|
||||
- Record the selected literal offset in production provenance; do not show multi-offset evolution in Section 3.
|
||||
- No event L2, phase label or inferred continuous-time conversion.
|
||||
|
||||
### 0.75-radius Illusion
|
||||
- Variable: phase-slot-0 vorticity.
|
||||
- Role order: non-zero target-cylinder wake → controlled pinball → physical zero.
|
||||
- Label target radius $0.75L_0$, seed 43, PPO.
|
||||
- No action, DTW, field-L2 or SR annotation.
|
||||
|
||||
## Crops, masks and scales
|
||||
Use one scale and physical crop within each direct comparison. All three roles at the selected event offset share one event scale and crop. Kármán and Illusion may use separate case-specific scales because their configurations and raw units differ; print the limits. The manifest's fixed $[-10^{-3},10^{-3}]$ range is a diagnostic plotting choice, not automatic nondimensional authority. Preserve x-right/y-up orientation and source geometry. Do not call geometry overlays persisted solver-exact masks. Avoid full-domain strips that make vortices unreadably small.
|
||||
|
||||
## Reading order
|
||||
Read the large periodic target/control/zero comparison first, read the single isolated-vortex role comparison, then finish with the changed non-zero target. Area and position carry the hierarchy; no common score or decorative cross-case scale is used.
|
||||
|
||||
## Caption draft
|
||||
> **Wake cloaking and retargeting under distinct physical comparisons.** (a–c) Target, frozen-PPO controlled and physical-zero vorticity at phase slot 0 for the periodic Kármán cloak in the parabolic-inflow/no-slip-wall configuration. The controlled complete-cycle mean and separately defined eight-slot phase velocity errors are each about 82% lower than physical zero; exact values and windows accompany the detailed Kármán result. (d–...) Target, controlled and physical-zero vorticity at one printed event-relative offset for a centred Taylor-vortex event. This is a representative role comparison, not event evolution or periodic phase, and no event L2 is reported. (...) Non-zero target, seed-43 PPO controlled and physical-zero vorticity at phase slot 0 for the target-radius-$0.75L_0$ Illusion case in the uniform-inflow/free-slip-wall configuration. Scales are shared within each direct comparison and may differ between configurations. The composition compares distinct physical tasks rather than assigning them a common efficacy measure.
|
||||
|
||||
## Inference limits
|
||||
The Kármán triplet and rounded field statement justify deeper analysis. The representative event view identifies role-field morphology without a quantitative event-field or efficacy claim. The Illusion triplet shows positive PPO retargeting. These views do not supply a pooled result, arbitrary-flow transfer, positive Illusion symbolic reduction or a common mechanism.
|
||||
|
||||
## Normalized readiness
|
||||
|
||||
- **Plan state:** `specified`; the two-figure Section-3 composition author choice is closed. The exact representative Vortex offset and all source/provenance, crop, scale, caption, artwork, rendering and publication-readiness gates remain open.
|
||||
- **Evidence state:** exact repository paths are `path-confirmed`; role payloads are `mapped`, including nonportable links where applicable; raw arrays are `not-covered`.
|
||||
- **Metric state:** Kármán rounded comparison is authority-bound; Vortex quantitative efficacy is `blocked`; Illusion is bounded PPO morphology/capability.
|
||||
- **Render state:** `redraw-required`; existing montages are diagnostic only.
|
||||
- **Disposition:** `retain-with-gates`; fallback keeps one source-bound Vortex triplet and omits unsupported scalars.
|
||||
- **Caption ceiling:** distinct role morphology and bounded Kármán comparison only; no pooled efficacy, arbitrary-flow transfer or Illusion SR.
|
||||
|
||||
## Production checklist
|
||||
1. Verify role metadata, schemas and hashes against the reproduction manifest.
|
||||
2. Export Kármán/Illusion phase slot 0 and one selected Taylor offset for all roles; reserve the full offset sequence for Section 7.
|
||||
3. Audit vorticity units; retain lattice units if nondimensional conversion is not source-bound.
|
||||
4. Produce the single-offset target/control/zero Taylor comparison at 178 mm.
|
||||
5. Freeze and record crop, scale, clipping, masks and orientation within each comparison.
|
||||
6. Keep target → controlled → physical-zero labels stable and event offsets literal.
|
||||
7. Verify that Kármán remains dominant and Illusion remains readable.
|
||||
8. Record source files, hashes, scripts, selections and final dimensions.
|
||||
|
||||
## Fallback
|
||||
Use one source-bound target/controlled/physical-zero comparison at a single literal event offset. If crowded, reduce its footprint but retain all three roles; do not add multi-offset evolution, which Section 7 owns. If Illusion physical zero fails role audit, retain target/controlled and make no over-zero claim. Do not fill space with Reynolds-series, reward, SR/CCD, Erase or experiment panels.
|
||||
@@ -0,0 +1,57 @@
|
||||
# Section 4 Figure 1 — Kármán conditions and repeated learning
|
||||
|
||||
## Scientific question
|
||||
Across which retained periodic Kármán conditions were high-performing policies found, and how repeatably did the only five-realization condition progress toward high reward?
|
||||
|
||||
## Source plots, data and scripts
|
||||
Use `src/drl_pinball/train/results/latest/tables/latest_eval_summary.csv`, `src/drl_pinball/train/results/latest/tables/latest_results_summary.json`, `latest/HOW_TO_READ.md`, `train/results/training_csv/training_iterations.csv` and its manifest, `train/results/figures/scratch_training_summary.csv`, and `train/output/kar_re100_seed41–45/meta.json`. Existing logic is in `train/plot_latest_results.py` and `plot_scratch_results.py`; generated `fig01_re100_multiseed_learning`, `fig07_eval_cross_scene_metrics`, `fig12_vorticity_cross_re` and `fig13_vorticity_disturbance` are design references when present locally. **Redraw a focused manuscript composition from the exported tables.** Do not copy dashboards, retention panels or drawdown panels. No CFD or training is needed.
|
||||
|
||||
## Layout and dimensions
|
||||
- Two-column width, **178 mm × 120–138 mm**.
|
||||
- Upper 35–40%: two aligned condition groups—retained reward and DTW versus $Re_D=30,50,100,200$, and versus disturbance-radius ratio $0.75,1.0,1.5,2.0$.
|
||||
- Lower 60–65%: the five $Re_D=50$ reward trajectories over 500 training iterations; this is the visual anchor.
|
||||
- Reward and DTW occupy separate aligned mini-axes. No dual y-axis or composite score.
|
||||
- Reading order: tested range → highlighted reference condition → five repeated learning histories.
|
||||
|
||||
## Condition panels
|
||||
|
||||
### Reynolds series
|
||||
Use retained rows `kar_re60`, `kar_re100`, `kar_re200`, `kar_re400` after the article-wide conversion. Plot reward and six-sensor DTW, both higher-is-better, on separate axes. Label $Re_D=50$ `five searches; selected retained policy shown`; all other points are $n=1$. Use points only: no fitted line, uncertainty bar, interpolation or monotonic-law wording.
|
||||
|
||||
### Disturbance-radius series
|
||||
Use `kar_d075`, `kar_re100`, `kar_d15`, `kar_d2`. Mark ratios 0.75 and 2.0 with hollow symbols/daggers because they used learning rate $10^{-4}$ rather than the common $3\times10^{-4}$. Every non-reference point is $n=1$. Describe a tested condition series, not a pure diameter ablation.
|
||||
|
||||
## Five learning trajectories
|
||||
Filter `training_iterations.csv` for `case_id=kar_re100`, seeds 41–45 and iterations 1–500. Show raw thin lines. A 20-iteration rolling median may be overlaid only if the raw curves remain visible and the window is stated. Mark authoritative best checkpoints:
|
||||
- seed 41: 0.926638 at iteration 471;
|
||||
- seed 42: 0.930196 at 315;
|
||||
- seed 43: 0.916007 at 360;
|
||||
- seed 44: 0.922196 at 465;
|
||||
- seed 45: 0.941161 at 447.
|
||||
|
||||
Label the horizontal coordinate `training iteration`—one PPO learning chunk plus deterministic evaluation—not episode. Use a colourblind-safe palette and direct labels or a compact legend. Do not shade the final 50 iterations, print late-window ratios, draw best-to-late slopes or tell a retention-boundary story.
|
||||
|
||||
## Scales and statistics
|
||||
Use 0–1 reward and DTW ranges for the condition map by default. Keep 0–1 on the trajectories so early development and the common high-reward region remain visible. Do not collapse the five curves to a mean or uncertainty band. Training best and retained deterministic evaluation are different streams; never connect them as paired before/after measurements.
|
||||
|
||||
## Caption draft
|
||||
> **Periodic Kármán conditions and repeated high-reward learning.** (a,b) Retained deterministic reward and six-sensor DTW similarity for the uniform-inflow/free-slip-wall Reynolds series $Re_D=30,50,100,200$ and disturbance-radius ratios 0.75, 1.0, 1.5 and 2.0. Higher values indicate closer online-objective or signal matching, respectively. Only $Re_D=50$ has five searches; all other conditions are single realizations. The 0.75 and 2.0 disturbance cases used learning rate $10^{-4}$ rather than $3\times10^{-4}$ and are marked accordingly. (c) Reward trajectories for all five $Re_D=50$ stochastic realizations over 500 training iterations, with authoritative best checkpoints marked. All five progress from low reward to high-performing checkpoints, whose best rewards span 0.916–0.941. This supports repeatable high-performance policy discovery across the five tested realizations. Reward and DTW do not measure registered field error, and the displayed points do not define a continuous Reynolds or geometry law.
|
||||
|
||||
## Inference limits
|
||||
The figure shows a finite tested condition range and repeated high-performance discovery at the only replicated condition. It does not show broad hyperparameter/Reynolds/geometry robustness, statistical uncertainty at $n=1$, convergence guarantees, stability, transfer, current-contract retraining or independent field matching.
|
||||
|
||||
## Normalized readiness
|
||||
|
||||
Plan `specified`; table/metadata paths `path-confirmed`, generated figures `mapped` when present, raw reruns `not-covered`; reward/DTW orientation and retained rows `authority-bound`, Reynolds labels require metadata audit; render `redraw-required`; disposition `retain-with-gates`. Caption ceiling is finite tested conditions and repeated discovery only; fallback moves disturbance conditions to supplement.
|
||||
|
||||
## Production checklist
|
||||
1. Verify condition rows, selected seeds and metric orientation in `latest_eval_summary.csv`.
|
||||
2. Verify article $Re_D$ labels and disturbance-radius meaning against Section 2 and metadata.
|
||||
3. Extract five complete 500-iteration histories; match metadata best points to CSV flags.
|
||||
4. Render raw traces and optional documented smoothing; remove retention/drawdown elements.
|
||||
5. Mark realization counts and learning-rate confounds directly.
|
||||
6. Test separate reward/DTW strips at 178 mm and at least 7 pt.
|
||||
7. Record source rows, metadata, hashes, smoothing and plotting revision.
|
||||
|
||||
## Fallback
|
||||
If crowded, move the disturbance-radius group to the supplement and retain the Reynolds strip plus five trajectories. Do not split the curves into a third main figure, replace them with a mean band or restore retention graphics. The five trajectories are non-negotiable.
|
||||
@@ -0,0 +1,79 @@
|
||||
# Section 4 Figure 2 — Field matching and periodic control in the reference wake
|
||||
|
||||
## Scientific question
|
||||
In the deeply documented parabolic-inflow/no-slip-wall Kármán wake, how much closer is the controlled downstream field to its target, and what periodic sensor and applied-action organization accompanies it?
|
||||
|
||||
## Source plots, data and scripts
|
||||
|
||||
### Fields and scalar errors
|
||||
Use `src/drl_pinball/data/reproduction/legacy/karman_re100/{target,controlled,zero}/{metadata.json,phase_fields.npz,timeseries.csv,dtw_summary.json}`, `src/drl_pinball/eval/wake_l2.py` (`drl-pinball-wake-l2-v2`), the diagnostic `src/drl_pinball/data/reproduction_plots/legacy/karman_re100.png`, and `src/drl_pinball/plot_reproduction_summary.py`/`src/drl_pinball/plot_flow_fields.py`. This is the parabolic-inflow/no-slip-wall reference case (historical source label `karman_re100`; manuscript $Re_D$ pending the source-velocity conversion audit). The source label and any apparent numerical correspondence do not join it to the uniform-inflow/free-slip-wall $Re_D=50$ learning condition. Reuse the diagnostic for a proof; redraw/crop the three phase fields for production. Scalar L2 values are ready; fields still require role/hash/unit/crop audit.
|
||||
|
||||
### Applied PPO actions and sensors
|
||||
Use `src/SR_analysis/results/runs/article2-timeseries-csv-20260720/karman_re100/{target_wide.csv,ppo_wide.csv,ppo_manifest.json}` and `src/SR_analysis/results/runs/article2-plotting-package-20260721/{README.md,phase_alignment.json}`. The exact window is target indices 96–145, $t_D=38.4$–58.0, 50 samples and about three target cycles; current alignment lag is 0. Reuse the CSV window and redraw. Plot PPO applied-action columns only: the target has no action trajectory.
|
||||
|
||||
### Spectrum and visual precedent
|
||||
Confirmation views `docs/My_Confirmation/Graphs/{vort,error,sensor,freq,action}_cloak_vortex.pdf` guide reading order and compactness only. Recompute a centre-sensor spectrum offline from the same declared target/PPO/zero window if exact zero data and clock are bound; otherwise omit. Do not import old percentages or the claim that harmonics are essential.
|
||||
|
||||
## Layout and dimensions
|
||||
- Two-column width, **178 mm × 150–172 mm**.
|
||||
- Band 1, 40–44%: target → controlled → physical-zero vorticity triplet.
|
||||
- Band 2, 18–22%: two L2 dumbbells or paired points (mean and phase) over about 70% width; small target-normalized DTW pair at right.
|
||||
- Band 3, 34–40%: applied PPO rotations at left; centre-sensor portrait at upper right; optional compact spectrum at lower right.
|
||||
- Reading order: field roles → mean/phase errors → sparse-signal comparison → applied motion.
|
||||
|
||||
## Field panels
|
||||
- Variable: phase-slot-0 vorticity, labelled $\omega_zD/U_{ref}$ only after unit audit; otherwise exact lattice units.
|
||||
- Role order: target/reference → frozen PPO controlled → physical zero.
|
||||
- One common crop, geometry treatment and symmetric scale.
|
||||
- Display-crop candidate: $x/D=7$–48, $y/D=-5.975$–5.975 from the source-ready PPO package. This is not the metric ROI. It becomes a final display crop only after zero is reconciled on exactly the same region.
|
||||
- No eight-phase montage; the displayed field is one literal phase.
|
||||
|
||||
## Mean and phase L2
|
||||
- Complete-cycle mean: controlled 0.085771; physical zero 0.475206; relative reduction 0.819508.
|
||||
- Eight-slot phase diagnostic: controlled 0.112680; physical zero 0.630878; relative reduction 0.821392.
|
||||
- Show absolute pairs first and relative reductions as small labels.
|
||||
- Registered region: $-6\le(x-x_s)/D\le14$, $|(y-y_0)/D|\le5$, a $20D\times10D$ rectangle.
|
||||
- State the geometry guard and absence of a persisted solver-exact common-fluid mask.
|
||||
- Mean and phase are separate estimands, not uncertainty or repeated measurements.
|
||||
|
||||
## DTW, sensor portrait and spectrum
|
||||
- Target-normalized six-channel DTW similarity: controlled 0.932899; physical zero 0.625127; higher is better.
|
||||
- Keep DTW visually subordinate to L2; native values belong in the supplement.
|
||||
- Portrait axes: centre-sensor $u_x/U_{ref}$ and $u_y/U_{ref}$, role order target → controlled → physical zero, common limits.
|
||||
- Use the declared stable window for target/PPO. No exact source for a zero-role sensor portrait is currently bound; treat it as absent/unavailable. Show target/PPO only unless a role-bound comparable zero source is located, and retain zero only in authority-bound scalar metrics.
|
||||
- Optional spectrum uses centre-sensor $u_y$ from the exact portrait window, one normalization and one frequency axis. It may show dominant periodic alignment but not harmonic necessity.
|
||||
|
||||
## Applied rotations
|
||||
- Plot three applied PPO series for samples 96–145: front, upper and lower in native order.
|
||||
- Use source-native historical $\alpha=\omega/U_0$ only when the selected columns and role-local metadata bind that definition. Physical conversion is general and conditional: $s=\alpha R(U_0/U_{ref})$, reducing to $s=\alpha R$ only if authority establishes $U_0=U_{ref}$. Otherwise plot exact $\omega$ units. Do not mix commanded and effective/smoothed quantities.
|
||||
- Use one shared vertical scale and stable body colours. Print the time window and approximately three-cycle duration.
|
||||
- No target action, zero-action target proxy, SR trace or constant-control line.
|
||||
|
||||
## Colour, mask and crop controls
|
||||
Vorticity uses one symmetric target/control/zero scale and shared colour bar. L2 and DTW use neutral paired-point styling and remain visibly different quantities. Sensor colours encode roles; action colours encode bodies. Preserve x-right/y-up, source geometry and array orientation. Record clipping percentile or fixed limits.
|
||||
|
||||
## Caption draft
|
||||
> **Registered field matching and periodic control in the reference Kármán wake.** (a–c) Target, frozen-PPO controlled and physical-zero vorticity at phase slot 0 on a common crop and symmetric scale. (d) Complete-cycle mean velocity error is 0.0858 for controlled and 0.4752 for physical zero; the separate eight-slot phase diagnostic is 0.1127 and 0.6309, corresponding to reductions of 0.8195 and 0.8214 over the registered $20D\times10D$ downstream region. The phase diagnostic uses one nearest saved snapshot per independently phased slot, and the region is geometry-guarded because a solver-exact common mask was not persisted. (e) Target-normalized six-channel DTW similarity is 0.933 for controlled and 0.625 for physical zero; higher is better and DTW is a signal measure. (f) Applied PPO rotations over samples 96–145 ($t_D=38.4$–58.0$, approximately three target cycles). (g) Centre-sensor phase portrait [and, if retained, (h) spectrum from the same window]. The target has no action trajectory.
|
||||
|
||||
## Inference limits
|
||||
The field triplet and L2 show that controlled is closer to target than physical zero under both declared spatial estimands. DTW, portrait and spectrum describe complementary sparse-signal organization, and the applied rotations show the accompanying PPO motion. They do not identify a mechanism, universal periodic law or equivalence with later SR/CCD analyses.
|
||||
|
||||
## Portability and normalized readiness
|
||||
|
||||
Symlink/external role payloads and manifest-linked outputs are `mapped` but not locally resolved or portable merely because paths are named. Where an Illusion-family directory is referenced by inherited manifests, exact leaf bindings remain `missing-exact-leaf` unless printed in the final production record. A partial plot manifest authenticates only listed diagnostics, not package completeness or panel readiness.
|
||||
|
||||
Plan `specified`; controlling summaries/scripts `read` or `path-confirmed`, unresolved payloads `mapped`, raw arrays `not-covered`; L2/DTW `authority-bound`, action units and zero portrait `dependency-gated`; render `redraw-required`; disposition `retain-with-gates`. Caption ceiling is registered field proximity plus accompanying signal/action organization, not mechanism or SR/CCD equivalence; fallback omits spectrum, then DTW, and never fabricates zero alignment.
|
||||
|
||||
## Production checklist
|
||||
1. Audit role metadata, arrays, clocks, action order and hashes.
|
||||
2. Resolve the historical source-velocity convention and manuscript $Re_D$ conversion; until then, omit a Reynolds-number assignment from reader-facing text and retain the parabolic-inflow/no-slip-wall configuration label.
|
||||
3. Verify frozen wake-L2 rows without changing the evaluator.
|
||||
4. Export phase slot 0 for all roles; join zero only under common crop, phase and scale.
|
||||
5. Extract target/PPO indices 96–145 and a role-bound zero window if available.
|
||||
6. Select one applied-action quantity and label it consistently with Section 2.
|
||||
7. Compute a spectrum only from the displayed signal/window and record detrending/windowing/normalization.
|
||||
8. Keep L2 primary; drop spectrum before shrinking text below 7 pt.
|
||||
9. Record roles, indices, crop, scales, scripts and output hashes.
|
||||
|
||||
## Fallback
|
||||
First drop the spectrum. Second, move DTW to caption/prose. The required core is the target/control/zero field triplet, separate mean/phase L2, PPO action traces and one sensor portrait. If zero cannot be phase-aligned visually, retain target/PPO fields and show zero in L2; never fabricate alignment. Do not substitute SR, constant-reference or CCD fields, target actions, uncertainty bars or an eight-phase gallery.
|
||||
@@ -0,0 +1,89 @@
|
||||
# Section 5 figure specification — compact Kármán-cloaking control law
|
||||
|
||||
**Proposed main figure:** `A compact control law for Kármán cloaking`. **Owner:** Section 5. **Status:** production `dependency-gated`; existing images are diagnostic drafts only. **Configuration:** parabolic-inflow/no-slip-wall channel configuration. Internal provenance IDs remain in paths, not reader-facing labels.
|
||||
|
||||
## Overall layout and argument
|
||||
|
||||
Use a physics/results-centred four-panel composition: top row (a) closed-loop SR actions and performance, (b) direct controlled-flow result; bottom row (c) compact finite-deployment envelope if retained, (d) parent-relative deletion. Panel (c) is drop-first. No geometry/action schematic, reflection-map diagram or formula decomposition; Section 2 owns geometry/sign and the text owns $G$ and the law.
|
||||
|
||||
## Panel (a) — Closed-loop SR behavior in the reference source case
|
||||
|
||||
- **Argumentative job:** show finite, organized closed-loop actuation dominated by persistent opposite rear rotation with smaller modulation; connect action structure to achieved signal/field performance.
|
||||
- **Exact layout:** left two-thirds: three aligned time traces of the historical effective applied $\alpha_F,\alpha_U,\alpha_L$ over 160 retained boundaries, one shared nondimensional time/control-boundary axis. Right inset: native-DTW mean and spatial-L2 summary for SR and physical zero relative to target. Do not plot PPO unless the common-target dependency closes.
|
||||
- **Variables:** historical effective applied $\alpha=\omega/U_0$, labelled with its source lattice/nondimensional-length convention; optionally centre-sensor $u_y/U_{ref}$ only if legible. This trace is not `effective_smoothed_omega/U_ref`. If a physical surface command is discussed, use $s=\alpha R(U_0/U_{ref})$ and reduce it to $s=\alpha R$ only after source authority establishes $U_0=U_{ref}$. Never mix commanded and effective action.
|
||||
- **Roles/comparators:** SR primary; target reference; physical zero comparator. PPO only after reconciliation.
|
||||
- **Case/Re/configuration:** internal `legacy/karman_re100`, neutral reference source-case label, parabolic inflow/no-slip walls, 1280×512 acquisition.
|
||||
- **Metric/window:** 480 warm-up intervals, 160 retained boundaries; native DTW window 30. SR native mean `0.942357`; $E_{mean}=0.125404$ versus zero `0.475206`; $E_{phase8}=0.156040$ versus zero `0.630878`. Registered ROI $-6\le(x-x_s)/D\le14$, $|y-y_0|/D\le5$, geometry-guarded without a persisted solver-exact mask.
|
||||
- **Data/artifact sources:** `src/drl_pinball/data/reproduction/legacy/karman_re100/{sr,zero,target}/timeseries.csv`; role `metadata.json` and `dtw_summary.json`; `src/drl_pinball/data/reproduction/sr_wake_l2_summary.{json,csv}`.
|
||||
- **Processing/render source:** new publication extraction/plotting required. Parsing conventions exist in `src/drl_pinball/plot_reproduction_summary.py`, which currently renders sensor portraits rather than action traces.
|
||||
- **Readiness:** `available-data` for SR/zero/target; `dependency-gated` for PPO; publication renderer absent.
|
||||
- **Visual conventions:** front dark grey; upper rear blue; lower rear orange; zero/reference light grey. Identical action limits; annotate persistent rear offsets without decorative decomposition.
|
||||
- **Caption claim:** the executable law sustains dominant opposite rear rotation with smaller time-dependent corrections and remains close to the declared target under the named standardized window.
|
||||
- **Explicit non-claims:** no PPO symmetry, plant-symmetry proof, mechanism, stability, robustness, necessity, field equivalence from DTW or cross-configuration transfer.
|
||||
- **Supplement fallback:** full action/sensor/reward traces and commanded-versus-effective comparison.
|
||||
|
||||
## Panel (b) — Direct SR-controlled wake result
|
||||
|
||||
- **Argumentative job:** directly show that SR deployment moves the downstream wake toward the Kármán target relative to physical zero.
|
||||
- **Exact layout:** horizontal triptych Target | SR | physical zero, all phase slot 0, one shared domain retaining pinball and registered downstream ROI, one shared vertical colour bar. Put compact $E_{mean}$ and $E_{phase8}$ annotations under SR and zero; no sensor portraits.
|
||||
- **Variables:** spanwise vorticity $\omega_z=\partial_xu_y-\partial_yu_x$ from `ux`,`uy`; optional unobtrusive ROI outline.
|
||||
- **Roles/comparators:** target reference; SR controlled; physical-zero comparator. PPO omitted by safe default.
|
||||
- **Case/Re/configuration:** same neutral source case as panel (a).
|
||||
- **Metric/window:** slot 0 is one nearest-boundary snapshot on each independently phased role's common mathematical phase coordinate; complete-cycle mean and eight-slot diagnostics as above; no global phase minimization/interpolation.
|
||||
- **Data/artifact sources:** `.../karman_re100/{target,sr,zero}/phase_fields.npz`, metadata/hashes in `src/drl_pinball/data/reproduction_plots_sr/manifest.json`; metrics in `sr_wake_l2_summary.json`.
|
||||
- **Processing/render source:** vorticity computation in `src/drl_pinball/plot_reproduction_summary.py`; draft `src/drl_pinball/data/reproduction_plots_sr/legacy/karman_re100.png`.
|
||||
- **Readiness:** `available-data`, `draft-only` rendering; needs publication crop, typography, labels, ROI annotation and hash/access check.
|
||||
- **Visual conventions:** fixed symmetric vorticity scale, initially $[-10^{-3},10^{-3}]$ lattice$^{-1}$; diverging map centred at zero; identical extent/aspect and cylinder outlines. No role-specific limits.
|
||||
- **Caption claim:** SR is closer to target than physical zero in complete-cycle mean and eight-slot spatial L2; the slot-0 vorticity view illustrates that named comparison.
|
||||
- **Explicit non-claims:** snapshot is not itself the L2 estimand; no exact solver mask, full-state identity, causality, repeated-cycle uncertainty or equivalence to Section 4 PPO fields.
|
||||
- **Supplement fallback:** all eight phase slots and current sensor phase portraits.
|
||||
|
||||
## Panel (c) — Finite formula-parent deployment envelope (optional)
|
||||
|
||||
- **Argumentative job:** show one frozen law remains executable over named finite deployments while similarity weakens toward the highest tested condition.
|
||||
- **Exact layout:** compact points of native Legacy DTW similarity against neutral source-case labels, separate markers for 200- and 400-control-step deployments; no fitted trend.
|
||||
- **Variables:** native similarity (higher is better) versus neutral source-case label.
|
||||
- **Roles/comparators:** formula-parent SR versus each declared target; not PPO/zero.
|
||||
- **Case/Re/configuration:** internal `Re_code` values 50/100/200/400 retained in provenance only; use neutral source-case labels pending velocity-reference authority, in the same parabolic/no-slip configuration.
|
||||
- **Metric/window:** native `legacy_dtw_v1_abs_n_unclipped`; 200-step `0.9543,0.9427,0.8560,0.7827`; 400-step `0.952178,0.944339,0.863850,0.833365`.
|
||||
- **Data/artifact sources:** `src/SR_analysis/results/runs/article-L3-karman-20260718/`, `article2-long-karman-20260720/`; `src/SR_analysis/CLAIMS.md`, `results/README.md`.
|
||||
- **Processing/render source:** no publication renderer identified; Article2 plotting/CSV products are derived inputs.
|
||||
- **Readiness:** `available-data`, production `dependency-gated`; exact row extraction/labels needed.
|
||||
- **Visual conventions:** discrete markers and neutral source-case labels; lines only as visual guides; state one realization per condition/window. No reader-facing Reynolds values.
|
||||
- **Caption claim:** the law completes the named 200- and 400-step deployments, with weaker similarity in the later neutral-labelled source cases.
|
||||
- **Explicit non-claims:** no asymptotic stability, robustness distribution, continuous Reynolds law, generalization or same-protocol PPO/zero comparison.
|
||||
- **Supplement fallback:** omit from main figure and move deployment/unseen-condition diagnostics to supplement (preferred compression).
|
||||
|
||||
## Panel (d) — Parent-relative term deletion
|
||||
|
||||
- **Argumentative job:** rank tested components: rear constant largest, rear-lift feedback secondary, front correction weak/mixed.
|
||||
- **Exact layout:** grouped dot plot of $\Delta S=S_{deleted}-S_{parent}$ versus the same neutral source-case labels, series for delete rear constant (`k_rear1`), rear-lift feedback (`k_rear0`) and front correction (`k_front0`); zero line; negative means degradation. No uncertainty bars.
|
||||
- **Variables:** change in native DTW similarity relative to same-case parent.
|
||||
- **Roles/comparators:** each deletion only against its canonical parent at the same case and 40-step window.
|
||||
- **Case/Re/configuration:** same four Kármán cases/configuration as panel (c).
|
||||
- **Metric/window:** exact native DTW contract: six channels; one shared historical circular lag; score each channel at that shared lag and then take the channel mean; higher is better. Use the same fixed 40-control-step window for each parent/deletion pair and plot $\Delta S=S_{deleted}-S_{parent}$. Rear constant: `-0.106537,-0.093869,-0.178525,-0.191082`; rear feedback: `-0.028755,-0.041660,-0.061363,-0.048948`; front: `-0.006520,+0.000579,-0.005179,-0.025194`.
|
||||
- **Data/artifact sources:** `src/SR_analysis/results/runs/article2-plotting-package-20260721/tables/term_deletion.{csv,md}` and immutable run families named there.
|
||||
- **Processing/render source:** new publication plot required. Existing standardized field drafts `src/drl_pinball/data/reproduction_plots_sr/legacy/variants/karman_re100_k_{front0,rear0,rear1}.png` use longer acquisitions and do not generate the 40-step deltas.
|
||||
- **Readiness:** numerical plot `available-data`; existing field images `draft-only` and non-equivalent in window; renderer absent.
|
||||
- **Visual conventions:** colourblind-safe palette, common marker positions/y-axis, label physical term rather than internal ID; caption says parent-relative fixed-window deletion.
|
||||
- **Caption claim:** deleting the persistent rear constant produces the largest listed degradation across all four cases; rear-lift feedback is smaller and non-zero; tested front correction is weak/mixed.
|
||||
- **Explicit non-claims:** not causal ablation, necessity, sufficiency, unique decomposition, mechanism, uncertainty, long-horizon ranking or universal sensitivity.
|
||||
- **Supplement fallback:** full deletion table, retained formulas and standardized variant field diagnostics.
|
||||
|
||||
## Historical-alpha extraction and DTW non-interchangeability
|
||||
|
||||
For every retained role, extract historical effective applied alpha by dividing that role's `effective_smoothed_omega_*` columns by its role-local `metadata.json` `u0`. Record the exact retained rows, control-boundary axis, source units, role metadata path and source hashes in the production manifest. Do not infer a reader physical Reynolds label and do not mix commanded omega/alpha with effective smoothed quantities. A neutral internal-to-source-label mapping and exact row/run binding are mandatory.
|
||||
|
||||
The standardized rolling native-DTW diagnostic uses window 30 and a role summary; its lag channel is recorded in that summary. The fixed-cycle deletion diagnostic uses the separately specified 40-control-step implementation contract with one shared historical circular lag. They are non-interchangeable and must not share labels, rows or interpretations. Partial plot manifests authenticate only the diagnostics they enumerate, not payload completeness, portability or readiness.
|
||||
|
||||
## PPO inclusion dependency and honest fallback
|
||||
|
||||
The standardized tree and draft `karman_re100.png` contain Target/PPO/SR/Zero, but PPO and SR acquisitions bind independently generated target arrays with different hashes. Before a quantitative four-role panel, reconcile target identity and compute every role with one declared metric/window. Until then, use formula-parent deployment and standardized Target/SR/physical-zero evidence; Section 4 retains PPO performance ownership.
|
||||
|
||||
## Normalized readiness
|
||||
|
||||
Plan `specified`; repository authorities/paths `read` or `path-confirmed`, symlink/external payloads `mapped` and possibly not locally resolved, raw arrays `not-covered`; standardized SR metrics and deletion rows `authority-bound`, exact extraction/run/hash manifest `dependency-gated`, PPO common-target comparison `blocked`; render `redraw-required`; disposition `retain-with-gates`. Caption ceiling excludes causality, mechanism, physical Reynolds conversion and commanded/effective mixing. Fallback omits PPO and deployment envelope, retaining law, Target/SR/zero and fixed-window deletion.
|
||||
|
||||
## Production checklist
|
||||
|
||||
Verify external payload access and hashes; extract effective actions and retained axis; freeze neutral source-case labels pending velocity-reference authority; decide panel (c) omission; reconcile targets before PPO inclusion; preserve slot/phase/mask caveats; create a dedicated publication renderer/output sibling without overwriting evidence; record source hashes, environment and final crop/colour limits.
|
||||
@@ -0,0 +1,172 @@
|
||||
# Section 6 figure specifications — Kármán mean fields and CCD
|
||||
|
||||
**Status:** textual production specification. Inventory and existing drafts do not imply manuscript-panel readiness.
|
||||
|
||||
## Shared scientific identity
|
||||
|
||||
- **Physical case:** periodic Kármán cloak, parabolic-inflow/no-slip-wall channel configuration; inherited code label 100 retained in provenance only; use a neutral reference source-case label pending velocity-reference authority.
|
||||
- **Mean-field roles:** target, physical zero, constant reference at the exact retained DRL physical action mean, and DRL.
|
||||
- **Primary mean estimand:** coordinate-weighted vector RMS target error of retained role means on the exact four-role common solver-fluid mask, inclusive `34<=x/D<=54`, `|y/D|<=5`, 80,200 fluid points. Persisted velocity is already nondimensional.
|
||||
- **Residual identity:** separately centred DRL cycle/bin field minus the separate constant-control 19-cycle ensemble phase template; 19 DRL cycles × 10 bins, `N=190`, no cross-role pairing.
|
||||
- **Internal provenance only:** current corrected result and publication paths may retain internal chain identifiers; captions use the physical configuration above.
|
||||
|
||||
## S6-1 — Mean streamwise correction and vector-error accounting
|
||||
|
||||
### Argumentative job
|
||||
|
||||
Show the physically legible streamwise pattern first—passive deficit relative to target and controlled addition relative to physical zero—then bind it to the exact two-component scalar error-reduction estimand. Establish mean dominance without calling it a physical/causal contribution.
|
||||
|
||||
### Exact layout
|
||||
|
||||
- **Top row, four equal field panels (a–d):** `mean_target[u_x]`, `mean_zero[u_x]`, `mean_constant_mean[u_x]`, `mean_drl[u_x]`.
|
||||
- **Bottom-left, two wider signed-difference panels (e–f):** `mean_zero[u_x] - mean_target[u_x]`; `mean_drl[u_x] - mean_zero[u_x]`.
|
||||
- **Bottom-right, one compact ledger (g):** target-error markers/bars at zero `0.4694352273`, constant `0.1110140739`, DRL `0.0857787860`; ordered brackets `zero→constant=0.3584211534`, `constant→DRL=0.0252352879`, total `0.3836564413`; labels `93.42%` and `6.58%` explicitly as shares of the measured scalar error reduction.
|
||||
- Crop every field to the declared ROI; show body/ROI context only in a small locator inset if needed, because bodies lie upstream of this ROI.
|
||||
|
||||
### Variables and subtraction order
|
||||
|
||||
- Panels (a–d): retained mean streamwise velocity, not speed or vector magnitude.
|
||||
- Panel (e): **physical zero minus target**. Negative values denote lower streamwise velocity than target under the repository coordinate/sign convention.
|
||||
- Panel (f): **DRL minus physical zero**. Positive values denote streamwise velocity added relative to passive zero.
|
||||
- The two fields are compared visually as signed complements; do not label one as an exact negative of the other.
|
||||
- Ledger uses both `u_x` and `u_y`; it is not computed from panels (e–f) alone.
|
||||
|
||||
### Roles, case, metric, ROI, mask and window
|
||||
|
||||
- Roles: target / physical zero / constant reference / DRL from one corrected four-role campaign.
|
||||
- Case/configuration: periodic Kármán cloak, parabolic inflow and no-slip channel walls, inherited code label 100.
|
||||
- Metric: `E_r=[sum_K w_k ||mean(q_r)-q_target||_2^2/sum_K w_k]^(1/2)`; coordinate weights duplicated across both velocity components.
|
||||
- ROI/mask: inclusive `34<=x/D<=54`, `|y/D|<=5`; exact intersection of all four solver-derived fluid masks; 80,200 points.
|
||||
- Window: retained means bound by the corrected role campaigns; do not substitute Section-4 complete-cycle standardized means. Exact retained role/window provenance must be copied into the final production manifest: role identities, parent source leaves and hashes, retained row/slice bounds, cycle/bin windows, mask/weight contract, array orientation/transposition, render command/revision, crop/scale/clipping, and output hashes. Until that record exists, production remains dependency-gated.
|
||||
|
||||
### Data and artifact sources
|
||||
|
||||
- Exact arrays: `/home/frank14f/optane/DynamisLab/ccd/karman-dynamic/canonical/results/roi-mean/arrays.npz`.
|
||||
- Result summary/manifest: same directory `summary.json`, `manifest.json`; source manifest hash `f7f6141042678e52314a4d8f76d589108da8e844c8ce504f8f523a6f88a17e73`.
|
||||
- Repository authority: `src/CCD_analysis/{RESULTS_INDEX.md,FINAL_RESULTS.md,MATHEMATICAL_DERIVATION.md,FIGURES_AND_DATA.md}` and `src/CCD_analysis/karman_dynamic/{CORRECTED_MATH_CONTRACT.md,dynamic_increment.py,publication.py}`.
|
||||
- Existing drafts: external and repository reader copy `publication-review-fix-per-cycle-20260808T1736+0800/{01_roi_mean_performance,02_roi_mean_target_error_fields,03_roi_mean_corrections}.{png,pdf}`.
|
||||
- Existing render source: `src/CCD_analysis/karman_dynamic/publication.py`.
|
||||
|
||||
### Readiness
|
||||
|
||||
- **Arrays/values:** ready and authority-bound.
|
||||
- **Existing useful panels:** draft-ready only. `02` already contains `zero-target` for `u_x/u_y`; `01` supplies the scalar ledger; `03` supplies `constant-zero` and `DRL-constant` but not the requested `DRL-zero`.
|
||||
- **Requested composite:** dependency-gated new render. `DRL-zero` must be directly calculated as `mean_drl - mean_zero` from the stored means and recorded in a future output manifest with input paths/hashes, subtraction order, units, orientation and output hash; no substitution by `DRL-constant` is allowed. No CFD or new scientific estimator is required.
|
||||
- **Independent sign check:** weighted ROI mean-$u_x$ cosine of requested fields `-0.9961` and relative residual `0.1662` were computed read-only for design verification. Do not print these values unless the coordinator extends current claim authority.
|
||||
|
||||
### Color and sign conventions
|
||||
|
||||
- Four absolute mean-$u_x$ panels: one shared sequential or diverging scale chosen from all four arrays; label units/nondimensionalization exactly from authority. If a sequential scale obscures deviations, use a physically meaningful common scale but never independently autoscale roles.
|
||||
- Difference panels: one shared symmetric diverging scale centred at zero, preferably `RdBu_r`; positive must mean the named first role has larger `u_x` under the printed subtraction.
|
||||
- Mask non-fluid cells; transpose stored `(x,y)` arrays for plotting. Never infer sign from color without a labelled color bar.
|
||||
- Optional zero contours on both difference panels should use identical styling.
|
||||
|
||||
### Caption claim
|
||||
|
||||
“Relative to the target, the passive pinball produces a downstream mean-streamwise deficit over much of the declared wake ROI, while DRL adds a largely opposite-signed streamwise correction relative to physical zero. This pattern is compatible with adding streamwise velocity where the passive configuration produces a deficit. The scalar ledger evaluates both velocity components on the exact common mask: the constant reference accounts for 93.42% of the measured zero-to-DRL scalar mean-field error reduction and the constant-to-DRL increment accounts for the remaining 6.58%.”
|
||||
|
||||
### Explicit non-claims
|
||||
|
||||
No momentum restoration; no exact cancellation; no closed momentum/energy budget; no causal actuator effect; no mechanism; no physical contribution percentage; no energy/explained variance; no SR-term share; no Section-4 replication/agreement; no cross-case universality.
|
||||
|
||||
### Supplement fallback
|
||||
|
||||
If the seven-panel composition is illegible, retain panels (e–g) in main text and move the four absolute means to Supplement S6-S0. If raw composite production fails, use the existing scalar ledger plus `zero-target` draft and state that `DRL-zero` is omitted; do not substitute `DRL-constant` under the wrong label.
|
||||
|
||||
## S6-2 — Non-paired residual and action-coordinate phase organization
|
||||
|
||||
### Argumentative job
|
||||
|
||||
Explain what CCD adds after the mean ledger: a low-rank representation of the separately centred residual associated with action coordinates and organized over phase. Keep the result descriptive and avoid a mode gallery.
|
||||
|
||||
### Exact layout
|
||||
|
||||
- **Panel (a), left 25%:** residual construction schematic with the equation `U_(c,b)=(q^D_(c,b)-bar q_D)-(hat q^C_b-bar q_C)`, `19×10`, and a visible “cycles not paired” annotation.
|
||||
- **Panel (b), centre 25%:** compact 3×3 action-coordinate matrix or bars: rows `front`, `rear-symmetric`, `rear-antisymmetric`; columns modes 1–3. State global mode-sign arbitrariness.
|
||||
- **Panels (c–d), right 50%:** rank-3 mean residual reconstructions at two registered representative phase bins nearest `0` and `pi` (use four bins nearest `0,pi/2,pi,3pi/2` only if final-size legibility passes). Show signed `u_x`; use the exact registered bins from `representative_phase_bins`.
|
||||
- Do not include all individual mode fields in main text. A small rank/stability note may state `rank 3`, not singular-strength shares.
|
||||
|
||||
### Variables, roles and estimand
|
||||
|
||||
- Field residual uses both velocity components internally; displayed phase reconstruction is `u_x` and must be labelled as a component view.
|
||||
- Constant phase template is the ensemble mean over its own 19 cycles. DRL and constant cycles are not paired.
|
||||
- Observable is same-boundary DRL effective action in native front/upper/lower order, exact retained physical action mean removed, then empirical centering.
|
||||
- Operator: `A=P_c(W^(1/2)U_c)^T/(N sqrt(3))`, `N=190`, `Q=1`; no whitening, standardization, lag, wrap or POD preprojection.
|
||||
|
||||
### Domain, source and readiness
|
||||
|
||||
- Preferred display domain: pinball-inclusive `29<=x/D<=54`, `|y/D|<=5`, exact common-fluid mask, 99,264 points, `M=198528`.
|
||||
- Preferred result: `/home/frank14f/optane/DynamisLab/ccd/karman-dynamic/canonical/results/pinball-domain-20260809T1925+0800/`, manifest hash `7e107a895364ed3e34abf2be513a3ce9e12736766ec6383c5b831891802d5828`.
|
||||
- Repository plot arrays: `src/CCD_analysis/data/karman-dynamic/canonical/publication-pinball-domain-20260809T1925+0800/plot_data.npz` and `plot_data.json`.
|
||||
- Existing drafts: `01_domain_estimand`, `02_ccd_mode_identity`, `03_phase_reconstruction`, `04_raw_pod_vs_ccd` PNG/PDF groups.
|
||||
- Render sources: `src/CCD_analysis/karman_dynamic/{domain_comparison.py,mode_diagnostics.py,pod_baseline.py}`; standalone single-mode redraw helper `src/CCD_analysis/plot_ccd.py` is insufficient for the full composite.
|
||||
- **Readiness:** source arrays and existing views ready; manuscript recomposition dependency-gated. Phase panels may be extracted/redrawn without new CFD. The residual schematic is specification-ready.
|
||||
|
||||
### Color and sign conventions
|
||||
|
||||
- Phase residual `u_x`: one shared robust symmetric diverging limit across selected phases, centred at zero.
|
||||
- Mode/action columns: if individual mode signs are shown, use the same sign convention as the bound publication and state that global sign is arbitrary. Physical phase sign is carried by coefficient × mode, not mode color alone.
|
||||
- Stored plot arrays use `(x,y)` and require transpose for display. Overlay exact mask; body circles are geometry guides only.
|
||||
|
||||
### Caption claim
|
||||
|
||||
“After separate centring, the DRL fields are compared with an independently formed constant-control phase template; cycles are not paired. CCD associates the resulting rank-3 residual representation with centred same-boundary action coordinates and displays its phase organization. These are action-correlated correction-field modes, not causal responses or unique flow structures.”
|
||||
|
||||
### Explicit non-claims
|
||||
|
||||
No paired counterfactual; no response time/lag; no causal direction; no actuator authority; no mechanism; no wall-vorticity interpretation; no explained variance from CCD singular strengths; no individual-mode stability claim; no SR derivation; no independent triangulation.
|
||||
|
||||
### Supplement fallback
|
||||
|
||||
If action matrix plus phase fields remains crowded, main text keeps residual schematic + two phase reconstructions and moves action-coordinate matrix with all individual modes to S6-S1. Text then states the association without showing a mode gallery.
|
||||
|
||||
## Shared normalized readiness
|
||||
|
||||
Plan `specified`; repository authorities and named repository copies `read/path-confirmed`, external absolute payloads `mapped` rather than newly audited, raw-array recomputation `not-covered`; S6-1/S6-2 estimands `authority-bound` but exact retained role/window and final render-manifest provenance `dependency-gated`; render `redraw-required`; disposition `retain-with-gates`. A partial plot manifest authenticates only available diagnostics, not completeness/readiness. Caption ceiling remains descriptive/noncausal and different-estimand; fallback uses existing scalar ledger plus `zero-target`, never a substituted difference.
|
||||
|
||||
## S6-S1 — Raw POD boundary and CCD diagnostics (supplement)
|
||||
|
||||
### Argumentative job and layout
|
||||
|
||||
Define familiar POD as a variance/energy-optimal field organization under the declared weighted metric without action information; compare its rank-3 subspace with CCD on the same centred residual. Use a compact principal-cosine strip/table plus optional aligned POD/CCD mode pairs and stability inset. Detailed mode parity and body-local rotation proxy, if retained, belong here.
|
||||
|
||||
### Exact source and metric
|
||||
|
||||
- Same pinball-inclusive residual/domain/result as S6-2.
|
||||
- Raw full-fit weighted POD Gram matrix `G=U_c^T W U_c`; no action observable selects POD.
|
||||
- Principal cosines are singular values of `Phi^T W Psi`: `[0.9999616609, 0.9998971005, 0.9976439804]`.
|
||||
- Minimum declared bin/cycle rank-3 stability cosine `0.9974651867`.
|
||||
- Source: preferred `04_raw_pod_vs_ccd` draft and compact result arrays; math in `MATHEMATICAL_DERIVATION.md`.
|
||||
|
||||
### Readiness, caption and non-claims
|
||||
|
||||
**Readiness:** numerical and draft-view ready; publication recomposition required. Caption claim: POD and CCD span essentially the same tested rank-3 field subspace; CCD supplies action-coordinate association, not a distinct field basis. Do not claim CCD/POD superiority, exact identity, held-out prediction, independent uncertainty, unique modes, causal relevance or energy meaning for CCD singular strengths.
|
||||
|
||||
## S6-S2 — Optional cross-cloak signed mean-$u_x$ audit (supplement only)
|
||||
|
||||
### Argumentative job
|
||||
|
||||
Test whether the visual `zero-target` / `controlled-zero` sign pattern recurs beyond the deep case without transferring its quantitative estimand or interpretation.
|
||||
|
||||
### Candidate source inventory
|
||||
|
||||
- Linked root: `src/drl_pinball/data/reproduction` → external reproduction authority.
|
||||
- Periodic `phase_fields.npz` normally stores `mean_ux`, `mean_uy` from complete cycles.
|
||||
- Directly inspected available means:
|
||||
- parabolic/no-slip inherited Kármán labels `karman_re50`, `karman_re100`, `karman_re200`, `karman_re400`;
|
||||
- uniform/free-slip Reynolds cases `kar_re60`, five `kar_re100` controlled realizations, `kar_re200`, `kar_re400`;
|
||||
- uniform/free-slip disturbance-size cases `kar_d075`, `kar_d15`, `kar_d2`.
|
||||
- Existing images: `src/drl_pinball/data/reproduction_plots/{legacy,v5}/*.png` show phase-0 vorticity, not mean-$u_x$ differences.
|
||||
- Scripts: `plot_reproduction_summary.py` renders phase-0 vorticity; `plot_flow_fields.py` reads complete means but renders nonnegative vector target-error magnitude, not signed mean-$u_x$ pairs.
|
||||
|
||||
### Required layout and per-panel contract if commissioned
|
||||
|
||||
For each selected case, two adjacent fields: `mean_zero[u_x]-mean_target[u_x]` and `mean_controlled[u_x]-mean_zero[u_x]`. Print physical configuration, case, controlled realization/seed, complete-cycle role windows, mask policy and scale above each pair. Use shared symmetric scale within a case pair; use one global scale across cases only after unit/nondimensionalization and range audit. Never combine configurations in a common scalar score.
|
||||
|
||||
### Readiness and dependencies
|
||||
|
||||
**Source arrays:** available for the cases listed. **Existing signed plots:** absent. **Render code:** absent for this exact panel. **Panel readiness:** **S6-S2 remains blocked** pending case selection, role/window and mask audit, nondimensionalization/scale decision, and a dedicated read-only renderer. A preliminary unweighted full-grid check found broadly opposite signs in most cases but weakening at harder/high-Re/large-disturbance conditions; it is diagnostic only and must not appear as a result.
|
||||
|
||||
### Caption claim and non-claims
|
||||
|
||||
Allowed caption after audit: “Selected periodic cloak cases show qualitatively opposing passive-deficit and controlled-minus-passive mean-streamwise patterns under their own role and window contracts.” Prohibit common quantitative complementarity, exact cancellation, universal cloak mechanism, transfer of `93.42/6.58`, transfer of the exact common-mask ROI, CCD interpretation, robustness/generalization, or momentum restoration.
|
||||
@@ -0,0 +1,84 @@
|
||||
# Section 7 Figure 1 — Vortex event response
|
||||
|
||||
## Argumentative job
|
||||
|
||||
Show role identity and morphology for one nonperiodic incoming-event acquisition under an event-relative contract at central Taylor-vortex incidence and offset `+10`. No efficacy result, reactive-control conclusion or arbitrary-flow implication is available before a versioned evaluator closes the quantitative gate.
|
||||
|
||||
## Selected case, roles and variables
|
||||
|
||||
- Physical case: central Taylor-vortex incoming disturbance in the parabolic-inflow/no-slip-wall channel configuration.
|
||||
- Provenance ID: `legacy/vortex_taylor_y000`; internal label remains caption provenance only.
|
||||
- Selected event coordinate: `relative_offset=+10`, array slot 4. Call it an event offset, never phase.
|
||||
- Exact roles: independently acquired `target`, frozen-PPO `controlled`, and `physical-zero`.
|
||||
- Primary variable: vorticity `omega_z` for morphology, with optional streamlines as a thin overlay or paired strip.
|
||||
- Quantitative target-error variables remain blocked pending a versioned evaluator. Do not print provisional normalization, ROI-error maps or scalar comparisons.
|
||||
- Event/action context: a narrow action trace or author-drawn event schematic may locate offset `+10`. The author draws any geometry/event schematic; do not infer physical time from the integer offset without an authority conversion.
|
||||
|
||||
## Source artifacts
|
||||
|
||||
- Fields: `src/drl_pinball/data/reproduction/legacy/vortex_taylor_y000/{target,controlled,zero}/event_fields.npz`.
|
||||
- Metadata/timing/actions: sibling `metadata.json`, `event_summary.json`, `timeseries.csv` and `timeseries.npz`.
|
||||
- Draft renders: `src/drl_pinball/data/reproduction_flow_plots/all/legacy/vortex_taylor/vortex_taylor_y000/{target,controlled,zero}/`.
|
||||
- Relevant ready files include `vorticity/event4_offset+10.000.png`, `streamlines/event4_offset+10.000.png`, and controlled/zero `error/event4_offset+10.000.png`.
|
||||
- Rendering authority: `src/drl_pinball/plot_flow_fields.py`; source/render lineage is recorded in `data/reproduction_flow_plots/all/manifest.json`.
|
||||
- Existing summary montage `data/reproduction_plots/legacy/vortex_taylor_y000.png` uses offset `-10` and is navigation/draft material, not the selected main result.
|
||||
|
||||
## Layout
|
||||
|
||||
Use a compact two-tier composition, not five offsets by three roles.
|
||||
|
||||
1. **Top context strip (15–20% height):** author-drawn incoming-event marker plus the three physical action commands/effective actions around the selected event. Mark the selected boundary `o=+10`. If trace legibility is poor, retain only the schematic and move action traces to supplement.
|
||||
2. **Main row (55–60%):** target, controlled and physical-zero vorticity fields, in that order, cropped on identical coordinates. Label roles above panels; label `event offset +10` once for the row.
|
||||
3. **Bottom evidence row (20–25%):** omit target-error maps and scalar comparisons until a versioned evaluator exists. Fallback: physical-variable target, controlled and physical-zero role fields only, with a compact acquisition-status note outside the visual comparison.
|
||||
|
||||
Do not include Lamb and five vertical Taylor incidences in the main figure. They may form a supplementary coverage strip only after the central result is fixed.
|
||||
|
||||
## Crop and morphology scales
|
||||
|
||||
- Full-field crop should retain incoming structure, pinball and downstream sensing context while removing uninformative far boundaries. Use identical pixel/domain bounds for all three roles.
|
||||
- Vorticity: one symmetric common scale across target/controlled/zero; current draft setting is `[-0.0015,+0.0015]` in `plot_flow_fields.py`. Confirm final nondimensional label before publication.
|
||||
- Streamlines use identical density/crop; do not let streamline density imply metric weight.
|
||||
|
||||
## Metric semantics and event-L2 status
|
||||
|
||||
No stored event-L2 result was found. `src/drl_pinball/eval/wake_l2.py` excludes Legacy Vortex and reads only periodic `phase_fields.npz` or steady `late_field.npz`; it does not consume `event_fields.npz`. Existing error PNGs are pixelwise draft maps, not stored ROI-L2 summaries.
|
||||
|
||||
No provisional evaluator values, normalization constants or ROI-derived efficacy diagnostics are retained in this plan.
|
||||
|
||||
## Candidate versioned evaluator requirements
|
||||
|
||||
Before any quantitative display can be reconsidered, a separately authorized versioned evaluator would need to:
|
||||
|
||||
1. validates exact `event_fields.npz` keys, finite equal shapes and identical `relative_offsets` across target/controlled/zero;
|
||||
2. selects offset `+10` by value, never by assumed slot alone;
|
||||
3. verifies role metadata, case/scenario identity, normalization authority, field quantity and source hashes;
|
||||
4. applies the declared geometry guard/common-fluid policy and exact inclusive ROI;
|
||||
5. computes per-role two-component RMS error and `eta=1-E_controlled/E_zero`;
|
||||
6. stores versioned JSON/CSV with formula, units, ROI, role paths/hashes, offset and limitations;
|
||||
7. regenerates publication-resolution vorticity/error panels from arrays, not by resizing draft PNGs.
|
||||
|
||||
This is an evaluator-design gate, not authorization to run it and not a pre-result.
|
||||
|
||||
## Caption interpretation
|
||||
|
||||
Caption sequence: identify the central Taylor event and offset `+10`; define target/controlled/physical-zero roles; state that offsets are event-relative; state quantitative semantics only after a versioned output passes audit; until then report role identity, event coordinate and morphology only.
|
||||
|
||||
Allowed interpretation before the gate closes: the named acquisition provides target, controlled and physical-zero event-relative role fields with distinguishable morphology. No efficacy or reactive/local-information conclusion is licensed.
|
||||
|
||||
## Readiness
|
||||
|
||||
- Role fields and metadata: **available and audited for existence/schema**.
|
||||
- Offset `+10` draft vorticity/streamline/error images: **available; draft/source quality**.
|
||||
- Event action timeseries: **available; selection/render still required**.
|
||||
- Stored event-L2: **absent**.
|
||||
- Candidate evaluator inputs: **identified but not a result or execution authorization**.
|
||||
- Publication scalar/panel: **dependency-gated on versioned evaluator output and redraw**.
|
||||
- Fallback: show physical-variable target/controlled/physical-zero role fields only; no error maps or scalars.
|
||||
|
||||
## Normalized readiness and fallback
|
||||
|
||||
Plan `specified`; role fields/metadata paths `path-confirmed`, payload contents `mapped`, raw arrays `not-covered`; morphology metric `N/A: physical-variable role display`, event efficacy `blocked`; render `draft-diagnostic-only` then `redraw-required`; disposition `fallback-only` until a versioned evaluator exists. Exact role fields are available, but quantitative Vortex products are blocked. Caption ceiling is role identity, event offset and morphology; fallback is target/controlled/physical-zero fields only.
|
||||
|
||||
## Nonclaims
|
||||
|
||||
No periodic phase; no arbitrary-vortex or arbitrary-flow universality; no unseen amplitude/family/offset generalization; no robustness, stability or optimality; no physical-flow memorylessness; no full observability; no proof that the useful information or cloaking physics occupies a small spatial region; no Kármán SR/CCD transfer; no causal response time; no common score with Illusion or Erase; no claim that existing draft renders are publication-ready.
|
||||
@@ -0,0 +1,116 @@
|
||||
# Section 7 Figure 2 — Illusion and Erase target extensions
|
||||
|
||||
## Argumentative job
|
||||
|
||||
Place two changes of target contract side by side without treating them as one score: (A) PPO control toward a declared non-zero Illusion target and (B) PPO control toward an independently acquired clean Erase target in the presence of an upstream disturbance. Illusion retains a named non-zero-target PPO capability; Erase retains role identity and morphology only until a versioned evaluator output exists.
|
||||
## Panel A — Illusion roles and variables
|
||||
|
||||
- Physical configuration: uniform-inflow/free-slip-wall channel configuration.
|
||||
- Selected result: retained `0.75` target-size PPO demonstration, seed 43.
|
||||
- Provenance IDs: `v5/ill_075L` target/zero and `v5/ill_075L_seed43/controlled`; retain internal IDs only in caption/source notes.
|
||||
- Roles: non-zero `target`, PPO `controlled`, `physical-zero`.
|
||||
- Variables: registered slot-0 vorticity/streamlines or target-error magnitude, plus one compact force/sparse-sensor or DTW/reward readout from the exact retained evaluation if legible.
|
||||
- The physical target-size definition must follow Section 2/current environment authority; do not relabel the historical `0.75` variable as a diameter ratio without that authority.
|
||||
- No archived surrogate panel, sentence, number, legend item or comparator.
|
||||
|
||||
## Panel B — Erase roles and variables
|
||||
|
||||
- Physical configuration: parabolic-inflow/no-slip-wall channel configuration with an upstream disturbance cylinder for controlled and physical-zero roles and a clean independently generated target role.
|
||||
- Provenance ID: `legacy/erase`; internal label is provenance only.
|
||||
- Roles: clean `target` from `late_field.npz`, frozen-PPO `controlled`, and `physical-zero` from `phase_fields.npz`.
|
||||
- Variables: current production physical-variable role fields only: target late field, plus controlled and physical-zero retained mean or explicitly labelled eight-snapshot average fields. No target-error magnitude, error comparison or target-error scale is active; all such products remain behind a future versioned evaluator gate.
|
||||
- Historical reward summaries remain provenance-only and are omitted from reader-facing efficacy interpretation.
|
||||
|
||||
## Exact sources
|
||||
|
||||
### Illusion
|
||||
|
||||
- Role manifest/navigation: `src/drl_pinball/data/reproduction_plots/manifest.json`, group `ill_075L_seed43`.
|
||||
- Fields: `src/drl_pinball/data/reproduction/v5/ill_075L/{target,zero}/phase_fields.npz` and `.../v5/ill_075L_seed43/controlled/phase_fields.npz`.
|
||||
- Draft flow renders: `src/drl_pinball/data/reproduction_flow_plots/all/v5/ill_075L/` and corresponding manifest entries.
|
||||
- Evaluation/training summaries: `src/drl_pinball/train/results/latest/tables/latest_eval_summary.csv`, `latest_results_summary.json`, and existing wake-L2 outputs under the reproduction root where exact run/role identity matches.
|
||||
- Rendering/evaluation: `plot_flow_fields.py`, `plot_reproduction_summary.py`, `eval/wake_l2.py`.
|
||||
|
||||
### Erase
|
||||
|
||||
- Fields/metadata/summaries: `src/drl_pinball/data/reproduction/legacy/erase/{target,controlled,zero}/`.
|
||||
- Target: `target/late_field.npz`; controlled/zero: `phase_fields.npz`, `phase_cycle.npz`, `timeseries.npz`, `erase_summary.json`.
|
||||
- Draft renders: `src/drl_pinball/data/reproduction_flow_plots/all/legacy/erase/erase/`.
|
||||
- Rendering authority: `plot_flow_fields.py`; acquisition authority: `legacy_test/acquire.py`; reward implementation: `legacy_test/metrics.py` and `legacy_env/legacy_env_erase.py`.
|
||||
|
||||
## Layout
|
||||
|
||||
Use two clearly separated columns with different local subtitles and metric labels.
|
||||
|
||||
1. **Left, Illusion (about 50% width):** target, controlled and physical-zero vorticity or streamlines in a three-panel row; beneath, controlled/zero target-error maps or one exact retained signal comparison. Label `declared non-zero target` prominently.
|
||||
2. **Right, Erase (about 50% width):** clean target, controlled and physical-zero mean/average fields in a three-panel row; beneath, physical-variable controlled/zero role fields only pending a versioned evaluator; no target-error maps or scalar pair. Label `clean target; upstream disturbance present in controlled/zero`.
|
||||
3. A narrow central divider states `target contract changes`; it must not contain an arrow implying numerical progression or transfer.
|
||||
4. No geometry schematic is required from repository output. If desired, the author draws a small target-object versus upstream-disturbance icon.
|
||||
|
||||
## Crop, ROI and common-scale rules
|
||||
|
||||
- Within each case, register all roles to identical coordinates and crop. Include the controlled/zero bodies and enough downstream wake to interpret the target comparison.
|
||||
- Within each role triplet, use one common symmetric physical-variable scale. A sequential target-error scale may be used for Illusion only after the exact retained evaluation is bound; no Erase target-error scale is active.
|
||||
- Do **not** force a common physical-variable scale across Illusion and Erase unless units, normalization and legible dynamic range are explicitly verified. Distinct labelled scales are safer because configurations, targets and temporal estimands differ.
|
||||
- Any quantitative ROI remains part of a future versioned evaluator contract, not a current display annotation. Do not imply that a rectangular ROI is the observation set or proves local sufficiency.
|
||||
|
||||
## Metric semantics
|
||||
|
||||
### Illusion
|
||||
|
||||
Prefer an already versioned exact acquisition result: complete-cycle mean L2 and eight-snapshot phase L2 remain separate; normalized DTW is a complementary signal metric. Bind target, controlled, physical-zero, seed, window, ROI/mask, normalization and summary path before printing a value. If this binding is not completed, retain the role fields and exact PPO evaluation readout without an independent field scalar.
|
||||
|
||||
### Erase
|
||||
|
||||
The clean target is nonperiodic and stored as one late field; controlled and physical-zero roles are periodic and store eight selected fields but no `mean_ux/mean_uy`. Therefore three candidate readouts must not be conflated:
|
||||
|
||||
1. **Eight-snapshot average-field error:** average each role's eight retained fields, then compare that average with the clean target over the declared ROI.
|
||||
2. **Eight-snapshot aggregate error:** RMS across all eight role snapshots and ROI cells relative to the same clean target.
|
||||
3. **Stored clean-sensor RMSE:** signal-level summary from `erase_summary.json`, not field L2.
|
||||
|
||||
These three non-equivalent readouts remain candidate evaluator-design alternatives only. No provisional scalar, normalization value, recommendation of a winning estimand or efficacy pre-result is retained. A future coordinator-authorized evaluator must select and version one exact contract before quantitative use.
|
||||
|
||||
## Historical reward caveat
|
||||
|
||||
The old Erase reward computes a same-rollout rolling similarity using an evolving controlled-force/sensor history. That construction does not provide an independently scaled clean target-field efficacy metric. Current acquisition provides separate clean target, controlled and physical-zero field roles. Do not use native reward or reward DTW as field-efficacy authority.
|
||||
|
||||
## Candidate evaluator and redraw requirements
|
||||
|
||||
### Illusion
|
||||
|
||||
1. Select one exact retained seed/acquisition and resolve role metadata/hashes.
|
||||
2. Load its existing wake-L2/evaluation summary; verify target size, role window, ROI/mask, phase convention and metric orientation.
|
||||
3. Re-render selected fields/errors at publication resolution from arrays.
|
||||
4. If no exact scalar binding survives, omit the scalar rather than borrow a historical-chain number.
|
||||
|
||||
### Erase
|
||||
|
||||
1. Validate target/controlled/zero metadata, field schemas, shapes, normalization authority and source hashes.
|
||||
2. If separately authorized, choose one candidate estimand and version its target-relative field and ROI contract; do not assume a reduction result.
|
||||
3. Store a versioned JSON/CSV including formula, ROI, snapshot indices/phases, role paths/hashes, geometry guard and the fact that the target is one late clean field.
|
||||
4. After that future evaluator is selected, versioned and audited, error maps or scalars may be specified in a future figure revision; they are not part of the current production panels.
|
||||
5. Optionally compute a true complete-cycle mean only if retained candidate fields and exact cycle windows are available; this is offline processing, not new CFD.
|
||||
|
||||
## Caption interpretation
|
||||
|
||||
Open with the changed target contracts, not case names. For Illusion, say that PPO is evaluated against a declared non-zero target under its exact retained acquisition. For Erase, identify independently acquired clean-target/control/zero roles and morphology only. Quantitative efficacy remains blocked until a versioned output passes audit; reward and field estimands remain different objects.
|
||||
|
||||
Close with: these are named objective extensions under distinct configurations and estimands; adjacency does not establish transfer, common efficacy or a shared mechanism.
|
||||
|
||||
## Readiness
|
||||
|
||||
- Illusion target/controlled/zero arrays and draft fields/errors: **available**; final seed-to-summary scalar binding and redraw remain **dependency-gated**.
|
||||
- Erase target/controlled/zero arrays, metadata, phase/error drafts and signal summaries: **available and audited for existence/schema**.
|
||||
- Stored Erase field L2: **absent**.
|
||||
- Erase candidate evaluator inputs: **identified; not a versioned result or execution authorization**.
|
||||
- True Erase complete-cycle mean: **not stored in the current published field artifact**; optional candidate-field extraction remains to be audited.
|
||||
- Publication role-field composite: **dependency-gated on redraw**; any quantitative display is **blocked** pending a versioned evaluator output.
|
||||
- Fallback: retain Illusion and Erase physical-variable role fields with no error maps or scalar annotations.
|
||||
|
||||
## Normalized readiness and fallback
|
||||
|
||||
Plan `specified`; exact repository roots `path-confirmed`, payloads `mapped`, and any directory lacking printed role leaves is `missing-exact-leaf`; raw arrays `not-covered`. Illusion is bounded seed-43 PPO capability with scalar binding `dependency-gated`; Erase quantitative efficacy is `blocked` although physical role fields are available. Render is `draft-diagnostic-only`/`redraw-required`; disposition `retain-with-gates` for Illusion and `fallback-only` for Erase. Caption ceiling is changed target contracts and morphology, never common efficacy, transfer or positive Illusion SR.
|
||||
|
||||
## Nonclaims
|
||||
|
||||
no common Illusion/Erase metric; no Legacy/current chain equivalence; no cross-target or cross-configuration transfer; no robustness, universality, optimality or stability; no reward/field equivalence; no causal force-to-field mapping; no full-state matching from sparse signals; no complete-cycle Erase mean unless produced under that exact contract; no quantitative claim from draft PNG appearance alone; no publication-ready status for existing outputs.
|
||||
@@ -0,0 +1,133 @@
|
||||
# Figure plan — Section 8 steady context and theory boundary
|
||||
|
||||
**Status:** `discuss`; textual production specification with Frank’s main equation/composition choice open. Existing images are bounded drafts/redraw sources, not publication-ready panels.
|
||||
**Figure question:** What changes between the stationary, accepted and reverse finite-Re fields; what circulation changes in the prescribed-circulation outer reference; and why does the attractive outer cancellation fail as an explanation of the accepted finite-Re endpoint?
|
||||
**Bounded answer:** The accepted wall actuation accompanies a distinct low-deficit viscous endpoint and reorganized near-wake field. Prescribed circulation strongly reorganizes outer streamlines, but the circulation sign favored by the outer downstream objective is opposite to the descriptive sign measured from the accepted CFD field. The figure visualizes context and a failed closure, not a mechanism.
|
||||
|
||||
## Main-text composition: one integrated figure, no action schematic
|
||||
|
||||
Use a two-row composition with aligned reading order:
|
||||
|
||||
- **Top row — finite-Re evidence:** three compact endpoint columns: stationary reference, accepted $s=3.55$, reverse $s=5.2$. Each column overlays total-velocity streamlines on the corresponding nondimensional CFD vorticity field. A narrow right-hand profile inset plots the full-cross-section vector error $|\boldsymbol q-\boldsymbol q_{in}|/U_\infty$ at $x/D=10$ (or, if clearer in production, $u_x/U_\infty$ with $q_{in}$ shown explicitly) for the same three roles. Visually emphasize accepted; reduce stationary/reverse size or saturation. State that stationary is unsteady and accepted/reverse amplitudes differ.
|
||||
- **Bottom row — prescribed-circulation outer reference:** equal-size streamline panels at $g=0$, $g_{opt}=+6.147944$, and fitted $g=-12.200554$, followed by a compact sign/closure box. Use streamline arrowheads and small circulation glyphs on the rear cylinders so the sign is readable directly from the field; these are circulation labels, not actuator-direction arrows. The box states `outer objective: +6.147944`, `accepted CFD descriptive fit: -12.200554`, `opposite sign`, and `wall spin does not prescribe Γ under Euler impermeability`.
|
||||
|
||||
This arrangement changes inference in three steps: accepted endpoint distinctness; circulation-dependent outer organization; failed sign/closure. Do not add an integrated evidence map or action-direction schematic.
|
||||
|
||||
## Panel contracts
|
||||
|
||||
### A–C. Finite-Re endpoint fields
|
||||
|
||||
**Variables:** total velocity $(u_x/U_\infty,u_y/U_\infty)$ for streamlines; conservative masked $\omega D/U_\infty$ beneath them.
|
||||
**Roles:** stationary CFD unsteady reference; accepted controlled endpoint $[0,+\Omega,-\Omega]$, $s=3.55$; reverse endpoint, $s=5.2$.
|
||||
**Source arrays:** hash-bound endpoint NPZ files identified in `src/steady_pinball_theory/figures/manifest.json`:
|
||||
|
||||
- stationary: `.../steady-contract-v5-torque-d20-20260808/stationary/endpoint.npz`, SHA-256 `c2edc9e...8dde8f3`;
|
||||
- accepted: `.../accepted-s3.55/endpoint.npz`, SHA-256 `b6c70b76...9ac72db`;
|
||||
- reverse: `.../reverse-s5.2/endpoint.npz`, SHA-256 `760c1e84...2ec3`;
|
||||
- comparator $q_{in}$: `.../qin/endpoint.npz`, SHA-256 `88cbeac1...e419b`.
|
||||
|
||||
**Existing redraw material:** `figures/fields/streamlines/cfd-*.png`, `figures/fields/vorticity/cfd-*.png`, and PDF/PNG companions under `figures/plates/`; generated by `src/steady_pinball_theory/plot_results.py`.
|
||||
**Crop/coordinates:** source crop $x/D=[-2,10]$, $y/D=[-3.025,2.975]$, front-cylinder origin, x right/y up, array order `yx`, $241\times121$ pixels. For publication, preserve $x/D=[-2,10]$ if the $x/D=10$ profile marker is integrated; otherwise a field crop to $x/D\approx[-1.5,6]$, $|y/D|\le2.5$ is allowed only if the separate profile inset retains the full cross-section and the crop is disclosed. Keep cylinder geometry exact.
|
||||
**Scale:** one shared symmetric CFD vorticity scale for all three fields. Current diagnostic source uses pooled 97.5-percentile $\omega D/U_\infty\in[-2.374694,2.374694]$ with clipping; production may use a reviewed robust limit, but one limit and clipping statement must remain common. Streamline speed is nondimensionalized by $U_\infty$ and should not use color as a second unlabelled quantity.
|
||||
**Role in argument:** establish observed viscous organization and endpoint contrast before theory.
|
||||
**Readiness:** `source-array ready; publication redraw required`. The accepted manifest is settling-qualified to $tU_\infty/D=250$. Existing plates are presentation drafts.
|
||||
|
||||
**Caption limits:** stationary is an unsteady reference, not a failed steady endpoint; reverse is a distinct, non-amplitude-matched endpoint. Spatial differences do not establish a causal chain, branch stability, force ownership, momentum restoration or optimum.
|
||||
|
||||
### D. Full-cross-section endpoint/profile inset
|
||||
|
||||
**Primary variable:** $E_{\infty,\mathrm{vector}}=\max_y|\boldsymbol q-\boldsymbol q_{in}|/U_\infty$ at $x/D=10$ must be printed for accepted: `0.0231672176752314`. If plotting a curve in $y$, use vector error versus $y/D$ from `figures/profiles_long.csv`; if plotting downstream station summaries, use `figures/summary/profile_Einf_vector.csv` and label stations $x/D=2,4,6,10$.
|
||||
**Exact profile source:** `figures/profiles_long.csv` (hash in figure manifest `dc0597bd...f0980a`) and `figures/summary/profile_Einf_vector.csv` (`643720d0...a5d2`).
|
||||
**Current comparator values at $x/D=10$:** stationary `1.0456532678`, accepted `0.0231672177`, reverse `0.6898418412`; do not place potential values on the same quantitative axis unless the families and governing equations are separated explicitly.
|
||||
**Scale:** for a pointwise-$y$ profile, use the complete common-fluid cross-section and dimensionless velocity/error. A broken/log axis is discouraged because it can overdramatize role differences; use an inset/table annotation if one linear axis hides accepted structure.
|
||||
**Role:** convert field appearance into the declared steady endpoint evidence.
|
||||
**Readiness:** `CSV ready; publication redraw required`.
|
||||
|
||||
**Nonclaims:** no common estimator with Sections 5–6, no stationary phase average, no optimum/stability, and no potential-versus-CFD metric agreement.
|
||||
|
||||
### E–G. Outer-theory streamline sequence
|
||||
|
||||
**Variables:** total outer velocity $(u_x/U_\infty,u_y/U_\infty)$ and streamlines for rear-opposite prescribed-circulation basis $(\Gamma_1,\Gamma_2,\Gamma_3)=(0,+\Gamma,-\Gamma)$ under geometric counter-clockwise convention; dimensionless coefficient $g$.
|
||||
**States:** $g=0$; favorable outer value $g_{opt}=+6.1479442395622$; descriptive finite-Re fitted value $g=-12.200554143243473$.
|
||||
**Source arrays/solver:** `steady-strip-modal-analysis-20260804-v4/analysis.json` plus its authenticated `strip_arrays.npz` (SHA-256 `4af103fa...0f03b`); current plotting code reconstructs the 40-image-layer affine strip fields via `strip_basis_affine(...)` and `affine_velocity(...)` in `plot_results.py` lines 109–121. Existing direct assets are:
|
||||
|
||||
- `figures/fields/streamlines/mfs-zero.png` and `plates/streamlines/mfs-zero.{png,pdf}`;
|
||||
- `figures/fields/streamlines/mfs-gopt.png` and `plates/streamlines/mfs-gopt.{png,pdf}`;
|
||||
- `figures/fields/streamlines/mfs-gfit.png` and `plates/streamlines/mfs-gfit.{png,pdf}`.
|
||||
|
||||
These are the exact current plots to redraw, not a request for a new MFS computation.
|
||||
**Crop/coordinates:** use the same physical geometry and field extent as A–C where feasible. For circulation legibility, a tighter common crop $x/D\approx[-1.5,5]$, $|y/D|\le2.5$ is preferred, with a small downstream continuation cue; all three use identical crop and streamline density.
|
||||
**Scale/style:** black streamlines on a light neutral background; matched streamline density and arrow size. Add rear-cylinder circulation glyphs keyed to geometric $\Gamma$ only. Do not use vorticity fill: the potential exterior vorticity is analytically zero, and a blank/zero vorticity panel adds no inference.
|
||||
**Role:** show visually that circulation is a prescribed outer degree of freedom and that favorable/fitted signs reorganize the flow oppositely.
|
||||
**Readiness:** `bounded outer-reference display ready for redraw`, not `finite-Re mechanism validated`. Current derivation reports exact-circle and failure controls, bounded unbounded MFS–Laurent agreement, and bounded 20/40/80 finite-image consistency; it explicitly does not claim an asymptotic strip-convergence tail.
|
||||
|
||||
**Caption limits:** outer impermeability/free-slip reference only; no rotating no-slip wall trace, separation, wall vorticity, drag, torque, stability, or $\Gamma(\Omega)$ law. Similar streamline organization would not establish mechanism; the actual sign comparison rejects the proposed identification.
|
||||
|
||||
### H. Sign-conflict and solution-boundary box
|
||||
|
||||
**Content:**
|
||||
|
||||
- compact equation label: $\boldsymbol u=\boldsymbol u_N+\sum_j\Gamma_j\boldsymbol h_j$;
|
||||
- `Γj prescribed periods; not selected by Ω`;
|
||||
- $g_{opt}=+6.147944$ versus $g_{fit}=-12.200554$;
|
||||
- `opposite sign → prescribed-circulation cancellation does not explain accepted CFD`;
|
||||
- one-circle boundary in small type: $u_\theta(R,\theta)=-2U_\infty\sin\theta+\Gamma/(2\pi R)$ cannot equal constant $R\Omega$ for all $\theta$ when $U_\infty\ne0$.
|
||||
|
||||
**Source:** `DERIVATION.md` §§3–6 and current strip/finite-Re analyses.
|
||||
**Role:** prevent visual resemblance from outrunning the mathematical and finite-Re boundary.
|
||||
**Readiness:** `text/equation ready; graphic typesetting required`.
|
||||
|
||||
## Physical interpretation supported by the figure
|
||||
|
||||
The figure permits this sequence, and no stronger one:
|
||||
|
||||
1. The accepted wall law directly moves both rear gap-facing cardinals downstream and both outer cardinals upstream.
|
||||
2. Rotating no-slip walls directly prescribe tangential wall velocity only. The endpoint fields exhibit different shear/vorticity, shear-layer, inter-cylinder-transport, recirculation and near-wake organization; links among these observations remain hypotheses.
|
||||
3. It is reasonable to hypothesize that these near-field changes alter downstream mean transport and yield the low-deficit profile.
|
||||
4. The figure does not isolate the links in step 3. Accepted/reverse differ in amplitude; stationary is unsteady; the partial NS ledger lacks storage/time-consistent and body-adjacent terms and has no residual.
|
||||
5. The potential panels explain only how prescribed circulations organize an outer field. The opposite-sign result blocks using that family as the accepted finite-Re wall-spin mechanism.
|
||||
|
||||
No caption should use `gap jet` as a causal noun without specifying the measured transport direction/field. No boat-tail wording.
|
||||
|
||||
## Caption draft
|
||||
|
||||
**Steady finite-Re context and the boundary of a prescribed-circulation explanation.** (a–c) Total-velocity streamlines over conservative masked vorticity for the stationary unsteady reference, the settling-qualified accepted endpoint $[0,+\Omega,-\Omega]$ at $s=3.55$, and the reverse endpoint at $s=5.2$ in the uniform-inflow/free-slip-wall configuration, $Re_D=50$. (d) Full-cross-section comparison with the no-body inflow at $x/D=10$; the accepted endpoint has $E_{\infty,\mathrm{vector}}=0.0231672176752314$. The reverse endpoint differs in both sign and amplitude and is not a controlled same-amplitude intervention. (e–g) Prescribed-circulation outer-reference streamlines for zero circulation, the favorable rear-opposite value $g_{opt}=+6.147944$, and the descriptive finite-Re fit $g=-12.200554$. Circulations are independent periods of the Euler impermeability problem, not wall-spin boundary data. (h) Their opposite signs reject the proposed identification of potential cancellation with the accepted finite-Re state. The panels show endpoint organization and an outer-theory boundary; they establish neither a viscous mechanism, momentum/energy closure, force ownership, stability nor cross-configuration validation.
|
||||
|
||||
## Normalized readiness
|
||||
|
||||
Plan state `discuss`: Frank's main equation/composition choice remains open. Evidence state: current manifests/reports and existing outer assets were `read/path-confirmed`; external endpoint/strip payloads are `mapped`; new arrays/computation are `not-covered`. Metric state: endpoint/profile and sign comparison are `authority-bound`; viscous mechanism is `N/A: hypothesis not established`. Render state `redraw-required`; the existing outer assets are bounded redraw sources only and **no new MFS computation is authorized**. Disposition `retain-with-gates`; fallback preserves accepted endpoint/profile and the `g_opt` versus fitted-g sign conflict. Caption ceiling preserves the fact of prescribed wall velocity while keeping wall-vorticity, shear-layer and transport links as viscous hypotheses, not established mechanism.
|
||||
|
||||
## Production and derivation work
|
||||
|
||||
1. Re-render A–C from authenticated NPZ arrays, using the current conservative masked-vorticity implementation and a shared reviewed scale; preserve source hashes in production metadata.
|
||||
2. Draw D from `profiles_long.csv` or the station-summary CSV; bind every plotted role and value to the figure manifest.
|
||||
3. Re-render E–G from the current 40-layer affine strip reconstruction. This is redraw work only—do not alter the MFS model or generate a new claimed field.
|
||||
4. Add consistent geometry, flow-direction key, panel labels, circulation glyphs, $x/D=10$ marker, scale bars and status labels. Use `prescribed-circulation outer reference` above E–G.
|
||||
5. Typeset H and the main-text Hodge/period equation consistently. Keep detailed MFS validation, layer/order/source-radius diagnostics, NS budgets, endpoint sweep and vorticity/error galleries in supplement.
|
||||
6. Export vector PDF for linework and a high-resolution raster fallback. Record code commit, command, source paths/hashes, crop, masks, scales and any clipping in a production manifest.
|
||||
|
||||
## Readiness and fallback
|
||||
|
||||
- **Required and ready as source material:** accepted endpoint field/profile; outer $g=0/g_{opt}/g_{fit}$ streamline sources; sign values and solution boundary.
|
||||
- **Dependency-gated production:** final visual hierarchy, shared field scales, profile format, panel typography and publication export.
|
||||
- **Not required/main-text excluded:** action schematic, MFS validation plots, full NS budget, gap-flux/power bars, sweep, error gallery and potential-vorticity panels.
|
||||
- **Fallback if eight-part composition is crowded:** retain accepted CFD vorticity/streamline panel + compact stationary/reverse profile inset; retain all three theory streamline panels + sign box. Drop stationary field first, then reverse field, but never drop the reverse/profile boundary or the $g_{opt}$ versus fitted-$g$ sign conflict.
|
||||
|
||||
## Exact production choices for author approval
|
||||
|
||||
1. Approve top-row CFD vorticity+streamline triptych with profile inset; safe fallback is accepted field plus three-role profile inset.
|
||||
2. Approve bottom-row three-theory-streamline sequence and circulation glyphs; no action schematic.
|
||||
3. Approve theory label `prescribed-circulation outer reference (bounded finite-image consistency)`.
|
||||
4. Choose profile encoding: recommended pointwise vector error versus $y/D$ at $x/D=10$; alternative downstream-station $E_\infty$ summary only if the pointwise inset is illegible.
|
||||
5. Confirm whether stationary/reverse fields survive final page-width trial; accepted field and sign-conflict sequence are non-drop items.
|
||||
|
||||
## Compact asset ledger
|
||||
|
||||
| State | Asset | Use |
|
||||
|---|---|---|
|
||||
| `read/verified` | `figures/manifest.json`, `figures/README.md`, endpoint manifest, display README | Coordinates, masks, cases, hashes, rendering provenance and status |
|
||||
| `read/verified` | CFD streamline/vorticity raw images and plates; `profiles_long.csv`; profile/near-wake/gap CSVs | Redraw sources and bounded endpoint interpretation |
|
||||
| `read/verified` | MFS zero/$g_{opt}$/fitted-$g$ streamline raw images and plates; strip arrays/analysis | Outer-reference redraw and sign comparison |
|
||||
| `not publication-ready` | All existing PNG/PDF plates | Draft/source material only; do not paste into final composition unchanged |
|
||||
| `supplement` | MFS validation diagnostics, full NS ledgers/budgets, error/vorticity galleries, power/gap bars and sweeps | Reproducibility and limits, not main inference |
|
||||
| `not-covered` | New CFD, MFS, budget, stability or causal analysis | No result inferred |
|
||||
@@ -0,0 +1,83 @@
|
||||
# Section 9 figure plan — qualitative experiment
|
||||
|
||||
## Status and candidate composition
|
||||
|
||||
**Status:** textual production plan only; `author-supply/provenance-gated`. No rendering or artifact promotion is authorized. **Candidate composition:** one compact apparatus schematic plus a selected subset of single-frame experimental/CFD pairs: one steady row and zero or more Illusion rows. Do not require every Illusion case. If provenance or legibility fails, omit a row; if all image gates fail, use schematic-only or no figure.
|
||||
|
||||
**Figure job:** document the physical setup and let the reader inspect named-condition morphology in separate experimental and CFD views. Juxtaposition means correspondence by author-bound condition only. It is not registration, overlay, experimental validation, CFD agreement or quantitative comparison. A single frame cannot establish shedding frequency or any temporal behavior.
|
||||
|
||||
## Layout
|
||||
|
||||
Use a two-column grid after a full-width or left-side apparatus panel:
|
||||
|
||||
- **(a) Apparatus schematic:** compact facility → carriage/pinball actuation → open-loop command → image-acquisition path.
|
||||
- **(b–c) Selected steady row:** experimental single frame | corresponding named-condition CFD single frame.
|
||||
- **(d–e), optional:** one selected Illusion row in the same order.
|
||||
- **Additional Illusion rows:** include only if each adds a distinct morphology needed by Frank's argument and remains legible. Drop before compressing provenance or claim ceilings.
|
||||
|
||||
Keep experimental and CFD labels explicit. Do not share a colour bar, scale bar, coordinates or annotations in a way that implies common calibration. No difference image, overlay, registration marks, metric, frequency annotation, velocity vectors, vorticity equivalence or efficacy score.
|
||||
|
||||
## Panel contracts
|
||||
|
||||
### Panel (a) — apparatus schematic
|
||||
|
||||
- **Role:** establish physical configuration and open-loop execution/acquisition path.
|
||||
- **Exact source:** `[AUTHOR SUPPLY: exact schematic path/hash; original editable source; version/date; permission]`. No matching file was located under the inspected `/home/frank14f` paths.
|
||||
- **Author fields:** facility/test section and boundaries; towing direction; carriage/rail/rack; pinball geometry/body order; cylinder drive; command source and units; imaging/tracer path; any sensor shown; elements not synchronized or not used for feedback.
|
||||
- **Processing:** `[redraw or direct use; dimensions preserved; labels added; changes from original]`.
|
||||
- **Caption ceiling:** apparatus context and open-loop signal path only. Do not claim calibrated accuracy, closed-loop operation, synchronized force acquisition or experimental outcome.
|
||||
- **Readiness:** `author-supply-gated`.
|
||||
- **Fallback:** concise apparatus prose; omit schematic if it becomes a component diary or lacks source permission.
|
||||
|
||||
### Panels (b–c) — selected steady experimental/CFD views
|
||||
|
||||
- **Role:** show one author-selected named steady morphology comparison.
|
||||
- **Experimental source:** `[AUTHOR SUPPLY: exact raw image path/hash]`; `[trial ID/date/setup]`; `[reference or controlled condition]`; `[frame index/time]`; `[camera/view/FOV/spatial scale or uncalibrated]`; `[dye injection]`; `[crop/enhancement]`; `[repeat and selection rule]`; `[permission]`.
|
||||
- **CFD source:** `[AUTHOR SUPPLY or audit: exact image path/hash]`; `[CelerisLab/DynamisLab case identity and configuration]`; `[action/body order/sign]`; `[simulation step/frame]`; `[field-to-streakline processing and render settings]`. Candidate generation/history paths exist at `/home/frank14f/CelerisLab/tests/postproc/run_exp_ctrl_matrix_streakline.py`, `/home/frank14f/CelerisLab/tests/postproc/experiment.ipynb`, and `/home/frank14f/CelerisLab/tests/output/{exp_ctrl_matrix_streak_nx1500,stealth_steady_sweep_nx1500}/manifest.json`, but the manifest-referenced PNGs were not present and are not proven to be the author's counterpart.
|
||||
- **Layout:** same row, experiment left and CFD right, independent labels/scales; use similar crop only if honestly disclosed, never geometric registration.
|
||||
- **Caption ceiling:** `Single-frame dye visualization and separately generated CFD view for the named steady condition; qualitative morphology only.` Frank inserts the exact visible observation after provenance review. No field matching, straightness estimator, velocity/force inference, validation or agreement.
|
||||
- **Readiness:** `author-supply-gated`; computational source additionally needs exact case/frame audit.
|
||||
- **Fallback:** apparatus-only figure or omit this row. Never reconstruct from a manifest or notebook screenshot.
|
||||
|
||||
### Panels (d–e) — selected Illusion experimental/CFD views (optional)
|
||||
|
||||
- **Role:** show one selected named Illusion morphology; not all available cases.
|
||||
- **Experimental source:** `[AUTHOR SUPPLY: raw path/hash, trial ID, exact Illusion condition, comparator role, frame index/time, camera/view/FOV/scale, dye protocol, processing, repeats/selection, permission]`.
|
||||
- **CFD source:** `[AUTHOR SUPPLY or audit: exact path/hash, case/target identity, configuration, action/body mapping, step/frame and streakline/vorticity processing]`. Potential CFD analytic-action definitions and historical outputs exist in `/home/frank14f/CelerisLab/tests/specs/exp_ctrl_matrix.md`, `/home/frank14f/CelerisLab/tests/postproc/run_exp_ctrl_matrix_{vorticity,streakline}.py`, and the corresponding `tests/output/.../manifest.json` records; exact manuscript mapping remains unresolved.
|
||||
- **Layout:** experiment left, CFD right; independent acquisition labels. If multiple Illusion rows are retained, each needs its own condition and observation; do not imply an ordered frequency series.
|
||||
- **Caption ceiling:** `Single-frame dye visualization and separately generated CFD view for the named Illusion condition; qualitative morphology only.` **Mandatory:** `A single frame does not establish shedding frequency or any temporal change.` No frequency multiplier, phase, waveform recovery, agreement, validation or quantitative efficacy.
|
||||
- **Readiness:** `author-supply-gated`.
|
||||
- **Fallback:** omit the Illusion row(s); the section remains a short author interface.
|
||||
|
||||
## Author production manifest requirements
|
||||
|
||||
Before any panel survives, Frank must resolve and approve: experiment configuration and boundaries; trial ID to exact CFD case/frame mapping; flow direction, image orientation and any mirror/rotation; whether the action shown is commanded, converted apparatus input or measured body motion (never conflate them); action/body order/sign/units; exposure, illumination and frame rate, or explicit absence/nonavailability; raw-media path/hash through every crop/enhancement to the rendered output; comparator semantics; apparatus-schematic provenance/editable source; final author crop and caption approval; and publication/reuse rights. Also record trial selection/repeats and whether spatial scale is calibrated or absent. Missing any claim-critical field triggers the strict omission fallback.
|
||||
|
||||
## CFD streakline processing disclosure
|
||||
|
||||
If a CelerisLab streakline image is selected, disclose the exact release points/mode, injection count, sampled velocity-frame interval, integration (`bilinear space + linear time interpolation + RK4` in the current library), substep settings, diffusion coefficient, particle filtering, age decay, density binning, Gaussian blur, colour/background, simulation step and crop. These fields describe rendering; they do not make the CFD image a calibrated dye model.
|
||||
|
||||
If a vorticity image is selected instead, label it `CFD vorticity`, give the plotted range and frame/step, and do not visually equate it with dye intensity. Prefer a streakline-like CFD counterpart when Frank's purpose is morphology, but only from an existing audited artifact or separately authorized future production.
|
||||
|
||||
## Caption skeleton — Frank to complete
|
||||
|
||||
> **Figure X.** (a) [apparatus and open-loop command/acquisition path; source/version]. (b,c) [steady experimental trial/frame/condition] and a separately generated CFD view for [exact named condition/case/frame/rendering]. (d,e) [optional selected Illusion trial/frame/condition] and its separately generated CFD view. Experimental and CFD images are unregistered, acquisition-specific single-frame views shown only for qualitative morphology. [Exact processing/scale statements.] A single frame does not establish shedding frequency, velocity, force, field matching, quantitative agreement or CFD validation.
|
||||
|
||||
## Readiness gate and fallback order
|
||||
|
||||
A panel passes only with exact source, case/trial role, condition/action, frame/step, view/scale status, processing, selection/repeats and permission. The caption must preserve open-loop, separate-acquisition and morphology-only limits.
|
||||
|
||||
Fallback order:
|
||||
1. drop extra Illusion rows;
|
||||
2. drop the Illusion row entirely;
|
||||
3. retain schematic + steady row only;
|
||||
4. retain schematic only;
|
||||
5. omit the figure and keep the author-owned textual boundary.
|
||||
|
||||
## Normalized readiness
|
||||
|
||||
Plan `author-supply-gated`; author-described assets `mapped`, exact experiment/CFD counterparts `missing-exact-leaf`, repository candidate code/manifests `path-confirmed`, raw media `not-covered`; metric `N/A: qualitative morphology only`; render `blocked`; disposition `fallback-only` through schematic-only to complete omission. No publication-ready claim is permitted. Caption ceiling is unregistered single-frame morphology under named open-loop conditions only.
|
||||
|
||||
## Current evidence mismatch
|
||||
|
||||
The author reports that an apparatus schematic and single-frame experimental/CFD pairs exist, but targeted inspection did not locate those exact files. CelerisLab contains CFD action, streakline and vorticity generation code plus manifests that point to generated computational images; the referenced image/checkpoint files were absent from the inspected output directories. No physical execution/deployment script or experiment-media provenance package was located. Thus no panel is presently publication-ready, and no manifest path may substitute for the author's exact corresponding files.
|
||||
Reference in New Issue
Block a user