 
     // Setup some return information if we're working on snapshots
     int snap_num = 0;
+    int snap_interval = 1;
+    if (opt.return_style == tsnecuda::RETURN_STYLE::SNAPSHOT) {
+        snap_interval = opt.iterations / (opt.num_snapshots - 1);
+    }
 
     // Get constants from options
     const int num_points = opt.num_points;

        }

        // // Handle snapshoting
        // if (opt.return_style == tsnecuda::RETURN_STYLE::SNAPSHOT && step % snap_interval == 0 && opt.return_data != nullptr) {
        //   thrust::copy(points_device.begin(),
        //                points_device.end(),
        //                snap_num*opt.num_points*2 + opt.return_data);
        //   snap_num += 1;
        // }

    }


            std::cout << "This version is not built with ZMQ for interative viz. Rebuild with WITH_ZMQ=TRUE for viz." << std::endl;
    #endif

    END_IL_TIMER(_time_init_fft);
    // Support for infinite iteration
    for (size_t step = 0; step != opt.iterations; step++) {

