     dim3 force_grid(n_bodies, 1, 1);
     dim3 force_threads(block_size, 1, 1); 
     
-    if (nmax <= 256)   // 256 is some threshold for really big rigid bodies
+    if (nmax <= 128)   // 128 is some threshold for really big rigid bodies
         gpu_rigid_force_kernel<<< force_grid, force_threads, 2 * nmax * sizeof(float4) >>>(rigid_data.force, 
                                                                                              rigid_data.torque, 
                                                                                              n_bodies, 

        float4 force2 = body_force[0];
        float4 torque2 = body_torque[0];
        
        rdata_force[idx_body] = force2;
        rdata_torque[idx_body] = torque2;
        }

           
    }

//! Takes the 2nd 1/2 step forward in the velocity-verlet NVE integration scheme
/*! \param rdata_force Particle data to step forward in time
    \param rdata_torque List of pointers to forces on each particle
    \param n_bodies Number of forces listed in \a force_data_ptrs

    
    unsigned int n_windows = nmax / window_size + 1;
    
    // slide the window throughout the block
    for (unsigned int start = 0; start < n_windows; start++)
    {
        unsigned int iwindow = threadIdx.x / window_size;
