57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
|
|
"""
|
||
|
|
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)
|