19 b = geom.SceneBuilder()
20 plate = b.add_leaf(
"box", [N * 0.6, half, N * 0.6])
21 ni, nr, _, _ = b.encode()
22 ii = np.zeros((1, KI_I), dtype=np.int32); ir = np.zeros((1, KI_R))
23 ii[0] = (plate, -1); ir[0, 0:3] = (0.5 * N, 8.0, 0.5 * N); ir[0, 6] = 1.0; ir[0, 7] = 1.0
24 s = sdflow.Solver(N, N, N)
25 s.set_rho(1.0); s.set_mu(0.1); s.set_dt(2.0)
26 s.set_velocity_solver_params(60); s.set_pressure_solver_params(20)
27 s.set_pressure_multigrid(
True, levels=3)
28 s.set_scene(np.asarray(ni, np.int32), np.asarray(nr, float), ii.ravel(), ir.ravel(),
30 s.set_instance_motion(0, lin_vel=[U, 0.0, 0.0])
31 s.set_solid_from_scene(
True)
32 deg = np.asarray(s.moving_instance_degenerate_points())
35 umax = float(np.abs(np.asarray(s.get_u())).max())
36 return int(deg[0])
if deg.size
else -1, umax