void corrector() {
		synchronized (forceCalculator) {
			if (iAtom > 0) {
				float halfTimeStep = timeStep * 0.5f;
				for (int i = 0; i < iAtom; i++) {
					if (atom[i].isMovable())
						atom[i].correct(halfTimeStep);
				}
			}
			if (obstacles != null) {
				int n = obstacles.size();
				if (n > 0) {
					for (int i = 0; i < n; i++) {
						obstacles.get(i).collide();
					}
				}
			}
		}
	}