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:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
skill_id: SKILL_001
|
||||
version: 2.0
|
||||
last_updated: 2025-12-07
|
||||
version: 2.1
|
||||
last_updated: 2025-12-22
|
||||
type: reference
|
||||
code_dependencies:
|
||||
- optimization_engine/extractors/__init__.py
|
||||
@@ -12,8 +12,8 @@ requires_skills:
|
||||
|
||||
# Atomizer Quick Reference Cheatsheet
|
||||
|
||||
**Version**: 2.0
|
||||
**Updated**: 2025-12-07
|
||||
**Version**: 2.1
|
||||
**Updated**: 2025-12-22
|
||||
**Purpose**: Rapid lookup for common operations. "I want X → Use Y"
|
||||
|
||||
---
|
||||
@@ -45,10 +45,12 @@ requires_skills:
|
||||
| CAD expression mass | E5 | `extract_mass_from_expression(prt_file, expression_name='p173')` |
|
||||
| Field data | E6 | `FieldDataExtractor(field_file, result_column, aggregation)` |
|
||||
| Stiffness (k=F/δ) | E7 | `StiffnessCalculator(...)` |
|
||||
| Zernike WFE | E8 | `extract_zernike_from_op2(op2_file, bdf_file, subcase)` |
|
||||
| Zernike WFE (standard) | E8 | `extract_zernike_from_op2(op2_file, bdf_file, subcase)` |
|
||||
| Zernike relative | E9 | `extract_zernike_relative_rms(op2_file, bdf_file, target, ref)` |
|
||||
| Zernike builder | E10 | `ZernikeObjectiveBuilder(op2_finder)` |
|
||||
| Part mass + material | E11 | `extract_part_mass_material(prt_file)` → mass, volume, material |
|
||||
| Zernike Analytic | E20 | `extract_zernike_analytic(op2_file, focal_length=5000.0)` |
|
||||
| **Zernike OPD** | E22 | `extract_zernike_opd(op2_file)` ← **Most rigorous, RECOMMENDED** |
|
||||
|
||||
> **Mass extraction tip**: Always use E11 (geometry .prt) over E4 (BDF) for accuracy.
|
||||
> pyNastran under-reports mass ~7% on hex-dominant meshes with tet/pyramid fills.
|
||||
@@ -303,12 +305,20 @@ Generate physics-focused visualizations from FEA results.
|
||||
### Available Insight Types
|
||||
| Type | Purpose | Data Required |
|
||||
|------|---------|---------------|
|
||||
| `zernike_wfe` | Mirror wavefront error | OP2 with displacements |
|
||||
| `zernike_dashboard` | **RECOMMENDED: Unified WFE dashboard** | OP2 with displacements |
|
||||
| `zernike_wfe` | WFE with Standard/OPD toggle | OP2 with displacements |
|
||||
| `zernike_opd_comparison` | Compare Standard vs OPD methods | OP2 with displacements |
|
||||
| `stress_field` | Von Mises stress contours | OP2 with stresses |
|
||||
| `modal` | Mode shapes + frequencies | OP2 with eigenvectors |
|
||||
| `thermal` | Temperature distribution | OP2 with temperatures |
|
||||
| `design_space` | Parameter-objective landscape | study.db with 5+ trials |
|
||||
|
||||
### Zernike Method Comparison
|
||||
| Method | Use | RMS Difference |
|
||||
|--------|-----|----------------|
|
||||
| **Standard (Z-only)** | Quick analysis | Baseline |
|
||||
| **OPD (X,Y,Z)** ← RECOMMENDED | Any surface with lateral displacement | **+8-11% higher** (more accurate) |
|
||||
|
||||
### Commands
|
||||
```bash
|
||||
# List available insights for a study
|
||||
|
||||
Reference in New Issue
Block a user