body: stage motion-record uploads in an owned page-locked buffer
memcpy_htod_async needs page-locked host memory. MovingTables allocates one pinned FP64 buffer at construction (manager.py action pattern) and rewrites it only when the records change; every upload is followed by a stream sync in Simulation._run_moving before the next one, so no copy is in flight when it is reused. The advance test fixture now binds the real LBMStepper.step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
25cc5cfd68
commit
653fd997a6
2 files changed
+13
-4
No files matched your search
@@ -272,6 +272,8 @@ def advancing_simulation(monkeypatch, **tables):
|
||||
sim.stepper = SimpleNamespace(
|
||||
moving=Tables(writes, **tables), blocked=None,
|
||||
_step=lambda n, advance=False, **k: writes.append(("step", n, advance)))
|
||||
from CelerisLab.lbm.stepper import LBMStepper
|
||||
sim.stepper.step = LBMStepper.step.__get__(sim.stepper) # real public entry
|
||||
sim._moving_tables = sim.stepper.moving
|
||||
return sim, writes, sim.bodies.objects[0].motion
|
||||
|
||||
|
||||
Reference in new issue
Block a user