Firing the viral growth/death reactions should probably iterate over the entire map...
authorDariusz Murakowski <murakdar@mit.edu>
Wed, 29 Apr 2015 22:08:32 +0000 (18:08 -0400)
committerDariusz Murakowski <murakdar@mit.edu>
Wed, 29 Apr 2015 22:08:32 +0000 (18:08 -0400)
reaction.cpp

index 5abc6e9..4fc010f 100644 (file)
@@ -90,7 +90,7 @@ void VirusReaction::fire()
     double rand = gsl_rng_uniform_pos(rnd) * this->propensity;
     double a_sum = 0.0;
     virus_map::iterator iter = V->pop.begin(),
-                        end  = V->pop.begin();
+                        end  = V->pop.end();
     for(; iter != end; ++iter) {
         a_sum += RC_fun(iter->first.energy) * iter->second;
         if (rand <= a_sum * rate_constant)
@@ -152,7 +152,7 @@ void VirusDeathReaction::fire()
     double rand = gsl_rng_uniform_pos(rnd) * this->propensity;
     double a_sum = 0.0;
     virus_map::iterator iter = V->pop.begin(),
-                        end  = V->pop.begin();
+                        end  = V->pop.end();
     for (; iter != end; ++iter) {
         a_sum += iter->second;
         if (rand <= a_sum * rate_constant)
@@ -258,7 +258,7 @@ void NTVirusReaction::fire()
     double rand = gsl_rng_uniform_pos(rnd) * this->propensity;
     double a_sum = 0.0;
     NTVirus_map::iterator iter = V->pop.begin(),
-                          end  = V->pop.begin();
+                          end  = V->pop.end();
     for(; iter != end; ++iter) {
         a_sum += RC_fun(iter->first.energy) * iter->second;
         if (rand <= a_sum * rate_constant)
@@ -346,7 +346,7 @@ void NTVirusDeathReaction::fire()
     double rand = gsl_rng_uniform_pos(rnd) * this->propensity;
     double a_sum = 0.0;
     NTVirus_map::iterator iter = V->pop.begin(),
-                           end  = V->pop.begin();
+                           end  = V->pop.end();
     for (; iter != end; ++iter) {
         a_sum += iter->second;
         if (rand <= a_sum * rate_constant)