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>
This commit is contained in:
130
studies/bracket_pareto_3obj/README.md
Normal file
130
studies/bracket_pareto_3obj/README.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user