/* @GuardedBy("this") */
	synchronized void advance(int indexOfStep) {
		if (heatBathActivated()) {
			if (heatBath != null && heatBath.getExpectedTemperature() < 0.01)
				return;
		}
		predictor();
		if (indexOfStep <= 1) {
			setUpdateList(true);
		} else {
			checkNeighborList();
		}
		pot = computeForce(indexOfStep);
		corrector();
		movePhotons();
	}