auto: daily sync
This commit is contained in:
@@ -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)")
|
||||
|
||||
Reference in New Issue
Block a user