[Avida-SVN] r1955 - in branches/energy/source: actions main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Fri Aug 17 08:28:15 PDT 2007


Author: beckma24
Date: 2007-08-17 11:28:15 -0400 (Fri, 17 Aug 2007)
New Revision: 1955

Modified:
   branches/energy/source/actions/PrintActions.cc
   branches/energy/source/main/cPopulation.cc
Log:
Added some deme-level print actions

Modified: branches/energy/source/actions/PrintActions.cc
===================================================================
--- branches/energy/source/actions/PrintActions.cc	2007-08-17 14:43:20 UTC (rev 1954)
+++ branches/energy/source/actions/PrintActions.cc	2007-08-17 15:28:15 UTC (rev 1955)
@@ -2378,7 +2378,59 @@
   }
 };
 
+class cActionPrintDemeDonorStats : public cAction
+{
+public:
+  cActionPrintDemeDonorStats(cWorld* world, const cString& args) : cAction(world, args) { ; }
+  
+  static const cString GetDescription() { return "No Arguments"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    m_world->GetPopulation().PrintDemeDonor();
+  }
+};
 
+
+class cActionPrintDemeSpacialEnergy : public cAction
+{
+public:
+  cActionPrintDemeSpacialEnergy(cWorld* world, const cString& args) : cAction(world, args) { ; }
+  
+  static const cString GetDescription() { return "No Arguments"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    m_world->GetPopulation().PrintDemeSpatialEnergyData();
+  }
+};
+
+class cActionPrintDemeSpacialSleep : public cAction
+{
+public:
+  cActionPrintDemeSpacialSleep(cWorld* world, const cString& args) : cAction(world, args) { ; }
+  
+  static const cString GetDescription() { return "No Arguments"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    m_world->GetPopulation().PrintDemeSpatialSleepData();
+  }
+};
+
+class cActionPrintDemeResources : public cAction
+{
+public:
+  cActionPrintDemeResources(cWorld* world, const cString& args) : cAction(world, args) { ; }
+  
+  static const cString GetDescription() { return "No Arguments"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    m_world->GetPopulation().PrintDemeResource();
+  }
+};
+
 class cActionSetVerbose : public cAction
 {
 private:
@@ -2453,9 +2505,15 @@
   // Population Out Files
   action_lib->Register<cActionPrintPhenotypeData>("PrintPhenotypeData");
   action_lib->Register<cActionPrintPhenotypeStatus>("PrintPhenotypeStatus");
+  
+  // deme output files
   action_lib->Register<cActionPrintDemeAllStats>("PrintDemeAllStats");
   action_lib->Register<cActionPrintDemeAllStats>("PrintDemeStats"); //duplicate of previous
-	
+  action_lib->Register<cActionPrintDemeDonorStats>("PrintDemeDonorStats");
+  action_lib->Register<cActionPrintDemeSpacialEnergy>("PrintDemeSpacialEnergyStats");
+  action_lib->Register<cActionPrintDemeSpacialSleep>("PrintDemeSpacialSleepStats");
+  action_lib->Register<cActionPrintDemeResources>("PrintDemeResourceStats");
+
   //Coalescence Clade Actions
   action_lib->Register<cActionPrintCCladeCounts>("PrintCCladeCounts");
   action_lib->Register<cActionPrintCCladeFitnessHistogram>("PrintCCladeFitnessHistogram");

Modified: branches/energy/source/main/cPopulation.cc
===================================================================
--- branches/energy/source/main/cPopulation.cc	2007-08-17 14:43:20 UTC (rev 1954)
+++ branches/energy/source/main/cPopulation.cc	2007-08-17 15:28:15 UTC (rev 1955)
@@ -1741,11 +1741,12 @@
 // Write spatial energy data to a file that can easily be read into Matlab
 void cPopulation::PrintDemeSpatialEnergyData() const {
   int cellID = 0;
+  cString tmpfilename = "deme_spacial_energy.m";
+  cDataFile& df = m_world->GetDataFile(tmpfilename);
+  int update = m_world->GetStats().GetUpdate();
+  
   for(int i = 0; i < m_world->GetPopulation().GetNumDemes(); i++) {
-    cString tmpfilename = cStringUtil::Stringf( "deme_spacial_energy_%i.m", i );
-    cDataFile& df = m_world->GetDataFile(tmpfilename);
-    cString UpdateStr = cStringUtil::Stringf( "deme_energy_%07i_%07i = [ ...", i, m_world->GetStats().GetUpdate() );
-
+    cString UpdateStr = cStringUtil::Stringf( "deme_%07i_energy_%07i = [ ...", i, update );
     df.WriteRaw(UpdateStr);
 
     int gridsize = m_world->GetPopulation().GetDeme(i).GetSize();
@@ -1762,18 +1763,16 @@
       cellID++;
     }
     df.WriteRaw("];");
-//    df.Endl();
+    df.Endl();
   }
 }
 
 // Write spatial data to a file that can easily be read into Matlab
 void cPopulation::PrintDemeSpatialResData( cResourceCount res, const int i, const int deme_id) const {
   const char* tmpResName = res.GetResName(i);
-  cString tmpfilename = cStringUtil::Stringf( "deme_spacial_resource_%s_%i.m", tmpResName, deme_id );
-//  tmpfilename +=  res.GetResName(i) + ".m";
+  cString tmpfilename = cStringUtil::Stringf( "deme_spacial_resource_%s.m", tmpResName );
   cDataFile& df = m_world->GetDataFile(tmpfilename);
-  cString UpdateStr = cStringUtil::Stringf( "deme_%07i_", deme_id ) + res.GetResName(i) + 
-                      cStringUtil::Stringf( "_%07i", m_world->GetStats().GetUpdate() ) + " = [ ...";
+  cString UpdateStr = cStringUtil::Stringf( "deme_%07i_%s_%07i = [ ...", deme_id, static_cast<const char*>(res.GetResName(i)), m_world->GetStats().GetUpdate() );
 
   df.WriteRaw(UpdateStr);
 
@@ -1781,24 +1780,22 @@
   int gridsize = sp_res.GetSize();
   int xsize = m_world->GetConfig().WORLD_X.Get();
 
-  // write grid to file
-
   for (int j = 0; j < gridsize; j++) {
     df.WriteBlockElement(sp_res.GetAmount(j), j, xsize);
   }
   df.WriteRaw("];");
-//  df.Endl();
+  df.Endl();
 }
 
 // Write spatial energy data to a file that can easily be read into Matlab
 void cPopulation::PrintDemeSpatialSleepData() const {
   int cellID = 0;
+  cString tmpfilename = "deme_spacial_sleep.m";
+  cDataFile& df = m_world->GetDataFile(tmpfilename);
+  int update = m_world->GetStats().GetUpdate();
+  
   for(int i = 0; i < m_world->GetPopulation().GetNumDemes(); i++) {
-    cString tmpfilename = cStringUtil::Stringf( "deme_spacial_sleep_%i.m", i );
-    cDataFile& df = m_world->GetDataFile(tmpfilename);
-    cString UpdateStr = cStringUtil::Stringf( "deme_sleep_%07i_", i ) +
-                        cStringUtil::Stringf( "_%07i", m_world->GetStats().GetUpdate() ) + " = [ ...";
-
+    cString UpdateStr = cStringUtil::Stringf( "deme_%07i_sleep_%07i = [ ...", i, update);
     df.WriteRaw(UpdateStr);
 
     int gridsize = m_world->GetPopulation().GetDeme(i).GetSize();
@@ -1815,7 +1812,7 @@
       cellID++;
     }
     df.WriteRaw("];");
-//    df.Endl();
+    df.Endl();
   }
 }
 




More information about the Avida-cvs mailing list