/// <summary>
        /// Load a top level arithmetic model
        /// from an existing file
        /// </summary>
        /// <param name="fi">file info to take</param>
        /// <returns>object deserialized</returns>
        public void Save(FileInfo fi)
        {
            uint rev = this.Get(revisionName);

            this.Set(revisionName, rev + 1);
            PersistentDataObject.Save(fi, this);
        }
        /// <summary>
        /// Load a top level arithmetic model
        /// from an existing file
        /// </summary>
        /// <param name="fi">file info to take</param>
        /// <returns>object deserialized</returns>
        public static TopLevelArithmeticModel Load(FileInfo fi)
        {
            PersistentDataObject t = null;

            if (PersistentDataObject.Load(fi, out t))
            {
            }
            return(t as TopLevelArithmeticModel);
        }