Files
Atomizer/optimization_engine/__init__.py

166 lines
6.8 KiB
Python
Raw Normal View History

"""
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',
]