{
  "study_name": "bracket_displacement_maximizing",
  "study_description": "Maximize displacement of bracket under load while maintaining safety factor >= 4.0",
  "created_date": "2025-11-16",
  "model": {
    "part_file": "model/Bracket.prt",
    "fem_file": "model/Bracket_fem1.fem",
    "sim_file": "model/Bracket_sim1.sim",
    "element_types": ["CHEXA", "CPENTA"],
    "nodes": 585,
    "elements": 316
  },
  "optimization": {
    "objective": "Maximize displacement (minimize negative displacement)",
    "direction": "minimize",
    "algorithm": "TPE",
    "n_trials": 20,
    "design_variables": [
      {
        "name": "tip_thickness",
        "type": "continuous",
        "min": 15.0,
        "max": 25.0,
        "units": "mm",
        "baseline": 17.0
      },
      {
        "name": "support_angle",
        "type": "continuous",
        "min": 20.0,
        "max": 40.0,
        "units": "degrees",
        "baseline": 38.0
      }
    ],
    "constraints": [
      {
        "name": "safety_factor",
        "type": ">=",
        "value": 4.0,
        "description": "Minimum safety factor constraint"
      }
    ]
  },
  "material": {
    "name": "Aluminum 6061-T6",
    "yield_strength": 276.0,
    "yield_strength_units": "MPa",
    "allowable_stress": 69.0,
    "allowable_stress_units": "MPa"
  },
  "workflow": {
    "phase": "3.3",
    "wizard_validation": true,
    "auto_element_detection": true,
    "extractors": [
      {
        "action": "extract_displacement",
        "result_type": "displacement"
      },
      {
        "action": "extract_solid_stress",
        "result_type": "stress",
        "element_type": "auto-detected"
      }
    ],
    "inline_calculations": [
      {
        "action": "calculate_safety_factor",
        "formula": "276.0 / max_von_mises"
      },
      {
        "action": "negate_displacement",
        "formula": "-max_displacement"
      }
    ],
    "hooks": [
      "safety_factor_constraint"
    ]
  }
}
