Run a sorted sequence to update one loop of the exogenous parameters. `@requires` decorator checks that all dependencies are computed previously.
(self, k)
| 436 | |
| 437 | @requires(["io", "iopc", "ppolx", "so", "sopc", "f", "fpc"], ["pop"]) |
| 438 | def loopk_exogenous(self, k): |
| 439 | """ |
| 440 | Run a sorted sequence to update one loop of the exogenous parameters. |
| 441 | `@requires` decorator checks that all dependencies are computed |
| 442 | previously. |
| 443 | """ |
| 444 | |
| 445 | # industrial output |
| 446 | self.io11[k] = .7e11*np.exp((self.time[k] - self.year_min)*.037) |
| 447 | self.io12[k] = self.pop[k] * self.cio |
| 448 | self.io1[k] = clip(self.io12[k], self.io11[k], self.time[k], self.lt2) |
| 449 | self.io2[k] = .7e11 * np.exp(self.lt * .037) |
| 450 | self.io[k] = clip(self.io2[k], self.io1[k], self.time[k], self.lt) |
| 451 | self.iopc[k] = self.io[k] / self.pop[k] |
| 452 | # index of persistent pollution |
| 453 | self.ppolx[k] = 1 + ramp(self.ps, self.pt, self.time[k]) |
| 454 | # service output |
| 455 | self.so11[k] = 1.5e11 * np.exp((self.time[k] - self.year_min) * .030) |
| 456 | self.so12[k] = self.pop[k] * self.cso |
| 457 | self.so1[k] = clip(self.so12[k], self.so11[k], self.time[k], self.lt2) |
| 458 | self.so2[k] = 1.5e11 * np.exp(self.lt * .030) |
| 459 | self.so[k] = clip(self.so2[k], self.so1[k], self.time[k], self.lt) |
| 460 | self.sopc[k] = self.so[k] / self.pop[k] |
| 461 | # food |
| 462 | self.f11[k] = 4e11 * np.exp((self.time[k] - self.year_min) * .020) |
| 463 | self.f12[k] = self.pop[k] * self.cfood |
| 464 | self.f1[k] = clip(self.f12[k], self.f11[k], self.time[k], self.lt2) |
| 465 | self.f2[k] = 4e11 * np.exp(self.lt * .020) |
| 466 | self.f[k] = clip(self.f2[k], self.f1[k], self.time[k], self.lt) |
| 467 | self.fpc[k] = self.f[k] / self.pop[k] |
| 468 | |
| 469 | def loop0_exogenous(self): |
| 470 | """ |
no test coverage detected