Files
Atomizer/projects/hydrotech-beam/CONTEXT.md

172 lines
7.7 KiB
Markdown
Raw Normal View History

# 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 |
2026-02-11 08:00:20 +00:00
| 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
2026-02-14 08:00:22 +00:00
Phase: **DOE re-run** — mass bug fixed, constraint relaxed, ready for clean DOE
Generation: 004
Channel: #project-hydrotech-beam
2026-02-14 08:00:22 +00:00
Last update: 2026-02-13
### Solver Pipeline Status
- ✅ NX journal solve working (DesigncenterNX 2512)
2026-02-14 08:00:22 +00:00
- ✅ 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)
2026-02-14 08:00:22 +00:00
- ✅ 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