ALMaSS Vole ODDox  1.1
The vole model description following ODdox protocol
VolePopulationManager.cpp File Reference

VolePopulationManager.cpp This file contains the source for the vole population manager class
More...

#include <string.h>
#include <vector>
#include <iostream>
#include <fstream>
#include "../Landscape/ls.h"
#include "../BatchALMaSS/PopulationManager.h"
#include "../BatchALMaSS/AOR_Probe.h"
#include "../BatchALMaSS/BinaryMapBase.h"
#include "../BatchALMaSS/MovementMap.h"
#include "../Vole/vole_all.h"
#include "../Vole/VolePopulationManager.h"
#include "../Vole/GeneticMaterial.h"
#include "../Vole/Predators.h"
#include "../BatchALMaSS/BoostRandomGenerators.h"

Go to the source code of this file.

Functions

static CfgInt cfg_vole_reprofinishdate ("VOLE_REPROFINISHDATE", CFG_CUSTOM, 243)
 
static CfgBool cfg_VoleSampleDataUsed ("VOLE_SAMPLE_FILE_USED", CFG_CUSTOM, false)
 
static CfgInt cfg_VoleSampleFileDayOne ("VOLE_SAMPLE_FILE_DAY_ONE", CFG_CUSTOM, 109)
 
static CfgInt cfg_VoleSampleFileDayTwo ("VOLE_SAMPLE_FILE_DAY_TWO", CFG_CUSTOM, 287)
 
static CfgFloat cfg_VoleFemaleMove ("VOLE_FEMALEMOVE", CFG_CUSTOM, 0.0505)
 
static CfgInt cfg_MateRadius ("FEMALE_MATE_RADIUS", CFG_CUSTOM, 250)
 
static CfgFloat cfg_VoleBackgroundMort ("VOLE_BCKMORT", CFG_CUSTOM, 0.0025)
 
static CfgFloat cfg_MoveToLessFavourable ("VOLEMOVETOLESSFAVOURALBLE", CFG_CUSTOM, 0.005)
 
static CfgInt cfg_sigAgeDiff ("VOLE_SIGAGEDIFF", CFG_CUSTOM, 30)
 
static CfgInt cfg_geneticproductfertilityeffect ("VOLE_GENETICPRODUCTFERTILITYEFFECT", CFG_CUSTOM, 50)
 
static CfgFloat cfg_geneticsterilitychance ("VOLE_GENETICSTERILITYCHANCE", CFG_CUSTOM, 0)
 
static CfgFloat cfg_f1sterilitychance ("VOLE_FONESTERILITYCHANCE", CFG_CUSTOM, 0.0)
 
static CfgBool cfg_genetic_output ("VOLE_GENETIC_OUTPUT", CFG_CUSTOM, true)
 
static CfgInt cfg_genetetic_output_sample_size ("VOLE_GENETIC_SAMPLE_SIZE", CFG_CUSTOM, 500)
 
static CfgInt cfg_GeneticsResultOutputFirstYear ("GENETICS_RESULT_OUTPUT_FIRST_YEAR", CFG_CUSTOM, 100000)
 
static CfgInt cfg_GeneticResultOutputSecondYear ("GENETICS_RESULT_OUTPUT_SECOND_YEAR", CFG_CUSTOM, 100000)
 
CfgBool cfg_GeneticsResultOutputUsed ("GENETICS_RESULT_OUTPUT_USED", CFG_CUSTOM, false)
 
static CfgInt cfg_GeneticsResultOutputInterval_1 ("GENETICS_RESULT_OUTPUT_INTERVAL_ONE", CFG_CUSTOM, 100000)
 
static CfgInt cfg_GeneticsResultOutputDay_1 ("GENETICS_RESULT_OUTPUT_DAY_ONE", CFG_CUSTOM, 3)
 
static CfgInt cfg_GeneticsResultOutputDay_2 ("GENETICS_RESULT_OUTPUT_DAY_TWO", CFG_CUSTOM, 6)
 
static CfgBool cfg_VoleUseResistanceOuput ("VOLE_RESISTANCEOUTPUT_ON_OFF", CFG_CUSTOM, false)
 
static CfgInt cfg_VoleResistanceDay ("VOLE_RESISTANCEOUTPUT_DAY", CFG_CUSTOM, 365)
 
static CfgFloat cfg_ResistanceStartFrequency ("VOLE_RESISTANCESTARTFREQ", CFG_CUSTOM, 0.01)
 
static CfgBool cfg_UseVoleTraplines ("VOLE_TRAPLINES_ON_OFF", CFG_CUSTOM, false)
 
static CfgStr cfg_VoleTraplinesfile ("VOLE_TRAPLINESFILE", CFG_CUSTOM, "VoleTraplines.txt")
 
static CfgInt cfg_VoleTrapResolution ("VOLE_TRAPRESOLUTION", CFG_CUSTOM, 2)
 
CfgBool cfg_RecordVoleMort ("VOLE_RECORDMORT_ON", CFG_CUSTOM, false)
 
static CfgStr cfg_VoleRecordMortFile ("VOLE_RECORDMORTFILE", CFG_CUSTOM, "VoleMortalityCauses.txt")
 
CfgBool cfg_SexRatiosOutput_used ("VOLE_SEXRATIOSOUTPUT_USED", CFG_CUSTOM, false)
 
static CfgStr cfg_SexRatiosOutput_filename ("VOLE_SEXRATIOS_FILENAME", CFG_CUSTOM,"VoleSexRatios.txt")
 
static CfgInt cfg_SexRatiosOutput_interval ("VOLE_SEXRATIOSOUTPUT_INTERVAL", CFG_CUSTOM, 1)
 
static CfgInt cfg_SexRatiosOutput_day ("VOLE_SEXRATIOSOUTPUT_DAY", CFG_CUSTOM, -1)
 
static CfgInt cfg_SexRatiosOutputFirstYear ("VOLE_SEXRATIOSOUTPUT_FIRSTYEAR", CFG_CUSTOM, 1)
 
static CfgBool cfg_voleLandscapeGridOutputUsed ("VOLE_LANDSCAPEGRIDOUTPUTUSED", CFG_CUSTOM, true)
 
static CfgInt cfg_voleLandscapeGridOutputDay ("VOLE_LANDSCAPEGRIDOUTPUTDAY", CFG_CUSTOM, 10000)
 
static CfgBool cfg_volestartinoptimalonly ("VOLE_STARTINOPTIMALONLY", CFG_CUSTOM, false)
 
static CfgInt cfg_vole_starting_numberM ("VOLE_START_NO_M", CFG_CUSTOM, 5000)
 
static CfgInt cfg_vole_starting_numberF ("VOLE_START_NO_F", CFG_CUSTOM, 5000)
 
static CfgFloat cfg_GrassStartGrowth ("VOLE_GRASSSTARTGROWTH", CFG_CUSTOM, 3.552)
 
static CfgFloat cfg_GrassStartGrowthDay ("VOLE_GRASSSTARTGROWTHDAY", CFG_CUSTOM, 80)
 
static CfgBool cfg_useagesexlocation ("VOLE_USEAGESEXLOCATION", CFG_CUSTOM, false)
 
static CfgFloat cfg_MutationChance ("GENETICS_MUTATION_CHANCE", CFG_CUSTOM, 0.001)
 
static CfgInt cfg_MaxAllele ("GENETICS_MAXALLELE", CFG_CUSTOM, 255)
 

Variables

boost::variate_generator< base_generator_type &, boost::uniform_real<> > g_rand_uni
 
double MutationChance
 
CfgInt cfg_pm_eventfrequency
 
CfgInt cfg_pm_eventsize
 
CfgBool cfg_ReallyBigOutputMonthly_used
 
CfgBool cfg_RipleysOutput_used
 
CfgBool cfg_ReallyBigOutput_used
 
CfgFloat cfg_extradispmort
 
double g_extradispmort
 
double g_DailyMortChance
 
double g_DailyMortChanceMaleTerr
 
double g_NoFemalesMove
 
CfgInt cfg_VoleDDepConst
 
int g_sigAgeDiff
 
int MinReproAgeM
 
int MinReproAgeF
 
CfgInt cfg_MinReproAgeM
 
CfgInt cfg_MinReproAgeF
 
unsigned char g_MaxAllele
 
double MoveToLessFavourable
 
const float ReproTable_base [2][12]
 
int g_MaleReproductFinish
 
CfgInt cfg_MinFemaleTerritorySize
 
CfgInt cfg_MinMaleTerritorySize
 
CfgBool cfg_ResistanceDominant
 

Detailed Description

VolePopulationManager.cpp This file contains the source for the vole population manager class

by Chris J. Topping
Version of 28th Jan 2001

With additions as noted in:
April 2006
November 2007
Doxygen formatted comments in May 2008

Definition in file VolePopulationManager.cpp.

Function Documentation

◆ cfg_f1sterilitychance()

static CfgFloat cfg_f1sterilitychance ( "VOLE_FONESTERILITYCHANCE"  ,
CFG_CUSTOM  ,
0.  0 
)
static

Toxicological variable for specific pesticide effects

Referenced by Vole_Population_Manager::Init().

◆ cfg_genetetic_output_sample_size()

static CfgInt cfg_genetetic_output_sample_size ( "VOLE_GENETIC_SAMPLE_SIZE"  ,
CFG_CUSTOM  ,
500   
)
static

The number of each sex to sample for genetics

Referenced by Vole_Population_Manager::DoFirst().

◆ cfg_genetic_output()

static CfgBool cfg_genetic_output ( "VOLE_GENETIC_OUTPUT"  ,
CFG_CUSTOM  ,
true   
)
static

Record genetic data or not

◆ cfg_geneticproductfertilityeffect()

static CfgInt cfg_geneticproductfertilityeffect ( "VOLE_GENETICPRODUCTFERTILITYEFFECT"  ,
CFG_CUSTOM  ,
50   
)
static

Toxicological variable for specific pesticide effects

Referenced by Vole_Population_Manager::Init().

◆ cfg_GeneticResultOutputSecondYear()

static CfgInt cfg_GeneticResultOutputSecondYear ( "GENETICS_RESULT_OUTPUT_SECOND_YEAR"  ,
CFG_CUSTOM  ,
100000   
)
static

◆ cfg_GeneticsResultOutputDay_1()

static CfgInt cfg_GeneticsResultOutputDay_1 ( "GENETICS_RESULT_OUTPUT_DAY_ONE"  ,
CFG_CUSTOM  ,
 
)
static

◆ cfg_GeneticsResultOutputDay_2()

static CfgInt cfg_GeneticsResultOutputDay_2 ( "GENETICS_RESULT_OUTPUT_DAY_TWO"  ,
CFG_CUSTOM  ,
 
)
static

◆ cfg_GeneticsResultOutputFirstYear()

static CfgInt cfg_GeneticsResultOutputFirstYear ( "GENETICS_RESULT_OUTPUT_FIRST_YEAR"  ,
CFG_CUSTOM  ,
100000   
)
static

◆ cfg_GeneticsResultOutputInterval_1()

static CfgInt cfg_GeneticsResultOutputInterval_1 ( "GENETICS_RESULT_OUTPUT_INTERVAL_ONE"  ,
CFG_CUSTOM  ,
100000   
)
static

◆ cfg_GeneticsResultOutputUsed()

CfgBool cfg_GeneticsResultOutputUsed ( "GENETICS_RESULT_OUTPUT_USED"  ,
CFG_CUSTOM  ,
false   
)

◆ cfg_geneticsterilitychance()

static CfgFloat cfg_geneticsterilitychance ( "VOLE_GENETICSTERILITYCHANCE"  ,
CFG_CUSTOM  ,
 
)
static

Toxicological variable for specific pesticide effects

Referenced by Vole_Population_Manager::Init().

◆ cfg_GrassStartGrowth()

static CfgFloat cfg_GrassStartGrowth ( "VOLE_GRASSSTARTGROWTH"  ,
CFG_CUSTOM  ,
3.  552 
)
static

The mean temperature over 14 days at which the grass is assummed to start to grow

Referenced by Vole_Population_Manager::DoFirst().

◆ cfg_GrassStartGrowthDay()

static CfgFloat cfg_GrassStartGrowthDay ( "VOLE_GRASSSTARTGROWTHDAY"  ,
CFG_CUSTOM  ,
80   
)
static

The date before which repro is impossible

Referenced by Vole_Population_Manager::DoFirst().

◆ cfg_MateRadius()

static CfgInt cfg_MateRadius ( "FEMALE_MATE_RADIUS"  ,
CFG_CUSTOM  ,
250   
)
static

◆ cfg_MaxAllele()

static CfgInt cfg_MaxAllele ( "GENETICS_MAXALLELE"  ,
CFG_CUSTOM  ,
255   
)
static

The maximum allele value used

Referenced by Vole_Population_Manager::Init().

◆ cfg_MoveToLessFavourable()

static CfgFloat cfg_MoveToLessFavourable ( "VOLEMOVETOLESSFAVOURALBLE"  ,
CFG_CUSTOM  ,
0.  005 
)
static

The probability of moving to less favourable habitats when walking

Referenced by Vole_Population_Manager::Init().

◆ cfg_MutationChance()

static CfgFloat cfg_MutationChance ( "GENETICS_MUTATION_CHANCE"  ,
CFG_CUSTOM  ,
0.  001 
)
static

Mutation probability

Referenced by Vole_Population_Manager::Init().

◆ cfg_RecordVoleMort()

CfgBool cfg_RecordVoleMort ( "VOLE_RECORDMORT_ON"  ,
CFG_CUSTOM  ,
false   
)

◆ cfg_ResistanceStartFrequency()

static CfgFloat cfg_ResistanceStartFrequency ( "VOLE_RESISTANCESTARTFREQ"  ,
CFG_CUSTOM  ,
0.  01 
)
static

The starting frequency of '1' in chromosome 0 locus no 3

Referenced by Vole_Population_Manager::Init().

◆ cfg_SexRatiosOutput_day()

static CfgInt cfg_SexRatiosOutput_day ( "VOLE_SEXRATIOSOUTPUT_DAY"  ,
CFG_CUSTOM  ,
1 
)
static

◆ cfg_SexRatiosOutput_filename()

static CfgStr cfg_SexRatiosOutput_filename ( "VOLE_SEXRATIOS_FILENAME"  ,
CFG_CUSTOM  ,
"VoleSexRatios.txt"   
)
static

◆ cfg_SexRatiosOutput_interval()

static CfgInt cfg_SexRatiosOutput_interval ( "VOLE_SEXRATIOSOUTPUT_INTERVAL"  ,
CFG_CUSTOM  ,
 
)
static

◆ cfg_SexRatiosOutput_used()

CfgBool cfg_SexRatiosOutput_used ( "VOLE_SEXRATIOSOUTPUT_USED"  ,
CFG_CUSTOM  ,
false   
)

◆ cfg_SexRatiosOutputFirstYear()

static CfgInt cfg_SexRatiosOutputFirstYear ( "VOLE_SEXRATIOSOUTPUT_FIRSTYEAR"  ,
CFG_CUSTOM  ,
 
)
static

◆ cfg_sigAgeDiff()

static CfgInt cfg_sigAgeDiff ( "VOLE_SIGAGEDIFF"  ,
CFG_CUSTOM  ,
30   
)
static

The age difference before an old male can oust a younger one

Referenced by Vole_Population_Manager::Init().

◆ cfg_useagesexlocation()

static CfgBool cfg_useagesexlocation ( "VOLE_USEAGESEXLOCATION"  ,
CFG_CUSTOM  ,
false   
)
static

◆ cfg_UseVoleTraplines()

static CfgBool cfg_UseVoleTraplines ( "VOLE_TRAPLINES_ON_OFF"  ,
CFG_CUSTOM  ,
false   
)
static

◆ cfg_vole_reprofinishdate()

static CfgInt cfg_vole_reprofinishdate ( "VOLE_REPROFINISHDATE"  ,
CFG_CUSTOM  ,
243   
)
static

◆ cfg_vole_starting_numberF()

static CfgInt cfg_vole_starting_numberF ( "VOLE_START_NO_F"  ,
CFG_CUSTOM  ,
5000   
)
static

How many female voles to start with

Referenced by Vole_Population_Manager::Init().

◆ cfg_vole_starting_numberM()

static CfgInt cfg_vole_starting_numberM ( "VOLE_START_NO_M"  ,
CFG_CUSTOM  ,
5000   
)
static

How many male voles to start with

Referenced by Vole_Population_Manager::Init().

◆ cfg_VoleBackgroundMort()

static CfgFloat cfg_VoleBackgroundMort ( "VOLE_BCKMORT"  ,
CFG_CUSTOM  ,
0.  0025 
)
static

The unspecified background mortality rate

Referenced by Vole_Population_Manager::DoFirst(), and Vole_Population_Manager::Init().

◆ cfg_VoleFemaleMove()

static CfgFloat cfg_VoleFemaleMove ( "VOLE_FEMALEMOVE"  ,
CFG_CUSTOM  ,
0.  0505 
)
static

◆ cfg_voleLandscapeGridOutputDay()

static CfgInt cfg_voleLandscapeGridOutputDay ( "VOLE_LANDSCAPEGRIDOUTPUTDAY"  ,
CFG_CUSTOM  ,
10000   
)
static

◆ cfg_voleLandscapeGridOutputUsed()

static CfgBool cfg_voleLandscapeGridOutputUsed ( "VOLE_LANDSCAPEGRIDOUTPUTUSED"  ,
CFG_CUSTOM  ,
true   
)
static

◆ cfg_VoleRecordMortFile()

static CfgStr cfg_VoleRecordMortFile ( "VOLE_RECORDMORTFILE"  ,
CFG_CUSTOM  ,
"VoleMortalityCauses.txt"   
)
static

◆ cfg_VoleResistanceDay()

static CfgInt cfg_VoleResistanceDay ( "VOLE_RESISTANCEOUTPUT_DAY"  ,
CFG_CUSTOM  ,
365   
)
static

The day in the year to output the resitance gene frequency

Referenced by Vole_Population_Manager::DoFirst().

◆ cfg_VoleSampleDataUsed()

static CfgBool cfg_VoleSampleDataUsed ( "VOLE_SAMPLE_FILE_USED"  ,
CFG_CUSTOM  ,
false   
)
static

◆ cfg_VoleSampleFileDayOne()

static CfgInt cfg_VoleSampleFileDayOne ( "VOLE_SAMPLE_FILE_DAY_ONE"  ,
CFG_CUSTOM  ,
109   
)
static

◆ cfg_VoleSampleFileDayTwo()

static CfgInt cfg_VoleSampleFileDayTwo ( "VOLE_SAMPLE_FILE_DAY_TWO"  ,
CFG_CUSTOM  ,
287   
)
static

◆ cfg_volestartinoptimalonly()

static CfgBool cfg_volestartinoptimalonly ( "VOLE_STARTINOPTIMALONLY"  ,
CFG_CUSTOM  ,
false   
)
static

◆ cfg_VoleTraplinesfile()

static CfgStr cfg_VoleTraplinesfile ( "VOLE_TRAPLINESFILE"  ,
CFG_CUSTOM  ,
"VoleTraplines.txt"   
)
static

◆ cfg_VoleTrapResolution()

static CfgInt cfg_VoleTrapResolution ( "VOLE_TRAPRESOLUTION"  ,
CFG_CUSTOM  ,
 
)
static

◆ cfg_VoleUseResistanceOuput()

static CfgBool cfg_VoleUseResistanceOuput ( "VOLE_RESISTANCEOUTPUT_ON_OFF"  ,
CFG_CUSTOM  ,
false   
)
static

Variable Documentation

◆ cfg_extradispmort

CfgFloat cfg_extradispmort

Extra mortality for dispersing individuals

Referenced by Vole_Population_Manager::DoFirst(), and Vole_Population_Manager::Init().

◆ cfg_MinFemaleTerritorySize

CfgInt cfg_MinFemaleTerritorySize

◆ cfg_MinMaleTerritorySize

CfgInt cfg_MinMaleTerritorySize

◆ cfg_MinReproAgeF

CfgInt cfg_MinReproAgeF

◆ cfg_MinReproAgeM

CfgInt cfg_MinReproAgeM

◆ cfg_pm_eventfrequency

CfgInt cfg_pm_eventfrequency

The frequency of catastrophes

Referenced by Vole_Population_Manager::Catastrophe().

◆ cfg_pm_eventsize

CfgInt cfg_pm_eventsize

The size of catastrophes

Referenced by Vole_Population_Manager::Catastrophe().

◆ cfg_ReallyBigOutput_used

CfgBool cfg_ReallyBigOutput_used

Raw data for spatial output for calculating Ripley's spatial statistics with additional information about habitat and physiology

Referenced by Vole_Population_Manager::Init().

◆ cfg_ReallyBigOutputMonthly_used

CfgBool cfg_ReallyBigOutputMonthly_used

Raw data for spatial output for calculating Ripley's spatial statistics

◆ cfg_ResistanceDominant

CfgBool cfg_ResistanceDominant

◆ cfg_RipleysOutput_used

CfgBool cfg_RipleysOutput_used

◆ cfg_VoleDDepConst

CfgInt cfg_VoleDDepConst

◆ g_DailyMortChance

double g_DailyMortChance

risk of daily mortality

Mortality per day as a background mortality encompassing all things not directly modelled. This may include specialist predators if they are not simulated - if they are then reduce this value

Definition at line 189 of file Vole_all.cpp.

Referenced by Vole_Population_Manager::DoFirst(), Vole_Population_Manager::Init(), Vole_Base::MortalityTest(), and Vole_Male::MortalityTest().

◆ g_DailyMortChanceMaleTerr

double g_DailyMortChanceMaleTerr

Definition at line 190 of file Vole_all.cpp.

Referenced by Vole_Population_Manager::DoFirst(), and Vole_Male::MortalityTest().

◆ g_extradispmort

◆ g_MaleReproductFinish

int g_MaleReproductFinish

1/10 deduced from Erlinge et al, 1983

Definition at line 183 of file Vole_all.cpp.

Referenced by Vole_Population_Manager::DoFirst(), and Vole_Population_Manager::Init().

◆ g_MaxAllele

unsigned char g_MaxAllele

◆ g_NoFemalesMove

double g_NoFemalesMove

◆ g_rand_uni

◆ g_sigAgeDiff

int g_sigAgeDiff

Age difference required before eviction by older male

Definition at line 153 of file Vole_all.cpp.

Referenced by Vole_Population_Manager::Init(), and Vole_Population_Manager::SupplyInOlderTerr().

◆ MinReproAgeF

int MinReproAgeF

The youngest a female can be reproductive at.

Definition at line 147 of file Vole_all.cpp.

Referenced by Vole_Population_Manager::Init(), Vole_Female::ReInit(), Vole_Female::st_BecomeReproductive(), Vole_JuvenileFemale::Step(), and Vole_Female::Vole_Female().

◆ MinReproAgeM

int MinReproAgeM

The youngest a male can be reproductive at.

Definition at line 145 of file Vole_all.cpp.

Referenced by Vole_JuvenileMale::EndStep(), and Vole_Population_Manager::Init().

◆ MoveToLessFavourable

double MoveToLessFavourable

This is specified as a global because it avoids costing time on look-ups.
This is needed because of the extreme CPU intensive movement functions

Definition at line 157 of file VolePopulationManager.cpp.

Referenced by Vole_Base::DoWalking(), Vole_Base::DoWalkingCorrect(), and Vole_Population_Manager::Init().

◆ MutationChance

◆ ReproTable_base

const float ReproTable_base[2][12]
Initial value:
= { {0,0,0,0,4,4,4,4,3,2,3,0},
{0,0,4,4,5,5,5,5,4,4,0,0}
}

Litter sizes dependent upon month and year

Definition at line 171 of file VolePopulationManager.cpp.

Referenced by Vole_Population_Manager::Init().