Changeset 26744 for issm/trunk/src/m/classes/frictionschoof.m
- Timestamp:
- 12/22/21 10:39:44 (3 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 25837-25866,25868-25993,25995-26330,26332-26733,26736-26739,26741
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/m/classes/frictionschoof.m
r25836 r26744 6 6 classdef frictionschoof 7 7 properties (SetAccess=public) 8 C = NaN; 9 Cmax = NaN; 10 m = NaN; 8 C = NaN; 9 Cmax = NaN; 10 m = NaN; 11 coupling = 0; 12 effective_pressure = NaN; 11 13 effective_pressure_limit = 0; 12 14 end … … 26 28 self.Cmax = project3d(md,'vector',self.Cmax,'type','node'); 27 29 self.m = project3d(md,'vector',self.m,'type','element'); 30 if self.coupling==3 || self.coupling==4 31 self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1); 32 end 28 33 end % }}} 29 34 function self = setdefaultparameters(self) % {{{ 30 35 36 self.coupling = 0; 31 37 self.effective_pressure_limit = 0; 32 38 … … 36 42 %Early return 37 43 if ~ismember('StressbalanceAnalysis',analyses) & ~ismember('ThermalAnalysis',analyses), return; end 38 md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1,'Inf',1,'> ',0.);44 md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1,'Inf',1,'>=',0.); 39 45 md = checkfield(md,'fieldname','friction.Cmax','timeseries',1,'NaN',1,'Inf',1,'>',0.); 40 46 md = checkfield(md,'fieldname','friction.m','NaN',1,'Inf',1,'>',0.,'size',[md.mesh.numberofelements,1]); 41 47 md = checkfield(md,'fieldname','friction.effective_pressure_limit','numel',[1],'>=',0); 48 md = checkfield(md,'fieldname','friction.coupling','numel',[1],'values',[0:4]); 49 if self.coupling==3 50 md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1); 51 end 42 52 end % }}} 43 53 function disp(self) % {{{ … … 52 62 fielddisplay(self,'Cmax','Iken''s bound (typically between 0.17 and 0.84) [SI]'); 53 63 fielddisplay(self,'m','m exponent (generally taken as m = 1/n = 1/3)'); 64 fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]'); 65 fielddisplay(self,'coupling','Coupling flag 0: uniform sheet (negative pressure ok, default), 1: ice pressure only, 2: water pressure assuming uniform sheet (no negative pressure), 3: use provided effective_pressure, 4: use coupled model (not implemented yet)'); 54 66 fielddisplay(self,'effective_pressure_limit','Neff do not allow to fall below a certain limit: effective_pressure_limit*rho_ice*g*thickness (default 0)'); 55 67 end % }}} … … 62 74 WriteData(fid,prefix,'class','friction','object',self,'fieldname','m','format','DoubleMat','mattype',2); 63 75 WriteData(fid,prefix,'object',self,'class','friction','fieldname','effective_pressure_limit','format','Double'); 76 WriteData(fid,prefix,'class','friction','object',self,'fieldname','coupling','format','Integer'); 77 if self.coupling==3 || self.coupling==4 78 WriteData(fid,prefix,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 79 end 64 80 end % }}} 65 81 end
Note:
See TracChangeset
for help on using the changeset viewer.