[Avida-SVN] r3000 - in development/source: actions main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Fri Dec 5 13:44:24 PST 2008


Author: beckma24
Date: 2008-12-05 16:44:24 -0500 (Fri, 05 Dec 2008)
New Revision: 3000

Modified:
   development/source/actions/PrintActions.cc
   development/source/main/cPopulation.cc
   development/source/main/cPopulation.h
Log:
Added print action PrintDemeTotalAvgEnergy

Modified: development/source/actions/PrintActions.cc
===================================================================
--- development/source/actions/PrintActions.cc	2008-12-05 20:47:59 UTC (rev 2999)
+++ development/source/actions/PrintActions.cc	2008-12-05 21:44:24 UTC (rev 3000)
@@ -2537,6 +2537,17 @@
   }
 };
 
+class cActionPrintDemesTotalAvgEnergy : public cAction {
+public:
+	cActionPrintDemesTotalAvgEnergy(cWorld* world, const cString& args) : cAction(world, args) { ; }
+	
+	static const cString GetDescription() { return "No Arguments"; }
+	
+	void Process(cAvidaContext& ctx) {
+		m_world->GetPopulation().PrintDemeTotalAvgEnergy();
+	}
+};
+
 class cActionPrintDemeEnergySharingStats : public cAction
   {
   public:
@@ -2723,6 +2734,7 @@
   // deme output files
   action_lib->Register<cActionPrintDemeAllStats>("PrintDemeAllStats");
   action_lib->Register<cActionPrintDemeAllStats>("PrintDemeStats"); //duplicate of previous
+	action_lib->Register<cActionPrintDemesTotalAvgEnergy>("PrintDemesTotalAvgEnergy");
   action_lib->Register<cActionPrintDemeEnergySharingStats>("PrintDemeEnergySharingStats");
   action_lib->Register<cActionPrintDemeDonorStats>("PrintDemeDonorStats");
   action_lib->Register<cActionPrintDemeSpacialEnergy>("PrintDemeSpacialEnergyStats");

Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc	2008-12-05 20:47:59 UTC (rev 2999)
+++ development/source/main/cPopulation.cc	2008-12-05 21:44:24 UTC (rev 3000)
@@ -2699,6 +2699,23 @@
   df_fit.Endl();
 }
 
+void cPopulation::PrintDemeTotalAvgEnergy() {
+  cStats& stats = m_world->GetStats();
+  const int num_demes = deme_array.GetSize();
+  cDataFile & df_fit = m_world->GetDataFile("deme_totalAvgEnergy.dat");
+  df_fit.WriteComment("Average energy for demes in the population");
+  df_fit.WriteTimeStamp();
+  df_fit.Write(stats.GetUpdate(), "update");
+	cDoubleSum avg_energy;
+  
+  for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+    const cDeme & cur_deme = deme_array[deme_id];    
+		avg_energy.Add(cur_deme.CalculateTotalEnergy());
+	}
+	df_fit.Write(avg_energy.Ave(), "Total Average Energy");
+	df_fit.Endl();
+}
+
 void cPopulation::PrintDemeGestationTime() {
   cStats& stats = m_world->GetStats();
   const int num_demes = deme_array.GetSize();

Modified: development/source/main/cPopulation.h
===================================================================
--- development/source/main/cPopulation.h	2008-12-05 20:47:59 UTC (rev 2999)
+++ development/source/main/cPopulation.h	2008-12-05 21:44:24 UTC (rev 3000)
@@ -243,6 +243,7 @@
   void PrintDemeSpatialEnergyData() const;
   void PrintDemeSpatialSleepData() const;
   void PrintDemeTasks();
+	void PrintDemeTotalAvgEnergy();
   
   // Print deme founders
   void DumpDemeFounders(ofstream& fp);




More information about the Avida-cvs mailing list