private boolean needMinimization() {
		float xij, yij, zij, rijsq;
		for (int i = 0; i < iAtom - 1; i++) {
			for (int j = i + 1; j < iAtom; j++) {
				if (atom[i].isBonded(atom[j]))
					continue;
				xij = atom[i].rx - atom[j].rx;
				yij = atom[i].ry - atom[j].ry;
				zij = atom[i].rz - atom[j].rz;
				rijsq = xij * xij + yij * yij + zij * zij;
				xij = 0.25f * (atom[i].sigma + atom[j].sigma); // allow 50% overlapping?
				if (rijsq < xij * xij) {
					return true;
				}
			}
		}
		return false;
	}