Major changes: - Dashboard: WebSocket-based chat with session management - Dashboard: New chat components (ChatPane, ChatInput, ModeToggle) - Dashboard: Enhanced UI with parallel coordinates chart - MCP Server: New atomizer-tools server for Claude integration - Extractors: Enhanced Zernike OPD extractor - Reports: Improved report generator New studies (configs and scripts only): - M1 Mirror: Cost reduction campaign studies - Simple Beam, Simple Bracket, UAV Arm studies Note: Large iteration data (2_iterations/, best_design_archive/) excluded via .gitignore - kept on local Gitea only. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
131 lines
2.9 KiB
Markdown
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)
|