|
FhSim
3.1.0
Marine systems simulation
|
| ID | 0120 |
| Class | BUG |
| Severity | 2 |
| Status | blocked |
Models: —
Found: 2026-10-24 review (doc/reviews/fhsim_fishery-2026-10-24, N4)
Decision needed: fhsim passes the run's start time to FinalSetup. Owner or fhsim feature.
ModelAssemblyService::CompleteSimObjectSetup (fhsim/src/engine/model/ModelAssemblyService.cpp:128) calls FinalSetup(0, ...) with a literal 0, not TStart. The fishery clocks (SampledSensor, AuvUndulateDiveControl, AuvUndulateMissionControl) are now moved to the T of FinalSetup (SampleClock::StartAt, fishery 3.1.6), which is correct once fhsim passes TStart. Until then a run with TStart = 1000 s still finds 10 001 sample periods due at its first accepted step and warns that the step is too coarse. AcceptedStep is first called after the first step, so the first call cannot tell the start time either.
A run with TStart other than 0 takes a burst of samples (sensors) or one evaluation (controllers) at its first step, and a false warning. No shipped input has TStart other than 0.
fhsim: pass the integrator's tStart to FinalSetup (and document it). No fishery change is then needed; SensorCtd::SeedHeldReading also reads that T.
AuvSampleClock.StartsAtTStart_N4 pins the clock; an end-to-end run with TStart = 1000 and a 10 Hz CTD would prove the fhsim side.
None for TStart = 0: StartAt(0) leaves the clock where it was.