Files
Atomizer/studies/Simple_Bracket/bracket_pareto_3obj/README.md

131 lines
2.9 KiB
Markdown
Raw Normal View History

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