code: def sim_model(self,tmax,X0,noiseDyn=0,restart=0):
          
          self.noiseDyn = noiseDyn
          #
          X = np.zeros((tmax,self.dim))
          X[0] = X0 + noiseDyn*np.random.randn(self.dim)
          # run simulation
          for t in range(1,tmax):
              if self.modelType == 'hill':
                  Xdiff = self.Xdiff_hill(X[t-1])
              elif self.modelType == 'var':
                  Xdiff = self.Xdiff_var(X[t-1])
              #
              X[t] = X[t-1] + Xdiff
              # add dynamic noise
              X[t] += noiseDyn*np.random.randn(self.dim)
          return X
docs: Simulate the model.