Files
Atomizer/examples/optimization_config_neural.json

159 lines
3.6 KiB
JSON
Raw Normal View History

{
"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"
}