Skip to content

Lineage of TraTT ​

Where TraTT came from, which script produced which notebook entry, which claims stand, which were withdrawn, and how to rerun the main computations. Written 2026-10-23 for the repository audit (NaNIsaac BACKLOG A2) from git history, notes/lab_notebook.md, notes/paper_draft.md and Isaac's project files. It adds no new result and does not reinterpret any; where a status is quoted it is quoted from the notebook or the draft.

The research notes (notes/) belong to the TraTT research lane and are not changed here. Entries 68-88 and notes/paper_draft.md are on the branch research/paper-viability (PR #16, draft), not yet on main; links below say so.

1. Earlier work and names ​

NameWhat it wasWhere the record isRelation to TraTT
FTT (Floquet-Takagi-Taupin)Isaac's first line on X-ray diffraction from a crystal modulated by a bulk acoustic wave: Floquet channels of the two-beam Takagi-Taupin (TT) equations. Manuscript drafts "Floquet-Takagi-Taupin" v1 and v2, slides "Floquet-Takagi-Taupin" and "DynamicFTT"Isaac's Drive project folder 01_Projects/X-AOM/ (05_Paper/, 04_Slides/); not in any repositorysame physics question. TraTT's first design document was titled "DynamicFTT" (DynamicFTT_Research_Handoff.md, added in 1216ff8, 2026-09-30, removed from the tree in 7438afe, 2026-10-15; still in history)
calculatefirst code of the FTT line (2026-01-15, 0bff8d2): FTTSolver with Euler and RK45 TT integrators for a travelling-wave phase, and a notebook of Bessel sideband weights and satellite anglesNaNIsaac/calculate (private); its working copy is in the same Drive folder, 02_Src/calculateone function copied: explore/calculate_rk45.py (b91b15b, 2026-10-16) keeps the adaptive RK45 integrator. TraTT's solvers in src/tratt/ were written separately and are not derived from it
FTT package (src/ftt/)a later FTT code base described in Isaac's notes of 2026-08-04: tt.py (stroboscopic RK4 TT solver, Laue), model.py (travelling drive, parameters S, q, w), floquet.py (channel projection), metrics.py, experiment.py, tdtt.py (time-derivative channel-coupled engine), transient/ (Landau-Zener overshoot, realization map)not found on this PC or in any NaNIsaac repositoryTraTT has modules with the same roles (core.py, drive.py, floquet.py, observe.py); whether code moved cannot be checked without the source
AW_TT_EXPan experiment-feasibility calculator (spec_calc.py): from X-ray energy, acoustic frequency, sound speed, Bragg angle, rocking width, crystal thickness, pixel size and distance, decides whether the ±1 acoustic satellites are separable in angle or on the detectordescribed in the same notes; source not foundno counterpart in TraTT; the realisability tables of Entries 20, 73 and 85 answer a related question with verified constants
TrTTthe name used for TraTT's KPS 2026 Fall poster preparation (TrTT_presentation_handbook, TrTT_last_minute, in 01_Projects/Conferences/2026_KPS_Fall/)Drivethe same project; the handbook names the repository NaNIsaac/TraTT and the package tratt

Order in time, from git and file dates (Drive file dates are copy dates and only bound the authoring date from above): FTT manuscript drafts and slides by early 2026; calculate 2026-01-15; FTT package by 2026-08-04; TraTT initial commit e761142 on 2026-08-28 (DESIGN.md, core.py, drive.py, tests); transient-formation pipeline and notebook Entries 0-9 on 2026-09-30; poster at KPS 2026 Fall on 2026-10-22; paper-viability work (Entries 68-88) on 2026-10-22/23.

calculate's README said "Merged into TraTT"; that is being corrected in NaNIsaac/calculate#1. Only the one integrator above was copied.

2. Scripts and notebook entries ​

Scripts are in explore/nb/ unless a path is given; explore/make_*.py draw the poster and notebook figures. Run from the repository root with uv run python <script> [args]; the arguments are the ones written in the entry or in the script's docstring. "(PR #16)" marks scripts that are only on research/paper-viability.

EntryTopicScript(s)
0starting point—
1formation order, n = 0 two-layer lawe1_order.py
2+12 % excess is the static taile2_tail.py
3peak shift is kinematic (negative)e3_shift.py, e3b_shift_scan.py
4satellite width narrowinge4_width.py
5finite rise time, accumulated couplinge5_rise.py
6units, temporal Pendellösung periode6_units.py
7prior art—
8transient ±n asymmetrye8_asym.py
9Bragg geometry, t_f ~ 1/α_ne9_bragg.py
10poster summary figureexplore/make_poster_figure.py
11absorption (estimate only)e11_absorb.py
12claims and evidence (first table)—
13in-situ S calibratione13_calib.py
14three-mode, two-layer modele14_threemode.py
15ramp through the Bessel laddere15_cancel.py
16validity of the filled-depth lawe16_validity.py
17Bragg satellite widthe17_bragg_width.py
18overshoot table without a fitexplore/make_feature_figure.py
19random conditionse19_random.py
20experiment mapping, X0h constantse20_units_x0h.py
21prior art, second pass—
22time-resolved rocking curve pictureexplore/make_map_figure.py
23dark point, inward fringese23_dark.py
24one front, three satellitesexplore/make_ladder_map.py
25Bessel zero, slow clock stopse25_zero.py
26regime mapexplore/make_regime_map.py
27claims table, additions 20-26—
28transient-only satellitee28_transient_only.py, memory_drive.py
29Polikarpov & Skadorov read—
30formation remembers the pathe30_history.py, explore/make_memory_figure.py
31brightest order switches; grid-rule buge31_switch.py
32two co-propagating wavese32_two_waves.py
33claims table, additions 28-32—
34is the transient-only satellite real—
35its robustness and failure boundarye35_robust.py, nonideal.py, explore/make_robust_figure.py
36up vs down (mostly negative)e36_updown.py, explore/make_updown_figure.py
37two acoustic domainse37_domains.py, explore/make_domain_figure.py
38chirped waves, Landau-Zener plateaue38_chirp.py, qmod.py
39acoustic domain wallse39_walls.py
40automated anomaly searche40_search.py, explore/make_search_figure.py
41validation and conservative summary of 38-40e41_validate.py
42exact Floquet solver (src/tratt/floquet.py)e46_bands.py
43regime map, micromotione43_phase.py, explore/make_phase_figure.py
44hierarchy of Floquet pathse44_mechanism.py, e44b_sidebands.py
45Bessel-zero resurrectione45_zero.py, e45b_shifted_zero.py, explore/make_zero_figure.py
46Floquet bands, gap foldinge46_bands.py, e48_trajectories.py, explore/make_floquet_figures.py
47dark windows with strong couplinge47_dark.py, e47b_darkmap.py, explore/make_darkmap_figure.py
48time-resolved formation across regimese49_time.py
49anomaly rankinge50_anomaly.py
50prior art, overlap regime—
51summary of the overlap-regime projecte43_phase.py, e50_anomaly.py
52effective 2×2 Hamiltoniane52_heff.py
53phase-average convergencee53_phaseavg.py check, e53b_map_check.py, e53c_boundary.py, e53d_affected.py, explore/make_phaseavg_figure.py
54exact phase-averaged mape54_exactmap.py, e54b_width.py base eps map res, e54c_summary.py
55, 56acoustic walls vs stacking-fault theorye55_fault_check.py, e39_walls.py
57Chalise et al., what "spectral weight" means—
58first Chalise reference case (invalid)e58_chalise_ref.py
59absorbing reference, closed-form transfer functione58_chalise_ref.py, e59_transfer.py
60, 61, 62literature status, quasi-static number—
63surface acoustic wavese63_saw.py
64Sondhauss & Wark (2003) vs Entry 59e64_sw_compare.py
65transfer function for Si 400e65_si400.py [tt] [fig], e65_conv.py, e65_packet.py
66Chalise Fig. 2 tails in full TTe66_harmonic.py
67overshoot mape67_overshoot_map.py, e67_worker_audit.py, explore/make_poster_figs.py
68one-number linearity limit (falsification run)e68_nu_collapse.py run stats fit2 fig (PR #16)
69S&W vs Entry 59 term by terme64_sw_compare.py (PR #16)
70signal max vs Fisher-information maxe70_fisher.py run fig (PR #16)
71H needs a long windowe71_window_H.py (PR #16)
72histories that cannot be told aparte72_history_degeneracy.py (PR #16)
73what S = 0.5-6 means physicallye73_realisability.py (PR #16)
74directive questions B3, B4 (no computation)—
75H as a closed form in window lengthe75_window_cf.py run posthoc fig (PR #16)
76degeneracy class at larger Se76_degeneracy_S.py runA runB fig (PR #16)
77anomalous absorption χ_ihe77_chi_ih.py run ttp ttm conv60 fig (PR #16)
78±η side asymmetrye78_side_asymmetry.py run fig (PR #16)
79coupling ratio R and the degeneracy classe79_degeneracy_R.py run fig (PR #16)
80corrections to Entry 73—
81asymmetric Bragg as a rescalinge81_asym_map.py run (PR #16)
82beam divergence and He82_divergence.py run fig (PR #16)
83beam condition at GHz-train frequenciese83_lowx.py run fig (PR #16)
84beam divergence and the centre formation lawe84_satellite_divergence.py run fig (PR #16)
85Si 440 / 17.48 keV, 1-2 GHz casee85_si440_case.py (PR #16)
86integrated population and the beam conditione86_population_divergence.py run fig (PR #16)
87Laue integrated population at 3 w_ne87_population_laue.py run fig (PR #16)
88polarisation and Debye-Waller as rescalingse88_polarisation_dw.py (PR #16)

Script names follow the entry numbers except in 42 (e46_bands.py), 48 (e49_time.py) and 49 (e50_anomaly.py). Not cited by any entry: explore/calculate_rk45.py (see §1), explore/make_collapse_figure.py, explore/make_dephasing_figure.py, explore/make_poster_qr.py, explore/p0_equations.ipynb (static penetration-depth table from the initial commit) and explore/nb/paper_figs.py (paper figures, notes/paper_draft.md §3).

3. Claims ​

Current table ​

This is notes/paper_draft.md §4 as of ffa4d9c (2026-10-23, research/paper-viability), copied verbatim; §4 is authoritative and this copy is not re-judged. "Confirmed" there means confirmed in the model by full TT or a closed form, and, for the rows the physics lane reviewed, cross-checked between AI lanes; it is not an experimental confirmation. No long-window satellite measurement exists.

#claimstatusevidence
1First-order linearisation of TT for a phononprior artSondhauss & Wark 2003 eq. 25–29 (Entries 64, 69)
2Closed-form H with the Bloch-wave (Riccati) depth dependence, valid inside the Darwin width where the plane-wave form is off by 3–8×confirmed in the model; novelty bounded by unread Chukhovskii & Förster 1995, Wark & Lee 1999Entries 59, 64, 65
3H needs a long window: the strain must travel ≥ max(1/κ, x/π) Λ during it; closed form H(f; T_w) exact to first order at every window 0.14–300 nsconfirmed (TT 0.3 %); packet-free short form rejected below ~100 τEntries 71, 75
4Design numbers Si 400 / 17.48 keV: T_flat 19.6, T_half 32.8, T_90 52.2 ns; ripple with period 2x Λ/vconfirmed (TT to 0.002)Entry 75
5Chalise et al. 140 ps window sees no crystal factor (H flat to 4 %); their low-frequency deficit is only partly the second-order term K = 0.65–0.88confirmed in the model; their normalisation unknown; any real beam also flattens the crystal factor (Entry 82)Entries 66, 71, 82
6χ_ih is a second tabulated crystal parameter: 0.9 % steady, 1.4 % at 52 ns, 3–4 % at 8 keVconfirmed; pre-registered rule firedEntry 77
7±η side asymmetry, strain-spectrum-free, reads χ_ih/χ_i0 (1.9–6.2 %, sensitivity 0.02–0.07)predicted and confirmed in the model (TT 0.06 %); unobserved; a single-ray observable: odd in δ, it averages to zero over a symmetric beam (Entry 82)Entries 77, 78, 82
8Asymmetric Bragg = exact rescaling; one geometry factor g(√b + 1/√b)/2; T_90 shortens with Λ_asymconfirmed (TT 1e-16)Entry 81
8bBeam divergence / bandwidth: for σ_η ≫ κ + π/x the crystal factor is flat, κ√(π/2)/σ_η, at every window (x ≳ 10); H(f; T_w) and the ±η asymmetry are single-ray (meV, sub-µrad) observables; at x = 1–5 the tolerance is 0.3–0.6 µrad / 4–7 meV (8 keV) and the beam-averaged factor is non-monotonic in σconfirmed (TT beam average vs closed form 0.02–0.24 %)Entries 82, 83
9ν ≲ 0.1 ⇒ weight linear to 2 % (1 − K ≤ 1.8 ν²)confirmed as a bound on the scanned domain (Bragg, x ∈ {2, 5}, one packet family, weight at the peak)Entry 68
10"One dimensionless criterion joins the regimes"falsified (spread ×10–14 at fixed ν)Entry 68
11Formation law I_n = sin²/tanh²(πα|J_n|t̃), Bessel ladder, period-ratio calibrationconfirmed; prior art in kind DeCamp 2001 (n = 0), Polikarpov 1987/88 (static); as a centre observable it needs the beam condition of 12bEntries 1, 9, 13, 19, 24; tests
12Order n reads the one-transit running mean of J_n(S A); zero-mean perturbations degenerate (≤ 3e-6 for S ≤ 6); boundary R = 0.2confirmed with a boundaryEntries 72, 76, 79
12bBeam condition for the centre formation law: σ_η ≲ 0.3 w_n (0.1–0.3 µrad, Si 440 / 17.48 keV Laue; 0.6–1.4 µrad, Si 400 / 8 keV Bragg); at σ_η = w_n the first maximum loses 13–40 %confirmed (full TT beam average, 8 cases)Entry 84
8cPolarisation: π = σ form with α → Cα (κ fixed), unpolarised = two-term closed-form sum (TT 0.02 %); negligible at Si 400 / 8 keV (C² = 0.12), 20–32 % at Si 440 / 17.48 keV; static Debye–Waller already in the X0h constantsconfirmedEntry 88
12cIntegrated Laue satellite population: flat-beam shape from σ_η ≈ 5 w_n (2–5 µrad, step) and 10 w_n (10 µrad, 1 t_tr ramp) with a one-channel detector (9–18 µrad); formation curve from TT (tabulated; 13–25 % off ∫J_0); Bragg population not cleanpre-registered threshold falsified: 3 w_n failed in 3 of 5 runs (Entry 87; Entry 86 failed under its own rule). 5 w_n (step) and 10 w_n (ramp) are post-hoc conditions from the same cases; confirmation needs a pre-registered run on new cases (T2s)Entries 86, 87
13Signal maximum = Fisher-information maximum for a ps packet at one anglenegative resultEntry 70
14Bessel-zero resurrection at third orderconfirmed in the model, unobservable (4e-5); unread Entin, Iolin–EntinEntries 45, 51, 52, 54 (not in this paper; P4)
15Realisability: S ≤ 6 at 1–2 GHz clean on the elastic side; drive power 6–900 W/cm² peakconstants only; harmonic column withdrawn (shear symmetry); transducer number unverifiedEntries 73, 80

Withdrawn, falsified or corrected ​

Hypotheses in this list are not to be reopened without new evidence (tratt brief, BACKLOG T1).

WhereWhatBy
Entry 12"the peak position shifts dynamically"withdrawn: kinematic interference (Entry 3)
Entry 12"the ±n asymmetry is a transit/dynamical effect"withdrawn: a first-acoustic-wavelength effect, ∝ 1/α_ac (Entry 8)
Entry 12"no additional timescale" (session 1)withdrawn: t_tr/α_n exists
Entry 9t_f ~ 1/α in Braggcorrected to 1/α_n
Entry 31grid rulebug found and fixed in the entry
Entry 41Entries 38-40 (chirp, walls, anomaly search)"nothing qualitatively new": each effect has a known analogue
Entry 51dynamical localisation or diffusion in order space; single-phase breakdown metricsabsent; micromotion that averages away
Entry 56any "new mechanism" claim for the Entry 39 phase wallwithdrawn: it is a stacking fault per satellite (Authier & Simon 1968)
Entry 65 §2, Entry 66 §3"17 keV under-reads 20 GHz by a factor 2" for the Chalise packet; "two factors multiply, 0.33-0.45"withdrawn for the 140 ps window by Entry 71; holds only for long windows (the strain travels ≥ max(1/κ, x/π) Λ during the window; a 10 ps packet read over 52 ns shows it, Entry 75)
Entry 68one dimensionless number sets the linearity limit (directive B3, strong form)falsified: 1 − K spreads ×10-14 at equal ν
Entry 70directive B2 (crystal moves the signal maximum away from the information maximum)negative in the case computed
Entry 73ε2/ε column and harmonic verdicts for the shear geometrywithdrawn by Entry 80
Entry 75packet-free short form of H(f; T_w)rejected below ~100 τ
Entry 65 §3(a)the tt run at 24 RK4 steps per cycle (x ≥ 30)not converged; "do not quote it" (48 steps per cycle is converged to < 0.5 %)
Entry 73 §1"u0 = 7.6 pm × S"corrected to 15.3 pm × S by Entry 80 (7.6 is the S = 0.5 row)
Entry 82"an ordinary beam sees the kinematic law × a flat factor"limited by Entry 83 to σ_η ≫ κ + π/x (x ≳ 10, the ps-packet band); at GHz-train frequencies the beam-averaged factor depends on x and σ
Entry 82"1e-4 bandwidth = 35 µrad-equivalent" (angle and bandwidth added in quadrature)corrected in the Entry 82–83 addendum (c): after a crystal monochromator angle and energy are DuMond-correlated and σ_η must be computed from the optics
Entry 85first version with shear v_Twithdrawn, replaced by longitudinal [110]
Entries 86, 87integrated population beam-tolerant at 3 w_nEntry 86 failed under its own rule (amplitude metric error recorded); Entry 87's pre-registered 3 w_n failed in 3 of 5 runs

4. Reproducing the main computations ​

bash
git clone https://github.com/NaNIsaac/TraTT.git
cd TraTT
uv sync --extra dev
uv run pytest -q         # solver tests: analytic limits, Floquet cross-check, formation law

Poster-era entries (0-67) run on main:

bash
uv run python explore/nb/e1_order.py          # Entry 1, formation order
uv run python explore/nb/e9_bragg.py          # Entry 9, Bragg
uv run python explore/nb/e59_transfer.py      # Entry 59, closed-form transfer function
uv run python explore/nb/e65_si400.py tt fig  # Entry 65, Si 400 with the full-TT check
uv run python explore/make_poster_figs.py     # poster figures (poster/ is frozen)

Paper-viability entries (68-88) need the branch:

bash
git switch research/paper-viability
uv run python explore/nb/e68_nu_collapse.py run stats fit2 fig
uv run python explore/nb/e75_window_cf.py run posthoc fig
uv run python explore/nb/e82_divergence.py run fig
uv run python explore/nb/paper_figs.py fig1     # likewise fig2, fig4b

Run times and convergence checks are in each entry. Several sweeps take minutes; on the shared machines they are scheduled as heavy runs. These commands were collected from the entries and docstrings; they were not rerun for this document.

5. Open questions and implementation tasks ​

From notes/paper_draft.md §5 and §7, notes/paper_candidates.md and the tratt handoff; listed, not re-ranked.

  • Novelty of claim 2 depends on three unread papers (Sondhauss & Wark 2003 in full, Chukhovskii & Förster 1995, Wark & Lee 1999) and six more named in the cross-review (T2d, waiting for the PDFs).
  • Paper scope: P1 + P2 in one paper or P1 alone; whether to propose the ±η asymmetry as a measurement; asymmetric cut; whether to accept the 5 w_n condition (Isaac's decisions, tratt handoff).
  • Claim 12c needs a pre-registered confirmation run on new cases (T2s).
  • Model limits stated for the paper: two-beam, plane wave, quasi-static, centrosymmetric; Laue lossless only; strain as a phase only (no elasto-optic change of χ_h); first order in S for the closed form.
  • Experimental side: no long-window satellite measurement; transducer peak power unverified.
  • Future project named in Entry 51: a perturbative theory of the overlap regime and its comparison with the Entin / Iolin-Entin resonance theory.
  • Missing sources for the lineage itself: the FTT package (src/ftt/) and AW_TT_EXP/spec_calc.py were not found; if they exist on another machine, their place in §1 can be checked against code.

Each project section is built from that project’s docs/ directory.