public INBodyIntegrator DeepClone() { HermiteIntegrator herm = new HermiteIntegrator(forceDelegate); herm.maxBodies = maxBodies; herm.Reset(maxBodies); // copy across herm.numBodies = numBodies; for (int j = 0; j < numBodies; j++) { for (int k = 0; k < NDIM; k++) { herm.vel[j, k] = vel[j, k]; herm.acc[j, k] = acc[j, k]; herm.jerk[j, k] = jerk[j, k]; herm.old_pos[j, k] = old_pos[j, k]; herm.old_vel[j, k] = old_vel[j, k]; herm.old_acc[j, k] = old_acc[j, k]; herm.old_jerk[j, k] = old_jerk[j, k]; } herm.active[j] = active[j]; herm.size[j] = size[j]; herm.externalAccel[j] = externalAccel[j]; } herm.dt = dt; herm.maxDt = maxDt; herm.minDt = minDt; herm.coll_time_initial = coll_time_initial; herm.coll_time_avg = coll_time_avg; herm.coll_time = coll_time; herm.dtInitial = dtInitial; return(herm); }
public INBodyIntegrator DeepClone() { HermiteIntegrator herm = new HermiteIntegrator(forceDelegate); herm.maxBodies = maxBodies; herm.Reset(maxBodies); // copy across herm.numBodies = numBodies; for (int j = 0; j < numBodies; j++) { for (int k = 0; k < NDIM; k++) { herm.vel[j, k] = vel[j, k]; herm.acc[j, k] = acc[j, k]; herm.jerk[j, k] = jerk[j, k]; herm.old_pos[j, k] = old_pos[j, k]; herm.old_vel[j, k] = old_vel[j, k]; herm.old_acc[j, k] = old_acc[j, k]; herm.old_jerk[j, k] = old_jerk[j, k]; } herm.active[j] = active[j]; herm.size[j] = size[j]; } return(herm); }