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>
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 |