Changeset 23670 for issm/trunk-jpl/src/py3/classes/timestepping.py
- Timestamp:
- 01/31/19 07:34:11 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/py3/classes/timestepping.py
r19898 r23670 1 1 from fielddisplay import fielddisplay 2 from EnumDefinitions import *3 2 from checkfield import checkfield 4 3 from WriteData import WriteData … … 16 15 self.final_time = 0. 17 16 self.time_step = 0. 18 self.time_adapt = 019 self.cfl_coefficient = 0.20 17 self.interp_forcings = 1 18 self.coupling_time = 0. 21 19 22 20 #set defaults … … 29 27 string="%s\n%s"%(string,fielddisplay(self,"final_time","final time to stop the simulation [yr]")) 30 28 string="%s\n%s"%(string,fielddisplay(self,"time_step","length of time steps [yr]")) 31 string="%s\n%s"%(string,fielddisplay(self,"time_adapt","use cfl condition to define time step ? (0 or 1) "))32 string="%s\n%s"%(string,fielddisplay(self,"cfl_coefficient","coefficient applied to cfl condition"))33 29 string="%s\n%s"%(string,fielddisplay(self,"interp_forcings","interpolate in time between requested forcing values ? (0 or 1)")) 30 string="%s\n%s"%(string,fielddisplay(self,"coupling_time","length of coupling time steps with ocean model [yr]")) 34 31 return string 35 32 #}}} … … 42 39 self.final_time=10.*self.time_step 43 40 44 #time adaptation?45 self.time_adapt=046 self.cfl_coefficient=0.547 48 41 #should we interpolate forcings between timesteps? 49 42 self.interp_forcings=1 … … 56 49 md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1,'Inf',1) 57 50 md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1,'Inf',1) 58 md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1])59 md = checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1)60 51 if self.final_time-self.start_time<0: 61 52 md.checkmessage("timestepping.final_time should be larger than timestepping.start_time") 53 md = checkfield(md,'fieldname','timestepping.coupling_time','numel',[1],'>=',0,'NaN',1,'Inf',1) 62 54 md = checkfield(md,'fieldname','timestepping.interp_forcings','numel',[1],'values',[0,1]) 63 55 64 56 return md 65 57 # }}} 66 def marshall(self, md,fid): # {{{58 def marshall(self,prefix,md,fid): # {{{ 67 59 68 60 yts=md.constants.yts 69 70 WriteData(fid,'object',self,'fieldname','start_time','format','Double','scale',yts) 71 WriteData(fid,'object',self,'fieldname','final_time','format','Double','scale',yts) 72 WriteData(fid,'object',self,'fieldname','time_step','format','Double','scale',yts) 73 WriteData(fid,'object',self,'fieldname','time_adapt','format','Boolean') 74 WriteData(fid,'object',self,'fieldname','cfl_coefficient','format','Double') 75 WriteData(fid,'object',self,'fieldname','interp_forcings','format','Boolean') 61 WriteData(fid,prefix,'name','md.timestepping.type','data',1,'format','Integer'); 62 WriteData(fid,prefix,'object',self,'fieldname','start_time','format','Double','scale',yts) 63 WriteData(fid,prefix,'object',self,'fieldname','final_time','format','Double','scale',yts) 64 WriteData(fid,prefix,'object',self,'fieldname','time_step','format','Double','scale',yts) 65 WriteData(fid,prefix,'object',self,'fieldname','interp_forcings','format','Boolean') 66 WriteData(fid,prefix,'object',self,'fieldname','coupling_time','format','Double','scale',yts) 76 67 # }}}
Note:
See TracChangeset
for help on using the changeset viewer.