private boolean conserve(int i, int j, int k, int l, double change) {
		if (!conserveEnergy)
			return true;
		double oldKE = getKE(i, j, k, l);
		double newKE = oldKE + change;
		if (newKE < 0.0)
			return false;
		if (oldKE <= ZERO) {
			double x = 0.25 * newKE / EV_CONVERTER;
			atom[i].setRandomVelocity(Math.sqrt(x / atom[i].mass));
			atom[j].setRandomVelocity(Math.sqrt(x / atom[j].mass));
			atom[k].setRandomVelocity(Math.sqrt(x / atom[k].mass));
			atom[l].setRandomVelocity(Math.sqrt(x / atom[l].mass));
		}
		else {
			double ratio = Math.sqrt(newKE / oldKE);
			atom[i].vx *= ratio;
			atom[i].vy *= ratio;
			atom[j].vx *= ratio;
			atom[j].vy *= ratio;
			atom[k].vx *= ratio;
			atom[k].vy *= ratio;
			atom[l].vx *= ratio;
			atom[l].vy *= ratio;
		}
		return true;
	}