Files
Atomizer/templates/beam_stiffness_optimization.json
Anto01 a0c008a593 feat: Add neural loop automation - templates, auto-trainer, CLI
Closes the neural training loop with automated workflow:
- atomizer.py: One-command neural workflow CLI
- auto_trainer.py: Auto-training trigger system (50pt threshold)
- template_loader.py: Study creation from templates
- study_reset.py: Study reset/cleanup utility
- 3 templates: beam stiffness, bracket stress, frequency tuning
- State assessment document (Nov 25)

Usage: python atomizer.py neural-optimize --study my_study --trials 500

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 07:53:00 -05:00

113 lines
2.8 KiB
JSON

{
"study_name": "beam_stiffness_optimization",
"description": "Beam Stiffness Optimization - Maximize stiffness while minimizing mass",
"engineering_context": "Cantilever beam optimization. Find optimal cross-section dimensions to maximize bending stiffness under tip load while minimizing weight.",
"template_info": {
"category": "structural",
"analysis_type": "static",
"typical_applications": ["cantilever beams", "support arms", "brackets"],
"required_nx_expressions": ["beam_width", "beam_height", "beam_length"]
},
"optimization_settings": {
"protocol": "protocol_10_single_objective",
"n_trials": 50,
"sampler": "TPE",
"pruner": "MedianPruner",
"timeout_per_trial": 300
},
"design_variables": [
{
"parameter": "beam_width",
"bounds": [10, 50],
"description": "Beam cross-section width (mm)",
"units": "mm"
},
{
"parameter": "beam_height",
"bounds": [10, 80],
"description": "Beam cross-section height (mm)",
"units": "mm"
},
{
"parameter": "beam_length",
"bounds": [100, 500],
"description": "Beam length (mm)",
"units": "mm"
}
],
"objectives": [
{
"name": "stiffness",
"goal": "maximize",
"weight": 1.0,
"description": "Effective bending stiffness (inverse of tip displacement under unit load)",
"target": 10000,
"extraction": {
"action": "extract_displacement",
"domain": "result_extraction",
"params": {
"result_type": "displacement",
"metric": "max",
"invert": true
}
}
}
],
"constraints": [
{
"name": "max_mass_limit",
"type": "less_than",
"threshold": 500,
"description": "Maximum mass < 500g",
"extraction": {
"action": "extract_mass",
"domain": "result_extraction",
"params": {
"result_type": "mass",
"metric": "total"
}
}
},
{
"name": "max_stress_limit",
"type": "less_than",
"threshold": 200,
"description": "Maximum von Mises stress < 200 MPa",
"extraction": {
"action": "extract_stress",
"domain": "result_extraction",
"params": {
"result_type": "stress",
"metric": "max_von_mises"
}
}
}
],
"simulation": {
"model_file": "Beam.prt",
"sim_file": "Beam_sim1.sim",
"fem_file": "Beam_fem1.fem",
"solver": "nastran",
"analysis_types": ["static"]
},
"reporting": {
"generate_plots": true,
"save_incremental": true,
"llm_summary": false
},
"training_data_export": {
"enabled": true,
"export_dir": "atomizer_field_training_data/${study_name}",
"export_every_n_trials": 1,
"include_mesh": true,
"compress": false
}
}