auto: daily sync

This commit is contained in:
2026-02-20 08:00:17 +00:00
parent 176b75328f
commit c59072eff2
8 changed files with 26072 additions and 53179 deletions

View File

@@ -65,8 +65,8 @@ penalty = 1e4 × ((σ_max / σ_allow) 1)² if σ_max > σ_allow
| `gamma_stress` | 0.0 | 1.5 | — | FEA stress feedback gain |
| `R_0` | 10 | 100 | mm | Base hole influence radius |
| `R_edge` | 5 | 40 | mm | Edge influence radius |
| `s_min` | 8 | 20 | mm | Min cell size (densest) |
| `s_max` | 25 | 60 | mm | Max cell size (sparsest) |
| `s_min` | 15 | 35 | mm | Min cell size (densest) — manufacturing floor: 15 mm |
| `s_max` | 40 | 60 | mm | Max cell size (sparsest) — lower bound 40 guarantees s_min < s_max |
Fixed parameters (manufacturing constraints + math constants): see `optimization_engine/isogrid/study.py`.

View File

@@ -355,7 +355,18 @@ def make_objective(rm: TrialRetentionManager):
print(f" [Brain] Total pockets: {n_pockets_total}")
# ── 3b. Save per-trial figures (density, mesh, rib pattern) ──────────
# ── 3b. Degenerate check — prune near-solid trials early ─────────────
# If fewer than N_MIN_POCKETS are generated, the design is essentially a
# solid plate (likely all triangles rejected by area/fillet filter).
# Return a large penalty immediately — no point burning an NX license.
N_MIN_POCKETS = 8
if n_pockets_total < N_MIN_POCKETS:
print(f" [Brain] Degenerate trial: only {n_pockets_total} pockets "
f"(min={N_MIN_POCKETS}) — pruning before NX")
trial.set_user_attr("error", f"degenerate:{n_pockets_total}_pockets")
return 1e6
# ── 3d. Save per-trial figures (density, mesh, rib pattern) ──────────
t_fig = time.time()
n_figs = len(plot_trial_figures(sb_data, trial_dir))
print(f" [Plot] {n_figs} figures → trial_{trial_number:04d}/ ({time.time()-t_fig:.1f}s)")