""" Direct test of stress extraction without using cached imports. """ from pathlib import Path import sys # Force reload project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) # Import directly from the file import importlib.util spec = importlib.util.spec_from_file_location( "op2_extractor", project_root / "optimization_engine/result_extractors/op2_extractor_example.py" ) op2_extractor = importlib.util.module_from_spec(spec) spec.loader.exec_module(op2_extractor) if __name__ == "__main__": op2_path = project_root / "examples/bracket/bracket_sim1-solution_1.op2" print("="*60) print("DIRECT STRESS EXTRACTION TEST") print("="*60) print(f"OP2 file: {op2_path}") print() # Test stress extraction print("--- Testing extract_max_stress() ---") try: result = op2_extractor.extract_max_stress(op2_path, stress_type='von_mises') print() print("RESULT:") for key, value in result.items(): print(f" {key}: {value}") if result['max_stress'] > 100.0: print() print("SUCCESS! Stress extraction working!") print(f"Got: {result['max_stress']:.2f} MPa") elif result['max_stress'] == 0.0: print() print("FAIL: Still returning 0.0") else: print() print(f"Got unexpected value: {result['max_stress']:.2f} MPa") except Exception as e: print(f"ERROR: {e}") import traceback traceback.print_exc() print() print("="*60)