{ "study_name": "bracket_stiffness_optimization_V2", "description": "Maximize bracket stiffness while minimizing mass (constraint: mass ≤ 0.2 kg)", "objectives": [ { "name": "stiffness", "type": "maximize", "description": "Structural stiffness (N/mm) calculated as Force/Displacement", "target": null, "weight": 1.0 }, { "name": "mass", "type": "minimize", "description": "Total mass (kg) - secondary objective with hard constraint", "target": null, "weight": 0.1 } ], "constraints": [ { "name": "mass_limit", "type": "less_than", "value": 0.2, "description": "Maximum allowable mass: 200 grams" } ], "design_variables": [ { "name": "support_angle", "type": "continuous", "min": 20.0, "max": 70.0, "initial": 60.0, "unit": "degrees", "description": "Angle of support arm relative to base" }, { "name": "tip_thickness", "type": "continuous", "min": 30.0, "max": 60.0, "initial": 30.0, "unit": "mm", "description": "Thickness of bracket tip where load is applied" } ], "optimization_settings": { "algorithm": "NSGA-II", "n_trials": 50, "n_jobs": 1, "sampler": "TPESampler", "pruner": "MedianPruner", "pruner_settings": { "n_startup_trials": 10, "n_warmup_steps": 5, "interval_steps": 1 }, "timeout": null, "seed": 42 }, "simulation_settings": { "solver": "NX_Nastran", "solution_type": "SOL101", "analysis_type": "Linear_Static", "model_file": "1_setup/model/Bracket.prt", "sim_file": "1_setup/model/Bracket_sim1.sim", "fem_file": "1_setup/model/Bracket_fem1.fem" }, "extraction_settings": { "extractor_module": "bracket_stiffness_extractor", "extractor_class": "BracketStiffnessExtractor", "field_file": "export_field_dz.fld", "op2_file": "Bracket_sim1.op2", "force_component": "fz", "displacement_component": "z", "displacement_aggregation": "max_abs" }, "output_settings": { "results_dir": "2_results", "database_name": "study.db", "checkpoint_interval": 5, "visualization": true, "export_format": ["json", "csv", "parquet"] }, "dashboard_settings": { "enabled": true, "port": 8000, "realtime_updates": true, "websocket": true } }