                 B1_XYZ = hanningWeight[i] * exp(-_i * wrf * thisT[i]) * getE1orB1_XYZ(thisParticle_XYZ, &r[0], &b1_CYL[0], r.size(), nPhi);
                 thisB1c_XYZ[i] = B1_XYZ * (1 - thisParticle_XYZ.status);
 
+                //if (iX == write_iX && iP == write_iP) {
+                //    std::cout<<"E1_XYZ: "<<E1_XYZ<<std::endl;
+                //    std::cout<<"status: "<<thisParticle_XYZ.status<<std::endl;
+                //    std::cout<<"hanningWeight: "<<hanningWeight[i]<<std::endl;
+                //}
+
 #if DEBUG_MOVE >= 2
                 std::cout << "thisE1c[i].c1: " << thisE1c_XYZ[i].c1 << std::endl;
                 std::cout << "thisE1c[i].c2: " << thisE1c_XYZ[i].c2 << std::endl;

        float tmpJzIm = imag(j1zc[iX]);
        nc_j1zc_re.putVar(&tmpJzRe);
        nc_j1zc_im.putVar(&tmpJzIm);
    }

    // ProfilerStop();

                float offsetReal = (( std::cos(this_angle_perp) - 1.0f ) * mag(perp_force)*mag(perp_gradf)).real();
                float offsetImag = (( std::sin(this_angle_perp) - 1.0f ) * mag(perp_force)*mag(perp_gradf)).imag();

                // Account for this_force==0 due to hanningWeight==0 at last point.
                if(i==nSteps-1) {
                    offsetReal = 0;
                    offsetImag = 0;
                }

                average_e1_dot_gradvf0 += std::complex<float>(offsetReal,offsetImag);
                this_e1_dot_gradvf0[i] = average_e1_dot_gradvf0;
                if(thisParticle_XYZ.status>0) this_e1_dot_gradvf0[i] = 0; // To account for the / 0 above.

                //if (iX == write_iX && iP == write_iP) {
                //    std::cout<<"par: "<<par<<std::endl;
                //    std::cout<<"thisE1c_XYZ: "<<thisE1c_XYZ[i]<<std::endl;
                //    std::cout<<"this_force: "<<this_force<<std::endl;
                //    std::cout<<"this_angle_perp: "<<this_angle_perp<<std::endl;
                //}
#else
                this_vCrossB1[i] = cross(thisVel_XYZ, thisB1c_XYZ[i]);
