Пример #1
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(PlugIns.ICore modelCore,
                                  double[,]                       establishProbabilities,
                                  SeedingAlgorithms seedAlg,
                                  Reproduction.AddNewCohortMethod addNewCohort)
        {
            Model.Core = modelCore;
            SiteVars.Initialize();
            disturbedSites = new DisturbedSiteEnumerator(Model.Core.Landscape,
                                                         SiteVars.Disturbed);

            SeedingAlgorithm algorithm;

            switch (seedAlg)
            {
            case SeedingAlgorithms.NoDispersal:
                algorithm = NoDispersal.Algorithm;
                break;

            case SeedingAlgorithms.UniversalDispersal:
                algorithm = UniversalDispersal.Algorithm;
                break;

            case SeedingAlgorithms.WardSeedDispersal:
                algorithm = WardSeedDispersal.Algorithm;
                break;

            default:
                throw new ArgumentException(string.Format("Unknown seeding algorithm: {0}", seedAlg));
            }
            Reproduction.Initialize(establishProbabilities, algorithm,
                                    addNewCohort == null ? null : new Reproduction.Delegates.AddNewCohort(addNewCohort));
        }
Пример #2
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(int timestep,
                                  double[,]                       establishProbabilities,
                                  int startTime,
                                  SeedingAlgorithms seedAlg,
                                  Reproduction.AddNewCohortMethod addNewCohort)
        {
            this.timestep            = timestep;
            this.nextTimeToRun       = startTime - 1 + timestep;
            this.updateNextTimeToRun = false;

            SiteVars.Initialize();

            SeedingAlgorithm algorithm;

            switch (seedAlg)
            {
            case SeedingAlgorithms.NoDispersal:
                algorithm = NoDispersal.Algorithm;
                break;

            case SeedingAlgorithms.UniversalDispersal:
                algorithm = UniversalDispersal.Algorithm;
                break;

            case SeedingAlgorithms.WardSeedDispersal:
                algorithm = WardSeedDispersal.Algorithm;
                break;

            default:
                throw new ArgumentException(string.Format("Unknown seeding algorithm: {0}", seedAlg));
            }
            Reproduction.Initialize(establishProbabilities, algorithm, addNewCohort);
        }
Пример #3
0
        protected void Initialize(PlugIns.ICore modelCore,
                                  double[,]                       establishProbabilities,
                                  SeedingAlgorithms seedAlg,
                                  Reproduction.AddNewCohortMethod addNewCohort)
        {
            Reproduction.Delegates.AddNewCohort wrappedMethod =
                delegate(ISpecies species,
                         ActiveSite site)
            {
                addNewCohort(species, site);
            };
            Initialize(modelCore, establishProbabilities, seedAlg, wrappedMethod);
            //new Reproduction.Delegates.AddNewCohort(addNewCohort));
//                       System.Delegate.CreateDelegate(typeof (Reproduction.Delegates.AddNewCohort),
//                                                     addNewCohort.Method));
        }