![]() |
ALMaSS
1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
|
The class describing the beetle Egg_List objects. More...
#include <Beetle_BaseClasses.h>
Public Member Functions | |
Beetle_Egg_List (int today, Beetle_Population_Manager *a_bpm_ptr, Landscape *L) | |
Egg_List class constructor. More... | |
void | Step () override |
Egg_List class Step code. More... | |
void | BeginStep () override |
Egg_List class BeginStep code. More... | |
void | AddEgg (const int x, const int y) |
Add an egg to the list. More... | |
void | Clear () |
void | Supply_m_Location (const int i, int &a_x, int &a_y) const |
supplies the x-coordinate of a specific egg in the list More... | |
int | SupplyEggNumber () const |
double | GetStriglingMortality () const override |
Mortality by Strigling: similar for all forms– should use base class method. More... | |
double | GetSoilCultivationMortality () const override |
the method overrides the method that returns the mortality due to soil cultivation More... | |
double | GetInsecticideApplication () const override |
the method overrides the method that returns the mortality due to insecticide application More... | |
double | GetHarvestMortality () const override |
the method overrides the method that returns the mortality due to harvest More... | |
void | ExtremeTempMortality (double a_threshold) |
Extreme temperature mortality, this is only used for ladybird for now. More... | |
void | CannibalismMortality (Eigen::MatrixXi &a_death_map, int &a_kill_num) |
Death caused by cannibalism. This is only used by lady birds. More... | |
![]() | |
Beetle_Base (int a_x, int a_y, Landscape *a_l_ptr, Beetle_Population_Manager *a_bpm_ptr) | |
Beetle_Base Constructor. More... | |
virtual void | ReInit (int a_x, int a_y, Landscape *a_l_ptr, Beetle_Population_Manager *a_bpm_ptr) |
ReInit for object pool. More... | |
virtual void | SetState (const TTypesOfBeetleState a_state) |
Used to force a beetle state (e.g. at start of the simulation) More... | |
virtual void | StDie () |
Common state Die. More... | |
void | CopyMyself (int a_beetle) |
For experimental purposes. More... | |
virtual bool | GetDensityDependentMortality () |
The density dependent mortality calculation (cannibalism) defaults to none. More... | |
void | KillAndRemoveFromMap () |
Kills the beetle - this version forces the beetle to re-enter the Step code and call st_Dying. More... | |
void | IncDensity (int a_x, int a_y, int a_lifestage) |
The method inreases the number of beetles in this specific location by one. Used when called by a beetle of different lifestage than the one incremented. More... | |
void | DecDensity (int a_x, int a_y) |
The method decreases the number of beetles in this specific location by one. More... | |
void | KillOneInMap (int a_x, int a_y, int a_lifestage) |
The method decreases the number of beetles in this specific location by one. More... | |
void | IncDensity (const int a_x, const int a_y) |
The method inreases the number of beetles in this specific location by one. More... | |
void | DecDensity (const int a_x, const int a_y, const int a_lifestage) |
The method decreases the number of beetles in this specific location by one. Used when called by a beetle of different lifestage than the one dying. More... | |
int | GetDensity (int a_x, int a_y) const |
The method to return the number of beetles in this specific location. More... | |
int | GetDensityRange (int a_x, int a_y, int a_range) const |
The method to return the number of beetles in this specific location with a range. More... | |
int | GetDensityRangeEdge (int a_x, int a_y, int a_range) const |
The method to return the number of beetles in this specific location with a range. More... | |
virtual double | GetDevelopmentConstants (const int a_i) const |
the method returns the larvae development constant to be used in day degrees calculation More... | |
int | WhatState () override |
Return the beetle state as an integer. More... | |
![]() | |
TAnimal (int x, int y, Landscape *L) | |
The TAnimal constructor saving the x,y, location and the landscape pointer. More... | |
TAnimal (int x, int y) | |
The TAnimal constructor saving the x,y used if landscape is already set. More... | |
void | SetGuardMapIndex (int a_index_x, int a_index_y) |
Set the guard map index, this is used to avoid two animals operating in the same location when using multithread. More... | |
unsigned | SupplyFarmOwnerRef () const |
Get the current location farm ref if any. More... | |
AnimalPosition | SupplyPosition () const |
Returns the objects location and habitat type and veg type. More... | |
APoint | SupplyPoint () const |
Returns the objects location in ALMaSS coordinates. More... | |
int | SupplyPolygonRef () const |
Returns the polygon reference where the object is located. More... | |
TTypesOfLandscapeElement | SupplyPolygonType () const |
Returns the polygon type where the object is located. More... | |
int | Supply_m_Location_x () const |
Returns the ALMaSS x-coordinate. More... | |
int | Supply_m_Location_y () const |
Returns the ALMaSS y-coordinate. More... | |
int | SupplyGuardCellX () const |
Returns the x-index to the guard cell. More... | |
int | SupplyGuardCellY () const |
Returns the y-index to the guard cell. More... | |
int | SupplyAge () const |
Returns the animals age in days. More... | |
void | SetAge (int a_age) |
Sets the animals age in days. More... | |
virtual void | KillThis () |
Sets all parameters ready for object destruction. More... | |
virtual void | CopyMyself () |
Used to copy the object details to another in descendent classes. More... | |
void | SetX (const int a_x) |
Sets the x-coordinate. More... | |
void | SetY (const int a_y) |
Sets the y-coordinate. More... | |
virtual void | ReinitialiseObject (int a_x, int a_y, Landscape *a_l_ptr) |
virtual void | ReinitialiseObject (int a_x, int a_y) |
Used to re-use an object - must be implemented in descendent classes. More... | |
virtual void | Dying () |
A wrapped for KillThis - ideally should not be used. More... | |
void | CheckManagement () |
Used to start a check for any management related effects at the objects current location. More... | |
void | CheckManagementXY (int a_x, int a_y) |
Used to start a check for any management related effects at x,y. More... | |
![]() | |
int | GetCurrentStateNo () const |
Returns the current state number. More... | |
void | SetCurrentStateNo (int a_num) |
Sets the current state number. More... | |
bool | GetStepDone () const |
Returns the step done indicator flag. More... | |
void | SetStepDone (bool a_bool) |
Sets the step done indicator flag. More... | |
virtual void | EndStep () |
EndStep behaviour - must be implemented in descendent classes. More... | |
void | ReinitialiseObjectBase () |
Used to initialise an object. More... | |
TALMaSSObject () | |
The constructor for TALMaSSObject. More... | |
virtual | ~TALMaSSObject ()=default |
The destructor for TALMaSSObject. More... | |
Static Public Member Functions | |
static void | SetEgg_SoilCultivationMortality (const double a_value) |
Set egg soil mortality parameter. More... | |
static void | SetEgg_InsecticideApplication (const double a_value) |
Set Larval insecticide mortality parameter. More... | |
static void | SetDailyEggMort (const double a_value) |
Set the daily fixed mortality probability. More... | |
static void | SetEgg_StriglingMort (const double a_value) |
Set mechanical weeding mortality parameter. More... | |
static void | SetEgg_HarvestMort (const double a_value) |
Set harvest mortality parameter. More... | |
static void | SetEggPppElimRate (const double a_rate) |
static void | SetEggPppThreshold (const double a_thresh) |
static void | SetEggPppEffectProb (const double a_conc) |
static void | SetEggPppEffectProbDecay (const double a_decay) |
![]() | |
static int | GetDensityStage (int a_x, int a_y, unsigned a_stage) |
The method to return the number of beetles in this specific location for a given stage. More... | |
static int | GetDensityStages (int a_x, int a_y, int a_numberstageStart, int a_numberstangeEnd) |
The method to return the number of beetles in this specific location, summing multiple stages. More... | |
static int | GetDensityRangeStages (int a_x, int a_y, int a_range, int a_numberstageStart, int a_numberstangeEnd) |
The method to return the number of beetles in this specific location with a range, summing multiple stages. More... | |
static void | SetDevelopmentConstants (const std::vector< double > &a_value) |
Set the day degree constant. More... | |
static void | SetTodaysTempCategory (int a_category) |
Set the soil temperature category used for calculatiung mortality steps. More... | |
static void | SetMoveDistribution (const string &a_type_str, const string &a_args_str) |
Set the movement distribution. More... | |
static void | SetBeetleSuitableForHibernation (const TTovList &a_list) |
Set the list of tovs that are suitable for hibernation. More... | |
static void | SetBeetleReproductionLandscape (const TToleList &a_list) |
Set the list of toles that the beetles are allowed to reproduce upon. More... | |
static void | SetBeetleHalfReproductionLandscape (const TToleList &a_list) |
Set the list of toles that the beetles are allowed to reproduce upon, but that yield half of normal fertility (bembidion) More... | |
static void | SetDipsersalDayDegrees (const int a_value) |
static void | SetMaxShortRangeAttempts (const int a_value) |
static void | SetDDepRange (const int a_value) |
Set density-dependent range parameter. More... | |
static void | SizeBeetleMap (const int a_value) |
Size the lifestage map. More... | |
static void | SetBeetleMap (const int a_value, SimplePositionMapInt *a_map_ptr) |
Set lifestage map. More... | |
static int | ChooseDirection (const double(&a_probabilities)[8]) |
The function that draws the random number and checks in which interval in the probabilities vector are we This would be the direction the beetle will take. More... | |
![]() | |
static void | SetSimulationWidth (int a_value) |
Sets the simulation width. More... | |
static void | SetSimulationHeight (int a_value) |
Sets the simulation height. More... | |
static void | SetDayInYear (int a_value) |
Sets the day in year attribute. More... | |
static void | SetOurLandscape (Landscape *a_value) |
Sets the landscape pointer. More... | |
static void | SetTempToday (double a_value) |
Sets the temperature today attribute. More... | |
![]() | |
static void | OnArrayBoundsError () |
Used for debugging only, tests basic object properties. More... | |
Protected Member Functions | |
void | InternalPesticideHandlingAndResponse () override |
Handle pesticide events code for the beetle. More... | |
virtual TTypesOfBeetleState | St_Develop () |
Egg_List state development. More... | |
virtual TTypesOfBeetleState | St_Hatch () |
Egg_List state hatching. More... | |
bool | DailyMortality () override |
Checks daily mortality returns true on death. More... | |
![]() | |
virtual void | Init (Beetle_Population_Manager *a_bpm_ptr) |
Init for a beetle object. More... | |
bool | OnFarmEvent (FarmToDo event) override |
the farming event mortality. This is the function that is used for all the beetles. It calls methods that are re-defined by object and by method. More... | |
virtual bool | CheckManagementBeetle () |
virtual double | TempRelatedMortality () |
Basic movement for beetle. More... | |
virtual int | GetDDepthRange () const |
range at which density dependent mortality is applied - base class does not override, but others might need to More... | |
void | Beetle_1M_Move (int a_dist) |
The function that calculates the cumulative probability for the movement direction. It calls the movement factor method and processes ints result to adjust "p" (by reference) More... | |
virtual bool | IsLocationAllowed (int x, int y) |
virtual double | GetShortRangeDistance () const |
returns the length of the short range hop More... | |
virtual double | MovementFactor (int x, int y, int x1, int y1) |
function that calculates the factor that is taken into account when considering the movement of the individual More... | |
virtual double | GetDailyMortalityRate () const |
method returns the rate of the background mortality More... | |
![]() | |
void | CorrectWrapRound () |
Corrects wrap around co-ordinate problems. More... | |
Protected Attributes | |
TListOfEggs | m_EggList |
The list of eggs. More... | |
int | m_DayMade |
Records the day hatched for development calculations. More... | |
![]() | |
TTypesOfBeetleState | m_CurrentBState { tobs_Initiation } |
Current behavioural state. More... | |
Beetle_Population_Manager * | m_OurPopulation { nullptr } |
Pointer to the population manager. More... | |
double | m_BodyBurden { -1.0 } |
Current body burden of pesticide. More... | |
double | m_CurrentPppEffectProb { -1.0 } |
Current effect probability. More... | |
unsigned | m_Lifestage { 0 } |
This is a useful parameter holding the beetle type (this includes larval stages) More... | |
![]() | |
int | m_Location_x |
The objects ALMaSS x coordinate. More... | |
int | m_Location_y |
The objects ALMaSS y coordinate. More... | |
int | m_guard_cell_x |
The index x to the guard cell. More... | |
int | m_guard_cell_y |
The index y to the guard cell. More... | |
int | m_AgeDays {0} |
To hold the age in days. More... | |
PesticideToxicity | m_my_pesticide |
![]() | |
int | m_CurrentStateNo |
The basic state number for all objects - '-1' indicates death. More... | |
bool | m_StepDone |
Indicates whether the iterative step code is done for this timestep. More... | |
Static Protected Attributes | |
static double | m_DailyEggMort = 0.007 |
Daily fixed mortality probability. More... | |
static double | m_Egg_SoilCultivationMortality = 0 |
The egg soil mortality parameter. More... | |
static double | m_Egg_HarvestMort = 0 |
The egg harvest mortality parameter. More... | |
static double | m_Egg_StriglingMort = 0 |
The egg strigling mortality parameter. More... | |
static double | m_Egg_InsecticideApplication = 0 |
The egg nsecticide mortality parameter. More... | |
static double | m_BeetleEggPPPElimRate = 0 |
static double | m_BeetleEPPPThreshold = 0 |
static double | m_BeetleEPPPEffectProb = 0 |
static double | m_BeetleEPPPEffectProbDecay = 0 |
![]() | |
static vector< double > | m_DevelopmentConstants = {} |
Day degree constant, the target to reach before next stage. More... | |
static std::unique_ptr< probability_distribution > | m_Move_distribution = nullptr |
Probabilty of adult movement by distance to be defined by the probability type and parameters. More... | |
static TTovList | m_BeetleSuitableForHibernation = {tov_Undefined} |
the list of tovs that are suitable for hibernation More... | |
static TToleList | m_BeetleReproductionLandscape = {tole_Foobar} |
the list of toles that the beetles are allowed to reproduce upon More... | |
static TToleList | m_BeetleHalfReproductionLandscape = {tole_Foobar} |
the list of toles that the beetles are allowed to reproduce upon, but that yield half of normal fertility (bembidion) More... | |
static int | m_DipsersalDayDegrees = 8 |
static int | m_DDepRange = 3 |
The depth of the surrounding cells for density dependence calculations in adults. More... | |
static int | m_MaxShortRangeAttempts = 1 |
The number of tries allowed to find a short range legal move. More... | |
static int | m_TodaysTempCategory = 0 |
Set the soiltemperature category used for calculatiung mortality steps. More... | |
![]() | |
static Landscape * | m_OurLandscape = nullptr |
A pointer to the landscape object shared with all TAnimal objects. More... | |
static int | m_SimulationWidth = 0 |
A static member for the simulation width because it is often used by descendent classes. More... | |
static int | m_SimulationHeight = 0 |
A static member for the simulation height because it is often used by descendent classes. More... | |
static double | m_TemperatureToday = 0.0 |
A holder for the temperature today shared with all TAnimal objects. More... | |
static int | m_DayInYear = 0 |
A holder for the day in year shared with all TAnimal objects. More... | |
Additional Inherited Members | |
![]() | |
static vector< SimplePositionMapInt * > | m_BeetleMaps = {} |
A list of pointers to the specific map for a beetle lifestage. More... | |
The class describing the beetle Egg_List objects.
Beetle_Egg_List::Beetle_Egg_List | ( | int | today, |
Beetle_Population_Manager * | a_bpm_ptr, | ||
Landscape * | L | ||
) |
Egg_List class constructor.
Beetle egg list constructor.
The egg list is an optimisation to reduce memory and time to run it means that there are only 365 of them possible and that each on contains all the eggs laid on that day. The only real problem is that there is no longer a link from parent to offspring - so this version cannot be used with genetics without adding the genes to the APoint struct.
References bob_Egg, m_DayMade, m_EggList, and Beetle_Base::m_Lifestage.
|
inline |
Add an egg to the list.
References Beetle_Base::IncDensity(), m_EggList, APoint::m_x, and APoint::m_y.
|
overridevirtual |
void Beetle_Egg_List::CannibalismMortality | ( | Eigen::MatrixXi & | a_death_map, |
int & | a_kill_num | ||
) |
|
inline |
|
overrideprotectedvirtual |
Checks daily mortality returns true on death.
Reimplemented from Beetle_Base.
References cfg_MapGuardCellSize, Beetle_Base::DecDensity(), g_rand_uni_fnc(), Beetle_Base::m_CurrentBState, m_DailyEggMort, m_EggList, TAnimal::m_OurLandscape, Beetle_Base::m_OurPopulation, Beetle_Base::OnFarmEvent(), Population_Manager::SetGuardMapElement(), sleep_all_day, Population_Manager::UnsetGuardMapElement(), and CfgInt::value().
Referenced by BeginStep().
void Beetle_Egg_List::ExtremeTempMortality | ( | double | a_threshold | ) |
Extreme temperature mortality, this is only used for ladybird for now.
References cfg_MapGuardCellSize, Beetle_Base::DecDensity(), g_rand_uni_fnc(), m_EggList, Beetle_Base::m_OurPopulation, Population_Manager::SetGuardMapElement(), Population_Manager::UnsetGuardMapElement(), and CfgInt::value().
|
inlineoverridevirtual |
the method overrides the method that returns the mortality due to harvest
Reimplemented from Beetle_Base.
References m_Egg_HarvestMort.
|
inlineoverridevirtual |
the method overrides the method that returns the mortality due to insecticide application
Reimplemented from Beetle_Base.
References m_Egg_InsecticideApplication.
|
inlineoverridevirtual |
the method overrides the method that returns the mortality due to soil cultivation
Reimplemented from Beetle_Base.
References m_Egg_SoilCultivationMortality.
|
inlineoverridevirtual |
Mortality by Strigling: similar for all forms– should use base class method.
Reimplemented from Beetle_Base.
References m_Egg_StriglingMort.
|
overrideprotectedvirtual |
Handle pesticide events code for the beetle.
If the body burden exceeds the trigger then an effect is tested for and implemented depending on the pesticide type.
Reimplemented from Beetle_Base.
References g_msg, g_rand_uni_fnc(), Beetle_Base::KillAndRemoveFromMap(), m_BeetleEPPPEffectProb, m_BeetleEPPPEffectProbDecay, m_BeetleEPPPThreshold, Beetle_Base::m_BodyBurden, Beetle_Base::m_CurrentPppEffectProb, TAnimal::m_OurLandscape, Landscape::SupplyPesticideType(), ttop_AcuteDelayedEffects, ttop_AcuteEffects, ttop_AcuteEffectsDoseResponse, ttop_MultipleEffects, ttop_NoPesticide, ttop_ReproductiveEffects, and MapErrorMsg::Warn().
|
inlinestatic |
Set the daily fixed mortality probability.
References m_DailyEggMort.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager(), Ladybird_Population_Manager::DoEggDailyMortalityActions(), and PoecilusCupreus_Population_Manager::PoecilusCupreus_Population_Manager().
|
inlinestatic |
Set harvest mortality parameter.
References m_Egg_HarvestMort.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager().
|
inlinestatic |
Set Larval insecticide mortality parameter.
References m_Egg_InsecticideApplication.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager().
|
inlinestatic |
Set egg soil mortality parameter.
References m_Egg_SoilCultivationMortality.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager().
|
inlinestatic |
Set mechanical weeding mortality parameter.
References m_Egg_StriglingMort.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager().
|
inlinestatic |
Set body PPP effect probability
References m_BeetleEPPPEffectProb.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager().
|
inlinestatic |
Set PPP effect decayy
References m_BeetleEPPPEffectProbDecay.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager().
|
inlinestatic |
Set body burden elimination rate for egg
References m_BeetleEggPPPElimRate.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager().
|
inlinestatic |
Set body PPP threshold
References m_BeetleEPPPThreshold.
Referenced by Beetle_Population_Manager::Beetle_Population_Manager().
|
protectedvirtual |
Egg_List state development.
References m_DayMade, Beetle_Base::m_DevelopmentConstants, Beetle_Base::m_Lifestage, Beetle_Base::m_OurPopulation, Beetle_Population_Manager::SupplyDayDegs(), tobs_Developing, and tobs_NextStage.
Referenced by Step().
|
protectedvirtual |
Egg_List state hatching.
References bob_Larva1, cfg_MapGuardCellSize, Beetle_Population_Manager::CreateObjects(), Beetle_Base::DecDensity(), Population_Manager::LamdaBirth(), m_EggList, TAnimal::m_Location_x, TAnimal::m_Location_y, TAnimal::m_OurLandscape, Beetle_Base::m_OurPopulation, Population_Manager::SetGuardMapElement(), tobs_Initiation, Population_Manager::UnsetGuardMapElement(), and CfgInt::value().
Referenced by Step().
|
overridevirtual |
Egg_List class Step code.
Implements Beetle_Base.
References g_msg, Beetle_Base::m_CurrentBState, TALMaSSObject::m_CurrentStateNo, TAnimal::m_OurLandscape, TALMaSSObject::m_StepDone, St_Develop(), St_Hatch(), tobs_Aggregating, tobs_BDying, tobs_Destroy, tobs_Developing, tobs_Dispersing, tobs_Emerging, tobs_Foraging, tobs_Hibernating, tobs_Initiation, tobs_NextStage, MapErrorMsg::Warn(), Landscape::Warn(), and WARN_BUG.
|
inline |
|
inline |
|
staticprotected |
Set PPP elimination rate
Referenced by SetEggPppElimRate().
|
staticprotected |
Set body PPP effect probability
Referenced by InternalPesticideHandlingAndResponse(), and SetEggPppEffectProb().
|
staticprotected |
Set PPP decay
Referenced by InternalPesticideHandlingAndResponse(), and SetEggPppEffectProbDecay().
|
staticprotected |
Set body PPP effect threshold
Referenced by InternalPesticideHandlingAndResponse(), and SetEggPppThreshold().
|
staticprotected |
Daily fixed mortality probability.
Referenced by DailyMortality(), and SetDailyEggMort().
|
protected |
Records the day hatched for development calculations.
Referenced by Beetle_Egg_List(), and St_Develop().
|
staticprotected |
The egg harvest mortality parameter.
Referenced by GetHarvestMortality(), and SetEgg_HarvestMort().
|
staticprotected |
The egg nsecticide mortality parameter.
Referenced by GetInsecticideApplication(), and SetEgg_InsecticideApplication().
|
staticprotected |
The egg soil mortality parameter.
Referenced by GetSoilCultivationMortality(), and SetEgg_SoilCultivationMortality().
|
staticprotected |
The egg strigling mortality parameter.
Referenced by GetStriglingMortality(), and SetEgg_StriglingMort().
|
protected |
The list of eggs.
Referenced by AddEgg(), Beetle_Egg_List(), CannibalismMortality(), Clear(), DailyMortality(), ExtremeTempMortality(), St_Hatch(), Supply_m_Location(), and SupplyEggNumber().