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>
166 lines
6.8 KiB
Python
166 lines
6.8 KiB
Python
"""
|
|
Atomizer Optimization Engine
|
|
============================
|
|
|
|
Structural optimization framework for Siemens NX.
|
|
|
|
New Module Structure (v2.0):
|
|
- core/ - Optimization runners
|
|
- processors/ - Data processing (surrogates, dynamic_response)
|
|
- nx/ - NX/Nastran integration
|
|
- study/ - Study management
|
|
- reporting/ - Reports and analysis
|
|
- config/ - Configuration
|
|
- extractors/ - Physics extraction (unchanged)
|
|
- insights/ - Visualizations (unchanged)
|
|
- gnn/ - Graph neural networks (unchanged)
|
|
- hooks/ - NX hooks (unchanged)
|
|
- utils/ - Utilities
|
|
- validators/ - Validation (unchanged)
|
|
|
|
Quick Start:
|
|
from optimization_engine.core import OptimizationRunner
|
|
from optimization_engine.nx import NXSolver
|
|
from optimization_engine.extractors import extract_displacement
|
|
"""
|
|
|
|
__version__ = '2.0.0'
|
|
|
|
import warnings as _warnings
|
|
import importlib as _importlib
|
|
|
|
# =============================================================================
|
|
# SUBMODULE LIST
|
|
# =============================================================================
|
|
_SUBMODULES = {
|
|
'core', 'processors', 'nx', 'study', 'reporting', 'config',
|
|
'extractors', 'insights', 'gnn', 'hooks', 'utils', 'validators',
|
|
}
|
|
|
|
# =============================================================================
|
|
# BACKWARDS COMPATIBILITY LAYER
|
|
# =============================================================================
|
|
# These aliases allow old imports to work with deprecation warnings.
|
|
# Will be removed in v3.0.
|
|
|
|
_DEPRECATED_MAPPINGS = {
|
|
# Core
|
|
'runner': 'optimization_engine.core.runner',
|
|
'base_runner': 'optimization_engine.core.base_runner',
|
|
'intelligent_optimizer': 'optimization_engine.core.intelligent_optimizer',
|
|
'method_selector': 'optimization_engine.core.method_selector',
|
|
'strategy_selector': 'optimization_engine.core.strategy_selector',
|
|
'strategy_portfolio': 'optimization_engine.core.strategy_portfolio',
|
|
'gradient_optimizer': 'optimization_engine.core.gradient_optimizer',
|
|
'runner_with_neural': 'optimization_engine.core.runner_with_neural',
|
|
|
|
# Surrogates
|
|
'neural_surrogate': 'optimization_engine.processors.surrogates.neural_surrogate',
|
|
'generic_surrogate': 'optimization_engine.processors.surrogates.generic_surrogate',
|
|
'adaptive_surrogate': 'optimization_engine.processors.surrogates.adaptive_surrogate',
|
|
'simple_mlp_surrogate': 'optimization_engine.processors.surrogates.simple_mlp_surrogate',
|
|
'active_learning_surrogate': 'optimization_engine.processors.surrogates.active_learning_surrogate',
|
|
'surrogate_tuner': 'optimization_engine.processors.surrogates.surrogate_tuner',
|
|
'auto_trainer': 'optimization_engine.processors.surrogates.auto_trainer',
|
|
'training_data_exporter': 'optimization_engine.processors.surrogates.training_data_exporter',
|
|
|
|
# NX
|
|
'nx_solver': 'optimization_engine.nx.solver',
|
|
'nx_updater': 'optimization_engine.nx.updater',
|
|
'nx_session_manager': 'optimization_engine.nx.session_manager',
|
|
'solve_simulation': 'optimization_engine.nx.solve_simulation',
|
|
'solve_simulation_simple': 'optimization_engine.nx.solve_simulation_simple',
|
|
'model_cleanup': 'optimization_engine.nx.model_cleanup',
|
|
'export_expressions': 'optimization_engine.nx.export_expressions',
|
|
'import_expressions': 'optimization_engine.nx.import_expressions',
|
|
'mesh_converter': 'optimization_engine.nx.mesh_converter',
|
|
|
|
# Study
|
|
'study_creator': 'optimization_engine.study.creator',
|
|
'study_wizard': 'optimization_engine.study.wizard',
|
|
'study_state': 'optimization_engine.study.state',
|
|
'study_reset': 'optimization_engine.study.reset',
|
|
'study_continuation': 'optimization_engine.study.continuation',
|
|
'benchmarking_substudy': 'optimization_engine.study.benchmarking',
|
|
'generate_history_from_trials': 'optimization_engine.study.history_generator',
|
|
|
|
# Reporting
|
|
'generate_report': 'optimization_engine.reporting.report_generator',
|
|
'generate_report_markdown': 'optimization_engine.reporting.markdown_report',
|
|
'comprehensive_results_analyzer': 'optimization_engine.reporting.results_analyzer',
|
|
'visualizer': 'optimization_engine.reporting.visualizer',
|
|
'landscape_analyzer': 'optimization_engine.reporting.landscape_analyzer',
|
|
|
|
# Config
|
|
'config_manager': 'optimization_engine.config.manager',
|
|
'optimization_config_builder': 'optimization_engine.config.builder',
|
|
'optimization_setup_wizard': 'optimization_engine.config.setup_wizard',
|
|
'capability_matcher': 'optimization_engine.config.capability_matcher',
|
|
'template_loader': 'optimization_engine.config.template_loader',
|
|
|
|
# Utils
|
|
'logger': 'optimization_engine.utils.logger',
|
|
'auto_doc': 'optimization_engine.utils.auto_doc',
|
|
'realtime_tracking': 'optimization_engine.utils.realtime_tracking',
|
|
'codebase_analyzer': 'optimization_engine.utils.codebase_analyzer',
|
|
'pruning_logger': 'optimization_engine.utils.pruning_logger',
|
|
|
|
# Future
|
|
'research_agent': 'optimization_engine.future.research_agent',
|
|
'pynastran_research_agent': 'optimization_engine.future.pynastran_research_agent',
|
|
'targeted_research_planner': 'optimization_engine.future.targeted_research_planner',
|
|
'workflow_decomposer': 'optimization_engine.future.workflow_decomposer',
|
|
'step_classifier': 'optimization_engine.future.step_classifier',
|
|
|
|
# Extractors/Validators
|
|
'op2_extractor': 'optimization_engine.extractors.op2_extractor',
|
|
'extractor_library': 'optimization_engine.extractors.extractor_library',
|
|
'simulation_validator': 'optimization_engine.validators.simulation_validator',
|
|
|
|
# Processors
|
|
'adaptive_characterization': 'optimization_engine.processors.adaptive_characterization',
|
|
}
|
|
|
|
# =============================================================================
|
|
# LAZY LOADING
|
|
# =============================================================================
|
|
|
|
def __getattr__(name):
|
|
"""Lazy import for submodules and backwards compatibility."""
|
|
# Handle submodule imports (e.g., from optimization_engine import core)
|
|
if name in _SUBMODULES:
|
|
return _importlib.import_module(f'optimization_engine.{name}')
|
|
|
|
# Handle deprecated imports with warnings
|
|
if name in _DEPRECATED_MAPPINGS:
|
|
new_module = _DEPRECATED_MAPPINGS[name]
|
|
_warnings.warn(
|
|
f"Importing '{name}' from optimization_engine is deprecated. "
|
|
f"Use '{new_module}' instead. "
|
|
f"This will be removed in v3.0.",
|
|
DeprecationWarning,
|
|
stacklevel=2
|
|
)
|
|
return _importlib.import_module(new_module)
|
|
|
|
raise AttributeError(f"module 'optimization_engine' has no attribute '{name}'")
|
|
|
|
|
|
__all__ = [
|
|
# Version
|
|
'__version__',
|
|
# Submodules
|
|
'core',
|
|
'processors',
|
|
'nx',
|
|
'study',
|
|
'reporting',
|
|
'config',
|
|
'extractors',
|
|
'insights',
|
|
'gnn',
|
|
'hooks',
|
|
'utils',
|
|
'validators',
|
|
]
|