Files
Atomizer/studies/bracket_pareto_3obj
Antoine 602560c46a feat: Add MLP surrogate with Turbo Mode for 100x faster optimization
Neural Acceleration (MLP Surrogate):
- Add run_nn_optimization.py with hybrid FEA/NN workflow
- MLP architecture: 4-layer (64->128->128->64) with BatchNorm/Dropout
- Three workflow modes:
  - --all: Sequential export->train->optimize->validate
  - --hybrid-loop: Iterative Train->NN->Validate->Retrain cycle
  - --turbo: Aggressive single-best validation (RECOMMENDED)
- Turbo mode: 5000 NN trials + 50 FEA validations in ~12 minutes
- Separate nn_study.db to avoid overloading dashboard

Performance Results (bracket_pareto_3obj study):
- NN prediction errors: mass 1-5%, stress 1-4%, stiffness 5-15%
- Found minimum mass designs at boundary (angle~30deg, thick~30mm)
- 100x speedup vs pure FEA exploration

Protocol Operating System:
- Add .claude/skills/ with Bootstrap, Cheatsheet, Context Loader
- Add docs/protocols/ with operations (OP_01-06) and system (SYS_10-14)
- Update SYS_14_NEURAL_ACCELERATION.md with MLP Turbo Mode docs

NX Automation:
- Add optimization_engine/hooks/ for NX CAD/CAE automation
- Add study_wizard.py for guided study creation
- Fix FEM mesh update: load idealized part before UpdateFemodel()

New Study:
- bracket_pareto_3obj: 3-objective Pareto (mass, stress, stiffness)
- 167 FEA trials + 5000 NN trials completed
- Demonstrates full hybrid workflow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 20:01:59 -05:00
..

bracket_pareto_3obj

Three-objective Pareto optimization: minimize mass, minimize stress, maximize stiffness

Generated: 2025-12-06 14:43 Protocol: Multi-Objective NSGA-II Trials: 100


1. Engineering Problem

Three-objective Pareto optimization: minimize mass, minimize stress, maximize stiffness


2. Mathematical Formulation

Design Variables

Parameter Bounds Units Description
support_angle [20, 70] degrees Angle of support arm relative to base
tip_thickness [30, 60] mm Thickness at bracket tip where load is applied

Objectives

Objective Goal Extractor Weight
mass minimize extract_mass_from_bdf 1.0
stress minimize extract_solid_stress 1.0
stiffness maximize extract_displacement 1.0

Constraints

Constraint Type Threshold Units
stress_limit less_than 300 MPa

3. Optimization Algorithm

  • Protocol: protocol_11_multi
  • Sampler: NSGAIISampler
  • Trials: 100
  • Neural Acceleration: Disabled

4. Simulation Pipeline

Design Variables → NX Expression Update → Nastran Solve → Result Extraction → Objective Evaluation

5. Result Extraction Methods

Result Extractor Source
mass extract_mass_from_bdf OP2/DAT
stress extract_solid_stress OP2/DAT
stiffness extract_displacement OP2/DAT

6. Study File Structure

bracket_pareto_3obj/
├── 1_setup/
│   ├── model/
│   │   ├── Bracket.prt
│   │   ├── Bracket_sim1.sim
│   │   └── Bracket_fem1.fem
│   ├── optimization_config.json
│   └── workflow_config.json
├── 2_results/
│   ├── study.db
│   └── optimization.log
├── run_optimization.py
├── reset_study.py
├── README.md
├── STUDY_REPORT.md
└── MODEL_INTROSPECTION.md

7. Quick Start

# 1. Discover model outputs
python run_optimization.py --discover

# 2. Validate setup with single trial
python run_optimization.py --validate

# 3. Run integration test (3 trials)
python run_optimization.py --test

# 4. Run full optimization
python run_optimization.py --run --trials 100

# 5. Resume if interrupted
python run_optimization.py --run --trials 50 --resume

8. Results Location

File Description
2_results/study.db Optuna SQLite database
2_results/optimization.log Structured log file
2_results/pareto_front.json Pareto-optimal solutions

9. References