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\studies\bracket_displacement_maximizing\model\Bracket.prt Simulation file: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket_sim1.sim Study directory: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing ================================================================================ STEP 1: INITIALIZATION ================================================================================ Initializing Optimization Setup Wizard... [OK] Wizard initialized ================================================================================ STEP 2: MODEL INTROSPECTION ================================================================================ Reading NX model expressions... Found 4 expressions: - support_angle: 23.0 degrees - tip_thickness: 16.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\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:02:40 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:03:35 *** Starting Nastran Exporter *** 21:03:35 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:03:35 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:03:35 *** Writing Nastran System section *** 21:03:35 *** Writing File Management section *** 21:03:35 *** Writing Executive Control section *** 21:03:35 *** Writing Case Control section *** 21:03:35 *** Writing Bulk Data section *** 21:03:35 *** Writing Nodes *** 21:03:35 *** Writing Elements *** 21:03:35 *** Writing Physical Properties *** 21:03:35 *** Writing Materials *** 21:03:35 *** Writing Degree-of-Freedom Sets *** 21:03:35 *** Writing Loads and Constraints *** 21:03:35 *** Writing Coordinate Systems *** 21:03:35 *** Validating Solution Setup *** 21:03:35 *** 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 | +----------+----------+ *** 21:03:35 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1795872138 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 792592960 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:02:40 2025 -> Sun Nov 16 21:03:36 2025 [NX SOLVER] Complete in 4.1s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:03:37,585] Using an existing study with name 'bracket_displacement_maximizing' instead of creating a new one. 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 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\studies\bracket_displacement_maximizing\results [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 = 16 -> 16 Updated: support_angle = 23 -> 30 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210337 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:03:36 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:03:40 *** Starting Nastran Exporter *** 21:03:40 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:03:40 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:03:40 *** Writing Nastran System section *** 21:03:40 *** Writing File Management section *** 21:03:40 *** Writing Executive Control section *** 21:03:40 *** Writing Case Control section *** 21:03:40 *** Writing Bulk Data section *** 21:03:40 *** Writing Nodes *** 21:03:40 *** Writing Elements *** 21:03:40 *** Writing Physical Properties *** 21:03:40 *** Writing Materials *** 21:03:40 *** Writing Degree-of-Freedom Sets *** 21:03:40 *** Writing Loads and Constraints *** 21:03:40 *** Writing Coordinate Systems *** 21:03:40 *** Validating Solution Setup *** 21:03:40 *** 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 | +----------+----------+ *** 21:03:40 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -212073920 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:03:36 2025 -> Sun Nov 16 21:03:41 2025 [NX SOLVER] Complete in 4.3s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:03:42,101] Trial 2 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 16.340803300010094, 'support_angle': 30.818909896109847}. Best is trial 0 with value: 0.36178338527679443. 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 = 16 -> 18 Updated: support_angle = 30 -> 28 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210342 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:03:41 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:03:45 *** Starting Nastran Exporter *** 21:03:45 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:03:45 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:03:45 *** Writing Nastran System section *** 21:03:45 *** Writing File Management section *** 21:03:45 *** Writing Executive Control section *** 21:03:45 *** Writing Case Control section *** 21:03:45 *** Writing Bulk Data section *** 21:03:45 *** Writing Nodes *** 21:03:45 *** Writing Elements *** 21:03:45 *** Writing Physical Properties *** 21:03:45 *** Writing Materials *** 21:03:45 *** Writing Degree-of-Freedom Sets *** 21:03:45 *** Writing Loads and Constraints *** 21:03:45 *** Writing Coordinate Systems *** 21:03:45 *** Validating Solution Setup *** 21:03:45 *** 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 | +----------+----------+ *** 21:03:45 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 404357696 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:03:41 2025 -> Sun Nov 16 21:03:46 2025 [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\\studies\\bracket_displacement_maximizing\\model\\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 21:03:46,607] Trial 3 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 18.105380892934622, 'support_angle': 28.298283536798394}. Best is trial 0 with value: 0.36178338527679443. 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\\studies\\bracket_displacement_maximizing\\model\\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 -> 17 Updated: support_angle = 28 -> 32 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210346 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:03:46 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:03:49 *** Starting Nastran Exporter *** 21:03:49 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:03:49 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:03:49 *** Writing Nastran System section *** 21:03:49 *** Writing File Management section *** 21:03:49 *** Writing Executive Control section *** 21:03:49 *** Writing Case Control section *** 21:03:49 *** Writing Bulk Data section *** 21:03:49 *** Writing Nodes *** 21:03:49 *** Writing Elements *** 21:03:49 *** Writing Physical Properties *** 21:03:49 *** Writing Materials *** 21:03:49 *** Writing Degree-of-Freedom Sets *** 21:03:49 *** Writing Loads and Constraints *** 21:03:49 *** Writing Coordinate Systems *** 21:03:49 *** Validating Solution Setup *** 21:03:49 *** 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 | +----------+----------+ *** 21:03:49 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 863961664 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:03:46 2025 -> Sun Nov 16 21:03:50 2025 [NX SOLVER] Complete in 4.3s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:03:51,010] Trial 4 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 17.721287462514425, 'support_angle': 32.388109319134045}. Best is trial 0 with value: 0.36178338527679443. 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 = 17 -> 22 Updated: support_angle = 32 -> 22 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210351 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:03:50 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:03:54 *** Starting Nastran Exporter *** 21:03:54 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:03:54 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:03:54 *** Writing Nastran System section *** 21:03:54 *** Writing File Management section *** 21:03:54 *** Writing Executive Control section *** 21:03:54 *** Writing Case Control section *** 21:03:54 *** Writing Bulk Data section *** 21:03:54 *** Writing Nodes *** 21:03:54 *** Writing Elements *** 21:03:54 *** Writing Physical Properties *** 21:03:54 *** Writing Materials *** 21:03:54 *** Writing Degree-of-Freedom Sets *** 21:03:54 *** Writing Loads and Constraints *** 21:03:54 *** Writing Coordinate Systems *** 21:03:54 *** Validating Solution Setup *** 21:03: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 | +----------+----------+ *** 21:03:54 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 1027015232 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:03:50 2025 -> Sun Nov 16 21:03:55 2025 [NX SOLVER] Complete in 4.1s [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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:03:55,235] Trial 5 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 22.910324196496077, 'support_angle': 22.589443923024472}. 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: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\\studies\\bracket_displacement_maximizing\\model\\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 -> 16 Updated: support_angle = 22 -> 36 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210355 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:03:55 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:03:58 *** Starting Nastran Exporter *** 21:03:58 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:03:58 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:03:58 *** Writing Nastran System section *** 21:03:58 *** Writing File Management section *** 21:03:58 *** Writing Executive Control section *** 21:03:58 *** Writing Case Control section *** 21:03:58 *** Writing Bulk Data section *** 21:03:58 *** Writing Nodes *** 21:03:58 *** Writing Elements *** 21:03:58 *** Writing Physical Properties *** 21:03:58 *** Writing Materials *** 21:03:58 *** Writing Degree-of-Freedom Sets *** 21:03:58 *** Writing Loads and Constraints *** 21:03:58 *** Writing Coordinate Systems *** 21:03:58 *** Validating Solution Setup *** 21:03:58 *** 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 | +----------+----------+ *** 21:03:58 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 1986462272 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:03:55 2025 -> Sun Nov 16 21:03:59 2025 [NX SOLVER] Complete in 4.3s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\bracket_sim1-solution_1.op2' 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 21:03:59,658] Trial 6 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 16.19304697862953, 'support_angle': 36.06797331023344}. Best is trial 0 with value: 0.36178338527679443. 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 = 16 -> 15 Updated: support_angle = 36 -> 35 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210359 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:03:59 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:02 *** Starting Nastran Exporter *** 21:04:02 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:02 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:02 *** Writing Nastran System section *** 21:04:02 *** Writing File Management section *** 21:04:02 *** Writing Executive Control section *** 21:04:02 *** Writing Case Control section *** 21:04:02 *** Writing Bulk Data section *** 21:04:02 *** Writing Nodes *** 21:04:02 *** Writing Elements *** 21:04:02 *** Writing Physical Properties *** 21:04:02 *** Writing Materials *** 21:04:02 *** Writing Degree-of-Freedom Sets *** 21:04:02 *** Writing Loads and Constraints *** 21:04:02 *** Writing Coordinate Systems *** 21:04:02 *** Validating Solution Setup *** 21:04:02 *** 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 | +----------+----------+ *** 21:04:02 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 652018240 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:03:59 2025 -> Sun Nov 16 21:04:03 2025 [NX SOLVER] Complete in 4.1s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:03,889] Trial 7 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 15.61436419929355, 'support_angle': 35.52844150612963}. Best is trial 0 with value: 0.36178338527679443. 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 = 15 -> 21 Updated: support_angle = 35 -> 37 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210403 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:03 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:07 *** Starting Nastran Exporter *** 21:04:07 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:07 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:07 *** Writing Nastran System section *** 21:04:07 *** Writing File Management section *** 21:04:07 *** Writing Executive Control section *** 21:04:07 *** Writing Case Control section *** 21:04:07 *** Writing Bulk Data section *** 21:04:07 *** Writing Nodes *** 21:04:07 *** Writing Elements *** 21:04:07 *** Writing Physical Properties *** 21:04:07 *** Writing Materials *** 21:04:07 *** Writing Degree-of-Freedom Sets *** 21:04:07 *** Writing Loads and Constraints *** 21:04:07 *** Writing Coordinate Systems *** 21:04:07 *** Validating Solution Setup *** 21:04:07 *** 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 | +----------+----------+ *** 21:04:07 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 2028208704 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:03 2025 -> Sun Nov 16 21:04:07 2025 [NX SOLVER] Complete in 4.3s [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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:08,344] Trial 8 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 21.42102362423531, 'support_angle': 37.41818639166882}. Best is trial 0 with value: 0.36178338527679443. 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\\studies\\bracket_displacement_maximizing\\model\\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 = 21 -> 22 Updated: support_angle = 37 -> 36 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210408 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:07 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:11 *** Starting Nastran Exporter *** 21:04:11 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:11 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:11 *** Writing Nastran System section *** 21:04:11 *** Writing File Management section *** 21:04:11 *** Writing Executive Control section *** 21:04:11 *** Writing Case Control section *** 21:04:11 *** Writing Bulk Data section *** 21:04:11 *** Writing Nodes *** 21:04:11 *** Writing Elements *** 21:04:11 *** Writing Physical Properties *** 21:04:11 *** Writing Materials *** 21:04:11 *** Writing Degree-of-Freedom Sets *** 21:04:11 *** Writing Loads and Constraints *** 21:04:11 *** Writing Coordinate Systems *** 21:04:11 *** Validating Solution Setup *** 21:04: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 | +----------+----------+ *** 21:04:11 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 1037697600 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:07 2025 -> Sun Nov 16 21:04:12 2025 [NX SOLVER] Complete in 4.0s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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 21:04:12,468] Trial 9 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 22.185997816011707, 'support_angle': 36.80015632779197}. Best is trial 0 with value: 0.36178338527679443. 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 -> 19 Updated: support_angle = 36 -> 23 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210412 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:12 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:15 *** Starting Nastran Exporter *** 21:04:15 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:15 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:15 *** Writing Nastran System section *** 21:04:15 *** Writing File Management section *** 21:04:15 *** Writing Executive Control section *** 21:04:15 *** Writing Case Control section *** 21:04:15 *** Writing Bulk Data section *** 21:04:15 *** Writing Nodes *** 21:04:15 *** Writing Elements *** 21:04:15 *** Writing Physical Properties *** 21:04:15 *** Writing Materials *** 21:04:15 *** Writing Degree-of-Freedom Sets *** 21:04:15 *** Writing Loads and Constraints *** 21:04:15 *** Writing Coordinate Systems *** 21:04:15 *** Validating Solution Setup *** 21:04:15 *** 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 | +----------+----------+ *** 21:04:15 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -1725627840 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:12 2025 -> Sun Nov 16 21:04:16 2025 [NX SOLVER] Complete in 4.0s [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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:16,611] Trial 10 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 19.181063532905092, 'support_angle': 23.746248246929593}. Best is trial 0 with value: 0.36178338527679443. 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\\studies\\bracket_displacement_maximizing\\model\\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 = 19 -> 24 Updated: support_angle = 23 -> 39 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210416 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:16 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:19 *** Starting Nastran Exporter *** 21:04:19 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:19 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:19 *** Writing Nastran System section *** 21:04:19 *** Writing File Management section *** 21:04:19 *** Writing Executive Control section *** 21:04:19 *** Writing Case Control section *** 21:04:19 *** Writing Bulk Data section *** 21:04:19 *** Writing Nodes *** 21:04:19 *** Writing Elements *** 21:04:19 *** Writing Physical Properties *** 21:04:19 *** Writing Materials *** 21:04:19 *** Writing Degree-of-Freedom Sets *** 21:04:19 *** Writing Loads and Constraints *** 21:04:19 *** Writing Coordinate Systems *** 21:04:19 *** Validating Solution Setup *** 21:04:19 *** 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 | +----------+----------+ *** 21:04:19 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -637205952 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:16 2025 -> Sun Nov 16 21:04:20 2025 [NX SOLVER] Complete in 4.0s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:20,796] Trial 11 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 24.107160812576737, 'support_angle': 39.72739387320189}. Best is trial 0 with value: 0.36178338527679443. 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 = 24 -> 17 Updated: support_angle = 39 -> 30 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210420 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:20 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:24 *** Starting Nastran Exporter *** 21:04:24 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:24 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:24 *** Writing Nastran System section *** 21:04:24 *** Writing File Management section *** 21:04:24 *** Writing Executive Control section *** 21:04:24 *** Writing Case Control section *** 21:04:24 *** Writing Bulk Data section *** 21:04:24 *** Writing Nodes *** 21:04:24 *** Writing Elements *** 21:04:24 *** Writing Physical Properties *** 21:04:24 *** Writing Materials *** 21:04:24 *** Writing Degree-of-Freedom Sets *** 21:04:24 *** Writing Loads and Constraints *** 21:04:24 *** Writing Coordinate Systems *** 21:04:24 *** Validating Solution Setup *** 21:04:24 *** 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 | +----------+----------+ *** 21:04:24 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -922746304 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:20 2025 -> Sun Nov 16 21:04:24 2025 [NX SOLVER] Complete in 4.2s [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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:25,072] Trial 12 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 17.1865774070726, 'support_angle': 30.54937374454046}. Best is trial 0 with value: 0.36178338527679443. 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\\studies\\bracket_displacement_maximizing\\model\\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 = 17 -> 20 Updated: support_angle = 30 -> 27 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210425 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:24 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:28 *** Starting Nastran Exporter *** 21:04:28 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:28 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:28 *** Writing Nastran System section *** 21:04:28 *** Writing File Management section *** 21:04:28 *** Writing Executive Control section *** 21:04:28 *** Writing Case Control section *** 21:04:28 *** Writing Bulk Data section *** 21:04:28 *** Writing Nodes *** 21:04:28 *** Writing Elements *** 21:04:28 *** Writing Physical Properties *** 21:04:28 *** Writing Materials *** 21:04:28 *** Writing Degree-of-Freedom Sets *** 21:04:28 *** Writing Loads and Constraints *** 21:04:28 *** Writing Coordinate Systems *** 21:04:28 *** Validating Solution Setup *** 21:04:28 *** 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 | +----------+----------+ *** 21:04:28 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 1501889088 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:24 2025 -> Sun Nov 16 21:04:29 2025 [NX SOLVER] Complete in 4.2s [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\\studies\\bracket_displacement_maximizing\\model\\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 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 21:04:29,397] Trial 13 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 20.31609875070344, 'support_angle': 27.073654676569404}. Best is trial 0 with value: 0.36178338527679443. 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\\studies\\bracket_displacement_maximizing\\model\\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 = 20 -> 15 Updated: support_angle = 27 -> 32 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210429 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:29 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:32 *** Starting Nastran Exporter *** 21:04:32 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:32 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:32 *** Writing Nastran System section *** 21:04:32 *** Writing File Management section *** 21:04:32 *** Writing Executive Control section *** 21:04:32 *** Writing Case Control section *** 21:04:32 *** Writing Bulk Data section *** 21:04:32 *** Writing Nodes *** 21:04:32 *** Writing Elements *** 21:04:32 *** Writing Physical Properties *** 21:04:32 *** Writing Materials *** 21:04:32 *** Writing Degree-of-Freedom Sets *** 21:04:32 *** Writing Loads and Constraints *** 21:04:32 *** Writing Coordinate Systems *** 21:04:32 *** Validating Solution Setup *** 21:04:32 *** 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 | +----------+----------+ *** 21:04:32 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -442957248 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:29 2025 -> Sun Nov 16 21:04:33 2025 [NX SOLVER] Complete in 4.2s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:33,733] Trial 14 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 15.1845181734436, 'support_angle': 32.52232339316216}. Best is trial 0 with value: 0.36178338527679443. 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 = 15 -> 19 Updated: support_angle = 32 -> 33 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210433 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:33 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:36 *** Starting Nastran Exporter *** 21:04:36 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:36 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:36 *** Writing Nastran System section *** 21:04:36 *** Writing File Management section *** 21:04:36 *** Writing Executive Control section *** 21:04:36 *** Writing Case Control section *** 21:04:36 *** Writing Bulk Data section *** 21:04:36 *** Writing Nodes *** 21:04:36 *** Writing Elements *** 21:04:36 *** Writing Physical Properties *** 21:04:36 *** Writing Materials *** 21:04:36 *** Writing Degree-of-Freedom Sets *** 21:04:36 *** Writing Loads and Constraints *** 21:04:36 *** Writing Coordinate Systems *** 21:04:36 *** Validating Solution Setup *** 21:04:36 *** 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 | +----------+----------+ *** 21:04:36 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -1015152064 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:33 2025 -> Sun Nov 16 21:04:37 2025 [NX SOLVER] Complete in 4.2s [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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:38,028] Trial 15 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 19.211334691131885, 'support_angle': 33.4592438738482}. Best is trial 0 with value: 0.36178338527679443. 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\\studies\\bracket_displacement_maximizing\\model\\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 = 19 -> 16 Updated: support_angle = 33 -> 26 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210438 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:37 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:41 *** Starting Nastran Exporter *** 21:04:41 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:41 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:41 *** Writing Nastran System section *** 21:04:41 *** Writing File Management section *** 21:04:41 *** Writing Executive Control section *** 21:04:41 *** Writing Case Control section *** 21:04:41 *** Writing Bulk Data section *** 21:04:41 *** Writing Nodes *** 21:04:41 *** Writing Elements *** 21:04:41 *** Writing Physical Properties *** 21:04:41 *** Writing Materials *** 21:04:41 *** Writing Degree-of-Freedom Sets *** 21:04:41 *** Writing Loads and Constraints *** 21:04:41 *** Writing Coordinate Systems *** 21:04:41 *** Validating Solution Setup *** 21:04:41 *** 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 | +----------+----------+ *** 21:04:41 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 772997696 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:37 2025 -> Sun Nov 16 21:04:42 2025 [NX SOLVER] Complete in 4.0s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:42,192] Trial 16 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 16.792132776707774, 'support_angle': 26.040842595230526}. Best is trial 0 with value: 0.36178338527679443. 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 = 16 -> 18 Updated: support_angle = 26 -> 20 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210442 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:42 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:45 *** Starting Nastran Exporter *** 21:04:45 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:45 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:45 *** Writing Nastran System section *** 21:04:45 *** Writing File Management section *** 21:04:45 *** Writing Executive Control section *** 21:04:45 *** Writing Case Control section *** 21:04:45 *** Writing Bulk Data section *** 21:04:45 *** Writing Nodes *** 21:04:45 *** Writing Elements *** 21:04:45 *** Writing Physical Properties *** 21:04:45 *** Writing Materials *** 21:04:45 *** Writing Degree-of-Freedom Sets *** 21:04:45 *** Writing Loads and Constraints *** 21:04:45 *** Writing Coordinate Systems *** 21:04:45 *** Validating Solution Setup *** 21:04:45 *** 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 | +----------+----------+ *** 21:04:45 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875957130 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -803536320 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:42 2025 -> Sun Nov 16 21:04:46 2025 [NX SOLVER] Complete in 4.1s [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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:46,384] Trial 17 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 18.575846314465224, 'support_angle': 20.067231334411122}. Best is trial 0 with value: 0.36178338527679443. 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\\studies\\bracket_displacement_maximizing\\model\\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 -> 20 Updated: support_angle = 20 -> 30 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210446 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:46 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:49 *** Starting Nastran Exporter *** 21:04:49 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:49 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:49 *** Writing Nastran System section *** 21:04:49 *** Writing File Management section *** 21:04:49 *** Writing Executive Control section *** 21:04:49 *** Writing Case Control section *** 21:04:49 *** Writing Bulk Data section *** 21:04:49 *** Writing Nodes *** 21:04:49 *** Writing Elements *** 21:04:49 *** Writing Physical Properties *** 21:04:49 *** Writing Materials *** 21:04:49 *** Writing Degree-of-Freedom Sets *** 21:04:49 *** Writing Loads and Constraints *** 21:04:49 *** Writing Coordinate Systems *** 21:04:49 *** Validating Solution Setup *** 21:04:49 *** 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 | +----------+----------+ *** 21:04:49 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875236234 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 271909440 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:46 2025 -> Sun Nov 16 21:04:50 2025 [NX SOLVER] Complete in 4.2s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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' 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 21:04:50,692] Trial 18 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 20.462945983827563, 'support_angle': 30.03135433203613}. Best is trial 0 with value: 0.36178338527679443. 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 = 20 -> 16 Updated: support_angle = 30 -> 39 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210450 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:50 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:53 *** Starting Nastran Exporter *** 21:04:53 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:53 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:53 *** Writing Nastran System section *** 21:04:53 *** Writing File Management section *** 21:04:53 *** Writing Executive Control section *** 21:04:53 *** Writing Case Control section *** 21:04:53 *** Writing Bulk Data section *** 21:04:53 *** Writing Nodes *** 21:04:53 *** Writing Elements *** 21:04:53 *** Writing Physical Properties *** 21:04:53 *** Writing Materials *** 21:04:53 *** Writing Degree-of-Freedom Sets *** 21:04:53 *** Writing Loads and Constraints *** 21:04:53 *** Writing Coordinate Systems *** 21:04:53 *** Validating Solution Setup *** 21:04:53 *** 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 | +----------+----------+ *** 21:04:53 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875236234 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -341048768 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:50 2025 -> Sun Nov 16 21:04:54 2025 [NX SOLVER] Complete in 4.3s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:55,104] Trial 19 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 16.64736533354882, 'support_angle': 39.42124051821946}. Best is trial 0 with value: 0.36178338527679443. 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 = 16 -> 19 Updated: support_angle = 39 -> 34 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210455 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:54 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:04:58 *** Starting Nastran Exporter *** 21:04:58 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:04:58 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:04:58 *** Writing Nastran System section *** 21:04:58 *** Writing File Management section *** 21:04:58 *** Writing Executive Control section *** 21:04:58 *** Writing Case Control section *** 21:04:58 *** Writing Bulk Data section *** 21:04:58 *** Writing Nodes *** 21:04:58 *** Writing Elements *** 21:04:58 *** Writing Physical Properties *** 21:04:58 *** Writing Materials *** 21:04:58 *** Writing Degree-of-Freedom Sets *** 21:04:58 *** Writing Loads and Constraints *** 21:04:58 *** Writing Coordinate Systems *** 21:04:58 *** Validating Solution Setup *** 21:04:58 *** 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 | +----------+----------+ *** 21:04:58 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875236234 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: 2025980480 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:54 2025 -> Sun Nov 16 21:04:58 2025 [NX SOLVER] Complete in 4.2s [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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:04:59,403] Trial 20 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 19.543467357432874, 'support_angle': 34.302655610432176}. Best is trial 0 with value: 0.36178338527679443. 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\\studies\\bracket_displacement_maximizing\\model\\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 = 19 -> 17 Updated: support_angle = 34 -> 30 Successfully updated 2/2 expressions Backup created: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt.bak_20251116_210459 Saved to: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\Bracket.prt [NX SOLVER] Starting simulation... Input file: Bracket_sim1.sim Working dir: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model Mode: Journal Found existing OP2 (modified: Sun Nov 16 21:04:58 2025) Will verify NX regenerates it with newer timestamp [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 *** 21:05:02 *** Starting Nastran Exporter *** 21:05:02 *** Writing file C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\ bracket_sim1-solution_1.dat *** 21:05:02 *** Writing SIMCENTER NASTRAN 2412.0 compatible deck *** 21:05:02 *** Writing Nastran System section *** 21:05:02 *** Writing File Management section *** 21:05:02 *** Writing Executive Control section *** 21:05:02 *** Writing Case Control section *** 21:05:02 *** Writing Bulk Data section *** 21:05:02 *** Writing Nodes *** 21:05:02 *** Writing Elements *** 21:05:02 *** Writing Physical Properties *** 21:05:02 *** Writing Materials *** 21:05:02 *** Writing Degree-of-Freedom Sets *** 21:05:02 *** Writing Loads and Constraints *** 21:05:02 *** Writing Coordinate Systems *** 21:05:02 *** Validating Solution Setup *** 21:05:02 *** 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 | +----------+----------+ *** 21:05:02 *** Nastran Deck Successfully Written [JOURNAL] Opening simulation: C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\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: -1875236234 [JOURNAL] Solutions failed: 32764 [JOURNAL] Solutions skipped: -1065024960 [JOURNAL] Saving simulation to ensure output files are written... [JOURNAL] Save complete! [JOURNAL ERRORS] Journal execution results for C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py... Syntax errors: Line 0: Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\model\_temp_solve_journal.py", line 247, in sys.exit(0 if success else 1) [NX SOLVER] Waiting for solve to complete... [NX SOLVER] Fresh output files detected after 0.0s OP2 regenerated: Sun Nov 16 21:04:58 2025 -> Sun Nov 16 21:05:03 2025 [NX SOLVER] Complete in 4.3s [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\\studies\\bracket_displacement_maximizing\\model\\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\\studies\\bracket_displacement_maximizing\\model\\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) 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 21:05:03,820] Trial 21 finished with value: 0.36178338527679443 and parameters: {'tip_thickness': 17.676096024627086, 'support_angle': 30.254143696679552}. Best is trial 0 with value: 0.36178338527679443. 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 ================================================================================ OPTIMIZATION COMPLETE! ================================================================================ Duration: 86.7 seconds (1.4 minutes) Best Design Found: - tip_thickness: 18.622 mm - support_angle: 35.660 degrees - Objective value: 0.361783 Best Design Performance: - Max displacement: 0.361783 mm - Max stress: 0.000 MPa - Safety factor: 0.000 - Constraint: VIOLATED Saving results... Traceback (most recent call last): File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\run_optimization.py", line 369, in main() File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\run_optimization.py", line 353, in main history_file, best_file, report_file = save_results(results, study_dir) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\antoi\Documents\Atomaste\Atomizer\studies\bracket_displacement_maximizing\run_optimization.py", line 94, in save_results f.write(f"- **Constraint**: {'\u2713 SATISFIED' if best_calcs.get('safety_factor', 0) >= 4.0 else '\u2717 VIOLATED'}\n\n") File "C:\Users\antoi\anaconda3\envs\test_env\Lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeEncodeError: 'charmap' codec can't encode character '\u2717' in position 18: character maps to