Created interactive configuration builder that discovers available options and helps users set up multi-objective optimization with constraints. Features: - Lists all available design variables from discovered model - Provides catalog of objectives (minimize mass, stress, displacement, volume) - Provides catalog of constraints (max stress, max displacement, mass limits) - Suggests reasonable bounds for design variables based on type - Supports multi-objective optimization with configurable weights - Validates and builds complete optimization_config.json Available Objectives: - minimize_mass: Weight reduction (weight: 5.0) - minimize_max_stress: Failure prevention (weight: 10.0) - minimize_max_displacement: Stiffness (weight: 3.0) - minimize_volume: Material usage (weight: 4.0) Available Constraints: - max_stress_limit: Stress <= limit (typical: 200 MPa) - max_displacement_limit: Displacement <= limit (typical: 1.0 mm) - min_mass_limit: Mass >= limit (structural integrity) - max_mass_limit: Mass <= limit (weight budget) Example Configuration: - Design Variables: tip_thickness, support_angle, support_blend_radius - Objectives: Minimize mass (5.0) + Minimize stress (10.0) - Constraints: max_displacement <= 1.0 mm, max_stress <= 200 MPa - Settings: 150 trials, TPE sampler Usage: python optimization_engine/optimization_config_builder.py Output: optimization_config.json with complete multi-objective setup Integration: - Works with discover_fea_model() to find design variables - Links to result extractors (stress, displacement, mass) - Ready for MCP build_optimization_config tool - Supports LLM-driven configuration building This enables the workflow: 1. User: "Minimize weight and stress with max displacement < 1mm" 2. LLM discovers model → lists options → builds config 3. Optimization engine executes with multi-objective + constraints
5.3 KiB
5.3 KiB