Files
Atomizer/studies/bracket_pareto_3obj/1_setup/optimization_config.json

146 lines
3.8 KiB
JSON
Raw Normal View History

{
"study_name": "bracket_pareto_3obj",
"description": "Three-objective Pareto optimization: minimize mass, minimize stress, maximize stiffness",
"engineering_context": "Generated by StudyWizard on 2025-12-06 14:43",
"template_info": {
"category": "structural",
"analysis_type": "static",
"typical_applications": [],
"neural_enabled": false
},
"optimization_settings": {
"protocol": "protocol_11_multi",
"n_trials": 100,
"sampler": "NSGAIISampler",
"pruner": null,
"timeout_per_trial": 400
},
"design_variables": [
{
"parameter": "support_angle",
"bounds": [
20,
70
],
"description": "Angle of support arm relative to base",
"units": "degrees"
},
{
"parameter": "tip_thickness",
"bounds": [
30,
60
],
"description": "Thickness at bracket tip where load is applied",
"units": "mm"
}
],
"objectives": [
{
"name": "mass",
"goal": "minimize",
"weight": 1.0,
"description": "Total bracket mass (kg)",
"extraction": {
"action": "extract_mass_from_bdf",
"domain": "result_extraction",
"params": {}
}
},
{
"name": "stress",
"goal": "minimize",
"weight": 1.0,
"description": "Maximum von Mises stress (MPa)",
"extraction": {
"action": "extract_solid_stress",
"domain": "result_extraction",
"params": {
"metric": "max_von_mises"
}
}
},
{
"name": "stiffness",
"goal": "maximize",
"weight": 1.0,
"description": "Structural stiffness = Force/Displacement (N/mm)",
"extraction": {
"action": "extract_displacement",
"domain": "result_extraction",
"params": {
"invert_for_stiffness": true
}
}
}
],
"constraints": [
{
"name": "stress_limit",
"type": "less_than",
"threshold": 300,
"description": "Keep stress below 300 MPa for safety margin",
"extraction": {
"action": "extract_solid_stress",
"domain": "result_extraction",
"params": {}
}
}
],
"simulation": {
"model_file": "Bracket.prt",
"sim_file": "Bracket_sim1.sim",
"fem_file": "Bracket_fem1.fem",
"solver": "nastran",
"analysis_types": [
"static"
],
"solution_name": "Solution 1",
"dat_file": "bracket_sim1-solution_1.dat",
"op2_file": "bracket_sim1-solution_1.op2"
},
"result_extraction": {
"mass": {
"method": "extract_mass_from_bdf",
"extractor_module": "optimization_engine.extractors.bdf_mass_extractor",
"function": "extract_mass_from_bdf",
"output_unit": "kg"
},
"stress": {
"method": "extract_solid_stress",
"extractor_module": "optimization_engine.extractors.extract_von_mises_stress",
"function": "extract_solid_stress",
"output_unit": "MPa"
},
"stiffness": {
"method": "extract_displacement",
"extractor_module": "optimization_engine.extractors.extract_displacement",
"function": "extract_displacement",
"output_unit": "mm"
},
"stress_limit": {
"method": "extract_solid_stress",
"extractor_module": "optimization_engine.extractors.extract_von_mises_stress",
"function": "extract_solid_stress",
"output_unit": "MPa"
}
},
"reporting": {
"generate_plots": true,
"save_incremental": true,
"llm_summary": true,
"generate_pareto_front": true
},
"neural_acceleration": {
"enabled": true,
"min_training_points": 50,
"auto_train": true,
"epochs": 300,
"validation_split": 0.2,
"nn_trials": 1000,
"validate_top_n": 10,
"model_file": "surrogate_best.pt",
"separate_nn_database": true,
"description": "NN results stored in nn_study.db to avoid overloading dashboard"
}
}