feat: Add OPD method support to Zernike visualization with Standard/OPD toggle
Major improvements to Zernike WFE visualization: - Add ZernikeDashboardInsight: Unified dashboard with all orientations (40°, 60°, 90°) on one page with light theme and executive summary - Add OPD method toggle: Switch between Standard (Z-only) and OPD (X,Y,Z) methods in ZernikeWFEInsight with interactive buttons - Add lateral displacement maps: Visualize X,Y displacement for each orientation - Add displacement component views: Toggle between WFE, ΔX, ΔY, ΔZ in relative views - Add metrics comparison table showing both methods side-by-side New extractors: - extract_zernike_figure.py: ZernikeOPDExtractor using BDF geometry interpolation - extract_zernike_opd.py: Parabola-based OPD with focal length Key finding: OPD method gives 8-11% higher WFE values than Standard method (more conservative/accurate for surfaces with lateral displacement under gravity) Documentation updates: - SYS_12: Added E22 ZernikeOPD as recommended method - SYS_16: Added ZernikeDashboard, updated ZernikeWFE with OPD features - Cheatsheet: Added Zernike method comparison table 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -103,6 +103,55 @@ study_info = introspect_study(study_dir)
|
||||
|
||||
---
|
||||
|
||||
## README Hierarchy (Parent-Child Documentation)
|
||||
|
||||
Studies use a **two-level documentation system**:
|
||||
|
||||
### Parent README (Geometry-Level)
|
||||
|
||||
Location: `studies/{geometry_type}/README.md`
|
||||
|
||||
Contains project-wide context that ALL sub-studies share:
|
||||
- Project overview (what is this component?)
|
||||
- Physical system specs (material, mass, loading)
|
||||
- Domain-specific specs (optical prescription for mirrors, structural limits for brackets)
|
||||
- Complete design variables catalog with ranges
|
||||
- Complete objectives catalog with formulas
|
||||
- Campaign history (evolution across sub-studies)
|
||||
- Sub-studies index with links and status
|
||||
|
||||
**Example**: `studies/M1_Mirror/README.md`
|
||||
|
||||
### Child README (Study-Level)
|
||||
|
||||
Location: `studies/{geometry_type}/{study_name}/README.md`
|
||||
|
||||
Contains study-specific details, references parent for context:
|
||||
```markdown
|
||||
# Study Name
|
||||
|
||||
> **Parent Documentation**: See [../README.md](../README.md) for project overview and specifications.
|
||||
|
||||
## Study Focus
|
||||
What THIS study specifically optimizes...
|
||||
```
|
||||
|
||||
Contents:
|
||||
- Parent reference banner (MANDATORY first line)
|
||||
- Study focus (what differentiates this study)
|
||||
- Active variables (which params enabled)
|
||||
- Algorithm config (sampler, trials, settings)
|
||||
- Baseline/seeding (starting point)
|
||||
- Results summary
|
||||
|
||||
### When Creating a Study
|
||||
|
||||
1. **First study for geometry type** → Create BOTH parent and child READMEs
|
||||
2. **Subsequent studies** → Create child README, update parent's sub-studies index
|
||||
3. **New geometry type** → Create new `studies/{type}/` folder with parent README
|
||||
|
||||
---
|
||||
|
||||
## PR.3 NXSolver Interface
|
||||
|
||||
**Module**: `optimization_engine.nx_solver`
|
||||
|
||||
Reference in New Issue
Block a user