PGGWorld Class Documentation

class PGGWorld : public SymWorld

Public Functions

inline PGGWorld(emp::Random &_random, emp::Ptr<SymConfigPGG> _config)

Input: a reference to a random number generator and a pointer to the configuration object for this experiment.

Output: None

Purpose: To construct an instance of PGGWorld

inline ~PGGWorld()

Input: None

Output: None

Purpose: To destruct the data nodes belonging to PGGWorld to conserve memory.

virtual void SetupHosts(long unsigned int *POP_SIZE)

Definitions of setup functions, expanded in PGGWorldSetup.cc

virtual void SetupSymbionts(long unsigned int *total_syms)

Input: The number of symbionts.

Output: None.

Purpose: To populate the world with symbionts with appropriate phenotypes.

inline virtual void CreateDataFiles()

Input: None.

Output: None.

Purpose: To create and set up the data files (excluding for phylogeny) that contain data for the experiment.

inline emp::DataFile &SetupPGGSymIntValFile(const std::string &filename)

Input: The address of the string representing the file to be created’s name

Output: The address of the DataFile that has been created.

Purpose: To set up the file that will be used to track mean information about the PGG symbionts in the world. This includes: (1) their total count, (2) the counts of the free and hosted symbionts, (3) the average donation values for all symbionts, and (4) the histogram data for the distribution of symbionts at various donation values.

inline emp::DataMonitor<double, emp::data::Histogram> &GetPGGDataNode()

Input: None

Output: The DataMonitor<double, emp::data::Histogram>& that has information representing the average donation value for all symbionts in the system.

Purpose: To collect data on the average donation value to be saved to the data file that is tracking PGG data.