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