feat: Implement complete FEM regeneration workflow

This commit completes the optimization loop infrastructure by implementing
the full FEM regeneration workflow based on the user's working journal.

## Changes

### FEM Regeneration Workflow (solve_simulation.py)
- Added STEP 1: Switch to Bracket.prt and update geometry
  - Uses SetActiveDisplay() to make Bracket.prt active
  - Calls UpdateManager.DoUpdate() to rebuild CAD geometry with new expressions
- Added STEP 2: Switch to Bracket_fem1 and update FE model
  - Uses SetActiveDisplay() to make FEM active
  - Calls fEModel1.UpdateFemodel() to regenerate FEM with updated geometry
- Added STEP 3: Switch back to sim part before solving
- Close and reopen .sim file to force reload from disk

### Enhanced Journal Output (nx_solver.py)
- Display journal stdout output for debugging
- Shows all journal steps: geometry update, FEM regeneration, solve, save
- Helps verify workflow execution

### Verification Tools
- Added verify_parametric_link.py journal to check expression dependencies
- Added FEM_REGENERATION_STATUS.md documenting the complete status

## Status

###  Fully Functional Components
1. Parameter updates - nx_updater.py modifies .prt expressions
2. NX solver - ~4s per solve via journal
3. Result extraction - pyNastran reads .op2 files
4. History tracking - saves to JSON/CSV
5. Optimization loop - Optuna explores parameter space
6. **FEM regeneration workflow** - Journal executes all steps successfully

###  Remaining Issue: Expressions Not Linked to Geometry
The optimization returns identical stress values (197.89 MPa) for all trials
because the Bracket.prt expressions are not referenced by any geometry features.

Evidence:
- Journal verification shows FEM update steps execute successfully
- Feature dependency check shows no features reference the expressions
- All optimization infrastructure is working correctly

The code is ready - waiting for Bracket.prt to have its expressions properly
linked to the geometry features in NX.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-15 12:43:31 -05:00
parent 2729bd3278
commit 718c72bea2
22 changed files with 7175 additions and 2378 deletions

View File

@@ -60,11 +60,11 @@
* * * *
* * * *
* * * *
* * Simcenter Nastran 2412.5000 * *
* * Simcenter Nastran 2412 * *
* * * *
* * VERSION - 2412.5020 * *
* * VERSION - 2412.0074 * *
* * * *
* * FEB 13, 2025 * *
* * NOV 8, 2024 * *
* * * *
* * * *
* *Intel64 Family 6 Model 183 Stepp * *
@@ -88,31 +88,30 @@
for global, or multi-user control, and in a local file for local control.
Individual jobs can be controlled by setting news to yes or no on the command
line.
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 1
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 1
0 N A S T R A N F I L E A N D S Y S T E M P A R A M E T E R E C H O
0
NASTRAN BUFFSIZE=32769 $(C:/PROGRAM FILES/SIEMENS/NX2412/NXNASTRAN/CONF/NASTRAN.
NASTRAN BUFFSIZE=32769 $(C:/PROGRAM FILES/SIEMENS/SIMCENTER3D_2412/NXNASTRAN/CON
NASTRAN BUFFPOOL=23466
NASTRAN DIAGA=128 DIAGB=0 $(C:/PROGRAM FILES/SIEMENS/NX2412/NXNASTRAN/CONF/NASTR
NASTRAN SYSTEM(442)=2 $(COMMAND LINE[5])
NASTRAN DIAGA=128 DIAGB=0 $(C:/PROGRAM FILES/SIEMENS/SIMCENTER3D_2412/NXNASTRAN/
NASTRAN REAL=8545370112 $(MEMORY LIMIT FOR MPI AND OTHER SPECIALIZED MODULES)
$*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$*
$* SIMCENTER V2412.0.0.7002 TRANSLATOR
$* SIMCENTER V2412.0.0.3001 TRANSLATOR
$* FOR SIMCENTER NASTRAN VERSION 2412.0
$*
$* FEM FILE: C:\USERS\ANTOI\DOCUMENTS\ATOMASTE\ATOMIZER\TESTS\BRACKE
$* SIM FILE: C:\USERS\ANTOI\DOCUMENTS\ATOMASTE\ATOMIZER\TESTS\BRACKE
$* FEM FILE: C:\USERS\ANTOI\DOCUMENTS\ATOMASTE\ATOMIZER\EXAMPLES\BRA
$* SIM FILE: C:\USERS\ANTOI\DOCUMENTS\ATOMASTE\ATOMIZER\EXAMPLES\BRA
$* ANALYSIS TYPE: STRUCTURAL
$* SOLUTION NAME: SOLUTION 1
$* SOLUTION TYPE: SOL 101 LINEAR STATICS
$*
$* SOLVER INPUT FILE: BRACKET_SIM1-SOLUTION_1.DAT
$* CREATION DATE: 15-NOV-2025
$* CREATION TIME: 08:33:00
$* CREATION TIME: 12:40:30
$* HOSTNAME: ANTOINETHINKPAD
$* NASTRAN LICENSE: DESKTOP BUNDLE
$*
@@ -143,7 +142,7 @@
$*
$*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$*
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 2
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 2
0 N A S T R A N E X E C U T I V E C O N T R O L E C H O
0
@@ -152,7 +151,7 @@
ID,NASTRAN,BRACKET_SIM1-SOLUTION_1
SOL 101
CEND
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 3
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 3
0
0 C A S E C O N T R O L E C H O
@@ -183,24 +182,23 @@
23 $*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
24 $*
25 BEGIN BULK
0 INPUT BULK DATA ENTRY COUNT = 1898
0 TOTAL COUNT= 1874
0 INPUT BULK DATA ENTRY COUNT = 6300
0 TOTAL COUNT= 6276
M O D E L S U M M A R Y
NUMBER OF GRID POINTS = 585
NUMBER OF GRID POINTS = 2040
NUMBER OF CHEXA ELEMENTS = 306
NUMBER OF CPENTA ELEMENTS = 10
NUMBER OF CTETRA ELEMENTS = 1027
*** USER INFORMATION MESSAGE 4109 (OUTPBN2)
THE LABEL IS NX2412.5 FOR FORTRAN UNIT 12
THE LABEL IS NX2412 FOR FORTRAN UNIT 12
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 7 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 8 RECORDS.)
(TOTAL DATA WRITTEN FOR TAPE LABEL = 17 WORDS.)
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 4
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 4
0
0
@@ -211,8 +209,8 @@
101 1 0 0 0 0 0
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 20 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 9499 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 45551 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 31509 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 151199 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK ICASE WRITTEN ON FORTRAN UNIT 12, TRL =
102 27 0 0 0 0 0
@@ -236,18 +234,18 @@
(TOTAL DATA WRITTEN FOR DATA BLOCK = 54 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK GPL WRITTEN ON FORTRAN UNIT 12, TRL =
101 585 585 0 0 0 0
101 2040 2040 0 0 0 0
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 1170 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 4080 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 1786 WORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 6151 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK GPDT WRITTEN ON FORTRAN UNIT 12, TRL =
102 585 7 0 1 0 0
102 2040 7 0 1 0 0
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 5850 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 20400 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 19 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 5876 WORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 20426 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK EPT WRITTEN ON FORTRAN UNIT 12, TRL =
101 0 256 0 0 0 0
@@ -255,7 +253,7 @@
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 10 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 43 WORDS.)
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 5
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 5
0
0
@@ -270,39 +268,39 @@
(TOTAL DATA WRITTEN FOR DATA BLOCK = 67 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK GEOM2 WRITTEN ON FORTRAN UNIT 12, TRL =
101 0 0 128 0 128 0
101 0 0 0 512 0 0
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 6735 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 29 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 6945 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 12327 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 12360 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK GEOM3 WRITTEN ON FORTRAN UNIT 12, TRL =
102 0 0 64 0 0 0
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 24 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 38 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 57 WORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 71 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK GEOM4 WRITTEN ON FORTRAN UNIT 12, TRL =
103 0 0 0 512 0 0
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 207 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 439 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 240 WORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 472 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK GEOM1 WRITTEN ON FORTRAN UNIT 12, TRL =
104 0 0 8 0 0 0
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 6438 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 22443 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 6471 WORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 22476 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK BGPDT WRITTEN ON FORTRAN UNIT 12, TRL =
105 585 0 3510 1 0 585
105 2040 0 12240 1 0 2040
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 7020 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 24480 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 8220 WORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 28590 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK DIT WRITTEN ON FORTRAN UNIT 12, TRL =
101 32768 0 0 0 0 0
@@ -310,7 +308,7 @@
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 137 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 170 WORDS.)
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 6
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 6
0
0
@@ -318,12 +316,12 @@
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK EQEXIN WRITTEN ON FORTRAN UNIT 12, TRL =
101 585 0 0 0 0 0
101 2040 0 0 0 0 0
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 1170 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 4080 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 2370 WORDS.)
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 7
(TOTAL DATA WRITTEN FOR DATA BLOCK = 8190 WORDS.)
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 7
0
*** USER INFORMATION MESSAGE 7310 (VECPRN)
@@ -334,14 +332,14 @@
DAREA ID TYPE T1 T2 T3 R1 R2 R3
0 1 FX 0.000000E+00 ---- ---- ---- 0.000000E+00 0.000000E+00
FY ---- 0.000000E+00 ---- 0.000000E+00 ---- 0.000000E+00
FZ ---- ---- -1.000000E+06 -1.000000E+08 5.134342E+00 ----
FZ ---- ---- -9.999967E+05 -9.999967E+07 0.000000E+00 ----
MX ---- ---- ---- 0.000000E+00 ---- ----
MY ---- ---- ---- ---- 0.000000E+00 ----
MZ ---- ---- ---- ---- ---- 0.000000E+00
TOTALS 0.000000E+00 0.000000E+00 -1.000000E+06 -1.000000E+08 5.134342E+00 0.000000E+00
TOTALS 0.000000E+00 0.000000E+00 -9.999967E+05 -9.999967E+07 0.000000E+00 0.000000E+00
*** USER INFORMATION MESSAGE - SINGULARITIES FOUND USING EIGENVALUE METHOD
*** 1602 SINGULARITIES FOUND 1602 SINGULARITIES ELIMINATED
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 8
*** 5793 SINGULARITIES FOUND 5793 SINGULARITIES ELIMINATED
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 8
0 SUBCASE 1
*** SYSTEM INFORMATION MESSAGE 6916 (DFMSYN)
@@ -349,8 +347,8 @@
*** USER INFORMATION MESSAGE 5293 (SSG3A)
FOR DATA BLOCK KLL
LOAD SEQ. NO. EPSILON EXTERNAL WORK EPSILONS LARGER THAN 0.001 ARE FLAGGED WITH ASTERISKS
1 5.0214214E-15 1.7700232E+05
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 9
1 -1.2736915E-13 1.5218577E+05
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 9
0
*** USER INFORMATION MESSAGE 7310 (VECPRN)
@@ -359,41 +357,41 @@
0 SPCFORCE RESULTANT
SUBCASE/ LOAD
DAREA ID TYPE T1 T2 T3 R1 R2 R3
0 1 FX 5.264392E-09 ---- ---- ---- -8.248000E+01 4.167906E-14
FY ---- 9.620271E-08 ---- 1.000000E+08 ---- -2.301368E-07
FZ ---- ---- 1.000000E+06 1.663200E-09 7.734565E+01 ----
0 1 FX 2.527795E-07 ---- ---- ---- 3.852185E+03 -7.669947E-13
FY ---- 1.450826E-07 ---- 9.999967E+07 ---- -2.115735E-05
FZ ---- ---- 9.999967E+05 3.350569E-09 -3.852185E+03 ----
MX ---- ---- ---- 0.000000E+00 ---- ----
MY ---- ---- ---- ---- 0.000000E+00 ----
MZ ---- ---- ---- ---- ---- 0.000000E+00
TOTALS 5.264392E-09 9.620271E-08 1.000000E+06 1.000000E+08 -5.134343E+00 -2.301368E-07
TOTALS 2.527795E-07 1.450826E-07 9.999967E+05 9.999967E+07 1.104374E-05 -2.115735E-05
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK OQG1 WRITTEN ON FORTRAN UNIT 12, TRL =
101 0 4680 15 25 0 1
101 0 16320 15 25 0 1
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 4680 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 16320 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 4861 WORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 16501 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK BOUGV1 WRITTEN ON FORTRAN UNIT 12, TRL =
101 0 4680 15 25 0 1
101 0 16320 15 25 0 1
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 4680 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 16320 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 24 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 4861 WORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 16501 WORDS.)
*** USER INFORMATION MESSAGE 4114 (OUTPBN2)
DATA BLOCK OES1 WRITTEN ON FORTRAN UNIT 12, TRL =
101 63 11 15 25 0 1
(MAXIMUM POSSIBLE FORTRAN RECORD SIZE = 65538 WORDS.)
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 59058 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 34 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 60903 WORDS.)
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 10
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 65538 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 26 RECORDS.)
(TOTAL DATA WRITTEN FOR DATA BLOCK = 112124 WORDS.)
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 10
0
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 11
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 11
0
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 12
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 12
0
*** USER INFORMATION MESSAGE 4110 (OUTPBN2)
@@ -401,7 +399,7 @@
(MAXIMUM SIZE OF FORTRAN RECORDS WRITTEN = 1 WORDS.)
(NUMBER OF FORTRAN RECORDS WRITTEN = 1 RECORDS.)
(TOTAL DATA WRITTEN FOR EOF MARKER = 1 WORDS.)
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 2/13/25 PAGE 13
1 NOVEMBER 15, 2025 SIMCENTER NASTRAN 11/ 8/24 PAGE 13
0
* * * * D B D I C T P R I N T * * * * SUBDMAP = PRTSUM , DMAP STATEMENT NO. 28