tuned pipeline to 60 fps

This commit is contained in:
ykcheungab
2026-06-14 20:58:46 +08:00
parent 30bebcd439
commit fbee1c37ed
12 changed files with 339 additions and 37 deletions
+16
View File
@@ -237,6 +237,22 @@ class PoissonSolver(object):
return self._cap_solver.solve(f, domain)
return self._sparse_solver.solve(f, domain)
def solve_masked_pair(self, f0, f1, mask, verbose=False):
"""Solve two masked RHS fields, using a batched sparse path when available."""
mask_arr = self._normalize_mask(mask, f0.shape)
if mask_arr is None:
return None, None
if f1.shape != f0.shape:
raise ValueError("Both masked RHS fields must have the same shape")
if not numpy.any(mask_arr):
empty = numpy.zeros_like(f0, dtype=numpy.float32)
return empty, empty.copy()
domain = self._get_or_build_domain(mask_arr)
if self.masked_config.method == "capfft":
return self._cap_solver.solve(f0, domain), self._cap_solver.solve(f1, domain)
return self._sparse_solver.solve_pair(f0, f1, domain)
def solve(self, f, verbose=False, mask=None):
"""Solve Poisson equation on the prepared grid.