skill_id, version, last_updated, type, code_dependencies, requires_skills
skill_id
version
last_updated
type
code_dependencies
requires_skills
SKILL_001
2.0
2025-12-07
reference
optimization_engine/extractors/__init__.py
optimization_engine/method_selector.py
Atomizer Quick Reference Cheatsheet
Version : 2.0
Updated : 2025-12-07
Purpose : Rapid lookup for common operations. "I want X → Use Y"
Task → Protocol Quick Lookup
I want to...
Use Protocol
Key Command/Action
Create a new optimization study
OP_01
Generate optimization_config.json + run_optimization.py
Run an optimization
OP_02
conda activate atomizer && python run_optimization.py
Check optimization progress
OP_03
Query study.db or check dashboard at localhost:3000
See best results
OP_04
optuna-dashboard sqlite:///study.db or dashboard
Export neural training data
OP_05
python run_optimization.py --export-training
Fix an error
OP_06
Read error log → follow diagnostic tree
Add custom physics extractor
EXT_01
Create in optimization_engine/extractors/
Add lifecycle hook
EXT_02
Create in optimization_engine/plugins/
Physics
Extractor
Function Call
Max displacement
E1
extract_displacement(op2_file, subcase=1)
Natural frequency
E2
extract_frequency(op2_file, subcase=1, mode_number=1)
Von Mises stress
E3
extract_solid_stress(op2_file, subcase=1, element_type='cquad4')
BDF mass
E4
extract_mass_from_bdf(bdf_file)
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 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
Full details : See SYS_12_EXTRACTOR_LIBRARY.md or modules/extractors-catalog.md
Protocol Selection Guide
Single Objective Optimization
Multi-Objective Optimization
Neural Network Acceleration
Configuration Quick Reference
optimization_config.json Structure
Sampler Quick Selection
Sampler
Use When
Protocol
TPESampler
Default, robust to noise
P10
CMAESSampler
Smooth, unimodal problems
P10
GPSampler
Expensive FEA, few trials
P10
NSGAIISampler
Multi-objective (2-3 goals)
P11
RandomSampler
Characterization phase only
P10
Study File Structure
Common Commands
Error Quick Fixes
Error
Likely Cause
Quick Fix
"No module named optuna"
Wrong environment
conda activate atomizer
"NX session timeout"
Model too complex
Increase timeout in config
"OP2 file not found"
Solve failed
Check NX log for errors
"No feasible solutions"
Constraints too tight
Relax constraint thresholds
"NSGA-II requires >1 objective"
Wrong protocol
Use P10 for single-objective
"Expression not found"
Wrong parameter name
Verify expression names in NX
All trials identical results
Missing *_i.prt
Copy idealized part to study folder!
Full troubleshooting : See OP_06_TROUBLESHOOT.md
CRITICAL: NX FEM Mesh Update
If all optimization trials produce identical results, the mesh is NOT updating!
Required Files for Mesh Updates
Why It Matters
The *_i.prt (idealized part) MUST be:
Present in the study folder
Loaded before UpdateFemodel() (already implemented in solve_simulation.py)
Without it, UpdateFemodel() runs but the mesh doesn't change!
Privilege Levels
Level
Can Create Studies
Can Add Extractors
Can Add Protocols
user
✓
✗
✗
power_user
✓
✓
✗
admin
✓
✓
✓
Dashboard URLs
Service
URL
Purpose
Atomizer Dashboard
http://localhost:3000
Real-time optimization monitoring
Optuna Dashboard
http://localhost:8080
Trial history, parameter importance
API Backend
http://localhost:5000
REST API for dashboard
Protocol Numbers Reference
#
Name
Purpose
10
IMSO
Intelligent Multi-Strategy Optimization (adaptive)
11
Multi-Objective
NSGA-II for Pareto optimization
12
-
(Reserved)
13
Dashboard
Real-time tracking and visualization
14
Neural
Surrogate model acceleration