void freeze() {

		// //////////////////////////////////////////////////////////////
		// resize arrays
		if (atomCount < atoms.length)
			growAtomArrays(0);
		if (bondCount < bonds.length)
			bonds = (Bond[]) ArrayUtil.setLength(bonds, bondCount);

		freeBondsCache();

		// //////////////////////////////////////////////////////////////
		// see if there are any vectors
		hasVibrationVectors = vibrationVectors != null;

		// //////////////////////////////////////////////////////////////
		//
		setAtomNamesAndNumbers();

		// //////////////////////////////////////////////////////////////
		// find things for the popup menus
		findElementsPresent();

		// //////////////////////////////////////////////////////////////
		// finalize all group business
		calculateStructures(false);
	}