feat: Major update with validators, skills, dashboard, and docs reorganization
- Add validation framework (config, model, results, study validators) - Add Claude Code skills (create-study, run-optimization, generate-report, troubleshoot, analyze-model) - Add Atomizer Dashboard (React frontend + FastAPI backend) - Reorganize docs into structured directories (00-09) - Add neural surrogate modules and training infrastructure - Add multi-objective optimization support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
159
examples/optimization_config_neural.json
Normal file
159
examples/optimization_config_neural.json
Normal file
@@ -0,0 +1,159 @@
|
||||
{
|
||||
"study_name": "beam_optimization_with_neural",
|
||||
"sim_file": "examples/Models/Beam/Beam.sim",
|
||||
"fem_file": "examples/Models/Beam/Beam_fem1.fem",
|
||||
|
||||
"design_variables": [
|
||||
{
|
||||
"name": "width",
|
||||
"expression_name": "width",
|
||||
"min": 20.0,
|
||||
"max": 80.0
|
||||
},
|
||||
{
|
||||
"name": "height",
|
||||
"expression_name": "height",
|
||||
"min": 30.0,
|
||||
"max": 100.0
|
||||
},
|
||||
{
|
||||
"name": "thickness",
|
||||
"expression_name": "thickness",
|
||||
"min": 2.0,
|
||||
"max": 10.0
|
||||
}
|
||||
],
|
||||
|
||||
"objectives": [
|
||||
{
|
||||
"name": "max_stress",
|
||||
"type": "minimize",
|
||||
"weight": 1.0,
|
||||
"extractor": {
|
||||
"type": "result_parameter",
|
||||
"parameter_name": "Max Von Mises Stress"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mass",
|
||||
"type": "minimize",
|
||||
"weight": 0.5,
|
||||
"extractor": {
|
||||
"type": "expression",
|
||||
"expression_name": "mass"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"constraints": [
|
||||
{
|
||||
"name": "stress_limit",
|
||||
"type": "less_than",
|
||||
"value": 250.0,
|
||||
"extractor": {
|
||||
"type": "result_parameter",
|
||||
"parameter_name": "Max Von Mises Stress"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "max_displacement",
|
||||
"type": "less_than",
|
||||
"value": 5.0,
|
||||
"extractor": {
|
||||
"type": "result_parameter",
|
||||
"parameter_name": "Max Displacement"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"optimization": {
|
||||
"algorithm": "NSGA-II",
|
||||
"n_trials": 200,
|
||||
"population_size": 20
|
||||
},
|
||||
|
||||
"neural_surrogate": {
|
||||
"enabled": true,
|
||||
"model_checkpoint": "atomizer-field/checkpoints/beam_model_v1.0/best_model.pt",
|
||||
"confidence_threshold": 0.85,
|
||||
"fallback_to_fea": true,
|
||||
"ensemble_models": [
|
||||
"atomizer-field/checkpoints/beam_model_v1.0/model_1.pt",
|
||||
"atomizer-field/checkpoints/beam_model_v1.0/model_2.pt",
|
||||
"atomizer-field/checkpoints/beam_model_v1.0/model_3.pt"
|
||||
],
|
||||
"device": "cuda",
|
||||
"batch_size": 32,
|
||||
"cache_predictions": true
|
||||
},
|
||||
|
||||
"hybrid_optimization": {
|
||||
"enabled": true,
|
||||
"exploration_trials": 20,
|
||||
"training_interval": 50,
|
||||
"validation_frequency": 10,
|
||||
"min_training_samples": 30,
|
||||
"retrain_on_drift": true,
|
||||
"drift_threshold": 0.15,
|
||||
"adaptive_switching": true,
|
||||
"phases": [
|
||||
{
|
||||
"name": "exploration",
|
||||
"trials": [0, 20],
|
||||
"use_nn": false,
|
||||
"description": "Initial FEA-based exploration"
|
||||
},
|
||||
{
|
||||
"name": "training",
|
||||
"trials": [21, 30],
|
||||
"use_nn": false,
|
||||
"description": "Collect training data"
|
||||
},
|
||||
{
|
||||
"name": "exploitation",
|
||||
"trials": [31, 180],
|
||||
"use_nn": true,
|
||||
"description": "Neural network exploitation"
|
||||
},
|
||||
{
|
||||
"name": "validation",
|
||||
"trials": [181, 200],
|
||||
"use_nn": false,
|
||||
"description": "Final FEA validation"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"training_data_export": {
|
||||
"enabled": true,
|
||||
"export_dir": "atomizer_field_training_data/beam_study",
|
||||
"export_frequency": 1,
|
||||
"include_failed_trials": false,
|
||||
"compression": "gzip"
|
||||
},
|
||||
|
||||
"neural_training": {
|
||||
"auto_train": true,
|
||||
"training_script": "atomizer-field/train.py",
|
||||
"epochs": 200,
|
||||
"learning_rate": 0.001,
|
||||
"batch_size": 16,
|
||||
"validation_split": 0.2,
|
||||
"early_stopping_patience": 20,
|
||||
"model_architecture": "GraphUNet",
|
||||
"hidden_channels": 128,
|
||||
"num_layers": 4,
|
||||
"dropout": 0.1,
|
||||
"physics_loss_weight": 0.3
|
||||
},
|
||||
|
||||
"performance_tracking": {
|
||||
"track_speedup": true,
|
||||
"track_accuracy": true,
|
||||
"export_metrics": true,
|
||||
"metrics_file": "neural_performance_metrics.json"
|
||||
},
|
||||
|
||||
"version": "2.0",
|
||||
"description": "Beam optimization with AtomizerField neural surrogate for 600x speedup"
|
||||
}
|
||||
Reference in New Issue
Block a user