Changeset 21739 for issm/trunk-jpl/src/m/classes/frictionhydro.m
- Timestamp:
- 05/23/17 00:21:35 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/frictionhydro.m
r21049 r21739 6 6 classdef frictionhydro 7 7 properties (SetAccess=public) 8 Coupling = 0;8 coupling = 0; 9 9 q = NaN; 10 10 C = NaN; … … 28 28 %Early return 29 29 if ~ismember('StressbalanceAnalysis',analyses) & ~ismember('ThermalAnalysis',analyses), return; end 30 md = checkfield(md,'fieldname','friction. Coupling','numel',[1],'values',[0 1]);30 md = checkfield(md,'fieldname','friction.coupling','numel',[1],'values',[0 1 2]); 31 31 md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]); 32 32 md = checkfield(md,'fieldname','friction.C','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]); 33 33 md = checkfield(md,'fieldname','friction.As','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]); 34 if self.Coupling==0, 35 md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1); 34 switch self.coupling 35 case 0 36 case 1 37 md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1); 38 case 2 39 error('not implemented yet'); 40 otherwise 41 error('not supported yet'); 42 end 36 43 end 37 44 end % }}} … … 40 47 self.C=project3d(md,'vector',self.C,'type','element'); 41 48 self.As=project3d(md,'vector',self.As,'type','element'); 42 if self.Coupling==0, 43 self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1); 49 switch self.coupling 50 case 0 51 case 1 52 self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1); 53 case 2 54 error('not implemented yet'); 55 otherwise 56 error('not supported yet'); 44 57 end 45 58 end % }}} 46 59 function disp(self) % {{{ 47 60 disp(sprintf('Effective Pressure based friction law described in Gagliardini 2007')); 48 fielddisplay(self,' Coupling','Coupling flag, 1 for coupling and 0 for forcing');61 fielddisplay(self,'coupling','Coupling flag: 0 for default, 1 for forcing(provide md.friction.effective_pressure) and 2 for coupled(not implemented yet)'); 49 62 fielddisplay(self,'q','friction law exponent q>=1'); 50 63 fielddisplay(self,'C','friction law max value [SI]'); … … 54 67 function marshall(self,prefix,md,fid) % {{{ 55 68 WriteData(fid,prefix,'name','md.friction.law','data',3,'format','Integer'); 56 WriteData(fid,prefix,'class','friction','object',self,'fieldname',' Coupling','format','Integer');69 WriteData(fid,prefix,'class','friction','object',self,'fieldname','coupling','format','Integer'); 57 70 WriteData(fid,prefix,'class','friction','object',self,'fieldname','q','format','DoubleMat','mattype',2); 58 71 WriteData(fid,prefix,'class','friction','object',self,'fieldname','C','format','DoubleMat','mattype',2); 59 72 WriteData(fid,prefix,'class','friction','object',self,'fieldname','As','format','DoubleMat','mattype',2); 60 if self.Coupling==0, 61 WriteData(fid,prefix,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 73 switch self.coupling 74 case 0 75 case 1 76 WriteData(fid,prefix,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 77 case 2 78 error('not implemented yet'); 79 otherwise 80 error('not supported yet'); 62 81 end 63 82 end % }}}
Note:
See TracChangeset
for help on using the changeset viewer.