Files
Atomizer/projects/hydrotech-beam/CONTEXT.md
2026-02-15 08:00:21 +00:00

172 lines
7.8 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 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