refactor: Major reorganization of optimization_engine module structure
BREAKING CHANGE: Module paths have been reorganized for better maintainability.
Backwards compatibility aliases with deprecation warnings are provided.
New Structure:
- core/ - Optimization runners (runner, intelligent_optimizer, etc.)
- processors/ - Data processing
- surrogates/ - Neural network surrogates
- nx/ - NX/Nastran integration (solver, updater, session_manager)
- study/ - Study management (creator, wizard, state, reset)
- reporting/ - Reports and analysis (visualizer, report_generator)
- config/ - Configuration management (manager, builder)
- utils/ - Utilities (logger, auto_doc, etc.)
- future/ - Research/experimental code
Migration:
- ~200 import changes across 125 files
- All __init__.py files use lazy loading to avoid circular imports
- Backwards compatibility layer supports old import paths with warnings
- All existing functionality preserved
To migrate existing code:
OLD: from optimization_engine.nx_solver import NXSolver
NEW: from optimization_engine.nx.solver import NXSolver
OLD: from optimization_engine.runner import OptimizationRunner
NEW: from optimization_engine.core.runner import OptimizationRunner
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:30:59 -05:00
|
|
|
"""
|
|
|
|
|
Surrogate Models
|
|
|
|
|
================
|
|
|
|
|
|
|
|
|
|
Neural network and ML surrogate models for FEA acceleration.
|
|
|
|
|
|
|
|
|
|
Available modules:
|
|
|
|
|
- neural_surrogate: AtomizerField neural network surrogate
|
|
|
|
|
- generic_surrogate: Flexible surrogate interface
|
|
|
|
|
- adaptive_surrogate: Self-improving surrogate
|
|
|
|
|
- simple_mlp_surrogate: Simple multi-layer perceptron
|
|
|
|
|
- active_learning_surrogate: Active learning surrogate
|
|
|
|
|
- surrogate_tuner: Hyperparameter tuning
|
|
|
|
|
- auto_trainer: Automatic model training
|
|
|
|
|
- training_data_exporter: Export training data from studies
|
|
|
|
|
|
|
|
|
|
Note: Imports are done on-demand to avoid import errors from optional dependencies.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
# Lazy imports to avoid circular dependencies and optional dependency issues
|
|
|
|
|
def __getattr__(name):
|
|
|
|
|
"""Lazy import mechanism for surrogate modules."""
|
|
|
|
|
if name == 'NeuralSurrogate':
|
|
|
|
|
from .neural_surrogate import NeuralSurrogate
|
|
|
|
|
return NeuralSurrogate
|
|
|
|
|
elif name == 'create_surrogate_for_study':
|
|
|
|
|
from .neural_surrogate import create_surrogate_for_study
|
|
|
|
|
return create_surrogate_for_study
|
|
|
|
|
elif name == 'GenericSurrogate':
|
|
|
|
|
from .generic_surrogate import GenericSurrogate
|
|
|
|
|
return GenericSurrogate
|
|
|
|
|
elif name == 'ConfigDrivenSurrogate':
|
|
|
|
|
from .generic_surrogate import ConfigDrivenSurrogate
|
|
|
|
|
return ConfigDrivenSurrogate
|
|
|
|
|
elif name == 'create_surrogate':
|
|
|
|
|
from .generic_surrogate import create_surrogate
|
|
|
|
|
return create_surrogate
|
|
|
|
|
elif name == 'AdaptiveSurrogate':
|
|
|
|
|
from .adaptive_surrogate import AdaptiveSurrogate
|
|
|
|
|
return AdaptiveSurrogate
|
|
|
|
|
elif name == 'SimpleSurrogate':
|
|
|
|
|
from .simple_mlp_surrogate import SimpleSurrogate
|
|
|
|
|
return SimpleSurrogate
|
|
|
|
|
elif name == 'ActiveLearningSurrogate':
|
|
|
|
|
from .active_learning_surrogate import ActiveLearningSurrogate
|
|
|
|
|
return ActiveLearningSurrogate
|
|
|
|
|
elif name == 'SurrogateHyperparameterTuner':
|
|
|
|
|
from .surrogate_tuner import SurrogateHyperparameterTuner
|
|
|
|
|
return SurrogateHyperparameterTuner
|
|
|
|
|
elif name == 'tune_surrogate_for_study':
|
|
|
|
|
from .surrogate_tuner import tune_surrogate_for_study
|
|
|
|
|
return tune_surrogate_for_study
|
|
|
|
|
elif name == 'AutoTrainer':
|
|
|
|
|
from .auto_trainer import AutoTrainer
|
|
|
|
|
return AutoTrainer
|
|
|
|
|
elif name == 'TrainingDataExporter':
|
|
|
|
|
from .training_data_exporter import TrainingDataExporter
|
|
|
|
|
return TrainingDataExporter
|
|
|
|
|
elif name == 'create_exporter_from_config':
|
|
|
|
|
from .training_data_exporter import create_exporter_from_config
|
|
|
|
|
return create_exporter_from_config
|
2026-01-07 09:01:37 -05:00
|
|
|
elif name == 'EnsembleSurrogate':
|
|
|
|
|
from .ensemble_surrogate import EnsembleSurrogate
|
|
|
|
|
return EnsembleSurrogate
|
|
|
|
|
elif name == 'OODDetector':
|
|
|
|
|
from .ensemble_surrogate import OODDetector
|
|
|
|
|
return OODDetector
|
|
|
|
|
elif name == 'create_and_train_ensemble':
|
|
|
|
|
from .ensemble_surrogate import create_and_train_ensemble
|
|
|
|
|
return create_and_train_ensemble
|
refactor: Major reorganization of optimization_engine module structure
BREAKING CHANGE: Module paths have been reorganized for better maintainability.
Backwards compatibility aliases with deprecation warnings are provided.
New Structure:
- core/ - Optimization runners (runner, intelligent_optimizer, etc.)
- processors/ - Data processing
- surrogates/ - Neural network surrogates
- nx/ - NX/Nastran integration (solver, updater, session_manager)
- study/ - Study management (creator, wizard, state, reset)
- reporting/ - Reports and analysis (visualizer, report_generator)
- config/ - Configuration management (manager, builder)
- utils/ - Utilities (logger, auto_doc, etc.)
- future/ - Research/experimental code
Migration:
- ~200 import changes across 125 files
- All __init__.py files use lazy loading to avoid circular imports
- Backwards compatibility layer supports old import paths with warnings
- All existing functionality preserved
To migrate existing code:
OLD: from optimization_engine.nx_solver import NXSolver
NEW: from optimization_engine.nx.solver import NXSolver
OLD: from optimization_engine.runner import OptimizationRunner
NEW: from optimization_engine.core.runner import OptimizationRunner
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:30:59 -05:00
|
|
|
|
|
|
|
|
raise AttributeError(f"module 'optimization_engine.processors.surrogates' has no attribute '{name}'")
|
|
|
|
|
|
|
|
|
|
__all__ = [
|
|
|
|
|
'NeuralSurrogate',
|
|
|
|
|
'create_surrogate_for_study',
|
|
|
|
|
'GenericSurrogate',
|
|
|
|
|
'ConfigDrivenSurrogate',
|
|
|
|
|
'create_surrogate',
|
|
|
|
|
'AdaptiveSurrogate',
|
|
|
|
|
'SimpleSurrogate',
|
|
|
|
|
'ActiveLearningSurrogate',
|
|
|
|
|
'SurrogateHyperparameterTuner',
|
|
|
|
|
'tune_surrogate_for_study',
|
|
|
|
|
'AutoTrainer',
|
|
|
|
|
'TrainingDataExporter',
|
|
|
|
|
'create_exporter_from_config',
|
2026-01-07 09:01:37 -05:00
|
|
|
'EnsembleSurrogate',
|
|
|
|
|
'OODDetector',
|
|
|
|
|
'create_and_train_ensemble',
|
refactor: Major reorganization of optimization_engine module structure
BREAKING CHANGE: Module paths have been reorganized for better maintainability.
Backwards compatibility aliases with deprecation warnings are provided.
New Structure:
- core/ - Optimization runners (runner, intelligent_optimizer, etc.)
- processors/ - Data processing
- surrogates/ - Neural network surrogates
- nx/ - NX/Nastran integration (solver, updater, session_manager)
- study/ - Study management (creator, wizard, state, reset)
- reporting/ - Reports and analysis (visualizer, report_generator)
- config/ - Configuration management (manager, builder)
- utils/ - Utilities (logger, auto_doc, etc.)
- future/ - Research/experimental code
Migration:
- ~200 import changes across 125 files
- All __init__.py files use lazy loading to avoid circular imports
- Backwards compatibility layer supports old import paths with warnings
- All existing functionality preserved
To migrate existing code:
OLD: from optimization_engine.nx_solver import NXSolver
NEW: from optimization_engine.nx.solver import NXSolver
OLD: from optimization_engine.runner import OptimizationRunner
NEW: from optimization_engine.core.runner import OptimizationRunner
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:30:59 -05:00
|
|
|
]
|