Snapshots the current development tree, headlined by proper load combinations (user request): a reusable LoadCombination entity of weighted completed static-case results (e.g. 1.2xDead + 1.6xLive). - core: LoadCombination/LoadCombinationItem entities, Project integration (lookup, unique ids, reference validation) - services: combinations.py (linear superposition + envelope), exported via services __init__ - commands: undoable Add/Delete/Update for combinations - GUI: Load Combinations manager dialog, Run-dialog evaluation, envelope display in Results panel, Combinations tab in Table dock - tests: unit coverage (validation, math, error paths) + integration superposition check vs a single factored run
26 lines
514 B
Markdown
26 lines
514 B
Markdown
## Summary
|
|
|
|
<!-- One sentence: what does this change? -->
|
|
|
|
## Linked issue
|
|
|
|
Closes #
|
|
|
|
## Type of change
|
|
|
|
- [ ] Bug fix
|
|
- [ ] New feature
|
|
- [ ] Refactor / cleanup
|
|
- [ ] Documentation
|
|
- [ ] CI / tooling
|
|
|
|
## Architectural checklist
|
|
|
|
- [ ] No `from PySide6` in `core/` or `services/`
|
|
- [ ] No `import openseespy` in `core/` or `views/`
|
|
- [ ] Public functions have type hints + docstrings
|
|
- [ ] Heavy work runs off the GUI thread
|
|
|
|
## Testing
|
|
|
|
<!-- How was this verified? Reference tests added or analytical checks. -->
|