File failed to load: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/extensions/ams.js
 |
ALMaSS
1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
|
Go to the documentation of this file.
29 #include <forward_list>
32 #ifndef Osmia_Population_ManagerH
33 #define Osmia_Population_ManagerH
271 double maxnests = a_noNests *
m_Area;
272 if (maxnests> 2147000000 ) maxnests= 2147000000;
290 if((*it)->ZeroCells())
312 for (
int e = 0; e < nopolys; e++) {
325 for (
unsigned int s = 0; s <
m_PolyList.size(); s++) {
332 return m_PolyList[a_polyindex].IsOsmiaNestPossible();
338 m_PolyList[a_polyindex].IncOsmiaNesting(a_nest);
345 m_PolyList[a_polyindex].ReleaseOsmiaNest(a_nest);
360 for (
unsigned int s = 0; s <
m_PolyList.size(); s++) {
361 if (!
m_PolyList[s].SanityCheck2())
return false;
380 #ifdef __OSMIA_PESTICIDE_STORE
381 unsigned int m_female_count = 0;
396 #ifdef __OSMIATESTING
398 void RecordEggProduction(
int a_eggs);
399 void RecordEggLength(
int a_length);
400 void RecordLarvalLength(
int a_length);
401 void RecordPrePupaLength(
int a_length);
402 void RecordPupaLength(
int a_length);
403 void RecordInCocoonLength(
int a_length);
404 void RecordFemaleWeight(
double a_mass) { m_FemaleWeights.push_back(a_mass); };
405 void SetFemaleWeightLock(
void) {omp_set_nest_lock(m_female_weight_record_lock);}
406 void ReleaseFemaleWeightLock(
void) {omp_unset_nest_lock(m_female_weight_record_lock);}
423 return return_nest_ptr;
488 #ifdef __OSMIATESTING
490 ofstream m_eggsfirstnest;
491 double m_egghistogram[4][30];
493 #endif // __OSMIATESTING
498 #ifdef __OSMIATESTING
500 vector<double> m_FemaleWeights;
501 omp_nest_lock_t *m_female_weight_record_lock;
570 if (((t2 < 13.0) && (t1 < 13.0) && (t0 < 13.0)) && (((t5 - t4 > 1.0) && (t4 - t3 > 1.0)) || ((t3 < 13.0) && (t5 - t4 >= 3.0))))
586 #ifdef __OSMIARECORDFORAGE
587 double meanforage = 0.0;
588 if (Osmia_Female::m_foragecount > 0) meanforage = Osmia_Female::m_foragesum / Osmia_Female::m_foragecount;
589 cout << meanforage << endl;
590 Osmia_Female::m_foragesum = 0.0;
591 Osmia_Female::m_foragecount = 0.0;
594 #ifdef __OSMIATESTING
596 ofstream file1(
"OsmiaStageLengths.txt", ios::app);
598 file1 <<
"Mean egg stage days is:" <<
'\t' << m_EggStageLength.
get_meanvalue() << endl;
599 file1 <<
"Mean larval stage days is:" <<
'\t' << m_LarvalStageLength.
get_meanvalue() << endl;
600 file1 <<
"Mean prepupal stage days is:" <<
'\t' << m_PrePupaStageLength.
get_meanvalue() << endl;
601 file1 <<
"Mean pupal stage days is:" <<
'\t' << m_PupaStageLength.
get_meanvalue() << endl;
602 file1 <<
"Mean incocoon stage days is:" <<
'\t' << m_InCocoonStageLength.
get_meanvalue() << endl;
static CfgFloat cfg_OsmiaPesticideProbability("OSMIA_PPP_PROB", CFG_CUSTOM, 0.0)
The probability of death per day if the pesticide body burden threshold is exceeded.
static CfgFloat cfg_OsmiaParasitismProbToTimeCellOpen("OSMIA_PARASITISMPROBTOTIMECELLOPEN", CFG_CUSTOM, 0.0075)
The conversion rate from timethe cell is open to open cell parasitism.
void SetCellLock(void)
Set the cell lock.
Definition: Osmia.h:160
int m_x
cell_index x
Definition: Osmia_Population_Manager.h:82
double m_NestProvisioningParameters[365]
A lookup table used to store pre-calculated nest provisioning parameters in advance since they are CP...
Definition: Osmia_Population_Manager.h:526
void AddParasitoid(TTypeOfOsmiaParasitoids a_type, int a_x, int a_y)
Definition: Osmia_Population_Manager.h:150
static void SetTotalNestsPossible(int a_total)
Set the maximum number of nests possible for a bee.
Definition: Osmia.h:684
Osmia_Nest_Manager()
Osmia nest manager constructor.
Definition: Osmia_Population_Manager.h:304
unsigned int SupplyNumberOfPolygons(void)
Returns the number of polygons in the landscape.
Definition: Landscape.h:2127
CfgFloat cfg_OsmiaInCocoonOverwinteringTempThreshold
Is the temperature developmental threshold for overwintering development (a temperature below which d...
static int m_OsmiaFemaleLifespan
holds the value for max female lifespan
Definition: Osmia.h:304
double g_rand_uni_fnc()
Definition: ALMaSS_Random.cpp:56
static double m_DailyDevelopmentMortPrepupae
This holds the daily mortality for pre-pupae.
Definition: Osmia.h:230
int GetYear(void)
Definition: Calendar.h:71
unsigned m_Wide
the number of subpopulation cells wide
Definition: Osmia_Population_Manager.h:128
static void SetParameterValues()
Used to populate the static members holding mortality and development parameters.
Definition: Osmia.cpp:215
bool SanityCheck()
Returns the number of current nests.
Definition: Osmia_Population_Manager.h:285
static void SetTemp(double a_temperature)
Definition: Osmia.h:383
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
bool IsOsmiaNestPossible()
Test to see if a nest is found.
Definition: Osmia_Population_Manager.h:233
double GetPrePupalDevelDays()
Returns the amount of development a pre-pupal bee will get today based on temperature.
Definition: Osmia_Population_Manager.h:482
void ReplaceNestPointer(TAnimal *a_oldpointer, TAnimal *a_newpointer)
Definition: Osmia.h:169
CfgFloat cfg_OsmiaFemaleMassMin
min possible female mass in mg
int m_FlyingWeather
A daily value to indicate the hours the weather is OK for Osmia adult activity.
Definition: Osmia_Population_Manager.h:516
static double m_MaleMaxTargetProvisionMass
The maximum target provisioning for a male cell.
Definition: Osmia.h:270
Definition: PopulationManager.h:464
static vector< double > m_ParasitoidAttackChance
Holds the probability per capita of parasitoid attack for a subpopulation sized cell.
Definition: Osmia.h:296
double GetSubPopnSize()
Definition: Osmia_Population_Manager.h:97
bool SanityCheck2()
Checks for zero cell nests.
Definition: Osmia_Population_Manager.h:287
APoint SupplyARandomLocPoly(int a_poly_id)
The function to get a random location for the given poly ID.
Definition: Landscape.h:263
static double m_PollenCompetitionsReductionScaler
An attribute used to scale the available pollen based on assumed competetion from other bee species.
Definition: Osmia.h:571
unsigned m_Size
Total cells.
Definition: Osmia_Population_Manager.h:134
OsmiaPolygonEntry(int a_index, int a_area)
Definition: Osmia_Population_Manager.h:213
double m_MaxOsmiaNests
to record the number of possible osmia nests
Definition: Osmia_Population_Manager.h:196
static CfgInt cfg_OsmiaMinNoEggsInNest("OSMIA_MINNOEGGSINNEST", CFG_CUSTOM, 3)
The mimimum number of eggs planned for a nest.
void DailyMortality()
Removes parasitoids killed by daily mortality.
Definition: Osmia_Population_Manager.cpp:811
unsigned m_High
the number of subpopulation cells high
Definition: Osmia_Population_Manager.h:130
static double m_OsmiaPrepupalDevelTotalDays10pct
10% of the number of days for prepupal development - just for speed
Definition: Osmia.h:248
~OsmiaPolygonEntry()
The destructor for OsmiaPolygonEntry.
Definition: Osmia_Population_Manager.h:223
bool SantityCheck(int a_polyindex)
Checks whether a nest is possible here.
Definition: Osmia_Population_Manager.h:416
int y
y-coord
Definition: Osmia_Population_Manager.h:167
void SetMortalities(array< double, 12 > a_morts)
Definition: Osmia_Population_Manager.h:113
Definition: LandscapeFarmingEnums.h:183
static int m_TotalNestsPossible
The maximum number of nests possible for a bee.
Definition: Osmia.h:290
char * value() const
Definition: Configurator.h:182
static CfgArray_Double cfg_OsmiaNectarThresholds("OSMIA_NECTAR_THRESHOLDS", CFG_CUSTOM, 24, vector< double > { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 })
Monthly nectar thresholds, 12 quantity then 12 quality. Units mj/m2 and mg/l.
static CfgFloat cfg_OsmiaMaxPrecipForFlying("OSMIA_MAX_PRECIP_FOR_FLYING", CFG_CUSTOM, 0.1)
The maximum precipitation for osmia to fly out.
virtual void DoLast()
Things to do after the EndStep - here calculations related to summing global day degrees.
Definition: Osmia_Population_Manager.h:552
void RemoveFromDensityGrid(int a_index)
Adds a bee to the density grid using the grid index value.
Definition: Osmia_Population_Manager.h:461
Used for creation of a new Osmia object.
Definition: Osmia_Population_Manager.h:161
virtual void st_Dying(void)
Behavioural state dying.
Definition: Osmia.cpp:258
static double m_MaleMaxMass
The minimum Male mass.
Definition: Osmia.h:280
int GetDensity(APoint a_loc)
Gets the number of bees at a location.
Definition: Osmia_Population_Manager.h:466
vector< OsmiaPollenNectarThresholds > m_PN_thresholds
Holds a list of pollen and nectar thresholds, one for each month.
Definition: Osmia_Population_Manager.h:542
double pest_mortality
The state tof the Osmia, this is used to set a dead egg because of pesticide.
Definition: Osmia_Population_Manager.h:183
void ReleaseOsmiaNest(Osmia_Nest *a_nest)
Test release an Osmia nest that is no longer used.
Definition: Osmia_Population_Manager.h:238
static double m_OsmiaFemaleMassFromProvMassSlope
holds the coefficient value for the female mass calculation from provision mass
Definition: Osmia.h:266
static CfgInt cfg_TotalNestsPossible("OSMIA_TOTALNESTSPOSSIBLE", CFG_CUSTOM, 5)
The maximum number of nests possible for a bee.
TTypeOfOsmiaParasitoids
The types of parasitism possible for Osmia eggs/larvae.
Definition: Osmia.h:83
static double m_OsmiaPrepupalDevelTotalDays
Number of days for prepupal development.
Definition: Osmia.h:246
static double m_BombylidProbability
holds the probability of bombylid fly parasitism if open nest parasitoid
Definition: Osmia.h:292
static void SetBombylidProbability(double a_prob)
Sets Bombylid probability.
Definition: Osmia.h:686
Landscape * L
Landscape pointer.
Definition: Osmia_Population_Manager.h:173
String configurator entry class.
Definition: Configurator.h:173
int m_y
cell_index y
Definition: Osmia_Population_Manager.h:84
class Calendar * g_date
Definition: Calendar.cpp:37
Definition: PopulationManager.h:82
const char * m_ListNames[32]
A list of life-stage names.
Definition: PopulationManager.h:628
double m_DiffusionConstant
The distance related dispersal loss constants.
Definition: Osmia_Population_Manager.h:78
static double m_FemaleMaxMass
The maximum female mass.
Definition: Osmia.h:276
static double m_PollenScoreToMg
The conversion rate from pollen availability score to mg pollen provisioned per day.
Definition: Osmia.h:282
vector< double > m_cell_provision
Definition: Osmia.h:124
static CfgFloat cfg_OsmiaMinTempForFlying("OSMIA_MIN_TEMP_FOR_FLYING", CFG_CUSTOM, 6)
The minimum temperature in degree for osmia to fly out.
void ClearDensityGrid()
Empties the bee density grid.
Definition: Osmia_Population_Manager.h:477
static double m_ParasitismProbToTimeCellOpen
holds the ratio of open cell parasitism to time cell is open
Definition: Osmia.h:294
The class to handle all Osmia bee population related matters.
Definition: Osmia_Population_Manager.h:376
int GetDensity(int a_index)
Gets the number of bees at a location based on the grid index value.
Definition: Osmia_Population_Manager.h:472
static int m_OsmiaFemaleMaxEggsPerNest
Holds the parameter for maximum planned eggs per nest.
Definition: Osmia.h:332
static double m_MaximumCellConstructionTime
The longest possible construction time for a cell.
Definition: Osmia.h:288
TTypeOfOsmiaLifeStages
Osmia life stages modelled.
Definition: Osmia_Population_Manager.h:45
static CfgInt cfg_MaximumCellConstructionTime("OSMIA_MAXCELLCONSTRUCTTIME", CFG_CUSTOM, 4)
The maximum time allowed to construct a cell in days.
static double m_OsmiaFemaleR50distance
holds the value for the female typical homing distance
Definition: Osmia.h:298
void UpdateOsmiaNesting()
Recalculate the nest finding probability.
Definition: Osmia_Population_Manager.h:255
Osmia_Nest * CreateNest(int a_x, int a_y, int a_polyindex)
Create the osmia nest here
Definition: Osmia_Population_Manager.h:335
static OsmiaParasitoid_Population_Manager * m_OurParasitoidPopulationManager
This is a time saving pointer to the parasitoid population manager object.
Definition: Osmia.h:220
static CfgStr cfg_OsmiaNestByLE_Datafile("OSMIA_NESTBYLEDATAFILE", CFG_CUSTOM, "OsmiaNestsByHabitat.txt")
Input file for Osmia nest density per LE.
PopulationManagerList * SupplyThePopManagerList()
Set the pointer to the list of active population managers.
Definition: Landscape.h:313
void UpdateOsmiaNesting()
Tell all LE objects to update their osmia nest status.
Definition: Osmia_Population_Manager.h:321
double overwintering_degree_days
This is used to set accumulated overwinter degree days when starting the simulation,...
Definition: Osmia_Population_Manager.h:185
double value() const
Definition: Configurator.h:142
void Dispersal()
Moves parasitoids that move by dispersal.
Definition: Osmia_Population_Manager.cpp:820
int m_CellIndexArray[8]
The index of the surrounding cells, a speed optimisation.
Definition: Osmia_Population_Manager.h:80
static void SetMinEggsPerNest(int a_eggs)
Set the min eggs parameter value.
Definition: Osmia.h:659
static double m_CocoonToProvisionMass
The ratio of cocoon to provision mass.
Definition: Osmia.h:314
static void SetProvisionToCocoonMass(double a_ratio)
Set the conversion ratio provisioning to cocoon.
Definition: Osmia.h:670
static double m_TempToday
The temperature today. This is static because there is only one temperature today.
Definition: Osmia.h:222
static int m_ForageSteps
The number of distance steps from nest to max forage range.
Definition: Osmia.h:569
void Reproduce()
Carries out any reproduction possible.
Definition: Osmia_Population_Manager.cpp:836
static double m_OsmiaLarvaDevelTotalDD
Is the number of day degrees needed for larval hatch above the developmental threshold for larvae.
Definition: Osmia.h:238
void AddDispersers(int a_ref, double a_dispersers)
Definition: Osmia_Population_Manager.h:140
OsmiaParasitoidSubPopulation(double a_dispersalfraction, double a_startno, int a_x, int a_y, int a_wide, int a_high, OsmiaParasitoid_Population_Manager *a_popman)
Definition: Osmia_Population_Manager.cpp:753
static double m_TotalProvisioningMassLoss
The total provision mass loss expected first cocoon to last.
Definition: Osmia.h:318
static double m_OsmiaInCocoonOverwinteringTempThreshold
holds the value for the InCocoon overwintering temperature threshold
Definition: Osmia.h:250
Definition: ALMaSS_Random.h:70
bool sex
the sex of the Osmia
Definition: Osmia_Population_Manager.h:171
static double m_OsmiaPupaDevelTotalDD
Is the number of day degrees needed for pupal hatch above the developmental threshold for pupae.
Definition: Osmia.h:242
vector< femalecocoonmassvsagelogisticcurvedata > m_FemaleCocoonMassEqns
Holds logistic equation values per age/mass of female for first female cocoon mass.
Definition: Osmia_Population_Manager.h:530
vector< double > eggsexratiovsagelogisticcurvedata
Definition: Osmia_Population_Manager.h:55
static CfgArray_Double Cfg_OsmiaFemaleCocoonMassVsMotherMassLinear("OSMIA_FEMALECOCOONMASSVSMOTHERSMASSLINEAR", CFG_CUSTOM, 2, vector< double > { 0.3, 65.1 })
Array of parameters for the Osmia female first cocoon mass vs mothers mass linear equation
static double m_OsmiaInCocoonEmergCountSlope
holds the coefficient value for the InCocoon emergence counter calculation
Definition: Osmia.h:262
int m_ListNameLength
the number of life-stages simulated in the population manager
Definition: PopulationManager.h:626
static CfgBool cfg_UsingMechanisticParasitoids("OSMIA_USEMECHANISTICPARASITOIDS", CFG_CUSTOM, false)
The flag for using mechanistic (true) or statistical (false) parasitoid assumptions.
void ReleasePolygonLock(int a_polyref)
Function to release the given polygon locks.
Definition: Landscape.h:603
static void SetParasitoidParameters(vector< double > a_params)
Definition: Osmia.h:691
void SetPolygonLock(int a_polyref)
Function to set the given polygon lock.
Definition: Landscape.h:601
bool SanityCheck(int a_polyindex)
Definition: Osmia_Population_Manager.h:355
static void SetPollenGiveUpThreshold(double a_prop)
Record the give up level for pollen from a forage patch we are foraging from.
Definition: Osmia.h:651
void ReleaseOsmiaNest(int a_polyindex, Osmia_Nest *a_nest)
Release the given nest in the given polygon.
Definition: Osmia_Population_Manager.h:426
vector< double > m_PrePupalDevelRates
Holds the prepupal development rates for fast access.
Definition: Osmia_Population_Manager.h:538
static void AddForageEfficiency(double a_eff)
Save a forage efficiency value.
Definition: Osmia.h:695
int age
age
Definition: Osmia_Population_Manager.h:169
int GetMaxNoNests()
Returns the max number of nests.
Definition: Osmia_Population_Manager.h:283
static double m_OsmiaFemaleR90distance
holds the value for the female max homing distance
Definition: Osmia.h:300
static double m_OsmiaEggDevelTotalDD
Is the number of day degrees needed for egg development to hatch.
Definition: Osmia.h:234
bool value() const
Definition: Configurator.h:164
Landscape * m_TheLandscape
holds an internal pointer to the landscape
Definition: PopulationManager.h:624
static void SetUsingMechanisticParasitoids(bool a_flag)
Sets the UsingMechanisticParasitoids flag.
Definition: Osmia.h:690
double m_PollenCompetitionsReductionScaler
An attribute used to scale the available pollen based on assumed competetion from other bee species.
Definition: Osmia_Population_Manager.h:536
static CfgFloat cfg_Osmia_LifetimeCocoonMassLoss("OSMIA_LIFETIMECOCOONMASSLOSS", CFG_CUSTOM, 30.0)
Assumed (fitted) value for the total difference in cocoon mass from first to last cocoon
static CfgFloat cfg_OsmiaFemaleBckMort("OSMIA_FEMALEBACKMORT", CFG_CUSTOM, 0.02)
The daily background mortality rate for females.
bool m_PreWinteringEndFlag
Definition: Osmia_Population_Manager.h:518
The Osmia nest is assumed to be a linear element with egg cells added one by one.
Definition: Osmia.h:128
static CfgArray_Double cfg_OsmiaParasDailyMort("OSMIA_PARAS_DAILYMORT", CFG_CUSTOM, 24, vector< double > { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 })
Montly mortalities for TTypeOfOsmiaParasitoids parasitoids. Each set of 12 are the mortalities matchi...
CfgFloat cfg_OsmiaProvMassFromCocoonMass("OSMIAS_PROVISIONINGTOCOCOON", CFG_CUSTOM, 3.247)
The relationhip between cocoon mass and provisioning mass is linear.
static Osmia_Nest_Manager * m_OurManager
A pointer to the one and only nest population manager.
Definition: Osmia.h:148
double m_nectarTquan
Definition: Osmia_Population_Manager.h:65
double GetWindHour(int hour)
Definition: Weather.h:469
void IncOsmiaNesting(Osmia_Nest *a_nest)
Add an occupied nest.
Definition: Osmia_Population_Manager.h:263
AOR_Probe * m_AOR_Probe
A pointer to the AOR probe.
Definition: PopulationManager.h:875
void SetThisMonth(int a_month)
Definition: Osmia_Population_Manager.h:112
bool GetNestPossible(TTypesOfLandscapeElement index)
Is a nest possible in this polytype.
Definition: Osmia_Population_Manager.h:349
const int June
Julian start dates of the month of June.
Definition: Landscape.h:48
TTypesOfLandscapeElement
Values that represent the types of landscape polygon that are represented in ALMaSS.
Definition: LandscapeFarmingEnums.h:57
unsigned m_CellSize
Width of the cell in m (they are square)
Definition: Osmia_Population_Manager.h:132
The landscape class containing all environmental and topographical data.
Definition: Landscape.h:142
bool m_OverWinterEndFlag
Definition: Osmia_Population_Manager.h:520
void AddCocoon(TAnimal *a_cocoon)
Adds a cocoon to the nest, this is only used to initialise the simulation.
Definition: Osmia.h:164
CfgFloat cfg_OsmiaInCocoonEmergenceTempThreshold
Is the temperature threshold for calculating days left to emergence (a temperature below which days a...
static CfgInt cfg_OsmiaMaxNoEggsInNest("OSMIA_MAXNOEGGSINNEST", CFG_CUSTOM, 30)
The maximum number of eggs planned for a nest
Osmia_Nest_Manager m_OurOsmiaNestManager
This provides the interface to the Osmia_Nests linked to the polgons.
Definition: Osmia_Population_Manager.h:524
int SimH
stores the simulation height
Definition: PopulationManager.h:614
static CfgArray_Double cfg_OsmiaPerCapitaParasationChance("OSMIA_PERCAPITAPARASITATIONCHANCE", CFG_CUSTOM, static_cast< int >(TTypeOfOsmiaParasitoids::topara_foobar) - 1, vector< double > { 0.00001, 0.00002 })
Array of parameters for per capita parasitoid probability for each type of parasitoid in the order ba...
PollenMap_centroidbased * m_ThePollenMap
A pointer to the pollen map object.
Definition: Osmia_Population_Manager.h:514
static double m_OsmiaFemaleMassFromProvMassConst
holds the constant term value for the female mass calculation from provision mass
Definition: Osmia.h:264
int GetForageHours()
Return the Osmia flying weather hours.
Definition: Osmia_Population_Manager.h:432
static double m_OsmiaInCocoonWinterMortSlope
holds the coefficient value for the InCocoon winter mortality calculation
Definition: Osmia.h:258
virtual void DoProbe(int a_lifestage)
Definition: AOR_Probe.cpp:104
static CfgFloat cfg_OsmiaPollenGiveUpThreshold("OSMIA_POLLENGIVEUPTHRESHOLD", CFG_CUSTOM, 0.75, 0, 1.0)
The change in proportion pollen before a new patch is selected.
vector< int > m_FemaleDensityGrid
holds numbers of females per 1km2
Definition: Osmia_Population_Manager.h:532
static OsmiaForageMask m_foragemask
Definition: Osmia.h:527
static OsmiaForageMaskDetailed m_foragemaskdetailed
Definition: Osmia.h:528
static CfgInt cfg_OsmiaStartNo("OSMIA_STARTNOS", CFG_CUSTOM, 50000)
The starting number of Osmia InCocoons.
static void SetForageMaskDetailed(int a_step, int a_max)
Initialise the detailed forage mask.
Definition: Osmia.h:646
int SupplySimAreaHeight(void)
Gets the simulation landscape height.
Definition: Landscape.h:2302
static void SetForageSteps(int a_sz)
Definition: Osmia.h:644
int SupplySimAreaWidth(void)
Gets the simulation landscape width.
Definition: Landscape.h:2297
TTypesOfLandscapeElement TranslateEleTypes(int EleReference)
Returns element type translated from the ALMaSS reference number.
Definition: Landscape.h:2313
double get_meanvalue() const
Returns the mean.
Definition: PopulationManager.h:500
A simple class defining an x,y coordinate set.
Definition: ALMaSS_Setup.h:52
void AddEgg(TAnimal *a_egg)
Adds an egg to the nest.
Definition: Osmia.h:168
CfgFloat cfg_OsmiaCocoonMassFromProvMass("OSMIAS_COCOONTOPROVISIONING", CFG_CUSTOM, 1.0/3.247)
The relationhip between cocoon massand provisioning mass is linear.
static void SetPollenGiveUpReturn(double a_value)
Record the give up level for pollen from a forage patch we are foraging from.
Definition: Osmia.h:653
CfgInt cfg_OsmiaDetailedMaskStep
Step size for the detailed forage mask. Step is each step out from the centre (min 1)
int x
x-coord
Definition: Osmia_Population_Manager.h:165
Bool configurator entry class.
Definition: Configurator.h:155
double GetProvisioningParams(int a_age)
Returns the values of provisioning parameters for a adult age.
Definition: Osmia_Population_Manager.h:435
static double m_MinimumCellConstructionTime
The shortest possible construction time for a cell - normally 1 day.
Definition: Osmia.h:286
~OsmiaParasitoidSubPopulation()
Definition: Osmia_Population_Manager.cpp:846
static CfgFloat cfg_OsmiaPesticideThreshold("OSMIA_PPP_THRESHOLD", CFG_CUSTOM, 10000.0)
The pesticide body burden threshold for ppp effects.
The base class for all ALMaSS animal classes. Includes all the functionality required to be handled b...
Definition: PopulationManager.h:200
static int m_ThisMonth
records the month (optimsation)
Definition: Osmia_Population_Manager.h:90
int m_no_eggs
Definition: Osmia.h:122
static double m_FemaleMinTargetProvisionMass
The minimum target provisioning for a female cell.
Definition: Osmia.h:272
void CalForageHours(void)
Definition: Osmia_Population_Manager.cpp:613
int m_GridExtent
holds numbers of grid cells per row
Definition: Osmia_Population_Manager.h:534
virtual void DoAfter()
Things to do before the EndStep.
Definition: Osmia_Population_Manager.h:550
void RemoveParasitoids(int a_ref, double a_dispersers)
Definition: Osmia_Population_Manager.h:143
long OldDays(void)
Definition: Calendar.h:60
static double m_OsmiaInCocoonWinterMortConst
holds the constant term value for the InCocoon winter mortality calculation
Definition: Osmia.h:256
static double m_OsmiaInCocoonEmergenceTempThreshold
holds the value for the InCocoon emergence temperature threshold
Definition: Osmia.h:252
static CfgArray_Double cfg_OsmiaPollenThresholds("OSMIA_POLLEN_THRESHOLDS", CFG_CUSTOM, 24, vector< double > { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 })
Monthly pollen thresholds, 12 quantity then 12 quality. Units mg/m2 and unitless.
static CfgArray_Double cfg_OsmiaPrepupalDevelRates("OSMIA_PREPUPALDEVELRATES", CFG_CUSTOM, 42, vector< double > { 0.118180491, 0.128062924, 0.139167698, 0.151690375, 0.165863251, 0.181962547, 0.200316654, 0.221315209, 0.245418359, 0.273164807, 0.305175879, 0.342150483, 0.384842052, 0.434002716, 0.490272059, 0.553979475, 0.62482638, 0.701432201, 0.780791977, 0.857828943, 0.925409524, 0.97526899, 1, 0.995492173, 0.96251684, 0.90641791, 0.835121012, 0.756712977, 0.677752358, 0.602659522, 0.53389011, 0.472441557, 0.418380352, 0.371255655, 0.330377543, 0.294984821, 0.264336547, 0.237755941, 0.214646732, 0.194494708, 0.176862031, 0.161378614 })
This array is the daily rate of development of prepupa with temperature rounded to the nearest degree...
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: MapErrorMsg.cpp:69
CfgFloat cfg_OsmiaAdultMassCategoryStep("OSMIA_ADULTMASSCLASSSTEP", CFG_CUSTOM, 10.0)
The size class step for Osmia female mass.
Osmia_Nest * CreateNest(int a_x, int a_y, int a_polyindex)
Creates an Osmia_Nest in the polygon referenced by the index polyindex.
Definition: Osmia_Population_Manager.h:418
Definition: Osmia_Population_Manager.h:119
Base class for all population managers for agent based models.
Definition: PopulationManager.h:645
Definition: Configurator.h:208
void Remove(double a_change)
Definition: Osmia_Population_Manager.h:96
static bool m_UsingMechanisticParasitoids
Flag for switching between ways of calculating parasitism.
Definition: Osmia.h:324
static CfgArray_Double cfg_OsmiaParasStartHighLow("OSMIA_PARAS_STARTHIGHLOW", CFG_CUSTOM, 2 *(static_cast< unsigned >(TTypeOfOsmiaParasitoids::topara_foobar) - 1), vector< double > { 2.0, 1.0, 2.0, 1.0})
Starting numbers for TTypeOfOsmiaParasitoids parasitoids. Each entry is the max and min starting numb...
static CfgFloat cfg_OsmiaBombylidProb("OSMIA_BOMBYLIDPROB", CFG_CUSTOM, 0.5)
The probability that a parasitoid is Bombylid - statistical parasitoids only.
int m_CurrentOsmiaNests
to record the number of actual osmia nests (only used for speed - it is the same as the size of the v...
Definition: Osmia_Population_Manager.h:198
int SupplyDayInYear(void)
Passes a request on to the associated Calendar class function, the day in the year.
Definition: Landscape.h:2267
static CfgArray_Double cfg_OsmiaParasDispersal("OSMIA_PARAS_DISPERSAL", CFG_CUSTOM, static_cast< unsigned >(TTypeOfOsmiaParasitoids::topara_foobar) - 1, vector< double > { 0.001, 0.0001 })
Dispersal rates for TTypeOfOsmiaParasitoids parasitoids. Each entry is the dispersal rate for the par...
static CfgFloat cfg_OsmiaPollenGiveUpReturn("OSMIA_POLLENGIVEUPRETURN", CFG_CUSTOM, 0.75, 0, 50.0)
The change in proportion pollen before a new patch is selected.
int SunSetTime(void)
Definition: Calendar.h:65
double m_pollenTqual
Definition: Osmia_Population_Manager.h:62
CfgInt cfg_OsmiaForageSteps
static CfgArray_Double cfg_OsmiaSexRatioVsMotherMassLinear("OSMIA_SEXRATIOVSMOTHERSMASSLINEAR", CFG_CUSTOM, 2, vector< double > { 0.0055, -0.1025 })
Array of parameters for the Osmia sex ratio vs mothers mass linear equation
double GetFirstCocoonProvisioningMass(int a_age, int a_massclass)
Return the first cocoon mass for a nest give an age and female mass.
Definition: Osmia_Population_Manager.h:439
static void SetMaxEggsPerNest(int a_eggs)
Set the min eggs parameter value.
Definition: Osmia.h:661
static CfgFloat cfg_OsmiaMaxWindSpeedForFlying("OSMIA_MAX_WIND_SPEED_FOR_FLYING", CFG_CUSTOM, 8)
The maximum wind speed in meter per second for osmia to fly out.
int GetNoNests()
Returns the number of current nests.
Definition: Osmia_Population_Manager.h:281
bool m_is_paralleled
This is used to indicate whether the species is paralleled.
Definition: PopulationManager.h:796
int m_x
Definition: ALMaSS_Setup.h:55
static double m_OverwinteringTempThreshold
Parameter for overwintering day degrees threshold.
Definition: Osmia.h:515
static double m_DailyDevelopmentMortPupae
This holds the daily mortality for pupae.
Definition: Osmia.h:232
static CfgFloat cfg_PollenScoreToMg("OSMIA_POLLENSCORETOMG", CFG_CUSTOM, 0.8)
The conversion rate from pollen availability score to mg pollen provisioned per day per bee - a fitti...
int GetNoNests(int a_polyindex)
Definition: Osmia_Population_Manager.h:351
A data class to hold each pair of pollen and nectar thresholds.
Definition: Osmia_Population_Manager.h:59
void SetIndexAttribute(int a_index)
Sets the area attrribute.
Definition: Osmia_Population_Manager.h:279
void TheAOROutputProbe() override
Output method.
Definition: Osmia_Population_Manager.cpp:489
int value() const
Definition: Configurator.h:116
Landscape * g_landscape_ptr
Definition: Landscape.cpp:352
~Osmia_Nest_Manager()
Osmia nest manager denstructor.
Definition: Osmia_Population_Manager.h:309
static double m_OsmiaFemaleBckMort
Holds the parameter for unspecified female daily mortality.
Definition: Osmia.h:326
CfgFloat cfg_OsmiaFemaleMassMax
max possible female mass in mg
int SunRiseTime(void)
Definition: Calendar.h:64
bool CheckZeroNests()
Definition: Osmia_Population_Manager.h:359
static CfgArray_Double cfg_OsmiaSexRatioVsMotherAgeLogistic("OSMIA_SEXRATIOVSMOTHERSAGELOGISTIC", CFG_CUSTOM, 4, vector< double > { 14.90257909, 0.09141286, 0.6031729, -0.39213001 })
Array of parameters for the Osmia sex ratio vs mothers age logistic equation
static double m_OsmiaLarvaDevelThreshold
Is temperature developmental threshold for larval development.
Definition: Osmia.h:240
double m_OsmiaNestProb
to record the chance of osmia nesting
Definition: Osmia_Population_Manager.h:194
std::vector< double > value() const
Definition: Configurator.h:219
OsmiaParasitoid_Population_Manager * m_OurPopulationManager
A pointer to the owning population manager.
Definition: Osmia_Population_Manager.h:86
int SimW
stores the simulation width
Definition: PopulationManager.h:616
double GetSize(int a_x, int a_y)
Definition: Osmia_Population_Manager.h:147
TTypesOfLandscapeElement SupplyElementTypeFromVector(unsigned int a_index)
Gets the TTypesOfVegetation type of a polygon using the m_elems.
Definition: Landscape.h:1727
void SetAreaAttribute(int a_area)
Sets the area attrribute.
Definition: Osmia_Population_Manager.h:277
static double m_ProvisionToCocoonMass
The ratio of provison to cocoon mass.
Definition: Osmia.h:316
static double m_DensityDependentPollenRemovalConst
A parameter to link linear reduction in pollen availability to Osmia numbers per 1km2.
Definition: Osmia.h:284
static int m_OsmiaFemalePrenesting
holds the value for the duration of prenesting
Definition: Osmia.h:302
void Add(double a_change)
Definition: Osmia_Population_Manager.h:95
static double m_OsmiaInCocoonPrewinteringTempThreshold
holds the value for the InCocoon prewintering temperature threshold
Definition: Osmia.h:254
static double m_OsmiaPupaDevelThreshold
Is temperature developmental threshold for pupal development.
Definition: Osmia.h:244
double mass
The mass of the Osmia in mg.
Definition: Osmia_Population_Manager.h:181
bool IsOsmiaNestPossible(int a_polyindex)
Checks whether a nest is possible here.
Definition: Osmia_Population_Manager.h:414
vector< OsmiaParasitoidSubPopulation * > m_SubPopulations
The array storing the sub-populations of parasitoids.
Definition: Osmia_Population_Manager.h:124
vector< double > femalecocoonmassvsagelogisticcurvedata
Definition: Osmia_Population_Manager.h:56
class Weather * g_weather
Definition: Weather.cpp:49
bool m_PossibleNestType[tole_Foobar]
Holds a set of flags indicating whether an Osmia nest is possible (true) or not (false)
Definition: Osmia_Population_Manager.h:369
Definition: Osmia_Population_Manager.h:69
MapErrorMsg * g_msg
Definition: MapErrorMsg.cpp:41
static double m_TotalProvisioningMassLossRange
The variability around the expected total mass loss.
Definition: Osmia.h:320
bool IsEndPreWinter()
Returns flag to denore the end of prewintering, if ended it is set to true.
Definition: Osmia_Population_Manager.h:410
unsigned GetLiveArraySize(int a_listindex) override
Gets the number of 'live' objects for a list index in the TheArray.
Definition: PopulationManager.h:657
double m_pollenTquan
Definition: Osmia_Population_Manager.h:64
vector< OsmiaPolygonEntry > m_PolyList
Definition: Osmia_Population_Manager.h:366
double m_PrePupalDevelDaysToday
Holds the prepupal development rates for today for fast access.
Definition: Osmia_Population_Manager.h:540
double GetTempHour(int hour)
Get today's weather data at the given hour.
Definition: Weather.h:467
Definition: Osmia_Population_Manager.h:300
static CfgInt cfg_OsmiaFemaleFindNestAttemptNo("OSMIA_FEMALEFINDNESTATTEMPTNO", CFG_CUSTOM, 20)
Parameter to set the numbe of nest finding attempts.
static probability_distribution m_exp_ZeroTo1
Static instance of the probability_distribution class of distance probabilities for approx exponentia...
Definition: Osmia_Population_Manager.h:497
Integer configurator entry class.
Definition: Configurator.h:102
static CfgFloat cfg_OsmiaDensityDependentPollenRemovalConst("OSMIADENSITYDENPENDENTPOLLENREMOVALCONST", CFG_CUSTOM, 0.5)
Parameter to set the proportion of pollen removed by other bees.
void AddToDensityGrid(int a_index)
Adds a bee to the density grid using the grid index value.
Definition: Osmia_Population_Manager.h:456
Osmia_Nest * nest
a pointer to a nest
Definition: Osmia_Population_Manager.h:177
OsmiaPolygonEntry()
The constructor for OsmiaPolygonEntry.
Definition: Osmia_Population_Manager.h:205
void ReleaseOsmiaNest(int a_polyindex, Osmia_Nest *a_nest)
release nest here
Definition: Osmia_Population_Manager.h:342
TTypeOfOsmiaParasitoids parasitised
Are we parasitised.
Definition: Osmia_Population_Manager.h:179
vector< eggsexratiovsagelogisticcurvedata > m_EggSexRatioEqns
Holds logistic equation values per age/mass of female for egg sex ratios.
Definition: Osmia_Population_Manager.h:528
const int September
Julian start dates of the month of September.
Definition: Landscape.h:54
virtual ~Osmia_Population_Manager(void)
Osmia_Population_Manager Destructor.
Definition: Osmia_Population_Manager.cpp:238
static double m_OsmiaEggDevelThreshold
Is temperature developmental threshold for egg development.
Definition: Osmia.h:236
Double configurator entry class.
Definition: Configurator.h:126
double GetSexRatioEggsAgeMass(int a_massclass, int a_age)
Return the sex ratio for a nest give an age and female mass.
Definition: Osmia_Population_Manager.h:444
static int m_TempTodayInt
The temperature today to the nearest degree. This is static because there is only one temperature tod...
Definition: Osmia.h:224
string m_SimulationName
stores the simulation name
Definition: PopulationManager.h:622
static double m_pollengiveupthreshold
The change in pollen return that triggers a new search.
Definition: Osmia.h:531
const int March
Julian start dates of the month of March.
Definition: Landscape.h:42
static void SetNestFindAttempts(int a_no)
Record the daily mortality parameter values.
Definition: Osmia.h:657
bool IsOverWinterEnd()
Returns flag to denore the end of overwintering, if ended it is set to true.
Definition: Osmia_Population_Manager.h:412
static int m_OsmiaFindNestAttemptNo
Holds the parameter for number of find nest tries.
Definition: Osmia.h:330
static double m_FemaleMaxTargetProvisionMass
The maximum target provisioning for a female cell.
Definition: Osmia.h:274
Is the list of nests held by a polygon and associated density controls.
Definition: Osmia_Population_Manager.h:189
static void SetOverwinteringTempThreshold(double a_temp)
Set method for m_OverwinteringTempThreshold.
Definition: Osmia.h:504
~OsmiaParasitoid_Population_Manager()
Definition: Osmia_Population_Manager.cpp:730
bool IsOsmiaNestPossible(int a_polyindex)
Find out whether an osmia nest can be made here.
Definition: Osmia_Population_Manager.h:330
void SetMaxOsmiaNests(double a_noNests)
Sets the max number of Osmia nests for this LE.
Definition: Osmia_Population_Manager.h:269
int m_Polyindex
The polygon reference used by the Landscape and Osmia_Nest_Manager.
Definition: Osmia_Population_Manager.h:202
static CfgArray_Double Cfg_OsmiaFemaleCocoonMassVsMotherAgeLogistic("OSMIA_FEMALECOCOONMASSVSMOTHERSAGELOGISTIC", CFG_CUSTOM, 4, vector< double > { 18.04087868, 104.19820591, 133.74150303, -0.17686981})
Array of parameters for the Osmia female cocoon mass vs mothers age logistic equation
static void SetParasitoidManager(OsmiaParasitoid_Population_Manager *a_popman)
Definition: Osmia.h:388
void InitOsmiaBeeNesting()
Read in the Osmia nest density files and allocate to each LE object.
Definition: Osmia_Population_Manager.cpp:850
Definition: Configurator.h:70
int g_random_fnc(const int a_range)
Definition: ALMaSS_Random.cpp:74
static double m_DailyDevelopmentMortLarvae
This holds the daily mortality for larvae.
Definition: Osmia.h:228
static double m_pollengiveupreturn
The minimum pollen return below which a new forage search is triggered.
Definition: Osmia.h:533
int DayInYear(void)
Definition: Calendar.h:58
void ReleaseCellLock(void)
Release the cell lock.
Definition: Osmia.h:162
double m_nectarTqual
Definition: Osmia_Population_Manager.h:63
CfgInt cfg_OsmiaTypicalHomingDistance
static void SetPollenScoreToMg(double a_ratio)
Set pollen score to provisioned mg value.
Definition: Osmia.h:672
static int m_OsmiaFemaleMinEggsPerNest
Holds the parameter for minimum planned eggs per nest.
Definition: Osmia.h:328
CfgArray_Double cfg_pest_product_amounts
Amount of pesticide applied in grams of active substance per hectare for each of the 10 pesticides.
double SupplyTempPeriod(long a_date, int a_period)
Passes a request on to the associated Weather class function, the total temperature from a_date and a...
Definition: Landscape.h:2054
double m_DiffusionRate
The time-step related total dispersal loss.
Definition: Osmia_Population_Manager.h:76
void PushIndividual(const unsigned a_listindex, TAnimal *a_individual_ptr)
Definition: PopulationManager.cpp:1682
double Get() const
Definition: ALMaSS_Random.cpp:283
array< double, static_cast< unsigned >TTypeOfOsmiaParasitoids::topara_foobar)> GetParasitoidNumbers(int a_x, int a_y)
returns an array with the parasitoid numbers in the cell at the location given by a_x,...
Definition: Osmia_Population_Manager.cpp:739
unsigned SupplyListSize(unsigned listindex) const
Definition: PopulationManager.h:726
double SupplyPolygonAreaVector(int a_polyref)
Returns the polygon area of a particular polygon using an index to m_elems.
Definition: Landscape.h:1820
void CreateObjects(TTypeOfOsmiaLifeStages ob_type, TAnimal *pvo, struct_Osmia *data, int number)
Method for creating a new individual Osmia.
Definition: Osmia_Population_Manager.cpp:492
static vector< double > m_FemaleForageEfficiency
A vector holding the age related efficiency of Osmia foraging indexed by day (from Seidelmann 2006)
Definition: Osmia.h:573
Population_Manager_Base * GetPopulation(int a_pt, int a_index=0)
Definition: PopulationManager.h:962
int m_no_females
Definition: Osmia.h:123
virtual void DoBefore()
Things to do before the Step.
Definition: Osmia_Population_Manager.cpp:647
Osmia_Population_Manager * OPM
Osmia_Population_Manager pointer.
Definition: Osmia_Population_Manager.h:175
double GetSize(int a_ref)
Definition: Osmia_Population_Manager.h:146
static CfgInt cfg_MinimumCellConstructionTime("OSMIA_MINCELLCONSTRUCTTIME", CFG_CUSTOM, 1)
The minimum time to construct a cell in days.
static CfgFloat cfg_OsmiaOverwinterDegreeDaysInitialSimu("OSMIA_OVERWINTER_DEGREE_DAYS_INITIAL_SIMU", CFG_CUSTOM, 320)
The accumulated overwinter degree days for cocoon when initialising the simulations.
static array< double, 12 > m_MortalityPerMonth
Daily mortality rates each month.
Definition: Osmia_Population_Manager.h:88
double m_NoParasitoids
The total number of parasitoids in this population.
Definition: Osmia_Population_Manager.h:74
OsmiaParasitoid_Population_Manager(Landscape *a_landscape, int a_cellsize)
Definition: Osmia_Population_Manager.cpp:699
virtual void DoFirst()
Definition: Osmia_Population_Manager.h:104
static double m_DailyDevelopmentMortEggs
This holds the daily mortality for eggs.
Definition: Osmia.h:226
int m_Area
The polygon area.
Definition: Osmia_Population_Manager.h:200
vector< omp_nest_lock_t * > m_PolyListLocks
Definition: Osmia_Population_Manager.h:367
Definition: SubPopulation.h:48
static void SetCocoonToProvisionMass(double a_ratio)
Set the conversion ratio cocoon to provisioning.
Definition: Osmia.h:663
virtual void DoFirst()
Things to do before anything else at the start of a timestep
Definition: Osmia_Population_Manager.cpp:570
static void SetMaximumCellConstructionTime(double a_time)
Set maximum cell construction time.
Definition: Osmia.h:682
void ClearData()
Clears the data.
Definition: PopulationManager.h:537
std::forward_list< Osmia_Nest * > m_NestList
Definition: Osmia_Population_Manager.h:192
static void SetMinimumCellConstructionTime(double a_time)
Set minimum cell construction time.
Definition: Osmia.h:680
int m_y
Definition: ALMaSS_Setup.h:56
static double m_FemaleMinMass
The minimum female mass.
Definition: Osmia.h:278
int AddToDensityGrid(APoint a_loc)
Adds a bee to the density grid at a location.
Definition: Osmia_Population_Manager.h:449
void Init()
Used to collect data initialisation together.
Definition: Osmia_Population_Manager.cpp:344
static CfgFloat cfg_MaleMinTargetProvisionMass("OSMIA_MALEMINTARGETPROVISIONMASS", CFG_CUSTOM, 10.0)
The minimum amount of pollen needed to provision a male cell.
static void SetDailyMort(double a_prob)
Record the daily mortality parameter values.
Definition: Osmia.h:655
static double m_OsmiaInCocoonEmergCountConst
holds the constant term value for the InCocoon emergence counter calculation
Definition: Osmia.h:260
CfgInt cfg_OsmiaMaxHomingDistance
static double m_MaleMinTargetProvisionMass
The minimum target provisioning for a male cell.
Definition: Osmia.h:268
static void SetParasitismProbToTimeCellOpen(double a_ratio)
Set the conversion ratio time cell open to open cell parasitism.
Definition: Osmia.h:688
Osmia_Population_Manager(Landscape *L)
Osmia_Population_Manager Constructor.
Definition: Osmia_Population_Manager.cpp:254
double GetRainHour(int hour)
Definition: Weather.h:470
static double m_TotalProvisioningMassLossRangeX2
Twice the variability around the expected total mass loss.
Definition: Osmia.h:322
Landscape * m_TheLandscape
A useful pointer to the lanscape object.
Definition: Osmia_Population_Manager.h:126
void IncLiveArraySize(int a_listindex)
Increments the number of 'live' objects for a list index in the TheArray.
Definition: PopulationManager.h:665