def initialize_for_solve(self): self.func_wrappers() self.set_tol() # Flags to indicate whether jac and mas are provided self.ijac = int(hasattr(self, 'jac_f77_radau5')) self.imas = int(hasattr(self, 'mas_f77')) self.set_dummy_functions() ljac = self.neq if ((not hasattr(self, 'ml')) or \ (self.ml == self.neq)) else (self.ml + self.mu + 1) lmas = 0 if not self.imas else (self.neq \ if ((not hasattr(self, 'mlmas')) or (self.mlmas == self.neq)) \ else (self.mlmas + self.mumas + 1)) le = self.neq if ((not hasattr(self, 'ml')) or \ (self.ml == self.neq)) else (2*self.ml + self.mu + 1) self.lwork = self.neq * (ljac + lmas + 3 * le + 12) + 20 self.liwork = 3 * self.neq + 20 # Arrays to specify how the problem is to be solved. self.iwork = np.zeros(self.liwork, int) self.work = np.zeros(self.lwork, float) self.iwork[1] = getattr(self, 'nsteps', 0) self.work[1] = getattr(self, 'safety') self.work[6] = getattr(self, 'max_step', 0.) Solver.initialize_for_solve(self) # Common settings
def initialize_for_solve(self): self.func_wrappers() self.set_tol() # Flags to indicate whether jac and mas are provided self.ijac = int(hasattr(self, 'jac_f77_radau5')) self.imas = int(hasattr(self, 'mas_f77')) self.set_dummy_functions() ljac = self.neq if ((not hasattr(self, 'ml')) or \ (self.ml == self.neq)) else (self.ml + self.mu + 1) lmas = 0 if not self.imas else (self.neq \ if ((not hasattr(self, 'mlmas')) or (self.mlmas == self.neq)) \ else (self.mlmas + self.mumas + 1)) le = self.neq if ((not hasattr(self, 'ml')) or \ (self.ml == self.neq)) else (2*self.ml + self.mu + 1) self.lwork = self.neq*(ljac + lmas + 3*le + 12) + 20 self.liwork = 3*self.neq + 20 # Arrays to specify how the problem is to be solved. self.iwork = np.zeros(self.liwork, int) self.work = np.zeros(self.lwork, float) self.iwork[1] = getattr(self, 'nsteps', 0) self.work[1] = getattr(self, 'safety') self.work[6] = getattr(self, 'max_step', 0.) Solver.initialize_for_solve(self) # Common settings