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
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
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
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
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
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
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
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
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