/// <summary>
        /// Initializes new instance of <see cref="IdentificationModel"/>
        /// </summary>
        public IdentificationModel()
        {
            IdentificationExperiments = new IdentificationExperimentCollection();
            RealExperiments           = new ExperimentCollection();
            IdentificationParameters  = new ParameterCollection();
            OptimizationParameters    = new ParameterCollection();
            Criteria = new CriterionCollection();
            FunctionalConstraints = new ConstraintCollection();

            Properties = new PropertyCollection();
        }
        /// <summary>
        /// Creates a deep copy of <see cref="IdentificationExperimentCollection"/> instance
        /// </summary>
        /// <returns>Deep copy of self</returns>
        public virtual object Clone()
        {
            IdentificationExperimentCollection clone = new IdentificationExperimentCollection(Count);

            foreach (KeyValuePair <TId, IdentificationExperiment> experiment in this)
            {
                clone.Add(experiment.Key, (IdentificationExperiment)experiment.Value.Clone());
            }

            return(clone);
        }