[Physics]: Lab Notebook & telemetry workflow gaps in quantum-tunneling, rc-rl-circuits, and maxwell-boltzmann

未关闭
#52 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
react, typescript

调研方向

Start with the referenced entry points: src/simulations/sandboxGuides.ts, src/ui/components/LiveTelemetryCard.tsx, src/simulations/physics/rc-rl-circuits/TransientRenderer2D.ts, and the virtual instrument components. Reproduce the described notebook recording, sparkline scaling, RL trace and labels, and guide or overlay issues in the browser. The issue is done when the listed workflows and displays behave consistently with their stated values and instructions.

由索引模型根据 Issue 内容生成。

描述

physics-review

Found during the independent browser and learner-workflow review in #49 (Items 4 & 6).

1. quantum-tunneling lab protocol Step 3 cannot be completed in the in-app Lab Notebook

The quantum-tunneling lab protocol (src/simulations/sandboxGuides.ts lines 148–150) instructs the learner:

  1. Set particle energy $E = 3$ below barrier height $V_0 = 9$, and wavepacket width $\sigma = 1.2$.
  2. Sweep barrier width $d$ from $0.5$ to $1.5$. Each change restarts the run: record $T$ when the card says settled.
  3. Fit $\ln T$ against $d$: the slope comes out near $-6.1$...

When attempting this in the browser using the Record button and Lab Notebook:

  • TelemetryRecorder.lastRecordedSimTime blocks recording after d changes: Changing barrierWidth ($d$) calls QuantumEngine.reset(), which resets this.time = 0 inside the engine without resetting TelemetryRecorder.lastRecordedSimTime. In TelemetryRecorder.sample(), if (point.t - this.lastRecordedSimTime >= this.sampleInterval) then sees a negative point.t - lastRecordedSimTime on the next width until this.time exceeds the maximum t reached on the previous width. If the learner recorded at $d = 0.5$ up to $t = 4.6\text{ s}$ and then tries to record at $d = 0.7$ during its settled window ($t = 4.265\text{–}4.55\text{ s}$), zero samples are recorded. Conversely, clicking the transport Reset button calls recorder.reset(), which erases all previously recorded widths.
  • Continuous 50 Hz recording buffers un-settled in-flight points: Turning Record on during a run buffers transmission_T every $20\text{ ms}$, including pre-settled samples ($T \approx 0$), and settled is not included in QuantumEngine.getTelemetrySnapshot(). There is no button to log a single settled $(d, T)$ data point per width into the Lab Notebook.
2. quantum-tunneling Live Telemetry Card sparkline is $100\times$ too small (0.06 % vs 6.2%)
  • In src/ui/components/LiveTelemetryCard.tsx:
    • Line 258 computes const tPercent = Math.min(100, Math.max(0, (state.transmission ?? 0) * 100)); and displays 6.2% in the Transmission T box.
    • Line 52 pushes raw state.transmission (0.0625, a fraction in $[0, 1]$) into history, and lines 297–302 pass data={history} with unit="%" to TelemetrySparkline.
    • As a result, at the default settled state ($t = 3.32\text{ s}$), the card simultaneously displays Transmission T: 6.2% and Transmission T(t): 0.06 % right below it.
3. rc-rl-circuits oscilloscope trace overflow, hardcoded schematic labels, and multi-cycle fit trap
  • Oscilloscope trace draws outside the screen and off the canvas in RL mode: In src/simulations/physics/rc-rl-circuits/TransientRenderer2D.ts line 321, mapY(v) maps $0\text{ V}$ to scrT + 0.85 * scrH and $+15\text{ V}$ to scrT + 0.15 * scrH without ctx.clip(). During the discharging half-cycle in RL mode ($V_{\text{in}} = 0\text{ V}$), the inductor back-EMF is $V_L = -I R = -12\text{ V}$, which maps to scrT + 1.41 * scrH — drawing the cyan trace straight through the bottom of the oscilloscope bezel, through the bottom text banner, and off the bottom of the canvas.
  • Hardcoded & clipped schematic/scope labels: TransientRenderer2D.ts lines 156, 179, 196 hardcode 'R (100Ω)', 'C (100μF)', and 'L (100mH)' regardless of the slider settings (and clip 'C (100μF)' / 'L (100mH)' at the right border of the schematic box, plus 'CH2: V_out(t) [Relaxation]' at the right border of the oscilloscope bezel). Line 353 also hardcodes const v63 = 12.0 * 0.632; // 7.58 V (63.2% (1-1/e) = 7.6V), even when $V_0 \ne 12\text{ V}$ or in RL mode where $V_L(t)$ decays through $V_0 / e \approx 36.8%$ ($4.4\text{ V}$).
  • Sample-rate claim & multi-cycle recording in RL mode: sandboxGuides.ts line 417 says "The clock samples every 5 ms, so choose a τ of 10 ms or more: for RL use L = 500 mH and R = 10 Ω (τ = 50 ms)", whereas TelemetryRecorder samples at $50\text{ Hz}$ (every $20\text{–}25\text{ ms}$, giving 10 samples in $200\text{ ms}$). If the learner records within the first charging half-cycle ($t \le 0.20\text{ s} < 0.25\text{ s}$ at default $f = 2\text{ Hz}$), Exponential Regression on v_component vs t recovers y = 12.0000 · e^(-20.0000x) ($R^2 = 1.0000$, $\tau = 1/20 = 50\text{ ms}$). However, if recording continues past $t = 0.50\text{ s}$ into the second square-wave cycle, fitting v_component against cumulative t fits across multiple periodic pulses and yields y = 1.8787 · e^(-1.5133x) ($R^2 = 0.0712$).
4. Minor guide & overlay issues
  • maxwell-boltzmann Lab Protocol Step 2 (sandboxGuides.ts line 126): Instructs the learner to "compare P · A with N k_B T in the Lab Notebook", whereas the Lab Notebook plots single telemetry channels (empirical_pressure $P$ vs ideal_pressure $N k_B T / A$, not the products $P \cdot A$ and $N k_B T$).
  • docs/USER_GUIDE.md line 174: States "Monitor the live norm readout confirming $\int |\psi|^2 dx \equiv 1.000000$ to 12 decimal places", whereas the readout shows 6 decimal places (1.000000) and Dirichlet boundary reflections change the discrete norm at $\sim 10^{-8}$.
  • VirtualCaliper and VirtualPhotogate (src/ui/components/VirtualCaliper.tsx, VirtualPhotogate.tsx): When both are opened, VirtualPhotogate (fixed top-24 left-6, non-draggable) overlaps VirtualCaliper (left: 200px, top: 150px) and covers the top sliders of the left parameter dock; VirtualCaliper also uses a hardcoded scale of 35 px/m (Measured Distance: 4.00 m at 140px) across all 2D and 3D sandboxes regardless of camera zoom or sandbox units (mm, AU, reduced).
主要语言
TypeScript
星标
0
派生
0
平均合并
1 小时 28 分钟
30 天内合并 PR
47

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

danielw-sudo/agentuto 的其他 Issue

查看 danielw-sudo/agentuto 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。