Files
Atomizer/studies/bracket_pareto_3obj/README.md
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

131 lines
2.9 KiB
Markdown

# 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
```bash
# 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
- [Atomizer Documentation](../../docs/)
- [Protocol protocol_11_multi](../../docs/protocols/system/)
- [Extractor Library](../../docs/protocols/system/SYS_12_EXTRACTOR_LIBRARY.md)