[Avida-SVN] r2331 - development/source/main
beckma24 at myxo.css.msu.edu
beckma24 at myxo.css.msu.edu
Thu Feb 14 13:51:32 PST 2008
Author: beckma24
Date: 2008-02-14 16:51:31 -0500 (Thu, 14 Feb 2008)
New Revision: 2331
Modified:
development/source/main/cAvidaConfig.h
development/source/main/cPopulation.cc
Log:
Changed config option DEMES_RESET_PARENT_RESOURCES to DEME_RESET_RESOURCES. This config option can be either: 0 = reset both demes, 1 = reset target deme, 2 = deme resources remain unchanged
Modified: development/source/main/cAvidaConfig.h
===================================================================
--- development/source/main/cAvidaConfig.h 2008-02-14 19:23:14 UTC (rev 2330)
+++ development/source/main/cAvidaConfig.h 2008-02-14 21:51:31 UTC (rev 2331)
@@ -298,7 +298,7 @@
CONFIG_ADD_VAR(DEMES_USE_GERMLINE, int, 0, "Whether demes use a distinct germline (default=0).");
CONFIG_ADD_VAR(DEMES_HAVE_MERIT, int, 0, "Whether demes have merit (default=0).");
CONFIG_ADD_VAR(DEMES_PREVENT_STERILE, int, 0, "Whether to prevent sterile demes from\nreplicating (default=0).");
- CONFIG_ADD_VAR(DEMES_RESET_PARENT_RESOURCES, bool, 1, "Reset resources in parent (or source) deme on replication. 0/1 (off/on)");
+ CONFIG_ADD_VAR(DEMES_RESET_RESOURCES, int, 0, "Reset resources in demes on replication. \n0 = reset both demes \n1 = reset target deme \n2 = deme resources remain unchanged\n");
CONFIG_ADD_VAR(DEMES_REPLICATE_SIZE, int, 1, "Number of identical organisms to create or copy from the\nsource deme to the target deme (default=1).");
CONFIG_ADD_VAR(DEMES_PROB_ORG_TRANSFER, double, 0.0, "Probablity of an organism being transferred from the\nsource deme to the target deme (default=0.0).");
CONFIG_ADD_VAR(DEMES_ORGANISM_PLACEMENT, int, 0, "How organisms are placed during deme replication.\n0=cell-array middle (default).\n1=deme center.\n2=random placement.");
Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc 2008-02-14 19:23:14 UTC (rev 2330)
+++ development/source/main/cPopulation.cc 2008-02-14 21:51:31 UTC (rev 2331)
@@ -1209,13 +1209,30 @@
target_deme.UpdateDemeMerit(source_deme);
}
+ bool source_deme_resource_reset(true), target_deme_resource_reset(true);
+ switch(m_world->GetConfig().DEMES_RESET_RESOURCES.Get()) {
+ case 0:
+ // reset resource in both demes
+ source_deme_resource_reset = target_deme_resource_reset = true;
+ case 1:
+ // reset resource only in target deme
+ source_deme_resource_reset = false;
+ target_deme_resource_reset = true;
+ case 2:
+ // do not reset either deme resource
+ source_deme_resource_reset = target_deme_resource_reset = false;
+ default:
+ cout << "Undefined value " << m_world->GetConfig().DEMES_RESET_RESOURCES.Get() << " for DEMES_RESET_RESOURCES\n";
+ exit(1);
+ }
+
// Reset both demes, in case they have any cleanup work to do.
if(m_world->GetConfig().ENERGY_ENABLED.Get()) {
- source_deme.Reset(parent_deme_energy, m_world->GetConfig().DEMES_RESET_PARENT_RESOURCES.Get());
- target_deme.Reset(offspring_deme_energy);
+ source_deme.Reset(parent_deme_energy, source_deme_resource_reset);
+ target_deme.Reset(offspring_deme_energy, target_deme_resource_reset);
} else {
- source_deme.Reset(m_world->GetConfig().DEMES_RESET_PARENT_RESOURCES.Get());
- target_deme.Reset();
+ source_deme.Reset(source_deme_resource_reset);
+ target_deme.Reset(target_deme_resource_reset);
}
// All done; do our post-replication stats tracking.
More information about the Avida-cvs
mailing list