feat: Add parametric predictor and training script for AtomizerField

Rebuilds missing neural network components based on documentation:

- neural_models/parametric_predictor.py: Design-conditioned GNN that
  predicts all 4 optimization objectives (mass, frequency, displacement,
  stress) directly from design parameters. ~500K trainable parameters.

- train_parametric.py: Training script with multi-objective loss,
  checkpoint saving with normalization stats, and TensorBoard logging.

- Updated __init__.py to export ParametricFieldPredictor and
  create_parametric_model for use by optimization_engine/neural_surrogate.py

These files enable the neural acceleration workflow:
1. Collect FEA training data (189 trials already collected)
2. Train parametric model: python train_parametric.py --train_dir ...
3. Run neural-accelerated optimization with --enable-nn flag

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Antoine
2025-11-26 16:33:50 -05:00
parent d5ffba099e
commit 20cd66dff6
3 changed files with 1247 additions and 0 deletions

View File

@@ -5,6 +5,21 @@ Phase 2: Neural Network Architecture for Field Prediction
This package contains neural network models for learning complete FEA field results
from mesh geometry, boundary conditions, and loads.
Models:
- AtomizerFieldModel: Full field predictor (displacement + stress fields)
- ParametricFieldPredictor: Design-conditioned scalar predictor (mass, freq, disp, stress)
"""
__version__ = "2.0.0"
# Import main model classes for convenience
from .field_predictor import AtomizerFieldModel, create_model
from .parametric_predictor import ParametricFieldPredictor, create_parametric_model
__all__ = [
'AtomizerFieldModel',
'create_model',
'ParametricFieldPredictor',
'create_parametric_model',
]