Note
Go to the end to download the full example code.
A precessing vortex pair, animated¶
Animate a vortex pair precessing around each other.
One grid, sampled as it propagates. See vortex_precession_benchmark.py for the timings across grid sizes.
The step is fixed rather than left to the solver, and the reason is the
sampling rather than the propagation: taking a frame every SAVE_EVERY
steps only spaces the frames evenly in z if every step is the same length.
With an adaptive step the frames would land wherever the step happened to be,
which is not a movie of the precession.
/home/runner/work/NLSE/NLSE/NLSE/solvers/nlse.py:182: UserWarning: The MLX backend is not installed here, so CPU will be used instead — the fastest one available. Install mlx to use MLX, or pass backend='CPU' to silence this.
self._backend: Backend = get_backend(backend, grid_size=(NX, NY))
/home/runner/work/NLSE/NLSE/NLSE/solvers/nlse.py:380: UserWarning: delta_z=2.18e-04 exceeds split-step accuracy limit (8.58e-05). Reducing to 7.72e-05.
delta_z = self._capped_delta_z(delta_z, A, method)
Propagation: 0%| | 0.00/100 [00:00<?, ?%/s]
Propagation: 0%| | 0.12/100 [00:00<00:00, 103%/s]
Propagation: 0%| | 0.25/100 [00:00<00:01, 57.8%/s]
Propagation: 0%| | 0.37/100 [00:00<00:01, 67.9%/s]
Propagation: 0%| | 0.49/100 [00:00<00:01, 66.2%/s]
Propagation: 1%| | 0.62/100 [00:00<00:01, 59.0%/s]
Propagation: 1%| | 0.74/100 [00:00<00:01, 63.1%/s]
Propagation: 1%| | 0.86/100 [00:00<00:01, 60.3%/s]
Propagation: 1%| | 0.99/100 [00:00<00:01, 62.1%/s]
Propagation: 1%| | 1.11/100 [00:00<00:01, 60.0%/s]
Propagation: 1%| | 1.23/100 [00:00<00:01, 61.1%/s]
Propagation: 1%|▏ | 1.36/100 [00:00<00:01, 62.4%/s]
Propagation: 1%|▏ | 1.48/100 [00:00<00:01, 63.7%/s]
Propagation: 2%|▏ | 1.60/100 [00:00<00:01, 64.7%/s]
Propagation: 2%|▏ | 1.73/100 [00:00<00:01, 65.7%/s]
Propagation: 2%|▏ | 1.85/100 [00:00<00:01, 66.5%/s]
Propagation: 2%|▏ | 1.97/100 [00:00<00:01, 66.7%/s]
Propagation: 2%|▏ | 2.09/100 [00:00<00:01, 67.5%/s]
Propagation: 2%|▏ | 2.22/100 [00:00<00:01, 68.0%/s]
Propagation: 2%|▏ | 2.34/100 [00:00<00:01, 68.5%/s]
Propagation: 2%|▏ | 2.46/100 [00:00<00:01, 68.9%/s]
Propagation: 3%|▎ | 2.59/100 [00:00<00:01, 69.4%/s]
Propagation: 3%|▎ | 2.71/100 [00:00<00:01, 70.0%/s]
Propagation: 3%|▎ | 2.83/100 [00:00<00:01, 70.1%/s]
Propagation: 3%|▎ | 2.96/100 [00:00<00:01, 69.5%/s]
Propagation: 3%|▎ | 3.08/100 [00:00<00:01, 70.0%/s]
Propagation: 3%|▎ | 3.20/100 [00:00<00:01, 70.3%/s]
Propagation: 3%|▎ | 3.33/100 [00:00<00:01, 70.7%/s]
Propagation: 3%|▎ | 3.45/100 [00:00<00:01, 71.2%/s]
Propagation: 4%|▎ | 3.57/100 [00:00<00:01, 71.6%/s]
Propagation: 4%|▎ | 3.70/100 [00:00<00:01, 72.0%/s]
Propagation: 4%|▍ | 3.82/100 [00:00<00:01, 72.2%/s]
Propagation: 4%|▍ | 3.94/100 [00:00<00:01, 72.6%/s]
Propagation: 4%|▍ | 4.07/100 [00:00<00:01, 72.7%/s]
Propagation: 4%|▍ | 4.19/100 [00:00<00:01, 73.1%/s]
Propagation: 4%|▍ | 4.31/100 [00:00<00:01, 73.0%/s]
Propagation: 4%|▍ | 4.44/100 [00:00<00:01, 73.2%/s]
Propagation: 5%|▍ | 4.56/100 [00:00<00:01, 73.4%/s]
Propagation: 5%|▍ | 4.68/100 [00:00<00:01, 73.6%/s]
Propagation: 5%|▍ | 4.81/100 [00:00<00:01, 73.8%/s]
Propagation: 5%|▍ | 4.93/100 [00:00<00:01, 74.0%/s]
Propagation: 5%|▌ | 5.05/100 [00:00<00:01, 74.1%/s]
Propagation: 5%|▌ | 5.18/100 [00:00<00:01, 74.3%/s]
Propagation: 5%|▌ | 5.30/100 [00:00<00:01, 74.5%/s]
Propagation: 5%|▌ | 5.42/100 [00:00<00:01, 74.6%/s]
Propagation: 6%|▌ | 5.54/100 [00:00<00:01, 74.6%/s]
Propagation: 6%|▌ | 5.67/100 [00:00<00:01, 74.6%/s]
Propagation: 6%|▌ | 5.79/100 [00:00<00:01, 74.7%/s]
Propagation: 6%|▌ | 5.91/100 [00:00<00:01, 74.8%/s]
Propagation: 6%|▌ | 6.04/100 [00:00<00:01, 74.8%/s]
Propagation: 6%|▌ | 6.16/100 [00:00<00:01, 74.9%/s]
Propagation: 6%|▋ | 6.28/100 [00:00<00:01, 74.9%/s]
Propagation: 6%|▋ | 6.41/100 [00:00<00:01, 75.1%/s]
Propagation: 7%|▋ | 6.53/100 [00:00<00:01, 75.1%/s]
Propagation: 7%|▋ | 6.65/100 [00:00<00:01, 75.1%/s]
Propagation: 7%|▋ | 6.78/100 [00:00<00:01, 75.2%/s]
Propagation: 7%|▋ | 6.90/100 [00:00<00:01, 75.3%/s]
Propagation: 7%|▋ | 7.02/100 [00:00<00:01, 75.4%/s]
Propagation: 7%|▋ | 7.15/100 [00:00<00:01, 75.5%/s]
Propagation: 7%|▋ | 7.27/100 [00:00<00:01, 75.6%/s]
Propagation: 7%|▋ | 7.39/100 [00:00<00:01, 75.5%/s]
Propagation: 8%|▊ | 7.52/100 [00:00<00:01, 75.6%/s]
Propagation: 8%|▊ | 7.64/100 [00:00<00:01, 75.7%/s]
Propagation: 8%|▊ | 7.76/100 [00:00<00:01, 75.7%/s]
Propagation: 8%|▊ | 7.89/100 [00:00<00:01, 75.6%/s]
Propagation: 8%|▊ | 8.01/100 [00:00<00:01, 75.7%/s]
Propagation: 8%|▊ | 8.13/100 [00:00<00:01, 75.8%/s]
Propagation: 8%|▊ | 8.26/100 [00:00<00:01, 75.8%/s]
Propagation: 8%|▊ | 8.38/100 [00:00<00:01, 75.8%/s]
Propagation: 9%|▊ | 8.50/100 [00:00<00:01, 75.9%/s]
Propagation: 9%|▊ | 8.63/100 [00:00<00:01, 75.9%/s]
Propagation: 9%|▊ | 8.75/100 [00:00<00:01, 76.0%/s]
Propagation: 9%|▉ | 8.87/100 [00:00<00:01, 75.9%/s]
Propagation: 9%|▉ | 9.00/100 [00:00<00:01, 75.9%/s]
Propagation: 9%|▉ | 9.12/100 [00:00<00:01, 76.0%/s]
Propagation: 9%|▉ | 9.24/100 [00:00<00:01, 75.6%/s]
Propagation: 9%|▉ | 9.36/100 [00:00<00:01, 75.7%/s]
Propagation: 9%|▉ | 9.49/100 [00:00<00:01, 75.6%/s]
Propagation: 10%|▉ | 9.61/100 [00:00<00:01, 75.7%/s]
Propagation: 10%|▉ | 9.73/100 [00:00<00:01, 75.7%/s]
Propagation: 10%|▉ | 9.86/100 [00:00<00:01, 75.7%/s]
Propagation: 10%|▉ | 9.98/100 [00:00<00:01, 75.7%/s]
Propagation: 10%|█ | 10.1/100 [00:00<00:01, 75.8%/s]
Propagation: 10%|█ | 10.2/100 [00:00<00:01, 75.8%/s]
Propagation: 10%|█ | 10.4/100 [00:00<00:01, 75.9%/s]
Propagation: 10%|█ | 10.5/100 [00:00<00:01, 75.9%/s]
Propagation: 11%|█ | 10.6/100 [00:00<00:01, 75.9%/s]
Propagation: 11%|█ | 10.7/100 [00:00<00:01, 75.9%/s]
Propagation: 11%|█ | 10.8/100 [00:00<00:01, 75.9%/s]
Propagation: 11%|█ | 11.0/100 [00:00<00:01, 75.9%/s]
Propagation: 11%|█ | 11.1/100 [00:00<00:01, 75.8%/s]
Propagation: 11%|█ | 11.2/100 [00:00<00:01, 75.8%/s]
Propagation: 11%|█▏ | 11.3/100 [00:00<00:01, 75.9%/s]
Propagation: 11%|█▏ | 11.5/100 [00:00<00:01, 75.9%/s]
Propagation: 12%|█▏ | 11.6/100 [00:00<00:01, 76.0%/s]
Propagation: 12%|█▏ | 11.7/100 [00:00<00:01, 75.9%/s]
Propagation: 12%|█▏ | 11.8/100 [00:00<00:01, 76.0%/s]
Propagation: 12%|█▏ | 12.0/100 [00:00<00:01, 76.0%/s]
Propagation: 12%|█▏ | 12.1/100 [00:00<00:01, 76.1%/s]
Propagation: 12%|█▏ | 12.2/100 [00:00<00:01, 76.1%/s]
Propagation: 12%|█▏ | 12.3/100 [00:00<00:01, 76.1%/s]
Propagation: 12%|█▏ | 12.4/100 [00:00<00:01, 76.2%/s]
Propagation: 13%|█▎ | 12.6/100 [00:00<00:01, 76.2%/s]
Propagation: 13%|█▎ | 12.7/100 [00:00<00:01, 76.0%/s]
Propagation: 13%|█▎ | 12.8/100 [00:00<00:01, 76.0%/s]
Propagation: 13%|█▎ | 12.9/100 [00:00<00:01, 76.1%/s]
Propagation: 13%|█▎ | 13.1/100 [00:00<00:01, 76.2%/s]
Propagation: 13%|█▎ | 13.2/100 [00:00<00:01, 76.2%/s]
Propagation: 13%|█▎ | 13.3/100 [00:00<00:01, 76.3%/s]
Propagation: 13%|█▎ | 13.4/100 [00:00<00:01, 76.2%/s]
Propagation: 14%|█▎ | 13.6/100 [00:00<00:01, 76.2%/s]
Propagation: 14%|█▎ | 13.7/100 [00:00<00:01, 76.2%/s]
Propagation: 14%|█▍ | 13.8/100 [00:00<00:01, 76.3%/s]
Propagation: 14%|█▍ | 13.9/100 [00:00<00:01, 76.3%/s]
Propagation: 14%|█▍ | 14.0/100 [00:00<00:01, 76.4%/s]
Propagation: 14%|█▍ | 14.2/100 [00:00<00:01, 76.4%/s]
Propagation: 14%|█▍ | 14.3/100 [00:00<00:01, 76.4%/s]
Propagation: 14%|█▍ | 14.4/100 [00:00<00:01, 76.5%/s]
Propagation: 15%|█▍ | 14.5/100 [00:00<00:01, 76.6%/s]
Propagation: 15%|█▍ | 14.7/100 [00:00<00:01, 76.7%/s]
Propagation: 15%|█▍ | 14.8/100 [00:00<00:01, 76.8%/s]
Propagation: 15%|█▍ | 14.9/100 [00:00<00:01, 76.8%/s]
Propagation: 15%|█▌ | 15.0/100 [00:00<00:01, 76.8%/s]
Propagation: 15%|█▌ | 15.2/100 [00:00<00:01, 76.8%/s]
Propagation: 15%|█▌ | 15.3/100 [00:00<00:01, 76.9%/s]
Propagation: 15%|█▌ | 15.4/100 [00:00<00:01, 76.9%/s]
Propagation: 16%|█▌ | 15.5/100 [00:00<00:01, 77.0%/s]
Propagation: 16%|█▌ | 15.6/100 [00:00<00:01, 77.0%/s]
Propagation: 16%|█▌ | 15.8/100 [00:00<00:01, 77.0%/s]
Propagation: 16%|█▌ | 15.9/100 [00:00<00:01, 77.0%/s]
Propagation: 16%|█▌ | 16.0/100 [00:00<00:01, 77.0%/s]
Propagation: 16%|█▌ | 16.1/100 [00:00<00:01, 77.0%/s]
Propagation: 16%|█▋ | 16.3/100 [00:00<00:01, 77.0%/s]
Propagation: 16%|█▋ | 16.4/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 16.5/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 16.6/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 16.8/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 16.9/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 17.0/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 17.1/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 17.3/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 17.4/100 [00:00<00:01, 77.0%/s]
Propagation: 17%|█▋ | 17.5/100 [00:00<00:01, 77.0%/s]
Propagation: 18%|█▊ | 17.6/100 [00:00<00:01, 76.9%/s]
Propagation: 18%|█▊ | 17.7/100 [00:00<00:01, 77.0%/s]
Propagation: 18%|█▊ | 17.9/100 [00:00<00:01, 76.9%/s]
Propagation: 18%|█▊ | 18.0/100 [00:00<00:01, 76.9%/s]
Propagation: 18%|█▊ | 18.1/100 [00:00<00:01, 76.9%/s]
Propagation: 18%|█▊ | 18.2/100 [00:00<00:01, 76.9%/s]
Propagation: 18%|█▊ | 18.4/100 [00:00<00:01, 76.9%/s]
Propagation: 18%|█▊ | 18.5/100 [00:00<00:01, 76.9%/s]
Propagation: 19%|█▊ | 18.6/100 [00:00<00:01, 76.9%/s]
Propagation: 19%|█▊ | 18.7/100 [00:00<00:01, 76.9%/s]
Propagation: 19%|█▉ | 18.9/100 [00:00<00:01, 76.9%/s]
Propagation: 19%|█▉ | 19.0/100 [00:00<00:01, 76.9%/s]
Propagation: 19%|█▉ | 19.1/100 [00:00<00:01, 76.9%/s]
Propagation: 19%|█▉ | 19.2/100 [00:00<00:01, 76.9%/s]
Propagation: 19%|█▉ | 19.3/100 [00:00<00:01, 76.9%/s]
Propagation: 19%|█▉ | 19.5/100 [00:00<00:01, 77.0%/s]
Propagation: 20%|█▉ | 19.6/100 [00:00<00:01, 77.1%/s]
Propagation: 20%|█▉ | 19.7/100 [00:00<00:01, 77.1%/s]
Propagation: 20%|█▉ | 19.8/100 [00:00<00:01, 77.2%/s]
Propagation: 20%|█▉ | 20.0/100 [00:00<00:01, 77.3%/s]
Propagation: 20%|██ | 20.1/100 [00:00<00:01, 77.3%/s]
Propagation: 20%|██ | 20.2/100 [00:00<00:01, 77.2%/s]
Propagation: 20%|██ | 20.3/100 [00:00<00:01, 77.2%/s]
Propagation: 20%|██ | 20.5/100 [00:00<00:01, 77.2%/s]
Propagation: 21%|██ | 20.6/100 [00:00<00:01, 77.3%/s]
Propagation: 21%|██ | 20.7/100 [00:00<00:01, 77.3%/s]
Propagation: 21%|██ | 20.8/100 [00:00<00:01, 77.3%/s]
Propagation: 21%|██ | 20.9/100 [00:00<00:01, 77.1%/s]
Propagation: 21%|██ | 21.1/100 [00:00<00:01, 77.2%/s]
Propagation: 21%|██ | 21.2/100 [00:00<00:01, 77.3%/s]
Propagation: 21%|██▏ | 21.3/100 [00:00<00:01, 77.0%/s]
Propagation: 21%|██▏ | 21.4/100 [00:00<00:01, 77.0%/s]
Propagation: 22%|██▏ | 21.6/100 [00:00<00:01, 77.0%/s]
Propagation: 22%|██▏ | 21.7/100 [00:00<00:01, 77.0%/s]
Propagation: 22%|██▏ | 21.8/100 [00:00<00:01, 77.0%/s]
Propagation: 22%|██▏ | 21.9/100 [00:00<00:01, 77.0%/s]
Propagation: 22%|██▏ | 22.1/100 [00:00<00:01, 77.0%/s]
Propagation: 22%|██▏ | 22.2/100 [00:00<00:01, 77.0%/s]
Propagation: 22%|██▏ | 22.3/100 [00:00<00:01, 77.0%/s]
Propagation: 22%|██▏ | 22.4/100 [00:00<00:01, 77.0%/s]
Propagation: 23%|██▎ | 22.5/100 [00:00<00:01, 77.0%/s]
Propagation: 23%|██▎ | 22.7/100 [00:00<00:01, 77.0%/s]
Propagation: 23%|██▎ | 22.8/100 [00:00<00:01, 76.9%/s]
Propagation: 23%|██▎ | 22.9/100 [00:00<00:01, 76.9%/s]
Propagation: 23%|██▎ | 23.0/100 [00:00<00:01, 76.9%/s]
Propagation: 23%|██▎ | 23.2/100 [00:00<00:00, 76.9%/s]
Propagation: 23%|██▎ | 23.3/100 [00:00<00:00, 76.9%/s]
Propagation: 23%|██▎ | 23.4/100 [00:00<00:00, 76.9%/s]
Propagation: 24%|██▎ | 23.5/100 [00:00<00:00, 76.9%/s]
Propagation: 24%|██▎ | 23.7/100 [00:00<00:00, 76.9%/s]
Propagation: 24%|██▍ | 23.8/100 [00:00<00:00, 76.9%/s]
Propagation: 24%|██▍ | 23.9/100 [00:00<00:00, 76.9%/s]
Propagation: 24%|██▍ | 24.0/100 [00:00<00:00, 76.9%/s]
Propagation: 24%|██▍ | 24.2/100 [00:00<00:00, 76.9%/s]
Propagation: 24%|██▍ | 24.3/100 [00:00<00:00, 76.9%/s]
Propagation: 24%|██▍ | 24.4/100 [00:00<00:00, 76.9%/s]
Propagation: 25%|██▍ | 24.5/100 [00:00<00:00, 76.9%/s]
Propagation: 25%|██▍ | 24.6/100 [00:00<00:00, 76.9%/s]
Propagation: 25%|██▍ | 24.8/100 [00:00<00:00, 76.9%/s]
Propagation: 25%|██▍ | 24.9/100 [00:00<00:00, 76.9%/s]
Propagation: 25%|██▌ | 25.0/100 [00:00<00:00, 76.9%/s]
Propagation: 25%|██▌ | 25.1/100 [00:00<00:00, 76.9%/s]
Propagation: 25%|██▌ | 25.3/100 [00:00<00:00, 76.9%/s]
Propagation: 25%|██▌ | 25.4/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▌ | 25.5/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▌ | 25.6/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▌ | 25.8/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▌ | 25.9/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▌ | 26.0/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▌ | 26.1/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▌ | 26.2/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▋ | 26.4/100 [00:00<00:00, 76.9%/s]
Propagation: 26%|██▋ | 26.5/100 [00:00<00:00, 76.9%/s]
Propagation: 27%|██▋ | 26.6/100 [00:00<00:00, 76.9%/s]
Propagation: 27%|██▋ | 26.7/100 [00:00<00:00, 76.9%/s]
Propagation: 27%|██▋ | 26.9/100 [00:00<00:00, 76.9%/s]
Propagation: 27%|██▋ | 27.0/100 [00:00<00:00, 76.8%/s]
Propagation: 27%|██▋ | 27.1/100 [00:00<00:00, 76.9%/s]
Propagation: 27%|██▋ | 27.2/100 [00:00<00:00, 76.9%/s]
Propagation: 27%|██▋ | 27.4/100 [00:00<00:00, 76.8%/s]
Propagation: 27%|██▋ | 27.5/100 [00:00<00:00, 76.8%/s]
Propagation: 28%|██▊ | 27.6/100 [00:00<00:00, 76.8%/s]
Propagation: 28%|██▊ | 27.7/100 [00:00<00:00, 76.8%/s]
Propagation: 28%|██▊ | 27.8/100 [00:00<00:00, 76.8%/s]
Propagation: 28%|██▊ | 28.0/100 [00:00<00:00, 76.8%/s]
Propagation: 28%|██▊ | 28.1/100 [00:00<00:00, 76.8%/s]
Propagation: 28%|██▊ | 28.2/100 [00:00<00:00, 76.8%/s]
Propagation: 28%|██▊ | 28.3/100 [00:00<00:00, 76.8%/s]
Propagation: 28%|██▊ | 28.5/100 [00:00<00:00, 76.8%/s]
Propagation: 29%|██▊ | 28.6/100 [00:00<00:00, 76.8%/s]
Propagation: 29%|██▊ | 28.7/100 [00:00<00:00, 76.8%/s]
Propagation: 29%|██▉ | 28.8/100 [00:00<00:00, 76.8%/s]
Propagation: 29%|██▉ | 29.0/100 [00:00<00:00, 76.8%/s]
Propagation: 29%|██▉ | 29.1/100 [00:00<00:00, 76.8%/s]
Propagation: 29%|██▉ | 29.2/100 [00:00<00:00, 76.8%/s]
Propagation: 29%|██▉ | 29.3/100 [00:00<00:00, 76.8%/s]
Propagation: 29%|██▉ | 29.5/100 [00:00<00:00, 76.8%/s]
Propagation: 30%|██▉ | 29.6/100 [00:00<00:00, 76.8%/s]
Propagation: 30%|██▉ | 29.7/100 [00:00<00:00, 76.8%/s]
Propagation: 30%|██▉ | 29.8/100 [00:00<00:00, 76.8%/s]
Propagation: 30%|██▉ | 29.9/100 [00:00<00:00, 76.8%/s]
Propagation: 30%|███ | 30.1/100 [00:00<00:00, 76.8%/s]
Propagation: 30%|███ | 30.2/100 [00:00<00:00, 76.8%/s]
Propagation: 30%|███ | 30.3/100 [00:00<00:00, 76.8%/s]
Propagation: 30%|███ | 30.4/100 [00:00<00:00, 76.8%/s]
Propagation: 31%|███ | 30.6/100 [00:00<00:00, 76.8%/s]
Propagation: 31%|███ | 30.7/100 [00:00<00:00, 76.8%/s]
Propagation: 31%|███ | 30.8/100 [00:00<00:00, 76.8%/s]
Propagation: 31%|███ | 30.9/100 [00:00<00:00, 76.8%/s]
Propagation: 31%|███ | 31.1/100 [00:00<00:00, 76.8%/s]
Propagation: 31%|███ | 31.2/100 [00:00<00:00, 76.8%/s]
Propagation: 31%|███▏ | 31.3/100 [00:00<00:00, 76.8%/s]
Propagation: 31%|███▏ | 31.4/100 [00:00<00:00, 76.8%/s]
Propagation: 32%|███▏ | 31.5/100 [00:00<00:00, 76.8%/s]
Propagation: 32%|███▏ | 31.7/100 [00:00<00:00, 76.8%/s]
Propagation: 32%|███▏ | 31.8/100 [00:00<00:00, 76.8%/s]
Propagation: 32%|███▏ | 31.9/100 [00:00<00:00, 76.8%/s]
Propagation: 32%|███▏ | 32.0/100 [00:00<00:00, 76.8%/s]
Propagation: 32%|███▏ | 32.2/100 [00:00<00:00, 76.8%/s]
Propagation: 32%|███▏ | 32.3/100 [00:00<00:00, 76.8%/s]
Propagation: 32%|███▏ | 32.4/100 [00:00<00:00, 76.8%/s]
Propagation: 33%|███▎ | 32.5/100 [00:00<00:00, 76.8%/s]
Propagation: 33%|███▎ | 32.7/100 [00:00<00:00, 76.8%/s]
Propagation: 33%|███▎ | 32.8/100 [00:00<00:00, 76.8%/s]
Propagation: 33%|███▎ | 32.9/100 [00:00<00:00, 76.8%/s]
Propagation: 33%|███▎ | 33.0/100 [00:00<00:00, 76.8%/s]
Propagation: 33%|███▎ | 33.1/100 [00:00<00:00, 76.8%/s]
Propagation: 33%|███▎ | 33.3/100 [00:00<00:00, 76.8%/s]
Propagation: 33%|███▎ | 33.4/100 [00:00<00:00, 76.8%/s]
Propagation: 34%|███▎ | 33.5/100 [00:00<00:00, 76.8%/s]
Propagation: 34%|███▎ | 33.6/100 [00:00<00:00, 76.8%/s]
Propagation: 34%|███▍ | 33.8/100 [00:00<00:00, 76.8%/s]
Propagation: 34%|███▍ | 33.9/100 [00:00<00:00, 76.8%/s]
Propagation: 34%|███▍ | 34.0/100 [00:00<00:00, 76.8%/s]
Propagation: 34%|███▍ | 34.1/100 [00:00<00:00, 76.8%/s]
Propagation: 34%|███▍ | 34.3/100 [00:00<00:00, 76.8%/s]
Propagation: 34%|███▍ | 34.4/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▍ | 34.5/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▍ | 34.6/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▍ | 34.7/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▍ | 34.9/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▍ | 35.0/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▌ | 35.1/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▌ | 35.2/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▌ | 35.4/100 [00:00<00:00, 76.8%/s]
Propagation: 35%|███▌ | 35.5/100 [00:00<00:00, 76.8%/s]
Propagation: 36%|███▌ | 35.6/100 [00:00<00:00, 76.8%/s]
Propagation: 36%|███▌ | 35.7/100 [00:00<00:00, 76.8%/s]
Propagation: 36%|███▌ | 35.9/100 [00:00<00:00, 76.8%/s]
Propagation: 36%|███▌ | 36.0/100 [00:00<00:00, 76.8%/s]
Propagation: 36%|███▌ | 36.1/100 [00:00<00:00, 76.8%/s]
Propagation: 36%|███▌ | 36.2/100 [00:00<00:00, 76.8%/s]
Propagation: 36%|███▋ | 36.4/100 [00:00<00:00, 76.8%/s]
Propagation: 36%|███▋ | 36.5/100 [00:00<00:00, 76.8%/s]
Propagation: 37%|███▋ | 36.6/100 [00:00<00:00, 76.8%/s]
Propagation: 37%|███▋ | 36.7/100 [00:00<00:00, 76.8%/s]
Propagation: 37%|███▋ | 36.8/100 [00:00<00:00, 76.8%/s]
Propagation: 37%|███▋ | 37.0/100 [00:00<00:00, 76.8%/s]
Propagation: 37%|███▋ | 37.1/100 [00:00<00:00, 76.8%/s]
Propagation: 37%|███▋ | 37.2/100 [00:00<00:00, 76.8%/s]
Propagation: 37%|███▋ | 37.3/100 [00:00<00:00, 76.8%/s]
Propagation: 37%|███▋ | 37.5/100 [00:00<00:00, 76.8%/s]
Propagation: 38%|███▊ | 37.6/100 [00:00<00:00, 76.8%/s]
Propagation: 38%|███▊ | 37.7/100 [00:00<00:00, 76.8%/s]
Propagation: 38%|███▊ | 37.8/100 [00:00<00:00, 76.8%/s]
Propagation: 38%|███▊ | 38.0/100 [00:00<00:00, 76.8%/s]
Propagation: 38%|███▊ | 38.1/100 [00:00<00:00, 76.8%/s]
Propagation: 38%|███▊ | 38.2/100 [00:00<00:00, 76.8%/s]
Propagation: 38%|███▊ | 38.3/100 [00:00<00:00, 76.8%/s]
Propagation: 38%|███▊ | 38.4/100 [00:00<00:00, 76.8%/s]
Propagation: 39%|███▊ | 38.6/100 [00:00<00:00, 76.8%/s]
Propagation: 39%|███▊ | 38.7/100 [00:00<00:00, 76.8%/s]
Propagation: 39%|███▉ | 38.8/100 [00:00<00:00, 76.8%/s]
Propagation: 39%|███▉ | 38.9/100 [00:00<00:00, 76.8%/s]
Propagation: 39%|███▉ | 39.1/100 [00:00<00:00, 76.8%/s]
Propagation: 39%|███▉ | 39.2/100 [00:00<00:00, 76.8%/s]
Propagation: 39%|███▉ | 39.3/100 [00:00<00:00, 76.8%/s]
Propagation: 39%|███▉ | 39.4/100 [00:00<00:00, 76.8%/s]
Propagation: 40%|███▉ | 39.6/100 [00:00<00:00, 76.8%/s]
Propagation: 40%|███▉ | 39.7/100 [00:00<00:00, 76.8%/s]
Propagation: 40%|███▉ | 39.8/100 [00:00<00:00, 76.8%/s]
Propagation: 40%|███▉ | 39.9/100 [00:00<00:00, 76.8%/s]
Propagation: 40%|████ | 40.0/100 [00:00<00:00, 76.8%/s]
Propagation: 40%|████ | 40.2/100 [00:00<00:00, 76.8%/s]
Propagation: 40%|████ | 40.3/100 [00:00<00:00, 76.8%/s]
Propagation: 40%|████ | 40.4/100 [00:00<00:00, 76.8%/s]
Propagation: 41%|████ | 40.5/100 [00:00<00:00, 76.8%/s]
Propagation: 41%|████ | 40.7/100 [00:00<00:00, 76.8%/s]
Propagation: 41%|████ | 40.8/100 [00:00<00:00, 76.8%/s]
Propagation: 41%|████ | 40.9/100 [00:00<00:00, 76.8%/s]
Propagation: 41%|████ | 41.0/100 [00:00<00:00, 76.8%/s]
Propagation: 41%|████ | 41.2/100 [00:00<00:00, 76.8%/s]
Propagation: 41%|████▏ | 41.3/100 [00:00<00:00, 76.8%/s]
Propagation: 41%|████▏ | 41.4/100 [00:00<00:00, 76.8%/s]
Propagation: 42%|████▏ | 41.5/100 [00:00<00:00, 76.8%/s]
Propagation: 42%|████▏ | 41.6/100 [00:00<00:00, 76.8%/s]
Propagation: 42%|████▏ | 41.8/100 [00:00<00:00, 76.8%/s]
Propagation: 42%|████▏ | 41.9/100 [00:00<00:00, 76.8%/s]
Propagation: 42%|████▏ | 42.0/100 [00:00<00:00, 76.8%/s]
Propagation: 42%|████▏ | 42.1/100 [00:00<00:00, 76.8%/s]
Propagation: 42%|████▏ | 42.3/100 [00:00<00:00, 76.8%/s]
Propagation: 42%|████▏ | 42.4/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 42.5/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 42.6/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 42.8/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 42.9/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 43.0/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 43.1/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 43.3/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 43.4/100 [00:00<00:00, 76.8%/s]
Propagation: 43%|████▎ | 43.5/100 [00:00<00:00, 76.8%/s]
Propagation: 44%|████▎ | 43.6/100 [00:00<00:00, 76.8%/s]
Propagation: 44%|████▎ | 43.7/100 [00:00<00:00, 76.8%/s]
Propagation: 44%|████▍ | 43.9/100 [00:00<00:00, 76.8%/s]
Propagation: 44%|████▍ | 44.0/100 [00:00<00:00, 76.8%/s]
Propagation: 44%|████▍ | 44.1/100 [00:00<00:00, 76.8%/s]
Propagation: 44%|████▍ | 44.2/100 [00:00<00:00, 76.5%/s]
Propagation: 44%|████▍ | 44.4/100 [00:00<00:00, 76.5%/s]
Propagation: 44%|████▍ | 44.5/100 [00:00<00:00, 76.6%/s]
Propagation: 45%|████▍ | 44.6/100 [00:00<00:00, 76.6%/s]
Propagation: 45%|████▍ | 44.7/100 [00:00<00:00, 76.6%/s]
Propagation: 45%|████▍ | 44.9/100 [00:00<00:00, 76.6%/s]
Propagation: 45%|████▍ | 45.0/100 [00:00<00:00, 76.6%/s]
Propagation: 45%|████▌ | 45.1/100 [00:00<00:00, 76.7%/s]
Propagation: 45%|████▌ | 45.2/100 [00:00<00:00, 76.7%/s]
Propagation: 45%|████▌ | 45.3/100 [00:00<00:00, 76.7%/s]
Propagation: 45%|████▌ | 45.5/100 [00:00<00:00, 76.7%/s]
Propagation: 46%|████▌ | 45.6/100 [00:00<00:00, 76.8%/s]
Propagation: 46%|████▌ | 45.7/100 [00:00<00:00, 76.8%/s]
Propagation: 46%|████▌ | 45.8/100 [00:00<00:00, 76.8%/s]
Propagation: 46%|████▌ | 46.0/100 [00:00<00:00, 76.8%/s]
Propagation: 46%|████▌ | 46.1/100 [00:00<00:00, 76.8%/s]
Propagation: 46%|████▌ | 46.2/100 [00:00<00:00, 76.9%/s]
Propagation: 46%|████▋ | 46.3/100 [00:00<00:00, 76.9%/s]
Propagation: 46%|████▋ | 46.5/100 [00:00<00:00, 76.9%/s]
Propagation: 47%|████▋ | 46.6/100 [00:00<00:00, 76.9%/s]
Propagation: 47%|████▋ | 46.7/100 [00:00<00:00, 77.0%/s]
Propagation: 47%|████▋ | 46.8/100 [00:00<00:00, 77.0%/s]
Propagation: 47%|████▋ | 46.9/100 [00:00<00:00, 77.0%/s]
Propagation: 47%|████▋ | 47.1/100 [00:00<00:00, 76.9%/s]
Propagation: 47%|████▋ | 47.2/100 [00:00<00:00, 76.9%/s]
Propagation: 47%|████▋ | 47.3/100 [00:00<00:00, 76.9%/s]
Propagation: 47%|████▋ | 47.4/100 [00:00<00:00, 76.9%/s]
Propagation: 48%|████▊ | 47.6/100 [00:00<00:00, 76.9%/s]
Propagation: 48%|████▊ | 47.7/100 [00:00<00:00, 77.0%/s]
Propagation: 48%|████▊ | 47.8/100 [00:00<00:00, 77.0%/s]
Propagation: 48%|████▊ | 47.9/100 [00:00<00:00, 77.0%/s]
Propagation: 48%|████▊ | 48.1/100 [00:00<00:00, 77.0%/s]
Propagation: 48%|████▊ | 48.2/100 [00:00<00:00, 77.0%/s]
Propagation: 48%|████▊ | 48.3/100 [00:00<00:00, 77.0%/s]
Propagation: 48%|████▊ | 48.4/100 [00:00<00:00, 77.0%/s]
Propagation: 49%|████▊ | 48.5/100 [00:00<00:00, 77.0%/s]
Propagation: 49%|████▊ | 48.7/100 [00:00<00:00, 77.1%/s]
Propagation: 49%|████▉ | 48.8/100 [00:00<00:00, 77.1%/s]
Propagation: 49%|████▉ | 48.9/100 [00:00<00:00, 77.1%/s]
Propagation: 49%|████▉ | 49.0/100 [00:00<00:00, 77.1%/s]
Propagation: 49%|████▉ | 49.2/100 [00:00<00:00, 77.1%/s]
Propagation: 49%|████▉ | 49.3/100 [00:00<00:00, 77.1%/s]
Propagation: 49%|████▉ | 49.4/100 [00:00<00:00, 77.1%/s]
Propagation: 50%|████▉ | 49.5/100 [00:00<00:00, 77.1%/s]
Propagation: 50%|████▉ | 49.7/100 [00:00<00:00, 77.1%/s]
Propagation: 50%|████▉ | 49.8/100 [00:00<00:00, 77.1%/s]
Propagation: 50%|████▉ | 49.9/100 [00:00<00:00, 77.1%/s]
Propagation: 50%|█████ | 50.0/100 [00:00<00:00, 77.1%/s]
Propagation: 50%|█████ | 50.2/100 [00:00<00:00, 77.1%/s]
Propagation: 50%|█████ | 50.3/100 [00:00<00:00, 77.1%/s]
Propagation: 50%|█████ | 50.4/100 [00:00<00:00, 77.2%/s]
Propagation: 51%|█████ | 50.5/100 [00:00<00:00, 77.2%/s]
Propagation: 51%|█████ | 50.6/100 [00:00<00:00, 77.2%/s]
Propagation: 51%|█████ | 50.8/100 [00:00<00:00, 77.2%/s]
Propagation: 51%|█████ | 50.9/100 [00:00<00:00, 77.2%/s]
Propagation: 51%|█████ | 51.0/100 [00:00<00:00, 77.2%/s]
Propagation: 51%|█████ | 51.1/100 [00:00<00:00, 77.1%/s]
Propagation: 51%|█████▏ | 51.3/100 [00:00<00:00, 77.1%/s]
Propagation: 51%|█████▏ | 51.4/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 51.5/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 51.6/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 51.8/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 51.9/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 52.0/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 52.1/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 52.2/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 52.4/100 [00:00<00:00, 77.1%/s]
Propagation: 52%|█████▏ | 52.5/100 [00:00<00:00, 77.1%/s]
Propagation: 53%|█████▎ | 52.6/100 [00:00<00:00, 77.1%/s]
Propagation: 53%|█████▎ | 52.7/100 [00:00<00:00, 77.1%/s]
Propagation: 53%|█████▎ | 52.9/100 [00:00<00:00, 77.1%/s]
Propagation: 53%|█████▎ | 53.0/100 [00:00<00:00, 77.1%/s]
Propagation: 53%|█████▎ | 53.1/100 [00:00<00:00, 77.1%/s]
Propagation: 53%|█████▎ | 53.2/100 [00:00<00:00, 77.1%/s]
Propagation: 53%|█████▎ | 53.4/100 [00:00<00:00, 77.1%/s]
Propagation: 53%|█████▎ | 53.5/100 [00:00<00:00, 77.1%/s]
Propagation: 54%|█████▎ | 53.6/100 [00:00<00:00, 77.1%/s]
Propagation: 54%|█████▎ | 53.7/100 [00:00<00:00, 77.1%/s]
Propagation: 54%|█████▍ | 53.8/100 [00:00<00:00, 77.1%/s]
Propagation: 54%|█████▍ | 54.0/100 [00:00<00:00, 77.1%/s]
Propagation: 54%|█████▍ | 54.1/100 [00:00<00:00, 77.1%/s]
Propagation: 54%|█████▍ | 54.2/100 [00:00<00:00, 77.1%/s]
Propagation: 54%|█████▍ | 54.3/100 [00:00<00:00, 77.1%/s]
Propagation: 54%|█████▍ | 54.5/100 [00:00<00:00, 77.2%/s]
Propagation: 55%|█████▍ | 54.6/100 [00:00<00:00, 77.1%/s]
Propagation: 55%|█████▍ | 54.7/100 [00:00<00:00, 77.1%/s]
Propagation: 55%|█████▍ | 54.8/100 [00:00<00:00, 77.1%/s]
Propagation: 55%|█████▍ | 55.0/100 [00:00<00:00, 77.1%/s]
Propagation: 55%|█████▌ | 55.1/100 [00:00<00:00, 77.1%/s]
Propagation: 55%|█████▌ | 55.2/100 [00:00<00:00, 77.1%/s]
Propagation: 55%|█████▌ | 55.3/100 [00:00<00:00, 77.1%/s]
Propagation: 55%|█████▌ | 55.4/100 [00:00<00:00, 76.8%/s]
Propagation: 56%|█████▌ | 55.6/100 [00:00<00:00, 76.8%/s]
Propagation: 56%|█████▌ | 55.7/100 [00:00<00:00, 76.8%/s]
Propagation: 56%|█████▌ | 55.8/100 [00:00<00:00, 76.8%/s]
Propagation: 56%|█████▌ | 55.9/100 [00:00<00:00, 76.8%/s]
Propagation: 56%|█████▌ | 56.1/100 [00:00<00:00, 76.8%/s]
Propagation: 56%|█████▌ | 56.2/100 [00:00<00:00, 76.8%/s]
Propagation: 56%|█████▋ | 56.3/100 [00:00<00:00, 76.8%/s]
Propagation: 56%|█████▋ | 56.4/100 [00:00<00:00, 76.8%/s]
Propagation: 57%|█████▋ | 56.6/100 [00:00<00:00, 76.8%/s]
Propagation: 57%|█████▋ | 56.7/100 [00:00<00:00, 76.8%/s]
Propagation: 57%|█████▋ | 56.8/100 [00:00<00:00, 76.8%/s]
Propagation: 57%|█████▋ | 56.9/100 [00:00<00:00, 76.8%/s]
Propagation: 57%|█████▋ | 57.1/100 [00:00<00:00, 76.8%/s]
Propagation: 57%|█████▋ | 57.2/100 [00:00<00:00, 76.8%/s]
Propagation: 57%|█████▋ | 57.3/100 [00:00<00:00, 76.8%/s]
Propagation: 57%|█████▋ | 57.4/100 [00:00<00:00, 76.8%/s]
Propagation: 58%|█████▊ | 57.5/100 [00:00<00:00, 76.8%/s]
Propagation: 58%|█████▊ | 57.7/100 [00:00<00:00, 76.8%/s]
Propagation: 58%|█████▊ | 57.8/100 [00:00<00:00, 76.8%/s]
Propagation: 58%|█████▊ | 57.9/100 [00:00<00:00, 76.8%/s]
Propagation: 58%|█████▊ | 58.0/100 [00:00<00:00, 76.8%/s]
Propagation: 58%|█████▊ | 58.2/100 [00:00<00:00, 76.8%/s]
Propagation: 58%|█████▊ | 58.3/100 [00:00<00:00, 76.8%/s]
Propagation: 58%|█████▊ | 58.4/100 [00:00<00:00, 76.8%/s]
Propagation: 59%|█████▊ | 58.5/100 [00:00<00:00, 76.8%/s]
Propagation: 59%|█████▊ | 58.7/100 [00:00<00:00, 76.8%/s]
Propagation: 59%|█████▉ | 58.8/100 [00:00<00:00, 76.8%/s]
Propagation: 59%|█████▉ | 58.9/100 [00:00<00:00, 76.8%/s]
Propagation: 59%|█████▉ | 59.0/100 [00:00<00:00, 76.8%/s]
Propagation: 59%|█████▉ | 59.1/100 [00:00<00:00, 76.8%/s]
Propagation: 59%|█████▉ | 59.3/100 [00:00<00:00, 76.8%/s]
Propagation: 59%|█████▉ | 59.4/100 [00:00<00:00, 76.8%/s]
Propagation: 60%|█████▉ | 59.5/100 [00:00<00:00, 76.8%/s]
Propagation: 60%|█████▉ | 59.6/100 [00:00<00:00, 76.8%/s]
Propagation: 60%|█████▉ | 59.8/100 [00:00<00:00, 76.8%/s]
Propagation: 60%|█████▉ | 59.9/100 [00:00<00:00, 76.8%/s]
Propagation: 60%|██████ | 60.0/100 [00:00<00:00, 76.8%/s]
Propagation: 60%|██████ | 60.1/100 [00:00<00:00, 76.8%/s]
Propagation: 60%|██████ | 60.3/100 [00:00<00:00, 76.8%/s]
Propagation: 60%|██████ | 60.4/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████ | 60.5/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████ | 60.6/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████ | 60.7/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████ | 60.9/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████ | 61.0/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████ | 61.1/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████ | 61.2/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████▏ | 61.4/100 [00:00<00:00, 76.8%/s]
Propagation: 61%|██████▏ | 61.5/100 [00:00<00:00, 76.8%/s]
Propagation: 62%|██████▏ | 61.6/100 [00:00<00:00, 76.8%/s]
Propagation: 62%|██████▏ | 61.7/100 [00:00<00:00, 76.8%/s]
Propagation: 62%|██████▏ | 61.9/100 [00:00<00:00, 76.8%/s]
Propagation: 62%|██████▏ | 62.0/100 [00:00<00:00, 76.8%/s]
Propagation: 62%|██████▏ | 62.1/100 [00:00<00:00, 76.8%/s]
Propagation: 62%|██████▏ | 62.2/100 [00:00<00:00, 76.8%/s]
Propagation: 62%|██████▏ | 62.4/100 [00:00<00:00, 76.8%/s]
Propagation: 62%|██████▏ | 62.5/100 [00:00<00:00, 76.8%/s]
Propagation: 63%|██████▎ | 62.6/100 [00:00<00:00, 76.8%/s]
Propagation: 63%|██████▎ | 62.7/100 [00:00<00:00, 76.8%/s]
Propagation: 63%|██████▎ | 62.8/100 [00:00<00:00, 76.8%/s]
Propagation: 63%|██████▎ | 63.0/100 [00:00<00:00, 76.8%/s]
Propagation: 63%|██████▎ | 63.1/100 [00:00<00:00, 76.8%/s]
Propagation: 63%|██████▎ | 63.2/100 [00:00<00:00, 76.8%/s]
Propagation: 63%|██████▎ | 63.3/100 [00:00<00:00, 76.8%/s]
Propagation: 63%|██████▎ | 63.5/100 [00:00<00:00, 76.8%/s]
Propagation: 64%|██████▎ | 63.6/100 [00:00<00:00, 76.8%/s]
Propagation: 64%|██████▎ | 63.7/100 [00:00<00:00, 76.8%/s]
Propagation: 64%|██████▍ | 63.8/100 [00:00<00:00, 76.8%/s]
Propagation: 64%|██████▍ | 64.0/100 [00:00<00:00, 76.8%/s]
Propagation: 64%|██████▍ | 64.1/100 [00:00<00:00, 76.8%/s]
Propagation: 64%|██████▍ | 64.2/100 [00:00<00:00, 76.8%/s]
Propagation: 64%|██████▍ | 64.3/100 [00:00<00:00, 76.8%/s]
Propagation: 64%|██████▍ | 64.4/100 [00:00<00:00, 76.8%/s]
Propagation: 65%|██████▍ | 64.6/100 [00:00<00:00, 76.8%/s]
Propagation: 65%|██████▍ | 64.7/100 [00:00<00:00, 76.8%/s]
Propagation: 65%|██████▍ | 64.8/100 [00:00<00:00, 76.8%/s]
Propagation: 65%|██████▍ | 64.9/100 [00:00<00:00, 76.8%/s]
Propagation: 65%|██████▌ | 65.1/100 [00:00<00:00, 76.8%/s]
Propagation: 65%|██████▌ | 65.2/100 [00:00<00:00, 76.8%/s]
Propagation: 65%|██████▌ | 65.3/100 [00:00<00:00, 76.8%/s]
Propagation: 65%|██████▌ | 65.4/100 [00:00<00:00, 76.8%/s]
Propagation: 66%|██████▌ | 65.6/100 [00:00<00:00, 76.8%/s]
Propagation: 66%|██████▌ | 65.7/100 [00:00<00:00, 76.8%/s]
Propagation: 66%|██████▌ | 65.8/100 [00:00<00:00, 76.8%/s]
Propagation: 66%|██████▌ | 65.9/100 [00:00<00:00, 76.8%/s]
Propagation: 66%|██████▌ | 66.0/100 [00:00<00:00, 76.8%/s]
Propagation: 66%|██████▌ | 66.2/100 [00:00<00:00, 76.8%/s]
Propagation: 66%|██████▋ | 66.3/100 [00:00<00:00, 76.8%/s]
Propagation: 66%|██████▋ | 66.4/100 [00:00<00:00, 76.8%/s]
Propagation: 67%|██████▋ | 66.5/100 [00:00<00:00, 76.8%/s]
Propagation: 67%|██████▋ | 66.7/100 [00:00<00:00, 76.8%/s]
Propagation: 67%|██████▋ | 66.8/100 [00:00<00:00, 76.8%/s]
Propagation: 67%|██████▋ | 66.9/100 [00:00<00:00, 76.8%/s]
Propagation: 67%|██████▋ | 67.0/100 [00:00<00:00, 76.8%/s]
Propagation: 67%|██████▋ | 67.2/100 [00:00<00:00, 76.7%/s]
Propagation: 67%|██████▋ | 67.3/100 [00:00<00:00, 76.8%/s]
Propagation: 67%|██████▋ | 67.4/100 [00:00<00:00, 76.7%/s]
Propagation: 68%|██████▊ | 67.5/100 [00:00<00:00, 76.7%/s]
Propagation: 68%|██████▊ | 67.6/100 [00:00<00:00, 76.7%/s]
Propagation: 68%|██████▊ | 67.8/100 [00:00<00:00, 76.7%/s]
Propagation: 68%|██████▊ | 67.9/100 [00:00<00:00, 76.7%/s]
Propagation: 68%|██████▊ | 68.0/100 [00:00<00:00, 76.7%/s]
Propagation: 68%|██████▊ | 68.1/100 [00:00<00:00, 76.7%/s]
Propagation: 68%|██████▊ | 68.3/100 [00:00<00:00, 76.7%/s]
Propagation: 68%|██████▊ | 68.4/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▊ | 68.5/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▊ | 68.6/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▉ | 68.8/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▉ | 68.9/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▉ | 69.0/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▉ | 69.1/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▉ | 69.3/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▉ | 69.4/100 [00:00<00:00, 76.7%/s]
Propagation: 69%|██████▉ | 69.5/100 [00:00<00:00, 76.8%/s]
Propagation: 70%|██████▉ | 69.6/100 [00:00<00:00, 76.7%/s]
Propagation: 70%|██████▉ | 69.7/100 [00:00<00:00, 76.8%/s]
Propagation: 70%|██████▉ | 69.9/100 [00:00<00:00, 76.8%/s]
Propagation: 70%|██████▉ | 70.0/100 [00:00<00:00, 76.8%/s]
Propagation: 70%|███████ | 70.1/100 [00:00<00:00, 76.8%/s]
Propagation: 70%|███████ | 70.2/100 [00:00<00:00, 76.8%/s]
Propagation: 70%|███████ | 70.4/100 [00:00<00:00, 76.8%/s]
Propagation: 70%|███████ | 70.5/100 [00:00<00:00, 76.8%/s]
Propagation: 71%|███████ | 70.6/100 [00:00<00:00, 76.8%/s]
Propagation: 71%|███████ | 70.7/100 [00:00<00:00, 76.8%/s]
Propagation: 71%|███████ | 70.9/100 [00:00<00:00, 76.8%/s]
Propagation: 71%|███████ | 71.0/100 [00:00<00:00, 76.7%/s]
Propagation: 71%|███████ | 71.1/100 [00:00<00:00, 76.7%/s]
Propagation: 71%|███████ | 71.2/100 [00:00<00:00, 76.7%/s]
Propagation: 71%|███████▏ | 71.3/100 [00:00<00:00, 76.7%/s]
Propagation: 71%|███████▏ | 71.5/100 [00:00<00:00, 76.7%/s]
Propagation: 72%|███████▏ | 71.6/100 [00:00<00:00, 76.7%/s]
Propagation: 72%|███████▏ | 71.7/100 [00:00<00:00, 76.7%/s]
Propagation: 72%|███████▏ | 71.8/100 [00:00<00:00, 76.7%/s]
Propagation: 72%|███████▏ | 72.0/100 [00:00<00:00, 76.7%/s]
Propagation: 72%|███████▏ | 72.1/100 [00:00<00:00, 76.7%/s]
Propagation: 72%|███████▏ | 72.2/100 [00:00<00:00, 76.7%/s]
Propagation: 72%|███████▏ | 72.3/100 [00:00<00:00, 76.7%/s]
Propagation: 72%|███████▏ | 72.5/100 [00:00<00:00, 76.7%/s]
Propagation: 73%|███████▎ | 72.6/100 [00:00<00:00, 76.7%/s]
Propagation: 73%|███████▎ | 72.7/100 [00:00<00:00, 76.7%/s]
Propagation: 73%|███████▎ | 72.8/100 [00:00<00:00, 76.7%/s]
Propagation: 73%|███████▎ | 72.9/100 [00:00<00:00, 76.7%/s]
Propagation: 73%|███████▎ | 73.1/100 [00:00<00:00, 76.7%/s]
Propagation: 73%|███████▎ | 73.2/100 [00:00<00:00, 76.7%/s]
Propagation: 73%|███████▎ | 73.3/100 [00:00<00:00, 76.7%/s]
Propagation: 73%|███████▎ | 73.4/100 [00:00<00:00, 76.7%/s]
Propagation: 74%|███████▎ | 73.6/100 [00:00<00:00, 76.7%/s]
Propagation: 74%|███████▎ | 73.7/100 [00:00<00:00, 76.7%/s]
Propagation: 74%|███████▍ | 73.8/100 [00:00<00:00, 76.7%/s]
Propagation: 74%|███████▍ | 73.9/100 [00:00<00:00, 76.7%/s]
Propagation: 74%|███████▍ | 74.1/100 [00:00<00:00, 76.7%/s]
Propagation: 74%|███████▍ | 74.2/100 [00:00<00:00, 76.7%/s]
Propagation: 74%|███████▍ | 74.3/100 [00:00<00:00, 76.7%/s]
Propagation: 74%|███████▍ | 74.4/100 [00:00<00:00, 76.7%/s]
Propagation: 75%|███████▍ | 74.5/100 [00:00<00:00, 76.7%/s]
Propagation: 75%|███████▍ | 74.7/100 [00:00<00:00, 76.7%/s]
Propagation: 75%|███████▍ | 74.8/100 [00:00<00:00, 76.7%/s]
Propagation: 75%|███████▍ | 74.9/100 [00:00<00:00, 76.7%/s]
Propagation: 75%|███████▌ | 75.0/100 [00:00<00:00, 76.7%/s]
Propagation: 75%|███████▌ | 75.2/100 [00:00<00:00, 76.7%/s]
Propagation: 75%|███████▌ | 75.3/100 [00:00<00:00, 76.7%/s]
Propagation: 75%|███████▌ | 75.4/100 [00:00<00:00, 76.7%/s]
Propagation: 76%|███████▌ | 75.5/100 [00:00<00:00, 76.7%/s]
Propagation: 76%|███████▌ | 75.7/100 [00:00<00:00, 76.7%/s]
Propagation: 76%|███████▌ | 75.8/100 [00:00<00:00, 76.7%/s]
Propagation: 76%|███████▌ | 75.9/100 [00:00<00:00, 76.6%/s]
Propagation: 76%|███████▌ | 76.0/100 [00:00<00:00, 76.6%/s]
Propagation: 76%|███████▌ | 76.2/100 [00:00<00:00, 76.4%/s]
Propagation: 76%|███████▋ | 76.3/100 [00:00<00:00, 76.3%/s]
Propagation: 76%|███████▋ | 76.4/100 [00:01<00:00, 76.3%/s]
Propagation: 77%|███████▋ | 76.5/100 [00:01<00:00, 76.3%/s]
Propagation: 77%|███████▋ | 76.6/100 [00:01<00:00, 76.3%/s]
Propagation: 77%|███████▋ | 76.8/100 [00:01<00:00, 76.3%/s]
Propagation: 77%|███████▋ | 76.9/100 [00:01<00:00, 76.3%/s]
Propagation: 77%|███████▋ | 77.0/100 [00:01<00:00, 76.3%/s]
Propagation: 77%|███████▋ | 77.1/100 [00:01<00:00, 76.3%/s]
Propagation: 77%|███████▋ | 77.3/100 [00:01<00:00, 76.3%/s]
Propagation: 77%|███████▋ | 77.4/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 77.5/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 77.6/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 77.8/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 77.9/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 78.0/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 78.1/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 78.2/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 78.4/100 [00:01<00:00, 76.3%/s]
Propagation: 78%|███████▊ | 78.5/100 [00:01<00:00, 76.3%/s]
Propagation: 79%|███████▊ | 78.6/100 [00:01<00:00, 76.3%/s]
Propagation: 79%|███████▊ | 78.7/100 [00:01<00:00, 76.3%/s]
Propagation: 79%|███████▉ | 78.9/100 [00:01<00:00, 76.3%/s]
Propagation: 79%|███████▉ | 79.0/100 [00:01<00:00, 76.3%/s]
Propagation: 79%|███████▉ | 79.1/100 [00:01<00:00, 76.3%/s]
Propagation: 79%|███████▉ | 79.2/100 [00:01<00:00, 76.3%/s]
Propagation: 79%|███████▉ | 79.4/100 [00:01<00:00, 76.3%/s]
Propagation: 79%|███████▉ | 79.5/100 [00:01<00:00, 76.3%/s]
Propagation: 80%|███████▉ | 79.6/100 [00:01<00:00, 76.3%/s]
Propagation: 80%|███████▉ | 79.7/100 [00:01<00:00, 76.3%/s]
Propagation: 80%|███████▉ | 79.8/100 [00:01<00:00, 76.3%/s]
Propagation: 80%|███████▉ | 80.0/100 [00:01<00:00, 76.3%/s]
Propagation: 80%|████████ | 80.1/100 [00:01<00:00, 76.3%/s]
Propagation: 80%|████████ | 80.2/100 [00:01<00:00, 76.3%/s]
Propagation: 80%|████████ | 80.3/100 [00:01<00:00, 76.3%/s]
Propagation: 80%|████████ | 80.5/100 [00:01<00:00, 76.3%/s]
Propagation: 81%|████████ | 80.6/100 [00:01<00:00, 76.3%/s]
Propagation: 81%|████████ | 80.7/100 [00:01<00:00, 76.3%/s]
Propagation: 81%|████████ | 80.8/100 [00:01<00:00, 76.3%/s]
Propagation: 81%|████████ | 81.0/100 [00:01<00:00, 76.3%/s]
Propagation: 81%|████████ | 81.1/100 [00:01<00:00, 76.3%/s]
Propagation: 81%|████████ | 81.2/100 [00:01<00:00, 76.3%/s]
Propagation: 81%|████████▏ | 81.3/100 [00:01<00:00, 76.3%/s]
Propagation: 81%|████████▏ | 81.4/100 [00:01<00:00, 76.3%/s]
Propagation: 82%|████████▏ | 81.6/100 [00:01<00:00, 76.3%/s]
Propagation: 82%|████████▏ | 81.7/100 [00:01<00:00, 76.3%/s]
Propagation: 82%|████████▏ | 81.8/100 [00:01<00:00, 76.3%/s]
Propagation: 82%|████████▏ | 81.9/100 [00:01<00:00, 76.3%/s]
Propagation: 82%|████████▏ | 82.1/100 [00:01<00:00, 76.3%/s]
Propagation: 82%|████████▏ | 82.2/100 [00:01<00:00, 76.3%/s]
Propagation: 82%|████████▏ | 82.3/100 [00:01<00:00, 76.3%/s]
Propagation: 82%|████████▏ | 82.4/100 [00:01<00:00, 76.3%/s]
Propagation: 83%|████████▎ | 82.6/100 [00:01<00:00, 76.3%/s]
Propagation: 83%|████████▎ | 82.7/100 [00:01<00:00, 76.3%/s]
Propagation: 83%|████████▎ | 82.8/100 [00:01<00:00, 76.3%/s]
Propagation: 83%|████████▎ | 82.9/100 [00:01<00:00, 76.3%/s]
Propagation: 83%|████████▎ | 83.1/100 [00:01<00:00, 76.3%/s]
Propagation: 83%|████████▎ | 83.2/100 [00:01<00:00, 76.3%/s]
Propagation: 83%|████████▎ | 83.3/100 [00:01<00:00, 76.3%/s]
Propagation: 83%|████████▎ | 83.4/100 [00:01<00:00, 76.3%/s]
Propagation: 84%|████████▎ | 83.5/100 [00:01<00:00, 76.3%/s]
Propagation: 84%|████████▎ | 83.7/100 [00:01<00:00, 76.3%/s]
Propagation: 84%|████████▍ | 83.8/100 [00:01<00:00, 76.3%/s]
Propagation: 84%|████████▍ | 83.9/100 [00:01<00:00, 76.3%/s]
Propagation: 84%|████████▍ | 84.0/100 [00:01<00:00, 76.3%/s]
Propagation: 84%|████████▍ | 84.2/100 [00:01<00:00, 76.3%/s]
Propagation: 84%|████████▍ | 84.3/100 [00:01<00:00, 76.3%/s]
Propagation: 84%|████████▍ | 84.4/100 [00:01<00:00, 76.3%/s]
Propagation: 85%|████████▍ | 84.5/100 [00:01<00:00, 76.2%/s]
Propagation: 85%|████████▍ | 84.7/100 [00:01<00:00, 76.2%/s]
Propagation: 85%|████████▍ | 84.8/100 [00:01<00:00, 76.2%/s]
Propagation: 85%|████████▍ | 84.9/100 [00:01<00:00, 76.2%/s]
Propagation: 85%|████████▌ | 85.0/100 [00:01<00:00, 76.2%/s]
Propagation: 85%|████████▌ | 85.1/100 [00:01<00:00, 76.2%/s]
Propagation: 85%|████████▌ | 85.3/100 [00:01<00:00, 76.2%/s]
Propagation: 85%|████████▌ | 85.4/100 [00:01<00:00, 76.2%/s]
Propagation: 86%|████████▌ | 85.5/100 [00:01<00:00, 76.2%/s]
Propagation: 86%|████████▌ | 85.6/100 [00:01<00:00, 76.2%/s]
Propagation: 86%|████████▌ | 85.8/100 [00:01<00:00, 76.2%/s]
Propagation: 86%|████████▌ | 85.9/100 [00:01<00:00, 76.2%/s]
Propagation: 86%|████████▌ | 86.0/100 [00:01<00:00, 76.2%/s]
Propagation: 86%|████████▌ | 86.1/100 [00:01<00:00, 76.2%/s]
Propagation: 86%|████████▋ | 86.3/100 [00:01<00:00, 76.2%/s]
Propagation: 86%|████████▋ | 86.4/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 86.5/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 86.6/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 86.7/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 86.9/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 87.0/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 87.1/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 87.2/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 87.4/100 [00:01<00:00, 76.2%/s]
Propagation: 87%|████████▋ | 87.5/100 [00:01<00:00, 76.2%/s]
Propagation: 88%|████████▊ | 87.6/100 [00:01<00:00, 76.2%/s]
Propagation: 88%|████████▊ | 87.7/100 [00:01<00:00, 76.2%/s]
Propagation: 88%|████████▊ | 87.9/100 [00:01<00:00, 76.2%/s]
Propagation: 88%|████████▊ | 88.0/100 [00:01<00:00, 76.2%/s]
Propagation: 88%|████████▊ | 88.1/100 [00:01<00:00, 76.2%/s]
Propagation: 88%|████████▊ | 88.2/100 [00:01<00:00, 76.2%/s]
Propagation: 88%|████████▊ | 88.4/100 [00:01<00:00, 76.2%/s]
Propagation: 88%|████████▊ | 88.5/100 [00:01<00:00, 76.2%/s]
Propagation: 89%|████████▊ | 88.6/100 [00:01<00:00, 76.2%/s]
Propagation: 89%|████████▊ | 88.7/100 [00:01<00:00, 76.2%/s]
Propagation: 89%|████████▉ | 88.8/100 [00:01<00:00, 76.2%/s]
Propagation: 89%|████████▉ | 89.0/100 [00:01<00:00, 76.2%/s]
Propagation: 89%|████████▉ | 89.1/100 [00:01<00:00, 76.2%/s]
Propagation: 89%|████████▉ | 89.2/100 [00:01<00:00, 76.3%/s]
Propagation: 89%|████████▉ | 89.3/100 [00:01<00:00, 76.3%/s]
Propagation: 89%|████████▉ | 89.5/100 [00:01<00:00, 76.3%/s]
Propagation: 90%|████████▉ | 89.6/100 [00:01<00:00, 76.3%/s]
Propagation: 90%|████████▉ | 89.7/100 [00:01<00:00, 76.3%/s]
Propagation: 90%|████████▉ | 89.8/100 [00:01<00:00, 76.3%/s]
Propagation: 90%|████████▉ | 90.0/100 [00:01<00:00, 76.3%/s]
Propagation: 90%|█████████ | 90.1/100 [00:01<00:00, 76.2%/s]
Propagation: 90%|█████████ | 90.2/100 [00:01<00:00, 76.2%/s]
Propagation: 90%|█████████ | 90.3/100 [00:01<00:00, 76.2%/s]
Propagation: 90%|█████████ | 90.4/100 [00:01<00:00, 76.2%/s]
Propagation: 91%|█████████ | 90.6/100 [00:01<00:00, 76.2%/s]
Propagation: 91%|█████████ | 90.7/100 [00:01<00:00, 76.2%/s]
Propagation: 91%|█████████ | 90.8/100 [00:01<00:00, 76.2%/s]
Propagation: 91%|█████████ | 90.9/100 [00:01<00:00, 76.2%/s]
Propagation: 91%|█████████ | 91.1/100 [00:01<00:00, 76.2%/s]
Propagation: 91%|█████████ | 91.2/100 [00:01<00:00, 76.2%/s]
Propagation: 91%|█████████▏| 91.3/100 [00:01<00:00, 76.2%/s]
Propagation: 91%|█████████▏| 91.4/100 [00:01<00:00, 76.2%/s]
Propagation: 92%|█████████▏| 91.6/100 [00:01<00:00, 76.2%/s]
Propagation: 92%|█████████▏| 91.7/100 [00:01<00:00, 76.2%/s]
Propagation: 92%|█████████▏| 91.8/100 [00:01<00:00, 76.2%/s]
Propagation: 92%|█████████▏| 91.9/100 [00:01<00:00, 76.2%/s]
Propagation: 92%|█████████▏| 92.0/100 [00:01<00:00, 76.2%/s]
Propagation: 92%|█████████▏| 92.2/100 [00:01<00:00, 76.2%/s]
Propagation: 92%|█████████▏| 92.3/100 [00:01<00:00, 76.2%/s]
Propagation: 92%|█████████▏| 92.4/100 [00:01<00:00, 76.2%/s]
Propagation: 93%|█████████▎| 92.5/100 [00:01<00:00, 76.2%/s]
Propagation: 93%|█████████▎| 92.7/100 [00:01<00:00, 76.2%/s]
Propagation: 93%|█████████▎| 92.8/100 [00:01<00:00, 76.2%/s]
Propagation: 93%|█████████▎| 92.9/100 [00:01<00:00, 76.2%/s]
Propagation: 93%|█████████▎| 93.0/100 [00:01<00:00, 76.2%/s]
Propagation: 93%|█████████▎| 93.2/100 [00:01<00:00, 76.2%/s]
Propagation: 93%|█████████▎| 93.3/100 [00:01<00:00, 76.2%/s]
Propagation: 93%|█████████▎| 93.4/100 [00:01<00:00, 76.2%/s]
Propagation: 94%|█████████▎| 93.5/100 [00:01<00:00, 76.2%/s]
Propagation: 94%|█████████▎| 93.6/100 [00:01<00:00, 76.2%/s]
Propagation: 94%|█████████▍| 93.8/100 [00:01<00:00, 76.2%/s]
Propagation: 94%|█████████▍| 93.9/100 [00:01<00:00, 76.2%/s]
Propagation: 94%|█████████▍| 94.0/100 [00:01<00:00, 76.2%/s]
Propagation: 94%|█████████▍| 94.1/100 [00:01<00:00, 76.2%/s]
Propagation: 94%|█████████▍| 94.3/100 [00:01<00:00, 76.2%/s]
Propagation: 94%|█████████▍| 94.4/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▍| 94.5/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▍| 94.6/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▍| 94.8/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▍| 94.9/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▌| 95.0/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▌| 95.1/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▌| 95.3/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▌| 95.4/100 [00:01<00:00, 76.2%/s]
Propagation: 95%|█████████▌| 95.5/100 [00:01<00:00, 76.2%/s]
Propagation: 96%|█████████▌| 95.6/100 [00:01<00:00, 76.2%/s]
Propagation: 96%|█████████▌| 95.7/100 [00:01<00:00, 76.2%/s]
Propagation: 96%|█████████▌| 95.9/100 [00:01<00:00, 76.2%/s]
Propagation: 96%|█████████▌| 96.0/100 [00:01<00:00, 76.2%/s]
Propagation: 96%|█████████▌| 96.1/100 [00:01<00:00, 76.2%/s]
Propagation: 96%|█████████▌| 96.2/100 [00:01<00:00, 76.2%/s]
Propagation: 96%|█████████▋| 96.4/100 [00:01<00:00, 76.2%/s]
Propagation: 96%|█████████▋| 96.5/100 [00:01<00:00, 76.2%/s]
Propagation: 97%|█████████▋| 96.6/100 [00:01<00:00, 76.2%/s]
Propagation: 97%|█████████▋| 96.7/100 [00:01<00:00, 76.2%/s]
Propagation: 97%|█████████▋| 96.9/100 [00:01<00:00, 76.2%/s]
Propagation: 97%|█████████▋| 97.0/100 [00:01<00:00, 76.2%/s]
Propagation: 97%|█████████▋| 97.1/100 [00:01<00:00, 76.2%/s]
Propagation: 97%|█████████▋| 97.2/100 [00:01<00:00, 76.2%/s]
Propagation: 97%|█████████▋| 97.3/100 [00:01<00:00, 76.2%/s]
Propagation: 97%|█████████▋| 97.5/100 [00:01<00:00, 76.2%/s]
Propagation: 98%|█████████▊| 97.6/100 [00:01<00:00, 76.2%/s]
Propagation: 98%|█████████▊| 97.7/100 [00:01<00:00, 76.2%/s]
Propagation: 98%|█████████▊| 97.8/100 [00:01<00:00, 76.2%/s]
Propagation: 98%|█████████▊| 98.0/100 [00:01<00:00, 76.2%/s]
Propagation: 98%|█████████▊| 98.1/100 [00:01<00:00, 76.2%/s]
Propagation: 98%|█████████▊| 98.2/100 [00:01<00:00, 76.2%/s]
Propagation: 98%|█████████▊| 98.3/100 [00:01<00:00, 76.2%/s]
Propagation: 98%|█████████▊| 98.5/100 [00:01<00:00, 76.2%/s]
Propagation: 99%|█████████▊| 98.6/100 [00:01<00:00, 76.2%/s]
Propagation: 99%|█████████▊| 98.7/100 [00:01<00:00, 76.2%/s]
Propagation: 99%|█████████▉| 98.8/100 [00:01<00:00, 76.2%/s]
Propagation: 99%|█████████▉| 98.9/100 [00:01<00:00, 76.2%/s]
Propagation: 99%|█████████▉| 99.1/100 [00:01<00:00, 76.2%/s]
Propagation: 99%|█████████▉| 99.2/100 [00:01<00:00, 76.2%/s]
Propagation: 99%|█████████▉| 99.3/100 [00:01<00:00, 76.2%/s]
Propagation: 99%|█████████▉| 99.4/100 [00:01<00:00, 76.2%/s]
Propagation: 100%|█████████▉| 99.6/100 [00:01<00:00, 76.2%/s]
Propagation: 100%|█████████▉| 99.7/100 [00:01<00:00, 76.2%/s]
Propagation: 100%|█████████▉| 99.8/100 [00:01<00:00, 76.2%/s]
Propagation: 100%|█████████▉| 99.9/100 [00:01<00:00, 76.2%/s]
Propagation: 100%|██████████| 100/100 [00:01<00:00, 76.0%/s]
Time spent to solve : 1.3150334850001855 s (CPU)
import numpy as np
from NLSE import NLSE
def vortex(x, y, xi=10e-6, ell=1):
"""Return the phase and density profile of a charge-``ell`` vortex."""
r = np.hypot(x, y)
theta = np.arctan2(x, y)
return r / np.sqrt(r**2 + (xi / 0.83) ** 2) * np.exp(1j * ell * theta)
N = 256
n2 = -1.6e-10
waist = 750e-6
window = 3.5 * waist
power = 1.05
intensity = power / (np.pi * waist**2)
Isat = np.inf # saturation intensity in W/m^2
L = 5e-2
alpha = 0
SAVE_EVERY = 2
simu = NLSE(alpha, power, window, n2, None, L, NX=N, NY=N, Isat=Isat, backend="MLX")
cs = np.sqrt(abs(n2) * intensity) / (1 + intensity / Isat)
delta_n = abs(n2) * intensity / (1 + intensity / Isat) ** 2
xi = 1 / (simu.k * cs)
z_nl = 1 / (simu.k * delta_n)
DELTA_Z = z_nl / 6
# Far enough for the pair to come back around.
simu.L = 48 * z_nl
# Appended rather than preallocated: the frames are evenly spaced because the
# step is fixed, and nothing here needs to know how many there will be.
E_samples = []
def callback_samples(sim, A, z, i):
"""Keep a copy of the field every SAVE_EVERY steps."""
if i % SAVE_EVERY == 0:
# Through the host conversion: on a GPU backend A is a device array.
E_samples.append(sim._as_host_array(A).copy())
def main():
"""Propagate, sampling as it goes, then animate what was sampled."""
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# A vortex pair, separated by four healing lengths.
d = 4 * xi
E_0 = np.exp(-(simu.XX**2 + simu.YY**2) / waist**2).astype(np.complex64)
E_0 *= vortex(simu.XX + d / 2, simu.YY + d / 2, xi=xi, ell=1)
E_0 *= vortex(simu.XX - d / 2, simu.YY - d / 2, xi=xi, ell=1)
# Hand tuned potential for Thomas-Fermi
simu.V = 4.31e-4 * np.exp(-2 * (simu.XX**2 + simu.YY**2) / waist**2).astype(
np.float32
)
simu.out_field(
E_0,
simu.L,
verbose=True,
plot=False,
splitting="lie",
callback=callback_samples,
delta_z=DELTA_Z,
)
frames = np.array(E_samples)
rho = np.abs(frames) ** 2
phi = np.angle(frames)
ext = [
simu.X.min() * 1e3,
simu.X.max() * 1e3,
simu.Y.min() * 1e3,
simu.Y.max() * 1e3,
]
fig, ax = plt.subplots(1, 2, figsize=(10, 5), layout="constrained")
im0 = ax[0].imshow(rho[0], cmap="viridis", interpolation="none", extent=ext)
ax[0].set_title("Density")
im1 = ax[1].imshow(
phi[0], cmap="twilight_shifted", interpolation="none", extent=ext
)
ax[1].set_title("Phase")
for a in ax:
a.set_xlabel("x in mm")
a.set_ylabel("y in mm")
def animate(i):
im0.set_data(rho[i])
im0.set_clim(0, np.max(rho[i]))
im1.set_data(phi[i])
fig.suptitle(f"z = {i * SAVE_EVERY * DELTA_Z * 1e3:.2f} mm")
return im0, im1
# Held so it is not garbage collected before the window is drawn.
anim = FuncAnimation(fig, animate, frames=len(frames), interval=60, blit=True)
plt.show()
return anim
# Bound at module level rather than dropped: sphinx-gallery looks through the
# example's namespace for an Animation and embeds what it finds there, so an
# animation that only exists inside a function is a still picture on the page.
if __name__ == "__main__":
anim = main()
Total running time of the script: (3 minutes 27.050 seconds)