[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