feat: Add NX study models and optimization histories
Includes all study folders with NX models for development: - bracket_stiffness_optimization (V1, V2, V3) - drone_gimbal_arm_optimization - simple_beam_optimization - uav_arm_optimization (V1, V2) - training_data_export_test - uav_arm_atomizerfield_test Contains .prt, .fem, .sim files and optimization databases. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
131
studies/bracket_stiffness_optimization_V2/workflow_config.json
Normal file
131
studies/bracket_stiffness_optimization_V2/workflow_config.json
Normal file
@@ -0,0 +1,131 @@
|
||||
{
|
||||
"workflow_name": "bracket_stiffness_workflow",
|
||||
"description": "End-to-end workflow for bracket stiffness optimization",
|
||||
"version": "1.0",
|
||||
|
||||
"workflow_steps": [
|
||||
{
|
||||
"step": 1,
|
||||
"name": "update_design_variables",
|
||||
"description": "Update NX model expressions with trial parameters",
|
||||
"action": "nx_update_expressions",
|
||||
"inputs": {
|
||||
"model_file": "1_setup/model/Bracket.prt",
|
||||
"expressions": {
|
||||
"support_angle": "{{support_angle}}",
|
||||
"tip_thickness": "{{tip_thickness}}"
|
||||
}
|
||||
},
|
||||
"outputs": ["updated_model"],
|
||||
"on_failure": "abort_trial"
|
||||
},
|
||||
|
||||
{
|
||||
"step": 2,
|
||||
"name": "solve_simulation",
|
||||
"description": "Run NX Nastran SOL 101 linear static analysis",
|
||||
"action": "nx_solve",
|
||||
"inputs": {
|
||||
"sim_file": "1_setup/model/Bracket_sim1.sim",
|
||||
"solver": "NX_Nastran",
|
||||
"solution": "SOL101"
|
||||
},
|
||||
"outputs": ["op2_file", "f06_file"],
|
||||
"on_failure": "abort_trial",
|
||||
"timeout": 600
|
||||
},
|
||||
|
||||
{
|
||||
"step": 3,
|
||||
"name": "export_displacement_field",
|
||||
"description": "Export z-displacement field from results",
|
||||
"action": "nx_journal",
|
||||
"inputs": {
|
||||
"journal_file": "1_setup/model/export_displacement_field.py",
|
||||
"sim_file": "1_setup/model/Bracket_sim1.sim"
|
||||
},
|
||||
"outputs": ["field_file"],
|
||||
"on_failure": "abort_trial"
|
||||
},
|
||||
|
||||
{
|
||||
"step": 4,
|
||||
"name": "extract_results",
|
||||
"description": "Extract stiffness and mass from FEA results",
|
||||
"action": "python_extractor",
|
||||
"inputs": {
|
||||
"extractor_script": "bracket_stiffness_extractor.py",
|
||||
"field_file": "1_setup/model/export_field_dz.fld",
|
||||
"op2_file": "1_setup/model/Bracket_sim1.op2"
|
||||
},
|
||||
"outputs": {
|
||||
"stiffness": "objectives.stiffness",
|
||||
"mass": "objectives.mass",
|
||||
"displacement": "displacement",
|
||||
"force": "force"
|
||||
},
|
||||
"on_failure": "abort_trial"
|
||||
},
|
||||
|
||||
{
|
||||
"step": 5,
|
||||
"name": "evaluate_constraints",
|
||||
"description": "Check mass constraint (≤ 0.2 kg) - mark as infeasible but keep for surrogate",
|
||||
"action": "constraint_check",
|
||||
"inputs": {
|
||||
"mass": "{{mass}}",
|
||||
"max_mass": 0.2
|
||||
},
|
||||
"outputs": ["constraint_satisfied"],
|
||||
"on_failure": "continue"
|
||||
},
|
||||
|
||||
{
|
||||
"step": 6,
|
||||
"name": "report_results",
|
||||
"description": "Send results to optimization engine and dashboard",
|
||||
"action": "report",
|
||||
"inputs": {
|
||||
"trial_number": "{{trial_number}}",
|
||||
"objectives": {
|
||||
"stiffness": "{{stiffness}}",
|
||||
"mass": "{{mass}}"
|
||||
},
|
||||
"design_variables": {
|
||||
"support_angle": "{{support_angle}}",
|
||||
"tip_thickness": "{{tip_thickness}}"
|
||||
},
|
||||
"metadata": {
|
||||
"displacement": "{{displacement}}",
|
||||
"force": "{{force}}"
|
||||
}
|
||||
},
|
||||
"outputs": ["trial_complete"],
|
||||
"on_failure": "log_error"
|
||||
}
|
||||
],
|
||||
|
||||
"error_handling": {
|
||||
"max_retries": 2,
|
||||
"retry_delay": 5,
|
||||
"fallback_action": "skip_trial",
|
||||
"log_errors": true,
|
||||
"error_log_file": "2_results/errors.log"
|
||||
},
|
||||
|
||||
"cleanup": {
|
||||
"delete_intermediate_files": false,
|
||||
"archive_results": true,
|
||||
"compress_op2": false
|
||||
},
|
||||
|
||||
"logging": {
|
||||
"level": "INFO",
|
||||
"log_file": "2_results/workflow.log",
|
||||
"console_output": true,
|
||||
"log_rotation": {
|
||||
"max_size_mb": 50,
|
||||
"backup_count": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user