diff --git a/biosteam/_system.py b/biosteam/_system.py index a252f811..020ba101 100644 --- a/biosteam/_system.py +++ b/biosteam/_system.py @@ -3198,6 +3198,9 @@ def _load_state(self): if self._state is None: for ws in self.feeds: if not ws.state.all(): ws._init_state() + if self.recycle: + for ws in self.recycle: + if not ws.state.all(): ws._init_state() for inf in units[0].ins: if not inf.state.all(): inf._init_state() y = np.array([]) @@ -3507,9 +3510,9 @@ def dynamic_run(self, **dynsim_kwargs): # Load initial states self.converge() y0, idx, nr = self._load_state() - dk['y0'] = y0 - # Integrate + self.dynsim_kwargs['y0'] = y0.copy() self.dynsim_kwargs['print_t'] = print_t # self.dynsim_kwargs might be reset by `state_reset_hook` + # Integrate self.scope.sol = sol = solve_ivp(fun=self.DAE, y0=y0, **dk_cp) if print_msg: if sol.status == 0: diff --git a/biosteam/utils/scope.py b/biosteam/utils/scope.py index 967e0e41..c78d3a03 100644 --- a/biosteam/utils/scope.py +++ b/biosteam/utils/scope.py @@ -40,10 +40,7 @@ def __init__(self, subject, variables, header=None, **kwargs): self._ts = [] self._header = header rcd = {} - for var in variables: - if hasattr(subject, var): rcd[var] = [] - else: warn(f'Variable {var} ignored in {self.__repr__()} because ' - f'{self.subject} has no attribute {var}.') + for var in variables: rcd[var] = [] self._record = rcd for k, v in kwargs: setattr(self, k, v)