Changeset 18710
- Timestamp:
- 10/30/14 09:39:19 (10 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/hydrologydc.py
r18592 r18710 38 38 self.epl_porosity = 0 39 39 self.epl_initial_thickness = 0 40 self.epl_colapse_thickness = 0 40 41 self.epl_max_thickness = 0 41 42 self.epl_conductivity = 0 … … 54 55 string="%s\n%s"%(string,fielddisplay(self,'rel_tol','tolerance of the nonlinear iteration for the transfer between layers [dimensionless]')) 55 56 string="%s\n%s"%(string,fielddisplay(self,'max_iter','maximum number of nonlinear iteration')) 57 string="%s\n%s"%(string,fielddisplay(self,'basal_moulin_input','water flux at a given point [m3 s-1]')) 56 58 string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit_flag','what kind of upper limit is applied for the inefficient layer')) 57 string= '%55s 0: no limit',' '58 string= '%55s 1: user defined: %s',' ','sedimentlimit'59 string= '%55s 2: hydrostatic pressure',' '60 string= '%55s 3: normal stress',' '61 59 string="%s\n\t\t%s"%(string,'0: no limit') 60 string="%s\n\t\t%s"%(string,'1: user defined sedimentlimit') 61 string="%s\n\t\t%s"%(string,'2: hydrostatic pressure') 62 string="%s\n\t\t%s"%(string,'3: normal stress') 63 62 64 if self.sedimentlimit_flag==1: 63 65 string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit','user defined upper limit for the inefficient layer [m]')) 64 string="%s\n%s"%(string,fielddisplay(self,'basal_moulin_input','water flux at a given point [m3 s-1]')) 65 string="%s\n%s"%(string,fielddisplay(self,'transfer_flag','what kind of transfer method is applied between the layers')) 66 string='%55s 0: no transfer',' ' 67 string='%55s 1: constant leakage factor: %s',' ','leakage_factor' 66 67 68 string="%s\n%s"%(string,fielddisplay(self,'transfer_flag','what kind of transfer method is applied between the layers')) 69 string="%s\n\t\t%s"%(string,'0: no transfer') 70 string="%s\n\t\t%s"%(string,'1: constant leakage factor: leakage_factor') 68 71 69 72 if self.transfer_flag is 1: 70 73 string="%s\n%s"%(string,fielddisplay(self,'leakage_factor','user defined leakage factor [m]')) 71 string=' - for the sediment layer' 72 string="%s\n%s"%(string,fielddisplay(self,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]')) 73 string="%s\n%s"%(string,fielddisplay(self,'sediment_compressibility','sediment compressibility [Pa^-1]')) 74 string="%s\n%s"%(string,fielddisplay(self,'sediment_porosity','sediment [dimensionless]')) 75 string="%s\n%s"%(string,fielddisplay(self,'sediment_thickness','sediment thickness [m]')) 76 string="%s\n%s"%(string,fielddisplay(self,'sediment_transmitivity','sediment transmitivity [m^2/s]')) 74 75 string="%s\n%s"%(string,' - for the sediment layer') 76 string="%s\n%s"%(string,fielddisplay(self,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]')) 77 string="%s\n%s"%(string,fielddisplay(self,'sediment_compressibility','sediment compressibility [Pa^-1]')) 78 string="%s\n%s"%(string,fielddisplay(self,'sediment_porosity','sediment [dimensionless]')) 79 string="%s\n%s"%(string,fielddisplay(self,'sediment_thickness','sediment thickness [m]')) 80 string="%s\n%s"%(string,fielddisplay(self,'sediment_transmitivity','sediment transmitivity [m^2/s]')) 77 81 78 82 if self.isefficientlayer==1: 79 string= ' - for the epl layer'83 string="%s\n%s"%(string,' - for the epl layer') 80 84 string="%s\n%s"%(string,fielddisplay(self,'spcepl_head','epl water head constraints (NaN means no constraint) [m above MSL]')) 81 85 string="%s\n%s"%(string,fielddisplay(self,'mask_eplactive_node','active (1) or not (0) EPL')) 82 86 string="%s\n%s"%(string,fielddisplay(self,'epl_compressibility','epl compressibility [Pa^-1]')) 83 87 string="%s\n%s"%(string,fielddisplay(self,'epl_porosity','epl [dimensionless]')) 84 string="%s\n%s"%(string,fielddisplay(self,'epl_initial_thickness','epl initial thickness [m]')) 88 string="%s\n%s"%(string,fielddisplay(self,'epl_max_thickness','epl initial thickness [m]')) 89 string="%s\n%s"%(string,fielddisplay(self,'epl_initial_thickness','epl initial thickness [m]')) 90 string="%s\n%s"%(string,fielddisplay(self,'epl_colapse_thickness','epl colapsing thickness [m]')) 85 91 string="%s\n%s"%(string,fielddisplay(self,'epl_conductivity','epl conductivity [m^2/s]')) 86 #}}} 92 return string 93 #}}} 87 94 def setdefaultparameters(self): #{{{ 88 95 … … 106 113 self.epl_porosity = 0.4 107 114 self.epl_initial_thickness = 1.0 115 self.epl_colapse_thickness = 1.0e-3 108 116 self.epl_max_thickness = 5.0 109 117 self.epl_conductivity = 8.0e-02 … … 112 120 # }}} 113 121 114 def initialize(self ): # {{{122 def initialize(self,md): # {{{ 115 123 if numpy.all(numpy.isnan(self.basal_moulin_input)): 116 self.basal_moulin_input=numpy.zeros( md.mesh.numberofvertices,1)124 self.basal_moulin_input=numpy.zeros((md.mesh.numberofvertices,1)) 117 125 print" no hydrology.basal_moulin_input specified: values set as zero" 118 126 … … 122 130 123 131 #Early return 124 if HydrologyDCInefficientAnalysisEnum() not in analyses :132 if HydrologyDCInefficientAnalysisEnum() not in analyses and HydrologyDCEfficientAnalysisEnum() not in analyses: 125 133 return md 126 134 127 md = checkfield(md,'fieldname','hydrology.water_compressibility','>',0,'numel',1)135 md = checkfield(md,'fieldname','hydrology.water_compressibility','numel',[1],'>',0.) 128 136 md = checkfield(md,'fieldname','hydrology.isefficientlayer','numel',[1],'values',[0,1]) 129 md = checkfield(md,'fieldname','hydrology.penalty_factor','>',0 ,'numel',1)130 md = checkfield(md,'fieldname','hydrology.rel_tol','>',0 ,'numel',1)131 md = checkfield(md,'fieldname','hydrology.max_iter','>',0 ,'numel',1)137 md = checkfield(md,'fieldname','hydrology.penalty_factor','>',0.,'numel',[1]) 138 md = checkfield(md,'fieldname','hydrology.rel_tol','>',0.,'numel',[1]) 139 md = checkfield(md,'fieldname','hydrology.max_iter','>',0.,'numel',[1]) 132 140 md = checkfield(md,'fieldname','hydrology.sedimentlimit_flag','numel',[1],'values',[0,1,2,3]) 133 141 md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0,1]) 134 142 135 143 if self.sedimentlimit_flag==1: 136 md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0 ,'numel',1)144 md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0.,'numel',[1]) 137 145 138 146 if self.transfer_flag==1: 139 md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0 ,'numel',1)147 md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0.,'numel',[1]) 140 148 141 149 md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'forcing',1) 142 150 md = checkfield(md,'fieldname','hydrology.spcsediment_head','forcing',1) 143 md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0 ,'numel',1)144 md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0 ,'numel',1)145 md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0 ,'numel',1)151 md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0.,'numel',[1]) 152 md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0.,'numel',[1]) 153 md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0.,'numel',[1]) 146 154 md = checkfield(md,'fieldname','hydrology.sediment_transmitivity','>=',0,'size',[md.mesh.numberofvertices,1]) 147 155 if self.isefficientlayer==1: 148 156 md = checkfield(md,'fieldname','hydrology.spcepl_head','forcing',1) 149 157 md = checkfield(md,'fieldname','hydrology.mask_eplactive_node','size',[md.mesh.numberofvertices,1],'values',[0,1]) 150 md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0,'numel',1) 151 md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0,'numel',1) 152 md = checkfield(md,'fieldname','hydrology.epl_initial_thickness','>',0,'numel',1) 153 md = checkfield(md,'fieldname','hydrology.epl_conductivity','>',0,'numel',1) 158 md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0.,'numel',[1]) 159 md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0.,'numel',[1]) 160 md = checkfield(md,'fieldname','hydrology.epl_max_thickness','numel',[1],'>',0.) 161 md = checkfield(md,'fieldname','hydrology.epl_initial_thickness','numel',[1],'>',0.) 162 md = checkfield(md,'fieldname','hydrology.epl_colapse_thickness','numel',[1],'>',0.) 163 if self.epl_colapse_thickness > self.epl_initial_thickness: 164 md.checkmessage('Colapsing thickness for EPL larger than initial thickness') 165 md = checkfield(md,'fieldname','hydrology.epl_conductivity','numel',[1],'>',0.) 154 166 # }}} 155 167 def marshall(self,md,fid): #{{{ … … 181 193 WriteData(fid,'object',self,'fieldname','epl_compressibility','format','Double') 182 194 WriteData(fid,'object',self,'fieldname','epl_porosity','format','Double') 183 WriteData(fid,'object',self,'fieldname','epl_initial_thickness','format','Double') 195 WriteData(fid,'object',self,'fieldname','epl_max_thickness','format','Double') 196 WriteData(fid,'object',self,'fieldname','epl_initial_thickness','format','Double') 197 WriteData(fid,'object',self,'fieldname','epl_colapse_thickness','format','Double') 184 198 WriteData(fid,'object',self,'fieldname','epl_conductivity','format','Double') 185 199 # }}} -
issm/trunk-jpl/src/m/classes/initialization.py
r18605 r18710 76 76 md = checkfield(md,'fieldname','initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices]) 77 77 if HydrologyShreveAnalysisEnum() in analyses: 78 md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices]) 78 if hasattr(md.hydrology,'hydrologyshreve'): 79 md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices]) 79 80 if HydrologyDCInefficientAnalysisEnum() in analyses: 80 81 if hasattr(md.hydrology,'hydrologydc'): -
issm/trunk-jpl/src/m/classes/transient.py
r17749 r18710 58 58 self.isdamageevolution = False 59 59 self.islevelset = False 60 60 self.ishydrology = False 61 61 62 62 #default output … … 74 74 self.isdamageevolution = False 75 75 self.islevelset = False 76 76 self.ishydrology = False 77 77 78 78 #default output
Note:
See TracChangeset
for help on using the changeset viewer.