Files
Atomizer/projects/hydrotech-beam/CONTEXT.md
Antoine 580ed65a26 fix: generic mass extraction in solve_simulation.py (beam + bracket)
- Extract mass RIGHT AFTER geometry rebuild while part is work part
- Replace unreliable p173 expression lookup with MeasureManager
- Skip re-extraction if mass already captured during rebuild
- Relax displacement constraint to 20mm (DEC-HB-012, CEO approved)

Root cause: journal hardcoded M1_Blank for bracket, failed silently on Beam.prt
Fix by: NX Expert + Manager diagnosis
2026-02-13 02:16:39 +00:00

164 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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** | 1040 | mm | Yes (DV1) | Core half-thickness |
| beam_face_thickness | `beam_face_thickness` | **21.504** | 1040 | mm | Yes (DV2) | Face sheet thickness |
| holes_diameter | `holes_diameter` | 300 | 150450 | mm | Yes (DV3) | ✅ G14 closed |
| hole_count | `hole_count` (→ `Pattern_p7`) | 10 | 515 | 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 execution** — solver pipeline operational, first results obtained
Generation: 003
Channel: #project-hydrotech-beam
Last update: 2026-02-11
### Solver Pipeline Status
- ✅ NX journal solve working (DesigncenterNX 2512)
- ✅ Mass extraction via `p173` expression
- ✅ 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)
- 🔄 Full 51-trial DOE run pending
### 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