Added "run until" functionality for simulation

This commit is contained in:
dario 2023-12-30 12:56:32 +01:00
parent b9ffa3710b
commit 478fcf0a5b

View File

@ -5,7 +5,7 @@ from tqdm import tqdm
from spatz.dataset import Dataset from spatz.dataset import Dataset
from spatz.logger import Logger from spatz.logger import Logger
from spatz.sensors import Sensor from spatz.sensors import Sensor
from spatz.dataset import Dataset from spatz.dataset import Dataset, Phase
from spatz.logger import Logger from spatz.logger import Logger
from spatz.sensors import Sensor from spatz.sensors import Sensor
from spatz.observer import Observer from spatz.observer import Observer
@ -43,7 +43,7 @@ class Simulation:
self.__sensors: List[Sensor] = [] self.__sensors: List[Sensor] = []
self.__time_steps = time_steps self.__time_steps = time_steps
def run(self, verbose=False): def run(self, verbose=False, until: Phase = None):
idx = 0 idx = 0
# Clear all logs and reset the dataset to the first time step. # Clear all logs and reset the dataset to the first time step.
@ -62,6 +62,9 @@ class Simulation:
if t_ > self.__dataset.get_length(): if t_ > self.__dataset.get_length():
break break
if until is not None and self.__dataset.get_phase() == until:
break
self.__dataset.step(dt) self.__dataset.step(dt)
self.__logger.step(dt) self.__logger.step(dt)