Files
Atomizer/examples/bracket/bracket_sim1-solution_1.diag
Anto01 718c72bea2 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>
2025-11-15 12:43:31 -05:00

71 lines
1.2 KiB
Plaintext

*** 12:40:30 ***
Starting Nastran Exporter
*** 12:40:30 ***
Writing file
C:\Users\antoi\Documents\Atomaste\Atomizer\examples\bracket\bracket_sim1-solution_1.dat
*** 12:40:30 ***
Writing SIMCENTER NASTRAN 2412.0 compatible deck
*** 12:40:30 ***
Writing Nastran System section
*** 12:40:30 ***
Writing File Management section
*** 12:40:30 ***
Writing Executive Control section
*** 12:40:30 ***
Writing Case Control section
*** 12:40:30 ***
Writing Bulk Data section
*** 12:40:30 ***
Writing Nodes
*** 12:40:30 ***
Writing Elements
*** 12:40:30 ***
Writing Physical Properties
*** 12:40:30 ***
Writing Materials
*** 12:40:30 ***
Writing Degree-of-Freedom Sets
*** 12:40:30 ***
Writing Loads and Constraints
*** 12:40:30 ***
Writing Coordinate Systems
*** 12:40:30 ***
Validating Solution Setup
*** 12:40:30 ***
Summary of Bulk Data cards written
+----------+----------+
| NAME | NUMBER |
+----------+----------+
| CTETRA | 1027 |
| FORCE | 5 |
| GRID | 2040 |
| MAT1 | 1 |
| MATT1 | 1 |
| PARAM | 6 |
| PSOLID | 1 |
| SPC | 109 |
| TABLEM1 | 3 |
+----------+----------+
*** 12:40:30 ***
Nastran Deck Successfully Written