[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