Files
Atomizer/studies/M1_Mirror/m1_mirror_turbo_V2
Anto01 cb6b130908 feat(config): Add AtomizerSpec v2.0 schema and migrate all studies
Added JSON Schema:
- optimization_engine/schemas/atomizer_spec_v2.json

Migrated 28 studies to AtomizerSpec v2.0 format:
- Drone_Gimbal studies (1)
- M1_Mirror studies (21)
- M2_Mirror studies (2)
- SheetMetal_Bracket studies (4)

Each atomizer_spec.json is the unified configuration containing:
- Design variables with bounds and expressions
- Extractors (standard and custom)
- Objectives and constraints
- Optimization algorithm settings
- Canvas layout information
2026-01-20 13:11:23 -05:00
..

M1 Mirror Turbo V2 - CMA-ES with Increased 40-20 Weight

Changes from V1

Setting V1 V2
Sampler TPE CMA-ES
40-20 WFE weight 5.0 6.0
60-20 WFE weight 5.0 5.0
MFG 90 weight 3.0 3.0
Mass weight 1.0 0.0 (disabled)

Purpose

V1 achieved WS=282.05 but 40-20 WFE slightly degraded vs V11 baseline (6.55 vs ~6.5 nm).

V2 changes:

  1. CMA-ES sampler - Better for continuous optimization, exploits gradients more effectively than TPE
  2. Increased 40-20 weight - Prioritize the 40-20 WFE objective
  3. Disabled mass - Since mass constraint is always satisfied and changes are minimal

Baseline

  • V1 Best: WS=282.05 (trial 28)
  • Starting surrogate: Trained on 45 FEA samples from V1

Quick Start

cd studies/M1_Mirror/m1_mirror_turbo_V2

# Run optimization
python run_optimization.py --start

# Or with custom settings
python run_optimization.py --start --max-fea 100 --patience 5

# Test single FEA
python run_optimization.py --test

Expected Behavior

Since mass is disabled (weight=0) and 40-20 is increased (6.0 vs 5.0):

  • Optimization will focus more on reducing 40-20 WFE
  • Mass may increase slightly (but stay under 105kg constraint)
  • Best WS number will be different from V1 (different weights = different scale)

Comparing V1 vs V2

Do NOT compare WS values directly - they use different weight scales.

Compare individual objectives:

  • 40-20 WFE (nm) - should be lower in V2
  • 60-20 WFE (nm)
  • MFG 90 (nm)

Files

  • 1_setup/optimization_config.json - Configuration with V2 weights
  • 3_results/checkpoints/best_model.pt - Surrogate from V1 (45 samples)
  • 3_results/gnn_data/fea_samples.json - Training data from V1
  • run_optimization.py - Main script (updated for V2 weights)