Loading [MathJax]/extensions/ams.js
 |
ALMaSS
1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
|
Go to the documentation of this file.
25 #ifndef ErigonePopulationManagerH
26 #define ErigonePopulationManagerH
42 virtual void Init (
void);
53 #ifdef __RECORD_RECOVERY_POLYGONS
55 void RecordRecoveryPolygons();
56 int m_RecoveryPolygons[101];
57 int m_RecoveryPolygonsC[101];
bool m_EggProdThresholdPassed
A flag for passing minimum temperature for producing eggs.
Definition: Spider_BaseClasses.h:141
static CfgFloat cfg_Erig_JuvDevelIntermediate("ERIGONE_JUVDEVELINTERMEDIATE", CFG_CUSTOM, 0.66666666)
static int m_DenDependenceConst0
This is the number of local spiders needed before density dependent mortality will kill
Definition: Spider_BaseClasses.h:290
int Supply_m_Location_x() const
Returns the ALMaSS x-coordinate.
Definition: PopulationManager.h:239
static CfgInt cfg_Erig_JuvDensityDepMortConst("ERIGONE_JUVDENSITYDEPMORTCONST", CFG_CUSTOM, 3)
CfgBool cfg_ReallyBigOutputMonthly_used
SimplePositionMap * m_EggPosMap
Pointer to the egg position map
Definition: Spider_BaseClasses.h:112
virtual void KillThis()
Sets all parameters ready for object destruction.
Definition: PopulationManager.h:263
virtual void DoFirst(void)
DoFirst method, to be overridden in descendent classes
Definition: Erigone_Population_Manager.cpp:301
The generic base class for spider eggsacs
Definition: Spider_BaseClasses.h:344
MovementMapUnsigned * m_MoveMap
A representation of the landscape in terms of quality - NB MUST be assigned by the descendent populat...
Definition: Spider_BaseClasses.h:110
virtual TAnimal * SupplyAnimalPtr(unsigned int a_index, unsigned int a_animal)
Returns the pointer indexed by a_index and a_animal. Note NO RANGE CHECK.
Definition: PopulationManager.h:678
double SupplyTemp(void)
Passes a request on to the associated Weather class function, the temperature for the current day.
Definition: Landscape.h:1993
const std::array< int, 40 > Erig_DispersalChance
Definition: Erigone_Population_Manager.cpp:58
static CfgFloat cfg_Erig_MaxBalloonPercent("ERIGONE_MAXBALLOONPERCENT", CFG_CUSTOM, 5)
static std::array< int, 31 > m_DispDistances
An array to hold the dispersal distances possible as a probability 0-30 (x out of 10000)
Definition: Spider_BaseClasses.h:118
std::vector< std::vector< omp_nest_lock_t * > > m_MapGuard
This is used to make sure animals will not behaviour at the same area - multi threads.
Definition: PopulationManager.h:790
int m_BallooningStop
A limiter for the day in year to stop ballooning - to be assigned in a descendent classes population ...
Definition: Spider_BaseClasses.h:149
static CfgFloat cfg_Erig_JuvDevelConst2("ERIGONE_JUVDEVELCONSTTWO", CFG_CUSTOM, 1000.0)
int m_WindDirection
Todays wind direction
Definition: Spider_BaseClasses.h:143
TTypesOfPopulation m_population_type
Definition: PopulationManager.h:858
static CfgFloat cfg_Erig_JuvDevelHA("ERIGONE_JUVVDEVELHA", CFG_CUSTOM, 31273.77)
double m_EggProdDDegsInt
Links reproduction to food levels and day degrees - intermediate food
Definition: Spider_BaseClasses.h:165
vector< unsigned > BeforeStepActions
Holds the season list of possible before step actions.
Definition: PopulationManager.h:819
double GetRHPeriod(long a_date, unsigned int a_period)
Definition: Weather.cpp:723
double m_JuvDegreesGood
Contribution to day degrees under good food.
Definition: Spider_BaseClasses.h:157
double m_JuvDegreesIntermediate
Contribution to day degrees under intermediate food
Definition: Spider_BaseClasses.h:159
static double m_JuvDevelConst
Day degrees maturation threshold
Definition: Spider_BaseClasses.h:398
static double m_EggProducConst
Daydegrees threshold needed to produce an eggsac
Definition: Spider_BaseClasses.h:464
const double MinBallooningTemp
Definition: Erigone_Population_Manager.cpp:69
int m_BallooningStart
A limiter for the day in year to start ballooning - to be assigned in a descendent classes population...
Definition: Spider_BaseClasses.h:147
static CfgFloat cfg_Erig_EggProducConst("ERIGONE_EGGPRODUCCONST", CFG_CUSTOM, 1000)
class Calendar * g_date
Definition: Calendar.cpp:37
const char * m_ListNames[32]
A list of life-stage names.
Definition: PopulationManager.h:628
static std::array< int, 40 > m_DispersalChance
Disperals probability as a function of bad habitat days
Definition: Spider_BaseClasses.h:396
Landscape * L
Definition: Spider_BaseClasses.h:99
Used to map locations of individuals for density estimates - space inefficient but good for testing.
Definition: PositionMap.h:45
static CfgFloat cfg_Erig_MaxDistBalloonable("ERIGONE_MAXDISTBALLOONABLE", CFG_CUSTOM, 2200)
CfgBool cfg_AorOutput_used
static CfgFloat cfg_Erig_JuvDevelRHO25("ERIGONE_EGGVDEVELRH", CFG_CUSTOM, 0.131541)
SimplePositionMap * m_AdultPosMap
Pointer to the egg position map
Definition: Spider_BaseClasses.h:116
static CfgFloat cfg_Erig_EggDevelConst2("ERIGONE_EGGDEVELCONSTTWO", CFG_CUSTOM, 1000)
static int m_DailyFemaleMort
Daily mortality probability
Definition: Spider_BaseClasses.h:468
double value() const
Definition: Configurator.h:142
int noEggs
Definition: Spider_BaseClasses.h:101
int SupplyMonth(void)
Passes a request on to the associated Calendar class function, returns m_month + 1 (the calendar mont...
Definition: Landscape.h:2272
int m_EggSacSpread
Used to spread spiderlings on day 1 of hatch - to be assigned in a descendent classes population mana...
Definition: Spider_BaseClasses.h:135
CfgBool cfg_CfgRipleysOutputUsed
virtual void ClearMapValue(unsigned a_x, unsigned a_y)
Definition: PositionMap.h:60
virtual void SetMapValue(unsigned a_x, unsigned a_y)
Definition: PositionMap.h:55
static CfgFloat cfg_Erig_EggProducThreshold("ERIGONE_EGGPRODUCTHRESHOLD", CFG_CUSTOM, 6.0)
Definition: Erigone_Population_Manager.h:38
static CfgInt cfg_ErigoneStartNos("ERIGONE_STARTNO", CFG_CUSTOM, 50000)
bool m_WalkingOnly
A flag to denote the spider does not balloon
Definition: Spider_BaseClasses.h:169
int m_DoubleEggSacSpread
Twice the m_EggSacSpread, used to save multiplications
Definition: Spider_BaseClasses.h:137
int m_ListNameLength
the number of life-stages simulated in the population manager
Definition: PopulationManager.h:626
static CfgInt cfg_Erig_EggSacSpread("ERIGONE_EGG_SAC_SPREAD", CFG_CUSTOM, 10)
virtual void TheAOROutputProbe()
A method to generate the AOR probe output
Definition: Erigone_Population_Manager.cpp:526
static CfgInt cfg_ErigoneDensityDependentConstantZero("ERIGONE_DENDEPCONSTZERO", CFG_CUSTOM, 0)
void ZeroEggSacDegrees()
Reset eggsac day degrees counter to zero
Definition: Spider_BaseClasses.h:490
double m_EggDegrees[365]
Cumulative day degrees from 1st Jan
Definition: Spider_BaseClasses.h:155
bool value() const
Definition: Configurator.h:164
virtual void TheRipleysOutputProbe(FILE *a_prb)
A method to generate the Ripley probe output
Definition: Erigone_Population_Manager.cpp:532
double m_EggProdDDegsPoor
Links reproduction to food levels and day degrees - poor food
Definition: Spider_BaseClasses.h:167
Landscape * m_TheLandscape
holds an internal pointer to the landscape
Definition: PopulationManager.h:624
static CfgFloat cfg_Erig_EggDevelThreshold("ERIGONE_EGGDEVELTHRESHOLD", CFG_CUSTOM, 0.0)
static CfgFloat cfg_Erig_DailyJuvMort("ERIGONE_DAILYJUVMORT", CFG_CUSTOM, 0.003)
double GetWindHour(int hour)
Definition: Weather.h:469
AOR_Probe * m_AOR_Probe
A pointer to the AOR probe.
Definition: PopulationManager.h:875
Spider_Population_Manager * SpPM
Definition: Spider_BaseClasses.h:100
The landscape class containing all environmental and topographical data.
Definition: Landscape.h:142
static CfgFloat cfg_Erig_EggProducHA("ERIGONE_EGGPRODUCHA", CFG_CUSTOM, 17500.0)
virtual ~Erigone_Population_Manager()
Definition: Erigone_Population_Manager.cpp:141
static CfgFloat cfg_Erig_JuvDevelThreshold("ERIGONE_JUVDEVELTHRESHOLD", CFG_CUSTOM, 0.0)
virtual bool GetMapValue(unsigned a_x, unsigned a_y)
Definition: PositionMap.h:50
virtual void DoProbe(int a_lifestage)
Definition: AOR_Probe.cpp:104
double m_TodaysDroughtScore[3]
Holds the current drought score for three vegetation classes
Definition: Spider_BaseClasses.h:131
static int m_JuvDensityDepMortConst
Juvenile density dependent mortality threshold
Definition: Spider_BaseClasses.h:394
static CfgInt cfg_Erig_SmallestBallooningDistance("ERIGONE_SMALLESTBALLOONDIST", CFG_CUSTOM, 70)
The minimum ballooning distnace.
int SupplySimAreaHeight(void)
Gets the simulation landscape height.
Definition: Landscape.h:2302
static CfgInt cfg_Erig_BallooningStart("ERIGONE_BALLOONINGSTART", CFG_CUSTOM, 0)
static CfgFloat cfg_Erig_SpiderMinWalkTemp("ERIGONE_MIN_WALK_TEMP", CFG_CUSTOM, 3)
long Date(void)
Definition: Calendar.h:57
int SupplySimAreaWidth(void)
Gets the simulation landscape width.
Definition: Landscape.h:2297
The generic base class for juvenile spiders
Definition: Spider_BaseClasses.h:389
static CfgFloat cfg_Erig_EggProducPoor("ERIGONE_EGGPRODUCPOOR", CFG_CUSTOM, 0.33)
Bool configurator entry class.
Definition: Configurator.h:155
The generic base class for female spiders
Definition: Spider_BaseClasses.h:459
int SupplyWindDirection8(void)
Passes a request on to the associated Weather class function, the wind direction in 8 directions for ...
Definition: Landscape.h:2072
This is a data class that is used to create new instances of spider objects by CreateObjects in the r...
Definition: Spider_BaseClasses.h:94
static CfgInt cfg_Erig_Max_Egg_Production("ERIGONE_MAX_EGG_PRODUCTION", CFG_CUSTOM, 100)
int Supply_m_Location_y() const
Returns the ALMaSS y-coordinate.
Definition: PopulationManager.h:243
The base class for all ALMaSS animal classes. Includes all the functionality required to be handled b...
Definition: PopulationManager.h:200
int x
Definition: Spider_BaseClasses.h:97
Movement maps are used for rapid computing of animal movement. This version uses values of 0-3 only.
Definition: MovementMap.h:88
int y
Definition: Spider_BaseClasses.h:98
int SupplyDayInYear(void)
Passes a request on to the associated Calendar class function, the day in the year.
Definition: Landscape.h:2267
int SunSetTime(void)
Definition: Calendar.h:65
bool m_MinWalkTemp
A flag to show whether minimum walking temperature is reached
Definition: Spider_BaseClasses.h:171
static CfgFloat cfg_Erig_TempDailyJuvMortParameterB("ERIGONE_DAILYTEMPJUVMORTPARAMB", CFG_CUSTOM, 0.011)
int SupplyYearNumber(void)
Passes a request on to the associated Calendar class function, returns m_simulationyear
Definition: Landscape.h:2287
static CfgInt cfg_Erig_DailyFemaleMort("ERIGONE_DAILYFEMALEMORT", CFG_CUSTOM, 3)
static CfgFloat cfg_Erig_EggDevelThreshold2("ERIGONE_EGGDEVELTHRESHOLD", CFG_CUSTOM, 25.0)
int value() const
Definition: Configurator.h:116
int SunRiseTime(void)
Definition: Calendar.h:64
int m_TodaysMonth
Holds the current month
Definition: Spider_BaseClasses.h:129
double m_EggDevelopmentThreshold
The lower threshold for egg development - to be assigned in a descendent classes population manager
Definition: Spider_BaseClasses.h:151
static int m_DailyEggMortConst
This is a space for holding cfg species specific parameters - this is the daily egg mortality probabi...
Definition: Spider_BaseClasses.h:351
Erigone_Population_Manager(Landscape *p_L)
Definition: Erigone_Population_Manager.cpp:127
bool OpenTheRipleysOutputProbe()
Definition: PopulationManager.cpp:897
static CfgFloat cfg_Erig_EggProducRHO25("ERIGONE_EGGPRODUCRH", CFG_CUSTOM, 0.6919)
static CfgInt cfg_Erig_HatDensityDepMortConst("ERIGONE_HATDENSITYDEPMORTCONST", CFG_CUSTOM, 3)
static CfgFloat cfg_Erig_DroughtScaler("ERIGONE_DROUGHTSCALER", CFG_CUSTOM, 0.0000125)
static CfgFloat cfg_Erig_EggProducIntemediate("ERIGONE_EGGPRODUCINTERMEDIATE", CFG_CUSTOM, 0.66)
class Weather * g_weather
Definition: Weather.cpp:49
bool OpenTheReallyBigProbe()
Definition: PopulationManager.cpp:1005
unsigned GetLiveArraySize(int a_listindex) override
Gets the number of 'live' objects for a list index in the TheArray.
Definition: PopulationManager.h:657
CfgInt cfg_PmEventfrequency
static CfgFloat cfg_Erig_TempDailyJuvMortParameterA("ERIGONE_DAILYTEMPJUVMORTPARAMA", CFG_CUSTOM, -0.0006)
void Catastrophe()
Allows for the possibility to create population level mortality
Definition: Erigone_Population_Manager.cpp:483
static CfgFloat cfg_Erig_JuvDevelPoor("ERIGONE_JUVDEVELPOOR", CFG_CUSTOM, 0.33333333)
double GetTempHour(int hour)
Get today's weather data at the given hour.
Definition: Weather.h:467
Definition: Spider_BaseClasses.h:105
double GetTempPeriod(long a_date, unsigned int a_period)
Definition: Weather.cpp:707
Integer configurator entry class.
Definition: Configurator.h:102
double m_DailyJuvMort
The daily probability of a juvenile dying - to be assigned in a descendent classes population manager
Definition: Spider_BaseClasses.h:121
static int m_Max_Egg_Production
The maximum number of eggs possible
Definition: Spider_BaseClasses.h:466
static CfgFloat cfg_Erig_DroughtTThreshold("ERIGONE_DROUGHTTTHRESHOLD", CFG_CUSTOM, 10.0)
static CfgFloat cfg_Erig_EggDevelHA("ERIGONE_EGGVDEVELHA", CFG_CUSTOM, 21132.95)
Double configurator entry class.
Definition: Configurator.h:126
string m_SimulationName
stores the simulation name
Definition: PopulationManager.h:622
virtual void Init(void)
An initiation method to initialise all the necessary values - must be overridden for species specific...
Definition: Erigone_Population_Manager.cpp:148
static int m_SimH
The height of the landscape
Definition: Spider_BaseClasses.h:294
int m_guard_cell_size
Definition: PopulationManager.h:793
Definition: Configurator.h:70
int g_random_fnc(const int a_range)
Definition: ALMaSS_Random.cpp:74
static double m_EggDevelConst
This is a space for holding cfg species specific parameters - this is a developmental threshold for h...
Definition: Spider_BaseClasses.h:353
static int m_SimW
The width of the landscape
Definition: Spider_BaseClasses.h:292
static CfgInt cfg_Erig_DailyEggMort("ERIGONE_DAILYEGGMORT", CFG_CUSTOM, 40)
double m_BallooningMortalityPerMeter
The mortality of ballooned distance - to be assigned in a descendent classes population manager
Definition: Spider_BaseClasses.h:139
void PushIndividual(const unsigned a_listindex, TAnimal *a_individual_ptr)
Definition: PopulationManager.cpp:1682
ofstream * ReallyBigOutputPrb
Definition: PopulationManager.h:873
Definition: Spider_BaseClasses.h:49
virtual void KillThis()
Destroys the spider
Definition: Spider_BaseClasses.h:321
static CfgFloat cfg_Erig_EggDevelRHO25("ERIGONE_EGGVDEVELRH", CFG_CUSTOM, 0.145043)
vector< vector< forward_list< TAnimal * > * > > TheSubArrays
Hold all the animal pointers.
Definition: PopulationManager.h:804
static CfgInt cfg_Erig_BallooningDistanceInterval("ERIGONE_BALLOONINGSTEP", CFG_CUSTOM, 10)
The size of the frequency category for ballooning distances.
static CfgInt cfg_Erig_BallooningStop("ERIGONE_BALLOONINGSTOP", CFG_CUSTOM, 366)
static int m_HatDensityDepMortConst
This is a space for holding cfg species specific parameters - this is the mortality constant associat...
Definition: Spider_BaseClasses.h:349
Definition: SubPopulation.h:48
Definition: PopulationManager.h:61
double m_EggDevelopmentThreshold2
The upper threshold for egg development - to be assigned in a descendent classes population manager
Definition: Spider_BaseClasses.h:153
static CfgFloat cfg_Erig_DroughtRHThreshold("ERIGONE_DROUGHTRHTHRESHOLD", CFG_CUSTOM, 90.0)
void CreateObjects(int ob_type, TAnimal *pvo, struct_Spider *data, int number)
Creates new spider objects - this must be overridden in descendent classes
Definition: Erigone_Population_Manager.cpp:451
double m_MinWalkTempThreshold
A minimum dispersal by walking temperature
Definition: Spider_BaseClasses.h:173
double m_JuvDegreesPoor
Contribution to day degrees under poor food
Definition: Spider_BaseClasses.h:161
long SupplyGlobalDate(void)
Passes a request on to the associated Calendar class function, returns the simulation global date for...
Definition: Landscape.h:2292
int m_DispersalDistances[10000]
The distribution of dispersal distances - to be assigned in a descendent classes population manager
Definition: Spider_BaseClasses.h:123
double m_EggProdDDegsGood
Links reproduction to food levels and day degrees - good food.
Definition: Spider_BaseClasses.h:163
double m_TodaysBallooningTime
The current day's ballooning time
Definition: Spider_BaseClasses.h:133
Movement maps are used for rapid computing of animal movement. This version uses values of 0 to max i...
Definition: MovementMap.h:52
CfgBool cfg_ReallyBigOutputUsed
void IncLiveArraySize(int a_listindex)
Increments the number of 'live' objects for a list index in the TheArray.
Definition: PopulationManager.h:665