Changeset 27487


Ignore:
Timestamp:
12/31/22 10:50:41 (2 years ago)
Author:
Mathieu Morlighem
Message:

CHG: added linearize as a possible way to evaluate friction

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/friction.m

    r26187 r27487  
    1010                q                        = NaN;
    1111                coupling                 = 0;
     12                linearize                = 0;
    1213                effective_pressure       = NaN;
    1314                effective_pressure_limit = 0;
     
    3435                function self = setdefaultparameters(self) % {{{
    3536
    36                         self.coupling = 0;
     37                        self.linearize = 0;
     38                        self.coupling  = 0;
    3739                        self.effective_pressure_limit = 0;
    3840
     
    4749                        md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
    4850                        md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
     51                        md = checkfield(md,'fieldname','friction.linearize','numel',[1],'values',[0:2]);
    4952                        md = checkfield(md,'fieldname','friction.coupling','numel',[1],'values',[0:4]);
    5053                        md = checkfield(md,'fieldname','friction.effective_pressure_limit','numel',[1],'>=',0);
     
    5861                        fielddisplay(self,'p','p exponent');
    5962                        fielddisplay(self,'q','q exponent');
     63                        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)');
     64                        fielddisplay(self,'linearize','0: not linearized, 1: interpolated linearly, 2: constant per element (default is 0)');
    6065                        fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]');
    61                         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)');
    6266                        fielddisplay(self,'effective_pressure_limit','Neff do not allow to fall below a certain limit: effective_pressure_limit*rho_ice*g*thickness (default 0)');
    6367                end % }}}
     
    7579                        WriteData(fid,prefix,'object',self,'fieldname','q','format','DoubleMat','mattype',2);
    7680                        WriteData(fid,prefix,'class','friction','object',self,'fieldname','coupling','format','Integer');
     81                        WriteData(fid,prefix,'class','friction','object',self,'fieldname','linearize','format','Integer');
    7782                        WriteData(fid,prefix,'object',self,'class','friction','fieldname','effective_pressure_limit','format','Double');
    7883                        if self.coupling==3 || self.coupling==4
     
    8691                        writejs1Darray(fid,[modelname '.friction.q'],self.q);
    8792                        writejs1Darray(fid,[modelname '.friction.coupling'],self.coupling);
     93                        writejs1Darray(fid,[modelname '.friction.linearize'],self.linearize);
    8894                        writejs1Darray(fid,[modelname '.friction.effective_pressure'],self.effective_pressure);
    8995                        writejs1Darray(fid,[modelname '.friction.effective_pressure_limit'],self.effective_pressure_limit);
Note: See TracChangeset for help on using the changeset viewer.