DisturbSites() private method

private DisturbSites ( IAgent agent ) : void
agent IAgent
return void
Example #1
0
        //---------------------------------------------------------------------
        ///<summary>
        ///Simulate an Epidemic - This is the controlling function that calls the
        ///subsequent function.  The basic logic of an epidemic resides here.
        ///</summary>
        public static Epidemic Simulate(IAgent agent,
                                        int currentTime,
                                        int timestep,
                                        int ROS)
        {
            Epidemic CurrentEpidemic = new Epidemic(agent);

            UI.WriteLine("   New BDA Epidemic Activated:  {0}.", agent.AgentName);

            SiteResources.SiteResourceDominance(agent, ROS);
            SiteResources.SiteResourceDominanceModifier(agent);

            if (agent.Dispersal)
            {
                //Asynchronous - Simulate Agent Dispersal

                // Calculate Site Vulnerability without considering the Neighborhood
                // If neither disturbance modifiers nor ecoregion modifiers are active,
                //  Vulnerability will equal SiteReourceDominance.
                SiteResources.SiteVulnerability(agent, ROS, false);

                Epicenters.NewEpicenters(agent, timestep);
            }
            else
            {
                //Synchronous:  assume that all Active sites can potentially be
                //disturbed without regard to initial locations.
                foreach (ActiveSite site in Model.Core.Landscape)
                {
                    agent.OutbreakZone[site] = Zone.Newzone;
                }
            }

            //Consider the Neighborhood if requested:
            if (agent.NeighborFlag)
            {
                SiteResources.NeighborResourceDominance(agent);
            }

            //Recalculate Site Vulnerability considering neighbors if necessary:
            SiteResources.SiteVulnerability(agent, ROS, agent.NeighborFlag);

            CurrentEpidemic.DisturbSites(agent);

            return(CurrentEpidemic);
        }
        //---------------------------------------------------------------------
        ///<summary>
        ///Simulate an Epidemic - This is the controlling function that calls the 
        ///subsequent function.  The basic logic of an epidemic resides here.
        ///</summary>
        public static Epidemic Simulate(IAgent agent, 
                                        int currentTime, 
                                        int timestep,
                                        int ROS)
        {


            Epidemic CurrentEpidemic = new Epidemic(agent);
            UI.WriteLine("   New BDA Epidemic Activated:  {0}.", agent.AgentName);

            SiteResources.SiteResourceDominance(agent, ROS);
            SiteResources.SiteResourceDominanceModifier(agent);

            if(agent.Dispersal) {
                //Asynchronous - Simulate Agent Dispersal
                
                // Calculate Site Vulnerability without considering the Neighborhood
                // If neither disturbance modifiers nor ecoregion modifiers are active,
                //  Vulnerability will equal SiteReourceDominance.
                SiteResources.SiteVulnerability(agent, ROS, false);  

                Epicenters.NewEpicenters(agent, timestep);
                
            } else 
            {
                //Synchronous:  assume that all Active sites can potentially be
                //disturbed without regard to initial locations.  
                foreach (ActiveSite site in Model.Core.Landscape) 
                    agent.OutbreakZone[site] = Zone.Newzone;

            }
            
            //Consider the Neighborhood if requested:
            if (agent.NeighborFlag)
                SiteResources.NeighborResourceDominance(agent);
                    
            //Recalculate Site Vulnerability considering neighbors if necessary:
            SiteResources.SiteVulnerability(agent, ROS, agent.NeighborFlag);

            CurrentEpidemic.DisturbSites(agent);

            return CurrentEpidemic;
        }