Beispiel #1
0
 def run_simulation(self):
     #self.q = odeint( self.flow_progress, self.q0, self.params, self.fs, self.T )
     fp1, fp2 = calc_fixed_points(self.params)
     self.q0 = np.zeros(2*self.nm+3)
     self.q0[self.nm+2] = 1e-8
     #self.q0 = fp1 + 1e-6 * abs(np.random.rand(2*self.nm+1))
     self.q = integrate.odeint( self.flow_progress, self.q0, self.t, args = (self.params,) , mxstep = 0 )
Beispiel #2
0
  def plot_page_one(self):
      [ax.cla() for ax in self.ax1.flatten()]

      #plot driving velocity
      t = self.t[self.t1:self.t2] * L / c
      a = np.real(self.s * np.sinh(self.s*L) )
      u = np.dot(self.q[self.t1:self.t2, 2:self.nm+2],a) * c
      self.ax1[0].plot(t, u)
      self.ax1[0].set_xlabel('t (s)')
      self.ax1[0].set_ylabel('u0 (m/s)')

      #plot fourier transform of u
      #self.ax1[1].specgram(u - np.mean(u), Fs=self.fs*c/L)
      U = np.fft.rfft( u - np.mean(u) )
      f = np.fft.rfftfreq(len(t), 1./self.fs)
      self.ax1[1].plot(f * c / L, abs(U))
      self.ax1[1].set_xlabel('f (Hz)')

      fp1, fp2 = calc_fixed_points(self.params)
      jac = calc_jacobian(fp1, self.params)
      evs, evecs = np.linalg.eig(jac)
      self.ax1[2].plot(evs.real, c/L/2/pi*evs.imag, 'o')
      self.ax1[2].set_xlabel('Re(eig) (Hz)')
      self.ax1[2].set_ylabel('Im(eig) (Hz)')

      self.fig1.canvas.draw()
Beispiel #3
0
  def set_defaults(self):
      self.page = 1

      self.nm = 3
      self.r_mouth = 0.001
      self.omega_d = pi / 2
      self.Gamma = 1e-4

      self.p = 0.015
      self.r_folds = 0.002
      self.r_back = 0.002

      self.fs = 3. #time sampling frequency
      self.T = 500. #total time
      self.t = np.arange(0, self.T, 1/self.fs)
      self.t1 = 0 
      self.t2 = len(self.t)
      self.s = cp.calc_spatial_evs(r_mouth=self.r_mouth/L, nm=self.nm, 
          num_seeds=500, max_x=20, max_y=2)
      self.params = cp.calc_parameters(self.p, self.r_folds, self.r_folds, 
        self.omega_d, self.Gamma, self.s.imag, self.s.real, self.nm)
      fp1, fp2 = calc_fixed_points(self.params)