Пример #1
0
 def get_year_temp(self, end_year, run_time=10):
     eta_year = np.empty(year_res)
     T_year = np.empty((year_res, y_steps))
     Q_year = get_Q_year(end_year, self.y_span, year_res)
     for i in range(year_res * run_time):
         self.Qs = Q_year[i % year_res, :]
         self.T, eta = self.euler(self.T, self.eta, self.dX_dt, self.delta)
         self.eta = min(eta, 1)
         if i >= (year_res * (run_time - 1)):
             eta_year[i % year_res] = self.eta
             T_year[i % year_res, :] = self.T
     return T_year, eta_year
Пример #2
0
 def get_year_temp(self, end_year, run_time, last_etas_ave):
     etas_year = np.empty((year_res, 2, 2))
     T_year = np.empty((year_res, phi_steps))
     Q_year = get_Q_year(end_year, phi_span, year_res)
     self.etas = last_etas_ave
     for i in range(year_res * run_time):
         self.Qs = Q_year[i % year_res, :]
         self.T, etas = self.euler(self.T, self.etas, self.dX_dt, delta)
         self.etas = self.bound_etas(etas)
         if i >= (year_res * (run_time - 1)):
             etas_year[i % year_res, :, :] = self.etas
             T_year[i % year_res, :] = self.T
     return T_year, etas_year
Пример #3
0
 def get_year_temp(self, end_year, run_time=10):
     etas_year = np.empty((year_res,2))
     T_year = np.empty((year_res, y_steps))
     Q_year = get_Q_year(end_year, y_span, year_res)
     for i in range(year_res*run_time):
         self.Qs = Q_year[i%year_res,:]
         self.T, etas = self.euler(self.T, self.etas, self.dX_dt, delta)
         etas[etas>1]=1
         etas[etas<-1]=-1
         self.etas = etas
         if i >= (year_res*(run_time-1)):
             etas_year[i%year_res,:] = self.etas
             T_year[i%year_res,:] = self.T
     return T_year, etas_year
Пример #4
0
 def get_year_temp(self, end_year, run_time, last_etas_ave):
     etas_year = np.empty((year_res,2))
     T_year = np.empty((year_res, phi_steps))
     Q_year = get_Q_year(end_year, phi_span, year_res)
     self.etas = last_etas_ave
     for i in range(year_res*run_time):
         self.Qs = Q_year[i%year_res,:]
         self.T, etas = self.euler(self.T, self.etas, self.dX_dt, self.delta)
         etas[etas>np.pi/2]=np.pi/2
         etas[etas<antarctic_lat]=antarctic_lat
         self.etas = etas
         if i >= (year_res*(run_time-1)):
             etas_year[i%year_res,:] = self.etas
             T_year[i%year_res,:] = self.T
     return T_year, etas_year
Пример #5
0
 def iter_func(self):
     #Iter over all time points
     Q_year = np.empty((year_res, phi_steps))
     for frame, t in enumerate(self.t_span):
         if frame%(self.t_steps//100)==0:print(frame/self.t_steps,end='\r')
         if frame%(100*year_res) == 0:
             Q_year = get_Q_year(t//year2sec, phi_span, year_res)
         self.Qs = Q_year[frame%year_res]
         self.T, etas = self.euler(self.T, self.etas, self.dX_dt, self.delta)
         etas[etas>np.pi/2]=np.pi/2
         etas[etas<antarctic_lat]=antarctic_lat
         self.etas = etas
         if frame%frame_refr==0:
             self.eta_record[frame//frame_refr,:] = self.etas
             yield t
Пример #6
0
 def iter_func(self):
     #Iter over all time points
     Q_year = np.empty((year_res, phi_steps))
     for frame, t in enumerate(t_span):
         if frame % (t_steps // 100) == 0: print(frame / t_steps, end='\r')
         if frame % (100 * year_res) == 0:
             Q_year = get_Q_year(t // year2sec, phi_span, year_res)
         self.Qs = Q_year[frame % year_res]
         self.T, etas = self.euler(self.T, self.etas, self.dX_dt, delta)
         self.etas = self.bound_etas(etas)
         if frame % frame_refr == 0:
             #self.tmp(self.T, self.etas)
             #plt.plot(phi_span,self.a_eta(phi_span))
             #plt.plot(self.etas,[0.5,0.5],'o')
             #plt.show()
             self.eta_record[frame // frame_refr, :, :] = self.etas
             yield t
Пример #7
0
 def iter_func(self):
     #Iter over all time points
     for frame, t in enumerate(T_SPAN):
         if frame % (T_STEPS // 100) == 0: print(frame / T_STEPS, end='\r')
         if frame % (100 * YEAR_RES) == 0:
             Q_year = get_Q_year(t // year2sec, Y_SPAN, YEAR_RES)
         self.Qs = Q_year[frame % YEAR_RES]
         dT, dice = self.dX_dt(self.T, self.ice)
         self.T, ice_open = self.RK4(self.T, self.ice, self.dX_dt, DELTA)
         ice_open[ice_open < 0] = 0
         ice_open[ice_open > 1] = 1
         self.ice = ice_open
         if frame % FRAME_REFR == 0:
             #day = int((frame%YEAR_RES/YEAR_RES*year+185)%year)
             #input(dt.datetime.strptime(f'{day}', '%j').strftime('%d %B'))
             self.ice_record[frame // FRAME_REFR, :] = self.ice
             #self.max_T[frame//FRAME_REFR] = max(self.T)
             yield t
Пример #8
0
 def iter_func(self):
     #Iter over all time points
     T_year = np.empty((year_res, y_steps))
     for frame, t in enumerate(self.t_span):
         #if frame%(self.t_steps//100)==0:print(f'{100*frame//self.t_steps}%',end='\r')
         if frame % (100 * year_res) == 0:
             Q_year = get_Q_year(t // year2sec, self.y_span, year_res)
         self.Qs = Q_year[frame % year_res]
         self.T, eta = self.euler(self.T, self.eta, self.dX_dt, self.delta)
         self.eta = min(eta, 1)
         #Take average temperature for first year in frame_refr period
         #if frame%frame_refr < year_res:
         #    T_year[frame%frame_refr] = self.T
         #    if frame%frame_refr == 0:
         if frame % frame_refr == 0:
             self.T_record[frame // frame_refr] = self.T
             self.eta_record[frame // frame_refr] = self.eta
             yield t
Пример #9
0
    def iter_func(self):
        #Iter over all time points
        Q_year = np.empty((year_res, y_steps))
        for frame, t in enumerate(t_span):
            if frame%(t_steps//100)==0:print(frame/t_steps,end='\r')
            if frame%(100*year_res)==0:
                Q_year = get_Q_year(t//year2sec, y_span, year_res)
            self.Qs = Q_year[frame%year_res]
            self.T, etas = self.euler(self.T, self.etas, self.dX_dt, delta)
            etas[etas>1]=1
            etas[etas<-1]=-1
            self.etas = etas

            if frame%frame_refr==0:
                #day = int((frame%year_res/year_res*year+185)%year)
                #input(dt.datetime.strptime(f'{day}', '%j').strftime('%d %B'))
                self.eta_record[frame//frame_refr,:] = self.etas
                self.T_record[frame//frame_refr,:] = self.T
                #self.max_T[frame//frame_refr] = max(self.T)
                yield t