def commit_particles(self): new = self.particles.difference(self._main_se.particles).copy() removed = self._main_se.particles.difference(self.particles).copy() # remove all particles from underlying models if len(removed) > 0: self._main_se.particles.remove_particles(removed) if len(removed) > 0: self._fallback_se.particles.remove_particles(removed) # initialize EVtwin, transfer state self._main_se.particles.add_particles(new) for part in self.particles: self.ActiveModel[part] = self._main_se self._transfer_state(part) # initialize SSE sse_part = self._fallback_se.particles.add_particles(new) for part in self.particles: self._FBTimeseries[part] = ParticlesTimeseries( part.as_particle_in_set(self._fallback_se.particles)) self._FBTimeseries[part].add_timepoint() self.model_time = self.particles.age.min()
def commit_particles(self): self.ActiveModel = self._EVtwin # self.ActiveModel.__class__.__name__ contains name of active model # remove all particles from underlying models if not (self._EVtwin_particlesh is None): self._EVtwin.particles.remove_particles(self._EVtwin_particlesh) if not (self._SSE_particlesh is None): self._SSE.particles.remove_particles(self._SSE_particlesh) # initialize EVtwin, transfer state self._EVtwin_particlesh = self._EVtwin.particles.add_particles(self.particles) self._EVtwin.commit_particles() self._transfer_state_EVtwin() # initialize SSE self._SSE_particlesh = self._SSE.particles.add_particles(self.particles) self._SSE.commit_particles() self._SSETimeseries = ParticlesTimeseries(self._SSE.particles) self._SSETimeseries.add_timepoint()