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)

Gallery generated by Sphinx-Gallery