research: VIV driver — exact seed window, error status, no overwrite, bounded smoke flag
Seed quiet check reads states y_t, t in [n_seed - 5 T_n, n_seed); an exception sets status 'error: ...' before the report is written; an output directory that already holds report.json or steps.npy is refused; --max-steps gives a plumbing smoke that is never scored. Predeclare states the code's actual uniform-U fluid initial condition. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
f08b5e671f
commit
bb83b3476d
@@ -49,8 +49,10 @@ Claude, Grok and Astra at 1abfe954; implemented in research/viv_re150/.
|
||||
semantics: see the window section). Whether the
|
||||
measured force represents the interval's start, midpoint or end is not
|
||||
asserted; the one-step lag is declared, not corrected.
|
||||
- Initial state: fluid at rest except the uniform inlet; y_0 = v_0 = 0;
|
||||
F_last = 0 for the first step; geometry initialized at the declared centre.
|
||||
- Initial state: fluid initialized by `Simulation.initialize()` to the uniform
|
||||
inlet velocity U everywhere (the code's actual initial condition; the
|
||||
source gives no fluid initial condition), body at rest at the declared
|
||||
centre, y_0 = v_0 = 0, F_last = 0.
|
||||
- Structural update over one step with constant force F = F_last (exact
|
||||
harmonic solution, zeta = 0): y_e = F/K, w = 2 pi f_n,
|
||||
y^{n+1} = y_e + (y^n − y_e) cos w + (v^n / w) sin w,
|
||||
@@ -67,10 +69,11 @@ Clocks: lattice dt = 1; T_n = 1/f_n = 5,000 steps. Response cycles are
|
||||
counted from the measured signal; T_n is used only for the seed check.
|
||||
|
||||
- Start: body at rest at the declared centre (the only initial condition the
|
||||
source states), y_0 = v_0 = 0, F_last = 0; fluid at rest except the uniform
|
||||
inlet (our choice; the source gives no fluid initial condition).
|
||||
source states), y_0 = v_0 = 0, F_last = 0; fluid uniform at U (as
|
||||
initialized by the code; our choice, not the source's).
|
||||
- Seed (conditional, one time, declared): at step n_seed = 200,000
|
||||
(t = 40 T_n), if max |y| over steps [175,000, 200,000) is below .01 D, then
|
||||
(t = 40 T_n), if max |y_t| over states t in [175,000, 200,000) is below
|
||||
.01 D, then
|
||||
in that step, after the check and before the candidate update, set
|
||||
v_n += 2 pi f_n (.01 D) (F_last unchanged) and proceed normally; the
|
||||
geometry moves continuously through the update. `seed_applied`, step and
|
||||
|
||||
Reference in New Issue
Block a user