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

Đang mở
#52 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
react, typescript
Lĩnh vực
frontend, testing-qa

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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).
Ngôn ngữ chính
TypeScript
Star
0
Fork
0
Merge trung bình
52 phút
Pull request đã merge (30 ngày)
44

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của danielw-sudo/agentuto

Tất cả issue của danielw-sudo/agentuto

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.