# CONTEXT.md — Hydrotech Beam Structural Optimization ## Client Hydrotech (internal test fixture) ## Objective Minimize beam mass while meeting displacement and stress constraints. Single-objective: minimize mass, constrain displacement (≤ 10 mm) and stress (≤ 130 MPa). ## Key Parameters — Confirmed (Gen 002 + Introspection) | Parameter | NX Expression | Current | Range | Units | DV? | Notes | |-----------|--------------|---------|-------|-------|-----|-------| | beam_half_core_thickness | `beam_half_core_thickness` | **25.162** | 10–40 | mm | Yes (DV1) | Core half-thickness | | beam_face_thickness | `beam_face_thickness` | **21.504** | 10–40 | mm | Yes (DV2) | Face sheet thickness | | holes_diameter | `holes_diameter` | 300 | 150–450 | mm | Yes (DV3) | ✅ G14 closed | | hole_count | `hole_count` (→ `Pattern_p7`) | 10 | 5–15 | integer | Yes (DV4) | Pattern parameter link | | beam_length | `beam_lenght` ⚠️ | 5,000 | Fixed | mm | No | **Typo in NX — no 'h'** | | beam_half_height | `beam_half_height` | **250** | — | mm | No | ✅ G12 closed | | beam_half_width | `beam_half_width` | **150** | — | mm | No | ✅ G13 closed | | hole_span | `p6` (→ `Pattern_p9`) | 4,000 | TBD | mm | Potential (G15) | Total span for hole distribution | ## Constraints - Max tip displacement: ≤ 20 mm (relaxed from 10mm — CEO approved 2026-02-13, dummy case) - Max von Mises stress: ≤ ~130 MPa (steel, conservative — Gap G9) - Mass tracked via NX expression **`p173`** (`body_property147.mass` [kg]) ## Baseline Performance — Confirmed (Introspection) | Metric | Value | Source | Confidence | |--------|-------|--------|------------| | Mass | **1,133.01 kg** | NX expression `p173`, CEO correction + binary introspection | ✅ High | | Tip displacement | **19.56 mm** (node 5161, Tz = −19.51 mm) | OP2 parse via pyNastran, SOL 101 baseline run 2026-02-10 | ✅ High | | Max von Mises stress | **117.48 MPa** | OP2 parse via pyNastran, CQUAD4 shell stress | ✅ High | | Material | **AISI Steel 1005** | `physicalmateriallibrary.xml` | ✅ High | | Density | **7.3 g/cm³** | KBS session | ✅ High | > ⚠️ **Mass history:** Intake reported ~974 kg → CEO corrected to 1,133.01 kg (`p173`). Discrepancy with intake likely due to different parameter state. Binary introspection confirms `p173: body_property147.mass` in kg. ## NX Expression Map — Full Introspection ### Design Variables | Expression | Value | Unit | Type | |-----------|-------|------|------| | `beam_face_thickness` | 21.504404775742785 | mm | Number — continuous | | `beam_half_core_thickness` | 25.162078968746705 | mm | Number — continuous | | `holes_diameter` | 300 | mm | Number — continuous | | `hole_count` | 10 | — | Integer (via `Pattern_p7`) | ### Fixed Geometry Parameters | Expression | Value | Unit | |-----------|-------|------| | `beam_half_height` | 250 | mm | | `beam_half_width` | 150 | mm | | `beam_lenght` | 5,000 | mm | ### Hole Pattern Expressions | Expression | Value/Formula | Notes | |-----------|--------------|-------| | `p6` | 4,000 mm | Hole span — potential DV | | `Pattern_p7` | → `hole_count` | Count link | | `Pattern_p8` | 444.444 mm | Computed spacing (span / (count-1)) | | `Pattern_p9` | → `p6` | Span link | | `Pattern_p10` | (linked) | | | `Pattern_p11` | 10 mm | | | `Pattern_p12` | 0 mm | | ### Mass Properties (Measure Body) | Expression | Formula | Unit | |-----------|---------|------| | `p170` | surface_area | mm² | | `p171` | volume | mm³ | | `p172` | center_of_mass | mm (point) | | **`p173`** | **mass** | **kg** | | `p174` | weight | N | | `p175` | density | kg/mm³ | ### Other | Expression | Value | Notes | |-----------|-------|-------| | `p4` | → `beam_lenght` | Alias | | `p119` | 4,000 mm | | | `p132` | 444.444 mm | Computed | | `p134` | 4,000 mm | | | `p135` | 4,000 mm | | | `p139` | 10 mm | | | `p141` | 0 mm | | ## Boundary Conditions — Confirmed (Gen 002) | BC | Location | Value | Source | |----|----------|-------|--------| | Fixed support | Left side (full edge) | All DOF constrained | ✅ KBS session | | Applied force | Right side (free end) | 10,000 kgf downward (−Y) | ✅ KBS session — "project requirement" | | Configuration | Cantilever | Left fixed, right loaded | ✅ KBS session | ## Mesh — Confirmed (Gen 002) | Property | Value | Source | |----------|-------|--------| | Element type | CQUAD4 (thin shell) | ✅ KBS session | | Element size | 33.7 mm (67.4/2) | ✅ KBS session | | Idealization | Promote body → mid-surface extraction | ✅ KBS session | ## Hole Geometry — Confirmed (Gen 002) | Property | Value | Notes | |----------|-------|-------| | Span | 4,000 mm (expression `p6`) | Total distribution length | | Start offset | 500 mm from beam start | Fixed requirement — not parametric | | End offset | 500 mm from beam end | Fixed requirement — not parametric | | Computed spacing | 444.444 mm (4000 / 9) | At baseline (10 holes) | | Collision check | Required at DV extremes | 15 × 450 mm in 4,000 mm → overlap | ## Model Files - NX Part: `Beam.prt` - FEM: `Beam_fem1.fem` - Idealized part: `Beam_fem1_i.prt` - Simulation: `Beam_sim1.sim` - Solver: NX Nastran SOL 101 (static structural) - **NX Version:** DesigncenterNX 2512 (Siemens rebranded NX → "DesigncenterNX") - **Install path:** `C:\Program Files\Siemens\DesigncenterNX2512` (on dalidou) ## First Results (2026-02-11) | Metric | Value | Notes | |--------|-------|-------| | Displacement | **17.93 mm** | At baseline-ish DVs | | Von Mises stress | **111.9 MPa** | At baseline-ish DVs | | Solve time | **~12 s/trial** | On dalidou (Windows) | | Mass extraction | Via `p173` expression | Journal writes `_temp_mass.txt` | > Both constraints violated at baseline (disp > 10mm). Optimization will need to find stiffer/heavier designs or relaxed constraints. ## Future Expansion - Material alternatives: Aluminum 6061, Stainless Steel ANSI 310 (per Antoine, KBS session) - `p6` (hole span) as additional design variable (pending decision G15) - Mesh refinement (Antoine: "Eventually we're going to be able to refine the element size") ## Decisions - 2026-02-08: Project received from Antoine - 2026-02-10: KBS sessions processed → Gen 002 KB update. BCs confirmed. - 2026-02-10: Binary introspection — all expression names/values confirmed. Mass = 1,133.01 kg. - 2026-02-11: NX version fixed (DesigncenterNX 2512), path resolution bugs fixed, iteration architecture finalized (backup/restore in-place), history DB added. First real solve results. ## Status Phase: **DOE re-run** — mass bug fixed, constraint relaxed, ready for clean DOE Generation: 004 Channel: #project-hydrotech-beam Last update: 2026-02-13 ### Solver Pipeline Status - ✅ NX journal solve working (DesigncenterNX 2512) - ✅ Mass extraction fixed — commit `580ed65` (MeasureManager after geometry rebuild, no more stale p173) - ✅ Displacement & stress extraction via pyNastran OP2 parsing - ✅ Iteration archival (params, results, OP2, F06) - ✅ History DB (SQLite + CSV, append-only, survives --clean) - ✅ Geometric pre-checks (hole overlap, web clearance) - ✅ Displacement constraint relaxed: 10mm → 20mm (DEC-HB-012) - 🔄 Pull fix on dalidou → test single trial → re-run full DOE ### DOE Phase 1 Results (pre-fix, 51 trials) - 39/51 solved, 12 geo-infeasible (hole overlap) - **0 fully feasible** at 10mm constraint (min displacement ~19.6mm) - **Mass = NaN on all trials** — extraction bug (now fixed) - Stress constraint met by several trials - With 20mm relaxation, many trials should now be feasible ### Development Workflow - **Git only** for development (git push/pull between server and dalidou) - **Syncthing paused** to avoid conflicts during active development - Resume Syncthing for production/delivery phases