Changeset 24668


Ignore:
Timestamp:
03/17/20 06:04:30 (5 years ago)
Author:
bdef
Message:

BUG: fix in NeffLim and py syntax

Location:
issm/trunk-jpl/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Loads/Friction.cpp

    r24666 r24668  
    610610void Friction::GetAlpha2Schoof(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
    611611
    612         /*This routine calculates the basal friction coefficient 
     612        /*This routine calculates the basal friction coefficient
    613613         *
    614614         *               C |u_b|^(m-1)
     
    643643void Friction::GetAlpha2Tsai(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
    644644
    645         /*This routine calculates the basal friction coefficient 
     645        /*This routine calculates the basal friction coefficient
    646646         *
    647647         * alpha2= min(C |ub|^m , f N ) / |ub|
     
    727727                case 3:
    728728                        element->GetInputValue(&Neff,gauss,FrictionEffectivePressureEnum);
    729                         p_ice = 0.; // FIXME
     729                        element->GetInputValue(&thickness, gauss,ThicknessEnum);
     730                        IssmDouble rho_ice   = element->FindParam(MaterialsRhoIceEnum);
     731                        IssmDouble gravity   = element->FindParam(ConstantsGEnum);
     732                        p_ice   = gravity*rho_ice*thickness;
    730733                        break;
    731734                case 4:
    732735                        element->GetInputValue(&Neff,gauss,EffectivePressureEnum);
    733                         p_ice = 0.; // FIXME
     736                        element->GetInputValue(&thickness, gauss,ThicknessEnum);
     737                        IssmDouble rho_ice   = element->FindParam(MaterialsRhoIceEnum);
     738                        IssmDouble gravity   = element->FindParam(ConstantsGEnum);
     739                        p_ice   = gravity*rho_ice*thickness;
    734740                        break;
    735741                default:
  • issm/trunk-jpl/src/m/classes/friction.py

    r24667 r24668  
    1919        self.coupling = 0
    2020        self.effective_pressure = float('NaN')
    21         self.effective_pressure_limit = 0
    22     #set defaults
     21        self.effective_pressure_limit = 0
     22        #set defaults
    2323        self.setdefaultparameters()
    2424        self.requested_outputs = []
     
    3333        string = "%s\n%s" % (string, 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: used coupled model (not implemented yet)'))
    3434        string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]'))
    35         string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit','Neff do not allow to fall below a certain limit: effective_pressure_limit*rho_ice*g*thickness (default 0)'))
     35        string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit', 'Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0)'))
    3636        string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested'))
    3737        return string
     
    5252    def setdefaultparameters(self):  # {{{
    5353        self.requested_outputs = ['default']
    54         self.effective_pressure_limit = 0
     54        self.effective_pressure_limit = 0
    5555        return self
    5656    #}}}
     
    7171        md = checkfield(md, 'fieldname', 'friction.p', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements])
    7272        md = checkfield(md, 'fieldname', 'friction.coupling', 'numel', [1], 'values', [0, 1, 2, 3, 4])
    73         md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit','numel',[1],'>=',0)
     73        md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit', 'numel', [1], '>=', 0)
    7474        if self.coupling == 3:
    7575            md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
     
    8686        WriteData(fid, prefix, 'object', self, 'fieldname', 'q', 'format', 'DoubleMat', 'mattype', 2)
    8787        WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'coupling', 'format', 'Integer')
    88         WriteData(fid, prefix, 'object', self,'class','friction','fieldname','effective_pressure_limit','format','Double')
     88        WriteData(fid, prefix, 'object', self, 'class', 'friction', 'fieldname', 'effective_pressure_limit', 'format', 'Double')
    8989        if self.coupling == 3:
    9090            WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts)
  • issm/trunk-jpl/src/m/classes/frictioncoulomb.py

    r24667 r24668  
    2020        self.coupling = 0
    2121        self.effective_pressure = float('NaN')
    22         self.effective_pressure_limit = 0
     22        self.effective_pressure_limit = 0
    2323    #set defaults
    2424        self.setdefaultparameters()
     
    3333        string = "%s\n%s" % (string, fielddisplay(self, 'coupling', 'Coupling flag: 0 for default, 1 for forcing(provide md.friction.effective_pressure)  and 2 for coupled(not implemented yet)'))
    3434        string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]'))
    35         string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit','Neff do not allow to fall below a certain limit: effective_pressure_limit*rho_ice*g*thickness (default 0)'))
     35        string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit', 'Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0)'))
    3636        return string
    3737    #}}}
     
    5252
    5353    def setdefaultparameters(self):  # {{{
    54         self.effective_pressure_limit = 0
    55         return self
     54        self.effective_pressure_limit = 0
     55    return self
    5656    #}}}
    5757
     
    6565        md = checkfield(md, 'fieldname', 'friction.q', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements])
    6666        md = checkfield(md, 'fieldname', 'friction.p', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements])
    67         md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit','numel',[1],'>=',0)
     67        md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit', 'numel', [1], '>=', 0)
    6868        if self.coupling == 1:
    6969            md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
     
    8282        WriteData(fid, prefix, 'object', self, 'fieldname', 'q', 'format', 'DoubleMat', 'mattype', 2)
    8383        WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'coupling', 'format', 'Integer')
    84         WriteData(fid, prefix, 'object', self,'class','friction','fieldname','effective_pressure_limit','format','Double')
     84        WriteData(fid, prefix, 'object', self, 'class', 'friction', 'fieldname', 'effective_pressure_limit', 'format', 'Double')
    8585        if self.coupling == 1:
    8686            WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts)
  • issm/trunk-jpl/src/m/classes/frictionhydro.py

    r24667 r24668  
    1919        self.As = np.nan
    2020        self.effective_pressure = np.nan
    21         self.effective_pressure_limit = 0
    22     #set defaults
    23 
     21        self.effective_pressure_limit = 0
     22        #set defaults
    2423        self.setdefaultparameters()
    2524    # }}}
     
    3231        string = "%s\n%s" % (string, fielddisplay(self, 'As', 'Sliding Parameter without cavitation [m Pa^ - n s^ - 1]'))
    3332        string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]'))
    34         string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit','Neff do not allow to fall below a certain limit: effective_pressure_limit*rho_ice*g*thickness (default 0)'))
     33        string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit', 'Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0)'))
    3534
    3635        return string
     
    5150        self.coupling = 0
    5251        self.effective_pressure = np.nan
    53         self.effective_pressure_limit = 0
     52        self.effective_pressure_limit = 0
    5453        return self
    5554    # }}}
     
    6463        md = checkfield(md, 'fieldname', 'friction.C', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements])
    6564        md = checkfield(md, 'fieldname', 'friction.As', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements])
    66         md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit','numel',[1],'>=',0)
     65        md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit', 'numel', [1], '>=', 0)
    6766        if self.coupling == 3:
    6867            md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
     
    7776        WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'C', 'format', 'DoubleMat', 'mattype', 2)
    7877        WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'As', 'format', 'DoubleMat', 'mattype', 2)
    79         WriteData(fid, prefix, 'object', self,'class','friction','fieldname','effective_pressure_limit','format','Double')
     78        WriteData(fid, prefix, 'object', self, 'class', 'friction', 'fieldname', 'effective_pressure_limit', 'format', 'Double')
    8079        if self.coupling in[3, 4]:
    8180            WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts)
  • issm/trunk-jpl/src/m/classes/frictionweertman.py

    r24256 r24668  
    2222
    2323    def __repr__(self):  # {{{
    24         string = "Weertman sliding law parameters: Sigma_b = C^(-1 / m) * |u_b|^(1 / m - 1) * u_b"
     24        string = "Weertman sliding law parameters: Sigma_b = C^(- 1 / m) * |u_b|^(1 / m - 1) * u_b"
    2525
    2626        string = "%s\n%s" % (string, fielddisplay(self, "C", "friction coefficient [SI]"))
Note: See TracChangeset for help on using the changeset viewer.