synchronized void applyBoundary() {
		int iAtom = model.iAtom;
		float radius = 0;
		Atom a = null;
		for (int i = 0; i < iAtom; i++) {
			a = atom[i];
			if (!a.isMovable())
				continue;
			radius = 0.5f * a.sigma;
			if (a.rx > xbox - radius) {
				a.vx = -Math.abs(a.vx);
			}
			else if (a.rx < radius - xbox) {
				a.vx = Math.abs(a.vx);
			}
			if (a.ry > ybox - radius) {
				a.vy = -Math.abs(a.vy);
			}
			else if (a.ry < radius - ybox) {
				a.vy = Math.abs(a.vy);
			}
			if (a.rz > zbox - radius) {
				a.vz = -Math.abs(a.vz);
			}
			else if (a.rz < radius - zbox) {
				a.vz = Math.abs(a.vz);
			}
		}
	}