[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