Major Features: - Hierarchical substudy system (like NX Solutions/Subcases) * Shared model files across all substudies * Independent configuration per substudy * Continuation support from previous substudies * Real-time incremental history updates - Live history tracking with optimization_history_incremental.json - Complete bracket_displacement_maximizing study with substudy examples Core Fixes: - Fixed expression update workflow to pass design_vars through simulation_runner * Restored working NX journal expression update mechanism * OP2 timestamp verification instead of file deletion * Resolved issue where all trials returned identical objective values - Fixed LLMOptimizationRunner to pass design variables to simulation runner - Enhanced NXSolver with timestamp-based file regeneration verification New Components: - optimization_engine/llm_optimization_runner.py - LLM-driven optimization runner - optimization_engine/optimization_setup_wizard.py - Phase 3.3 setup wizard - studies/bracket_displacement_maximizing/ - Complete substudy example * run_substudy.py - Substudy runner with continuation * run_optimization.py - Standalone optimization runner * config/substudy_template.json - Template for new substudies * substudies/coarse_exploration/ - 20-trial coarse search * substudies/fine_tuning/ - 50-trial refinement (continuation example) * SUBSTUDIES_README.md - Complete substudy documentation Technical Improvements: - Incremental history saving after each trial (optimization_history_incremental.json) - Expression update workflow: .prt update → NX journal receives values → geometry update → FEM update → solve - Trial indexing fix in substudy result saving - Updated README with substudy system documentation Testing: - Successfully ran 20-trial coarse_exploration substudy - Verified different objective values across trials (workflow fix validated) - Confirmed live history updates in real-time - Tested shared model file usage across substudies 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2161 lines
108 KiB
Plaintext
2161 lines
108 KiB
Plaintext
fatal: not a git repository (or any of the parent directories): .git
|
|
|
|
================================================================================
|
|
BRACKET DISPLACEMENT MAXIMIZATION STUDY
|
|
================================================================================
|
|
|
|
Study Configuration:
|
|
- Objective: Maximize displacement
|
|
- Constraint: Safety factor >= 4.0
|
|
- Material: Aluminum 6061-T6 (Yield = 276 MPa)
|
|
- Design Variables:
|
|
* tip_thickness: 15-25 mm
|
|
* support_angle: 20-40 degrees
|
|
- Optimization trials: 20
|
|
|
|
Part file: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt
|
|
Simulation file: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket_sim1.sim
|
|
|
|
|
|
================================================================================
|
|
STEP 1: INITIALIZATION
|
|
================================================================================
|
|
|
|
Initializing Optimization Setup Wizard...
|
|
[OK] Wizard initialized
|
|
|
|
|
|
================================================================================
|
|
STEP 2: MODEL INTROSPECTION
|
|
================================================================================
|
|
|
|
Reading NX model expressions...
|
|
Found 4 expressions:
|
|
- support_angle: 38.0 degrees
|
|
- tip_thickness: 17.0 mm
|
|
- p3: 10.0 mm
|
|
- support_blend_radius: 10.0 mm
|
|
|
|
|
|
================================================================================
|
|
STEP 3: BASELINE SIMULATION
|
|
================================================================================
|
|
|
|
Running baseline simulation to generate reference OP2...
|
|
(This validates that NX simulation works before optimization)
|
|
|
|
[NX SOLVER] Starting simulation...
|
|
Input file: Bracket_sim1.sim
|
|
Working dir: c:\Users\antoi\Documents\Atomaste\Atomizer\tests
|
|
Mode: Journal
|
|
Deleted 1 old result file(s) to force fresh solve
|
|
[JOURNAL OUTPUT]
|
|
Mesh-Based Errors Summary
|
|
-------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Material-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Solution-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Iterative Solver Option
|
|
More than 80 percent of the elements in this model are 3D elements.
|
|
It is therefore recommended that you turn ON the Element Iterative Solver in the "Edit
|
|
Solution" dialog.
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Load/BC-Based Errors Summary
|
|
----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Nastran Model Setup Check completed
|
|
|
|
|
|
|
|
|
|
*** 20:43:54 ***
|
|
Starting Nastran Exporter
|
|
|
|
*** 20:43:54 ***
|
|
Writing file
|
|
c:\Users\antoi\Documents\Atomaste\Atomizer\tests\bracket_sim1-solution_1.dat
|
|
|
|
*** 20:43:54 ***
|
|
Writing SIMCENTER NASTRAN 2412.0 compatible deck
|
|
|
|
*** 20:43:54 ***
|
|
Writing Nastran System section
|
|
|
|
*** 20:43:54 ***
|
|
Writing File Management section
|
|
|
|
*** 20:43:54 ***
|
|
Writing Executive Control section
|
|
|
|
*** 20:43:54 ***
|
|
Writing Case Control section
|
|
|
|
*** 20:43:54 ***
|
|
Writing Bulk Data section
|
|
|
|
*** 20:43:54 ***
|
|
Writing Nodes
|
|
|
|
*** 20:43:54 ***
|
|
Writing Elements
|
|
|
|
*** 20:43:54 ***
|
|
Writing Physical Properties
|
|
|
|
*** 20:43:54 ***
|
|
Writing Materials
|
|
|
|
*** 20:43:54 ***
|
|
Writing Degree-of-Freedom Sets
|
|
|
|
*** 20:43:54 ***
|
|
Writing Loads and Constraints
|
|
|
|
*** 20:43:54 ***
|
|
Writing Coordinate Systems
|
|
|
|
*** 20:43:54 ***
|
|
Validating Solution Setup
|
|
|
|
*** 20:43:54 ***
|
|
Summary of Bulk Data cards written
|
|
|
|
+----------+----------+
|
|
| NAME | NUMBER |
|
|
+----------+----------+
|
|
| CHEXA | 306 |
|
|
| CPENTA | 10 |
|
|
| FORCE | 3 |
|
|
| GRID | 585 |
|
|
| MAT1 | 1 |
|
|
| MATT1 | 1 |
|
|
| PARAM | 6 |
|
|
| PSOLID | 1 |
|
|
| SPC | 51 |
|
|
| TABLEM1 | 3 |
|
|
+----------+----------+
|
|
|
|
*** 20:43:54 ***
|
|
Nastran Deck Successfully Written
|
|
|
|
[JOURNAL] Opening simulation: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket_sim1.sim
|
|
[JOURNAL] Checking for open parts...
|
|
[JOURNAL] Opening simulation fresh from disk...
|
|
[JOURNAL] STEP 1: Updating Bracket.prt geometry...
|
|
[JOURNAL] Rebuilding geometry with new expression values...
|
|
[JOURNAL] Bracket geometry updated (0 errors)
|
|
[JOURNAL] STEP 2: Opening Bracket_fem1.fem...
|
|
[JOURNAL] Updating FE Model...
|
|
[JOURNAL] FE Model updated with new geometry!
|
|
[JOURNAL] STEP 3: Switching back to sim part...
|
|
[JOURNAL] Switched back to sim part
|
|
[JOURNAL] Starting solve...
|
|
[JOURNAL] Solve submitted!
|
|
[JOURNAL] Solutions solved: -1786238346
|
|
[JOURNAL] Solutions failed: 32764
|
|
[JOURNAL] Solutions skipped: 2055733824
|
|
[JOURNAL] Saving simulation to ensure output files are written...
|
|
[JOURNAL] Save complete!
|
|
[JOURNAL ERRORS]
|
|
Journal execution results for c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py...
|
|
Syntax errors:
|
|
Line 0: Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py", line 247, in <module>
|
|
sys.exit(0 if success else 1)
|
|
[NX SOLVER] Waiting for solve to complete...
|
|
[NX SOLVER] Output files detected after 0.5s
|
|
[NX SOLVER] Complete in 4.3s
|
|
[NX SOLVER] Results: bracket_sim1-solution_1.op2
|
|
[OK] Baseline OP2: bracket_sim1-solution_1.op2
|
|
|
|
|
|
================================================================================
|
|
STEP 4: OP2 INTROSPECTION
|
|
================================================================================
|
|
|
|
Analyzing OP2 file to auto-detect element types...
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
OP2 Contents:
|
|
- Element types with stress: CHEXA, CPENTA
|
|
- Available result types: displacement, stress
|
|
- Subcases: [1]
|
|
- Nodes: 0
|
|
- Elements: 0
|
|
|
|
|
|
================================================================================
|
|
STEP 5: WORKFLOW CONFIGURATION
|
|
================================================================================
|
|
|
|
Building LLM workflow with auto-detected element types...
|
|
Using detected element type: CHEXA
|
|
|
|
|
|
================================================================================
|
|
STEP 6: PIPELINE VALIDATION
|
|
================================================================================
|
|
|
|
Validating complete pipeline with baseline OP2...
|
|
(Dry-run test of extractors, calculations, hooks, objective)
|
|
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
Required input 'min_force' not found in context
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\min_to_avg_ratio_hook.py", line 38, in ratio_hook
|
|
raise ValueError(f"Missing required input: min_force")
|
|
ValueError: Missing required input: min_force
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Required input 'max_stress' not found in context
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\safety_factor_hook.py", line 38, in safety_factor_hook
|
|
raise ValueError(f"Missing required input: max_stress")
|
|
ValueError: Missing required input: max_stress
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Required input 'norm_stress' not found in context
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\weighted_objective_test.py", line 38, in weighted_objective_hook
|
|
raise ValueError(f"Missing required input: norm_stress")
|
|
ValueError: Missing required input: norm_stress
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
[WARNING] No explicit objective, using: max_displacement
|
|
[I 2025-11-16 20:43:58,153] A new study created in RDB with name: bracket_displacement_maximizing
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
Validation Results:
|
|
[OK] extractor: ['max_displacement', 'max_disp_node', 'max_disp_x', 'max_disp_y', 'max_disp_z']
|
|
[OK] extractor: ['max_von_mises', 'max_stress_element']
|
|
[OK] calculation: Created ['safety_factor']
|
|
[OK] calculation: Created ['safety_factor', 'neg_displacement']
|
|
[OK] hook: 3 results
|
|
[OK] objective: 0.36178338527679443
|
|
|
|
[SUCCESS] All pipeline components validated!
|
|
|
|
|
|
================================================================================
|
|
STEP 7: OPTIMIZATION SETUP
|
|
================================================================================
|
|
|
|
Creating model updater and simulation runner...
|
|
[OK] Model updater ready
|
|
[OK] Simulation runner ready
|
|
|
|
Initializing LLM optimization runner...
|
|
[OK] Output directory: c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_results\bracket_displacement_maximizing
|
|
[OK] Extractors generated: 2
|
|
[OK] Inline calculations: 2
|
|
[OK] Hooks loaded: 9
|
|
|
|
|
|
================================================================================
|
|
STEP 8: RUNNING OPTIMIZATION
|
|
================================================================================
|
|
|
|
Starting 20-trial optimization...
|
|
(This will take several minutes)
|
|
|
|
|
|
Updating 2 expressions in Bracket.prt:
|
|
Updated: tip_thickness = 17 -> 24
|
|
Updated: support_angle = 38 -> 25
|
|
Successfully updated 2/2 expressions
|
|
Backup created: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt.bak_20251116_204358
|
|
Saved to: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt
|
|
|
|
[NX SOLVER] Starting simulation...
|
|
Input file: Bracket_sim1.sim
|
|
Working dir: c:\Users\antoi\Documents\Atomaste\Atomizer\tests
|
|
Mode: Journal
|
|
Warning: Could not delete bracket_sim1-solution_1.log: [WinError 32] The process cannot access the file because it is being used by another process: 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.log'
|
|
Deleted 2 old result file(s) to force fresh solve
|
|
[JOURNAL OUTPUT]
|
|
Mesh-Based Errors Summary
|
|
-------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Material-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Solution-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Iterative Solver Option
|
|
More than 80 percent of the elements in this model are 3D elements.
|
|
It is therefore recommended that you turn ON the Element Iterative Solver in the "Edit
|
|
Solution" dialog.
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Load/BC-Based Errors Summary
|
|
----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Nastran Model Setup Check completed
|
|
|
|
|
|
|
|
|
|
*** 20:44:01 ***
|
|
Starting Nastran Exporter
|
|
|
|
*** 20:44:01 ***
|
|
Writing file
|
|
c:\Users\antoi\Documents\Atomaste\Atomizer\tests\bracket_sim1-solution_1.dat
|
|
|
|
*** 20:44:01 ***
|
|
Writing SIMCENTER NASTRAN 2412.0 compatible deck
|
|
|
|
*** 20:44:01 ***
|
|
Writing Nastran System section
|
|
|
|
*** 20:44:01 ***
|
|
Writing File Management section
|
|
|
|
*** 20:44:01 ***
|
|
Writing Executive Control section
|
|
|
|
*** 20:44:01 ***
|
|
Writing Case Control section
|
|
|
|
*** 20:44:01 ***
|
|
Writing Bulk Data section
|
|
|
|
*** 20:44:01 ***
|
|
Writing Nodes
|
|
|
|
*** 20:44:01 ***
|
|
Writing Elements
|
|
|
|
*** 20:44:01 ***
|
|
Writing Physical Properties
|
|
|
|
*** 20:44:01 ***
|
|
Writing Materials
|
|
|
|
*** 20:44:01 ***
|
|
Writing Degree-of-Freedom Sets
|
|
|
|
*** 20:44:01 ***
|
|
Writing Loads and Constraints
|
|
|
|
*** 20:44:01 ***
|
|
Writing Coordinate Systems
|
|
|
|
*** 20:44:01 ***
|
|
Validating Solution Setup
|
|
|
|
*** 20:44:01 ***
|
|
Summary of Bulk Data cards written
|
|
|
|
+----------+----------+
|
|
| NAME | NUMBER |
|
|
+----------+----------+
|
|
| CHEXA | 306 |
|
|
| CPENTA | 10 |
|
|
| FORCE | 3 |
|
|
| GRID | 585 |
|
|
| MAT1 | 1 |
|
|
| MATT1 | 1 |
|
|
| PARAM | 6 |
|
|
| PSOLID | 1 |
|
|
| SPC | 51 |
|
|
| TABLEM1 | 3 |
|
|
+----------+----------+
|
|
|
|
*** 20:44:01 ***
|
|
Nastran Deck Successfully Written
|
|
|
|
[JOURNAL] Opening simulation: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket_sim1.sim
|
|
[JOURNAL] Checking for open parts...
|
|
[JOURNAL] Opening simulation fresh from disk...
|
|
[JOURNAL] STEP 1: Updating Bracket.prt geometry...
|
|
[JOURNAL] Rebuilding geometry with new expression values...
|
|
[JOURNAL] Bracket geometry updated (0 errors)
|
|
[JOURNAL] STEP 2: Opening Bracket_fem1.fem...
|
|
[JOURNAL] Updating FE Model...
|
|
[JOURNAL] FE Model updated with new geometry!
|
|
[JOURNAL] STEP 3: Switching back to sim part...
|
|
[JOURNAL] Switched back to sim part
|
|
[JOURNAL] Starting solve...
|
|
[JOURNAL] Solve submitted!
|
|
[JOURNAL] Solutions solved: -1472058762
|
|
[JOURNAL] Solutions failed: 32764
|
|
[JOURNAL] Solutions skipped: -630324672
|
|
[JOURNAL] Saving simulation to ensure output files are written...
|
|
[JOURNAL] Save complete!
|
|
[JOURNAL ERRORS]
|
|
Journal execution results for c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py...
|
|
Syntax errors:
|
|
Line 0: Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py", line 247, in <module>
|
|
sys.exit(0 if success else 1)
|
|
[NX SOLVER] Waiting for solve to complete...
|
|
[NX SOLVER] Output files detected after 0.5s
|
|
[NX SOLVER] Complete in 4.4s
|
|
[NX SOLVER] Results: bracket_sim1-solution_1.op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
Extraction failed: extract_solid_stress - 1
|
|
Extraction failed for extract_solid_stress: 1
|
|
Inline calculation failed: name 'max_von_mises' is not defined
|
|
Required input 'min_force' not found in context
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\min_to_avg_ratio_hook.py", line 38, in ratio_hook
|
|
raise ValueError(f"Missing required input: min_force")
|
|
ValueError: Missing required input: min_force
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Required input 'max_stress' not found in context
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\safety_factor_hook.py", line 38, in safety_factor_hook
|
|
raise ValueError(f"Missing required input: max_stress")
|
|
ValueError: Missing required input: max_stress
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Required input 'norm_stress' not found in context
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\weighted_objective_test.py", line 38, in weighted_objective_hook
|
|
raise ValueError(f"Missing required input: norm_stress")
|
|
ValueError: Missing required input: norm_stress
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
No explicit objective found, using: max_displacement
|
|
[I 2025-11-16 20:44:03,240] Trial 0 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 24.057174360465407, 'support_angle': 25.35525889588185}. Best is trial 0 with value: 0.36178338527679443.
|
|
DEBUG: op2.py:648 finished reading op2
|
|
|
|
Updating 2 expressions in Bracket.prt:
|
|
Updated: tip_thickness = 24 -> 18
|
|
Updated: support_angle = 25 -> 25
|
|
Successfully updated 2/2 expressions
|
|
Backup created: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt.bak_20251116_204403
|
|
Saved to: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt
|
|
|
|
[NX SOLVER] Starting simulation...
|
|
Input file: Bracket_sim1.sim
|
|
Working dir: c:\Users\antoi\Documents\Atomaste\Atomizer\tests
|
|
Mode: Journal
|
|
Warning: Could not delete bracket_sim1-solution_1.log: [WinError 32] The process cannot access the file because it is being used by another process: 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.log'
|
|
Deleted 2 old result file(s) to force fresh solve
|
|
[JOURNAL OUTPUT]
|
|
Mesh-Based Errors Summary
|
|
-------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Material-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Solution-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Iterative Solver Option
|
|
More than 80 percent of the elements in this model are 3D elements.
|
|
It is therefore recommended that you turn ON the Element Iterative Solver in the "Edit
|
|
Solution" dialog.
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Load/BC-Based Errors Summary
|
|
----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Nastran Model Setup Check completed
|
|
|
|
|
|
|
|
|
|
*** 20:44:06 ***
|
|
Starting Nastran Exporter
|
|
|
|
*** 20:44:06 ***
|
|
Writing file
|
|
c:\Users\antoi\Documents\Atomaste\Atomizer\tests\bracket_sim1-solution_1.dat
|
|
|
|
*** 20:44:06 ***
|
|
Writing SIMCENTER NASTRAN 2412.0 compatible deck
|
|
|
|
*** 20:44:06 ***
|
|
Writing Nastran System section
|
|
|
|
*** 20:44:06 ***
|
|
Writing File Management section
|
|
|
|
*** 20:44:06 ***
|
|
Writing Executive Control section
|
|
|
|
*** 20:44:06 ***
|
|
Writing Case Control section
|
|
|
|
*** 20:44:06 ***
|
|
Writing Bulk Data section
|
|
|
|
*** 20:44:06 ***
|
|
Writing Nodes
|
|
|
|
*** 20:44:06 ***
|
|
Writing Elements
|
|
|
|
*** 20:44:06 ***
|
|
Writing Physical Properties
|
|
|
|
*** 20:44:06 ***
|
|
Writing Materials
|
|
|
|
*** 20:44:06 ***
|
|
Writing Degree-of-Freedom Sets
|
|
|
|
*** 20:44:06 ***
|
|
Writing Loads and Constraints
|
|
|
|
*** 20:44:06 ***
|
|
Writing Coordinate Systems
|
|
|
|
*** 20:44:06 ***
|
|
Validating Solution Setup
|
|
|
|
*** 20:44:06 ***
|
|
Summary of Bulk Data cards written
|
|
|
|
+----------+----------+
|
|
| NAME | NUMBER |
|
|
+----------+----------+
|
|
| CHEXA | 306 |
|
|
| CPENTA | 10 |
|
|
| FORCE | 3 |
|
|
| GRID | 585 |
|
|
| MAT1 | 1 |
|
|
| MATT1 | 1 |
|
|
| PARAM | 6 |
|
|
| PSOLID | 1 |
|
|
| SPC | 51 |
|
|
| TABLEM1 | 3 |
|
|
+----------+----------+
|
|
|
|
*** 20:44:06 ***
|
|
Nastran Deck Successfully Written
|
|
|
|
[JOURNAL] Opening simulation: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket_sim1.sim
|
|
[JOURNAL] Checking for open parts...
|
|
[JOURNAL] Opening simulation fresh from disk...
|
|
[JOURNAL] STEP 1: Updating Bracket.prt geometry...
|
|
[JOURNAL] Rebuilding geometry with new expression values...
|
|
[JOURNAL] Bracket geometry updated (0 errors)
|
|
[JOURNAL] STEP 2: Opening Bracket_fem1.fem...
|
|
[JOURNAL] Updating FE Model...
|
|
[JOURNAL] FE Model updated with new geometry!
|
|
[JOURNAL] STEP 3: Switching back to sim part...
|
|
[JOURNAL] Switched back to sim part
|
|
[JOURNAL] Starting solve...
|
|
[JOURNAL] Solve submitted!
|
|
[JOURNAL] Solutions solved: -1925305738
|
|
[JOURNAL] Solutions failed: 32764
|
|
[JOURNAL] Solutions skipped: 1225720384
|
|
[JOURNAL] Saving simulation to ensure output files are written...
|
|
[JOURNAL] Save complete!
|
|
[JOURNAL ERRORS]
|
|
Journal execution results for c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py...
|
|
Syntax errors:
|
|
Line 0: Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py", line 247, in <module>
|
|
sys.exit(0 if success else 1)
|
|
[NX SOLVER] Waiting for solve to complete...
|
|
[NX SOLVER] Output files detected after 0.5s
|
|
[NX SOLVER] Complete in 4.4s
|
|
[NX SOLVER] Results: bracket_sim1-solution_1.op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
Extraction failed: extract_solid_stress - 1
|
|
Extraction failed for extract_solid_stress: 1
|
|
Inline calculation failed: name 'max_von_mises' is not defined
|
|
Required input 'min_force' not found in context
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\min_to_avg_ratio_hook.py", line 38, in ratio_hook
|
|
raise ValueError(f"Missing required input: min_force")
|
|
ValueError: Missing required input: min_force
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Required input 'max_stress' not found in context
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\safety_factor_hook.py", line 38, in safety_factor_hook
|
|
raise ValueError(f"Missing required input: max_stress")
|
|
ValueError: Missing required input: max_stress
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Required input 'norm_stress' not found in context
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\weighted_objective_test.py", line 38, in weighted_objective_hook
|
|
raise ValueError(f"Missing required input: norm_stress")
|
|
ValueError: Missing required input: norm_stress
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
No explicit objective found, using: max_displacement
|
|
[I 2025-11-16 20:44:08,320] Trial 1 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 18.304620477081855, 'support_angle': 25.394969100877468}. Best is trial 0 with value: 0.36178338527679443.
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
|
|
Updating 2 expressions in Bracket.prt:
|
|
Updated: tip_thickness = 18 -> 19
|
|
Updated: support_angle = 25 -> 31
|
|
Successfully updated 2/2 expressions
|
|
Backup created: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt.bak_20251116_204408
|
|
Saved to: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt
|
|
|
|
[NX SOLVER] Starting simulation...
|
|
Input file: Bracket_sim1.sim
|
|
Working dir: c:\Users\antoi\Documents\Atomaste\Atomizer\tests
|
|
Mode: Journal
|
|
Warning: Could not delete bracket_sim1-solution_1.log: [WinError 32] The process cannot access the file because it is being used by another process: 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.log'
|
|
Deleted 2 old result file(s) to force fresh solve
|
|
[JOURNAL OUTPUT]
|
|
Mesh-Based Errors Summary
|
|
-------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Material-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Solution-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Iterative Solver Option
|
|
More than 80 percent of the elements in this model are 3D elements.
|
|
It is therefore recommended that you turn ON the Element Iterative Solver in the "Edit
|
|
Solution" dialog.
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Load/BC-Based Errors Summary
|
|
----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Nastran Model Setup Check completed
|
|
|
|
|
|
|
|
|
|
*** 20:44:11 ***
|
|
Starting Nastran Exporter
|
|
|
|
*** 20:44:11 ***
|
|
Writing file
|
|
c:\Users\antoi\Documents\Atomaste\Atomizer\tests\bracket_sim1-solution_1.dat
|
|
|
|
*** 20:44:11 ***
|
|
Writing SIMCENTER NASTRAN 2412.0 compatible deck
|
|
|
|
*** 20:44:11 ***
|
|
Writing Nastran System section
|
|
|
|
*** 20:44:11 ***
|
|
Writing File Management section
|
|
|
|
*** 20:44:11 ***
|
|
Writing Executive Control section
|
|
|
|
*** 20:44:11 ***
|
|
Writing Case Control section
|
|
|
|
*** 20:44:11 ***
|
|
Writing Bulk Data section
|
|
|
|
*** 20:44:11 ***
|
|
Writing Nodes
|
|
|
|
*** 20:44:11 ***
|
|
Writing Elements
|
|
|
|
*** 20:44:11 ***
|
|
Writing Physical Properties
|
|
|
|
*** 20:44:11 ***
|
|
Writing Materials
|
|
|
|
*** 20:44:11 ***
|
|
Writing Degree-of-Freedom Sets
|
|
|
|
*** 20:44:11 ***
|
|
Writing Loads and Constraints
|
|
|
|
*** 20:44:11 ***
|
|
Writing Coordinate Systems
|
|
|
|
*** 20:44:11 ***
|
|
Validating Solution Setup
|
|
|
|
*** 20:44:11 ***
|
|
Summary of Bulk Data cards written
|
|
|
|
+----------+----------+
|
|
| NAME | NUMBER |
|
|
+----------+----------+
|
|
| CHEXA | 306 |
|
|
| CPENTA | 10 |
|
|
| FORCE | 3 |
|
|
| GRID | 585 |
|
|
| MAT1 | 1 |
|
|
| MATT1 | 1 |
|
|
| PARAM | 6 |
|
|
| PSOLID | 1 |
|
|
| SPC | 51 |
|
|
| TABLEM1 | 3 |
|
|
+----------+----------+
|
|
|
|
*** 20:44:11 ***
|
|
Nastran Deck Successfully Written
|
|
|
|
[JOURNAL] Opening simulation: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket_sim1.sim
|
|
[JOURNAL] Checking for open parts...
|
|
[JOURNAL] Opening simulation fresh from disk...
|
|
[JOURNAL] STEP 1: Updating Bracket.prt geometry...
|
|
[JOURNAL] Rebuilding geometry with new expression values...
|
|
[JOURNAL] Bracket geometry updated (0 errors)
|
|
[JOURNAL] STEP 2: Opening Bracket_fem1.fem...
|
|
[JOURNAL] Updating FE Model...
|
|
[JOURNAL] FE Model updated with new geometry!
|
|
[JOURNAL] STEP 3: Switching back to sim part...
|
|
[JOURNAL] Switched back to sim part
|
|
[JOURNAL] Starting solve...
|
|
[JOURNAL] Solve submitted!
|
|
[JOURNAL] Solutions solved: -1928254858
|
|
[JOURNAL] Solutions failed: 32764
|
|
[JOURNAL] Solutions skipped: -613678528
|
|
[JOURNAL] Saving simulation to ensure output files are written...
|
|
[JOURNAL] Save complete!
|
|
[JOURNAL ERRORS]
|
|
Journal execution results for c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py...
|
|
Syntax errors:
|
|
Line 0: Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py", line 247, in <module>
|
|
sys.exit(0 if success else 1)
|
|
[NX SOLVER] Waiting for solve to complete...
|
|
[NX SOLVER] Output files detected after 0.5s
|
|
[NX SOLVER] Complete in 4.5s
|
|
[NX SOLVER] Results: bracket_sim1-solution_1.op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
Extraction failed: extract_solid_stress - 1
|
|
Extraction failed for extract_solid_stress: 1
|
|
Inline calculation failed: name 'max_von_mises' is not defined
|
|
Required input 'min_force' not found in context
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\min_to_avg_ratio_hook.py", line 38, in ratio_hook
|
|
raise ValueError(f"Missing required input: min_force")
|
|
ValueError: Missing required input: min_force
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Required input 'max_stress' not found in context
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\safety_factor_hook.py", line 38, in safety_factor_hook
|
|
raise ValueError(f"Missing required input: max_stress")
|
|
ValueError: Missing required input: max_stress
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Required input 'norm_stress' not found in context
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\weighted_objective_test.py", line 38, in weighted_objective_hook
|
|
raise ValueError(f"Missing required input: norm_stress")
|
|
ValueError: Missing required input: norm_stress
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
No explicit objective found, using: max_displacement
|
|
[I 2025-11-16 20:44:13,424] Trial 2 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 19.533548039349455, 'support_angle': 31.844371833801826}. Best is trial 0 with value: 0.36178338527679443.
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
|
|
Updating 2 expressions in Bracket.prt:
|
|
Updated: tip_thickness = 19 -> 22
|
|
Updated: support_angle = 31 -> 22
|
|
Successfully updated 2/2 expressions
|
|
Backup created: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt.bak_20251116_204413
|
|
Saved to: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt
|
|
|
|
[NX SOLVER] Starting simulation...
|
|
Input file: Bracket_sim1.sim
|
|
Working dir: c:\Users\antoi\Documents\Atomaste\Atomizer\tests
|
|
Mode: Journal
|
|
Warning: Could not delete bracket_sim1-solution_1.log: [WinError 32] The process cannot access the file because it is being used by another process: 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.log'
|
|
Deleted 2 old result file(s) to force fresh solve
|
|
[JOURNAL OUTPUT]
|
|
Mesh-Based Errors Summary
|
|
-------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Material-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Solution-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Iterative Solver Option
|
|
More than 80 percent of the elements in this model are 3D elements.
|
|
It is therefore recommended that you turn ON the Element Iterative Solver in the "Edit
|
|
Solution" dialog.
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Load/BC-Based Errors Summary
|
|
----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Nastran Model Setup Check completed
|
|
|
|
|
|
|
|
|
|
*** 20:44:16 ***
|
|
Starting Nastran Exporter
|
|
|
|
*** 20:44:16 ***
|
|
Writing file
|
|
c:\Users\antoi\Documents\Atomaste\Atomizer\tests\bracket_sim1-solution_1.dat
|
|
|
|
*** 20:44:16 ***
|
|
Writing SIMCENTER NASTRAN 2412.0 compatible deck
|
|
|
|
*** 20:44:16 ***
|
|
Writing Nastran System section
|
|
|
|
*** 20:44:16 ***
|
|
Writing File Management section
|
|
|
|
*** 20:44:16 ***
|
|
Writing Executive Control section
|
|
|
|
*** 20:44:16 ***
|
|
Writing Case Control section
|
|
|
|
*** 20:44:16 ***
|
|
Writing Bulk Data section
|
|
|
|
*** 20:44:16 ***
|
|
Writing Nodes
|
|
|
|
*** 20:44:16 ***
|
|
Writing Elements
|
|
|
|
*** 20:44:16 ***
|
|
Writing Physical Properties
|
|
|
|
*** 20:44:16 ***
|
|
Writing Materials
|
|
|
|
*** 20:44:16 ***
|
|
Writing Degree-of-Freedom Sets
|
|
|
|
*** 20:44:16 ***
|
|
Writing Loads and Constraints
|
|
|
|
*** 20:44:16 ***
|
|
Writing Coordinate Systems
|
|
|
|
*** 20:44:16 ***
|
|
Validating Solution Setup
|
|
|
|
*** 20:44:16 ***
|
|
Summary of Bulk Data cards written
|
|
|
|
+----------+----------+
|
|
| NAME | NUMBER |
|
|
+----------+----------+
|
|
| CHEXA | 306 |
|
|
| CPENTA | 10 |
|
|
| FORCE | 3 |
|
|
| GRID | 585 |
|
|
| MAT1 | 1 |
|
|
| MATT1 | 1 |
|
|
| PARAM | 6 |
|
|
| PSOLID | 1 |
|
|
| SPC | 51 |
|
|
| TABLEM1 | 3 |
|
|
+----------+----------+
|
|
|
|
*** 20:44:16 ***
|
|
Nastran Deck Successfully Written
|
|
|
|
[JOURNAL] Opening simulation: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket_sim1.sim
|
|
[JOURNAL] Checking for open parts...
|
|
[JOURNAL] Opening simulation fresh from disk...
|
|
[JOURNAL] STEP 1: Updating Bracket.prt geometry...
|
|
[JOURNAL] Rebuilding geometry with new expression values...
|
|
[JOURNAL] Bracket geometry updated (0 errors)
|
|
[JOURNAL] STEP 2: Opening Bracket_fem1.fem...
|
|
[JOURNAL] Updating FE Model...
|
|
[JOURNAL] FE Model updated with new geometry!
|
|
[JOURNAL] STEP 3: Switching back to sim part...
|
|
[JOURNAL] Switched back to sim part
|
|
[JOURNAL] Starting solve...
|
|
[JOURNAL] Solve submitted!
|
|
[JOURNAL] Solutions solved: -1930483082
|
|
[JOURNAL] Solutions failed: 32764
|
|
[JOURNAL] Solutions skipped: -1732705728
|
|
[JOURNAL] Saving simulation to ensure output files are written...
|
|
[JOURNAL] Save complete!
|
|
[JOURNAL ERRORS]
|
|
Journal execution results for c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py...
|
|
Syntax errors:
|
|
Line 0: Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py", line 247, in <module>
|
|
sys.exit(0 if success else 1)
|
|
[NX SOLVER] Waiting for solve to complete...
|
|
[NX SOLVER] Output files detected after 0.5s
|
|
[NX SOLVER] Complete in 4.7s
|
|
[NX SOLVER] Results: bracket_sim1-solution_1.op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
Extraction failed: extract_solid_stress - 1
|
|
Extraction failed for extract_solid_stress: 1
|
|
Inline calculation failed: name 'max_von_mises' is not defined
|
|
Required input 'min_force' not found in context
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\min_to_avg_ratio_hook.py", line 38, in ratio_hook
|
|
raise ValueError(f"Missing required input: min_force")
|
|
ValueError: Missing required input: min_force
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Required input 'max_stress' not found in context
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\safety_factor_hook.py", line 38, in safety_factor_hook
|
|
raise ValueError(f"Missing required input: max_stress")
|
|
ValueError: Missing required input: max_stress
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Required input 'norm_stress' not found in context
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\weighted_objective_test.py", line 38, in weighted_objective_hook
|
|
raise ValueError(f"Missing required input: norm_stress")
|
|
ValueError: Missing required input: norm_stress
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
No explicit objective found, using: max_displacement
|
|
[I 2025-11-16 20:44:18,839] Trial 3 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 22.92830934942418, 'support_angle': 22.883083847442386}. Best is trial 0 with value: 0.36178338527679443.
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
|
|
Updating 2 expressions in Bracket.prt:
|
|
Updated: tip_thickness = 22 -> 23
|
|
Updated: support_angle = 22 -> 32
|
|
Successfully updated 2/2 expressions
|
|
Backup created: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt.bak_20251116_204418
|
|
Saved to: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt
|
|
|
|
[NX SOLVER] Starting simulation...
|
|
Input file: Bracket_sim1.sim
|
|
Working dir: c:\Users\antoi\Documents\Atomaste\Atomizer\tests
|
|
Mode: Journal
|
|
Warning: Could not delete bracket_sim1-solution_1.log: [WinError 32] The process cannot access the file because it is being used by another process: 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.log'
|
|
Deleted 2 old result file(s) to force fresh solve
|
|
[JOURNAL OUTPUT]
|
|
Mesh-Based Errors Summary
|
|
-------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Material-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Solution-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Iterative Solver Option
|
|
More than 80 percent of the elements in this model are 3D elements.
|
|
It is therefore recommended that you turn ON the Element Iterative Solver in the "Edit
|
|
Solution" dialog.
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Load/BC-Based Errors Summary
|
|
----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Nastran Model Setup Check completed
|
|
|
|
|
|
|
|
|
|
*** 20:44:22 ***
|
|
Starting Nastran Exporter
|
|
|
|
*** 20:44:22 ***
|
|
Writing file
|
|
c:\Users\antoi\Documents\Atomaste\Atomizer\tests\bracket_sim1-solution_1.dat
|
|
|
|
*** 20:44:22 ***
|
|
Writing SIMCENTER NASTRAN 2412.0 compatible deck
|
|
|
|
*** 20:44:22 ***
|
|
Writing Nastran System section
|
|
|
|
*** 20:44:22 ***
|
|
Writing File Management section
|
|
|
|
*** 20:44:22 ***
|
|
Writing Executive Control section
|
|
|
|
*** 20:44:22 ***
|
|
Writing Case Control section
|
|
|
|
*** 20:44:22 ***
|
|
Writing Bulk Data section
|
|
|
|
*** 20:44:22 ***
|
|
Writing Nodes
|
|
|
|
*** 20:44:22 ***
|
|
Writing Elements
|
|
|
|
*** 20:44:22 ***
|
|
Writing Physical Properties
|
|
|
|
*** 20:44:22 ***
|
|
Writing Materials
|
|
|
|
*** 20:44:22 ***
|
|
Writing Degree-of-Freedom Sets
|
|
|
|
*** 20:44:22 ***
|
|
Writing Loads and Constraints
|
|
|
|
*** 20:44:22 ***
|
|
Writing Coordinate Systems
|
|
|
|
*** 20:44:22 ***
|
|
Validating Solution Setup
|
|
|
|
*** 20:44:22 ***
|
|
Summary of Bulk Data cards written
|
|
|
|
+----------+----------+
|
|
| NAME | NUMBER |
|
|
+----------+----------+
|
|
| CHEXA | 306 |
|
|
| CPENTA | 10 |
|
|
| FORCE | 3 |
|
|
| GRID | 585 |
|
|
| MAT1 | 1 |
|
|
| MATT1 | 1 |
|
|
| PARAM | 6 |
|
|
| PSOLID | 1 |
|
|
| SPC | 51 |
|
|
| TABLEM1 | 3 |
|
|
+----------+----------+
|
|
|
|
*** 20:44:22 ***
|
|
Nastran Deck Successfully Written
|
|
|
|
[JOURNAL] Opening simulation: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket_sim1.sim
|
|
[JOURNAL] Checking for open parts...
|
|
[JOURNAL] Opening simulation fresh from disk...
|
|
[JOURNAL] STEP 1: Updating Bracket.prt geometry...
|
|
[JOURNAL] Rebuilding geometry with new expression values...
|
|
[JOURNAL] Bracket geometry updated (0 errors)
|
|
[JOURNAL] STEP 2: Opening Bracket_fem1.fem...
|
|
[JOURNAL] Updating FE Model...
|
|
[JOURNAL] FE Model updated with new geometry!
|
|
[JOURNAL] STEP 3: Switching back to sim part...
|
|
[JOURNAL] Switched back to sim part
|
|
[JOURNAL] Starting solve...
|
|
[JOURNAL] Solve submitted!
|
|
[JOURNAL] Solutions solved: -1932776842
|
|
[JOURNAL] Solutions failed: 32764
|
|
[JOURNAL] Solutions skipped: -1299054016
|
|
[JOURNAL] Saving simulation to ensure output files are written...
|
|
[JOURNAL] Save complete!
|
|
[JOURNAL ERRORS]
|
|
Journal execution results for c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py...
|
|
Syntax errors:
|
|
Line 0: Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py", line 247, in <module>
|
|
sys.exit(0 if success else 1)
|
|
[NX SOLVER] Waiting for solve to complete...
|
|
[NX SOLVER] Output files detected after 0.5s
|
|
[NX SOLVER] Complete in 4.7s
|
|
[NX SOLVER] Results: bracket_sim1-solution_1.op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:634 -------- reading op2 with read_mode=2 (array filling) --------
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
Extraction failed: extract_solid_stress - 1
|
|
Extraction failed for extract_solid_stress: 1
|
|
Inline calculation failed: name 'max_von_mises' is not defined
|
|
Required input 'min_force' not found in context
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\min_to_avg_ratio_hook.py", line 38, in ratio_hook
|
|
raise ValueError(f"Missing required input: min_force")
|
|
ValueError: Missing required input: min_force
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Required input 'max_stress' not found in context
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\safety_factor_hook.py", line 38, in safety_factor_hook
|
|
raise ValueError(f"Missing required input: max_stress")
|
|
ValueError: Missing required input: max_stress
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Required input 'norm_stress' not found in context
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\weighted_objective_test.py", line 38, in weighted_objective_hook
|
|
raise ValueError(f"Missing required input: norm_stress")
|
|
ValueError: Missing required input: norm_stress
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
No explicit objective found, using: max_displacement
|
|
[I 2025-11-16 20:44:24,252] Trial 4 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 23.722396426593477, 'support_angle': 32.99896902425434}. Best is trial 0 with value: 0.36178338527679443.
|
|
Extraction failed: extract_displacement - There was a Nastran FATAL Error. Check the F06.
|
|
last table=b'EQEXIN'; post=-1 version='nx'
|
|
Extraction failed for extract_displacement: There was a Nastran FATAL Error. Check the F06.
|
|
last table=b'EQEXIN'; post=-1 version='nx'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OQG1' (spc/mpc forces)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BOUGV1' (g-set U in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'OES1' (linear stress)
|
|
DEBUG: oes.py:2840 numwide_real=193
|
|
DEBUG: oes.py:2840 numwide_real=151
|
|
DEBUG: op2.py:932 combine_results
|
|
DEBUG: op2.py:648 finished reading op2
|
|
|
|
Updating 2 expressions in Bracket.prt:
|
|
Updated: tip_thickness = 23 -> 21
|
|
Updated: support_angle = 32 -> 28
|
|
Successfully updated 2/2 expressions
|
|
Backup created: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt.bak_20251116_204424
|
|
Saved to: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket.prt
|
|
|
|
[NX SOLVER] Starting simulation...
|
|
Input file: Bracket_sim1.sim
|
|
Working dir: c:\Users\antoi\Documents\Atomaste\Atomizer\tests
|
|
Mode: Journal
|
|
Warning: Could not delete bracket_sim1-solution_1.log: [WinError 32] The process cannot access the file because it is being used by another process: 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.log'
|
|
Deleted 2 old result file(s) to force fresh solve
|
|
[JOURNAL OUTPUT]
|
|
Mesh-Based Errors Summary
|
|
-------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Material-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Solution-Based Errors Summary
|
|
-----------------------------
|
|
|
|
Iterative Solver Option
|
|
More than 80 percent of the elements in this model are 3D elements.
|
|
It is therefore recommended that you turn ON the Element Iterative Solver in the "Edit
|
|
Solution" dialog.
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Load/BC-Based Errors Summary
|
|
----------------------------
|
|
|
|
Total: 0 errors and 0 warnings
|
|
|
|
|
|
Nastran Model Setup Check completed
|
|
|
|
|
|
|
|
|
|
*** 20:44:27 ***
|
|
Starting Nastran Exporter
|
|
|
|
*** 20:44:27 ***
|
|
Writing file
|
|
c:\Users\antoi\Documents\Atomaste\Atomizer\tests\bracket_sim1-solution_1.dat
|
|
|
|
*** 20:44:27 ***
|
|
Writing SIMCENTER NASTRAN 2412.0 compatible deck
|
|
|
|
*** 20:44:27 ***
|
|
Writing Nastran System section
|
|
|
|
*** 20:44:27 ***
|
|
Writing File Management section
|
|
|
|
*** 20:44:27 ***
|
|
Writing Executive Control section
|
|
|
|
*** 20:44:27 ***
|
|
Writing Case Control section
|
|
|
|
*** 20:44:27 ***
|
|
Writing Bulk Data section
|
|
|
|
*** 20:44:27 ***
|
|
Writing Nodes
|
|
|
|
*** 20:44:27 ***
|
|
Writing Elements
|
|
|
|
*** 20:44:27 ***
|
|
Writing Physical Properties
|
|
|
|
*** 20:44:27 ***
|
|
Writing Materials
|
|
|
|
*** 20:44:27 ***
|
|
Writing Degree-of-Freedom Sets
|
|
|
|
*** 20:44:27 ***
|
|
Writing Loads and Constraints
|
|
|
|
*** 20:44:27 ***
|
|
Writing Coordinate Systems
|
|
|
|
*** 20:44:27 ***
|
|
Validating Solution Setup
|
|
|
|
*** 20:44:27 ***
|
|
Summary of Bulk Data cards written
|
|
|
|
+----------+----------+
|
|
| NAME | NUMBER |
|
|
+----------+----------+
|
|
| CHEXA | 306 |
|
|
| CPENTA | 10 |
|
|
| FORCE | 3 |
|
|
| GRID | 585 |
|
|
| MAT1 | 1 |
|
|
| MATT1 | 1 |
|
|
| PARAM | 6 |
|
|
| PSOLID | 1 |
|
|
| SPC | 51 |
|
|
| TABLEM1 | 3 |
|
|
+----------+----------+
|
|
|
|
*** 20:44:27 ***
|
|
Nastran Deck Successfully Written
|
|
|
|
[JOURNAL] Opening simulation: c:\Users\antoi\Documents\Atomaste\Atomizer\tests\Bracket_sim1.sim
|
|
[JOURNAL] Checking for open parts...
|
|
[JOURNAL] Opening simulation fresh from disk...
|
|
[JOURNAL] STEP 1: Updating Bracket.prt geometry...
|
|
[JOURNAL] Rebuilding geometry with new expression values...
|
|
[JOURNAL] Bracket geometry updated (0 errors)
|
|
[JOURNAL] STEP 2: Opening Bracket_fem1.fem...
|
|
[JOURNAL] Updating FE Model...
|
|
[JOURNAL] FE Model updated with new geometry!
|
|
[JOURNAL] STEP 3: Switching back to sim part...
|
|
[JOURNAL] Switched back to sim part
|
|
[JOURNAL] Starting solve...
|
|
[JOURNAL] Solve submitted!
|
|
[JOURNAL] Solutions solved: -1934939530
|
|
[JOURNAL] Solutions failed: 32764
|
|
[JOURNAL] Solutions skipped: -803732928
|
|
[JOURNAL] Saving simulation to ensure output files are written...
|
|
[JOURNAL] Save complete!
|
|
[JOURNAL ERRORS]
|
|
Journal execution results for c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py...
|
|
Syntax errors:
|
|
Line 0: Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\tests\_temp_solve_journal.py", line 247, in <module>
|
|
sys.exit(0 if success else 1)
|
|
[NX SOLVER] Waiting for solve to complete...
|
|
[NX SOLVER] Output files detected after 0.5s
|
|
[NX SOLVER] Complete in 4.6s
|
|
[NX SOLVER] Results: bracket_sim1-solution_1.op2
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
|
|
ndata = 0:
|
|
strings = (b'',)
|
|
ints = ()
|
|
floats = ()
|
|
|
|
ERROR: op2_reader.py:2988 finished table_name = b'EQEXIN'
|
|
ERROR: op2_reader.py:2993 There was a Nastran FATAL Error. Check the F06.
|
|
last table=b'EQEXIN'; post=-1 version='nx'
|
|
DEBUG: op2.py:614 combine=True
|
|
DEBUG: op2.py:615 -------- reading op2 with read_mode=1 (array sizing) --------
|
|
Extraction failed: extract_solid_stress - There was a Nastran FATAL Error. Check the F06.
|
|
last table=b'EQEXIN'; post=-1 version='nx'
|
|
Extraction failed for extract_solid_stress: There was a Nastran FATAL Error. Check the F06.
|
|
last table=b'EQEXIN'; post=-1 version='nx'
|
|
Inline calculation failed: name 'max_von_mises' is not defined
|
|
Inline calculation failed: name 'max_displacement' is not defined
|
|
Required input 'min_force' not found in context
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\min_to_avg_ratio_hook.py", line 38, in ratio_hook
|
|
raise ValueError(f"Missing required input: min_force")
|
|
ValueError: Missing required input: min_force
|
|
Hook 'ratio_hook' failed: Missing required input: min_force
|
|
Required input 'max_stress' not found in context
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\safety_factor_hook.py", line 38, in safety_factor_hook
|
|
raise ValueError(f"Missing required input: max_stress")
|
|
ValueError: Missing required input: max_stress
|
|
Hook 'safety_factor_hook' failed: Missing required input: max_stress
|
|
Required input 'norm_stress' not found in context
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\hooks.py", line 72, in execute
|
|
result = self.function(context)
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\plugins\post_calculation\weighted_objective_test.py", line 38, in weighted_objective_hook
|
|
raise ValueError(f"Missing required input: norm_stress")
|
|
ValueError: Missing required input: norm_stress
|
|
Hook 'weighted_objective_hook' failed: Missing required input: norm_stress
|
|
[W 2025-11-16 20:44:29,500] Trial 5 failed with parameters: {'tip_thickness': 21.549788562837012, 'support_angle': 28.710108728807292} because of the following error: ValueError('Could not determine objective value from results/calculations/hooks').
|
|
Traceback (most recent call last):
|
|
File "C:\Users\antoi\anaconda3\envs\test_env\Lib\site-packages\optuna\study\_optimize.py", line 201, in _run_trial
|
|
value_or_values = func(trial)
|
|
^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\llm_optimization_runner.py", line 328, in _objective
|
|
raise ValueError("Could not determine objective value from results/calculations/hooks")
|
|
ValueError: Could not determine objective value from results/calculations/hooks
|
|
[W 2025-11-16 20:44:29,502] Trial 5 failed with value None.
|
|
INFO: op2_scalar.py:1960 op2_filename = 'c:\\Users\\antoi\\Documents\\Atomaste\\Atomizer\\tests\\bracket_sim1-solution_1.op2'
|
|
DEBUG: op2_reader.py:323 date = (11, 16, 25)
|
|
WARNING: version.py:88 nx version='2412' is not supported
|
|
DEBUG: op2_reader.py:403 mode='nx' version='2412'
|
|
DEBUG: op2_scalar.py:2173 table_name=b'IBULK' (explicit bulk data)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'ICASE' (explicit case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'CASECC' (case control)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'PVT0' (PARAM cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPL' (grid point list)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GPDT' (grid point locations)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EPT' (property cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'MPT' (material cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM2' (element cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM3' (constraint cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM4' (load cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'GEOM1' (grid/coord cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'BGPDT' (grid points in cid=0 frame)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'DIT' (TABLEx cards)
|
|
DEBUG: op2_scalar.py:2173 table_name=b'EQEXIN' (internal/external ids)
|
|
DEBUG: op2_reader.py:672 eqexin idata=(101, 585, 0, 0, 0, 0, 0)
|
|
|
|
ndata = 0:
|
|
strings = (b'',)
|
|
ints = ()
|
|
floats = ()
|
|
|
|
ERROR: op2_reader.py:2988 finished table_name = b'EQEXIN'
|
|
ERROR: op2_reader.py:2993 There was a Nastran FATAL Error. Check the F06.
|
|
last table=b'EQEXIN'; post=-1 version='nx'
|
|
Traceback (most recent call last):
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\run_optimization.py", line 283, in <module>
|
|
main()
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\run_optimization.py", line 245, in main
|
|
results = runner.run_optimization(n_trials=20)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\llm_optimization_runner.py", line 368, in run_optimization
|
|
self.study.optimize(self._objective, n_trials=n_trials)
|
|
File "C:\Users\antoi\anaconda3\envs\test_env\Lib\site-packages\optuna\study\study.py", line 490, in optimize
|
|
_optimize(
|
|
File "C:\Users\antoi\anaconda3\envs\test_env\Lib\site-packages\optuna\study\_optimize.py", line 63, in _optimize
|
|
_optimize_sequential(
|
|
File "C:\Users\antoi\anaconda3\envs\test_env\Lib\site-packages\optuna\study\_optimize.py", line 160, in _optimize_sequential
|
|
frozen_trial_id = _run_trial(study, func, catch)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "C:\Users\antoi\anaconda3\envs\test_env\Lib\site-packages\optuna\study\_optimize.py", line 258, in _run_trial
|
|
raise func_err
|
|
File "C:\Users\antoi\anaconda3\envs\test_env\Lib\site-packages\optuna\study\_optimize.py", line 201, in _run_trial
|
|
value_or_values = func(trial)
|
|
^^^^^^^^^^^
|
|
File "c:\Users\antoi\Documents\Atomaste\Atomizer\optimization_engine\llm_optimization_runner.py", line 328, in _objective
|
|
raise ValueError("Could not determine objective value from results/calculations/hooks")
|
|
ValueError: Could not determine objective value from results/calculations/hooks
|