Commit Graph

28 Commits

Author SHA1 Message Date
kschappell a221913a9d Put sidebar controls in fragment to prevent page blanking
Both controls and display are now fragments, so slider
changes don't trigger full page reruns.
2025-12-02 11:56:00 +00:00
kschappell 6af12d895a Use st.fragment for smooth dashboard updates
Replace st.rerun() with @st.fragment decorator to prevent
full page reloads and eliminate UI greying out.
2025-12-02 11:50:26 +00:00
kschappell 7c5953ea18 Fix dashboard simulation speed with time multiplier
- Add time multiplier control (1× to 100× speed)
- Calculate steps based on real elapsed time
- Add 50ms delay to prevent UI thrashing
- Display current speed in Sim Time metric
2025-12-02 11:40:54 +00:00
kschappell 217a1d1472 Release v0.1.0-alpha.2 2025-12-02 03:12:08 +00:00
kschappell 02101fd4b9 Add self-heating visualisation 2025-12-02 03:11:28 +00:00
kschappell 0e270dee88 Add interactive physics controls 2025-12-02 03:10:37 +00:00
kschappell 29bf371834 Add physics visualisation panel 2025-12-02 03:09:58 +00:00
kschappell f210e00743 Add Streamlit dashboard skeleton 2025-12-02 03:09:12 +00:00
kschappell 3dcd1b9ca5 Release v0.1.0-alpha.1
Physics engine working milestone:
- Thermal-electrical coupling simulation
- LDO DUT model with temperature dependence
- Comprehensive test suite
2025-12-02 02:59:52 +00:00
kschappell f3873081ae Add physics engine tests
Integration tests for thermal-electrical coupling:
- Thermal settling (chamber, case, junction)
- Self-heating effects with power dissipation
- Temperature-dependent electrical behaviour
- Complete thermal-electrical feedback loop
2025-12-02 02:59:01 +00:00
kschappell 1429bf34a7 Implement physics engine stepping
Full implementation of step() method with thermal-electrical coupling:
- Chamber temperature first-order response to setpoint
- Case temperature with self-heating via thermal calculations
- Junction temperature from θ_jc thermal resistance
- Electrical state from temperature-dependent DUT model
- Default LDO model when none provided
2025-12-02 02:57:19 +00:00
kschappell 151ad8d673 Implement LDO DUT model
Temperature-dependent LDO voltage regulator model with:
- Output voltage tempco (ppm/°C)
- Quiescent current tempco
- Dropout voltage temperature dependence
- Power dissipation calculation (Vin-Vout)*Iload + Vin*Iq
- Dropout detection

Implements DUTModel protocol for physics engine integration.
2025-12-02 02:56:19 +00:00
kschappell 37b3ca912a Implement thermal calculation functions
Pure functions for first-order thermal response calculations:
- Temperature derivative and update using Euler integration
- Case temperature with self-heating via θ_ca
- Junction temperature calculation via θ_jc
- Steady-state junction temperature helper
2025-12-02 02:55:07 +00:00
kschappell feab2e0bdc Add physics model unit tests
Test dataclass creation, immutability, equality, and hashability for
ThermalState and ElectricalState. Also test PhysicsEngine stub methods.
2025-12-02 02:38:50 +00:00
kschappell 47d02f6a12 Rename models.py to state.py to avoid conflict with models/ directory
The models.py file conflicts with the models/ subdirectory when
importing. Renamed to state.py for clarity.
2025-12-02 02:38:25 +00:00
kschappell 13a7516773 Add physics engine stub
Define PhysicsEngine class with stub methods for thermal-electrical
simulation. Methods return placeholder values; full implementation
will be added in Sprint 3.
2025-12-02 02:21:44 +00:00
kschappell 65f57ccf86 Add DUT model protocol
Define the DUTModel Protocol interface that all device models must
implement to integrate with the physics engine.
2025-12-02 02:21:01 +00:00
kschappell 2edb7b7c10 Add physics state dataclasses
Define frozen dataclasses for ThermalState and ElectricalState to
represent immutable simulation state snapshots.
2025-12-02 02:20:22 +00:00
kschappell 99f70bb23b Restructure package for domain-driven design
Reorganise package structure to improve separation of concerns:
- instruments/ - SCPI, transport, drivers, interfaces, factory
- simulation/ - physics engine, virtual instruments, server
- framework/ - test runner, logger, limits, context
- tests/ - thermal/, electrical/ (DVT test implementations)
- data/ - repository, models
- reporting/ - generator, templates
- app/ - CLI, config, dashboard

This structure enables:
- Reusable instruments package for other test suites
- Clear separation of simulation (dev) vs production code
- Domain-focused package organisation

Updated documentation to reflect new paths.
2025-12-02 01:53:33 +00:00
kschappell 111666945e Release v0.0.1 2025-12-01 23:52:26 +00:00
kschappell d2bda909ae Add CLI entry point with version command 2025-12-01 23:51:49 +00:00
kschappell 14223e54ca Configure development tooling (ruff, mypy, pytest) 2025-12-01 23:51:26 +00:00
kschappell 2ecbb976bf Add package directory structure 2025-12-01 23:50:57 +00:00
kschappell 8ee73d443a Add pyproject.toml with core dependencies 2025-12-01 23:49:12 +00:00
kschappell b164252a92 Add versioning strategy and CI/CD pipeline
CI / Lint (push) Failing after 2m51s
CI / Type Check (push) Failing after 32s
CI / Test (push) Failing after 37s
CI / Release (push) Has been skipped
- Add semantic versioning section to development plan
- Map sprint milestones to version tags
- Create Gitea Actions CI workflow (lint, typecheck, test, release)
- Add CHANGELOG.md following Keep a Changelog format
2025-12-01 23:42:41 +00:00
kschappell afb5bd2075 Update development plan with vertical slice approach
- Reorder sprints for visual-first development
- Dashboard (Sprint 4) now follows Physics Engine (Sprint 3)
- Infrastructure layers (SCPI, TCP, HAL) follow visual demo
- Update project references to py-dvt-ate
2025-12-01 22:55:15 +00:00
kschappell 356b5dcebc docs: add iterative development plan for Phase 1
- Break Phase 1 into 25 sprints with atomic tasks
- Define stub-first approach for manageable complexity
- Specify commit messages for each task
- Include LLM optimisation notes for context management
2025-12-01 22:37:04 +00:00
kschappell ed535e86ea Initial project setup with documentation
- Add project requirements document (01_requirements.md)
- Add technical specification (02_technical_specification.md)
- Add architecture decisions (03_architecture_decisions.md)
- Add README with project overview
- Add .gitignore for Python projects
2025-12-01 22:26:57 +00:00