Class RadialDispersal#
Defined in File Dispersal.h
Inheritance Relationships#
Base Type#
public Dispersal
(Class Dispersal)
Class Documentation#
-
class RadialDispersal : public Dispersal
Implements dispersive behaviour for radial dispersal, where connection weights between patches are determined by the direction the patches are in relative to each other and other patches.
Particularly, the connection weight of a focal patch to its neighbouring patch is determined by the angle of bisecting lines from the centre of the focal patch to the catchment of the receiving patch. More distant villages may also be directly connected but the connectivity will be reduced if there are closer villages along the same flight path. The individuals that disperse in an unconnected direction will die.
Public Functions
-
RadialDispersal(DispersalParams *params, BoundaryType boundary, double side_x, double side_y)
RadialDispersal constructor.
- Parameters:
params – [in] dispersal parameters
boundary – [in] boundary type to use for calculating dispersal distances
side_x – [in] size of one side of the simulation area (x-axis)
side_y – [in] size of one side of the simulation area (y-axis)
-
~RadialDispersal()
-
virtual void set_connecs(std::vector<Patch*> &sites) override
Sets the inter-patch connectivities for radial dispersal.
If the distance between two patches is less than the the maximum dispersal distance, they may be connected. The connection weight of a focal patch to its neighbouring patch is determined by the angle of bisecting lines from the centre of the focal patch to the catchment of the receiving patch. More distant villages may also be directly connected but the connectivity will be reduced if there are closer villages along the same flight path. Patches that are further apart than the maximum dispersal distance are not connected.
- Parameters:
sites – [in] vector of all Patch objects
-
virtual void adults_disperse(std::vector<Patch*> &sites) override
Implements dispersal by adults from and to each patch, depending on the patch connectivities.
Only those individuals that disperse out of a patch in a connected direction will survive. The number of dispersing males (of a given genotype) that survive dispersal out of their patch is determined by a random draw from a binomial distribution with probability of the total connection weight for all its connected patches. Of those, the number dispersing to each of the connected patches is determined by a random draw from a multinomial distribution with probabilities equal to the connection weights. Similarly for the mated females.
Note
Only adult males and mated females are assumed to disperse from the patches. There is also dispersal mortality associated with this dispersal type.
- Parameters:
sites – [inout] vector of all Patch objects
-
RadialDispersal(DispersalParams *params, BoundaryType boundary, double side_x, double side_y)